//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++ Slider																									 ++
//++ Copyright (C) 2009 ML Websites																					 ++
//++																										 ++
//++ This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation;       ++
//++ either version 3 of the License, or (at your option) any later version.															 ++
//++ 																										 ++
//++ This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR    ++
//++ PURPOSE. See the GNU General Public License for more details.																        ++
//++																									        ++
//++ You should have received a copy of the GNU General Public License along with this program; if not, see <http://www.gnu.org/licenses/>						 ++
//++																										 ++
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++



var size = new Array();
var aktiv = new Array();
var speed=0;
var open = new Array();

function init(){

    var i = 0;    
    while(document.getElementById("s" + i) != null){ //Aus allen Slieder-Container die Höhe auslesen
	 document.getElementById("s" + i).style.display = 'block';
        size[i] = document.getElementById("s" + i).offsetHeight; //Höhe in ein Array Speichern - Indexnummer = Id beim Funktionsaufruf
        document.getElementById("s" + i).style.height = '1px';
        document.getElementById("s" + i).style.display = 'none';
        i++;
    }
}


function start(id){
    window.clearInterval(aktiv[id]);
    if(open[id] == 1){
        open[id] = 0;
        aktiv[id] = window.setInterval("slideOut(" + id + ")", 25);
    }
    else{
        open[id] = 1;
        aktiv[id] = window.setInterval("slideIn(" + id + ")", 25);
    }
}


function slideIn(id){ //Container ausfahren

    if(document.getElementById("s" + id).offsetHeight < size[id]){ //Nur weiter ausfahren, wenn die maximale Größe nicht überschritten wird
    
        //Geschwindigkeit (sanfter Start und sanftes Ende)
        if(speed<10) speed = (speed + 0.2);
        if((size[id] - document.getElementById("s" + id).offsetHeight) < 50){
            speed = speed - 3;
            if(speed < 1 ) speed = 1;
        }
        //-----------------
    
        document.getElementById("s" + id).style.display = 'block';
        document.getElementById("s" + id).style.height = (document.getElementById("s" + id).offsetHeight + (4 * speed)) + "px"; //Größe des Containers ändern
        
    }
    else{ //Wenn voll ausgefahren Interval beenden und speed auf null setzen
    
        window.clearInterval(aktiv[id]);
        speed = 0;
        
    }  
    
}


function slideOut(id){ //Container einfahren

    if(document.getElementById("s" + id).offsetHeight > 1){ //Nur solange einfahren, wie der Container noch eine Höhe hat
    
        //Geschwindigkeit (sanfter Start und sanftes Ende)
        if(speed<10) speed = (speed + 0.2);
        if(document.getElementById("s" + id).offsetHeight < 50){
            speed = speed - 3;
            if(speed < 1 ) speed = 1;
        }
        //-----
        
        if(document.getElementById("s" + id).offsetHeight - (4 * speed)< 0){ //Verhindern, dass ein Container eine negative Höhe hat
            document.getElementById("s" + id).style.display = 'none';
        }
        else{    
            document.getElementById("s" + id).style.height = (document.getElementById("s" + id).offsetHeight - (4 * speed)) + "px"; //Höhe verkleinern
        }
    }
    
    if(document.getElementById("s" + id).offsetHeight < 2){ //Wenn der Container nur noch eine Höhe von 2 hat, soll dieser ausgeblendet werden
        document.getElementById("s" + id).style.display = 'none';
        window.clearInterval(aktiv[id]);
        speed = 0;
    }
  
}
