/**
*	Frontend-Script
*
*	enthält viele Funktionen für das Frontend
*	(c) 2002-2011, Alexander Selck
*/
var menuoffset_y=null;
var aktuellesbild=0;
var timer=null;
var timerpause=null;
var htimer=null;
var htimer2=null;
var s_activelayer=0;
var h_obj;
var HexChars = "0123456789ABCDEF";
var syn_tb_booklet = "";

/**
*   Manchmal braucht man mehrere onloads
*/
function addLoadEvent_Syn(func) {
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func;
    } else {
        window.onload = function() {
            if (oldonload) {
                oldonload();
            }
            func();
        };
    }
}

/**
*	bildhervorheben
*/
function bildhervorheben(b, m) {
    if (b.parentElement) {
        e = b.parentElement.parentElement;
    }
    if (b.parentNode) {
        e = b.parentNode.parentNode;
    }
    if (e.className == "singleImage") {
        switch (m) {
            case 1:
                if (document.all) {
                    b.style.filter = "alpha(opacity=100)";
                }
                else {
                    b.style.opacity = 1;
                }
                break;
            default:
                if (document.all) {
                    b.style.filter = "alpha(opacity=40)";
                }
                else {
                    b.style.opacity = 0.4;
                }
                break;
        }
    }
}

/**
*	checkMouseLeave
*/
function checkMouseLeave(element, evt) {
    if (element.contains && evt.toElement) {
        if (evt.toElement.tagName == "AREA") {
            return false;
        }
        return !element.contains(evt.toElement);
    }
    else if (evt.relatedTarget) {
        if (evt.relatedTarget.tagName == "AREA") {
            return false;
        }
        return !containsDOM(element, evt.relatedTarget);
    }
}

/**
*	checkPassword
*/
function checkPassword(pflichtfeld) {
    var alarm = "";
    var pointer = 0;
    for (i = 0; i < document.forms.length; i++) {
        if (document.forms[i].name == "anmeldung") {
            var fields = document.forms[i].elements;
            pointer = i;
        }
    }
    if ((fields['pw'].value == "" || fields['pwconfirm'].value == "")) {
        alarm = "Bitte geben Sie ein Passwort ein.";
    }
    if (fields['pw'].value != fields['pwconfirm'].value) {
        alarm = "Die von Ihnen eingegebene Passwortbestätigung unterscheidet sich von Ihrem gewünschten Passwort. Bitte überprüfen Sie Ihre Eingaben.";
    }
    for (i = 0; i < fields.length; i++) {
        if (fields[i].className.indexOf("pflichtfeld") > -1) {
            fields[i].style.backgroundColor = "white";
        }
    }
    for (i = 0; i < fields.length; i++) {
        if (fields[i].value == null || fields[i].value == "") {
            if (fields[i].options || fields[i].type == "hidden" || fields[i].name == "facsimiletelephonenumber") {
            }
            else {
                if (pflichtfeld == true) {
                    if (fields[i].className.indexOf("pflichtfeld") > -1) {
                        alarm = "Bitte füllen Sie alle rot markierten Felder aus.";
                        fields[i].style.backgroundColor = "red";
                    }
                }
                else {
                    alarm = "Bitte füllen Sie alle Felder aus.";
                }
            }
        }
    }
    if (alarm == "") {
        document.forms[pointer].submit();
    }
    else {
        alert(alarm);
    }
}

/**
*   clearhtimer2
*/
function clearhtimer2() {
    htimer2 = null;
}

/**
*	containsDOM
*/
function containsDOM(container, containee) {
    var isParent = false;
    do {
        if ((isParent = container == containee))
            break;
        containee = containee.parentNode;
    }
    while (containee != null);
    return isParent;
}

/**
*	diashowmove
*/
function diashowmove(m) {
    var b = document.getElementById("allebilder").childNodes;
    var n = b.length;
    switch (m) {
        case 0:
            aktuellesbild--;
            break;
        case 1:
            aktuellesbild++;
            break;
    }
    if (aktuellesbild > n) {
        aktuellesbild = aktuellesbild - n;
    }
    if (aktuellesbild < 0) {
        aktuellesbild = n + aktuellesbild;
    }
    if (b[aktuellesbild]) {
        var t = b[aktuellesbild].childNodes[0].href.replace("javascript:", "");
        eval(t);
    }
    else {
        switch (m) {
            case 0:
                aktuellesbild = n;
                break;
            case 1:
                aktuellesbild = 0;
                break;
        }
        var t = b[aktuellesbild].childNodes[0].href.replace("javascript:", "");
        eval(t);
    }
    fotoshowstart();
}

