link_text_prompt1 = "Gebe den Namen des Files ein (optional)";

tags = new Array();

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 arraypush(thearray,value) {
 thearraysize = getarraysize(thearray);
 thearray[thearraysize] = value;
}

function arraypop(thearray) {
 thearraysize = getarraysize(thearray);
 retval = thearray[thearraysize - 1];
 delete thearray[thearraysize - 1];
 return retval;
}

// *******************************************************

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 stat(thevalue) {
 document.bbform.status.value = eval(thevalue+"_text");
}

function setfocus(theform) {
 theform.message.focus();
}

function closetag(theform) {
 if (!normalmode(theform)) {
  if (tags[0]) theform.message.value += "[/"+ arraypop(tags) +"]";
 }
 setfocus(theform);
}

function closeall(theform) {
 if (!normalmode(theform)) {
  if (tags[0]) {
   while (tags[0]) {
    theform.message.value += "[/"+ arraypop(tags) +"]";
   }
   theform.message.value += " ";
  }
 }
 setfocus(theform);
}

// *******************************************************
var selectedText = "";
AddTxt = "";

function getActiveText(msg) { 
 selectedText = (document.all) ? document.selection.createRange().text : document.getSelection();
 if (msg.createTextRange) msg.caretPos = document.selection.createRange().duplicate();
 return true;
}

function AddText(NewCode,theform) {
 if (theform.message.createTextRange && theform.message.caretPos) {
  var caretPos = theform.message.caretPos;
  caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? NewCode + ' ' : NewCode;
 } else theform.message.value+=NewCode
 AddTxt = "";
 setfocus(theform);
}

function bbcode_smilie(){
	window.open("misc.php?action=text2schild","text2schild", "toolbar=no,scrollbars=yes,resizable=yes,statusbar=yes,width=400,height=300");
}

function bbcode(theform,bbcode,prompttext) {
 setfocus(theform);
 if ((normalmode(theform)) || (bbcode=="IMG")) {
  if (selectedText) var dtext=selectedText;
  else var dtext=prompttext;
  if(dtext && bbcode!="IMG") inserttext=dtext; else inserttext = prompt(tag_prompt+"\n["+bbcode+"]xxx[/"+bbcode+"]",dtext);
  if ((inserttext != null) && (inserttext != "")) { 
   AddTxt = "["+bbcode+"]"+inserttext+"[/"+bbcode+"]";
   if(!dtext) AddTxt+=" ";
   AddText(AddTxt,theform);
   if(dtext) {theform.message.blur(); setfocus(theform);}
  }
 }
 else {
  donotinsert = false;
  for (i = 0; i < tags.length; i++) {
   if (tags[i] == bbcode) donotinsert = true;
  }
  if (!donotinsert) {
   theform.message.value += "["+bbcode+"]";
   arraypush(tags,bbcode);
  }
 }
 setfocus(theform);
}

// *******************************************************

function fontformat(theform,thevalue,thetype) {
 setfocus(theform);
 if (normalmode(theform)) {
  if (thevalue != 0) {
   if (selectedText) var dtext=selectedText;
   else var dtext="";
   inserttext = prompt(font_formatter_prompt+" "+thetype,dtext);
   if ((inserttext != null) && (inserttext != "")) {
    AddTxt = "["+thetype+"="+thevalue+"]"+inserttext+"[/"+thetype+"] ";
    AddText(AddTxt,theform);
   }
  }
 }
 else {
  theform.message.value += "["+thetype+"="+thevalue+"]";
  arraypush(tags,thetype);
 }
 theform.sizeselect.selectedIndex = 0;
 theform.fontselect.selectedIndex = 0;
 theform.colorselect.selectedIndex = 0;
 setfocus(theform);
}

// *******************************************************

