/** Pfad zur Vereinsbildleiste im Contentverzeichnis */
var VEREINS_BIDLEISTE = "01_Aktuell/02_Bildleisten/Standard-Seite.htm";
/** Pfad zur Ligenbildleiste im Contentverzeichnis */
var LIGEN_BIDLEISTE = "01_Aktuell/02_Bildleisten/Ligen-Seite.htm";

/** regulärer Ausdruck zum einmaligen Erkennen der Zeichenkette "/AT/" */
var REGEXP_AT_ONCE = /\/AT\//;
/** regulärer Ausdruck zum globalen Erkennen der Zeichenkette "/AT/" */
var REGEXP_AT_GLOBAL = /\/AT\//g;

/** Beinhaltet, ob die Ligenübersicht vorliegt */
var IS_LIGA = (location.href.indexOf("/liga.php") > -1);
/** Beinhaltet, ob die Ligenübersicht vorliegt */
var IS_LIGEN = (location.href.indexOf("/ligen.php") > -1);
/** Beinhaltet, ob die Vereinsübersicht vorliegt */
var IS_VEREINE = (location.href.indexOf("/vereine.php") > -1);
/** Beinhaltet, ob eine Vereinsseite vorliegt */
var IS_VEREIN = /\/(verein|meinSTVmeinVerein)\.php/.test(location.href);
/** Beinhaltet, ob die Turnierübersicht oder die Turniersuche vorliegt */
var IS_TURNIERE = (location.href.indexOf("/turniere.php") > -1 || location.href.indexOf("/turniersuche.php") > -1);
/** Beinhaltet, ob die Turnierseite vorliegt */
var IS_TURNIER = (location.href.indexOf("/turnier.php") > -1);
/** Liegt eine Bildleiste vor? */
var IS_BILDLEISTE = (location.href.indexOf("Bildleisten") > -1);
/** Liegt eine Datei aus dem Contentverzeichnis vor? */
var IS_CONTENT_FILE = (location.href.indexOf("/Content/file/") > -1);
/** Liegt eine Datei aus dem "homepage"-Verzeichnis vor? */
var IS_HOMEPAGE_FILE = (location.href.indexOf("/homepage/") > -1);
/** Liegt die Druckversion vor? */
var IS_PRINT = (location.search.indexOf("&print=true") > -1);
/** URL-Parameter, der Frame-Nachladen verhindert */
var IS_NO_FORCE_FRAME = (location.search.indexOf("noForceFrame=true") > -1);

/** HTML-Body-Element */
var body;
/** Inhaltsobjekt */
var content = false;
/** Pfad zum Stammverzeichnis */
var base_path = "";

/**
 * Fügt dem onload-Handler eine Funktion hinzu
 *
 * This script and many more are available free online at
 * The JavaScript Source!! http://javascript.internet.com
 * Created by: Simon Willison | http://simon.incutio.com/
 *
 * @param {Function} func zu ladende Funktion
 */
function addLoadEvent(func)
{
        var oldonload = window.onload;

        if (typeof window.onload != "function")
                window.onload = func;
        else {
                window.onload = function()
                {
                        if (oldonload)
                                oldonload();
                        func();
                }
        }
}

/**
 * Lädt das Frameset nach, falls die Seite
 * nicht in einem Frame aufgerufen wurde.
 *
 * @return Boolean
 */
function forceFrameset()
{
        if (!IS_NO_FORCE_FRAME && !IS_BILDLEISTE && !IS_PRINT) {

                // Das sollte die Root-URL des Frames sein
              var href = (IS_CONTENT_FILE)
                        ? location.href.slice(0, location.href.indexOf("Content/file"))
                        : (IS_HOMEPAGE_FILE)
                                ? location.href.slice(0, location.href.indexOf("homepage"))
                                : location.href.slice(0, location.href.lastIndexOf("\/") + 1);

                // Wenn kein Elternframe vorhanden ist oder er nicht die zuvor
                // berechnete URL zur Indexseite enthält, diese aufrufen und
                // die URL der Inhaltsseite als Fenstername "mitgeben"
                if (!(
                                parent
                        &&        parent.location
                        &&        (parent.location.href == href || new RegExp("^" + href + "((\\?)|(index\\.php))").test(parent.location.href))
                )) {
                        self.name                        = "Load=" + location.href;
                        self.location.href        = href;
                        return true;
                }
        }

        return false;
}

