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));
var d = new Date();
var day = d.getDate();	if (day < 10) day = "0" + day;
var month = d.getMonth() + 1; if (month < 10) month = "0" + month;
var hours = d.getHours(); if (hours < 10) hours = "0" + hours;
var mins = d.getMinutes(); if (mins < 10) mins = "0" + mins;

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;
 	theForm.glowselect.selectedIndex = 0;
 	theForm.spanselect.selectedIndex = 0;
  
 	setFocus(theForm);
}

function bbcode(theForm, theTag, promptText) {
	if ( normalMode(theForm) || (bbcode=="IMG")) {
		var selectedText = getSelectedText(theForm);
  		if (promptText == '' || selectedText != '') promptText = selectedText;

  		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, theForm);
  			}
  		}
  	}
}

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 schild(theForm, theTag, promptText) {

       if(promptText=='') promptText=getSelectedText(theForm);
       
       if (theTag == "schild") {
               inserttext = prompt("Gebe den Text ein der in einem Schild dargestellt werden soll !", promptText);
       }
       if (theTag == "denk") {
               inserttext = prompt("Gebe den Text ein der in einer Denkblase dargestellt werden soll !", promptText);
       }

       if ( (inserttext != null) && (inserttext != "") ) {
               addText("[" + theTag + "]" + inserttext + "[/" + theTag + "]", "", false, theForm);
       }
       
}

function denkblase(theForm, theTag, promptText) {

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

       if (theTag == "denk") {
               inserttext = prompt("Gebe den Text ein der in einer Denkblase dargestellt werden soll !", promptText);
       }

       if ( (inserttext != null) && (inserttext != "") ) {
               addText("[" + theTag + "]" + inserttext + "[/" + theTag + "]", "", 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(promptText=='') promptText=getSelectedText(theForm);

       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(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); 
                       } 
} 
} 

// **********************BBCode-Hack 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;

 		message.selectionStart = message.selectionStart + str.length;

  		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 watbbcode(theForm,theType) {
	var prompt_text_1;
	var prompt_text_2;
	var prompt_text_3;
	var prompt_text_4;
 	prompt_text_1 = "Für welche Datei willst Du einen Wasserstand eingeben?";
	prompt_text_2 = "Wieviel MB hast Du schon geladen?";
	prompt_text_3 = "Wieviel MB besitzt die Datei?";
	prompt_text_4 = "Wieviel Quellen sind verfügbar?";
 
	w_file = prompt(prompt_text_1);
	w_geladen = prompt(prompt_text_2);
	w_gesamt = prompt(prompt_text_3);
	w_quellen = prompt(prompt_text_4);
 
 
	if (w_file != "" || w_geladen != "" || w_gesamt != "" || w_quellen != "") {
		var theText = '';

		theText = "[B]"+w_file+":[/B] ["+theType+"]"+day+"."+month+" | "+hours+":"+mins+" | "+w_geladen+" von "+w_gesamt+" MB | "+w_quellen+" Sources[/"+theType+"]";

  		
  		addText(theText, "", false, theForm);
 	}
}
function opensmiliewindow(x,y,sid) {
 	window.open("misc.php?action=moresmilies&sid="+sid, "smilies", "toolbar=no,scrollbars=yes,resizable=yes,width="+x+",height="+y);
}

