// 
// File name: fadeInPhotoGallery.js
// Original script: http://www.dynamicdrive.com/dynamicindex14/fadeinslideshow.htm
// Date of creation: 5/22/2007
// Modification: add the alt option fadeimages array
//

/***********************************************
* Ultimate Fade-In Slideshow (v1.5): © Dynamic Drive (http://www.dynamicdrive.com)
* This notice MUST stay intact for legal use
* Visit http://www.dynamicdrive.com/ for this script and 100s more.
***********************************************/
  
var fadebgcolor = "white";
 
////NO need to edit beyond here/////////////
 
var fadearray = new Array(); //array to cache fadeshow instances
var fadeclear = new Array(); //array to cache corresponding clearinterval pointers
 
var dom = (document.getElementById); //modern dom browsers
var iebrowser = document.all;
 
function fadeshow(theimages, fadewidth, fadeheight, borderwidth, delay, pause, displayorder)
{
	
	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);
	this.postimages = new Array(); //preload images
	for (p=0; p < theimages.length; p++)
	{
		this.postimages[p] = new Image();
		this.postimages[p].src = theimages[p][0];
	}
 
	var fadewidth = fadewidth + this.imageborder * 2;
	var fadeheight = fadeheight + this.imageborder * 2;
 
	if (iebrowser&&dom||dom) //if IE5+ or modern browsers (ie: Firefox)
		document.write('<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);-moz-opacity:10;-khtml-opacity:10;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);-moz-opacity:10;background-color:' + 
						fadebgcolor + 
						'"></div></div>');
	else
		document.write('<div><img name = "defaultslide' +
					this.slideshowid +
					'" src = "' + 
					this.postimages[0].src +
					'"></div>');
 
	if (iebrowser&&dom||dom) //if IE5+ or modern browsers such as Firefox
		this.startit();
	else
	{
		this.curimageindex ++;
		setInterval("fadearray[" + this.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") //if IE6+
				obj.tempobj.filters[0].opacity = obj.degree;
			else //else if IE5.5-
				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
	{
		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 < obj.postimages.length - 1)? obj.nextimageindex + 1 : 0;
		setTimeout("fadearray[" + obj.slideshowid + "].rotateimage()", obj.delay);
	}
}
 
fadeshow.prototype.populateslide=function(picobj, picindex)
								{
									var slideHTML='';
									
									if (this.theimages[picindex][1] != "") //if associated link exists for image
										slideHTML = '<a href="' +
											this.theimages[picindex][1] +
											'" target="' +
											this.theimages[picindex][2] +
											'">';
									
									slideHTML+='<img src="' + this.postimages[picindex].src +
											'" border="' +
											this.imageborder +
											'px"';
									slideHTML+='alt="'+this.theimages[picindex][3] + '">';
									if (this.theimages[picindex][1] != "") //if associated link exists for image
										slideHTML += '</a>';
										
									// Adding the photo description and text background color
									//slideHTML += '<DIV"><BR>' + this.theimages[picindex][3] + '</div>';	
									
									// Text background color - Very light blue - #D1FFFF
									
									slideHTML += '<DIV style="background-color:#D1FFFF"><BR>' + this.theimages[picindex][3] + '</div>';
									slideHTML += '<br><DIV align="left"><strong>Note</strong>: Please move the cursor on top of the picture to pause the slide show.</div>';
									
									
									picobj.innerHTML = slideHTML;
								}

fadeshow.prototype.rotateimage=function()
								{
									if (this.pausecheck == 1) //if pause onMouseover enabled, cache object
										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 ++;
										fadeclear[this.slideshowid] = setInterval("fadepic(fadearray[" +
														this.slideshowid+"])", 50);
										this.curcanvas = (this.curcanvas == this.canvasbase + "_0") ? this.canvasbase + "_1" : this.canvasbase +"_0";
									}
									else{
										var ns4imgobj = document.images['defaultslide' + this.slideshowid];
										ns4imgobj.src = this.postimages[this.curimageindex].src;
									}
									this.curimageindex = (this.curimageindex < this.postimages.length - 1) ? 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") //if IE6+
										crossobj.filters(0).opacity = this.degree;
									else //else if IE5.5-
										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 = obj.degree/100;
							}
 
 
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();
							}