var carouselIV;
var carouselID;
var carouselFadeIV;
var carouselFadeNum = 0;
var carouselTotal;
var carouselDelay = 3500;
var carouselColours = new Array("#000000", "#3084b2", "#3393C8");

function carouselInit() {
	document.getElementById("carousel").scope = this;
	document.getElementById("carousel").onmouseover = carouselStop;
	document.getElementById("carousel").onmouseout = carouselStart;
	
	carouselTotal = document.getElementById("carousel_head_parent").getElementsByTagName("li").length;


	for(var i=0; i< carouselTotal; i++){
		var obj = document.getElementById("carousel_link_" + (i+1));
		obj.scope = this;
		obj.onmouseover = carouselStop;
		
		obj = document.getElementById("carousel_head_" + (i+1));
		obj.scope = this;
		obj.onmouseover = carouselStop;
		
		obj = document.getElementById("carousel_head_" + (i+1)).getElementsByTagName("img")[0];
		obj.scope = this;
		obj.style.opacity =  0;
		obj.style.filter = "alpha(opacity=0)";
		
		obj = document.getElementById("carousel_head_" + (i+1)).getElementsByTagName("h3")[0];
		obj.scope = this;
		obj.style.visibility = "hidden";
		
		obj = document.getElementById("carousel_head_" + (i+1)).getElementsByTagName("p")[0];
		obj.scope = this;
		obj.style.visibility = "hidden";
		
	}
	document.getElementById("carousel_head_1").getElementsByTagName("img")[0].style.opacity = 1;
	document.getElementById("carousel_head_1").getElementsByTagName("img")[0].style.filter = "alpha(opacity=100)";
	document.getElementById("carousel_head_1").getElementsByTagName("h3")[0].style.visibility = "visible";
	document.getElementById("carousel_head_1").getElementsByTagName("p")[0].style.visibility = "visible";
	
	carouselStart(true);
}

function carouselStop(){
	clearInterval(this.scope.carouselFadeIV);
	if(this.id.indexOf("carousel_link_")>-1){
		for(var i=0; i< this.scope.carouselTotal; i++){
			document.getElementById("carousel_link_" + (i+1)).style.backgroundColor = carouselColours[1];
			document.getElementById("carousel_head_" + (i+1)).getElementsByTagName("img")[0].style.opacity = 0;
			document.getElementById("carousel_head_" + (i+1)).getElementsByTagName("img")[0].style.filter = "alpha(opacity=0)";
			document.getElementById("carousel_head_" + (i+1)).getElementsByTagName("h3")[0].style.visibility = "hidden";
			document.getElementById("carousel_head_" + (i+1)).getElementsByTagName("p")[0].style.visibility = "hidden";
			document.getElementById("carousel_head_" + (i+1)).style.zIndex = "1";
		}
		document.getElementById(this.id).style.backgroundColor = carouselColours[0];
		if(parseInt(this.id.split("carousel_link_")[1]) == this.scope.carouselTotal){
			this.scope.carouselID = 0;
		}else{
			this.scope.carouselID = parseInt(this.id.split("carousel_link_")[1]);
		}
		document.getElementById("carousel_head_" + this.id.split("carousel_link_")[1]).getElementsByTagName("img")[0].style.opacity = 1;
		document.getElementById("carousel_head_" + this.id.split("carousel_link_")[1]).getElementsByTagName("img")[0].style.filter = "alpha(opacity=100)";
		document.getElementById("carousel_head_" + this.id.split("carousel_link_")[1]).getElementsByTagName("h3")[0].style.visibility = "visible";
		document.getElementById("carousel_head_" + this.id.split("carousel_link_")[1]).getElementsByTagName("p")[0].style.visibility = "visible";
		document.getElementById("carousel_head_" + this.id.split("carousel_link_")[1]).style.zIndex = "500";
		
	}else if(this.id.indexOf("carousel_head_")>-1 && document.getElementById(this.id).getElementsByTagName("h3")[0].style.visibility == "visible"){
		document.getElementById("carousel_link_" + this.id.split("carousel_head_")[1]).style.backgroundColor = carouselColours[0];
	}
	clearInterval(this.scope.carouselIV);
}

function carouselStart(init){
	if(init == true) {
		carouselID = 0;
		carouselNext();
	}
	for(var i=0; i< carouselTotal; i++){
		if(document.getElementById("carousel_head_" + (i+1)).getElementsByTagName("h3")[0].style.visibility == "visible"){
			document.getElementById("carousel_link_" + (i+1)).style.backgroundColor = carouselColours[2];
		}else{
			document.getElementById("carousel_link_" + (i+1)).style.backgroundColor = carouselColours[1];
		}
	}
	if(this.scope == undefined){
		carouselIV = setInterval(carouselNext, carouselDelay);
	}else{
		this.scope.carouselIV = setInterval(this.scope.carouselNext, this.scope.carouselDelay);
	}
}

function carouselNext(){
	
	clearInterval(carouselFadeIV);
	
	for(var i=0; i< carouselTotal; i++){
		document.getElementById("carousel_link_" + (i+1)).style.backgroundColor = carouselColours[1];
		document.getElementById("carousel_head_" + (i+1)).getElementsByTagName("img")[0].style.opacity = 0;
		document.getElementById("carousel_head_" + (i+1)).getElementsByTagName("img")[0].style.filter = "alpha(opacity=0)";
		document.getElementById("carousel_head_" + (i+1)).getElementsByTagName("h3")[0].style.visibility = "hidden";
		document.getElementById("carousel_head_" + (i+1)).getElementsByTagName("p")[0].style.visibility = "hidden";
		
		document.getElementById("carousel_head_" + (i+1)).style.zIndex = "1";
	}
	document.getElementById("carousel_links_parent").getElementsByTagName("a")[carouselID].style.backgroundColor = carouselColours[2];
	var obj = document.getElementById("carousel_head_parent").getElementsByTagName("li")[carouselID]
	
	obj.getElementsByTagName("h3")[0].style.visibility = "visible";
	obj.getElementsByTagName("p")[0].style.visibility = "visible";
	obj.style.zIndex = "500";
	
	carouselFadeIV = setInterval("setOpacity(" + carouselID + ")",30);
	
	if(carouselID < carouselTotal-1){
		carouselID++;
	}else{
		carouselID = 0;
	}
}

function setOpacity(id)
{
	if(carouselFadeNum < 11){
		var obj = document.getElementById("carousel_head_parent").getElementsByTagName("img")[(id)];
		obj.style.opacity = carouselFadeNum/10;
		obj.style.filter = 'alpha(opacity=' + carouselFadeNum*10 + ')';
		carouselFadeNum++;
	}else{
		carouselFadeNum = 0;
		clearInterval(carouselFadeIV);
	}
}

//Event.observe(window, "load", carouselInit, false);