﻿//collapseable div script
//***********************
//** Matthew M. Osborn **
//**  www.osbornm.com  **
//***********************


//Configuration section
//********************************************************
var ExpandImageSrc = '/Images/accordion_up.gif'; //image location to display when Div is collapsed
var CollapseImageSrc = '/Images/accordion_down.gif'; //image location to display when Div is Expanded
var speed = 20; //how often the div refreshes to the new height
var incriment = 25; //each time hte div refreshes height will be increased or deceased by this amount
//********************************************************


//Code
//********************************************************
var iTimer;
var calcHeight;
function toggleDiv(divToShow){
    var help = document.getElementById(divToShow);
    var imgID = divToShow + 'Image';
    if (help.style.display == "none" || help.className == "exp collapse") {
		if(imgID){
			document.getElementById(imgID).setAttribute('src',CollapseImageSrc);
		}
		help.className = "exp";
		help.style.overflow = 'hidden';
		showDiv(divToShow);
		Expand(divToShow);
	}
	else {
		if(imgID){
			document.getElementById(imgID).setAttribute('src',ExpandImageSrc);
		}
		help.style.overflow = 'hidden';
		collapse(divToShow);
	}
}
function Expand(divName) {
	var help = document.getElementById(divName);		
	var height = help.offsetHeight;
	if(height < calcHeight){
		help.style.height = height + incriment + "px";
		iTimer = setTimeout( "Expand('" + divName +"')" , speed);
	}
	else{
	    clearTimeout(iTimer);
	    help.style.overflow = 'auto';
	}	
}		
function collapse(divName) {
	var help = document.getElementById(divName);		
	var height = help.offsetHeight;
	if(height > incriment){
		help.style.height = height - incriment + "px";
		iTimer = setTimeout( "collapse('" + divName +"')" , speed);
	}
	else{
		clearTimeout(iTimer);
		help.style.height ="100%";
		help.style.display = "none";
		help.style.overflow = 'auto';
	}	
}		
function showDiv(divName){
	var div = document.getElementById(divName);
	div.style.display = "block";
	calcHeight = div.offsetHeight;
	div.style.height = "0px";
}
//*******************************************************
