
//
// Copyright (c) 2006 Asklepios
// All rights reserved
// Created on: 2006-09-08
// Autor: Manuel
//
// Script with general functions (init/etc).
//
// ***
//
// MODIFICATIONS:
//
// - YYYY-MM-DD: Autor
//      Description
// - 2007-05-23: Manuel
//      Beim Aufruf der send() Methode des XMLHTTPRequest Objektes wurde kein
//      Parameter übergeben, was der Firefox JS Debugger mit einer "uncaught
//      exception" belohnte. Durch Übergabe eines  null-Params wurde diese
//      Fehlermeldung behoben.
//



// Inkludieren der "main_fullsize.css" Datei, falls die document-Breite des
// Browsers über 865 Pixel beträgt.

// Wie breit ist das Document? Dies kann mittels window.innerWidth bzw.
// document.body.offsetWidth festgestellt werden, je nachdem, was der 
// Browser bietet. Einzige Voraussetzung ist, dass diese Funktion NACH dem
// Seitenaufbau aufgerufen werden MUSS! Ansonsten stehen (speziell im IE) die
// Angaben nicht zur Verfügung. Eine andere Möglichkeit ist es, diese Datei erst
// am Ende, vor dem </body> Tag in die HTML-Datei einzubinden!
function initNewWin() {
    var docwidth = (window.innerWidth)
                   ? window.innerWidth
                   : document.body.offsetWidth;
    if(docwidth > 865) {
        document.getElementById("mainstyle").href = "styles/main_fullsize.css";
    } 
    switchContent(window.location.href);
}


// initQuicklaunch durchsucht alle <a> Tags der aktuellen Seite nach dem
// Attributte rel="quicklaunch", welches dafür gedacht ist, die Links im Falle
// von aktiviertem JavaScript so zu manipulieren, dass anstatt der kompletten
// Seite nur der "content" Teil einer Seite geladen wird und sich somit der
// restliche Teil nicht neu aufbauen muss.
function
initQuicklaunch()
{
    if(!document.getElementsByTagName) {
        return ;
    }

    var anchors = document.getElementsByTagName("a");

    // Loop through all anchor tags
    for(var i=0; i<anchors.length; i++) {
        var anchor = anchors[i];

        // Intern link (only switch content):
        if(anchor.getAttribute("href")  &&
           anchor.getAttribute("rel")   == "quicklaunch")
        {
            anchor.href = "javascript:switchContent('"+anchor.getAttribute("href")+"');";
        } 

        // Extern link:
        if(anchor.getAttribute("href")  &&
           anchor.getAttribute("rel")   == "newwin")
        {
            anchor.href = "javascript:newwin('"+anchor.getAttribute("href")+"');";
        }

        // Picture-Detaillink:
        if(anchor.getAttribute("href")  &&
           anchor.getAttribute("rel")   == "detailpic")
        {
            anchor.href = "javascript:switchPic('"+anchor.getAttribute("href")+"');";
        }
    }
}

function
newwin(url)
{
    window.open(url);
}


function
switchContent(file)
{
    // Erzeugen eines XMLHttpRequest-Objektes, mit welchem eine HTTP-Verbindung
    // hergestellt werden kann:
    try {
        xmlhttp = new XMLHttpRequest(); 
    } catch(error) { 
        try {
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        } catch(error) { return; }
    } 

    // Nun bekommt das XMLHttpRequest-Objekt einen EventListener zugewiesen, der
    // immer über den aktuellen Status informiert wird:
    xmlhttp.onreadystatechange = function() {
        if(xmlhttp.readyState != 4) {
            return ;
        }

        // readyState 4 wird geschickt, wenn alle Daten empfangen wurden:
        if(xmlhttp.status == 200) {
            if(xmlhttp.responseText) {
                // Den Inhalt des Scrollers ändern, sodaß dieser jetzt den Text
                // der gewünschten Seite beinhält.
                // ResponseText wurde bereits im PHP-Skript so formatiert, dass
                // jedem Sonderzeichen ein \ vorangestellt wurde!
                croller.block[0] = ""; 
                croller.block[1] = ""; 
                croller.block[2] = xmlhttp.responseText; 

                // Starten des content-Scrollers:
                croller.scroll();

                // Zurücksetzen des detailpic-Scrollers:
                var defimg = "<img src='images/videoueberwachung_01.jpg' />" +
                             "<h5>... damit Sie Ihren Urlaub bedenkenlos " +
                             "genie&szlig;en k&ouml;nnen!</h5>";
                if(proller.block[2] != defimg) {
                    if(proller.block[2] != "") {
                        proller.block[0] = "";
                        proller.block[1] = "";
                        proller.block[2] = defimg;
                        proller.scroll();
                    }
                }
            }   // if(xmlhttp.responseText)
        }   // if(xmlhttp.status == 200)
    }

    // Nun wird eine HTTP-Anfrage an das PHP-Skript gesendet, welches den
    // übergebenen Dateinamen auf Gültigkeit prüft und dann die Formatierungen,
    // welche sich im "content"-Container der Datei befinden, zurückgibt:
    xmlhttp.open("GET", "scripts/readcont.php?file=" + file);
    xmlhttp.send(null);
}


// Manipuliert "weiter"-Links, welche als Id "link_to_nextpage" aufweisen so, 
// dass die Folgeseite mittels switchContent() aufgerufen wird, also ein 
// komplettes Laden verhindert wird. Dazu wird der href-Tag auf "#" gesetzt.
function
switchToNextSide()
{    
return ;
    var next_side = document.getElementById("link_to_nextpage").href;
    document.getElementById("link_to_nextpage").href = "#";
    switchContent(next_side);
    return ;
}
function
switchToPrevSide()
{
return ;
    var prev_side = document.getElementById("link_to_prevpage").href;
    document.getElementById("link_to_prevpage").href = "#";
    switchContent(prev_side);
    return ;
}


// Wechselt das Bild unterhalb der Navigation, welches im detailpic-container
// liegt und mittels dem scrollObject proller angesprochen werden kann.
function
switchPic(elem, newimg, text)
{
    document.getElementById(elem).href       = "#";
    proller.block[0] = "";
    proller.block[1] = "";
    proller.block[2] = "<img src='" + newimg + "' /><br /><h5>" + text + 
                       "</h5>";
    proller.scroll();
    //document.getElementById("detailpic").src = newimg;
}




//
// Adds an event to window.onload without overwriting currently
// assigned onload functions.
// Function found at Simon Willisons weblog - 
//      http://simon.incutio.com/
//
function
addLoadEvent(func)
{
    var old_onload  = window.onload;

    if(typeof window.onload != 'function') {
        window.onload   = func;
    } else {
        window.onload   = function() {
            old_onload();
            func();
        }
    }
}

addLoadEvent (initNewWin);
addLoadEvent (initQuicklaunch);

