var bbtags   = new Array();



// browser detection

var myAgent   = navigator.userAgent.toLowerCase();

var myVersion = parseInt(navigator.appVersion);

var is_ie   = ((myAgent.indexOf("msie") != -1)  && (myAgent.indexOf("opera") == -1));

var is_win   =  ((myAgent.indexOf("win")!=-1) || (myAgent.indexOf("16bit")!=-1));



function setmode(modeValue) {

 	document.cookie = "bbcodemode="+modeValue+"; path=/; expires=Wed, 1 Jan 2020 00:00:00 GMT;";

}



function normalMode(theForm) {

	if (theForm.mode[0].checked) {

		return true;

	}

	else {

		return false;

	}

}



function getArraySize(theArray) {

 	for (i = 0; i < theArray.length; i++) {

  		if ((theArray[i] == "undefined") || (theArray[i] == "") || (theArray[i] == null)) return i;

	}

 	

 	return theArray.length;

}



function pushArray(theArray, value) {

 	theArraySize = getArraySize(theArray);

 	theArray[theArraySize] = value;

}



function popArray(theArray) {

	theArraySize = getArraySize(theArray);

 	retVal = theArray[theArraySize - 1];

 	delete theArray[theArraySize - 1];

 	return retVal;

}





function smilie(theSmilie) {

	addText(" " + theSmilie, "", false, document.bbform);

}



function closetag(theForm) {

 	if (!normalMode(theForm)) {

  		if (bbtags[0]) addText("[/"+ popArray(bbtags) +"]", "", false, theForm);

  	}

 	

 	setFocus(theForm);

}



function closeall(theForm) {

 	if (!normalMode(theForm)) {

  		if (bbtags[0]) {

   			while (bbtags[0]) {

    				addText("[/"+ popArray(bbtags) +"]", "", false, theForm);

   			}

   		}

 	}

 	

 	setFocus(theForm);

}





function fontformat(theForm,theValue,theType) {

 	setFocus(theForm);

 

 	if (normalMode(theForm)) {

  		if (theValue != 0) {

   

   			var selectedText = getSelectedText(theForm);

   			var insertText = prompt(font_formatter_prompt+" "+theType, selectedText);

   			if ((insertText != null) && (insertText != "")) {

    				addText("["+theType+"="+theValue+"]"+insertText+"[/"+theType+"]", "", false, theForm);

    			}

  		}

 	}

 	else {

		if(addText("["+theType+"="+theValue+"]", "[/"+theType+"]", true, theForm)) {

			pushArray(bbtags, theType);	

		}

	}

 

 	theForm.sizeselect.selectedIndex = 0;

 	theForm.fontselect.selectedIndex = 0;

 	theForm.colorselect.selectedIndex = 0;

 	

 	setFocus(theForm);

}





function bbcode(theForm, theTag, promptText) {

	if ( normalMode(theForm) || (bbcode=="IMG")) {

		if(promptText=='') promptText=getSelectedText(theForm);

		

		inserttext = prompt(tag_prompt + "\n[" + theTag + "]xxx[/" + theTag + "]", promptText);

		if ( (inserttext != null) && (inserttext != "") ) {

			addText("[" + theTag + "]" + inserttext + "[/" + theTag + "]", "", false, theForm);

		}

	}

	else {

		var donotinsert = false;

  		for (i = 0; i < bbtags.length; i++) {

   			if (bbtags[i] == theTag) donotinsert = true;

  		}

  		

  		if (!donotinsert) {

   			if(addText("[" + theTag + "]", "[/" + theTag + "]", true, theForm)){

				pushArray(bbtags, theTag);

			}

  		}

		else {

			var lastindex = 0;

			

			for (i = 0 ; i < bbtags.length; i++ ) {

				if ( bbtags[i] == theTag ) {

					lastindex = i;

				}

			}

			

			while (bbtags[lastindex]) {

				tagRemove = popArray(bbtags);

				addText("[/" + tagRemove + "]", "", false);

			}

		}

	}

}



function namedlink(theForm,theType) {

	var selected = getSelectedText(theForm);

 

	var linkText = prompt(link_text_prompt,selected);

	var prompttext;

 

	if (theType == "URL") {

 		prompt_text = link_url_prompt;

 		prompt_contents = "http://";

	}

	else {

		prompt_text = link_email_prompt;

		prompt_contents = "";

		}

 

	linkURL = prompt(prompt_text,prompt_contents);

 

 

	if ((linkURL != null) && (linkURL != "")) {

		var theText = '';

		

		if ((linkText != null) && (linkText != "")) {

   			theText = "["+theType+"="+linkURL+"]"+linkText+"[/"+theType+"]";

   		}

		else {

			theText = "["+theType+"]"+linkURL+"[/"+theType+"]";

		}

  		

  		addText(theText, "", false, theForm);

 	}

}


