/**
* Datei mit verschiedenen grundlegenden Java-Script-Funktionen
*
* Diese Datei wird ständig erweiter.
*
* @version 1.0
* @author Thomas Hülsmann
*/


/**
* 'Abkürzung' für document.getElementById
* 
* @param string obj Name des Objektes
*/
function $gebi(id){
	return document.getElementById(id);
}


/**
* 'Abkürzung' für document.getElementById
* 
* Es gab hier einmal die Fnktion $(), die heute von der Funktion 
* $gebi() wahrgenommen wird. Die Funktion $() wird jetzt durch jquery genutzt,
* und mußte hier daher ausgeschaltet bzw, gelöscht werden.
* Zu Dokumentationszwecken (!) wurde die Funktion in $xxxx() umbenannt
* und ist unter diesem Namen hier verblieben.
* 
* @param string obj Name des Objektes
*/
function $xxxx(id){
	alert('Falscher Aufruf von document.getElementById');
	return;
	return document.getElementById(id);
}

/**
* Ein gültiges XMLHttpRequest-Objekt besorgen
* 
* @return Ein Objekt oder false
*/
function getXMLHttpRequest(){
	var xmlHttp = null;
	
	if (typeof XMLHttpRequest != 'undefined'){
	    xmlHttp = new XMLHttpRequest(); // Mozilla, Opera, Safari sowie Internet Explorer 7
	}else{
		if (xmlHttp == null) {
		    xmlHttp = new ActiveXObject("Msxml2.XMLHTTP"); // IE 5+6
			if (xmlHttp == null) {
			    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP"); // IE 5+6 andere Client Library
				if (!xmlHttp) {
					//alert('Kein XMLHttpRequest')
					return(false);
				}
			}
		}
	}
	return(xmlHttp);
}




/**
* Eine Kalendervariable für Datum Ein- und Ausgabe initialisieren
*
* Die Klasse hueCalendar wird zuvor in der index.php eingebunden!
*
* @see calendar.js
*/
var kalender = new hueCalendar('kalender');




/**
* In Arbeit/Zum Löschen vorgesehen 
*/
function step_forward( s ){
	//alert(s);
	if(s==undefined) s=1;
	else s++;
	if(document.getElementById("step")){
		document.getElementById("step").value = document.getElementById("step").value - s;
	}
}


/**
* In Arbeit/Zum Löschen vorgesehen 
*/
function step_back( s ){
	//alert(s);
	if(s==undefined) s=1;
	if(s<1) s=1;	
	s++;
	if(document.getElementById("step")){
		document.getElementById("step").value = document.getElementById("step").value - s;
	}
}


/**
* In Arbeit/Zum Löschen vorgesehen 
*/
function abort_process(){
	if(document.getElementById('step')){
		document.getElementById('step').value=0;
		return(true);
	}else{
		alert("Abbruch so nicht möglich!\n\n(Hinweis an den Sys-Admin: Element 'step' nicht gefunden.)");
	}
}


/**
* Die (evtl. hidden) Variable step Setzen und das Formular abschicken
*
* Es geht um das Abschicken eines Formulars mit Hilfe eines Buttons. 
Normalerweise wird ein Formular mit einem Submit-Button abgeschickt. 
Das Funktioniert im IE leider nicht mit einem 
<button type="submit" value="1">Text</button>
Hier wird der 'Text' als wert des Submit-Button geliefert. Erst recht mit mehreren
Submit-Buttons kann der IE nichts anfangen. Es wird immer der Text des ersten gesendet.
Daher wird hier eine Funktion zur Verfügung gestellt, mit der man mit
onsubmit="javascript:set_step_and_submit(123)";
einen Wert für die Vartiale Step setzen und dann das Formular abschicken kann.
*
* @param mixed wert Ein Wert, auf den die Variable step gesetzt werden soll
* @param mixed formularbezug Eine Zahl oder ein String, der das Forumalar identifiziert	
*/
function set_step_and_submit(wert, formularbezug){
	if(formularbezug == undefined) formularbezug = 0;
	var formular = document.forms[formularbezug];	//Zeiger auf das entsprechende Formular
	var element = formular['go'];	// Zeiger auf ein Element mit Namen 'go' im Formular
	element.value = wert;	// Variable belegen 
	formular.submit(); 		// und Formular abschicken!
}


