/* ==========================================
 *	Javascript Image Rotator
 *
 *	2009 Mark Treble Interactive Media
 *
 * ==========================================
 */

function CImageRotator(name, imgArr, altArr){
	var d = document;
	this.currentImage=0;
	this.w=0;
	this.name = name;
	this.id = name;
	this.images = imgArr;
	this.alttags = altArr;
	eval(this.name+"=this");
	this.img = this.name;
	this.setUp();


	this.pauseTime = 5000; 		// Pause time in (ms)
	this.transitionTime = 1500;	// Duration for fade transition (ms)
}

CImageRotator.prototype.setUp=function(){

	var d=document;
	
	this.HCurrent=d.getElementById(this.img);
	if (!this.HCurrent){
		window.setTimeout(this.name+".setUp()", 100);
	} else {
		if (this.w!=this.HCurrent.width){
			this.w=this.HCurrent.width;
			window.setTimeout(this.name+".setUp()", 100);
			return;
		}
		this.HCurrent.style.position='absolute';
		this.HCurrent.style.top='0';
		this.images[0]=this.HCurrent;
		for (i=1;i<this.images.length;i++){
			im = d.createElement('img');
			im.setAttribute('src',this.images[i]);
			im.setAttribute('style','position:absolute;top:0;display:none;z-Index:-'+i.toString());
			im.setAttribute('width',this.HCurrent.width+'px');
			im.setAttribute('height',this.HCurrent.height+'px');
			im.setAttribute('alt',this.alttags[i]);
			im.setAttribute('title',this.alttags[i]);
			this.images[i-1].parentNode.insertBefore(im,this.images[i-1]);
			this.images[i]=im;

			im.style.display='none';
			im.style.position='absolute';
			im.style.top='0';
			im.style.zIndex='-'+i.toString();
			im.style.width=this.HCurrent.width+'px';
			im.style.height=this.HCurrent.height+'px';

			delete im;
		}
		this.timer=window.setTimeout(this.name + ".animateNext()", this.pauseTime);
	}
}
CImageRotator.prototype.animateNext = function(){
	clearTimeout(this.timer);
	clearInterval(this.timer);
	this.HOld = this.HCurrent;
	this.currentImage=(this.currentImage > this.images.length-2)? 0 : this.currentImage+1
	this.HOld.style.zIndex='0';
	this.HCurrent=this.images[this.currentImage];
	this.HCurrent.style.zIndex='1';
	this.HCurrent.style.filter='alpha(opacity=0)';
	this.HCurrent.style.opacity='0';
	this.HCurrent.style.display='block';
	this.alpha = 0;
	this.animating = true;
	this.timer=window.setInterval(this.name + ".fadeIn()", 1000/30);
}
CImageRotator.prototype.fadeIn = function(){
	this.alpha += (1/30) *(1000/this.transitionTime);
	this.HCurrent.style.filter='alpha(opacity='+(this.alpha*100)+')';
	this.HCurrent.style.opacity=this.alpha;
	if (this.alpha>=1){
		clearInterval(this.timer);
		this.HOld.style.display='none';
		this.HOld.style.zIndex='-1';
		this.timer=window.setTimeout(this.name + ".animateNext()", this.pauseTime);
		this.animating = false;
	}
}
	