function namedlink(theform,thetype) {
 if (selectedText) { var dtext=selectedText; } else { var dtext=""; }
 linktext = prompt(link_text_prompt,dtext);
 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 != "")) {
  if ((linktext != null) && (linktext != "")) {
   AddTxt = "["+thetype+"="+linkurl+"]"+linktext+"[/"+thetype+"] ";
   AddText(AddTxt,theform);
  }
  else{
   AddTxt = "["+thetype+"]"+linkurl+"[/"+thetype+"] ";
   AddText(AddTxt,theform);
  }
 }
}
///###################edonkey anfang

function ed2kserver(theform,thetype) {
	if (selectedText) { var dtext=selectedText; } else { var dtext=""; }
	linktext = prompt(link_text_prompt1,dtext);
		var prompttext;
		
		
		if (thetype == "edk") {
			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 != "")) {
			AddTxt = "["+thetype+"="+linkurl+"]"+linktext+"[/"+thetype+"] ";
			AddText(AddTxt,theform);
			
			}
		else{
			AddTxt = "["+thetype+"="+linkurl+"]"+linkurl+"[/"+thetype+"] ";
			AddText(AddTxt,theform);
			
		}
	}
}
///###################edonkey ende
// *******************************************************
// *********************BBCode-Hack anfang**********************************
// *******************************************************

function ftpserver(theform,thetype) {
	if (selectedText) { var dtext=selectedText; } else { var dtext=""; }
	linktext = prompt(link_text_prompt,dtext);
		var prompttext;
		
		
		if (thetype == "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 != "")) {
			AddTxt = "["+thetype+"="+linkurl+"]"+linktext+"[/"+thetype+"] ";
			AddText(AddTxt,theform);
			
			}
		else{
			AddTxt = "["+thetype+"="+linkurl+"]"+linkurl+"[/"+thetype+"] ";
			AddText(AddTxt,theform);
			
		}
	}
}
// *******************************************************

function flash(theform,thetype) {
	
	linktext = prompt
		var prompttext;
		if (thetype == "flash") { // Flash-Hack by Mozi (mozi.de)
			width = prompt("Gebe die Breite deiner Animation ein:","");
           if (width != ""){
              height = prompt ("Gebe die Höhe deiner Animation ein:","");
              link = prompt ("Gebe die URL zu deiner Animation ein:","http://");
              if ((width != null) && (height != null) && (link != null)){
               if ((width != "") && (height != "") && (link != "")){
                 AddTxt = "[flash="+width+","+height+"]"+link+"[/flash]";
                 AddText(AddTxt,theform);
               }else{
               alert ("Deine Angaben sind Fehlerhaft, der Code wurde nicht eingetragen!");
               }
             }
          }
          theform.message.focus();    
        } else {
                
		if (thetype == "block") {
			prompt_text = "Gebe den Text für den BLOCKTEXT ein !";
			prompt_contents = "";
			}
		if (thetype == "left") {
			prompt_text = "Gebe den Text ein der LINKSBÜNDIG eingefügt wird !";
			prompt_contents = "";
			}
		if (thetype == "nimg") {
			prompt_text = "Gebe die URL zum Bild ein (Bild wird NEGATIVE dargestellt)";
			prompt_contents = "http://";
			}
		if (thetype == "right") {
			prompt_text = "Gebe den Text ein der RECHTSBÜNDIG eingefügt wird !";
			prompt_contents = "";
			}
		if (thetype == "wave") {
			prompt_text = "Gebe den Text ein der WELLENFÖRMIG dargestellt wird !";
			prompt_contents = "";
			}
		if (thetype == "d") {
			prompt_text = "Gebe den Text ein der DURCHGESTRICHEN dargestellt werden soll !";
			prompt_contents = "";
			}
		if (thetype == "blink") {
			prompt_text = "Gebe den Text ein der BLINKEN soll !";
			prompt_contents = "";
			}
                if (thetype == "marquee") {
			prompt_text = "Gebe den Text ein der als LAUFSCHRIFT dargestellt werden soll !";
			prompt_contents = "";
			}	
		if (thetype == "tt") {
			prompt_text = "Gebe den Text ein der in Schreibmaschinenform dargestellt werden soll !";
			prompt_contents = "";
			}	
		if (thetype == "bt") {
			prompt_text = "Gebe den Text ein der in BLUR dargestellt werden soll !";
			prompt_contents = "";
			}	
		if (thetype == "sub") {
			prompt_text = "Gebe den Text ein der TIEFGESTELLT dargestellt werden soll !";
			prompt_contents = "";
			}	
		if (thetype == "s") {
			prompt_text = "Gebe den Text ein der in Schattenform dargestellt werden soll !";
			prompt_contents = "";
			}	
		if (thetype == "sup") {
			prompt_text = "Gebe den Text ein der Hochgestellt dargestellt werden soll !";
			prompt_contents = "";
			}	
	linkurl = prompt(prompt_text,prompt_contents);
	if ((linkurl != null) && (linkurl != "")) {
		if ((linktext != null) && (linktext != "")) {
			AddTxt = "["+thetype+"]"+linkurl+"[/"+thetype+"] ";
			AddText(AddTxt,theform);
			
		}
	}}
}
// **********************denk********************************* 