/**
* Das aktuelle Fenster schließen
*
* Es wird versucht das aktuelle Fenster zu schließen. Verhindert dies der Browser,
* wird eine entsprechende Meldung ausgegegebn.
*
* Fremesets werden nicht (mehr) unterstützt.
*/
function window_close(){
	self.close(); 
	// Sollte das Fenster nicht geschlossen werden können, weil der Broser das abfängt,
	//if(document && documnt.location){
		//document.location.href='/';	// dann zeige Homepage an.
		//alert('Fenster konnte nicht geschlossen werden.');
	//}
	return;
}


/**
*	Ein Element mit einer Hintergrundfarbe markieren und 'entmarkieren'
*/

var mark_it_old_c = null;
function mark_it(e, s){
	var c = '#ccc';
	if(s==1){
		mark_it_old_c = e.style.backgroundColor;
		e.style.backgroundColor = c;
	}else{
		if(mark_it_old_c != null)
		e.style.backgroundColor = mark_it_old_c;
	}
}


	
/**
* Den Focus auf ein Elemnt mit dem Namen s setzen
* 
* Ist s nicht angegeben,
* wird der Focus auf das Element mit der ID 'focus' gesetzt.
*
* @param string s (optionaler) String für eine Element-ID
*/
function set_focus(s, select){
	if(s==undefined) s = 'focus';
	if(select==undefined) select = false; else select = (select == true);
	
	if(document.getElementById(s)){
		document.getElementById(s).focus();
		if(select) document.getElementById(s).select();
	}
}


/**
* Mit Select-Feld neues Dokument laden
*
* Auf Grund einer Auswahl (Option) in einem Select-Feld wird ein neues Dokuemnt geladen.
* In der Option des Select-Feldes muss die URL der neu zu ladenden datei stehen.
*
* Ist im Wert der Option das @-Zeichen enthalten, wird das, was nach dem @-Zeichen steht
* als Name für ein zu öffnendes neues Fenster oder für ein Fenster in einem Frameset (wenn vorhanden) 
* angenommen! Ist Dieser Name nicht angegeben, dann wird '' als Default-Wert angenommen. 
* Dann wird die Datei im selben Browserfenster geladen.
* 
* Wenn das Dokuemnt, in dem das Select-Feld steht, eine Frameset ist und es dort
* einen Bereich mit dem o.g. Namen  gibt, dann wird die Datei dorthin
* geladen. Ansonsten wird ein neues Fenster mit dem o.g. Namen geöffnet! 
*
* Ist der Wert der Option leer, dann wird nichts getan und der erste Index angezeigt.
*
*
* Code-Beispiel für das Select Feld:
*
*	<select name="" id="weitere_arbeiten" onchange="javascript:onchange_show_file('weitere_arbeiten');" >
*		<option value="" style="color:black;font-weight:bold;">wählen ...</option>
*		<option value="newsletter_show_abonements.php@abc">Zeige Abonements</option>
*		<option>Tue das</option>
*	</select>
*
* @param string ID des Select-Feldes
*/
function onchange_show_file(e){
	e_id = e.id;
	if (e_id == undefined) return(false);
	
	if( ! document.getElementById(e_id)) return(false);

	var e = document.getElementById(e_id);
	var i = e.selectedIndex;
	w = e.options[i].value;
	if(w == ''){	// Wenn nix im selectierten Feld steht
		e.selectedIndex = 0;
		return;
	}
	
	w = w + '@';	// Auf jeden Fall einen Namensbestandteil anhängen
	a = w.split('@');	// Aufteilen des String mit Hilfe des @-Zeichens
	
	var datei = a[0];
	var fenster = a[1];
	
	//alert ('Datei: ' + datei + '    Fenster: ' + fenster);	

	if(parent.frames[fenster]) // Gibt es das Fenster in einem Frameset
		parent.frames[fenster].location.href = datei;
	else{
		if(fenster == ''){ // Es wurde kein Fenstername angegeben
			window.location.href = datei;
			return
		}
		var neu = window.open(datei, fenster, 'top=0, toolbar=yes, location=yes, menubar=yes, resizable=yes, scrollbars=yes, status=yes');
		
		//alert ('Jetzt die Datei: ' + datei + '    mit dem Fenster: ' + fenster + ' öffnen');	
		var i = 1;
		while(! neu && i < 5000){
			i = i + 1;
		}
		if(neu) {
		//	try{
		//		for(i=1;i<100000;i++){
					// tue nix;
		//		}
				neu.focus();
		//	}catch($e){
		//	}
		}
	}
	e.selectedIndex = 0;
}

