// Functions for expanding content
// UGS Education Services
// Scott Sedam - 1/2006
// Webparts (arrow driven blocks) expand smoothly
// other content (driven be plus/minus) expands instantly

function toggle(targetID,type) {
	if (document.getElementById) {
		target = document.getElementById(targetID);
		expdiv = targetID+"-exp";
		icon = document.getElementById(targetID+"pic");
		// is div closed?
		if (icon.src.indexOf("/images/arrow-closed.gif") > -1 || icon.src.indexOf("/images/plus.gif") > -1 || icon.src.indexOf("/images/folderbl-icon.gif") > -1 ){
			// slide if web part
			if (type == "arrow"){
				target.style.display = "";
				icon.src = "/images/arrow-open.gif";
				slide(expdiv,target.offsetHeight,10);
			}	else if (type == "folder"){
				icon.src = "/images/folderblopen-icon.gif";
				target.style.display = "";
			}	else {
			// pop open if lower level
				icon.src = "/images/minus.gif";
				target.style.display = "";
			}
			
		} else {
			if (type == "arrow"){
				slide(expdiv,0,1);
				icon.src = "/images/arrow-closed.gif";
				target.style.display = "none";
			}	else if (type == "folder"){
				icon.src = "/images/folderbl-icon.gif";
				target.style.display = "none";
			}	else {
				icon.src = "/images/plus.gif";
				target.style.display = "none";
			}
		}
	}
}

var so_interval;

function slide(target, expandTo, speed) {
	var intv_call = 'slideIt(\'' + target + '\',' + expandTo + ')';
	clearInterval(so_interval);
	so_interval = setInterval(intv_call,speed);
}

function slideIt(target, expandTo) {
	var current = document.getElementById(target).offsetHeight;
	distTo = Math.abs(current - expandTo);
	var goSize = distTo/3;
	if( goSize < 1 ) goSize = 1;
	
	if( current > expandTo ) {
		//make shorter
		document.getElementById(target).style.height = (current-goSize) + "px";
	} else {
		// make taller
		document.getElementById(target).style.height = (current+goSize) + "px";
	}
	if( distTo < 2 ) {
		// very close, kill the timer, set it to the right height
		document.getElementById(target).style.height = expandTo + "px";
		//alert("done now "+expandTo);
		// if opening, set to auto so new ajax content or lower level expansion forces div expansion
		if (expandTo > 0) {document.getElementById(target).style.height = "auto";}
		clearInterval(so_interval);
	}
	
}

function hidehelp(targetID) {
	if (document.getElementById) {
		target = document.getElementById(targetID);
		target.style.display = "none";
	}
}
