var mainDiv,
	btnHolder,
	imageTimer = null,
	fadeTimer = null,
	fadingIn = null,
	fadingOut = null,
	flipper = true,
	currentImage;
function createRotatingButtons() {
	mainDiv = document.getElementById('inner');
	btnHolder = document.getElementById('btnHolder');
	if(mainDiv && btnHolder) {
		for(var i=0; i<mainDiv.childNodes.length; i++) {
			btnHolder.innerHTML += "<a href=# onClick=\"chgImg(" + i + ", true); return false;\">" + (i + 1) + "</a>";
			mainDiv.childNodes[i].setAttribute('opacity', '0');
			setOpacityFromAttribute(mainDiv.childNodes[i]);
		}
		btnHolder.innerHTML += "<a href=# onClick=\"pausePlay(this); return false;\" style=\"padding: 0; font-size: 0;\"><img src='http://lib.store.yahoo.net/lib/yhst-11569676815435/pause.gif' /></a>";
		if (mainDiv.childNodes.length > 0) {
			mainDiv.childNodes[0].style.display = 'block';
			currentImage = 0;
			mainDiv.childNodes[0].setAttribute('opacity', '1');
			setOpacityFromAttribute(mainDiv.childNodes[0]);
			imageTimer = setInterval('showNextImage()',5000);
			btnHolder.childNodes[0].style.color = "#19509F";
		}
	}
}

function pausePlay(tag) {
	if(flipper) {
		flipper = false;
		clearInterval(imageTimer);
		tag.innerHTML = '<img src="http://lib.store.yahoo.net/lib/yhst-11569676815435/play.gif" />';
	} else {
		imageTimer = setInterval('showNextImage()',5000);
		flipper = true;
		tag.innerHTML = '<img src="http://lib.store.yahoo.net/lib/yhst-11569676815435/pause.gif" />';
	}
}

function fadeStep() {
	var fadingOutOpacity = fadingOut.getAttribute('opacity');
	fadingOutOpacity = (fadingOutOpacity != null) ? parseFloat(fadingOutOpacity) : 1;
	if (fadingOutOpacity == 0) fadingOut.style.display = 'none';
	var fadingInOpacity = parseFloat(fadingIn.getAttribute('opacity')) || 0;
	if (fadingOutOpacity == 0 && fadingInOpacity == 1) {
		clearInterval(fadeTimer);
		return;
	}
	fadingOutOpacity = fadingOutOpacity > 0 ? fadingOutOpacity - .1 : 0;
	fadingInOpacity = fadingInOpacity < 1 ? fadingInOpacity + .1 : 1;

	fadingOut.setAttribute('opacity', fadingOutOpacity);
	fadingIn.setAttribute('opacity', fadingInOpacity);
	
	setOpacityFromAttribute(fadingOut);
	setOpacityFromAttribute(fadingIn);
}

function setOpacityFromAttribute(element) {
	var opacity = element.getAttribute('opacity');
	opacity = (opacity == null) ? 0 : parseFloat(opacity);
	try {
		if (document.body.filters) {
			element.style.filter = "alpha(opacity=" +
			  (opacity * 100) + ")";
		} else {
			element.style.opacity = opacity;
		}
	} catch (e) {}
}

function chgImg(imgNum, clickFromLink) {
	// If currently fading, kill the existing fade timer.
	if (fadeTimer != null) clearInterval(fadeTimer);
	// If a button was clicked, stay on the requested image.
	if (clickFromLink && clearInterval != null) {
		clearInterval(imageTimer);
		imageTimer = null;
	}
	// Don't try to fade to the current image. Bad things.
	if (currentImage == imgNum) return;
	if (currentImage == null) currentImage = imgNum;
	for (var i=0; i<mainDiv.childNodes.length; i++) {
		mainDiv.childNodes[i].style.display =
			(i == imgNum || i == currentImage) ? "block" : "none";
		if (imgNum == i) mainDiv.childNodes[i].setAttribute('opacity', 0);
	}
	fadingOut = mainDiv.childNodes[currentImage];
	fadingIn = mainDiv.childNodes[imgNum];
	fadeTimer = setInterval("fadeStep()", 100);
	currentImage = imgNum;
	var btns = btnHolder.childNodes;
		for(var j=0; j<btns.length; j++) {
			if(j == imgNum) {
				btns[j].style.color = "#19509F";
			} else {
				btns[j].style.color = "#FFFFFF";
			}
		}
	return false;
}

function showNextImage() {
	chgImg((currentImage + 1) % mainDiv.childNodes.length, false);
}
