var fadebgcolor	= "black";
var fadearray	= new Array(); //array to cache fadeshow instances
var fadeclear	= new Array(); //array to cache corresponding clearinterval pointers
var fadeTimer = 0;
var dom			= (document.getElementById);
var iebrowser	= document.all;
var postimages 	= new Array();
var linkimages 	= new Array();
var divIndex	= new Array();

function loadImage(imgSrc) {
	var imgObj = new Image();
	imgObj.onload=function() {
		return this.src;
	}
	imgObj.src	= imgSrc;
}

function fadeshow(theimages, fadewidth, fadeheight, borderwidth, delay, pause, displayorder) {
	if (theimages) {
		this.pausecheck = pause;
		this.mouseovercheck = 0;
		this.delay = delay;
		this.degree = 10; //initial opacity degree (10%)
		this.curimageindex = 0;
		this.nextimageindex = 1;
		fadearray[fadearray.length] = this;
		this.slideshowid = fadearray.length-1;
		this.canvasbase = "canvas"+this.slideshowid;
		this.curcanvas = this.canvasbase+"_0";
		if (typeof displayorder != "undefined") {
			theimages.sort(function() {return 0.5 - Math.random();}); //thanks to Mike (aka Mwinter) :)
		}
		this.theimages = theimages;
		this.imageborder = parseInt(borderwidth);
		var p = 0;
		while (p < theimages.length) {
			mainImg = theimages[p][0];
			thumbImg = theimages[p][1];
			if ((mainImg) && (thumbImg)) {
				postimages[p] = mainImg;
				linkimages[p] = thumbImg;
				if (this.theimages[p][2]!="") {
					slideHTML = "<a href=\"" + this.theimages[p][2] + "\" target=\"" + this.theimages[p][3] + "\">";
				}
					slideHTML += "<img src=\"" + mainImg + "\">";
				if (this.theimages[p][2]!="") {
					slideHTML += "</a>";
				}
					divIndex[p] = slideHTML;
				p++;
			}
		}
		var fadewidth = fadewidth+this.imageborder*2;
		var fadeheight = fadeheight+this.imageborder*2;
		document.getElementById("tempHolder").style.display = "none";
		 
		if (((iebrowser) && (dom)) || (dom)) {
			MCarrousel = document.getElementById("Carrousel");
			Holder = document.createElement("div");
			Nav = document.createElement("div");
			Nav.id = "CarrouselNav";
			Nav.style.zIndex = "100";
			Holder.cssName = "Carrousel";
			MCarrousel.appendChild(Holder);
			MCarrousel.appendChild(Nav);
			NavText = "";
			NavText += "<ul>\n";
			
			for (var i=0; i<theimages.length; i++) {
				NavText += "<li><img onclick=\"javascript:pushIn(fadearray["+this.slideshowid+"],'" + i + "')\" src=\""+linkimages[i]+"\"></li>\n";
				
			}
			NavText += "</ul>\n";
			
			Holder.innerHTML = '<div id="master'+this.slideshowid+'" style="position:relative;width:'+fadewidth+'px;height:'+fadeheight+'px;overflow:hidden;"><div id="'+this.canvasbase+'_0" style="position:absolute;width:'+fadewidth+'px;height:'+fadeheight+'px;top:0;left:0;filter:progid:DXImageTransform.Microsoft.alpha(opacity=10);opacity:0.1;-moz-opacity:0.1;-khtml-opacity:0.1;background-color:'+fadebgcolor+'"></div><div id="'+this.canvasbase+'_1" style="position:absolute;width:'+fadewidth+'px;height:'+fadeheight+'px;top:0;left:0;filter:progid:DXImageTransform.Microsoft.alpha(opacity=10);opacity:0.1;-moz-opacity:0.1;-khtml-opacity:0.1;background-color:'+fadebgcolor+'"></div></div>';
			Nav.innerHTML = NavText;
		}
		else {
			document.getElementById("Carrousel").innerHTML = '<div><img name="defaultslide'+this.slideshowid+'" src="'+postimages[0]+'"></div>';
		}
		
		if (((iebrowser) && (dom)) || (dom)) {
			this.startit();
		}
		
		else {
			this.curimageindex++;
			setInterval("fadearray["+this.slideshowid+"].rotateimage()", this.delay);
		}
	}
}

