var jdvISlidesInstance;
idISlidesModules = new Array();

function jdvISlides(idModule, duration, imgURLs)
{
	this.mCount = 0;
	this.isLoaded = new Array();

	this.imgURLs = new Array();
	this.duration = new Array();
	
	this.count   = new Array();
	this.prev    = new Array();
	this.current = new Array();
	this.next    = new Array();
	this.target  = new Array();
	this.auto    = new Array();
	this.cur_el  = new Array();
	this.targ_el = new Array();
	
	this.fx     = new Array();

	this.initISlides(idModule, duration, imgURLs);
	
}


jdvISlides.prototype.initISlides=function(idModule, duration, imgURLs)
{
	idISlidesModules[this.mCount] = idModule;
	
	this.isLoaded[this.mCount] = 0;
	this.imgURLs[this.mCount] = imgURLs;
	this.duration[this.mCount] = duration;
	
	this.count[this.mCount]   = 0;
	this.prev[this.mCount]    = 0;
	this.current[this.mCount] = 0;
	this.next[this.mCount]    = 0;
	this.target[this.mCount]  = 0;
	this.auto[this.mCount] = 0;
	this.cur_el[this.mCount]   = null;
	this.targ_el[this.mCount]  = null;
	this.fx[this.mCount]  = null;
	
	this.loadImages(this.mCount);
	
	
	articleArray = $$('#jdv_islides'+idISlidesModules[this.mCount]+'_wrap .jdv_islides_content');
	
	
	this.count[this.mCount] = articleArray.length;
	
	
	for(i = 0; i < this.count[this.mCount]; i++)
	{
		articleArray[i].setOpacity(0);
	}


	index = idISlidesModules.indexOf(parseInt(idModule),0);

	fx = new Array();
	/**/
	for(i = 0; i < this.count[this.mCount]; i++)
	{
	
		fx[i] = new Fx.Styles($("jdv_islides"+idModule+"_content"+i), {duration:this.duration[this.mCount], wait:false});
		

		if ($("jdv_islides"+idISlidesModules[this.mCount]+"_link"+(i))) {
			$("jdv_islides"+idISlidesModules[this.mCount]+"_link"+(i)).addEvent("click", function(event) {
				
				event = new Event(event).stop();
			
				start = "jdv_islides".length; 
				end = this.id.indexOf("_", start);
				
				idModule = this.id.substring(start, end);
				
				l = ("jdv_islides"+idModule+"_link").length;
				
				index = idISlidesModules.indexOf(parseInt(idModule),0);
				if (jdvISlidesInstance.isLoaded[index]){	
					jdvISlidesInstance.cur_el[index] = $("jdv_islides"+idModule+"_content"+jdvISlidesInstance.current[index]);
					jdvISlidesInstance.targ_el[index] = $("jdv_islides"+idModule+"_content"+this.id.substring(l));
					
					jdvISlidesInstance.target[index] = this.id.substring(l);

					jdvISlidesInstance.transition(index);
					
					jdvISlidesInstance.current[index] = this.id.substring(l);
					jdvISlidesInstance.setPrevNext(index);
					
					jdvISlidesInstance.auto[index] = 0;
				}
			});
		}
		
	}
	
	
	if ($("jdv_islides_button_next"+idISlidesModules[this.mCount])) {
		$("jdv_islides_button_next"+idISlidesModules[this.mCount]).addEvent("click", function(event) {
			
			event = new Event(event).stop();

			start = "jdv_islides_button_next".length; 
			idModule = this.id.substring(start);
			
			index = idISlidesModules.indexOf(parseInt(idModule),0);
			if (jdvISlidesInstance.isLoaded[index]){	
				jdvISlidesInstance.setPrevNext (index);
				
				jdvISlidesInstance.target[index] = jdvISlidesInstance.next[index];
				
				jdvISlidesInstance.transition(index);
				
				jdvISlidesInstance.current[index] = jdvISlidesInstance.next[index];
				jdvISlidesInstance.setPrevNext(index);
				
				jdvISlidesInstance.auto[index] = 0;
			}
		});
	}
	
	if ($("jdv_islides_button_prev"+idISlidesModules[this.mCount])) {
		$("jdv_islides_button_prev"+idISlidesModules[this.mCount]).addEvent("click", function(event) {
			
			event = new Event(event).stop();
			
			start = "jdv_islides_button_prev".length; 
			idModule = this.id.substring(start);
			
			index = idISlidesModules.indexOf(parseInt(idModule),0);
				
			if (jdvISlidesInstance.isLoaded[index]){	
				jdvISlidesInstance.setPrevNext (index);
				
				jdvISlidesInstance.target[index] = jdvISlidesInstance.prev[index];
				
				jdvISlidesInstance.transition(index);
				
				jdvISlidesInstance.current[index] = jdvISlidesInstance.prev[index];
				jdvISlidesInstance.setPrevNext (index);
				
				jdvISlidesInstance.auto[index] = 0;
			}
		});
		

		
	}

	
	this.fx[this.mCount] = fx;
	
	this.showfirst(this.mCount);
	this.chkCompleteImgLoad(this.mCount);
	
	this.mCount++;
	
	
	
}