/**
*	diashowrun
*/
function diashowrun(v) {
    if (timer != null) {
        window.clearInterval(timer);
        timer = null;
    }
    switch (v) {
        case 2:
            timer = window.setInterval("diashowmove(1)", 3000);
            break;
        case 1:
            timer = window.setInterval("diashowmove(1)", 5000);
            break;
        default:
            if (timer != null) {
                window.clearInterval(timer);
                timer = null;
            }
            break;
    }
}

/**
*	emailCheck
*
*	überprüft eine E-Mail-Adresse auf Ihr Gültigkeit
*/
function emailCheck(emailStr) {

    /**
    *	Sollen TLDs überprüft werden?
    *	0=nein, 1=ja
    */
    var checkTLD = 1;

    /**
    *	Liste gültiger TLDs mit mehr als 2 Buchstaben
    */
    var knownDomsPat = /^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;
    var emailPat = /^(.+)@(.+)$/;
    var specialChars = "\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
    var validChars = "\[^\\s" + specialChars + "\]";
    var quotedUser = "(\"[^\"]*\")";
    var ipDomainPat = /^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
    var atom = validChars + '+';
    var word = "(" + atom + "|" + quotedUser + ")";
    var userPat = new RegExp("^" + word + "(\\." + word + ")*$");
    var domainPat = new RegExp("^" + atom + "(\\." + atom + ")*$");
    var matchArray = emailStr.match(emailPat);
    if (matchArray == null) {
        alert("Ungültige Email-Adresse (prüfen Sie @ und .'s)");
        return false;
    }
    var user = matchArray[1];
    var domain = matchArray[2];
    for (i = 0; i < user.length; i++) {
        if (user.charCodeAt(i) > 127) {
            alert("Ungültige Zeichen im Usernamen.");
            return false;
        }
    }
    for (i = 0; i < domain.length; i++) {
        if (domain.charCodeAt(i) > 127) {
            alert("Ungültige Zeichen im Domainnamen.");
            return false;
        }
    }
    if (user.match(userPat) == null) {
        alert("Name ungültig.");
        return false;
    }
    var IPArray = domain.match(ipDomainPat);
    if (IPArray != null) {
        for (var i = 1; i <= 4; i++) {
            if (IPArray[i] > 255) {
                alert("IP Addresse ungültig!");
                return false;
            }
        }
        return true;
    }
    var atomPat = new RegExp("^" + atom + "$");
    var domArr = domain.split(".");
    var len = domArr.length;
    for (i = 0; i < len; i++) {
        if (domArr[i].search(atomPat) == -1) {
            alert("Ungültige Domain.");
            return false;
        }
    }
    if (checkTLD && domArr[domArr.length - 1].length != 2 &&
	domArr[domArr.length - 1].search(knownDomsPat) == -1) {
        alert("Ungültige Top-Level-Domain oder Land.");
        return false;
    }
    if (len < 2) {
        alert("Kein Host angegeben!");
        return false;
    }
    return true;
}

/**
*	fotoshowStart
*/
function fotoshowstart() {
    if (parent.frames.length == 0) {
        if (document.all) {
            var width = 685;
            var height = 686;
        }
        else {
            var width = 676;
            var height = 681;
        }
        var x = Math.round((screen.availWidth - width) / 2);
        var y = Math.round((screen.availHeight - height) / 2);
        window.moveTo(x, y);
        window.resizeTo(width, height);
    }
    document.getElementById("vorhang").style.display = "none";
    document.getElementById("allebilder").style.display = "none";
    var p = document.getElementById("previewbox");
    p.innerHTML = "";
    if (document.getElementById("allebilder").innerHTML == "") {
        document.getElementById("imageframe_knopfbox").style.visibility = "hidden";
    }
    var b = document.getElementById("allebilder").childNodes;
    var n = b.length;
    for (i = 0; i < n; i++) {
        if (b[i].childNodes[0].rel != "" && b[i].childNodes[0].rel != "undefined" && b[i].childNodes[0].rel != null) {
            b[i].childNodes[0].childNodes[0].src = "/images/cut/0/" + b[i].childNodes[0].rel + "/73/55.jpg";
        }
    }
    if (aktuellesbild > n) {
        aktuellesbild = aktuellesbild - n;
    }
    if (aktuellesbild < 0) {
        aktuellesbild = n + aktuellesbild;
    }
    if (n > 5) {
        var startpos = aktuellesbild - 2;
        var endpos = (parseInt(aktuellesbild) + 3);
    }
    if (n >= 1 && n <= 5) {
        var startpos = 0;
        var endpos = 5;
    }
    if (n < 5) {
        var startpos = 0;
        var endpos = n;
    }
    for (i = startpos; i < endpos; i++) {
        var pos = i;
        if (pos < 0) {
            pos = n + pos;
        }
        if (pos >= n) {
            pos = pos - n;
        }
        var newbild = document.createElement("DIV");
        newbild.innerHTML = b[pos].innerHTML;
        if (pos == aktuellesbild) {
            newbild.className = "singleImageAktiv";
        }
        else {
            newbild.className = "singleImage";
        }
        p.appendChild(newbild);
    }
}

