// Call When Dom is Ready
///////////////////////////////////////////
addDOMLoadEvent(RotateFeature);

// Hero Element
var O_Hero;
var L_LastID = 0;

// Array of Features
var A_Links = new Array();
var A_Title = new Array();
var A_Images = new Array();

// Preload Images
var A_PreloadImages = new Array;

// Generate Features Data
function RotateFeature() {
	O_Hero = document.getElementById("hero");
	
	var O_Features = document.getElementById("features").getElementsByTagName("li");
	for (var i = 0; i < O_Features.length; i++) {
		var O_Link = O_Features[i].childNodes[0];

		A_Links[i] = O_Link.href;
		if (O_Link.innerText != undefined) {
			A_Title[i] = O_Link.innerText;
		} else {
			A_Title[i] = O_Link.innerHTML;
		}
		A_Images[i] = O_Link.title;
	}
	
	// Add in Main Hero to Arrays
	A_Links[i] = O_Hero.getElementsByTagName("a")[0].href;
	A_Title[i] = O_Hero.getElementsByTagName("a")[0].title;
	A_Images[i] = O_Hero.getElementsByTagName("img")[0].src;
	
	L_LastID = i;
	
	
	for(var i = 0; i < A_Images.length; i++){

		// Preload Images
		A_PreloadImages[i] = new Image();
		A_PreloadImages[i].src = A_Images[i];		
		
	}
	
	// Start Rotating
	setInterval('RotateBanner()', 5000);
}


// Rotate Banner Setup
function RotateBanner() {
	
	if (O_Hero) {
		var O_Link = O_Hero.getElementsByTagName("a")[0];
		var O_Image = O_Hero.getElementsByTagName("img")[0];
		var L_RandNum = Math.floor(Math.random()*A_Images.length);
		
		if (L_LastID == L_RandNum) {
			RotateBanner();
		} else {
			// Apply new settings
			L_LastID = L_RandNum;
			
			// Fade Out
			new Effect.Opacity('hero_photo', {duration:.5, from: 1, to: 0, afterFinish:function(effect){ChangeBanner();} });
		}
	}
	
}

// Rotate Banner
function ChangeBanner() {
	
	O_Hero.getElementsByTagName("img")[0].src = "";
	
	O_Hero.getElementsByTagName("a")[0].href = A_Links[L_LastID];
	O_Hero.getElementsByTagName("a")[0].title = A_Title[L_LastID];
	O_Hero.getElementsByTagName("img")[0].src = A_Images[L_LastID];
	O_Hero.getElementsByTagName("img")[0].alt = A_Title[L_LastID];
	
	// Fade In
	new Effect.Opacity('hero_photo', {duration:.5, from: 0, to: 1});
}

