(function($)
{	
	var $this = null;
	var uId;
	var params = null;
	var template = null;
	var arrayImg = null;
	var currentImg = null;
	var firstLoad = true;
	
	var defaultParamsGalerie = 
	{
		codeEnews:['2911-so-accueiladmin-photo1-fr',
					'2911-so-accueiladmin-photo2-fr',
					'2911-so-accueiladmin-photo3-fr',
					'2911-so-accueiladmin-photo4-fr'
					],
		nbPhoto:4,
		codeEnewsLegendes:['2911-so-accueiladmin-texte1-fr',
					'2911-so-accueiladmin-texte2-fr',
					'2911-so-accueiladmin-texte3-fr',
					'2911-so-accueiladmin-texte4-fr'
					]
	}
	
	//methode public
	var PublicMethodesGalerie =
	{
		init:function(paramUser)
		{
			$this = $j(this);
			uId = $this.attr('id');
			
			return this.each(function()
			{
				
				params = $.extend(defaultParamsGalerie , paramUser);
				
				EventHandlerGalerie.bindEvent();
				
				PrivateMethodesGalerie.createTemplate();
				
				EventHandlerGalerie.clickBtnFermer();
				
				LoaderGalerie.img('loaderImgGalerie.php' , {arrayImgEnews:params.codeEnews,arrayLegendesEnews:params.codeEnewsLegendes} , 'vignetteGalerie');
				
				PositionningGalerie.conteneur();
				
				EventHandlerGalerie.overOutPhoto();
				EventHandlerGalerie.overOutArrow();
			});
		}
	};
	
	//methode privée
	var PrivateMethodesGalerie = 
	{
		showGalerie:function()
		{
			$this.animate({top:'0'} , 500 , 'linear');
		},
		hideGalerie:function()
		{
			$this.animate({top:'-2000px'} , 500 , 'linear');
		},
		createTemplate:function()
		{
			template = '';
			template += '<div class="galerie">';
				
				template += '<div class="ongletGalerie">';
					template += '<div class="btnCloseGalerie"><  Retour</div>';
					template += '<div class="conteneurBtnArrow"><div class="arrowLeftGalerie"></div><div class="arrowRightGalerie"></div></div>';
				template += '</div>';
				
				template += '<div class="photoGalerie"></div>';
				template += '<div class="vignetteGalerie"></div>';
				template += '<div class="clearleft"></div>';
				
			template += '</div>';
			
			$this.html(template);
		},
		changeImg:function(url,legende)
		{
			$j('.photoGalerie').fadeOut(300 , function()
			{
				$j('.photoGalerie p').remove();
				$j('.photoGalerie img').attr({src:url});
				$j('.photoGalerie').fadeIn(300);
				$j('.photoGalerie').append(legende);
			});
		},
		getImgFromPage:function()
		{
			arrayImg = [];
			currentImg = 0;
			$j('.vignetteGalerie li img').each(function()
			{
				arrayImg.push({urlImg:$j(this).attr('src')});
			});
		}
	}
	
	var EventHandlerGalerie = 
	{
		bindEvent:function()
		{
			$j(document).bind('showGalerie' , function()
			{
				Scroller.scrollToElement('body');
				PrivateMethodesGalerie.showGalerie();
				
				if(firstLoad)
				{
					$j('.galerie .onglet:first').trigger('mouseover').trigger('click');
					firstLoad = false;
				}//fin if
				
			});
		},
		clickBtnFermer:function()
		{
			$j('.btnCloseGalerie').live('click' , function()
			{
				PrivateMethodesGalerie.hideGalerie();
			});
		},
		overOutVignettes:function()
		{
			$j('.vignetteGalerie li').each(function()
			{
				$j(this).hover(function()
				{
					if(!$j(this).hasClass('vignetteActive'))
					{
						$j(this).css({border:'solid 1px #FFFFFF'});
					}//fin if
				} , function()
				{
					if(!$j(this).hasClass('vignetteActive'))
					{
						$j(this).css({border:'solid 1px #000000'});
					}//fin if
				})
			});
		},
		clickVignettes:function()
		{
			$j('.vignetteGalerie li').each(function(index)
			{
				$j(this).click(function()
				{
					$j(this).addClass('vignetteActive').siblings().removeClass('vignetteActive').trigger('mouseout');
					PrivateMethodesGalerie.changeImg($j(this).find('img').attr('src'),$j(this).find('img').attr('alt'));
					currentImg = index;
				});
			})
		},
		overOutPhoto:function()
		{
			$j('.conteneurBtnArrow').css({'display':'none'});
			$j('.conteneurBtnArrow').hover(function()
			{
				$j('.conteneurBtnArrow').stop(true , true);
				$j('.conteneurBtnArrow').css({'display':'block'} );
			} , function()
			{
				$j('.conteneurBtnArrow').stop(true , true);
				$j('.conteneurBtnArrow').css({'display':'none'} );
			});
			$j('.photoGalerie').hover(function()
			{
				$j('.conteneurBtnArrow').stop(true , true);
				$j('.conteneurBtnArrow').css({'display':'block'} );
			} , function()
			{
				$j('.conteneurBtnArrow').stop(true , true);
				$j('.conteneurBtnArrow').css({'display':'none'} );
			});
		},
		overOutArrow:function()
		{
			$j('.arrowLeftGalerie').hover(function()
			{
				$j('.arrowRightGalerie').css({'display':'none'} );
			} , function()
			{
				$j('.arrowRightGalerie').css({'display':'block'} );
			});
			$j('.arrowRightGalerie').hover(function()
			{
				$j('.arrowLeftGalerie').css({'display':'none'} );
			} , function()
			{
				$j('.arrowLeftGalerie').css({'display':'block'} );
			});
		},
		clickArrow:function()
		{
			$j('.arrowLeftGalerie').click(function()
			{
				currentImg--;
				if(currentImg == -1)
				{
					currentImg = arrayImg.length-1;
				}//fin if
				$j('.vignetteGalerie li:eq('+currentImg+')').trigger('mouseover').trigger('click');
			});
			$j('.arrowRightGalerie').click(function()
			{
				currentImg++;
				if(currentImg == arrayImg.length)
				{
					currentImg = 0;
				}//fin if
				$j('.vignetteGalerie li:eq('+currentImg+')').trigger('mouseover').trigger('click');
			});
		}
		
	}
	
	PositionningGalerie = 
	{
		conteneur:function()
		{
			$j(window).load(function()
			{
				$this.css({width:$j(document).width() , height:$j(document).height()});
			});
			$this.css({width:$j(document).width() , height:$j(document).height()});
		}
	}
	
	var LoaderGalerie = 
	{
		img:function(urlPhp , objData , divDisplay, objDataLegende)
		{
			$j(document).ready(function()
			{
				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)
						{
							$j('.photoGalerie').html('<img src="../images/galerie/elements/ajax-loader.gif" />');
						}//fin if
					},
					success: function(data)
					{
						if(divDisplay != null)
						{
							$j('.vignetteGalerie').html(data);
							
							//EventHandlerGalerie.overOutVignettes();
							EventHandlerGalerie.clickVignettes();
							
							PrivateMethodesGalerie.getImgFromPage();
							
							EventHandlerGalerie.clickArrow();
							
							$j('.vignetteGalerie li:first').trigger('mouseover').trigger('click');
						}//fin if
					},
					error: function(XmlHttpRequest , textStatus , errorThrown)
					{
						if(divDisplay != null)
						{
							$j('.vignetteGalerie').html(textStatus)
						}//fin if
					}
				});
			});//fin document ready
		}
	}
	
	$.fn.galerieLaGreeDesLandes = function(methode)
	{
		// Method calling logic
		if(PublicMethodesGalerie[methode]) 
		{
			return PublicMethodesGalerie[methode].apply(this, Array.prototype.slice.call(arguments , 1 ));
		}//fin if
		else if (typeof methode === 'object' || ! methode ) 
		{
			return PublicMethodesGalerie.init.apply(this , arguments);
		}//fin else if
		else 
		{
			$.error( 'Method ' +  methode + ' does not exist on jQuery.laa.animGhBordeaux' );
		}//fin else
	};
})(jQuery);