// *********************BBCode-Hack anfang**********************************


function ed2kserver(theForm, theTag, promptText) {


       if(promptText=='') promptText=getSelectedText(theForm);

	if (promptText) { var dtext=promptText; } else { var dtext=""; }
	linktext = prompt(link_text_prompt,dtext);
		var promptText;
		
		
		if (theTag == "ed2k") {
			prompt_text = "Gebe den Link zum eDonkey File ein !";
			prompt_contents = "ed2k://";
			}
		else {
			prompt_text = "Gebe den Link zum eDonkey File ein !";
			prompt_contents = "ed2k://";
			}
	linkurl = prompt(prompt_text,prompt_contents);
	if ((linkurl != null) && (linkurl != "")) {
		if ((linktext != null) && (linktext != "")) {
			theText = "["+theTag+"="+linkurl+"]"+linktext+"[/"+theTag+"] ";
			addText(theText, "", false, theForm);
			
			}
		else{
			theText = "["+theTag+"="+linkurl+"]"+linkurl+"[/"+theTag+"] ";
			addText(theText, "", false, theForm);
			
		}
	}
}

function ftpserver(theForm, theTag, promptText) {

       if(promptText=='') promptText=getSelectedText(theForm);

	if (promptText) { var dtext=promptText; } else { var dtext=""; }
	linktext = prompt(link_text_prompt,dtext);
		var promptText;
		
		
		if (theTag == "ftp") {
			prompt_text = "Gebe den Link zum FTP-SERVER ein !";
			prompt_contents = "ftp://";
			}
		else {
			prompt_text = "Gebe den Link zum FTP-SERVER ein !";
			prompt_contents = "ftp://";
			}
	linkurl = prompt(prompt_text,prompt_contents);
	if ((linkurl != null) && (linkurl != "")) {
		if ((linktext != null) && (linktext != "")) {
			theText = "["+theTag+"="+linkurl+"]"+linktext+"[/"+theTag+"] ";
			addText(theText, "", false, theForm);
			
			}
		else{
			theText = "["+theTag+"="+linkurl+"]"+linkurl+"[/"+theTag+"] ";
			addText(theText, "", false, theForm);
			
		}
	}
}

function flash(theForm, theTag, promptText) {


		if (theTag == "block") {
                    inserttext = prompt("Gebe den Text für den BLOCKTEXT ein !", promptText);
			}
		if (theTag == "left") {
                     inserttext = prompt("Gebe den Text ein der LINKSBÜNDIG eingefügt wird !", promptText);
			}
		if (theTag == "nimg") {
                     inserttext = prompt("Gebe die URL zum Bild ein (Bild wird NEGATIVE dargestellt)", promptText);
			}
		if (theTag == "right") {
                    inserttext = prompt("Gebe den Text ein der RECHTSBÜNDIG eingefügt wird !", promptText);
			}
		if (theTag == "wave") {
                    inserttext = prompt("Gebe den Text ein der WELLENFÖRMIG dargestellt wird !", promptText);
			}
		if (theTag == "d") {
                    inserttext = prompt("Gebe den Text ein der DURCHGESTRICHEN dargestellt werden soll !", promptText);
			}
		if (theTag == "flash") {
                     inserttext = prompt("Gebe die volle Adresse des Flash-File ein. \n(z.B. http://www.TEST.de/FILE.swf)", promptText);
			}
		if (theTag == "blink") {
                     inserttext = prompt("Gebe den Text ein der BLINKEN soll !", promptText);
			}
              if (theTag == "marquee") {
                     inserttext = prompt("Gebe den Text ein der als LAUFSCHRIFT dargestellt werden soll !", promptText);
			}
		if (theTag == "tt") {
                     inserttext = prompt("Gebe den Text ein der in Schreibmaschinenform dargestellt werden soll !", promptText);
			}
		if (theTag == "bt") {
                     inserttext = prompt("Gebe den Text ein der in BLUR dargestellt werden soll !", promptText);
			}
		if (theTag == "sub") {
                     inserttext = prompt("Gebe den Text ein der TIEFGESTELLT dargestellt werden soll !", promptText);
			}
		if (theTag == "s") {
                     inserttext = prompt("Gebe den Text ein der in Schattenform dargestellt werden soll !", promptText);
			}
		if (theTag == "sup") {
                     inserttext = prompt("Gebe den Text ein der Hochgestellt dargestellt werden soll !", promptText);
			}
		if (theTag == "CENTER") {
                     inserttext = prompt("Gebe den Text ein Zentriert dargestellt werden soll !", promptText);
			}
             if (theTag == "denk") {
                     inserttext = prompt("Gebe den Text ein der in einer Denkblase dargestellt werden soll !", promptText);
                     }
             if (theTag == "ftp") {
                     inserttext = prompt("Gebe den Link zum FTP-SERVER ein !", promptText);
                     }
             if (theTag == "nfo") {
                     inserttext = prompt("Gebe den NFO-Text ein !", promptText);
                     }



 	       if ( (inserttext != null) && (inserttext != "") ) {

	             addText("[" + theTag + "]" + inserttext + "[/" + theTag + "]", "", false, theForm);

	       }

}

