/**********************************************
/**********************************************/


DB_slideshow = {
	DB_slideshows: new Array(),
	
	startElement: function (id,base,fade,files,delay,type) {
		type = (type==undefined)? 'norepeat':type;
		delay = (delay==undefined)? 0:delay;
		$(id).innerHTML = '<div id="'+id+'_div1" style="position:absolute;z-index:2;"><img id="'+id+'_img1"/></div><div id="'+id+'_div2" style="position:absolute; z-index:3; "><img id="'+id+'_img2"/></div>';
		this.DB_slideshows[id]={files:files,
								baseInterval:base,
								fadeFX1:new Fx.Style($(id+'_div1'), 'opacity', {duration:fade*1000,wait:false,transition: Fx.Transitions.Sine.easeInOut}).set(0),
								fadeFX2:new Fx.Style($(id+'_div2'), 'opacity', {duration:fade*1000,wait:false,transition: Fx.Transitions.Sine.easeInOut}).set(0),
								index:0,
								type:type,
								stage:0};
		setTimeout('DB_slideshow.nextSlide(\''+id+'\')',Number(delay)*1000);
		},
	
	nextSlide: function (id) {
		thisShow = this.DB_slideshows[id];
		switch (thisShow.type) {
			case 'random':
				thisShow.index = Math.floor(Math.random()*thisShow.files.length);
				break;
			case 'norepeat':
				newIndex = Math.floor(Math.random()*(thisShow.files.length-1));
				thisShow.index = (newIndex<thisShow.index)? newIndex:newIndex+1; 
				break;
			case 'list':
				if (thisShow.index>=thisShow.files.length) thisShow.index=0;
				thisShow.index++;
				break;
			default:
				thisShow.index = thisShow.type(thisShow.index);
			}
		switch (thisShow.stage) {
			case 0:
				$(id+'_img1').src = thisShow.files[thisShow.index];
				thisShow.fadeFX1.start(1);
				thisShow.stage = 1;
				break;
			case 1:
				$(id+'_img2').src = thisShow.files[thisShow.index];
				thisShow.fadeFX2.start(1);
				thisShow.stage = 2;
				break;
			case 2:
				$(id+'_img1').src = thisShow.files[thisShow.index];
				thisShow.fadeFX2.start(0);
				thisShow.stage = 1;
				break;
			}
	
		if (thisShow.stage!=4) 
			setTimeout('DB_slideshow.nextSlide(\''+id+'\')',Number(thisShow.baseInterval)*1000);
		},
	
	stopElement: function (id) {
		thisShow = this.DB_slideshows[id];
		switch (thisShow.stage) {
			case 0:
			case 1:
				thisShow.fadeFX1.start(0);
				//new Effect.Fade(document.getElementById(id+'_div1'), {duration: thisShow.fadeInterval});
				break;
			case 2:
				thisShow.fadeFX1.set(0);
				thisShow.fadeFX2.start(0);
				///new Effect.Fade(document.getElementById(id+'_div2'), {duration: thisShow.fadeInterval});
				break;
			}
		thisShow.stage = 4;
		},
	fullStop: function () {
		for (id in this.DB_slideshows) this.stopElement(id);
		}
	}