/**
*	getDim
*
*	findet die Koordinaten des Elements heraus,
*	auf welches geklickt wurde.
*
*	@el:	pointer auf das HTML-Element, welches untersucht wird
*/
function getDim(elem) {
    var ua = navigator.userAgent.toLowerCase();
    var isSafari = (ua.indexOf('safari') > -1);
    if (document.getElementById) {
        var x = 0;
        var y = 0;
        while (elem.offsetParent) {
            x += elem.offsetLeft + (elem.clientLeft || 0);
            y += elem.offsetTop + (elem.clientTop || 0);
            elem = elem.offsetParent;
        }
        if (isSafari) {
            x -= document.body.offsetLeft;
            y -= document.body.offsetTop;
        }
        return { x: x, y: y };
    }
    if (document.layers) {
        return {
            x: elem.x, y: elem.y
        }
    }
}

/**
*	stellt fest, ob ein Objekt des Typs obj in der Objekthierarchie nach oben enthalten ist
*/
function getDiv(obj, name) {
    while (obj.parentNode) {
        if (obj.parentNode.tagName == name) {
            return true;
        }
        obj = obj.parentNode;
    }
    return false;
}

/**
*	stellt fest, ob ein Objekt des Typs obj in der Objekthierarchie nach oben enthalten ist
*/
function getId(obj, name) {
    while (obj.parentNode) {
        if (obj.parentNode.id == name) {
            return true;
        }
        obj = obj.parentNode;
    }
    return false;
}

/**
*	stellt fest, ob ein Objekt des Typs obj in der Objekthierarchie nach oben enthalten ist
*/
function getDivHeight(obj, name) {
    var height = 0;
    while (obj.parentNode) {
        if (obj.parentNode.tagName == name && obj.parentNode.offsetTop > 0) {
            height += parseInt(obj.parentNode.offsetTop);
            break;
        }
        obj = obj.parentNode;
    }
    return height;
}

/**
*	getElementsByClassName
*/
function getElementsByClassName(findClass) {
    var aElm = document.body.getElementsByTagName('*');
    var val = [];
    for (var i = 0; i < aElm.length; i++) {
        if (aElm[i].className == findClass) {
            val.push(aElm[i]);
        }
    }
    return val;
}

/**
*	getGalleryHeight
*
*	ermittelt die Höhe des Bildergalerie-Fensters
*
*	@param	integer	anzahl	Anzahl Bilder
*/
function getGaleryHeight(anzahl) {
    var spalten = 7;
    var hoehe = 140;
    var anzahlZeilen = Math.ceil(anzahl / spalten) - 1;
    hoehe = hoehe + (anzahlZeilen * 116);
    if (hoehe > 380) {
        hoehe = 372;
    }
    return hoehe;
}

/**
*	getGalleryWidth
*
*	ermittelt die Breite des Bildergalerie-Fensters
*
*	@param	integer	anzahl	Anzahl Bilder
*/
function getGaleryWidth(anzahl) {
    var spalten = 6;
    var breite = 0;
    if (anzahl > spalten) {
        breite = spalten * 133 + 13;
    }
    else {
        breite = anzahl * 133 + 13;
    }
    if (getGaleryHeight(anzahl) == 372) {
        breite = breite + 16;
    }
    return breite;
}

/**
*	GetXmlHttpObject
*	AJAX Funktionen können hiermit initialisiert werden.
*/
function GetXmlHttpObject() {
    var objXMLHttp = null;
    if (window.XMLHttpRequest) {
        objXMLHttp = new XMLHttpRequest();
    }
    else if (window.ActiveXObject) {
        objXMLHttp = new ActiveXObject("Microsoft.XMLHTTP");
    }
    return objXMLHttp;
}