function bbcode_smilie(){
	window.open("misc.php?action=text2schild","text2schild", "toolbar=no,scrollbars=yes,resizable=yes,statusbar=yes,width=400,height=300");
}

// **********************BBCode-Hack Ende*********************************

//############# USERPAGE Homepage-BBCodes-HTML-Button ##################

function htmlcodes_0(theForm,theTag) {
			AddTxt = "<"+theTag+">";
			addText(AddTxt,"",true,theForm);
}

function htmlcodes_1(theForm, theTag, promptText) {
	if ( normalMode(theForm) || (bbcode=="IMG")) {
		if(promptText=='') promptText=getSelectedText(theForm);
		
		inserttext = prompt(tag_prompt + "\n<" + theTag + ">xxx</" + theTag + ">", promptText);
		if ( (inserttext != null) && (inserttext != "") ) {
			addText("<" + theTag + ">" + inserttext + "</" + theTag + ">", "", false, theForm);
		}
	}
	else {
		var donotinsert = false;
  		for (i = 0; i < bbtags.length; i++) {
   			if (bbtags[i] == theTag) donotinsert = true;
  		}
  		
  		if (!donotinsert) {
   			if(addText("<" + theTag + ">", "</" + theTag + ">", true, theForm)){
				pushArray(bbtags, theTag);
			}
  		}
		else {
			var lastindex = 0;
			
			for (i = 0 ; i < bbtags.length; i++ ) {
				if ( bbtags[i] == theTag ) {
					lastindex = i;
				}
			}
			
			while (bbtags[lastindex]) {
				tagRemove = popArray(bbtags);
				addText("</" + tagRemove + ">", "", false);
			}
		}
	}
}

function htmlcodes_2(theForm, theTag) {
				AddTxt = 'align="'+theTag+'"';
			addText(AddTxt,"",true,theForm);
		}
	

function htmlcodes_3(theForm,theType) {
	var selected = getSelectedText(theForm);
 
	var linkText = prompt(link_text_prompt,selected);
	var prompttext;
 
	if (theType == "href") {
 		prompt_text = "Gebe die Link-Adresse zum Hyperlink ein !";
 		prompt_contents = "http://";
	}
	if (theType == "mail") {
		prompt_text = "Gebe sie die EMail-Adresse ein!";
		prompt_contents = "";
	}
	if (theType == "img") {
 		prompt_text = "Geben sie die URL zum Image ein:";
 		prompt_contents = "";
	}
 
	linkURL = prompt(prompt_text,prompt_contents);
 
 
	if ((linkURL != null) && (linkURL != "")) {
		var theText = '';
	
	if (theType == "href") {	
		if ((linkText != null) && (linkText != "")) {
   			theText = "<a "+theType+'="'+linkURL+'">'+linkText+"</a>";
   		}
	}
	if (theType == "mail") {	
		if ((linkText != null) && (linkText != "")) {

   			theText = '<a href="mailto:'+linkURL+'">'+linkText+'</a>';
   		}
	}
	if (theType == "img") {
	if ((linkText != null) && (linkText != "")) {

   			theText = '<img src="'+linkURL+'" border="0" alt="'+linkText+'">';
   		}
	}

  		addText(theText, "", false, theForm);
 	}
}


function htmlcodes_5(theForm,theType) {
	var selected = getSelectedText(theForm);
	var prompttext;
 
	if (theType == "kommentar") {
 		prompt_text = "Gebe den KommentarText eine:";
 		prompt_contents = "";
	
	linktext = prompt(prompt_text,prompt_contents);
	
		if ((linktext != null) && (linktext != "")) {
			addTxt = "<!-- "+linktext+" -->";
			addText(addTxt, "", false, theForm);
	  }
	}

}

function htmlformat(theForm,theValue,theType) {
 	setFocus(theForm);
 
 	if (normalMode(theForm)) {
  		if (theValue != 0) {
   
   			var selectedText = getSelectedText(theForm);
   			var insertText = prompt(font_formatter_prompt+" "+theType, selectedText);
   			if ((insertText != null) && (insertText != "")) {
    				addText("<"+theType+"="+theValue+">"+insertText+"</"+theType+">", "", false, theForm);
    			}
  		}
 	}
 	else {
		if(addText("<"+theValue+">", "", true, theForm)) {
			pushArray(bbtags, theType);	
		}
	}
 
 	theForm.sizeselect.selectedIndex = 0;
 	theForm.fontselect.selectedIndex = 0;
 	theForm.colorselect.selectedIndex = 0;
 	
 	setFocus(theForm);
}