/**
 * Initialisierungsfunktion: Identifiziert die Seite über einen
 * speziellen META-Tag oder über die URL als Inhaltsobjekt
 */
function init()
{
        body = document.getElementsByTagName("body")[0];

        // zugehöriges Contentobjekt ermitteln, welches
        // als URL-Parameter übergeben werden sollte
        var nr = /nr=([0-9]+)/.exec(location.search);
        if (nr != null && parent && parent.naviMgr)
                content = parent.naviMgr.getTree().findNode(nr[1]).getContent();

        // bei Dateien aus dem Contentverzeichnis den
        // relativen Rücksprung zum STV-Rootverzeichnis berechnen
        if (IS_CONTENT_FILE) {
                var depth = location.href.slice(location.href.indexOf("Content/file")).split("/").length - 1;
                for (var i = 0; i < depth; i++)
                        base_path += "../";
        }
}

/**
 * Demaskiert die @-Zeichen-Ersetzung
 */
function deObfuscateMailAdresses()
{
        if (REGEXP_AT_ONCE.test(body.innerHTML))
                body.innerHTML = body.innerHTML.replace(REGEXP_AT_GLOBAL, "@");
}

/**
 * Fügt dem HTML-Quelltext eine Bildleiste hinzu, wenn im
 * aufrufenden Frame eine für diese Seite vorhanden ist
 */
function addBildleiste()
{
        if (IS_VEREIN || IS_LIGA || IS_LIGEN || (content && content.getBildleiste())) {
                //alert("Bildleiste");

                var iframe = document.createElement("iframe");
                iframe.className = "rechts";
                iframe.setAttribute("framespacing", "0");
                iframe.setAttribute("frameborder", "0");
                iframe.setAttribute("border", "0");
                iframe.setAttribute("scrolling", "no");

                if (IS_VEREIN || IS_LIGA || IS_LIGEN || content.isUrlIntern()) {
                        if (IS_VEREIN)
                                var src = "/" + VEREINS_BIDLEISTE;
                        else if (IS_LIGA || IS_LIGEN)
                                var src = "/" + LIGEN_BIDLEISTE;
                        else
                                var src = content.getBildleiste();

                        iframe.src = base_path + "../Content/file" + src;
                        //alert(base_path + "Content/file" + src + " => " + iframe.src);
                }
                else {
                        // Rootverzeichnis ist hier "Content/file/"
                        var root = location.href;
                        for (var i = 0, ii = parent.naviMgr.getTree().getLevel(content); i < ii; i++)
                                root = root.slice(0, root.lastIndexOf("/"));
                        iframe.src = root + content.getBildleiste();
                        //alert(root + "\n" + iframe.src)
                }

                // Die Verein- und Ligen-Bildleiste werden unten horizontal plaziert
                if (/(Ligen|Vereins)-Seite/.test(iframe.src)) {
                        iframe.className = "unten";
                        body.appendChild(iframe);
                }
                // alle anderen Bildleisten kommen vertikal nach rechts, wobei
                // die Höhe erst hier und nicht per Styledatei gesetzt werden kann
                else {
                        iframe.style.height = body.offsetHeight + "px";
                        body.insertBefore(iframe, body.firstChild);
                }
        }
}