/**
*	headlineMenuShow
*
*	zeigt ein untergeordnetes Menü eines Headlinemenüs an
*/
function headlineMenuShow(obj, id) {
    if (htimer != null) {
        clearTimeout(htimer);
    }
    var tag = obj;
    while (obj.parentNode.tagName != "BODY") {
        obj = obj.parentNode;
        if (obj.tagName == "DIV") {
            break;
        }
    }
    var pos = getDim(tag);
    var cpos = getDim(obj);
    if (obj.className != "headlineSubmenu_upper" || htimer2 == null) {
        htimer2 = 1;
        if (obj.className != "headlineSubmenu_upper") {
            htimer2 = null;
        }
        window.setTimeout(clearhtimer2, 250);
        headlineMenuHide(obj);
        var moveY = 24;
        if (obj.currentStyle) {
            if (obj.currentStyle.height && parseInt(obj.currentStyle.height.replace("px", "")) > 0) {
                moveY = parseInt(obj.currentStyle.height.replace("px", "")) + 4;
            }
        }
        if (menuoffset_y != null) {
            moveY = menuoffset_y;
        }
        if (document.getElementById("headlineSubmenu_" + id)) {
            if (obj.className == "headlineSubmenu_upper") {
                document.getElementById("headlineSubmenu_" + id).style.top = (pos.y - cpos.y + moveY) + "px";
                document.getElementById("headlineSubmenu_" + id).style.left = (pos.x - cpos.x) + "px";
            }
            else {
                document.getElementById("headlineSubmenu_" + id).style.top = (pos.y - cpos.y - 1) + "px";
                if (obj.clientWidth) {
                    document.getElementById("headlineSubmenu_" + id).style.left = (pos.x - cpos.x + obj.clientWidth - 1) + "px";
                }
                else {
                    document.getElementById("headlineSubmenu_" + id).style.left = (pos.x - cpos.x + 115) + "px";
                }
            }
            document.getElementById("headlineSubmenu_" + id).style.display = "block";
        }
    }
}

/**
*	headlineMenuHide
*
*	blendet ein Headlinemenü wieder aus
*/
function headlineMenuHide(obj) {
    for (i = 0; i < obj.childNodes.length; i++) {
        if (obj.childNodes[i].tagName == "DIV") {
            obj.childNodes[i].style.display = "none";
        }
    }
}

/**
*	headlinemenuhideall
*/
function headlinemenuhideall(o) {
    h_obj = o;
    htimer = setTimeout("headlineMenuShow(h_obj,-10)", 2000);
}

/**
*	Hexadezimalumrechnung
*/
function Hex(dec) {
    return HexChars.charAt((dec >> 4) & 0xf) + HexChars.charAt(dec & 0xf)
}
function Dec(hex) {
    return parseInt(hex.toUpperCase(), 16)
}

/**
*	kalenderSwitch
*
*	geht zur Seite, auf der ein neues Kalenderdatum angezeigt wird
*
*	@param	integer		tag		Tagesdatum
*	@param	integer		monat	Monatsdatum
*	@param	integer		jahr	Jahresdatum
*	@param	integer		mid		Menüpunkt-ID
*	@param	integer		tid		Text-ID
*/
function kalenderSwitch(tag, monat, jahr, mid, tid) {
    if (document.getElementById("synapsis_kalenderblatt")) {
        xmlHttp = GetXmlHttpObject();
        if (xmlHttp == null) {
            alert("Ihr Browser unterstützt AJAX nicht.");
            return;
        }
        xmlHttp.onreadystatechange = kalenderSwitchDisplay;
        xmlHttp.open("POST", "/scripts/frontend/index.php3?ACTION=kalenderblatt&ID=" + mid + "&displayText=" + tid + "&KALENDERDATUM=" + jahr + "-" + monat + "-" + tag + "&rnd=" + Math.random(), true);
        xmlHttp.send(null);
    }
    else {
        location.href = "index.php3?ACTION=MENUEPUNKT&ID=" + mid + "&displayText=" + tid + "&KALENDERDATUM=" + jahr + "-" + monat + "-" + tag;
    }
}

/**
*   kalenderSwitchDisplay
*
*   lädt den Monatskalender per AJAX
*/
function kalenderSwitchDisplay() {
    if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
        document.getElementById("synapsis_kalenderblatt").innerHTML = xmlHttp.responseText;
    }
}

/**
*	loadGalerieBild
*/
function loadGalerieBild(i, t, a) {
    if (typeof synapsis_static != "undefined") {
        document.getElementById("mainbild").innerHTML = "<img alt=\"" + a + "\" src=\"/images/cut/"+t+"/"+i+"/640/480.jpg\" border=\"0\">";
    }
    else {
        document.getElementById("mainbild").innerHTML = "<img alt=\"" + a + "\" src=\"index.php3?ACTION=imageShow&ID=" + i + "&width=640&height=480&method=cut&textid=" + t + "\" border=\"0\">";
    }
    if (document.all) {
        document.getElementById("kommentar").innerHTML = unescape(a);
    }
    else {
        document.getElementById("kommentar").innerHTML = decode_utf8(unescape(a));
    }
    if (typeof synapsis_static != "undefined") {
        document.getElementById("kommentar").href = "/images_download/" + i + "/" + t + "/bild.png";
    }
    else {
        document.getElementById("kommentar").href = "index.php3?ACTION=imageShow&ID=index.php3?ACTION=imageShow&ID=" + i + "&textid=" + t + "&download=yes";
    }
    document.title = a;
    aktuellesbild = t;
    fotoshowstart();
}

