/*************************************************************************
	Navigation for the Home Page, Version 3
*************************************************************************/	

var items;
var finished;
var hoverset;
var clickset;
var clickbutton;

// the following varibles should correspond such that timeoutMS = timeoutSEC * 1000
var timeoutMS = 300;
var timeoutSEC = 0.3;

function setupItems() {
	items = new Array();
	finished = new Array();
	var navsub = document.getElementById('nav-sub');
	var uls = navsub.getElementsByTagName('ul');

	for(var i=0; i<uls.length; i++) {
		var id = uls[i].getAttribute("id");
		var as = uls[i].getElementsByTagName('a')
		items[id] = as;
		finished[id] = true;
	}
	var nav = document.getElementById('nav-main');
	YAHOO.util.Event.addListener(nav.getElementsByTagName('li'), "mouseover", hoverHighlight);
	YAHOO.util.Event.addListener(nav.getElementsByTagName('li'), "mouseout", unhoverHighlight);

	YAHOO.util.Event.addListener(navsub.getElementsByTagName('a'), "mouseover", subHighlight);
	YAHOO.util.Event.addListener(navsub.getElementsByTagName('a'), "mouseout", subUnhighlight);
}
function getColor (which) {
	switch (which) {
		case "nav-projects" :
			var color = "#00B6CF";
			break;
		case "nav-studios":
			var color = "#27C2D6";
			break;
		case "nav-blog":
			var color = "#4ECDDE";
			break;
		case "nav-about":
			var color = "#71D6E3";
			break;
		case "nav-news":
		default:
			var color = "#98E1EB";
	}
	return color;
}
function getColorAttributes (which) {
	var color = getColor(which);
	var attributes = {backgroundColor: { 
		to: color
		}
	};
	return attributes;
}
function changeToGray (which) {
	for(var i=0; i<items[which].length; i++) {
		var anim = new YAHOO.util.ColorAnim(items[which][i], {backgroundColor: { to: '#C4C4C4' } }); 
		anim.duration = timeoutSEC;
		anim.animate(); 
	}
}
function changeToBlue (which) {
	for(var i=0; i<items[which].length; i++) {
		var anim = new YAHOO.util.ColorAnim(items[which][i], getColorAttributes(which)); 
		anim.duration = timeoutSEC;
		anim.animate(); 
	}
}
function removeClass (which) {
	for(var i=0; i<items[which].length; i++) {
		YAHOO.util.Dom.removeClass(items[which][i], 'active');
		items[which][i].style.backgroundColor="";
	}
}
function highlight(which) {
	for(var i=0; i<items[which].length; i++) {
		YAHOO.util.Dom.addClass(items[which][i],'active');
	}
}
function fade(which) {
	if (finished[which]) {
		finished[which] = false;
		changeToGray(which);
		setTimeout("changeToBlue('"+which.toString()+"')", timeoutMS);
		setTimeout("finished['"+which.toString()+"'] = true", timeoutMS*2);
	}		
}
function hoverHighlight() {
	//If a button made it past the mouseout without being turned off, turn it off now
	if(hoverset) {
		fade(hoverset);
		hoverset = false;
	}

	which = this.getAttribute('highlights');
	if (finished[which]) {
		//Remove active classes and background colors from nav boxes
		removeClass(which);	
		highlight(which);	
		hoverset = which;
	}
//	else {
//		setTimeout("removeClass('" + which.toString() + "'); highlight('" + which.toString() + "'); hoverset = '" + which.toString() + "';", timeoutMS*1.5);
//	}
}
function unhoverHighlight() {
	//When we mouse out of a button, turn it off
	if(this.getAttribute('highlights')!=clickset) {
		fade(hoverset);
		hoverset = false;
	}
}
function subHighlight () {
	this.style.backgroundColor = '#FFC300';
}
function subUnhighlight () {
	this.style.backgroundColor = getColor(this.parentNode.parentNode.id);
}
YAHOO.util.Event.addListener(window, 'load', setupItems);


/*************************************************************************
 Homepage Image rotation function
*************************************************************************/ 
// Version 1
var interval = 6; // interval in seconds

function rotateImages (id) {
	changeRotation(id);
	setTimeout("rotateImages('" + id + "')", interval * 1000);
}

function changeRotation (id) {
	var el = document.getElementById(id);
	if (el) {
		var date = new Date();
		var second = parseInt(date.getSeconds());
		var display = (Math.round(second/interval)) % imgArray.length;
		el.src = imgArray[display].src;
	}
}

// Version 2
var animationTime = 1; //how long the fade takes, in seconds
var delay = 5; //how long to wait between fades, in seconds
var initialDelay = 5; //how long to wait before starting the fades
var numImages = 4;

var bannerDivs;
var bannerFadeIn = Array();
var bannerFadeOut = Array();

var currentShowing = 0;
var attributesIn = {
	opacity: { to: 1 }
};
var attributesOut = {
	opacity: { to: 0 }
};

function initRotateBanner() {
	bannerDivs = document.getElementsBySelector("#home .title-image");
	for(var i=0; i<bannerDivs.length; i++) {
		numImages = bannerDivs.length;
		bannerFadeIn[i] = new YAHOO.util.Anim(bannerDivs[i], attributesIn);
		bannerFadeIn[i].duration = animationTime;
		bannerFadeOut[i] = new YAHOO.util.Anim(bannerDivs[i], attributesOut);
		bannerFadeOut[i].duration = animationTime;
	}
	setTimeout("rotateBanner()", initialDelay*1000);
}
function rotateBanner() {
	bannerFadeOut[currentShowing].animate();
	bannerFadeIn[(currentShowing+1)%numImages].animate();
	currentShowing=(currentShowing+1)%numImages;
	setTimeout("rotateBanner()", delay*1000);
}

YAHOO.util.Event.addListener(window, "load", initRotateBanner);
