var timerID = new Array();
var startTime = new Array();
var obj = new Array();
var contentHeight = new Array();
var moving = new Array();
var dir = new Array();


function prepAnimation() {
	if(!document.getElementById) return;
	var pagename = document.location.pathname.substring(document.location.pathname.lastIndexOf("/")+1);

	if(pagename=="pal_apply.cfm") {
		document.getElementById('lbl_responsibilities').onclick = function() { slidetoggle('responsibilities',350); return false };
		document.getElementById('lbl_requirements').onclick = function() { slidetoggle('requirements',350); return false };
		with(document.getElementById('responsibilities')) {
			style.height = (style.height=="")? offsetHeight+18+"px" : style.height;
			style.overflow = "hidden";	
			style.display = "none";
		}
		with(document.getElementById('requirements')) {
			style.height = (style.height=="")? offsetHeight+18+"px" : style.height;
			style.overflow = "hidden";
			style.display = "none";
		}
	} else if(pagename=="fundinglevels.cfm") {
		document.getElementById('lbl_platinum').onclick = function() { slidetoggle('platinum',350); return false };
		document.getElementById('lbl_gold').onclick = function() { slidetoggle('gold',300); return false };
		document.getElementById('lbl_silver').onclick = function() { slidetoggle('silver',300); return false };
		document.getElementById('lbl_bronze').onclick = function() { slidetoggle('bronze',250); return false };
		document.getElementById('lbl_friend').onclick = function() { slidetoggle('friend',200); return false };
		with(document.getElementById('platinum')) {
			style.height = (style.height=="")? offsetHeight+18+"px" : style.height;
			style.overflow = "hidden";
			style.display = "none";
		}
		with(document.getElementById('gold')) {
			style.height = (style.height=="")? offsetHeight+18+"px" : style.height;
			style.overflow = "hidden";
			style.display = "none";
		}
		with(document.getElementById('silver')) {
			style.height = (style.height=="")? offsetHeight+18+"px" : style.height;
			style.overflow = "hidden";
			style.display = "none";
		}
		with(document.getElementById('bronze')) {
			style.height = (style.height=="")? offsetHeight+18+"px" : style.height;
			style.overflow = "hidden";
			style.display = "none";
		}
		with(document.getElementById('friend')) {
			style.height = (style.height=="")? offsetHeight+18+"px" : style.height;
			style.overflow = "hidden";
			style.display = "none";
		}
	} else if(pagename=="glue.cfm" || pagename=="GLUE.cfm") {
		document.getElementById('lbl_undergrads').onclick = function() { slidetoggle('undergrads',350); return false };
		document.getElementById('lbl_grads').onclick = function() { slidetoggle('grads',200); return false };
		with(document.getElementById('undergrads')) {
			style.height = (style.height=="")? offsetHeight+18+"px" : style.height;
			style.overflow = "hidden";
			style.display = "none";
		}
		with(document.getElementById('grads')) {
			style.height = (style.height=="")? offsetHeight+18+"px" : style.height;
			style.overflow = "hidden";
			style.display = "none";
		}
	} else if(pagename=="glue-past-projects.cfm") {
		document.getElementById('lbl_spring05').onclick = function() { slidetoggle('spring05',400); return false };
		document.getElementById('lbl_spring04').onclick = function() { slidetoggle('spring04',400); return false };
		with(document.getElementById('spring05')) {
			style.height = (style.height=="")? offsetHeight+18+"px" : style.height;
			style.overflow = "hidden";
			style.display = "none";
		}
		with(document.getElementById('spring04')) {
			style.height = (style.height=="")? offsetHeight+18+"px" : style.height;
			style.overflow = "hidden";
			style.display = "none";
		}
	} else if(pagename=="wise.cfm") {
		document.getElementById('lbl_wiseopts').onclick = function() { slidetoggle('wiseopts',300); return false };
		document.getElementById('lbl_wiseewi').onclick = function() { slidetoggle('wiseewi',300); return false };
		document.getElementById('lbl_wiserec').onclick = function() { slidetoggle('wiserec',200); return false };
		document.getElementById('lbl_wiselead').onclick = function() { slidetoggle('wiselead',300); return false };
		document.getElementById('lbl_wisedev').onclick = function() { slidetoggle('wisedev',300); return false };
		document.getElementById('lbl_wiseglue').onclick = function() { slidetoggle('wiseglue',300); return false };
		with(document.getElementById('wiseopts')) {
			style.height = (style.height=="")? offsetHeight+18+"px" : style.height;
			style.overflow = "hidden";
			style.display = "none";
		}
		with(document.getElementById('wiseewi')) {
			style.height = (style.height=="")? offsetHeight+18+"px" : style.height;
			style.overflow = "hidden";
			style.display = "none";
		}
		with(document.getElementById('wiserec')) {
			style.height = (style.height=="")? offsetHeight+18+"px" : style.height;
			style.overflow = "hidden";
			style.display = "none";
		}
		with(document.getElementById('wiselead')) {
			style.height = (style.height=="")? offsetHeight+18+"px" : style.height;
			style.overflow = "hidden";
			style.display = "none";
		}
		with(document.getElementById('wisedev')) {
			style.height = (style.height=="")? offsetHeight+18+"px" : style.height;
			style.overflow = "hidden";
			style.display = "none";
		}
		with(document.getElementById('wiseglue')) {
			style.height = (style.height=="")? offsetHeight+18+"px" : style.height;
			style.overflow = "hidden";
			style.display = "none";
		}
	}
}

function slidedown(objname,animationLen){
	moving[objname] = true;
	dir[objname] = "down";
	startslide(objname,animationLen);
	document.getElementById('lbl_'+objname).style.backgroundPosition = "2% 11px";
}

function slideup(objname,animationLen){
	moving[objname] = true;
	dir[objname] = "up";
	startslide(objname,animationLen);
	document.getElementById('lbl_'+objname).style.backgroundPosition = "2% -89px";
}

function slidetoggle(divID,animationLen) {
	if(moving[divID]) return;
	if(document.getElementById(divID).style.display=="none")
		slidedown(divID,animationLen)
	else if(parseInt(document.getElementById(divID).style.height))
		slideup(divID,animationLen)
}

function startslide(divID,animationLen){
	obj[divID] = document.getElementById(divID);
	
	contentHeight[divID] = parseInt(obj[divID].style.height);
	startTime[divID] = (new Date()).getTime();

	if(dir[divID] == "down")
		obj[divID].style.height = "1px";
	obj[divID].style.display = "block";
	timerID[divID] = setInterval(function(){slidetick(divID,animationLen)},10);
}

function slidetick(divID,animationLen){
	var elapsed = (new Date()).getTime() - startTime[divID];

	if(elapsed < animationLen) {
		var d = Math.round(coscurve(elapsed/animationLen) * contentHeight[divID]);
		if(dir[divID] == "up")
			d = contentHeight[divID] - d;
		obj[divID].style.height = d + "px";
	} else	//animation is done
		endSlide(divID);

	return;
}


function endSlide(objname){
	clearInterval(timerID[objname]);

	if(dir[objname] == "up")
		obj[objname].style.display = "none";
	obj[objname].style.height = contentHeight[objname] + "px";

	delete(moving[objname]);
	delete(timerID[objname]);
	delete(startTime[objname]);
	delete(contentHeight[objname]);
	delete(obj[objname]);
	delete(dir[objname]);
	
	return;
}

addLoadEvent(prepAnimation);