
//functions for layer behavior
var layerRef=""
var styleRef=""
var offsetV=""
var offsetH=""

if (navigator.appName=='Netscape' && navigator.appVersion.charAt(0) < '5') {
    winRef=""
    layerRef=".layers"
    styleRef=""
    offsetV="window.pageYOffset"
    offsetH="window.pageXOffset"
}
if (navigator.appName=='Netscape' && navigator.appVersion.charAt(0) == '5') {
    winRef="window."
    layerRef=".getElementById("
    styleRef=").style"
    offsetV="window.pageYOffset"
    offsetH="window.pageXOffset"
}
if (navigator.appName=='Microsoft Internet Explorer') {
    winRef=""
    layerRef=".all"
    styleRef=".style"
    offsetV="document.body.scrollTop"
    offsetH="document.body.scrollLeft"
}

// Initialisierung
$(document).ready(function () {
    // alle Links der Klasse "fancybox-iframe" mit openFancyboxIframe() verdrahten (siehe dort)
    $('a.fancybox-iframe').click(function () {
        openFancyboxIframe($(this).attr('href'));
        return false;
    });
    if ($.fancybox) {
        // alle Links der Klasse "fancybox-image" direkt mit fancybox verdrahten
        $('a.fancybox-image').fancybox({ 'titlePosition': 'inside', 'cyclic': true });
    }
    // ggf. öffnende Fancybox schliessen
    if (opener && opener.closeFancyboxAfterLoading) {
        opener.parent.$.fancybox.close();
    }
});

// zur Erkennung, dass ein neues Fenster aus einer Fancybox heraus geöffnet wurde, die anschliessend geschlossen werden soll (z.B. rules_inline.asp)
var closeFancyboxAfterLoading = false;

//do on page start (entfernen? siehe $(document).ready)
function init() {}


//display
//do not display layer
function nodisplay(layername) {
    eval(winRef+'document'+layerRef+"['"+layername+"']"+styleRef+".display='none'");
}                
//display layer
function display(layername) {
    eval(winRef+'document'+layerRef+"['"+layername+"']"+styleRef+".display=''");
}
//switch display mode
function switchdisplay(layername) {
    this_display = eval(winRef+'document'+layerRef+"['"+layername+"']"+styleRef+".display");
    if (this_display == 'none') {
        display(layername);
    }
    else {
        nodisplay(layername);
    }
}    

                
//visibility
//hide Layer
function hide(layername) {
    eval(winRef+'document'+layerRef+"['"+layername+"']"+styleRef+".visibility='hidden'");
}            
//show Layer
function show(layername) {
    eval(winRef+'document'+layerRef+"['"+layername+"']"+styleRef+".visibility='visible'");
}



//set focus on first form input field
function setfocus() {
    var bFound = false;
    // for each form
    for (f=0; f < document.forms.length; f++)
    {
        // for each element in each form
        for(i=0; i < document.forms[f].length; i++)
        {
            // if it's not a hidden element
            if (document.forms[f][i].type != "hidden")
            {
                // and it's not disabled
                if (document.forms[f][i].disabled != true)
                {
                    // set the focus to it
                    document.forms[f][i].focus();
                    var bFound = true;
                }
            }
            // if found in this element, stop looking
            if (bFound == true)
                break;
        }
        // if found in this form, stop looking
        if (bFound == true)
            break;
    }
}

/************************************************************
* JavaScript eMail-Adressen-Verschlüsseler                  *
* URL: (http://www.derwok.de/service/email_stopspam/)       *
************************************************************/
function UnCryptMailto(s) {
    s = unescape(s); // Url Decode
    var shift = 2; //Has to be the same as in the method CryptMailto (->find in tools).
    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 - (shift));
    }
    return r;
}

function linkTo_UnCryptMailto(s) {
    location.href = UnCryptMailto(s);
}


/*
 * Adapterfunktion. Öffnet einen Fancybox-IFrame anhand eines einzigen Parameters: dem URL. 
 * (folgende Eigenschaften werden dort den URL-Parametern gelesen: width, height, modal, lang)
 * Beispiel: <button onclick="openFancyboxIframe('http://www.foo.ch/?height=300&width=300')" >klick mich!</button>
 * uvb/8.6.2011
 */
function openFancyboxIframe(url) {
    // URL analysieren:
    var a = url.split('?');
    var urlWithoutQuery = a[0];
    var query = (a[1] ? '?' + a[1] : '');
    var urlParams = queryToObject(query);

    // Argumente für den Fancybox-Aufruf
    var args = {}; // Json-Objekt
    args.type = 'iframe';

    // width, height und modal aus urlParams lesen. Falls vorhanden in Fancybox-Argumente übergeben und aus urlParams entfernen
    var w = parseInt(urlParams.width);
    if (!isNaN(w)) {
        args.width = parseInt(w);
        delete urlParams.width;
    }
    var h = parseInt(urlParams.height);
    if (!isNaN(h)) {
        args.height = parseInt(h);
        delete urlParams.height;
    }
    var m = urlParams.modal;
    if (m != null && m != '') {
        args.modal = (m == 'true');
        delete urlParams.modal;
    }
    var l = urlParams.lang;
    if (l != null && l != '') {
        // (vorläufig ignorieren, da z.B. "schliessen" rein grafisch funktioniert)
        delete urlParams.lang;
    }

    args.href = urlWithoutQuery + objectToQuery(urlParams);

    $.fancybox(args);

}

/*
* Zerlegt einen QueryString in ein Objekt mit allen Elementen (siehe auch objectToQuery)
* uvb/8.6.2011
*/
function queryToObject(queryString) {
    var urlParams = {};
    var e,
        a = /\+/g,  // Regex for replacing addition symbol with a space
        r = /([^&=]+)=?([^&]*)/g,
        d = function (s) { return decodeURIComponent(s.replace(a, " ")); },
        q = queryString.substring(1);

    while (e = r.exec(q))
        urlParams[d(e[1])] = d(e[2]);
    return urlParams;
}

/*
* Setzt einen QueryString aus einem Objekt in einen String zusammen (siehe auch queryToObject)
* uvb/8.6.2011
*/
function objectToQuery(urlParams) {
    var query = '';
    for (key in urlParams) {
        query += (query.length == 0 ? '?' : '&') + key + '=' + encodeURIComponent(urlParams[key]);
    }
    return query;
}
