var divFade_previousDivId = "";
var divFade_lastTimeoutId = "";
var divFade_slideshowTimeoutId = "";

function divFadeButton(switchDiv) {

	if (divFade_preFunc && divFade_preFunc.length) {
		
		eval(divFade_preFunc);
	}
	
	if (divFade_slideshow) {
		divFade_slideshow == false;
		if (divFade_slideshowTimeoutId != "") { window.clearTimeout(divFade_slideshowTimeoutId); }
	}
	
	return divFade(switchDiv);
}

function divFade(switchDiv) {
	
	// make sure any current fade is completed
	if (divFade_lastTimeoutId != "") { window.clearTimeout(divFade_lastTimeoutId); }
	setOpacity(document.getElementById(divFade_divPrefix + divFade_currentDivId), 100);
	if (document.getElementById(divFade_divPrefix + divFade_previousDivId)) { setZIndex(document.getElementById(divFade_divPrefix + divFade_previousDivId), 1); }
	
	// set prev div
	divFade_previousDivId = divFade_currentDivId;
	
	// set incoming div as current
	divFade_currentDivId = switchDiv;
	setOpacity(document.getElementById(divFade_divPrefix + divFade_currentDivId), 0);
	
	// set z-index
	currDiv = document.getElementById(divFade_divPrefix + divFade_currentDivId);
	setZIndex(currDiv, 50);
	
	prevDiv = document.getElementById(divFade_divPrefix + divFade_previousDivId);
	setZIndex(prevDiv, 2);
	
	crossFade(divFade_divPrefix + divFade_currentDivId,0);
	switchDivFadeButtonState();
	
	return false;
}

function setOpacity(obj, opacity) {

	opacity = (opacity == 100)?99.999:opacity;
	
	// IE/Win
	obj.style.filter = "alpha(opacity="+opacity+")";
	
	//alert(obj.style.filter);
	
	// Safari<1.2, Konqueror
	obj.style.KHTMLOpacity = opacity/100;
	
	// Older Mozilla and Firefox
	obj.style.MozOpacity = opacity/100;
	
	// Safari 1.2, newer Firefox and Mozilla, CSS3
	obj.style.opacity = opacity/100;
}

function setZIndex(obj, idx) {
	
	obj.style.zIndex = idx;
}

function crossFade(inObjId,inOpacity) {
	if (document.getElementById) {
		obj = document.getElementById(inObjId);
		if (inOpacity <= 100) {
			setOpacity(obj, inOpacity);
			inOpacity += 10;
			divFade_lastTimeoutId = window.setTimeout("crossFade('"+inObjId+"',"+inOpacity+")", 100);
		}
	}
}

function divFadeOnClickHandlers() {

	 var naviDiv = document.getElementById(divFade_parentButtonDiv);

	 if (naviDiv) {

		 for (var i = 0;i < naviDiv.childNodes.length; i++) {

			if (naviDiv.childNodes[i].tagName == 'a' || naviDiv.childNodes[i].tagName == 'A') {
				
				naviDiv.childNodes[i].onclick = function () {
					var naviMatch = divFade_buttonLinkVar + "=([0-9]{1,})";
					//alert(naviMatch);
					var naviRE = new RegExp(naviMatch);
					var result = this.href.match(naviRE);
					if (result != null) {
						return divFadeButton(result[1]);
					}
					else {
						return true;
					}
				}
			}
		}
	}
}

function switchDivFadeButtonState() {
	
	var naviDiv = document.getElementById(divFade_parentButtonDiv);
	 
	for (var i = 0;i < naviDiv.childNodes.length; i++) {
	
		if (naviDiv.childNodes[i].tagName == 'a' || naviDiv.childNodes[i].tagName == 'A') {
			naviDiv.childNodes[i].className = '';
		}
	}
	
	document.getElementById(divFade_buttonPrefix + divFade_currentDivId).className = divFade_buttonOnClass;
}

function initSlideshow() {

	divFade_slideshowTimeoutId = window.setTimeout("doSlideshow()", divFade_slideshowTimeout);
}

function doSlideshow() {
	
	var nextDivId = Number(divFade_currentDivId) + 1;
	
	if (nextDivId > divFade_numDivs) {
		nextDivId = 1;
	}
	
	//alert(divFade_divPrefix + nextDivId);
	
	divFade(String(nextDivId));
	
	divFade_slideshowTimeoutId = window.setTimeout("doSlideshow()", divFade_slideshowTimeout);
}

divFadeOnClickHandlers();

if (divFade_slideshow && divFade_numDivs > 1) {
	
	initSlideshow();
}