(function($)
{	
	var $this = null;
	var uId;
	var params = null;
	var arrayImg = null;
	var currentImg = 0;
	var timerAnim = null;
	
	var defaultParams = 
	{
		namePage:'index',
		conteneurHide:'conteneurImgBkgHide',
		delayFadeInOut:1000,
		duration:10000
	}
	
	//methode public
	var PublicMethodes =
	{
		init:function(paramUser)
		{
			$this = $j(this);
			uId = $this.attr('id');
			
			return this.each(function()
			{
				params = $.extend(defaultParams , paramUser);
				
				clearInterval(timerAnim);
				timerAnim = null;
				
				Positionning.bkg();
				
				Loader.img('../images/animation/loaderImgAnim.php' , {dir:params.namePage} , params.conteneurHide);
			});
		}
	};
	
	//methode privée
	var PrivateMethodes = 
	{
		getImgFromPage:function()
		{
			arrayImg = [];
			currentImg = 0;
			$j('#' + params.conteneurHide + ' img').each(function()
			{
				arrayImg.push({urlImg:$j(this).attr('src')});
			});
			PrivateMethodes.displayFirstImg();
		},
		displayFirstImg:function()
		{
			$this.fadeOut(params.delayFadeInOut , function()
			{
				$this.css({background:'url(\''+arrayImg[0].urlImg+'\') center top no-repeat'});
				$this.fadeIn(params.delayFadeInOut);
				PrivateMethodes.startAnim();
			});
		},
		startAnim:function()
		{
			timerAnim = setInterval(function()
			{
				currentImg ++;
				if(currentImg == arrayImg.length)
				{
					currentImg = 0;
				}//fin if
				
				$this.fadeOut(params.delayFadeInOut , function()
				{
					$this.css({background:'url(\''+arrayImg[currentImg].urlImg+'\') center top no-repeat'});
					$this.fadeIn(params.delayFadeInOut);
				});
			} , params.duration)
			
		}
	}
	
	var Positionning = 
	{
		bkg:function()
		{
			$this.css({position:'absolute' , top:0 , width:'100%' , height:$j('body').height() , background:'url(\'../images/ajax-loaderAnim.gif\') center top no-repeat' , zIndex:0});
		}
	}
	
	
	var Loader = 
	{
		img:function(urlPhp , objData , divDisplay)
		{
			var dataVar;
			
			//traitement des parametres
			if(objData == null)
			{
				dataVar = "action";
			}//fin if
			else
			{
				dataVar = eval(objData);
			}//fin else
			
			$.ajax({ 
				url:urlPhp,
				cache:false,
				type:"POST" ,	  
				data: dataVar ,
				dataType: "html",
				
				beforeSend : function(XMLHttpRequest)
				{
					if(divDisplay != null)
					{
						$this.css({background:'url(\'../images/ajax-loaderAnim.gif\') center top no-repeat'});
					}//fin if
				},
				success: function(data)
				{
					if(divDisplay != null)
					{
						$j('#' + divDisplay).html(data);
						PrivateMethodes.getImgFromPage();
					}//fin if
				},
				error: function(XmlHttpRequest , textStatus , errorThrown)
				{
					if(divDisplay != null)
					{
						$this.html(textStatus)
					}//fin if
				}
			});
		}
	}
	
	$.fn.animZoneZenSpa = function(methode)
	{
		// Method calling logic
		if(PublicMethodes[methode]) 
		{
			return PublicMethodes[methode].apply(this, Array.prototype.slice.call(arguments , 1 ));
		}//fin if
		else if (typeof methode === 'object' || ! methode ) 
		{
			return PublicMethodes.init.apply(this , arguments);
		}//fin else if
		else 
		{
			$.error( 'Method ' +  methode + ' does not exist on jQuery.laa.{namePage:page.substr(0 , page.length-4)}' );
		}//fin else
	};
})(jQuery);