/**
* Abbrechen einer folge von Arbeitsschritten
*
* ehem. Funktionen der admin_abteilung
*/
function abbrechen(){
	if(document.getElementById('step')){
		document.getElementById('step').value=0;
		return(true);
	}else{
		alert("Abbruch so nicht möglich!\n\n(Hinweis an den Sys-Admin: Element 'step' nicht gefunden.)");
	}
}

/**
* In einer Folge von Arbeitsschritten einen Arbeitsschritt zurück
*
* ehem. Funktionen der admin_abteilung
*/
function zurueck( s ){
	//alert(s);
	if(s==undefined) s=1;
	if(s<1) s=1;	
	s++;
	if(document.getElementById("step")){
		document.getElementById("step").value = document.getElementById("step").value - s;
	}
}














/* ************************** *****************************/
/*                Funktionen um's Datum			          */
/* ************************** *****************************/




function datum_als_string(){
	var jetzt = new Date();
	var Tag = jetzt.getDate();
	var Monat = jetzt.getMonth()+1;
	var Jahr = jetzt.getFullYear();
	return(Tag + '.' + Monat + '.' + Jahr);
}

function uhrzeit_als_string(){
	var jetzt = new Date();
	var Stunde = jetzt.getHours();
	var Minute = jetzt.getMinutes();
	var Sekunde = jetzt.getSeconds();
	var Uhrzeit = Stunde + ":" + Minute;
	return(Uhrzeit);
}


/**
* Hinweis auf Eingabemöglichkeiten für ein datum anzeigen
*/
function datum_eingabe_hinweis(){
	alert('Das Datum können Sie eingeben, indem Sie auf das Kalendersymbol klicken.');
}




/**
* Mit Hilfe der Kalenderfunktion ein datum setzen
*
* @param event event Übergabe des Ereignisses
* @param string id ID desjenigen Elements, dass diese Funktion aufruft
* @param string datum_bis ID desjenigen Elements, dass das max.
* Datum enthält!
*/
function datum_von_eingeben(event, id, datum_bis){
    kalender.setze_titel('Datum von angeben');
    //kalender.setze_datum_max(document.getElementById(datum_bis).value, datum_bis);
    kalender.hole_datum(event, id);
}




/**
* Mit Hilfe der Kalenderfunktion ein datum setzen
*
* @param event event Übergabe des Ereignisses
* @param string id ID desjenigen Elements, dass diese Funktion aufruft
* @param string datum_von ID desjenigen Elements, dass das min.
* Datum enthält!
*/
function datum_bis_eingeben(event, id, datum_von){
    kalender.setze_titel('Datum bis angeben');
    //kalender.setze_datum_min(document.getElementById('atum_von).value, datum_von);
    kalender.hole_datum(event, id);
}




















/* ************************** *****************************/
/*                Funktionen für ein Select-Feld          */
/* ************************** *****************************/




