var toggleClass = "toggle";
var toggleSpeed = 4;
var toggleDelay = 10;
var divArray = new Array();
var togglingDivs = new Object();

function toggleDiv(divId,action) {
	var d = document.getElementById(divId);
	if (d==null || d.tagName!="DIV" || !d.offsetHeight || togglingDivs[divId]) { return; }
	d.style.overflow = "hidden";
	
	if (action=="open" || (typeof(action)=="undefined" && d.style.visibility=="hidden")) {
		var originalHeight = d.offsetHeight;
		var height = 1;
		d.style.height = height+"px";
		d.style.visibility = "visible";
		d.style.position="static";
		togglingDivs[divId] = true;
		setTimeout("toggleObj('"+divId+"','open',"+originalHeight+","+height+")",toggleDelay);
	}
	else if (action=="close" || (typeof(action)=="undefined" && d.style.visibility=="visible")) {
		var originalHeight = d.offsetHeight;
		var height = originalHeight;
		togglingDivs[divId] = true;
		setTimeout("toggleObj('"+divId+"','close',"+originalHeight+","+height+")",toggleDelay);
	}	
}

function toggleObj(divId, openClose, originalHeight, height) { 
	var d = document.getElementById(divId);
	if (d==null || d.tagName!="DIV") { return; }
	
	if (openClose=="open") {
		height = height * toggleSpeed;
		if (height > originalHeight) {
			d.style.height = originalHeight+"px";
			delete togglingDivs[divId];
		}
		else {
			d.style.height = height+"px";
			setTimeout("toggleObj('"+divId+"','"+openClose+"',"+originalHeight+","+height+")",toggleDelay);
		}
	}
	else {
		height = height * (1/toggleSpeed);
		if (height <= 1) {
			d.style.position = "absolute";
			d.style.visibility = "hidden";
			d.style.height = originalHeight+"px";
			delete togglingDivs[divId];
		}
		else {
			d.style.height = height+"px";
			setTimeout("toggleObj('"+divId+"','"+openClose+"',"+originalHeight+","+height+")",toggleDelay);
		}
	}
}

function hideToggleDivs() {
/*
	var divs = document.getElementsByTagName("DIV");
	for (var i=0; divs!=null && i<divs.length; i++) {
		if (divs[i].className.indexOf(toggleClass)>-1) {
			divArray[divArray.length] = divs[i];
			var s = divs[i].style;
			s.position="absolute";
			s.visibility="hidden";
		}
	}
*/
}

function addHandler(obj, evt, newhandler, captures) {
	if (obj.attachEvent) {
		obj.attachEvent('on' + evt, newhandler);
	}
	else if (obj.addEventListener) {
		obj.addEventListener(evt, newhandler, captures);
	}
	else {
		var oldhandler;
		if (oldhandler = obj['on' + evt]) {
			obj['on' + evt] = function() {
				oldhandler();
				newhandler();
			}
		}
		else {
			obj['on' + evt] = newhandler;
		}
	}
}

if (document.getElementById && document.getElementsByTagName) {
	addHandler(window,'load',hideToggleDivs,false);
}