// Funktionen beim Laden aufrufen
addLoadEvent(
        function()
        {
              	init();

                // wenn Frameset nachzuladen ist, gleich abbrechen
                if (forceFrameset() == true)
                        return;

                deObfuscateMailAdresses();

                // Druckversion
                if (IS_PRINT) {
                        var head  = document.getElementsByTagName("head")[0];
                        var link = document.createElement("link");
                        link.setAttribute("type", "text/css");
                        link.setAttribute("rel", "stylesheet");
                        link.setAttribute("href", base_path + "css/print.css");
                        head.appendChild(link);
                        //alert(link.getAttribute("href"));

                        // Sicherheitshalber wird der Hintergrund nochmal
                        // explizit auf weiß gesetzt, weil das CSS-Nachladen
                        // im IE nicht sofort korrekt dargestellt wird
                        document.getElementsByTagName("body")[0].style.backgroundColor = "rgb(255,255,255)";
                }

                else if (parent.frames.length > 0) {
                        // wenn die eingebundene Bildleiste vorliegt,
                        // die Abstände am Rand entfernen
                        if (IS_BILDLEISTE)
                                body.className = "bildleiste";

                        // ansonsten als Inhaltsseite betrachten
                        else {
                                var darstellung = (document.forms[0] && document.forms[0].darstellung) ? document.forms[0].darstellung.value : "";

                                if (parent.einstellungen) {
                                        // wenn Ligen- oder Turniereseite, Auswahlsymbole einblenden
                                        if (IS_TURNIERE || IS_LIGEN) {
											parent.symboleShow(parent.einstellungen.ak, true);
											parent.showTurniereFilter(IS_TURNIERE);
                                        }
                                        // ... sonst ausblenden
                                        else {
											parent.symboleShow(parent.einstellungen.bez, false);
											parent.symboleShow(parent.einstellungen.ak, false);
											parent.showTurniereFilter(false);
                                        }
                                }

                                // wenn Ligaseite, Titel anpassen und Tabellenauswahl einblenden
                                if (IS_LIGA) {
                                        var titel = parent.getElm("Bezeichnung");
                                        if (!/ - (Liga|Verein|Turnier)$/.test(titel.getHTML()))
                                                titel.setHTML(titel.getHTML() + " - Liga");
                                        else if (/ - (Verein|Turnier)$/.test(titel.getHTML()))
                                                titel.setHTML(titel.getHTML().replace(/ - (Verein|Turnier)$/, " - Liga"));

                                        if (darstellung == "" || (darstellung == "Spiele" && parent.ligaDarstellung != "Spiele"))
                                                parent.buttonActivate("LIGA_Spiele");
                                        else if (darstellung == "Kreuz" && parent.ligaDarstellung != "Kreuz")
                                                parent.buttonActivate("LIGA_Kreuz");

                                        parent.showLigaDarstellung(true);
                                }
                                // .. sonst Tabellenauswahl ausblenden
                                else if (parent.showLigaDarstellung)
                                        parent.showLigaDarstellung(false);

                                // wenn Vereinsseite, Titel anpassen und Darstellungsauswahl einblenden
                                if (IS_VEREIN) {
                                        var titel = parent.getElm("Bezeichnung");
                                        if (!/ - (Liga|Verein|Turnier)$/.test(titel.getHTML()))
                                                titel.setHTML(titel.getHTML() + " - Verein");
                                        else if (/ - (Liga|Turnier)$/.test(titel.getHTML()))
                                                titel.setHTML(titel.getHTML().replace(/ - (Liga|Turnier)$/, " - Verein"));

                                        if (darstellung == "")
                                                parent.buttonActivate("VEREIN_Visitenkarte");
                                        else if (darstellung == "Kalender" && parent.vereinDarstellung != "Kalender")
                                                parent.buttonActivate("VEREIN_Kalender");
                                        else if (darstellung == "Mannschaften" && parent.vereinDarstellung != "Mannschaften")
                                                parent.buttonActivate("VEREIN_Mannschaften");

                                        // Saisonauswahl (de)aktivieren
                                        parent.getElm("VEREIN_Saisons").setClass((parent.vereinDarstellung == "Visitenkarte") ? "" : "aktiv");

                                        parent.showVereinDarstellung(true);
                                }
                                // .. sonst Darstellungsauswahl ausblenden
                                else if (parent.showVereinDarstellung)
                                        parent.showVereinDarstellung(false);

                                // wenn Turnierseite, Titel anpassen
                                if (IS_TURNIER) {
                                        var titel = parent.getElm("Bezeichnung");
                                        if (!/ - (Liga|Verein|Turnier)$/.test(titel.getHTML()))
                                                titel.setHTML(titel.getHTML() + " - Turnier");
                                        else if (/ - (Liga|Verein)$/.test(titel.getHTML()))
                                                titel.setHTML(titel.getHTML().replace(/ - (Liga|Verein)$/, " - Turnier"));
                                }

                                // Favoritenbutton setzen
                                if (parent.setFavoritenButton)
                                        parent.setFavoritenButton((content) ? content.getLfdNr() : location.href);

                                // wenn Inhaltsseite vorliegt, Navigation anpassen
                                if (content)
                                        parent.naviClick(content.getLfdNr());
                                else if (/Impressum/.test(location.href))
                                        parent.getElm("Bezeichnung").setHTML("Impressum");

                                // Bildleiste setzen
                                addBildleiste();
                        }
                }
        }
);
