Rotator.restartDelay = 500; // delay onmouseout before call to rotate
Rotator.col=[];

function Rotator(name,speed,path,tgt) {
	this.name = name;
	this.speed = speed||4500;
	this.path = path||"";
	this.tgt = tgt;
	this.ctr = 0;
	this.timer = 0;
	this.imgs = [];
	this.actions = [];
	this.index = Rotator.col.length;
	Rotator.col[this.index] = this;
	this.animString = "Rotator.col["+this.index+"]";
};

Rotator.prototype.addImages=function() {
	var img;
	for(var i=0; arguments[i]; i++) {
		img= new Image();
		img.src= this.path+arguments[i];
		this.imgs[this.imgs.length] = img;
	}
};

Rotator.prototype.addActions=function() { 
	var len=arguments.length;
	for(var i=0; i<len; i++)
		this.actions[this.actions.length] = arguments[i];
};

Rotator.prototype.rotate=function() {
	clearTimeout(this.timer);
	this.timer=null;
	if(this.ctr < this.imgs.length-1) this.ctr++;
	else this.ctr=0;
	var imgObj = document.images[this.name];
	if(imgObj) {
		imgObj.src = this.imgs[this.ctr].src;
		this.timer = setTimeout(this.animString+".rotate()",this.speed);
	}
};

Rotator.start=function() {
	var len = Rotator.col.length,obj;
	for(var i=0; i<len; i++){
		obj = Rotator.col[i];
		if(obj && obj.name)
			obj.timer = setTimeout(obj.animString+".rotate()",obj.speed);
	}
};

Rotator.doClick=function(n){
	var obj = Rotator.col[n];
	if(!document.images||!obj) return true;
	if(obj.actions && obj.actions[obj.ctr]) {
		if(typeof obj.actions[obj.ctr]=="string") {
			if(obj.tgt) {
				var win = window.open(obj.actions[obj.ctr],obj.tgt);
				if(win && !win.closed) win.focus();
			} else { 
				window.location = obj.actions[obj.ctr];
			}
		} else {
			obj.actions[obj.ctr]();
		}
	}
	return false;
};

Rotator.pause=function(n){
	Rotator.clearTimers(n);
};

Rotator.clearTimers=function(n){
	var obj=Rotator.col[n];
	if(obj){
		clearTimeout(obj.timer);
		obj.timer=null;
	}
};

Rotator.resume=function(n){
	Rotator.clearTimers(n);
	var obj=Rotator.col[n];
	if(obj){
		obj.timer = setTimeout(obj.animString+".rotate()",Rotator.restartDelay);
	}
};

