// *******************************************************
// Sprache ***********************************************
// *******************************************************
tag_prompt = "Gebe einen Text ein:";
font_formatter_prompt = "Gebe einen Text ein - ";
link_text_prompt = "Gebe einen Linknamen ein (optional)";
link_url_prompt = "Gebe die volle Adresse des Links ein";
link_email_prompt = "Gebe eine Email Adesse ein";
list_type_prompt = "was für eine Liste möchtest du? Gebe '1' ein für eine nummerierte Liste, 'a' für ein alphabetische, oder gar nichts für eine einfache Punktliste.";
list_item_prompt = "Gebe eine Listepunkt ein.\nGebe nichts ein oder drücke 'Cancel' um die Liste fertigzustellen.";
// *******************************************************


opentags = new Array();
var selectedText = "";
AddTxt = "";

var myfrorm ="";
var element = "";

function getarraysize(myarray) {
 for (i = 0; i < myarray.length; i++) {
  if ((myarray[i] == "undefined") || (myarray[i] == "") || (myarray[i] == null)) return i;
 }
 return myarray.length;
}

function arraypush(myarray,value) {
 myarraysize = getarraysize(myarray);
 myarray[myarraysize] = value;
}

function arraypop(myarray) {
 myarraysize = getarraysize(myarray);
 retval = myarray[myarraysize - 1];
 delete myarray[myarraysize - 1];
 return retval;
}

function checkarray(bbcode,myarray){
	myarraysize = getarraysize(myarray);
	if(myarraysize==0) return false;
	else if(myarray[myarraysize - 1]== bbcode) return true;
		else return false;

}


function normalmode(myform) {
 if (myform.mode[0].checked) return true;
 else return false;
}

function AddUserText(NewCode,myform) {
 if (myform.message.createTextRange && myform.message.caretPos) {
  var caretPos = myform.message.caretPos;
  caretPos.text = caretPos.text.charAt(caretPos.text.length - 1) == ' ' ? NewCode + ' ' : NewCode;
 } else myform.message.value+=NewCode
 AddTxt = "";
 setfocus(myform);
}

function bbcode(bbcode,extratext)
{
myform = document.forms['myform'];
element = document.forms['myform'].elements['message'];

setfocus(myform);

 if ((normalmode(myform)) || (bbcode=="img")) {
    if (selectedText) var dtext=selectedText;
 		 else var dtext=extratext;
 		   inserttext = prompt(tag_prompt+"\n["+bbcode+"]xxx[/"+bbcode+"]",dtext);
  	if ((inserttext != null) && (inserttext != "")) { 
  		 AddTxt = "["+bbcode+"]"+inserttext+"[/"+bbcode+"] ";
  	   AddUserText(AddTxt,myform);
		 }
 }
 else {

  	if(checkarray(bbcode,opentags))
  		{
  			element.value += "[/"+bbcode+"]";
  			arraypop(opentags);
  		}
  		else {
  		   element.value += "["+bbcode+"]";
  			 arraypush(opentags,bbcode);
  		}

  }

setfocus(myform);

}





function setfocus(myform) {
 myform.message.focus();
}

function setlink() {
myform = document.forms['myform'];

	if (selectedText) { var dtext=selectedText; } else { var dtext=""; }
	linktext = prompt(link_text_prompt,dtext);
//		var prompttext;

			prompt_text = link_url_prompt;
			prompt_contents = "http://";

	linkurl = prompt(prompt_text,prompt_contents);
	if ((linkurl != null) && (linkurl != "")) {
		if ((linktext != null) && (linktext != "")) {
			AddTxt = "[URL="+linkurl+"]"+linktext+"[/URL] ";
			AddUserText(AddTxt,myform);
			
			}
		else{
			AddTxt = "[URL]"+linkurl+"[/URL] ";
			AddUserText(AddTxt,myform);
			
		}
	}
}