function htmlclosetag(theForm) {
 	if (!normalMode(theForm)) {
  		if (bbtags[0]) addText("</"+ popArray(bbtags) +">", "", false, theForm);
  	}
 	
 	setFocus(theForm);
}

function htmlcloseall(theForm) {
 	if (!normalMode(theForm)) {
  		if (bbtags[0]) {
   			while (bbtags[0]) {
    				addText("</"+ popArray(bbtags) +">", "", false, theForm);
   			}
   		}
 	}
 	
 	setFocus(theForm);
}


//  #######################ende userpage#####################//


//*********************** denkblase ***************************************
   function schild(theform,thetype) { 

linktext = prompt 
var prompttext; 


if (thetype == "denk") { 
prompt_contents = ""; 
} 

linkurl = prompt(prompt_text,prompt_contents); 
if ((linkurl != null) && (linkurl != "")) { 
if ((linktext != null) && (linktext != "")) { 
AddTxt = "["+thetype+"]"+linkurl+"[/"+thetype+"] "; 
AddText(AddTxt,theform); 
                       } 
} 
} 



// ********************denkblase ende*****************
function dolist(theForm) {

 	listType = prompt(list_type_prompt, "");

 	if ((listType == "a") || (listType == "1")) {

  		theList = "[list="+listType+"]\n";

  		listEend = "[/list="+listType+"] ";

 	}

 	else {

  		theList = "[list]\n";

  		listEend = "[/list] ";

 	}

 	

 	listEntry = "initial";

 	while ((listEntry != "") && (listEntry != null)) {

  		listEntry = prompt(list_item_prompt, "");

  		if ((listEntry != "") && (listEntry != null)) theList = theList+"[*]"+listEntry+"\n";

 	}

 	

 	addText(theList + listEend, "", false, theForm);

}





function addText(theTag, theClsTag, isSingle, theForm)

{

	var isClose = false;

	var message = theForm.message;

	var set=false;

  	var old=false;

  	var selected="";

  	

  	if(navigator.appName=="Netscape" &&  message.textLength>=0 ) { // mozilla, firebird, netscape

  		if(theClsTag!="" && message.selectionStart!=message.selectionEnd) {

  			selected=message.value.substring(message.selectionStart,message.selectionEnd);

  			str=theTag + selected+ theClsTag;

  			old=true;

  			isClose = true;

  		}

		else {

			str=theTag;

		}

		

		message.focus();

		start=message.selectionStart;

		end=message.textLength;

		endtext=message.value.substring(message.selectionEnd,end);

		starttext=message.value.substring(0,start);

		message.value=starttext + str + endtext;

		message.selectionStart=start;

		message.selectionEnd=start;

		

		if(old) { return false; }

		

		set=true;

		

		if(isSingle) {

			isClose = false;

		}

	}

	if ( (myVersion >= 4) && is_ie && is_win) {  // Internet Explorer

		if(message.isTextEdit) {

			message.focus();

			var sel = document.selection;

			var rng = sel.createRange();

			rng.colapse;

			if((sel.type == "Text" || sel.type == "None") && rng != null){

				if(theClsTag != "" && rng.text.length > 0)

					theTag += rng.text + theClsTag;

				else if(isSingle)

					isClose = true;

	

				rng.text = theTag;

			}

		}

		else{

			if(isSingle) isClose = true;

	

			if(!set) {

      				message.value += theTag;

      			}

		}

	}

	else

	{

		if(isSingle) isClose = true;



		if(!set) {

      			message.value += theTag;

      		}

	}



	message.focus();

	

	return isClose;

}	





function getSelectedText(theForm) {

	var message = theForm.message;

	var selected = '';

	

	if(navigator.appName=="Netscape" &&  message.textLength>=0 && message.selectionStart!=message.selectionEnd ) 

  		selected=message.value.substring(message.selectionStart,message.selectionEnd);	

  	

	else if( (myVersion >= 4) && is_ie && is_win ) {

		if(message.isTextEdit){ 

			message.focus();

			var sel = document.selection;

			var rng = sel.createRange();

			rng.colapse;

			

			if((sel.type == "Text" || sel.type == "None") && rng != null){

				if(rng.text.length > 0) selected = rng.text;

			}

		}	

	}

		 

  	return selected;

}


function setFocus(theForm) {

 	theForm.message.focus();

}



function opensmiliewindow(x,y,sid) {

 	window.open("misc.php?action=moresmilies&sid="+sid, "smilies", "toolbar=no,scrollbars=yes,resizable=yes,width="+x+",height="+y);

}