function pushIn(obj,imgNumber) {
	//clearInterval(fadeclear[obj.slideshowid]);
	clearInterval(fadeTimer);
	obj.nextimageindex = imgNumber;
	obj.nextcanvas=(obj.curcanvas==obj.canvasbase+"_0") ? obj.canvasbase+"_0" : obj.canvasbase+"_1";
	obj.tempobj=iebrowser? iebrowser[obj.nextcanvas] : document.getElementById(obj.nextcanvas);
	obj.populateslide(obj.tempobj, obj.nextimageindex);
	obj.nextimageindex=(obj.nextimageindex<postimages.length-1)? parseInt(obj.nextimageindex)+1 : 0;
	fadeTimer = setTimeout("fadearray["+obj.slideshowid+"].rotateimage()", this.delay);
	//setTimeout("fadearray["+obj.slideshowid+"].rotateimage()", this.delay);
}

function fadepic(obj) {
	if (obj.degree<100) {
		obj.degree += 10;
		if ((obj.tempobj.filters) && (obj.tempobj.filters[0])) {
			if (typeof obj.tempobj.filters[0].opacity == "number") {
				obj.tempobj.filters[0].opacity = obj.degree;
			}
			else {
				obj.tempobj.style.filter = "alpha(opacity=" + obj.degree + ")";
			}
		}
		else if (obj.tempobj.style.MozOpacity) {
			obj.tempobj.style.MozOpacity = obj.degree / 101;
		}
		else if (obj.tempobj.style.KhtmlOpacity) {
			obj.tempobj.style.KhtmlOpacity = obj.degree / 100;
		}
		else if (obj.tempobj.style.opacity&&!obj.tempobj.filters) {
			obj.tempobj.style.opacity = obj.degree / 101;
		}
	}
	else {
		clearInterval(fadeTimer);
		//clearInterval(fadeclear[obj.slideshowid]);
		obj.nextcanvas=(obj.curcanvas==obj.canvasbase+"_0")? obj.canvasbase+"_0" : obj.canvasbase+"_1";
		obj.tempobj=iebrowser? iebrowser[obj.nextcanvas] : document.getElementById(obj.nextcanvas);
		obj.populateslide(obj.tempobj, obj.nextimageindex);
		obj.nextimageindex=(obj.nextimageindex<postimages.length-1)? parseInt(obj.nextimageindex)+1 : 0;
		fadeTimer = setTimeout("fadearray["+obj.slideshowid+"].rotateimage()", obj.delay);
	}
}
 
fadeshow.prototype.populateslide = function(picobj, picindex) {
	picobj.innerHTML = divIndex[picindex];
}
 
 
fadeshow.prototype.rotateimage = function() {
	if (this.pausecheck==1) {
		var cacheobj=this;
	}
	
	if (this.mouseovercheck==1) {
	setTimeout(function() {cacheobj.rotateimage()}, 100)
	}
	
	else if (((iebrowser) && (dom)) || (dom)) {
		this.resetit()
		var crossobj=this.tempobj=iebrowser? iebrowser[this.curcanvas] : document.getElementById(this.curcanvas)
		crossobj.style.zIndex++
		fadeTimer = setInterval("fadepic(fadearray["+this.slideshowid+"])",50)
		this.curcanvas=(this.curcanvas==this.canvasbase+"_0")? this.canvasbase+"_1" : this.canvasbase+"_0"
	}
	this.curimageindex=(this.curimageindex<postimages.length-1)? parseInt(this.curimageindex)+1 : 0
}
 
fadeshow.prototype.resetit = function() {
	this.degree=10
	var crossobj=iebrowser? iebrowser[this.curcanvas] : document.getElementById(this.curcanvas)
	if (crossobj.filters&&crossobj.filters[0]) {
		if (typeof crossobj.filters[0].opacity=="number") {
			crossobj.filters(0).opacity=this.degree;
		}
		else {
			crossobj.style.filter="alpha(opacity="+this.degree+")";
		}
	}
	else if (crossobj.style.MozOpacity) {
		crossobj.style.MozOpacity=this.degree/101;
	}
	else if (crossobj.style.KhtmlOpacity) {
		crossobj.style.KhtmlOpacity=this.degree/100;
	}
	
	else if (crossobj.style.opacity&&!crossobj.filters) {
		crossobj.style.opacity=this.degree/101;
	}
}
 
 
fadeshow.prototype.startit = function() {
	var crossobj=iebrowser? iebrowser[this.curcanvas] : document.getElementById(this.curcanvas)
	this.populateslide(crossobj, this.curimageindex)
	if (this.pausecheck==1) { //IF SLIDESHOW SHOULD PAUSE ONMOUSEOVER
		var cacheobj=this
		var crossobjcontainer=iebrowser? iebrowser["master"+this.slideshowid] : document.getElementById("master"+this.slideshowid)
		crossobjcontainer.onmouseover = function() {cacheobj.mouseovercheck=1}
		crossobjcontainer.onmouseout = function() {cacheobj.mouseovercheck=0}
	}
	this.rotateimage();
}