/**
*   makeJQueryTagcloud
*/
function makeJQueryTagcloud() {
    alert("Hier");
}

/**
*   mouseX
*/
function mouseX(evt) {
    if (evt.pageX) return evt.pageX;
    else if (evt.clientX)
        return evt.clientX + (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
    else return null;
}

/**
*   mouseY
*/
function mouseY(evt) {
    if (evt.pageY) return evt.pageY;
    else if (evt.clientY)
        return evt.clientY + (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
    else return null;
}

/**
*   Newsletterregister
*/
function newsletterregister() {
    if (document.getElementById("syn_newsletterregister")) {
        xmlHttp = GetXmlHttpObject();
        if (xmlHttp == null) {
            alert("Ihr Browser unterstützt AJAX nicht.");
            return;
        }
        var qu = "";
        var el = document.forms["syn_nlreg"].elements;
        for (i = 0; i < el.length; i++) {
            qu+= "&" + el[i].name + "=" + el[i].value;
        }
        if (el["mail"].value == "") {
            alert("Bitte geben Sie zumindest Ihre E-Mail-Adresse an!");
        }
        else {
            xmlHttp.onreadystatechange = newsletterregister2;
            xmlHttp.open("POST", "/scripts/frontend/index.php3?ACTION=newsletterregister" + qu + "&rnd=" + Math.random(), true);
            xmlHttp.send(null);
        }
    }
    return false;
}
function newsletterregister2() {
    if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
        document.getElementById("syn_newsletterregister").innerHTML = xmlHttp.responseText;
    }
    return false;
}

/**
*	nextPicture
*
*	Bildergalerie:
*	Das nächste Bild anzeigen
*
*	@param	object image	object		Das zu verändernde Bild
*	@param	array			idarray		Array mit den Bild-IDs, die in Frage kommen
*	@param	array			altarray	Array mit den Bildkommentaren
*	@param	integer			counter		Der Bildzähler
*	@return	integer						Increment des Zählers
*/
function nextPicture(object, idarray, altarray, counter) {
    if (counter < (idarray.length - 1)) {
        counter++;
        if (object.width && object.width != 80) {
            object.src = 'index.php3?ACTION=imageShow&ID=' + idarray[counter] + '&width=' + object.width + '&height=' + object.height + '&method=adjust&rnd=' + Math.random();
        }
        else {
            object.src = 'index.php3?ACTION=THUMBNAILSHOW&ID=' + idarray[counter] + '&rnd=' + Math.random();
        }
        object.alt = altarray[counter];
        object.title = altarray[counter];
        window.status = altarray[counter];
    }
    return counter;
}

/**
*	pflichtfeldcheck
*
*	überprüft, ob die Pflichtfelder in einem Formular ausgefüllt wurden
*
*	@param	string	f	formularname
*	@param	string	c	pflichtfeldname
*	@return	boolean		Ausgefüllt, oder nicht
*/
function pflichtfeldcheck(f, c) {
    var senden = true;
    var el = document.forms[f].elements;
    for (i = 0; i < el.length; i++) {
        if (el[i].className == c) {
            el[i].style.backgroundColor = "#fff";
        }
    }
    for (i = 0; i < el.length; i++) {
        if (el[i].className == c && el[i].value == "" || el[i].className.lastIndexOf(c) != -1 && el[i].value == "") {
            el[i].style.backgroundColor = "red";
            senden = false;
        }
    }
    if (!senden) {
        alert("Bitte überprüfen Sie alle rot markierten Eingabefelder im Formular, und füllen Sie diese ggf. richtig aus.");
    }
    return senden;
}

/**
*	previousPicture
*
*	Bildergalerie:
*	Das vorherige Bild anzeigen
*
*	@param	object image	object		Das zu verändernde Bild
*	@param	array			idarray		Array mit den Bild-IDs, die in Frage kommen
*	@param	array			altarray	Array mit den Bildkommentaren
*	@param	integer			counter		Der Bildzähler
*	@return	integer						Decrement des Zählers
*/
function previousPicture(object, idarray, altarray, counter) {
    if (counter > 0) {
        counter--;
        if (object.width && object.width != 80) {
            object.src = 'index.php3?ACTION=imageShow&ID=' + idarray[counter] + '&width=' + object.width + '&height=' + object.height + '&method=adjust&rnd=' + Math.random();
        }
        else {
            object.src = 'index.php3?ACTION=THUMBNAILSHOW&ID=' + idarray[counter] + '&rnd=' + Math.random();
        }
        object.alt = altarray[counter];
        window.status = altarray[counter];
    }
    return counter;
}

/**
*	openCentered
*
*	Ein Fenster zentriert öffnen
*
*	@url:			Die URL zum Inhalt des Fensters
*	@width:			die Breite des Fensters in Pixeln
*	@height:		die Höhe des Fensters in Pixeln
*	@windowName:	der Referenzname des Fensters
*	@featureString:	weitere Angaben (Buttonbar, resizable usw.)
*/
function openCentered(url, width, height, windowName, featureString) {
    var cantb = false;
    /**
    *   Manche Fenster sollen als Lightbox geöffnet werden
    */
    if (typeof tb_show == "function") {
        var lightbox = ["MENUCONFIRMDELETE", "CONTENTCONFIRMDELETE", "URLCONFIRMDELETE", "downloadCONFIRMDELETELINK","terminconfirmdelete"];
        for (i = 0; i < lightbox.length; i++) {
            if (url.indexOf(lightbox[i]) != -1) {
                tb_show(windowName, url + '&TB_iframe=true&width=' + width + '&height=' + height, false);
                cantb = true;
            }
        }
    }
    if (!cantb) {
        if (!windowName) {
            windowName = '';
        }
        if (!featureString) {
            featureString = ',status=no';
        }
        else {
            featureString = ',status=no,' + featureString;
        }
        var x = Math.round((screen.availWidth - width) / 2);
        var y = Math.round((screen.availHeight - height) / 2);
        featureString = 'left=' + x + ',top=' + y + ',width=' + width + ',height=' + height + featureString;
        var win = open(url, windowName, featureString);
        win.focus();
    }
}

/**
*	showDate	
*
*	Function to get input back from calendar popup
*/
function showDate(y, m, d) {
    calendarPointer.value = d + "." + m + "." + y;
}

/**
*   seitenempfehlung
*/
function seitenempfehlung() {
    var fehler = false;
    var f = document.forms;
    for (i = 0; i < f.length; i++) {
        if (f[i].parentNode.className == "seiteempfehlen_formular") {
            f = f[i].elements;
            break;
        }
    }
    var query = "";
    for (i = 0; i < f.length; i++) {
        if (f[i].value == "" && ((f[i].tagName == "INPUT" && f[i].type == "text") || f[i].tagName == "TEXTAREA")) {
            f[i].style.backgroundColor = "red";
            fehler = true;
        }
        else {
            query += "&" + f[i].name + "=" + encodeURIComponent(f[i].value);
        }
    }
    if (!fehler) {
        xmlHttp = GetXmlHttpObject();
        if (xmlHttp == null) {
            alert("Ihr Browser unterstützt AJAX nicht.");
            return;
        }
        xmlHttp.onreadystatechange = updateseitenempfehlung;
        xmlHttp.open("POST", "/scripts/frontend/index.php3?ACTION=seite_empfehlen" + query + "&page=" + location.href + "&rnd=" + Math.random(), true);
        xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlHttp.setRequestHeader("Connection", "close");
        xmlHttp.send(null);
    }
    else {
        alert("Bitte überprüfen Sie die Eingaben der rot markierten Felder.");
    }
    return false;
}

/**
*   Seiten blättern
*/
function synapsis_selectPage(v, t) {
    var s = t.parentNode.childNodes[1].childNodes[1];
    switch (v) {
        case "back":
            if (s.selectedIndex > 0) {
                var sv = s.selectedIndex - 1;
                location.href = s.options[sv].value;
            }
            break;
        case "next":
            if (s.selectedIndex < s.options.length) {
                var sv = s.selectedIndex + 1;
                location.href = s.options[sv].value;
            }
            break;
    }
}

/**
*   Newsletterregister
*/
function terminregister() {
    if (document.getElementById("syn_terminregister")) {
        xmlHttp = GetXmlHttpObject();
        if (xmlHttp == null) {
            alert("Ihr Browser unterstützt AJAX nicht.");
            return;
        }
        var qu = "";
        var el = document.forms["syn_terminreg"].elements;
        for (i = 0; i < el.length; i++) {
            qu += "&" + el[i].name + "=" + el[i].value;
        }
        if (el["mail"].value == "") {
            alert("Bitte geben Sie zumindest Ihre E-Mail-Adresse an!");
        }
        else {
            xmlHttp.onreadystatechange = terminregister2;
            xmlHttp.open("POST", "/scripts/frontend/index.php3?ACTION=terminregister" + qu + "&rnd=" + Math.random(), true);
            xmlHttp.send(null);
        }
    }
    return false;
}
function terminregister2() {
    if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
        document.getElementById("syn_terminregister").innerHTML = xmlHttp.responseText;
    }
    return false;
}