function denkblase(theform,thetype) { 

linktext = prompt 
var prompttext; 

if (thetype == "denk") { 
prompt_text = "Gebe den Text ein der in einer Denkblase dargestellt werden soll !"; 
prompt_contents = ""; 
} 

linkurl = prompt(prompt_text,prompt_contents); 
if ((linkurl != null) && (linkurl != "")) { 
if ((linktext != null) && (linktext != "")) { 
AddTxt = "["+thetype+"]"+linkurl+"[/"+thetype+"] "; 
AddText(AddTxt,theform); 
                       } 
} 
} 

// **********************denk*********************************
// **********************BBCode-Hack Ende*********************************
// **********************Schild-BB-Code-Addon********************************* 

function schild(theform,thetype) { 

linktext = prompt 
var prompttext; 

if (thetype == "schild") { 
prompt_text = "Gebe den Text ein der in einem Schild dargestellt werden soll !"; 
prompt_contents = ""; 
} 
if (thetype == "denk") { 
prompt_text = "Gebe den Text ein der in einer Denkblase dargestellt werden soll !"; 
prompt_contents = ""; 
} 

linkurl = prompt(prompt_text,prompt_contents); 
if ((linkurl != null) && (linkurl != "")) { 
if ((linktext != null) && (linktext != "")) { 
AddTxt = "["+thetype+"]"+linkurl+"[/"+thetype+"] "; 
AddText(AddTxt,theform); 
                       } 
} 
} 

// **********************Schild-BBCode-Addon*********************************

//############# 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);
}

//############################################################

function dolist(theform) {
 listtype = prompt(list_type_prompt, "");
 if ((listtype == "a") || (listtype == "1")) {
  thelist = "[list="+listtype+"]\n";
  listend = "[/list="+listtype+"] ";
 }
 else {
  thelist = "[list]\n";
  listend = "[/list] ";
 }
 listentry = "initial";
 while ((listentry != "") && (listentry != null)) {
  listentry = prompt(list_item_prompt, "");
  if ((listentry != "") && (listentry != null))
   thelist = thelist+"[*]"+listentry+"\n";
 }
 AddTxt = thelist+listend;
 AddText(AddTxt,theform);
}

// *******************************************************

function smilie(thesmilie) {
 AddSmile = " "+thesmilie;
 theform = document.bbform;
 AddText(AddSmile,theform);
}

function opensmiliewindow(x,y,sid,boardid,styleid,katid) {

		window.open("misc.php?action=moresmilies&sid="+sid+"&katid="+katid, "smilies", "toolbar=no,scrollbars=yes,resizable=yes,width="+x+",height="+y);

	}

