//original file: http://www.iwdn.net/showthread.php?t=5637
//------------------------------------------------------------------------------
//original file: http://www.iwdn.net/showthread.php?t=5637
//rewritten by DoTheBarkmann
//------------------------------------------------------------------------------


var Hide = "";
var varHt = 0;
var Ht = "";
var once=0;
var state=0; //start state of div; open or closed
var x = 0;  //direction bool
var y = 10; //timeout (ms)
var z = 10; //px speed
var offsetHeight = new Array();
var foo = new Array();

//------------------------------------------------------------------------------
//check welke div's hidden moeten zijn en collect de offset hoogtes
//------------------------------------------------------------------------------
function setupHide() {
//document.write(divName);
foo = document.getElementsByTagName("div");
	for (i=0;i<foo.length;i++) {
		if (foo[i].className == "hidden") {
			offsetHeight[foo[i].id] = document.getElementById(foo[i].id).offsetHeight;
			document.getElementById(foo[i].id).style.height = '0px';
		}
	}
}

//------------------------------------------------------------------------------
//check voor veranderde div de nieuwe hoogte
//------------------------------------------------------------------------------
function NewSetupHide(divName) {
//document.write(divName);
offsetHeight[divName] = document.getElementById(divName).offsetHeight;
}

//------------------------------------------------------------------------------
//toggle div tussen offset-hoogte en 0px
//
//------------------------------------------------------------------------------
function toggleHide(divName) {

Hide = divName;
Ht = offsetHeight[divName];

if(once==0){ // check of de div in- of uitgeklapt moet worden
	if(document.getElementById(divName).offsetHeight==0){
	x=0;
	varHt = 0;
	}
	else{
	varHt = Ht;
	x=1;
	}
once=1;
}


	if (x == 0) {
		document.getElementById(Hide).style.height = varHt+'px';
		if (((Ht-varHt) < z) && (varHt !== Ht)) {
			varHt = Ht;
		} else {
			varHt = varHt+z;
		}
		if (varHt <= Ht) {
			timer1=setTimeout("toggleHide(Hide)",y);
		}
		if (varHt > Ht) {
			if(timer1){
			clearTimeout(timer1);
			}
			varHt = Ht;
			x = 1;
			once=0;
		}
	} else {
		document.getElementById(Hide).style.height = varHt+'px';
		varHt = varHt-z;
		if ((Ht-varHt) <= Ht) {
			timer1=setTimeout("toggleHide(Hide)",y);
		}
		if ((Ht-varHt) > Ht) {
			if(timer1){
			clearTimeout(timer1);
			}
			varHt = 0;
			document.getElementById(Hide).style.height = varHt+'px';
			x = 0;
			once=0;
		}
	}
}