/*
Die folgenden Funktionen dienen dazu, mit einem SELECT-Feld und seinen
OPTION, das als Auswahl fungiert, besser arbeiten zu können. Dabei wird 
nicht nur das Auswahl-SELECT-Tag selbt, sonder zusätzlich eine 
Eingabe-INPUT-Feld vom Typ 'text' und ein Ergebnis-SELECT-Feld benutzt. 
Eingaben in das INPUT-Textfeld führen zur Positionierung auf eine entsprechende 
Option im Auswahl-SELECT-Feld. Das Ergebnis-SELECT-Feld nimmt Optionen aus dem 
Auswahl-SELECT-Feld auf.

Beispiel: 
<input type="text" name="eingabe" id="eingabe" onKeyUp="select_set_option('eingabe', 'auswahl');" />

<select name="auswahl" i id="auswahl" 
  onchange="update_eingabe('auswahl', 'eingabe')" 
  onDblClick="javascript:return(select_option_ins('auswahl', 'ergebnis'));">
	<option value="1">Eins</option>
	<option value="2">Zwei</option>
	<option value="3">Drei</option>
</select>

<select name="ergebnis" id="ergebnis">
</select>

<input type="button" ... title="hinzufügen"         onclick="select_option_ins('auswahl', 'ergebnis')" />
<input type="button" ... title="entfernen)"         onclick="select_option_del('ergebnis')" />
<input type="button" ... title="nach oben bewegen"  onclick="select_option_up('ergebnis')" />
<input type="button" ... title=" unten bewegen"     onclick="select_option_down('ergebnis')" />


Es stehen also die Funktionen zur Verfügung, um
- die Auswahl in das Ergebnis zu übertragen,
- eine einzelne Option zu entfernen,
- im Ergebnis-SELECT die vorhandenen Optionen zu verschieben.
*/




/**
* Die in einem SELECT-Feld angesteuerte Option in ein Eingabefeld zu übertragen
* 
* Hiermit wird der Text (nicht der Wert!) derjenige Option, die im Select-Feld ausgewählt
* ist, in ein INPUT-Feld vom Typ Text übertragen!
*
* @param string id_auswahl Die ID des SELECT-Tags, das die Auswahl enthählt
* @param string id_eingabe Die ID des INPUT-Feldes, das den Text der Auswahl entgegen nimmt.
*/
function update_eingabe(id_auswahl, id_eingabe){
    var o1 = document.getElementById(id_eingabe);
    var o2 = document.getElementById(id_auswahl);

    if(! o1 || ! o2) return(false);

    o1.value ='';
    i = o2.selectedIndex;
    if(i >= 0) o1.value = o2.options[i].text;
}




/**
* Aufgrund einer Eingabe entsprechende Option setzen
*
* In einem text-feld kann eine Eingabe gemacht werden. Die Eingabe wird
* wird überprüft und ggf. wird in einem Select-feld eine entsprechende
* Option ausgewählt. Gibt es keine entsprechende Option, wid im Eingabefeld
* die letzte Eingabe rückgängig gemacht!
*/
function select_set_option(id_eingabe, id_auswahl){
    var o1 = document.getElementById(id_eingabe);
    var o2 = document.getElementById(id_auswahl);

    if(! o1 || ! o2) return(false);

    var eingabe     = o1.value;

    if(eingabe == '') return(true); // Alles o.k. aber nix zu tun

    var gefunden        = true;
    var eingabe_laenge  = eingabe.length;
    var listen_laenge   = o2.options.length;

    var i               = 0;
    var z               = 0;

    var buchstabe           = '';
    var bishergefunden      = '';
    var indexbishergefunden = -1;

    while( (i < eingabe_laenge) && gefunden ){

        buchstabe = eingabe.substr(i,1).toUpperCase();

        weiter = true;
        while(weiter){
            vergleich = o2.options[z].text.substr(i,1).toUpperCase();

            if (vergleich !=  buchstabe){
                z++;    // erhöhe Zeiger nur, wenn Buchstabe nicht gefunden wurde
            }else{
                weiter=false
            }

            if(z == listen_laenge){
                weiter = false;
            }
        }
        /*
            Jetzt haben wir folgende Situation: Es wurde der i-te Buchstabe im
            Eingabestring mit dem i-ten Buchstaben in den Listen-Einträgen
            verglichen. Es gibt nun zwei Möglichkeiten:
            - die Buchstaben stimmen überein
            - die Buchstaben stimmen nicht überein

            Wenn die Buchstaben übereinstimmen, wird dieser den bishergefundenen
            Buchstaben hinzugefügt und der Index für den bishergefundenen
            Listeneintrag wird aktualisiert.

            Wenn die Buchstaben nicht übereinstimmen, geschieht nichts dergleichen
            und wir sind fertig. Das signalisieren wir damit, dass
            'gefunden' = false gesetzt wird!
        */

        if(vergleich ==  buchstabe){
            /*
                Die Buchstaben an der i-ten Position stimmen also überein.
                Stimmt aber alles noch bis zum i-ten Buchstaben überein?
                Nur dann ist der neu gefundene Buchstabe hinzuzufügen.
                Ansonsten ist Schluß!
            */
            if(i==0 || o2.options[z].text.substr(0,i).toUpperCase() == eingabe.substr(0,i).toUpperCase() ){
                bishergefunden = bishergefunden + o2.options[z].text.substr(i,1);
                indexbishergefunden = z;
                i++;    //nächsten Buchstaben vergleichen
            }else{
                gefunden = false;
            }
        }else{
            gefunden = false;
        }
    }

    //alert(i + '|' + eingabe.length);
    o1.value = bishergefunden;
    o2.selectedIndex = indexbishergefunden;
    o2.options[indexbishergefunden].selected = true;

    //Leider im Netscape 6 noch fehlerhaft; das entsprechende Element bekommt nicht(!) den Focus
    //o2.options[indexbishergefunden].focus();  //??
    //o2.focus();                                   //??

    return(true);
}