/**
*   updateseitenempfehlung
*/
function updateseitenempfehlung() {
    if (xmlHttp.readyState == 4 || xmlHttp.readyState == "complete") {
        var f = document.forms;
        for (i = 0; i < f.length; i++) {
            if (f[i].parentNode.className == "seiteempfehlen_formular") {
                f = f[i].parentNode;
                break;
            }
        }
        f.innerHTML = xmlHttp.responseText;
    }
}

/**
*   setFontSize
*/
function setfontsize(s) {
    document.body.style.fontSize = s + "em";
    xmlHttp = GetXmlHttpObject();
    if (xmlHttp == null) {
        void (null);
        return;
    }
    xmlHttp.onreadystatechange = setfontsize2;
    xmlHttp.open("GET", "/scripts/frontend/index.php3?ACTION=setfontsize&size=" + s + "&sid=" + Math.random(), true);
    xmlHttp.send(null);
}
function setfontsize2() {
}

/**
*	showKalenderItem
*/
function showKalenderItem(id) {
    e = document.getElementById("kalenderItemLink" + id);
    $("#kalenderItem" + id).slideToggle('slow', function() { $("#kalenderItem" + id + " iframe").attr("src", $("#kalenderItem" + id + " iframe").attr("src")) });
    switch (e.innerHTML) {
        case "Details ausblenden":
            e.innerHTML = "Details anzeigen";
            break;
        default:
            e.innerHTML = "Details ausblenden";
            break;
    }
}

