/* Changes the way div is displayd, unhiding and hideing for example */
function displayDIV(divName, divDisplay) {
    var temp;
    if (document.getElementById) {
    	temp = document.getElementById(divName);
    } else if (document.all) {
	    temp = document.all[divName];
    } else if (document.layers) {
	    temp = document.layers[divName];
	} else {
		//Brownser doesn't support JS
	}
	temp.style.display = divDisplay;
}

/* Image fading functions */

/* Config */
var FadeInSpeed = 15;
var FadeOutSpeed = 15;

if(!window.xFade) { xFade=new Object(); }

xFade.RolloverObjects=new Array();

xFade.Rollover = function(name, img) {
	xFade.RolloverObjects[name]=new Image();
	xFade.RolloverObjects[name].img_src = img;
	if(!xFade.Rollover.postLoad)
		xFade.RolloverObjects[name].src = img;
}

xFade.Rollover.postLoad = false;

xFade.Rollover.loadImages = function() {
	var i;
	for(i in xFade.RolloverObjects)
	{
		r=xFade.RolloverObjects[i];
		r.src=r.img_src;
	}
}

xFade.ImageFadeRunning=false;
xFade.ImageFadeInterval=30;

/* FadeIn */
xFade.imgFadeIn = function(img, imgSrc) {
	if(img.state == null) {
		img.state = "OFF";
		img.index = 0;
		img.next_on = null;
	}
	if(img.state == "OFF") {
		if(img.src.indexOf(imgSrc) == -1) {
			img.src=imgSrc;
		}
		img.currSrc = imgSrc;
		img.state = "FADE_IN";
		if(!xFade.ImageFadeRunning) { xFade.ImageFadeAnimation(); }
	}
	else if( img.state == "FADE_IN_OUT"	|| img.state == "FADE_OUT_IN" || img.state == "FADE_OUT") {
		if(img.currSrc == imgSrc) { img.state = "FADE_IN";
		} else {
			img.next_on = imgSrc;
			img.state="FADE_OUT_IN";
		}
	}
}

/* FadeOut */
xFade.imgFadeOut = function(img) {
	if(img.state=="ON") {
		img.state="FADE_OUT";
		if(!xFade.ImageFadeRunning) { xFade.ImageFadeAnimation(); }
	} else if(img.state == "FADE_IN") {
		img.state="FADE_IN_OUT";
	} else if(img.state=="FADE_OUT_IN") {
		img.next_on == null;
		img.state = "FADE_OUT";
	}
}

/* Fade */
xFade.ImageFadeAnimation = function() {
	xFade.ImageFadeRunning = false;
	for(i=0 ; i<document.images.length ; i++) {
		var img = document.images[i];
		if(img.state) {
			if(img.state == "FADE_IN") {
				img.index+=FadeInSpeed;
				if(img.index > 100) { img.index = 100; }
				if(img.filters) { img.filters.alpha.opacity = img.index; }
				else { img.style.MozOpacity = img.index/101; }
				if(img.index == 100) { img.state="ON"; }
				else { xFade.ImageFadeRunning = true; }

			} else if(img.state == "FADE_IN_OUT") {
				img.index+=FadeInSpeed;
				if(img.index > 100) { img.index = 100; }
				if(img.filters) { img.filters.alpha.opacity = img.index; }
				else { img.style.MozOpacity = img.index/101; }
				if(img.index == 100) { img.state="FADE_OUT"; }
				xFade.ImageFadeRunning = true;

			} else if(img.state == "FADE_OUT") {
				img.index-=FadeOutSpeed;
				if(img.index < 0) { img.index = 0; }
				if(img.filters) { img.filters.alpha.opacity = img.index; }
				else { img.style.MozOpacity = img.index/101; }
				if(img.index == 0) { img.state="OFF"; }
				else { xFade.ImageFadeRunning = true; }

			} else if(img.state == "FADE_OUT_IN") {
				img.index-=FadeOutSpeed;
				if(img.index < 0) { img.index = 0; }
				if(img.filters) { img.filters.alpha.opacity = img.index; }
				else { img.style.MozOpacity = img.index/101; }
				if(img.index == 0) {
					img.src = img.next_on;
					img.currSrc = img.next_on;
					img.state="FADE_IN";
				}
				xFade.ImageFadeRunning = true;
			}
		}
	}
	if(xFade.ImageFadeRunning) { setTimeout("xFade.ImageFadeAnimation()", xFade.ImageFadeInterval); }
}

/* Browser Check */
xFade.hasOpacity = function(obj) {
	if(document.layers)
		return false;
	if(window.opera)
		return false;
	if(navigator.userAgent.toLowerCase().indexOf("mac") != -1)
		return false;

	return true;
}

/* Select FadeIn method depending on Browser */
xFade.fadeIn = function(imgName, rollName) {
	if(rollName == null) { rollName=imgName; }
	var img = document.images[imgName];
	if(xFade.hasOpacity(img)) {
		xFade.imgFadeIn(img, xFade.RolloverObjects[rollName].img_src); 
	} else {
		if(img.offSrc==null) { img.offSrc=img.src; }
		img.src=xFade.RolloverObjects[rollName].img_src;
	}
}

/* Select FadeOut method depending on Browser */
xFade.fadeOut = function(imgName) {
	var img = document.images[imgName];
	if(xFade.hasOpacity(img)) { xFade.imgFadeOut(img); }
	else { img.src=img.offSrc; }
}
