// This is the javascript for Active Panes
// 28/05/2008
//

var targetId;

function wait(msecs) {
	// Deprecated timer function, use setTimeout instead
	var start = new Date().getTime();
	var cur = start
	while(cur - start < msecs)
	{
		cur = new Date().getTime();
	}
}

function labelOver(labelDiv) {
	// Swap image title
	imgId = labelDiv.id.replace('ldId','imgTitle');
	currImg = document.getElementById(imgId);	
	currImg.src = currImg.src.replace('_l','_h');
	
	//  We iterate through each piece of text like this because
	// for some reason childNodes refuses to pass objects correctly
	// in a for loop
	l = labelDiv.childNodes.length;
	x = 0;
	
	while(x < l) {
		try {		
			labelDiv.childNodes[x].style.color = '#ffffff';
		}
		
		catch(e) {
		
		}
		x=x+1;
	}
	//labelDiv.childNodes[3].style.color = '#ffffff';
	labelDiv.style.background = '#5e365f';	
	
	
	
}

function labelOut(labelDiv) {

	// Swap image title
	imgId = labelDiv.id.replace('ldId','imgTitle');
	currImg = document.getElementById(imgId);	
	currImg.src = currImg.src.replace('_h','_l');
	
	//  We iterate through each piece of text like this because
	// for some reason childNodes refuses to pass objects correctly
	// in a for loop
	l = labelDiv.childNodes.length;
	x = 0;
	
	while(x < l) {
		try {
			labelDiv.childNodes[x].style.color = '#000000';
		}
		
		catch(e) {
		
		}
		x=x+1;
	}

	//labelDiv.childNodes[3].style.color = '#000000';
	labelDiv.style.background = '#ffffff';
	
	
}

function loader(callingObject) {
	// Responsible for initial calls
	// alert(callingObject.id);
	
	targetId = callingObject.id.replace('ldId','contentPane');
	hidePanes();
	
	hidEle = document.getElementById('loaderHider').style.width = '61em';	
	expander();
	
}

function expander() {
	// Grab the elements necessary for the loading bar
	barEle = document.getElementById('loaderBar');
	hidEle = document.getElementById('loaderHider');
	barEle.style.display = 'block';
	hidEle.style.display = 'block';
	w = hidEle.style.width;
	w = w.replace('em','');
	
	
	// This checks to see the current length and if it's less
	// than a set amount it takes it to 0 and stops the loop.
	if(w >= 10) {
		// This is for an exponential loading bar (which HCI research shows users feel is quicker)
		hidEle.style.width = w/1.05 + 'em';
		// This is for an linear loading bar
		//hidEle.style.width = w-7 + 'em';
		
		setTimeout('expander()', 50);
	} 
	
	if(w < 10) {
		hidEle.style.width = '0em';
		document.getElementById(targetId).style.height = '0em';
		document.getElementById(targetId).style.display = 'block';
		expander2();
	}
	
}


function expander2() {
	// This function takes care of expanding the larger grey content pane
	greyPane = document.getElementById(targetId);
	h = greyPane.style.height;
	h = h.replace('em','');
	
	if(h <= 45) {
		greyPane.style.height = parseFloat(h)+2 + 'em';
		setTimeout('expander2()', 50);
	}
	
	if(h > 45) {
		greyPane.style.height = '50em';
	}	
}


function hidePanes() {
	// This function takes care of hiding all contentPanes before
	// the expander animations are run
	
	master = document.getElementById('activePaneMaster');
	l = master.childNodes.length;
	x = 0;
	
	while(x < l) {
		try {
			currId = master.childNodes[x].id;
			if(currId.indexOf('contentPane') > -1) {
				document.getElementById(currId).style.display = 'none';
			}	
		}
		catch(e) {
		}
		
		x=x+1;
	}	
	
}
