// JavaScript Document
/*** Für das Forum ***/

//Felder aus Formular abrufen und auf Inhalt prüfen
// im Formular wird über onSubmit"return pruefeEingabe()" die Funktion pruefeEingabe aufgerufen
function pruefeEingabe() { 
	//Variable für die eMail-Abfrage (reguläre Ausdrücke s. 217:
	var re_mail = /^([_a-zA-Z0-9-]+)(\.[_a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,3})$/;
	var re_html = /</;
	
	var fehler = "Da stimmt was nicht!\n\n";
	//inputfelder in Variabelen schreiben
	var mail = document.formular.mail.value;
	var name = document.formular.name.value;
	var betreff = document.formular.betreff.value;
	var text = document.formular.text.value;
	var rubrik = document.formular.rubrik.value;
	var checked = true;
	
	//eigentliche Abfrage:
	if(re_html.test(text)==true || re_html.test(betreff)==true || re_html.test(name)==true) {
		fehler += "Bitte kein HTML eingeben!\n - \'<\' werden nicht akzeptiert!\n";
		checked = false;
	}
	
	if(name.length<3) {
	  fehler += "Der Name muss mindestens 3 Zeichen enthalten.\n";
	  document.getElementById('labelname').style.color = "#990000";
	  checked = false;
	}
	else {
		document.getElementById('labelname').style.color = "#000000";
	}
	
	if(betreff.length<1) {
	  fehler += "Bitte ein Thema eingeben.\n";
	  document.getElementById('labelbetreff').style.color = "#990000";
	  checked = false;
	}
	if(betreff.length>1 && betreff !="ohne") {
	  document.getElementById('labelbetreff').style.color = "#000000";
	}
	
	if(mail!="" && mail !="freiwillig") {
	if((re_mail.test(mail))==false) {
	  fehler += "Die Mailadresse muss nicht sein.\n - Wenn, dann bitte eine gültige eingeben.\n";
	  	document.getElementById('labelmail').style.color = "#990000";
		checked = false;
	}
	else {
		checked = true;
		document.getElementById('labelmail').style.color = "#000000";
		}
	}
	
	if(text.length<=1) {
	  fehler += "Text vergessen?\n";
	  document.getElementById('labeltext').style.color = "#990000";
	  checked = false;
	}
	else {
		document.getElementById('labeltext').style.color = "#000000";
	}

	if(rubrik=='x') {
	  fehler += "Bitte eine Rubrik wählen\n";
	  document.getElementById('labelrubrik').style.color = "#990000";
	  checked = false;
	}
	
	if(checked == false) { 
		alert(fehler);
		document.getElementById('scroll2').style.display = "none";
		checked = false;
	}
	
	if(checked == true) {
		document.formular.send.value = "yes";
		document.formular.method = "post";
		document.formular.action = "forum_check.php";
		document.formular.submit();
	}
	return checked; 
}

//HTTPeintrag in NEUES (html erlaubt)
function inserthttp(http, tar, feld) {
	hide(feld);
	var feldhttp = document.getElementById(http);
	var httplink = feldhttp.value;
	var feldtarget = document.getElementById(tar);
	var target = feldtarget.value;
	var inserttext = "<a href=\""+httplink+"\" "+target+"\>";
	insert(inserttext, '</a>');
}
//HTTPeintrag
function insertweb(http, tar, feld) {
	hidedisp(feld);
	var feldhttp = document.getElementById(http);
	var httplink = feldhttp.value;
	var feldtarget = document.getElementById(tar);
	var target = feldtarget.value;
	var inserttext = "[web "+httplink+"' "+target+"\>";
//	var inserttext = "[web "+httplink+"\" "+target+"\>";
	insert(inserttext, '[/web]');
}
function insertwebfeld(http, tar, input, feld) {
	hidedisp(feld); //ACHTUNG; Wenn irgendwo was nciht klappt: ich habe von hide() in hidedisp() umgeschrieben
	var feldinput = document.getElementById(input); 
	var input = feldinput.firstChild.nodeValue;
	var feldhttp = document.getElementById(http); 
	var httplink = feldhttp.value; 
	var feldtarget = document.getElementById(tar);
	var target = feldtarget.value;
	var inserttext = "[web "+httplink+"\" "+target+"\>";
	insertfeld(inserttext, '[/web]',input);
}

function insertbild(bildname, float, border, ut, input, feld) { //[bildaktion <?=$file?>\"",">","bloggtext"
	hide(feld);
	var bild = document.getElementById('bildname').innerHTML; 
	var ut = document.getElementById('ut').value;  //ut == untertitel
	var feldinput = document.getElementById(input); 
	var input = feldinput.firstChild.nodeValue;
	var feldfloat = document.getElementById(float); 
	var richtung = feldfloat.innerHTML; 
	var rahmen = document.getElementById('border').innerHTML;  
	if(rahmen == "mit") {rahmen = "";}
	else {rahmen = rahmen+" ";}
	var inserttext = "[bildaktion "+richtung+" "+rahmen+""+bild+"[ut]"+ut+"[/ut]";
	insert(inserttext, '[/bildaktion]',input);
}


