var NEXT_ZINDEX = 1;
var CURRENT_ZINDEX = 2;

var imageContainer = null;
var fadeInterval = null;

var images = new Array();
var currentIndex = 1;
var currentImage = null;
var nextImg = null;

var duration = 6000;

function initFade(){
	imageContainer = (imageContainer)?imageContainer:document.getElementById("imageContainer");
	images = (imageContainer)?imageContainer.getElementsByTagName("img"):null;
	if(images && images[0]){
		currentImage = images[0];
		currentImage.style.zIndex = CURRENT_ZINDEX;
	}
	if(images && images[1]){
		nextImg = images[1];
		nextImg.style.zIndex = NEXT_ZINDEX;
		currentIndex++;
		beginFade();
	}
}

function fade(){
	var opacity = getOpacity(currentImage);
	if(opacity > 0){
		opacity = opacity-5;
		setOpacity(currentImage, opacity);
	}else{
		endFade();
		setNextImage();
	}
}

function setNextImage(){
	if(currentImage){
		currentImage.style.zIndex = "0";
		setOpacity(currentImage, 100);
		currentImage = null;
	}
	if(nextImg){
		currentImage = nextImg;
		currentImage.style.zIndex = CURRENT_ZINDEX;
		nextImg = null;
	}
	if(currentIndex < images.length){
		nextImg = images[currentIndex];
		currentIndex++;
	}else if(images && images.length > 0){
		currentIndex = 0;
		nextImg = images[currentIndex];
		currentIndex++;
	}
	if(nextImg && nextImg.style){
		nextImg.style.zIndex = NEXT_ZINDEX;
	}
	window.setTimeout(beginFade, duration);
}

function beginFade(){
	if(!fadeInterval){
		fadeInterval = window.setInterval(fade, 60);
	}

}

function endFade(){
	if(fadeInterval){
		window.clearInterval(fadeInterval);
		fadeInterval = null;
	}
}

function checkInitAlpha(elmnt){
	if(elmnt.filters["alpha"] == undefined){
		elmnt.style.filter = "Alpha(enabled=1)";
	}
}

function getOpacity(elmnt){
	var opacity = -1;
	if(elmnt.filters){
		checkInitAlpha(elmnt);
		opacity = parseFloat((elmnt.filters["alpha"])?elmnt.filters["alpha"].opacity:100);
	}else if(elmnt.style.opacity != undefined){
		if(elmnt.style.opacity == null || elmnt.style.opacity == ""){
			opacity = 100;
		}else{
			opacity = 100*parseFloat(elmnt.style.opacity);
		}
	}
	return opacity;
}

function setOpacity(elmnt, opac){
	if(elmnt.filters){
		checkInitAlpha(elmnt);
		if(elmnt.filters["alpha"]){
			elmnt.filters["alpha"].opacity = opac;
		}
	}else if(elmnt.style.opacity != undefined){
		elmnt.style.opacity = parseFloat(opac)/100;
	}
}