(function($)
{	
	var $this = null;
	var uId;
	var arrayImg = [];
	var timer;
	var timerLoop = null;
	var currentImg = null;
	var params = null;
	var countCursorSlider = 6;
	
	var defaultParams = 
	{
		div:'stockImgAnim',
		widthPhotos:980,
		heighPhotos:390,
		widthVignettes:110,
		heightVignettes:40
	}
	
	//methode public
	var PublicMethodes =
	{
		init:function(paramUser)
		{
			$this = $(this);
			uId = $this.attr('id');
			
			return this.each(function()
			{
				
				params = $.extend(defaultParams , paramUser);
				
				PrivateMethodes.createTemplate();
				
				OverOutClick.clickBtnNavLeft();
				OverOutClick.clickBtnNavRight();
				
			});
		},
		refresh:function(paramUser)
		{
			return this.each(function()
			{ 
			
				params = $.extend(defaultParams , paramUser);
				
				PrivateMethodes.getImgFromPage(params.div);
				PrivateMethodes.createVignettes();
				
				PrivateMethodes.sliderHandler();

				PrivateMethodes.sliderHandler();
				OverOutClick.overOutBtnNav();
				PrivateMethodes.loooop();
				
			/*	if(getFileName() != 'galerie-photos.php')
				{
					PrivateMethodes.loooop();
				}//fin if*/
			});
		}
	};
	
	//methode privée
	var PrivateMethodes = 
	{
		createTemplate:function()
		{
			
			var template = '';
			
			template += '<div class="conteneurPhotos" id="idConteneurPhotos'+uId+'"> </div>';
			template += '<div class="maskVignettes" id="idMaskVignettes'+uId+'">';
				template += '<div class="conteneurVignettes" id="idConteneurVignettes'+uId+'"> </div>';
			template += '</div>';
			template += '<div style="clear:left;"> </div>';
		/*	template += '<div class="conteneurBtnNavGalerie" id="idConteneurBtnNavGalerie'+uId+'"> </div>';*/
			template += '<div class="fondVignetteCheat"></div>';
			
			
			$this.html(template);
			
	/*		if(isIe7)
			{
				$('.fondVignetteCheat').css({marginLeft:'-560px'});
			}//fin if*/
			
		},
		getImgFromPage:function(div)
		{
			arrayImg = null;
			arrayImg = [];
			$('.' + div + ' img').each(function(index)
			{
				arrayImg.push({url:$(this).attr('src')});
			});
		},
		createVignettes:function()
		{
			
			var listVignettes = '';
			listVignettes += '<ul id="idVignettesUl'+uId+'" >';
			
			for(var i = 0 ; i < arrayImg.length ; i++)
			{
				listVignettes += '<li id="idVignettes'+ uId + i +'"><img src="' + arrayImg[i].url + '" width="' + params.widthVignettes  + '" height="' + params.heightVignettes  + '" /></li>';
			}//fin for
			listVignettes += '</ul>';
			
			$('#idConteneurVignettes'+uId).html(listVignettes);
			$('#idConteneurVignettes'+uId).css({left:'0'});			
			
			OverOutClick.defineOverOutClickVignettes();
			
			var divPhotos = '';
			divPhotos = '<div class="photoGalerie" id="idPhotoGalerie'+uId+'">';
			divPhotos += '<img src="'+arrayImg[0].url+'" />';
			divPhotos += '</div>';
			
			$('#idConteneurPhotos' + uId).html(divPhotos);
			
			//$("#idConteneurPhotos" + uId).css({opacity:1 , width:params.widthPhotos+'px' , height:params.heightPhotos+'px'});
			
			countCursorSlider = 6;
		
			var widthTmp = arrayImg.length * params.widthVignettes;
			
			if(widthTmp < parseInt($('#idMask'+uId).width()))
			{
				widthTmp = parseInt($('#idMask'+uId).width());
			}//fin if
		},
		sliderHandler:function()
		{
			$('#idConteneurBtnNavGalerie' + uId).empty();
			
			if(arrayImg.length > 6)
			{
				if(countCursorSlider > 6 && countCursorSlider < arrayImg.length)
				{
					var btnNavLeft = '<div class="btnNavGalerie btnNavLeft" id="idBtnNavLeft'+uId+'"></div>';
					$('#idConteneurBtnNavGalerie' + uId).append(btnNavLeft);
					
					var btnNavRight = '<div class="btnNavGalerie btnNavRight" id="idBtnNavRight'+uId+'"></div>';
					$('#idConteneurBtnNavGalerie' + uId).append(btnNavRight);
				}//fin if
				else if(countCursorSlider > 6 && countCursorSlider >= arrayImg.length)
				{
					var btnNavLeft = '<div class="btnNavGalerie btnNavLeft" id="idBtnNavLeft'+uId+'"></div>';
					$('#idConteneurBtnNavGalerie' + uId).append(btnNavLeft);
				}//fin else
				else if(countCursorSlider <= 6)
				{
					var btnNavRight = '<div class="btnNavGalerie btnNavRight" id="idBtnNavRight'+uId+'"></div>';
					$('#idConteneurBtnNavGalerie' + uId).append(btnNavRight);
				}//fin if
				
				$('#idBtnNavRight' + uId).css({opacity:0.6});
				$('#idBtnNavLeft' + uId).css({opacity:0.6});
				
			}//fin if
		},
		btnNavManager:function()
		{
			if(countCursorSlider <= 6)
			{
				$('#idBtnNavLeft' + uId).animate({opacity:0} , 500 , 'linear' , function(){$('#idBtnNavLeft' + uId).remove();});
			}//fin if
			else if(countCursorSlider >= arrayImg.length)
			{
				$('#idBtnNavRight' + uId).animate({opacity:0} , 500 , 'linear' , function(){$('#idBtnNavRight' + uId).remove();});
			}
		},
		displayPhoto:function(url)
		{
			$('#idConteneurPhotos' + uId + ' img').fadeOut(200 , function()
			{
				$('#idConteneurPhotos' + uId + ' img').attr('src' , url);
				$('#idConteneurPhotos' + uId + ' img').css({zIndex:0});
				$('#idConteneurPhotos' + uId + ' img').fadeIn(200);
			});
		},
		loooop:function()
		{
			//fondVignetteCheat //
			/*$('#idMaskVignettes'+uId).stop(true , true);
			$('#idMaskVignettes'+uId).css({display:'none' , top:'-=2000px'});
			
			$('#idConteneurBtnNavGalerie' + uId).stop(true , true);
			$('#idConteneurBtnNavGalerie'+uId).css({display:'none' , top:'-=2000px'});
			
			$('.fondVignetteCheat').stop(true , true);
			$('.fondVignetteCheat').css({display:'none' , top:'-=2000px'});
			*/
			currentImg = 1;
			PrivateMethodes.killTimer(timerLoop);
			if(arrayImg.length != 1)
			{
				timerLoop = setInterval(function()
				{
					//$("#idVignettes" + uId + currentImg).trigger('mouseover').trigger('click');
					
					$("#idVignettes" + uId + currentImg).trigger('mouseover').trigger('clickTimer' , currentImg);
					
					currentImg++;
					if(currentImg == arrayImg.length)
					{
						PrivateMethodes.killTimer(timerLoop);
						currentImg = 0;
						$("#idVignettes" + uId + currentImg).trigger('mouseover').trigger('clickTimer' , currentImg);
						/*$('#idMaskVignettes'+uId).css({display:'block' , top:'+=2000px'});
						$('#idConteneurBtnNavGalerie'+uId).css({display:'block' , top:'+=2000px'});
						$('.fondVignetteCheat').css({display:'block' , top:'+=2000px'});*/
					}//fin if
				} , 4000);
			}//fin if
		},
		killTimer:function(timer)
		{
			clearInterval(timer);
		}
	}
	
	var OverOutClick = 
	{
		defineOverOutClickVignettes:function()
		{
			OverOutClick.simuleClickTimer();
			for(var i = 0 ; i < arrayImg.length ; i++)
			{
				OverOutClick.clickVignettes('idVignettes'+uId , i);
				OverOutClick.overOutVignettes('idVignettes'+uId , i);
				$("#idVignettes"+uId + i).css('border' , '1px solid #A8ACA9');
				$("#idVignettes"+uId + i).animate({opacity:0.8} , 0 , 'linear');
			}//fin for
		},
		clickVignettes:function(idVignette , index)
		{
			$("#" + idVignette + index).click(function()
			{
				PrivateMethodes.killTimer(timerLoop);
				for(var i = 0 ; i < arrayImg.length ; i++)
				{
					$("#idVignettes" + uId + i).removeClass('activeVignettes');
					if(i != index)
					{
						$("#idVignettes" + uId + i).trigger('mouseout');
					}//fin if
				}//fin for
				
				PrivateMethodes.displayPhoto(arrayImg[index].url);
				$("#" + idVignette + index).addClass('activeVignettes');
				
				/*clearTimeout(timerWait);
				var timerWait = setTimeout(function()
				{
					clearTimeout(timerWait);
					PrivateMethodes.loooop();
				} , 15000)
				*/
			});
		},
		simuleClickTimer:function(index)
		{
			$j('body').bind('clickTimer' , function(event , index)
			{
				for(var i = 0 ; i < arrayImg.length ; i++)
				{
					$("#idVignettes" + uId + i).removeClass('activeVignettes');
					if(i != index)
					{
						$("#idVignettes" + uId + i).trigger('mouseout');
					}//fin if
				}//fin for
				
				PrivateMethodes.displayPhoto(arrayImg[index].url);
				$("#idVignettes" + uId + index).addClass('activeVignettes');
			});
		},
		overOutVignettes:function(idVignette , index)
		{
			$("#" + idVignette + index).hover(function()
			{
				if(!$("#" + idVignette + index).hasClass('activeVignettes'))
				{
					$("#" + idVignette + index).css('border' , '1px solid #FFFFFF');
					
					$("#" + idVignette + index).animate({opacity:1} , 200 , 'linear');
				}//fin if
			} , function()
			{
				if(!$("#" + idVignette + index).hasClass('activeVignettes'))
				{
					$("#" + idVignette + index).css('border' , '1px solid #A8ACA9');			
					$("#" + idVignette + index).animate({opacity:0.6} , 200 , 'linear');
				}//fin if
			});
		},
		clickBtnNavRight:function()
		{
			$('#idBtnNavRight' + uId).live('click' , function()
			{
				if(getFileName() == 'galerie-photos.php')
				{
					$('#idConteneurVignettes' + uId).animate({left:'-=411px'} , 200 , 'linear' , function(){PrivateMethodes.sliderHandler();});
				}//fin if
				else
				{
					$('#idConteneurVignettes' + uId).animate({left:'-=137px'} , 200 , 'linear' , function(){PrivateMethodes.sliderHandler();});	
				}//fin else
				
				countCursorSlider++;
				PrivateMethodes.btnNavManager();
			});
		},
		clickBtnNavLeft:function()
		{
			$('#idBtnNavLeft' + uId).live('click' , function()
			{
				if(getFileName() == 'galerie-photos.php')
				{
					$('#idConteneurVignettes' + uId).animate({left:'+=411px'} , 200 , 'linear' , function(){PrivateMethodes.sliderHandler();});
				}//fin if
				else
				{
					$('#idConteneurVignettes' + uId).animate({left:'+=137px'} , 200 , 'linear' , function(){PrivateMethodes.sliderHandler();});	
				}//fin else
				countCursorSlider--;
				PrivateMethodes.btnNavManager();
			});
		},
		overOutBtnNav:function()
		{
			$('#idBtnNavLeft' + uId).live('mouseover' , function()
				{
					$('#idBtnNavLeft' + uId).css({opacity:1});
				}).live('mouseout' , function()
				{
					$('#idBtnNavLeft' + uId).css({opacity:0.6});
				});
				
				$('#idBtnNavRight' + uId).live('mouseover' , function()
				{
					$('#idBtnNavRight' + uId).css({opacity:1});
				}).live('mouseout' , function()
				{
					$('#idBtnNavRight' + uId).css({opacity:0.6});
				});
		}
	}
	
	$.fn.animGolfhotel34 = function(methode)
	{
		// Method calling logic
		if(PublicMethodes[methode]) 
		{
			return PublicMethodes[methode].apply(this, Array.prototype.slice.call(arguments , 1 ));
		}
		else if (typeof methode === 'object' || ! methode ) 
		{
			return PublicMethodes.init.apply(this , arguments);
		}
		else 
		{
			$.error( 'Method ' +  methode + ' does not exist on jQuery.laa.monPlugin' );
		}
	};
})(jQuery);

