// JavaScript Document
// Display and rotate panel (div) based content
//

// General settings
var rotate_delay = 10;		// Default number of seconds between rotations
var fade_length = 1;		// Default number of seconds for fade
var do_rotate = 1;			// Rotate the panels automatically?

// Container specific variables
var rotationCount = 0;		// Which panel are we up to?			
var rotationCount2 = 0;		// Which panel are we up to?


//
// Public functions: panel_Init(), panel_Rotate(), panel_Select(), panel_Next(), panel_Prev()
//

function panel_Init(init_panel, rotate, set_delay, set_fade) {
	if (init_panel == null)
		init_panel = 0;
	if (rotate == 0)
		do_rotate = 0;
	if (set_delay != null)
		rotate_delay = set_delay;
	if (set_fade != null)
		fade_length = set_fade;
		
	panel_Rotate(init_panel);
}

function panel_Init2(init_panel, rotate, set_delay, set_fade) {
	if (init_panel == null)
		init_panel = 0;
	if (rotate == 0)
		do_rotate = 0;
	if (set_delay != null)
		rotate_delay = set_delay;
	if (set_fade != null)
		fade_length = set_fade;
		
	panel_Rotate2(init_panel);
}

function panel_PauseRotate() {
	if(typeof(window['timeout']) != "undefined")
		clearTimeout(timeout);	// Reset timeout counter	
	if (do_rotate)
		timeout = setTimeout('panel_Rotate(1)', rotate_delay*1000);		
	if(typeof(window['timeout2']) != "undefined")
		clearTimeout(timeout2);	// Reset timeout counter
	if (do_rotate)
		timeout2 = setTimeout('panel_Rotate2(1)', (rotate_delay*1.5)*1000);				
}

function panel_Rotate(inc) {
	if (inc == null)
		inc = 0;
	if (!document.getElementById) {
		return;
	}

	var numPanels = 0;
	var divToRotate = document.getElementById("panelCont");
	var divs = divToRotate.getElementsByTagName("div");
	for (var i=0; i < divs.length; i++) {
		var div = divs[i];
		if ( (div.id != "") && (div.nodeType == 1) ) {
			div.style.display = "none";
			numPanels++;
		}
	}

	var divToRevealObj;
	if (rotationCount == 0) {		// First time displayed - don't fade in
		if (inc == 0)
			inc = Math.ceil( Math.random() * (numPanels) );
		rotationCount = rotationCount + inc;
		divToRevealObj = document.getElementById("panel_"+rotationCount);
		divToRevealObj.style.display = "block";
	} else {
		rotationCount = rotationCount + inc;
		if (rotationCount > numPanels)
			rotationCount = 1;
		else if (rotationCount < 1)
			rotationCount = numPanels;
		
		var divIdToReveal = rotationCount;
		divToRevealObj = document.getElementById("panel_"+divIdToReveal);
		fadeToDiv(divToRevealObj);
	}
	
	if(typeof(window['timeout']) != "undefined")
		clearTimeout(timeout);	// Reset timeout counter
	if (do_rotate)
		timeout = setTimeout('panel_Rotate(1)', rotate_delay*1000);
}

function panel_Rotate2(inc) {
	if (inc == null)
		inc = 0;
	if (!document.getElementById) {
		return;
	}

	var numPanels = 0;
	var divToRotate = document.getElementById("panelCont2");
	var divs = divToRotate.getElementsByTagName("div");
	for (var i=0; i < divs.length; i++) {
		var div = divs[i];
		if ( (div.id != "") && (div.nodeType == 1) ) {
			div.style.display = "none";
			numPanels++;
		}
	}

	var divToRevealObj;
	var delay2 = rotate_delay;
	if (rotationCount2 == 0) {		// First time displayed - don't fade in AND set longer firsttime delay
		if (inc == 0)
			inc = Math.ceil( Math.random() * (numPanels) );
		rotationCount2 = rotationCount2 + inc;
		divToRevealObj = document.getElementById("panel2_"+rotationCount);
		divToRevealObj.style.display = "block";
		delay2 = 1.5 * rotate_delay;
	} else {
		rotationCount2 = rotationCount2 + inc;
		if (rotationCount2 > numPanels)
			rotationCount2 = 1;
		else if (rotationCount2 < 1)
			rotationCount2 = numPanels;
		
		var divIdToReveal = rotationCount;
		divToRevealObj = document.getElementById("panel2_"+divIdToReveal);
		fadeToDiv2(divToRevealObj);
	}
	
	if(typeof(window['timeout2']) != "undefined")
		clearTimeout(timeout2);	// Reset timeout counter
	if (do_rotate)
		timeout2 = setTimeout('panel_Rotate2(1)', delay2*1000);
}

function panel_Select(num) {
	if (!document.getElementById) {
		return;
	}

	var numPanels = 0;
	var divToRotate = document.getElementById("panelCont");
	var divs = divToRotate.getElementsByTagName("div");
	for (var i=0; i < divs.length; i++) {
		var div = divs[i];
		if ( (div.id != "") && (div.nodeType == 1) ) {
			div.style.display = "none";
			numPanels++;
		}
	}
	
	var divToRevealObj;
	if (num > numPanels)
		num = 1;
	rotationCount = num;
	var divIdToReveal  = num;
	divToRevealObj = document.getElementById("panel_"+divIdToReveal);
	fadeToDiv(divToRevealObj);
	
	if(typeof(window['timeout']) != "undefined")
		clearTimeout(timeout);	// Clear timeout counter
	if (do_rotate)
		timeout = setTimeout('panel_Rotate(1)', rotate_delay*1000);
}

function panel_Next() {
	panel_Rotate(1);
}
function panel_Prev() {
	panel_Rotate(-1);
}


//
// Private functions
//

function fadeToDiv(divToRevealObj) {
	setOpacity(divToRevealObj.id, 0);
	divToRevealObj.style.display = "block";
	if(typeof(window['fade']) != "undefined") 
		clearTimeout(fade);	// Reset timeout counter
	fadeInDiv(divToRevealObj.id, 0);
}
function fadeToDiv2(divToRevealObj) {
	setOpacity(divToRevealObj.id, 0);
	divToRevealObj.style.display = "block";
	if(typeof(window['fade2']) != "undefined") 
		clearTimeout(fade2);	// Reset timeout counter
	fadeInDiv2(divToRevealObj.id, 0);
}
function fadeInDiv(divId, opacity) {
	if (fade_length == 0) {
		setOpacity(divId, 100);
		return;
	}
	if (opacity <= 100) {
		setOpacity(divId, opacity);
		opacity += (10 / fade_length);
		fade = window.setTimeout("fadeInDiv('"+divId+"',"+opacity+")", 100);
	}
}
function fadeInDiv2(divId, opacity) {
	if (fade_length == 0) {
		setOpacity(divId, 100);
		return;
	}
	if (opacity <= 100) {
		setOpacity(divId, opacity);
		opacity += (10 / fade_length);
		fade2 = window.setTimeout("fadeInDiv2('"+divId+"',"+opacity+")", 100);
	}
}
function setOpacity(divId, opacity) {
	var div = document.getElementById(divId);
	opacity = (opacity == 100)?99.999:opacity;
	div.style.filter = "alpha(opacity:"+opacity+")";
	div.style.KHTMLOpacity = opacity/100;
	div.style.MozOpacity = opacity/100;
	div.style.opacity = opacity/100;
}