/**
* Eine neue Option in ein Ergebnis-Select übertragen
*
* Aus einem SELECT-Tag, das der Auswahl dient, wird die ausgewählte Option in
* ein SELECT-Tag, das Ergebnisse aufnehmen soll, übertragen.
*
* @param string id_quelle ID desjenigen Select-Feldes, das der Auswahl dient
* @param string id_ziel ID desjenigen Select-Feldes, das die Ergebnisse aufnimmt.
*/
function select_option_ins(id_quelle, id_ziel){
    var r = document.getElementById(id_quelle);
    var z = document.getElementById(id_ziel);

    var p   = document.getElementById(id_quelle).selectedIndex;
    var z_l = z.length;

    if (! r || ! z  || p < 0) return(false);
    //alert(r.options[p].value + ' = ' + r.options[p].text);

    for(i=0; i<z_l; i++){
        if(z.options[i].value == r.options[p].value){
            alert('Dieser Wert ist schon vorhanden!');
            return(false);
        }
    }

    var eintrag = new Option(z);
    eintrag.value = r.options[p].value;
    eintrag.text  = r.options[p].text;
    eintrag.title  = '[Wert: ' + r.options[p].value + ']';
    z.options[z_l] = eintrag;
}




/**
* Eine neue Option in ein Ergebnis-Select einfügen
*
* Eine Option und den dazugehörigen Text in 
* ein SELECT-Tag, das Ergebnisse aufnehmen soll, übertragen.
*
* @param string wert Wert des neuen Select-Feldes
* @param string text Text zu dem neuen Wert
* @param string id_ziel ID desjenigen Select-Feldes, das die Ergebnisse aufnimmt.
* @param boolean alarm bei true wird eine Nachricht ausgegeben, wenn ein Wert in der Liste schon vorhanden ist.
*/
function select_option_ins_by_value(wert, text, id_ziel, alarm){
	if(alarm==undefined) alarm = true;
    var z = document.getElementById(id_ziel);
    if (! z  ) return(false);

    var z_l = z.length;


    for(i=0; i < z_l; i++){
        if(z.options[i].value == wert){
            if(alarm){
            	alert('Wert: "' + wert + '" mit der Ausprägung "' + z.options[i].text + '" ist schon vorhanden!');
	            return(false);
            }
            return;
        }
    }

    var eintrag = new Option(z);
    eintrag.value = wert;
    eintrag.text  = text;
    eintrag.title  = '[Wert: ' + wert + ']';
    z.options[z_l] = eintrag;
}




