﻿var tPartnerArray = new Array()
var tLinksArray = new Array()


function initAnimation()
{
    var partner = document.getElementById("BtnPartner").getElementsByTagName("div")[0].getElementsByTagName("span")[0]
    for (var i = 0; i < partner.getElementsByTagName("div").length; i++)
    {
        tPartnerArray.push(partner.getElementsByTagName("a")[i].innerHTML)
        partner.getElementsByTagName("a")[i].innerHTML = ""
    }

    var links = document.getElementById("BtnLinks").getElementsByTagName("div")[0].getElementsByTagName("span")[0]
    for (var i = 0; i < links.getElementsByTagName("div").length; i++)
    {
        tLinksArray.push(links.getElementsByTagName("a")[i].innerHTML)
        links.getElementsByTagName("a")[i].innerHTML = ""
    }
}

// JScript-Datei
var Id; /* Id von dem Element, welches geöffnet oder geschlossen werden soll*/
var wB; /* Anfangensbreite bzw. kleinste Breite Elements */
var wE; /* Endbreite bzw. größte Breite des Elements*/
var factor = 0; /* Variable wird bei jedem Durchlauf um wSpeed addiert beim Öffnen oder subtrahiert beim Schließen */
var wSpeed; /* gibt an um wieviel px sich jedesmal das Element vergrößert bzw. verkleinert soll */
var direction = 3; /* gibt an ob sich das Element öffnet "1", schließt "2" oder keine Bewegung ausführt "3" */
var sliding = false; /* wenn Fenster gerade öffnet/schliesst, kein uweites Öffnen/Schliessen möglich! */


/* die Funktion wird von dem Element aufgerufen, welches verändert werden soll
divId   Id von dem Element, welches geöffnet oder geschlossen werden soll
wBegin  Anfangsbreite bzw. kleinste Breite Elements
wEnd    Endbreite bzw. größte Breite des Elements
speed   gibt an um wieviel px sich jedesmal das Element vergrößert bzw. verkleinert soll
*/
function slide(divId, wBegin, wEnd, speed){
        Id = divId;
        wSpeed = speed;        
        wB =wBegin;
        wE =wEnd;
        factor = 0;    
    var pwidth = document.getElementById(divId).style.width;
    if( (pwidth.length == 0) || (pwidth.slice(0, pwidth.length -2 ) == wBegin))
    {
        direction = 1;
        if (sliding == false) {
            sliding = true;
            move(Id, speed);
        }
    }else{
        direction = 2;
        if (sliding == false) {
            sliding = true;
            move(Id, -speed);
        }
    }
}
/* die Funktion führt die eigentlichen Berechnung und Veränderungen
des Elementes durch
*/
function move(divId, wfactor) {

    var div = document.getElementById(divId);
    /* wfactor -> aktuelle Fenstergrösse in px; wSpeed -> Faktor um das Fenster vergrössert wird in px; */
    /* anzahlBuchstaben -> wieviel mal Fenster bisher erweitert wurde á 2 Buchstaben(die angezeigt werden) */
    var anzahlBuchstaben = (wfactor / wSpeed)*2
    
    /*direction  entscheided ob das Element geöffnet "1 oder geschlossen "2" wird*/
    if(direction == 1 ){
        if ((wE - wB) > factor ){
            div.style.width = String(wB + wfactor) + "px";

            for (var i = 0; i < div.getElementsByTagName("a").length; i++)
            {
                div.getElementsByTagName("a")[i].style.width = String(wB + wfactor) + "px";
                if (divId == "BtnPartner") {
                    var tPartner = document.getElementById("BtnPartner").getElementsByTagName("div")[0].getElementsByTagName("span")[0]
                    if (anzahlBuchstaben < tPartnerArray[i].length)
                        tPartner.getElementsByTagName("a")[i].innerHTML = tPartnerArray[i].substr(0, anzahlBuchstaben)
                    else
                        tPartner.getElementsByTagName("a")[i].innerHTML = tPartnerArray[i].substr(0, tPartnerArray[i].length)
                }
                if (divId == "BtnLinks") {
                    var tLinks = document.getElementById("BtnLinks").getElementsByTagName("div")[0].getElementsByTagName("span")[0]
                    if (anzahlBuchstaben < tLinksArray[i].length)
                        tLinks.getElementsByTagName("a")[i].innerHTML = tLinksArray[i].substr(0, anzahlBuchstaben)
                    else
                        tLinks.getElementsByTagName("a")[i].innerHTML = tLinksArray[i].substr(0, tLinksArray[i].length)
                }
            }
            
            factor = wfactor + wSpeed;            
            window.setTimeout("reload()",1);  
        }else{/* nachdem das Element mindestens (kann also durch den letzten durchlauf auch größer sein)
                die Größe hat wie in wE angeben, wird es auf die Größe von wE gestezt und kein neuer 
                Aufruf der Funktion durchgeführt */            
            factor = 0;
            document.getElementById(divId).style.width = String(wE) + "px";
            direction = 3;
            sliding = false;
        }
    }else{
        if ((wB - wE ) < factor ){
            div.style.width = String(wE + wfactor) + "px";
            factor = wfactor - wSpeed;            
            window.setTimeout("reload()",1);  
        }else{
            factor = 0;
            document.getElementById(divId).style.width = String(wB) + "px";
            for (var i = 0; i < div.getElementsByTagName("a").length; i++)
            {
                div.getElementsByTagName("a")[i].style.width = "0px";
                div.getElementsByTagName("a")[i].innerHTML = ""
            }

            direction = 3;
            sliding = false;
        }
    }
}
/* Wiederaufruf der Funktion. Wird nur benutzt 
weil ein eigener Aufruf einer Funktion mit Parametern nicht funktioniert
*/
function reload(){      
   move(Id, factor);
}

