initExpandables = function() {
	var ie_5_or_6 = false;

	//check for ie5.5 or 6
	if((navigator.appVersion.indexOf("MSIE 5.5") > -1) || (navigator.appVersion.indexOf("MSIE 6.0") > -1)){ie_5_or_6 = true;}
	
	if (!document.getElementById) return;
	var navSet = document.getElementsByTagName("DIV");
	if (!navSet) return;
		
	for (var item=0;item<navSet.length;item++) {
		var navObj = navSet[item];
		var navPara = navObj.getElementsByTagName("DIV")[0];
		var navHead = navObj.getElementsByTagName("H4")[0];
		if (!navObj || !navObj.id) continue;
		var itemID = navObj.id + "";

		if (!navObj.className.match("expandable")) continue;
		
		navPara.style.position = "absolute";
				
		if (navObj.className.match("selected")) {
			navPara.style.clip = "rect(0px "+navObj.offsetWidth+"px " + navPara.offsetHeight + "px 0px)";
			navPara.parentNode.style.height = navObj.offsetHeight;
			navHead.className += ' expanded';
		} else {		
			navPara.style.clip = "rect(0px "+navObj.offsetWidth+"px 0px 0px)";
			navHead.className += ' contracted';
			
			//set initial loading height of contracted elements dynamically for ie5.5 and ie6 due to global css inheritance bug
			if(ie_5_or_6){
				navObj.style.height = "1px";
			}
		}
	}
}
function showSection(obj) {
	if (typeof(obj)=="string") obj = document.getElementById(obj);
	rollout(obj);
	var navHead = obj.getElementsByTagName("H4")[0];
	navHead.onclick = function(){hideSection(this.parentNode);}
	navHead.className = navHead.className.replace('contracted','expanded');
	if (navHead.innerHTML.match("(Show)")) navHead.innerHTML=navHead.innerHTML.replace("(Show)","(Hide)");
}
function hideSection(obj) {
	if (typeof(obj)=="string") obj = document.getElementById(obj);
	rollin(obj);
	var navHead = obj.getElementsByTagName("H4")[0];
	navHead.onclick = function(){showSection(this.parentNode);}
	navHead.className = navHead.className.replace('expanded','contracted');
	if (navHead.innerHTML.match("(Hide)")) navHead.innerHTML=navHead.innerHTML.replace("(Hide)","(Show)");
}
function rollout(obj) {
	if (typeof(obj)=="string") obj = document.getElementById(obj);
	var navObj = obj;
	var navPara = navObj.getElementsByTagName("DIV")[0];
	var navHead = navObj.getElementsByTagName("H4")[0];

	if (!navObj) return;
	if (!navPara) return;
	var clipBottom = navPara.style.clip;
	if (clipBottom.match(", ")) clipBottom = clipBottom.split(", ")[2];
	else if (clipBottom.match(" ")) clipBottom = clipBottom.split(" ")[2];
	else clipBottom = 0;

	if (parseInt(clipBottom) >= navPara.offsetHeight) {
		navObj.style.height = navPara.offsetHeight+parseInt(navHead.offsetHeight)+"px";
		navPara.style.clipBottom = navPara.offsetHeight+"px";
	} else {
		navObj.style.height = Math.abs(parseInt(clipBottom))+parseInt(navHead.offsetHeight)+"px";
		navPara.style.clip = "rect(0px, "+navObj.offsetWidth+"px, "+(parseInt(clipBottom)+5)+"px, 0px)";
		
		//for all instances of Internet Explorer, ensure that wrapper div has its overflow set to visible when rolling out
		if(browser_type() == "ie"){
			get_element("wrapper").style.overflow = "visible";
		}
		
		setTimeout("rollout('" + navObj.id + "')",15);
	}
}
function rollin(obj) {
	if (typeof(obj)=="string") obj = document.getElementById(obj);
	var navObj = obj;
	var navPara = navObj.getElementsByTagName("DIV")[0];
	var navHead = navObj.getElementsByTagName("H4")[0];
	if (!navObj) return;
	if (!navPara) return;
	var clipBottom = navPara.style.clip;
	if (clipBottom.match(", ")) clipBottom = clipBottom.split(", ")[2];
	else if (clipBottom.match(" ")) clipBottom = clipBottom.split(" ")[2];
	if (parseInt(clipBottom) <= 0) {
		navObj.style.height = parseInt(navHead.offsetHeight)+"px";
		navPara.style.clipBottom = 0;
	} else {
		navObj.style.height = Math.abs(parseInt(clipBottom)-7)+parseInt(navHead.offsetHeight)+"px";
		navPara.style.clip = "rect(0px "+navObj.offsetWidth+"px "+(parseInt(clipBottom)-7)+"px 0px)";
		setTimeout("rollin('" + navObj.id + "')",15);
	}
}
//install in window.onload
if (typeof window.onload=="function") {
	onload_continue = window.onload;
	window.onload = function() {
		initExpandables();
		onload_continue();
	}
}