/**
*	showLoginTab
*
*	zeigt einer der beiden Karteikarten des Anmeldeformulars
*/
function showLoginTab(n) {
    document.getElementById("logintab1").style.display = "none";
    document.getElementById("logintab2").style.display = "none";
    document.getElementById("logintab" + n).style.display = "block";
}

/**
*	startSynapsisDiashow
*/
function SynapsisDiashowStart(t, textids, w, h, p) {
    timer = [];
    timerpause = [];
    var rsc = "http://" + location.host + "/scripts/frontend/index.php3?ACTION=imageShow&textid=" + t + "&width=" + w + "&height=" + h + "&method=cut&ID=";
    if (typeof synapsis_static != "undefined") {
        rsc = "/images/cut/" + t + "/";
    }
    SynapsisDiashowloadPage(0, t, textids, rsc, w, h, p);
}

/**
*	SynapsisDiashowloadPage
*/
function SynapsisDiashowloadPage(x, t, textids, rsc, w, h, p) {
    var bild = new Image;
    if (typeof synapsis_static != "undefined") {
        bild.src = rsc + textids[x] + "/" + w + "/" + h + ".jpg";
    }
    else {
        bild.src = rsc + textids[x];
    }
    bild.onload = function() {
        SynapsisDiashowloadPage2(x, t, textids, rsc, w, h, p);
    }
}

/**
*	SynapsisDiashowloadPage
*/
function SynapsisDiashowloadPage2(x, t, textids, rsc, w, h, p) {
    var fade = 100;
    document.getElementById("synapsis_diashow_" + t + "_2").style.backgroundImage = "url('" + rsc + textids[x] + "')";
    if (typeof synapsis_static != "undefined") {
        document.getElementById("synapsis_diashow_" + t + "_2").style.backgroundImage = "url('" + rsc + textids[x] + "/" + w + "/" + h + ".jpg')";
    }
    timer[t] = setTimeout("SynapsisDiashowfadepicture(" + t + "," + fade + "," + x + ",[" + textids + "],'" + rsc + "'," + w + "," + h + "," + p + ");", p);
}

/**
*	SynapsisDiashowfadepicture
*/
function SynapsisDiashowfadepicture(t, fade, x, textids, rsc, w, h, p) {
    e = document.getElementById("synapsis_diashow_" + t + "_1");
    if (fade == 100) {
        var mozo = 1;
    }
    else {
        var mozo = "0." + fade;
    }
    if (fade < 10) {
        mozo = "0.0" + fade;
    }
    e.style.filter = "Alpha(opacity=" + fade + ");";
    e.style.opacity = mozo;
    if (fade > 0) {
        fade -= 10;
        timer[t] = setTimeout("SynapsisDiashowfadepicture(" + t + "," + fade + "," + x + ",[" + textids + "],'" + rsc + "'," + w + "," + h + "," + p + ");", 20);
    }
    else {
        document.getElementById("synapsis_diashow_" + t + "_1").style.backgroundImage = document.getElementById("synapsis_diashow_" + t + "_2").style.backgroundImage;
        document.getElementById("synapsis_diashow_" + t + "_2").style.filter = "Alpha(opacity=100);";
        document.getElementById("synapsis_diashow_" + t + "_1").style.filter = "Alpha(opacity=100);";
        document.getElementById("synapsis_diashow_" + t + "_2").style.opacity = 1;
        document.getElementById("synapsis_diashow_" + t + "_1").style.opacity = 1;
        clearTimeout(timer[t]);
        x++;
        if (x >= textids.length) {
            x = 0;
        }
        SynapsisDiashowloadPage(x, t, textids, rsc, w, h, p);
    }
}

