﻿function directlink(config) {
    // Öffnet ein neues Fenster mit der URL ./directlink.php?config=[CONFIG]&style=[STYLE]

    // Breite und Höhe des Fenster in Pixel
    var width  = 420;
    var height = 320;

    // Neues Fenster
    var popup;
    // Position des Fensters am Bildschirm
    var left = Math.round((screen.availWidth  - width)  / 2);
    var top  = Math.round((screen.availHeight - height) / 4);
    // Parameter des neuen Fensters
    var params  = 'width=' + width + ', height=' + height + ', top=' + top + ', left=' + left +
                  ', resizable=1, scrollbars=no, status=no, location=no';
    var baseurl = document.getElementById('basehreftag').getAttribute('href');
    var style   = document.getElementById('stylesheettag').getAttribute('href');  // String zwischen './' und '.css' auslesen
        style   = style.substr(2);
        style   = style.substring(0, style.indexOf('.'));
        style   = encodeURIComponent(style);

    // Fenster öffnen
    popup = window.open(baseurl + 'directlink.php?config=' + config + '&style=' + style, '_blank', params);

    // Fenster fokussieren
    popup.focus();
}

function dlinfo(id) {
    // Öffnet ein neues Fenster mit der URL ./dlinfo.php?id=[ID]&style=[STYLE]

    // Breite und Höhe des Fenster in Pixel
    var width  = 420;
    var height = 220;

    // Neues Fenster
    var popup;
    // Position des Fensters am Bildschirm
    var left = Math.round((screen.availWidth  - width)  / 2);  // (a-b)/2 = a/2 - b/2
    var top  = Math.round((screen.availHeight - height) / 4);
    // Parameter des neuen Fensters
    var params  = 'width=' + width + ', height=' + height + ', top=' + top + ', left=' + left +
                  ', resizable=1, scrollbars=no, status=no, location=no';
    var baseurl = document.getElementById('basehreftag').getAttribute('href');
    var style   = document.getElementById('stylesheettag').getAttribute('href');
        style   = style.substr(2);
        style   = style.substring(0, style.indexOf('.'));
        style   = encodeURIComponent(style);

    // Fenster öffnen
    popup = window.open(baseurl + 'dlinfo.php?id=' + id + '&style=' + style, '_blank', params);

    // Fenster fokussieren
    popup.focus();
}

function clipboard(text)
{
    // Kopiert [TEXT] in die Zwischenablage -- Funktioniert nur im IE
    window.clipboardData.setData('text', text);
}

function bookmark(url, title) {
    // Fügt die Seite zu den Favoriten hinzu -- Funktioniert nur im IE
    window.external.AddFavorite(url, title);
}

function mailDecrypt(mail)
{
    // Verschiebt jedes Zeichen in [MAIL] zyklisch um 7 Zeichen zurück

    // Erlaubte Zeichen: a-zA-Z0-9_.:-@ (vermischte Darstellung erhöht Sicherheit)
    var chars = ".SCwitJTUp:hs@z3En-1gFVqI8Rky7dZcvONXrQM0jAebHaGYmo69DuPx2KWfl_B4L5";

    var out = "";
    var n   = 0;
    var dir = -7; // Verschieberichtung

    for (var i = 0; i < mail.length; i++) {
        n    = chars.indexOf(mail.substr(i, 1)); // Zeichen auslesen und Indexnummer in chars finden
        n    = (n + dir) % chars.length;         // Zyklisches Verschieben
        n   += (n < 0) ? chars.length : 0;
        out += chars.substr(n, 1);               // Zeichen anhaengen
    }

    return out;
}

function mailLink(mail)
{
    // Führt Link aus, nachdem er entschlüsselt wurde
    //alert('### DEBUG ### ' + mailDecrypt(decodeURI(mail)) + ' ###'); // ### DEBUG ###
    location.href = mailDecrypt(decodeURI(mail));
}

function reloadCAPTCHA(src)
{
    var random = new Date().getTime();
    random = 'a' + random + '=' + random; // gültige URL mit var=value erstellen

    // Drei mögliche Fälle:
    // 1) url?var1=x[...]&varN=y => &string anhängen
    // 2) url?var1=x             => &string anhängen
    // 3) url                    => ?string anhängen

    var pos1 = src.indexOf('?');
    var glue = (pos1 == -1) ? '?' : '&'; // Nur im 3. Fall '?' verwenden

    // Letztes '&' suchen, um die URL nicht unendlich wachsen zu lassen (ersetzt also stets den letzten Parameter)
    // Da nach '&' gesucht wird, wird die PHPSESSID nicht verändert
    var pos2 = src.indexOf('&');
    src = (pos2 == -1) ? src : src.substring(0, pos2);

    return src + glue + random;
}

function modifyGreyboxLinks(id)
{
    /* Modifiziert alle verlinkten Bilder um GreyBox-Script zu aktivieren */

    /* Alle Bilder innerhalb des Abschnittes mit der ID id */
    imgs = document.getElementById(id).getElementsByTagName('img');

    /* Bilder durchlaufen */
    for (i = 0; i < imgs.length; i++) {
        current = imgs[i];
        parent  = imgs[i].parentNode;

        /* Nur Bilder betrachten, die verlinkt sind */
        if (parent.nodeName == 'A') {
            /* setze 'rel'-Attribut damit Links von Greybox erkannt werden */
            parent.setAttribute('rel', 'gb_imageset[x]');

            /* setze 'title' von A auf den Wert vom 'alt'-Attribut von IMG für Überschrift in Greybox */
            parent.setAttribute('title', current.getAttribute('alt'));
        }
    }
}

