var NEXT_ZINDEX = 0;
var CURRENT_ZINDEX = 1;

var fadeContainer = null;
var imageContainer = null;
var fadeInterval = null;


var images = new Array();
var currendIndex = 0;
var currentImage = null;
var nextImg = null;

var duration = 3000;

function initFade(){
	imageContainer = (imageContainer)?imageContainer:document.getElementById("imageContainer");
	images = (imageContainer)?imageContainer.getElementsByTagName("img"):null;
	fadeContainer = (fadeContainer)?fadeContainer:document.getElementById("fadeContainer");
	if(images && images[0]){
		currentImage = images[0].cloneNode(true);
		fadeContainer.appendChild(currentImage);
		currentImage.style.zIndex = CURRENT_ZINDEX;
		currentImage.style.position = "absolute";
		currentImage.style.top = "0px";
		currentImage.style.left = "0px";
	}
	if(images && images[1]){
		nextImg = images[1].cloneNode(true);
		fadeContainer.appendChild(nextImg);
		nextImg.style.zIndex = NEXT_ZINDEX;
		nextImg.style.position = "absolute";
		nextImg.style.top = "0px";
		nextImg.style.left = "0px";
		currendIndex++;
		beginFade();
	}
}

function fade(){
	var opacity = getOpacity(currentImage);
	if(opacity > 0){
		opacity = opacity-1;
		setOpacity(currentImage, opacity);
	}else{
		endFade();
		setNextImage();
	}

}

function setNextImage(){
	fadeContainer = (fadeContainer)?fadeContainer:document.getElementById("fadeContainer");
	if(fadeContainer){
		if(currentImage){
			fadeContainer.removeChild(currentImage);
			currentImage = null;
		}
		if(nextImg){
			currentImage = nextImg;
			currentImage.style.zIndex = CURRENT_ZINDEX;
			nextImg = null;
		}
		if(currendIndex < images.length){
			nextImg = images[currendIndex].cloneNode(true);
			currendIndex++;
		}else if(images && images.length > 0){
			currendIndex = 0;
			nextImg = images[currendIndex].cloneNode(true);
		}
		if(nextImg && nextImg.style){
			fadeContainer.appendChild(nextImg);
			nextImg.style.zIndex = NEXT_ZINDEX;
			nextImg.style.position = "absolute";
			nextImg.style.top = "0px";
			nextImg.style.left = "0px";
		}
		window.setTimeout(beginFade, duration);
	}

}

function beginFade(){
	if(!fadeInterval){
		fadeInterval = window.setInterval(fade,30);
	}

}

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;
	}
}