// Sammlung von Funktionen  von Denis Glauch 2007-2009
// letztes Update 17.11.3009
// uses http://www.prototypejs.org/ Framework

function add_element(labelid, name_feld1, name_feld2) {
	labelid = typeof nextlabelid != "undefined" ? nextlabelid : labelid;
	//var p = document.createElement('p');
	/*var label = document.createElement('label');
		var att_for = document.createAttribute('for');
		var att_class = document.createAttribute('class');
		att_class.nodeValue = "edits";
		label.setAttributeNode(att_class);
		att_for.nodeValue = name_input+labelid;
		label.setAttributeNode(att_for);
		label.appendChild(document.createTextNode(name_input.capitalize()));
		p.appendChild(label);*/
	var feld1 = document.createElement('input');
		att_type.nodeValue = "text";
		att_id.nodeValue = name_feld1+labelid;
		att_name.nodeValue = name_feld1+"[]";
		att_value.nodeValue = "";
		feld1.setAttributeNode(att_type);
		feld1.setAttributeNode(att_id);
		feld1.setAttributeNode(att_name);
		feld1.setAttributeNode(att_value);
		document.getElementById('formular').appendChild(feld1);
	//var br = document.createElement('br');
	//p.appendChild(br);
	/*var label = document.createElement('label');
		var att_for = document.createAttribute('for');
		var att_class = document.createAttribute('class');
		att_class.nodeValue = "edits";
		label.setAttributeNode(att_class);
		att_for.nodeValue = name_textarea+labelid;
		label.setAttributeNode(att_for);
		label.appendChild(document.createTextNode(name_textarea.capitalize()));
		p.appendChild(label);*/
	var feld2 = document.createElement('input');
		att_type = document.createAttribute('type');
		att_id = document.createAttribute('id');
		att_name = document.createAttribute('name');
		att_value = document.createAttribute('value');
		att_class = document.createAttribute('class');
		att_type.nodeValue = "text";
		att_id.nodeValue = name_feld2+labelid;
		att_name.nodeValue = name_feld2+"[]";
		att_value.nodeValue = "";
		att_class.nodeValue = "eintrag";
		feld2.setAttributeNode(att_type);
		feld2.setAttributeNode(att_id);
		feld2.setAttributeNode(att_name);
		feld2.setAttributeNode(att_value);
		feld2.setAttributeNode(att_class);
		document.getElementById('formular').appendChild(feld2);
	/*var textarea = document.createElement('textarea');
		var att_id = document.createAttribute('id');
		var att_name = document.createAttribute('name');
		var att_class = document.createAttribute('class');
		att_id.nodeValue = name_textarea+labelid;
		att_name.nodeValue = name_textarea+"[]";
		att_class.nodeValue = "edits";
		feld2.setAttributeNode(att_id);
		feld2.setAttributeNode(att_name);
		feld2.setAttributeNode(att_class);
		document.getElementById('formular').appendChild(feld2);*/
	nextlabelid = labelid + 1;
}

//Checkbox markierung
//eine einzelne box markieren z.B. beim löschen eines einzelnen Eintrages (nur zur begreifenden Kosmetik)
function delete_this(name,nr) {
	var check = document.getElementsByName(name);
	var i = nr-1;
	check[i].checked = true;
	if (confirm("Hiermit wird die Nachricht "+nr+" gelöscht.") === true) {
		return true;
	}
	else {
		check[i].checked = false;
		return false;
	}
}
//funktion zum (de)markieren mehrerer checkboxen über eine hauptbox
function mark_checkboxes(hauptname, name){
	var hauptcheck = document.getElementsByName(hauptname);
	var checks = document.getElementsByName(name);
	var laenge = checks.length;
	
	for(i = 0; i < laenge; i++){
		if(hauptcheck[0].checked === true){
			checks[i].checked = true;
		}
		else{
			checks[i].checked = false;
		}
	}
}

function delete_all(hauptname, name) {
	var hauptcheck = document.getElementsByName(hauptname);
	var checks = document.getElementsByName(name);
	var z = 0;
	var spez = "";
	for (i=0; i < checks.length; i++) {
		if(checks[i].checked === true) {z++; spez = spez + (i + 1) + ", ";}
	}
	if(z===0) {alert("Nichts markiert."); return false;}
	else {
		if(z == checks.length) {
			if(confirm("Du hast alle Nachrichten markiert. Sie werden hiermit gelöscht.") === true) {
				return true;
			}
			else {
				hauptcheck[0].checked = false;
				mark_checkboxes(hauptname, name);
				return false;
			}
		}
		else {
			if(confirm("Hiermit "+(z == 1 ? "wird" : "werden")+" die markierten Nachricht"+(z == 1 ? "" : "en")+" "+spez.slice(0, spez.length-2)+" gelöscht.") === true) {
				return true;
			}
			else {
				hauptcheck[0].checked = false;
				mark_checkboxes(hauptname, name);
				return false;
			}
		}
	}
}

//funktion zum (de)markieren einer hauptbox über die checkboxen (der Vollständigkeit halber)
function auto_mark_hauptbox(hauptname, name){
	var hauptcheck = document.getElementsByName(hauptname);
	var checks = document.getElementsByName(name);
	var laenge = checks.length;
	var zaehler = 0;
	
	for (i=0; i < laenge; i++) {
		if (checks[i].checked === true) {
			zaehler = zaehler + 1;
		}
	}
	if (zaehler == laenge){
		hauptcheck[0].checked = true;
	}
	else{
		hauptcheck[0].checked = false;
	}	
}


function maxlength(obj) {
	var mlength = obj.getAttribute ? parseInt(obj.getAttribute("maxlength"),10) : "";
	if (obj.getAttribute && obj.value.length > mlength) {
		obj.value = obj.value.substring(0,mlength);
	}
}


//funktion zum sichtbar machen ganzer divs
/*die variable back (yes, no) gibt an ob nach display none zurück geschaltet werden soll, 'yes' bedeutet zurückschlatung, 'no' heisst keine zurückschaltung auf 'none' möglich
wenn nichts angegebn - immer yes*/
function see_hide(obj,back) {
	if(document.getElementById(obj).style.display == 'none') {
		document.getElementById(obj).style.display = 'block';
	}
	else {
		if(back != "no") {
			document.getElementById(obj).style.display = 'none';
		}
	}
}

//funktion zum sichtbar machen einzelner inputs
function sichtbar(feld) {
	var selfeld = document.getElementsByName(feld);
	var visfeld = document.getElementsByName('neu_'+ feld);
	if(selfeld[0].options[selfeld[0].selectedIndex].value == "neu") {
			visfeld[0].style.visibility = "visible";
	}	
	else{
		visfeld[0].style.visibility = "hidden";
	}
}
//für XHTML Strict target Ersatz in links
function innewwindow(was) { //Aufruf mit return innewwindow(this.href);
	window.open(was,'_blank');
	return false;
}

function popup(was) { //Aufruf mit return popup(this.href);
	window.open(was,'','resizable=yes,location=no,menubar=no,scrollbars=yes,status=no,toolbar=no,fullscreen=no,dependent=no,width=800,height=420');
	return false;
}

//Funktion Codiere Email Adresse
function ch1(x){
	var yy=2;
	var z=0;
	var xx="";
	for(var y=0;y<x.length;y++){
		z=x.charCodeAt(y);
		xx+=String.fromCharCode(z-yy);
	}
	return xx;
}
function msb(x){location.href=ch1(x);}
