/*
Créé par : Maxime Lebel
Site web : http://www.imagedemark.com
Courriel : maxime.lebel@imagedemark.com
Version  : 1.0.0
*/


jQuery.fn.eachDelay = function(callback, speed){
	return jQuery.eachDelay( this, callback, speed)
}
jQuery.extend({
	eachDelay: function(object,callback, speed){ 
		var name, i = -1, length = object.length, $div = $('<div>'), id;
		if (length === undefined) { //not an array process as object
			var arr = [], x = -1;
			for (name in object) arr[++x] = name; 
			id = window.setInterval(function(){
			 if( ++i === arr.length || callback.call(object[ arr[i] ], arr[i], object[ arr[i] ]) === false) 
			 	 clearInterval(id);
			}, speed);	
		}
		else { //array-compatible element ie. [], jQuery Object
			id = window.setInterval(function(){ 
				if (++i === object.length || callback.call(object[i], i, object[i]) === false) 
					clearInterval(id);
			}, speed);
		}
		return object;
	}
});


jQuery.fn.newslide = function() {
	jQuery('#holder').stop( true );
	var o = jQuery(this[0]) // It's your element
    var args = arguments[0] || {}; // It's your object of arguments
    var dataSource = args.dataSource;
    var delay = args.delay;
	var speed = args.speed;
	var isNew = args.isNew;
	var start = args.start;
	
	
	var len = dataSource.length;
	
	jQuery('#newslideButton').html('');
	var dataSourceString = '';
	for(i = 1; i <= len; i++){
		dataSourceString += "'"+dataSource[i-1]+"',";
	}
	dataSourceString = dataSourceString.slice(0, -1);
	

	
	for(i = 1; i <= len; i++){
		jQuery('#newslideButton').append('<a href="javascript:jQuery(\'#flash\').newslide({dataSource:['+dataSourceString+'],delay:'+delay+',speed:'+speed+',isNew:['+isNew+'],start:'+(i-1)+'});" id="newsslideIsNew'+i+'" class="newslideButton"><img style="border:none;" src="/slideimg/ch/ch_'+i+'.png"></a>');
	}
	
	slideStart(start);
	
	/////////////////////////////////////////////////////////////////////////////
		/////////////////////////////////////////////////////////////////////////////
	
	function slideStart(startPosition){
		var time = time = delay + (speed*4);
		addDebug('iref','start');
		jQuery('#holder').animate({opacity: 1},{duration:speed, complete: function(){
			var len = dataSource.length;
			for(i = 1; i <= len; i++){
				jQuery('#newsslideIsNew'+i).removeClass("newslideButton_active");
				jQuery('#newsslideIsNew'+i).addClass("newslideButton");
			}
			var num = startPosition+1;
			jQuery('#newsslideIsNew'+num).removeClass("newslideButton");
			jQuery('#newsslideIsNew'+num).addClass("newslideButton_active");
			
			
			jQuery(o).load('/slideimg/loadImg.php?img='+dataSource[startPosition], function() {
				
				changeDiv(num,len);
				
				var inew;
				if(isNew[startPosition]){
					jQuery('#newsslideIsNew').show();
					inew = 'Oui';
				}else{
					jQuery('#newsslideIsNew').hide();
					inew = 'Non';
				}
				
				
				jQuery('#holder').animate({opacity: 0},{queue: true, duration: speed, complete: function(){
					jQuery('#slideDiv'+num).animate({opacity: 1},{duration:speed});
					jQuery('#slideDiv'+num).css("z-index",3);
					
					addDebug('iref','rest')
					//Je le garde actif
					jQuery(this).animate({left: '0px'},{queue: true, duration: delay, complete: function(){
						addDebug('iref','hidden');
						//Je le fait disparaitre
						jQuery('#slideDiv'+num).animate({opacity: 0},{queue: true, duration:speed, complete: function(){
						jQuery('#holder').animate({opacity: 1},{queue: true, duration: speed, complete: function(){
							
							
							if(startPosition == dataSource.length-1){
								slideStart(0);
							}else{
								slideStart(startPosition+1);
							}
							
							
						}});
						}});
						
					}});
					
					
				}});
				
			});
		
		}});
	}	
	
	
	// Fonction pour ajouter les div description
	function changeDiv(id, len){
		for(i = 1; i <= len; i++){
			jQuery('#slideDiv'+i).show();
			jQuery('#slideDiv'+i).animate({opacity: 0},{duration:0});
			jQuery('#slideDiv'+i).css("z-index",1);
		}
	}
	
	// Fonction d'ajustement si il est en position centre
	function adjust(pos){
		var wh = jQuery(window).height();
		var ww = jQuery(window).width();
		var ih = jQuery('div#flash > img').height();
		var iw = jQuery('div#flash > img').width();
		var center = (wh/2);
		var bottom = ih/2 - center - 55 + pos;
		//alert(bottom);
		jQuery('div#flash > img').css("bottom",'-'+bottom+'px');
	}
	

};




function addDebug(id, str){
	jQuery('div#debug > span#'+id).html(str);
}