/**
* Entfern eine Option aus einem Select-Tag
*
* @param string id_ziel ID des Select-Feldes, aus dem die markierte Option entfernt werden soll
*/
function select_option_del(id_ziel){
    var z   = document.getElementById(id_ziel);
    var anz = z.length;
    if(anz < 1) return(false);
	
    var p   = z.selectedIndex;

    if (! z  || p < 0 || ! z.options.length) return(false);

    for(i=p+1; i < anz; i++){
        z.options[i-1].value = z.options[i].value
        z.options[i-1].text = z.options[i].text
    }
    z.options[anz-1] = null;

    if( (p+1) == anz && (anz > 1)){
            // wenn das letzte Element gelöscht wurde
            // und noch wenigstens ein Element da ist
        z.options[p-1].selected = true;
    }
}




/**
* Option in einem Select-Tag um eins nach oben schieben
*
* @param string id_ziel ID des Select-Feldes, in dem die markierte Option nach oben verschoben werden soll
*/
function select_option_up(id_ziel){
    var s = document.getElementById(id_ziel);
    if (document.getElementById(id_ziel)  && (s.selectedIndex > -1) ){

        var anz     = s.length;
        var pos     = s.selectedIndex;
        var wert    = s.options[pos].value;
        var text    = s.options[pos].text;

        if ((pos+1) < anz){ // Wenn das gewählte nicht das letzte Element ist!
            // Werte des nächsten Elements retten
            var wert_x = s.options[pos+1].value;
            var text_x = s.options[pos+1].text;

            // Werte des nächsten Elements mit denenen des aktuellen
            // Elements überschreiben
            s.options[pos+1].value = wert;
            s.options[pos+1].text = text;

            // Werte des aktuellen Elements mit denenen des ehem. nächsten
            // Elemnts belegen
            s.options[pos].value = wert_x;
            s.options[pos].text = text_x;

            s.selectedIndex = (pos+1);

        }
    }
}




/**
* Option in einem Select-Tag um eins nach unten schieben
*
* @param string id_ziel ID des Select-Feldes, in dem die markierte Option nach unten verschoben werden soll
*/
function select_option_down(id_ziel){
    var s = document.getElementById(id_ziel);
    if (document.getElementById(id_ziel)  && (s.selectedIndex > -1) ){
        var anz     = s.length;
        var pos     = s.selectedIndex;
        var wert    = s.options[pos].value;
        var text    = s.options[pos].text;

        if (pos > 0){ // Wenn das gewählte nicht das erste Element ist!
            // Werte des vorherigen Elements retten
            var wert_x = s.options[pos-1].value;
            var text_x = s.options[pos-1].text;

            // Werte des vorherigen Elements mit denenen des aktuellen
            // Elements überschreiben
            s.options[pos-1].value = wert;
            s.options[pos-1].text = text;

            // Werte des aktuellen Elements mit denenen des ehem. vorherigen
            // Elements belegen
            s.options[pos].value = wert_x;
            s.options[pos].text = text_x;

            s.selectedIndex = (pos-1);
        }
    }
}




/**
* Alle Optionen eines Selct-Feldes löschen
*
* @param string id_ziel ID des Select-feldes
* @param boolean Erfolg/Mißerfolg
*/
function select_option_del_all(id_ziel){
    var g = document.getElementById(id_ziel);
    if(! g) return(false);
    while(g.length > 0){
    	g.options[g.length-1] = null;
    }
    return(true);
}


/*        Ende der Funktionen zum SELECT-Feld-Umgang               */





/**
* Anzeige der Länge/Anzahl Zeichen des aktuellen Feldes
*
* Afruf z.B. mit: onkeyup='chartest(this)';
*/
function chartest(e){
	// Das geht nicht wg. webwasher: window . status = e.value.length + ' Zeichen';
	// TODO !!!!!!!!!!
}





/**
* Test auf Anzahl Anzahl Zeichen des aktuellen Feldes
*/
function testmaxlength(e){
	var max = 3500;
	if(e){
		if(e.value.length > max){
			alert('Zu viel Text im Textfeld. Bitte Text auf weniger als ' + max + ' Zeichen kürzen. ' +
			'Zur Zeit umfaßt der Text ' + e.value.length + ' Zeichen!'
			);
			return(false)
		}
	}
	return true;
}