function myfont(myform,myvalue,mytype) {
 setfocus(myform);
 if (normalmode(myform)) {
  if (myvalue != 0) {
   if (selectedText) var dtext=selectedText;
   else var dtext="";
   inserttext = prompt(font_formatter_prompt+" "+mytype,dtext);
   if ((inserttext != null) && (inserttext != "")) {
    AddTxt = "["+mytype+"="+myvalue+"]"+inserttext+"[/"+mytype+"] ";
    AddUserText(AddTxt,myform);
   }
  }
 }
 else {
  myform.message.value += "["+mytype+"="+myvalue+"]";
  arraypush(opentags,mytype);
 }
 myform.sizeselect.selectedIndex = 0;
 myform.fontselect.selectedIndex = 0;
 myform.colorselect.selectedIndex = 0;
 setfocus(myform);
}


function makeliste() {

myform = document.forms['myform'];

	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;
	AddUserText(AddTxt,myform);

}

function closeall() {
myform = document.forms['myform'];
 if (!normalmode(myform)) {
  if (opentags[0]) {
   while (opentags[0]) {
    myform.message.value += "[/"+ arraypop(opentags) +"]";
   }
   theform.message.value += " ";
  }
 }
 setfocus(myform);
}


/****************************************/


function insertBB(tag) {
	// textfeld festlegen
	var element = document.forms['myform'].elements['message'];
	element.focus();
	var bbstarttag = "["+tag+"]";
	var bbendtag = "[/"+tag+"]";
	var text = element.value;

	if (typeof document.selection != 'undefined') {
		// text einfügen
		var range = document.selection.createRange();
    		var insText = range.text;
    		range.text = bbstarttag + insText + bbendtag;
		//cursor zwischen bbcode setzen, wenn nix markiert ist
		range = document.selection.createRange();
		if (insText.length == 0)	range.move('character', -bbendtag.length);
		else				range.moveStart('character', bbstarttag.length + insText.length + bbendtag.length);      
		
		range.select();
	} else if (typeof element.selectionStart != 'undefined') {
		// anfang und ende der selektion
		var anfang = element.selectionStart;
		var ende = element.selectionEnd;
		// bbcode einfügen
		element.value = text.substring(0,anfang)+bbstarttag+text.substring(anfang,ende)+bbendtag+text.substring(ende,text.length);
		// cursor setzen
		var newpos;
		if (ende-anfang == 0)	newpos = anfang + bbstarttag.length;
		else			newpos = ende + bbstarttag.length + bbendtag.length;

    		element.selectionStart = newpos;
		element.selectionEnd = newpos;
	} else alert("Ihr Browser unterstützt diese Funktion leider nicht!");
}

function smilie(smilie) {
	// textfeld festlegen
	var element = document.forms['form'].elements['text'];
	element.focus();
	var text = element.value;

	if (typeof document.selection != 'undefined') {
		// text einfügen
		var range = document.selection.createRange();
    		var insText = range.text;
    		range.text = insText + smilie;
	} else if (typeof element.selectionStart != 'undefined') {
		// anfang und ende der selektion
		var anfang = element.selectionStart;
		var ende = element.selectionEnd;
		// bbcode einfügen
		element.value = text.substring(0,ende)+smilie+text.substring(ende,text.length);
		// cursor setzen
		var newpos;
		newpos = ende + smilie.length;

    		element.selectionStart = newpos;
		element.selectionEnd = newpos;
	} else alert("Ihr Browser unterstützt diese Funktion leider nicht!");
}
function openGal(id) {
	var bild = window.open('gal.php?img='+id,'Vollbild','width=1020,height=760,left=0,top=0,screenX=0,screenY=0,scrollbars=yes,resizable=yes,location=no,directories=no,menubar=no,toolbar=no');
}

function smilie(smilie) {
	// textfeld festlegen
	var element = document.forms['myform'].elements['message'];
	element.focus();
	var text = element.value;

	if (typeof document.selection != 'undefined') {
		// text einfügen
		var range = document.selection.createRange();
    		var insText = range.text;
    		range.text = insText + smilie;
	} else if (typeof element.selectionStart != 'undefined') {
		// anfang und ende der selektion
		var anfang = element.selectionStart;
		var ende = element.selectionEnd;
		// bbcode einfügen
		element.value = text.substring(0,ende)+smilie+text.substring(ende,text.length);
		// cursor setzen
		var newpos;
		newpos = ende + smilie.length;

    		element.selectionStart = newpos;
		element.selectionEnd = newpos;
	} else alert("Ihr Browser unterstützt diese Funktion leider nicht!");
}
