/*
==================================================
Eingabefelder leeren 090211  (Wolfgang)
==================================================

Löscht auf focus den Standardinhalt von (normalen) Eingabefeldern 
und setzt ihn wieder ein, wenn das Feld nach Verlassen leer ist.

- der Standardwert wird aus dem alt-Attribut ausgelesen 
  und es wird nur gelöscht, wenn dieses gesetzt ist 
- sinnvollerweise sollte alt den selben (Standard-)Wert wie value haben
- Passwortfelder werden auch gelöscht, wenn der value nicht dem alt entspricht 
  (value von Passwortfeldern ist nicht prüfbar)
*/

function inputleeren(inputelement) {
if (inputelement.value==inputelement.alt) inputelement.value="";
}

function inputfuellen(inputelement) {
if (inputelement.value=="") inputelement.value=inputelement.alt;
}

// Initialisierung: 
// die richtigen input-Elemente werden bestimmt 
// und onfocus- und onblur-Funktionen werden zugewiesen
function prepareinputs() {
var inputs = document.getElementsByTagName("input");
for (var i=0;i<inputs.length;i++) {
	/*inputs[i].alt = inputs[i].value*/
	if (inputs[i].type == "text" && inputs[i].alt && inputs[i].alt.length > 0) {
		inputs[i].onfocus = function() {inputleeren(this);};
		inputs[i].onblur = function() {inputfuellen(this);};
		}
	else if (inputs[i].type == "password"){
		inputs[i].onfocus = function() {this.value="";};
		inputs[i].onblur = function() {inputfuellen(this);};
		}
	}
}



/*
==================================================
Monate
==================================================
*/
var monate;

function go(selected) {
	var wert = selected.options[selected.options.selectedIndex].value;
  	if (wert == "leer") {
    	selected.form.reset();
   		return;
 		} else {
	  	window.open(wert,"_self");
     	 selected.form.reset();
  		}
	}

function drucke(Monat) {
	for ( var i=0; i < monate.length; i++) {
		if (monate[i].parentNode != Monat) monate[i].parentNode.className="Kalender noPrint";
		}
		
	window.print();
	
	for ( var i=0; i < monate.length; i++) {
		monate[i].parentNode.className="Kalender";
		}
	return false;
	}
	

function prepareMonatswahl() {
	
	if (!document.getElementsByTagName) return false;
	if (!document.getElementById) return false;
	if (!document.getElementById("Veranstaltungsprogramm-Langliste")) return false;
	
	
	var inhalt = document.getElementById("InhaltSpalte")
	monate = inhalt.getElementsByTagName("caption");
	auswahlboxErstellen();
	var auswahlbox=document.getElementById("auswahlbox");
	/*monate[1].parentNode.className="invis";
	alert(monate[1].parentNode.className);*/
	
	for ( var i=0; i < monate.length; i++) {
		var monatsname = monate[i].firstChild.data
		var kurzmonat = monatsname.replace(/ /g, "-");
		monate[i].setAttribute("id", kurzmonat);
		var drucken = document.createElement("a");
		drucken.setAttribute("href", "#dieses-Monatsprogramm-ausdrucken");
		drucken.onclick = function() { return drucke(this.parentNode.parentNode);}
		drucken.appendChild(document.createTextNode("Monatsprogramm ausdrucken"));
		monate[i].appendChild(drucken);
		
		var option = document.createElement("option");
		option.appendChild(document.createTextNode(monatsname));
		option.setAttribute("value", "/fuer-besucher/veranstaltungsprogramm/#"+kurzmonat);
		auswahlbox.firstChild.appendChild(option);	
		}
	}


function auswahlboxErstellen() {
	var auswahlbox = document.createElement("form");
	auswahlbox.setAttribute("id", "auswahlbox");
	auswahlbox.setAttribute("action", "");
	auswahlbox.innerHTML = "<select size='1' name='Auswahl' onchange='go(this)'><option value='leer' selected='selected'>-> Monat ausw&auml;hlen<\/option><\/select>";
	var h1 = document.getElementsByTagName("h1")[0];
	h1.parentNode.insertBefore(auswahlbox, h1.nextSibling);
	}




/*
==================================================
Initialisierung aller Funktionen
==================================================
*/
function loadfunc(){
prepareMonatswahl();
prepareinputs();
}

window.onload=loadfunc;




/*
==================================================
typo3 4.2.1 Standardfunktion (offset=-2)
==================================================

entschlüsselt die typo3 eigene Mailverschlüsselung

*/

function decryptCharcode(n,start,end,offset){n=n+offset;if(offset>0&&n>end){n=start+(n-end-1);}else if(offset<0&&n<start){n=end-(start-n-1);}
return String.fromCharCode(n);}
function decryptString(enc,offset){var dec="";var len=enc.length;for(var i=0;i<len;i++){var n=enc.charCodeAt(i);if(n>=0x2B&&n<=0x3A){dec+=decryptCharcode(n,0x2B,0x3A,offset);}else if(n>=0x40&&n<=0x5A){dec+=decryptCharcode(n,0x40,0x5A,offset);}else if(n>=0x61&&n<=0x7A){dec+=decryptCharcode(n,0x61,0x7A,offset);}else{dec+=enc.charAt(i);}}
return dec;}
function linkTo_UnCryptMailto(s){location.href=decryptString(s,2);}

