// $Id: $

var RandomPics_Instances = new Array();

function RandomPics() {
	var clock = null;
	var id = null;
	var max_pic_idx = null;
	var old_idx = -1;
	var start_delay = -1;
	var max_delay = -1;
	var img_id = null;
	var img_link_id = null;
	var fx = null;
	var imgsrc_prefix = null;
	var imgsrc_suffix = null;
	var link_prefix = null;
	var link_suffix = null;
	var link_title = null;
	var preload_imgs = null;
	
	
	this.randomizer = function(max_pic_idx,start_delay,max_delay,img_id,imgsrc_prefix,imgsrc_suffix,img_link_id,link_prefix,link_suffix,link_title) {
		if (this.id == null) {
			if (!RandomPics_Instances) {
				RandomPics_Instances = new Array();
			}
		
			this.id = RandomPics_Instances.length;
			RandomPics_Instances[this.id] = this;
		}
	
		this.max_pic_idx = max_pic_idx;
		this.start_delay = start_delay;
		this.max_delay = max_delay;
		
		this.img_id = img_id;
		this.imgsrc_prefix = imgsrc_prefix;
		this.imgsrc_suffix = imgsrc_suffix;
		
		this.img_link_id = img_link_id;
		this.link_prefix = link_prefix;
		this.link_suffix = link_suffix;
		this.link_title = link_title;
		
		this.preload_imgs = new Array();
		
		for (i=0; i<=max_pic_idx; i++) {
			this.preload_imgs[i] = new Image();
			
			this.preload_imgs[i].onerror = function() { console.log("image file '" +this.imgsrc_prefix + i + this.imgsrc_suffix + "' could not be loaded!"); };	
			this.preload_imgs[i].src = this.imgsrc_prefix + i + this.imgsrc_suffix;
		}
		
		this.fx = new MyEffects(this.img_id);
		
		this.old_idx = -1;
		
		this.setClock();
	}
	
	this.setClock = function() {
		if (this.max_pic_idx>0) {						   	
		   	window.setTimeout('RandomPics_Instances['+this.id+'].doClock()', Math.round(Math.random()*this.max_delay) + this.start_delay);
		}
	}

	this.doClock = function() {
		var new_idx=this.old_idx;
		var new_src_name;
		
		
		do {
			do {
				new_idx=Math.floor(Math.random() * this.max_pic_idx);
			} while (new_idx==this.old_idx);
			
			new_src_name=this.imgsrc_prefix + new_idx + this.imgsrc_suffix;
		} while (this.fx.start_effect('x-fade','',new_src_name,2000) == false);
		
		this.old_idx=new_idx;
		
		if (this.img_link_id != "") {
			document.getElementById(this.img_link_id).href="Javascript:popImage('"+this.link_prefix + new_idx + this.link_suffix+"','"+this.link_title+"','"+this.img_id+"')";
		}

		this.setClock();
	}	
}