//INSERTS - Formatierungen und Hilfebox
function hilfe(was) {
 	var feld = document.getElementById('help');
	switch(was) {
	 case "fett": var inhalt = "fetter Text - [b]text[/b] oder [xx][b]text[/b][/xx] - auf die Reihenfolge achten!"; break;
	 case "kursiv": var inhalt = "kursiver Text - [em]text[/em] oder [xx][em]text[/em][/xx] - auf die Reihenfolge achten!"; break;
	 case "xx": var inhalt = "größerer Text, 15px - [xx]text[/xx] oder [xx][b]text[/b][/xx] - auf die Reihenfolge achten!"; break;
	 case "weblink": var inhalt = "einen http://-Link setzen. Es muss eine Webadresse eingegeben werden. http:// nicht vergessen! "; break;
	 case "rot": var inhalt = "Text rot färben - [rot]text[/rot] oder [rot][b]text[/b][/rot] - auf die Reihenfolge achten!"; break;
 	 case "ico": var inhalt = "Ein Smile einfügen - im Textfeld, dort wo sich der Curser befindet"; break;
	 case "kopieren": var inhalt = "Text kopieren - Text markieren, dann auf zitieren klicken"; break;
	}
	feld.firstChild.nodeValue = inhalt;
}
function hilfeout() {
 	var feld = document.getElementById('help');
	var inhalt = "HINWEISE - So geht\'s"; 
	feld.firstChild.nodeValue = inhalt;
}

//Für Kommentare: Zitate
function kopie(aTag, eTag) {
	aTag = "[quote]";
	eTag = "[/quote]";
  var input = document.forms['formular'].elements['zitiertext'];
  input.focus();
  /* für Internet Explorer */
  if(typeof document.selection != 'undefined') {
    /* Einfügen des Formatierungscodes */
    var range = document.selection.createRange();
    var insText = range.text;
	if(insText.length>1) {
	kopieText = aTag + insText + eTag;
	}
  }
    /* für neuere auf Gecko basierende Browser */
 if(typeof input.selectionStart != 'undefined')
  {
    /* Einfügen des Formatierungscodes */
    var start = input.selectionStart;
    var end = input.selectionEnd;
    var insText = input.value.substring(start, end);
	kopieText = aTag + insText + eTag;
  }
  insert(kopieText,'');
  return kopieText;
}

function insertfeld(aTag, eTag, feld) {
	var input = document.getElementById(feld);
  //var input = document.forms['formular'].elements['text'];
  input.focus();
  /* für Internet Explorer */
  if(typeof document.selection != 'undefined') {
    /* Einfügen des Formatierungscodes */
    var range = document.selection.createRange();
    var insText = range.text;
    range.text = aTag + insText + eTag;
    /* Anpassen der Cursorposition */
    range = document.selection.createRange();
    if (insText.length == 0) {
      range.move('character', -eTag.length);
    } else {
      range.moveStart('character', aTag.length + insText.length + eTag.length);      
    }
    range.select();
  }
  /* für neuere auf Gecko basierende Browser */
  else if(typeof input.selectionStart != 'undefined')
  {
    /* Einfügen des Formatierungscodes */
    var start = input.selectionStart;
    var end = input.selectionEnd;
    var insText = input.value.substring(start, end);
	//alert(insText);
    input.value = input.value.substr(0, start) + aTag + insText + eTag + input.value.substr(end);
    /* Anpassen der Cursorposition */
    var pos;
    if (insText.length == 0) {
      pos = start + aTag.length;
    } else {
      pos = start + aTag.length + insText.length + eTag.length;
    }
    input.selectionStart = pos;
    input.selectionEnd = pos;
  }
  /* für die übrigen Browser */
  else
  {
    /* Abfrage der Einfügeposition */
    var pos;
    var re = new RegExp('^[0-9]{0,3}$');
    while(!re.test(pos)) {
      pos = prompt("Einfügen an Position (0.." + input.value.length + "):", "0");
    }
    if(pos > input.value.length) {
      pos = input.value.length;
    }
    /* Einfügen des Formatierungscodes */
    var insText = prompt("Bitte geben Sie den zu formatierenden Text ein:");
    input.value = input.value.substr(0, pos) + aTag + insText + eTag + input.value.substr(pos);
  }
}

//alte, ohne Feldauswahl - aber wahlversprechen oben
function insert(aTag, eTag) {
	var input = document.forms['formular'].elements['text'];
	input.focus();
	/* für Internet Explorer */
	if(typeof document.selection != 'undefined') {
	/* Einfügen des Formatierungscodes */
		var range = document.selection.createRange();
		var insText = range.text;
		range.text = aTag + insText + eTag;
		/* Anpassen der Cursorposition */
		range = document.selection.createRange();
		if (insText.length == 0) {
		  range.move('character', -eTag.length);
		} else {
		  range.moveStart('character', aTag.length + insText.length + eTag.length);      
		}
	range.select();
	}
	/* für neuere auf Gecko basierende Browser */
	else if(typeof input.selectionStart != 'undefined')
	{
		/* Einfügen des Formatierungscodes */
		var start = input.selectionStart;
		var end = input.selectionEnd;
		var insText = input.value.substring(start, end);
		//alert(insText);
		input.value = input.value.substr(0, start) + aTag + insText + eTag + input.value.substr(end);
		/* Anpassen der Cursorposition */
		var pos;
		if (insText.length == 0) {
		  pos = start + aTag.length;
		} else {
		  pos = start + aTag.length + insText.length + eTag.length;
		}
		input.selectionStart = pos;
		input.selectionEnd = pos;
  }
  /* für die übrigen Browser */
  else
  {
    /* Abfrage der Einfügeposition */
    var pos;
    var re = new RegExp('^[0-9]{0,3}$');
    while(!re.test(pos)) {
      pos = prompt("Einfügen an Position (0.." + input.value.length + "):", "0");
    }
    if(pos > input.value.length) {
      pos = input.value.length;
    }
    /* Einfügen des Formatierungscodes */
    var insText = prompt("Bitte geben Sie den zu formatierenden Text ein:");
    input.value = input.value.substr(0, pos) + aTag + insText + eTag + input.value.substr(pos);
  }
}