jdvISlides.prototype.setAuto=function(idModule, transDelay)
{
	index = idISlidesModules.indexOf(parseInt(idModule),0);
	/*  && jdvISlidesInstance.isLoaded[index] */
	if (jdvISlidesInstance.auto[index]) {
		//jdvISlidesInstance.setPrevNext(index);
		//alert(jdvISlidesInstance.isLoaded[index]);
		if (jdvISlidesInstance.isLoaded[index]){
			jdvISlidesInstance.target[index] = jdvISlidesInstance.next[index];
			jdvISlidesInstance.transition(index);
			jdvISlidesInstance.current[index] = jdvISlidesInstance.next[index];
			jdvISlidesInstance.setPrevNext(index);
		}
		setTimeout('jdvISlidesInstance.setAuto('+idModule+', '+transDelay+')', transDelay);
	}
}

jdvISlides.prototype.loadImages=function(index)
{
	imagesArray = $$('#jdv_islides'+idISlidesModules[index]+'_wrap .jdv_islides_content img');
	
	imgURLs = this.imgURLs[index];
	i = 0;
	imagesArray.each(function(el){

		if (i){
			el.src = imgURLs[i];
		}		

		i++;
	})
} 


jdvISlides.prototype.chkCompleteImgLoad=function(index)
{
	/* the function to repeatedly run */ 
					
	var fnToRepeat = function() { 
	//alert(idModule);
		var complete = true;
		$$('#jdv_islides'+idISlidesModules[index]+'_wrap .jdv_islides_content img').each(function(img){
			if (!img.complete) complete = false;
		});
		
		if (complete){
				
			
			$clear(periodicalID);
			
			jdvISlidesInstance.isLoaded[index] = 1;
			
			 
		}
	
	}; 
	
	/* set periodical into action!  once every second */ 
	
	var periodicalID = fnToRepeat.periodical(100);
}


jdvISlides.prototype.setPrevNext=function(index) {

	jdvISlidesInstance.current[index] = parseInt(jdvISlidesInstance.current[index]);
	jdvISlidesInstance.prev[index] = parseInt(jdvISlidesInstance.prev[index]);
	jdvISlidesInstance.next[index] = parseInt(jdvISlidesInstance.next[index]);
	
	if (jdvISlidesInstance.current[index] != 0) {
		jdvISlidesInstance.prev[index] = jdvISlidesInstance.current[index] - 1;
	} else {
		jdvISlidesInstance.prev[index] = jdvISlidesInstance.current[index];
	}

	if (jdvISlidesInstance.current[index] != (jdvISlidesInstance.count[index] - 1)) {
		jdvISlidesInstance.next[index] = jdvISlidesInstance.current[index] + 1;
	} else {
		//jdvISlidesInstance.next[index] = jdvISlidesInstance.current[index];
		jdvISlidesInstance.next[index] = 0;
	}	
}


jdvISlides.prototype.transition = function (index)
{

	$("jdv_islides"+idISlidesModules[index]+"_content"+jdvISlidesInstance.target[index]).style.left = '0px';
	
	jdvISlidesInstance.fx[index][jdvISlidesInstance.current[index]].start({
		'background-color': '#fff',
		'opacity': 0
	});
	
	jdvISlidesInstance.fx[index][jdvISlidesInstance.target[index]].start({
		'background-color': '#fff',
		'opacity': 1
	});

}


jdvISlides.prototype.showfirst = function (index)
{

	$("jdv_islides"+idISlidesModules[index]+"_content0").style.left = '0px';
	
	this.fx[index][0].start({
		'background-color': '#fff',
		'opacity': 1
	});
	
}