/**
* Test auf Anzahl Anzahl Zeichen des Feldes mit einer ID
*
*
*/
function testmaxlength_by_id(id){
	var e = document.getElemntById(id);
	return testmaxlength(e);
}



function getScrollX(){	
	return(window.pageXOffset);
	return(document.getElementById('seitenbereich').scrollLeft);
}

function getScrollY(){
	return(window.pageYOffset -150);
	return(document.getElementById('seitenbereich').scrollTop);
}


/**
* Schriftgröße im gesamten Dokument und damit die Skalierung des
* gesamten Inhalts verändern
*
* @param float v Veränderung der Schriftgröße 
* (> 0 vergrößert, < 0 verkleinert, == 0 stellt Standard wieder her
**/
function schriftgroesse(v){
	var temp = document.getElementsByTagName('body')[0].style.fontSize;
	temp = parseFloat(temp);
	temp = temp + v;
	if(v==0) temp=67;	// Standardschriftgöße wieder herstellen
	if(temp < 40) temp = 40
	document.getElementsByTagName('body')[0].style.fontSize = temp + '%';
	set_var('publ_font_size', temp);
	
	return;
}


/**
* Eine Variable setzen
*
* In set_var.php wird bestimmt, 
* welche Variablen mit welchen Werten gesetzt werden können!
*
* @param string v Variablenname
* @param string i Inhalt/Wert der Variablen
**/
function set_var(v,i) {
	var xmlHttp = getXMLHttpRequest();

	var dest = '/publ/gemeinsam/set_var.php?var=' + v + '&val=' + i;
    xmlHttp.open('GET', dest , true);

    xmlHttp.onreadystatechange = function () {
        if (xmlHttp.readyState == 4) {
		    var antwort = '';
        	antwort = xmlHttp.responseText;
        	// mit der Antwort NIX machen
        	// alert(antwort);  // zum Testen
        	return;
        }
    }
    xmlHttp.send(null);
}

/**
 * Funktion zum Anzeigen eines Bildes mit Hilfe von shadowbox
 * 
 * @param integer id des anzuzeigenden Bildes
 */
function show_bild_with_shadowbox(id){
	//alert('Bild-Id: ' + id);
    $.ajax({
		url: 'q_httpreq_get_data.php?'+
			'todo=bilder_get_daten'+
			'&id='+id,
		async: false,
		context: document.body,
		success: function( data ) {
		    //alert('Folgende Daten wurden empfamgen: ' + data);
			if(data == ''){
				Shadowbox.open({
			        content:    '<div id="bildanzeigenachricht">' +
			        	'<h1 style="text-align:center">'+
			        	'Fehler bei der Anzeige eines Bildes</h1>' +
			        	'<p style="text-align:center">'+
			        	'Das Bild wurde nicht gefunden!</p>' + 
			        	'</div>',
			        player:     "html",
			        title:      "Fehlermeldung",
			        height:     250,
			        width:      250
			    });
				return;
			}
			var temp = data.split('|');
			/*
				temp[0] = id
				temp[1] = dateiname
				temp[2] = beschreibung
				temp[3] = stw
				temp[4] = cpy (copyright)
				temp[5] = ma_id
				temp[6] = MA-Typ
				temp[7] = datum 
				temp[8] = pfad
				temp[9] = breite
				temp[10] = hoehe
			*/
			temp[9] 	= parseInt(temp[9])  + 5;
			temp[10] 	= parseInt(temp[10]) + 5;
			Shadowbox.open({
		        content:    '<div style="overflow:hidden;width:100%;' +
		        	'height:100%" id="bildanzeigenachricht">' +
		        	'<img style="width:100%; height:100%" alt="' + 
		        	temp[1] +'" ' +  
		        	'src="?todo=bilder&id=' + id +'" >' +  
		        	'</div>',
		        player:     "html",
		        title:      temp[2],
		        height:     temp[10],
		        width:      temp[9] ,
		        handleOversize:     "resize"
		    });
		 }
	});		
	
}

