/**
 * gesammelte Funktionen aus Templates
 * 
 * @author Markus L
 * 16.11.2010
 */

	var t;

    function openWindow(url, name, features){
      if(t && !t.closed){
        t.close();
    	}

    	t = window.open(url, name, features);
    	t.focus();
    }

    function zeige(beitrag,text) {    	
      document.getElementById(beitrag).firstChild.nodeValue = text;      
    }

    function surfto(form){
      var myindex=form.select1.selectedIndex
      if (form.select1.options[myindex].value != "0") {
      location=form.select1.options[myindex].value;}
    }

    function MM_jumpMenu(targ,selObj,restore){
      eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
      if (restore) selObj.selectedIndex=0;
    }
    

    
	// Quelle: http://coding.binon.net/index.htm?dhtml/transobj.htm
	// transparency() s. u.
	// Überprüfung entfernt
	function t(e,p){transparency(e,p);}

	// Ueberblendungsfunktion - Beispiel fuer transparency(): http://Coding.binon.net/Transparenz
	// Parameter: Image-Objekt, neuer Image-URL, Transparenzschritt (optional - Default: 4),
	//            Wartezeit zw. den Schritten (in ms - optional - Default: 20ms),
	//            Funktion die nach der Ueberblendung aufgerufen wird (optional)
	function imgBlend(imgObj,imgURL,step,time,onBlend) {
	  // Wenn Aufruf mit neuem Image-URL als Parameter und keine Ueberblendung laeuft: Initialisierungszweig der Funktion
		if(imgURL && !imgObj.blendTrans) {
			// Image-Eigenschaft um Ueberblendung abzubrechen
			imgObj.blendStop=false;
			// Image-Eigenschaft mit aktuellem Transparenzwert (100 = voll transparent, 0 = deckend)
			imgObj.blendTrans=100;
			// Image-Eigenschaft mit der Schrittweite
			imgObj.blendStep=(step)?step:4;
			// Image-Eigenschaft mit der Zeitspanne (in ms) bis zum naechsten Schritt
			imgObj.blendTime=(time)?time:30;
			// Image-Eigenschaft mit der abschliessend aufzurufenden Funktion
			if(onBlend) { imgObj.onBlend=onBlend; }
			// Grafik als zentrierte Hintergrundgrafik des Elternobjektes verwenden 
			imgObj.parentNode.style.background="url("+imgObj.src+") no-repeat center";
			// Grafik voll transparent machen
			t(imgObj,imgObj.blendTrans);
			// Neue Grafik laden
			imgObj.src=imgURL;
			// Funktion erneut (aber ohne Image-URL) aufrufen
			setTimeout(function() { imgBlend(imgObj); },imgObj.blendTime);

		// Wenn Aufruf ohne neuen Image-URL: Ueberblendungszweig der Funktion
		} else if(!imgURL) {
			// Neuen Transparenzwert berechnen (nicht kleiner 0)
			imgObj.blendTrans=Math.max(0,imgObj.blendTrans-imgObj.blendStep);
			// Wenn Grafik immer noch transparent und Ueberblendung nicht abgebrochen:
			if(imgObj.blendTrans>0 && !imgObj.blendStop) {

				// Neuen Transparenzwert setzen
				t(imgObj,imgObj.blendTrans);
				// Und erneuter Funktionsaufruf fuer naechsten Schritt
	    		setTimeout(function() { imgBlend(imgObj); },imgObj.blendTime);

	   			// Wenn Grafik nicht mehr transparent (Ende der Ueberblendung) oder Abbruch 
	   		} else {
	    		// Aktueller Transparenzwert ist 0
	    		imgObj.blendTrans=0;
	    		// Transparenzwert 0 setzen
	    		t(imgObj,0);
	    		// Alte (Hintergrund-)Grafik loeschen
	    		imgObj.parentNode.style.backgroundImage="";
	    		// Sofern gewuenscht: Abschlussfunktion (mit Image-Objekt als Parameter) aufrufen
	    		if(imgObj.onBlend) { onBlend=imgObj.onBlend; imgObj.onBlend=null; onBlend(imgObj); }
	   		}
	  	}
	}
	
	function transparency(element,percentage) {    	
		var i, count, objStyle, filterValue, opacityValue;
		if(document.getElementById) {
			if(typeof(element)=="object" && element) { obj=element; }
			else if (document.getElementsByName(element) && document.getElementsByName(element)[0]) { obj=document.getElementsByName(element); }
			else if (document.getElementById(element)) { obj=document.getElementById(element); }
			else if (document.getElementsByTagName && document.getElementsByTagName(element) && document.getElementsByTagName(element)[0]) { obj=document.getElementsByTagName(element); }
			else { obj=false; }
			if(obj) { 
				percentage=(typeof(percentage)=="undefined")?50:100-percentage;
				filterValue="Alpha(opacity="+percentage+")";
				opacityValue=""+percentage/100;
				count=(obj.length)?obj.length:1;
				for(i=0;i<count;i++) {
					objStyle=(obj.length)?obj[i].style:obj.style;
					objStyle.filter=filterValue;
					objStyle.MozOpacity=opacityValue;
					objStyle.KhtmlOpacity=opacityValue;
					objStyle.opacity=opacityValue; 
				}
			}
		}
	}
	
	//Handler für Submit-Schaltflächen
	function submithandler(formname, value){
		if(value != null){			
			$("#"+formname).append($('<input>').attr({
				type: "hidden",
				value: value,
				name: "submitvalue"
			}));
			
		}
		eval("document." + formname + ".submit()");
	}
	
	function isTouchDevice() {	
		var el = document.createElement('div');
		el.setAttribute('ongesturestart', 'return;');
		if (typeof el.ongesturestart == "function"){
			return true;
		} else {
			return false
		}  
	}
	
	//Emails codieren
	function mailEnc(form, feld){ 
		var mail = $('#' + feld).attr('value');
		var n = 0;
        var r = "";
        var s = "mailto:" + mail;
        
        for( var i=0; i < s.length; i++ ){
            n = s.charCodeAt( i );
            if( n >= 8364 ){
                n = 128;
            }
            r += String.fromCharCode(n+1);
        }
        
        $("#" + form).append($('<input>').attr({
			type: "hidden",
			value: r,
			name: feld + "_enc"
		}));
	}
	
	//Emails decodieren
	function UnCryptMailto( s ) {
        var n = 0;
        var r = "";
        
        for( var i = 0; i < s.length; i++) {
            n = s.charCodeAt( i );
            if( n >= 8364 ) {
                n = 128;
            }
            r += String.fromCharCode( n - 1 );
        }
        return r;
    }
	
	//Emails decodieren und verlinken
	function linkTo_UnCryptMailto( s ) {
        location.href=UnCryptMailto( s );
    }