/**
*	submitVote
*
*	schickt das Umfragenformular ab.
*/
function submitVote() {
    if (schonabgestimmt == true) {
        document.forms['umfrage'].submit();
    }
    else {
        alert("Bitte wählen Sie zuerst eine Antwort aus.");
    }
}

/**
*	toggleAlleBilder
*/
function toggleAlleBilder() {
    var pane = document.getElementById("allebilder");
    switch (pane.style.display) {
        case "block":
            pane.style.display = "none";
            break;
        default:
            pane.style.display = "block";
            break;
    }
}

/**
*	writeSilverlight
*	Alternative zu Silverlight.js createObject
*/
function writeSilverlight(width, height, source, background, iswl) {
    var slObject = "";
    slObject += '<object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="' + width + '" height="' + height + '">';
    if ((navigator.userAgent.indexOf('Windows') != -1) && (navigator.appVersion.indexOf('MSIE') != -1)) {
        slObject += '<param name="initParams" value="showBookmark=true,ExternalStatsActive=true,ApplicationID=100000" />';
    }
    else {
        slObject += '<param name="initParams" value="showBookmark=false,ExternalStatsActive=true,ApplicationID=100000" />';
    }
    if (!Silverlight.isInstalled("2.0.31005.0")) {
        notinstalled = true;
    }
    slObject += '<param name="source" value="' + source + '" />';
    slObject += '<param name="background" value="' + background + '" />';
    if (iswl == 'true') {
        slObject += '<param value="true" name="windowless"/>';
    }
    slObject += '<param name="autoUpgrade" value="true" />';
    slObject += '<!-- Display installation image. -->';
    slObject += '<a href="http://go.microsoft.com/fwlink/?LinkID=124807" style="text-decoration: none;">';
    slObject += '    <img src="http://go.microsoft.com/fwlink/?LinkId=108181" alt="Get Microsoft Silverlight" style="border-style: none"/>';
    slObject += '</a>';
    slObject += '</object>';
    return slObject;
}

/**
*	encode_utf8
*/
function encode_utf8(rohtext) {
    rohtext = rohtext.replace(/\r\n/g, "\n");
    var utftext = "";
    for (var n = 0; n < rohtext.length; n++) {
        var c = rohtext.charCodeAt(n);
        if (c < 128) {
            utftext += String.fromCharCode(c);
        }
        else if ((c > 127) && (c < 2048)) {
            utftext += String.fromCharCode((c >> 6) | 192);
            utftext += String.fromCharCode((c & 63) | 128);
        }
        else {
            utftext += String.fromCharCode((c >> 12) | 224);
            utftext += String.fromCharCode(((c >> 6) & 63) | 128);
            utftext += String.fromCharCode((c & 63) | 128);
        }
    }
    return utftext;
}

/**
*	decode_utf8
*/
function decode_utf8(utftext) {
    var plaintext = ""; var i = 0; var c = c1 = c2 = 0;
    while (i < utftext.length) {
        c = utftext.charCodeAt(i);
        if (c < 128) {
            plaintext += String.fromCharCode(c);
            i++;
        }
        else if ((c > 191) && (c < 224)) {
            c2 = utftext.charCodeAt(i + 1);
            plaintext += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
            i += 2;
        }
        else {
            c2 = utftext.charCodeAt(i + 1); c3 = utftext.charCodeAt(i + 2);
            plaintext += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
            i += 3;
        }
    }
    return plaintext;
}

function zoom_booklet(n) {
    if (syn_tb_booklet == "") {
        syn_tb_booklet = document.getElementById("synapsis_pageflip_download_" + n + "_zoom").innerHTML;
    }
    document.getElementById("synapsis_pageflip_download_" + n + "_zoom").innerHTML = syn_tb_booklet;
    tb_show("Booklet", "#TB_inline?a=b&height=738&width=984&inlineId=synapsis_pageflip_download_" + n + "_zoom");
    $("#TB_ajaxContent").booklet({width:984,height:738});
}
