(function($)
{	
	var $this = null;
	var uId;
	var arrayImg = [];
	var params = null;
	var template = null;
	var templateOnglets = null;
	
	var vignettesIsOpen = false;
	var arrayGalerieDefault = 
	[
		{onglet:'Stromatolithes' , imgPaths:[
								{url:'../images/galerieBoyambi/stromatolithes/001.jpg' , legende:''},
								{url:'../images/galerieBoyambi/stromatolithes/002.jpg' , legende:''},
								{url:'../images/galerieBoyambi/stromatolithes/003.jpg' , legende:''},
								{url:'../images/galerieBoyambi/stromatolithes/004.jpg' , legende:''}
								]},
		{onglet:'Lithops' , imgPaths:[
								{url:'../images/galerieBoyambi/lithops/001.jpg' , legende:''},
								{url:'../images/galerieBoyambi/lithops/002.jpg' , legende:''},
								{url:'../images/galerieBoyambi/lithops/003.jpg' , legende:''},
								{url:'../images/galerieBoyambi/lithops/004.jpg' , legende:''},
								{url:'../images/galerieBoyambi/lithops/005.jpg' , legende:''},
								{url:'../images/galerieBoyambi/lithops/006.jpg' , legende:''}
								]},
		{onglet:'Mutants' , imgPaths:[
								{url:'../images/galerieBoyambi/mutants/001.jpg' , legende:'Longueur 63cm / largeur 45cm / Hauteur 50cm'}
								]},
		{onglet:'Gouttes' , imgPaths:[
								{url:'../images/galerieBoyambi/gouttes/001.jpg' , legende:'Diamètre 45cm / Hauteur 50cm'},
								{url:'../images/galerieBoyambi/gouttes/002.jpg' , legende:'Diamètre 40cm / Hauteur 45cm'}
								]},
		{onglet:'Coques' , imgPaths:[
								{url:'../images/galerieBoyambi/coques/001.jpg' , legende:''},
								{url:'../images/galerieBoyambi/coques/002.jpg' , legende:''},
								{url:'../images/galerieBoyambi/coques/003.jpg' , legende:''},
								{url:'../images/galerieBoyambi/coques/004.jpg' , legende:''}
								]},
		{onglet:'Bouteilles sacrées' , imgPaths:[
								{url:'../images/galerieBoyambi/bouteillesSacrees/001.jpg' , legende:''},
								{url:'../images/galerieBoyambi/bouteillesSacrees/002.jpg' , legende:''}
								]},
		{onglet:'Plats' , imgPaths:[
								{url:'../images/galerieBoyambi/plats/001.jpg' , legende:''},
								{url:'../images/galerieBoyambi/plats/002.jpg' , legende:''}
								]},
		{onglet:'Bols' , imgPaths:[
								{url:'../images/galerieBoyambi/bols/001.jpg' , legende:''},
								{url:'../images/galerieBoyambi/bols/002.jpg' , legende:''},
								{url:'../images/galerieBoyambi/bols/003.jpg' , legende:''}
								]},
		{onglet:'2009 le lavoir de Geligny' , imgPaths:[
								{url:'../images/galerieBoyambi/geligny/001.jpg' , legende:''},
								{url:'../images/galerieBoyambi/geligny/002.jpg' , legende:''},
								{url:'../images/galerieBoyambi/geligny/003.jpg' , legende:''},
								{url:'../images/galerieBoyambi/geligny/004.jpg' , legende:''},
								{url:'../images/galerieBoyambi/geligny/005.jpg' , legende:''}
								]},
		{onglet:'2008 le passage' , imgPaths:[
								{url:'../images/galerieBoyambi/lePassage/001.jpg' , legende:''},
								{url:'../images/galerieBoyambi/lePassage/002.jpg' , legende:''}
								]}
								
	];
	
	var defaultParams = 
	{
		config:arrayGalerieDefault,
		widthPhotos:950,
		heighPhotos:712,
		widthVignettes:115
	}
	
	//methode public
	var PublicMethodes =
	{
		init:function(paramUser)
		{
			$this = $(this);
			uId = $this.attr('id');
			
			return this.each(function()
			{
				params = $.extend(defaultParams , paramUser);
				
				PrivateMethodes.createTemplate();
			});
		}
	};
	
	//methode privée
	var PrivateMethodes = 
	{
		createTemplate:function()
		{
			template = '';
			template += '<div class="conteneurOnglets" id="idConteneurOnglets'+uId+'">onglets</div>';
			template += '<div class="conteneurPhotos" id="idConteneurPhotos'+uId+'"><img src="" width="900" height="500" /></div>';
			template += '<div class="conteneurLegende" id="idConteneurLegende'+uId+'"></div>';
			template += '<div class="conteneurVignettes" id="idVonteneurVignettes'+uId+'">vignettes</div>';
			
			$this.html(template);
			PrivateMethodes.createOnglets();
		},
		createOnglets:function()
		{
			templateOnglets = '';
			templateOnglets += '<ul>';
			var i = 0;
			for(i ; i < 7 ; i++)
			{
				templateOnglets += '<li>';
				templateOnglets += params.config[i].onglet;
				templateOnglets += '</li>';
			}//fin for
			templateOnglets += '</ul>';
			
			templateOnglets += '<ul>';
			var j = 7;
			for(j ; j < params.config.length ; j++)
			{
				templateOnglets += '<li>';
				templateOnglets += params.config[j].onglet;
				templateOnglets += '</li>';
			}//fin for
			templateOnglets += '</ul>';
			
			$('#idConteneurOnglets' + uId).html(templateOnglets);
			
			EventHandlerGalerie.clickOnglets();
			EventHandlerGalerie.overOutOnglets();
			$('#idConteneurOnglets' + uId + ' li:first').trigger('mouseover').trigger('click');
		},
		loadGalerie:function(index)
		{
			var tabUrl = [];
			var tabLegende = [];
			var i = 0;
			for(i ; i < params.config[index].imgPaths.length ; i++)
			{
				tabUrl.push(params.config[index].imgPaths[i].url);
				tabLegende.push(params.config[index].imgPaths[i].legende);
			}//fin for
			
			LoadImg.load('../implementation/loadImgGalerie.php' , {urlImgGalerie:tabUrl , legendeImgGalerie:tabLegende} , '#idVonteneurVignettes'+uId);
		},
		swithPhotos:function(url , legende)
		{
			$('#idConteneurPhotos'+uId + ' img').fadeOut(500 , function()
			{
				$('#idConteneurPhotos'+uId + ' img').attr({src:url});
				$('#idConteneurPhotos'+uId + ' img').fadeIn(500);
			});
			$('#idConteneurLegende'+uId).fadeOut(500 , function()
			{
				$('#idConteneurLegende'+uId).html(legende);
				$('#idConteneurLegende'+uId).fadeIn(500);
			});
		}
	}
	
	var EventHandlerGalerie = 
	{
		overOutOnglets:function()
		{
			$('#idConteneurOnglets' + uId + ' li').each(function(index)
			{
				$(this).hover(function()
				{
					if(!$(this).hasClass('ongletActive'))
					{
						$(this).css({textDecoration:'underline' , color:'#000000'});
					}//fin if
				} , function()
				{
					if(!$(this).hasClass('ongletActive'))
					{
						$(this).css({textDecoration:'none' , color:'#373737'});
					}//fin if
				})
			});
		},
		clickOnglets:function()
		{
			$('#idConteneurOnglets' + uId + ' li').each(function(index)
			{
				$(this).click(function()
				{
					PrivateMethodes.loadGalerie(index);
					$(this).addClass('ongletActive').siblings().removeClass('ongletActive').trigger('mouseout');
				})
			});
		},
		overOutVignettes:function()
		{
			$('#idVonteneurVignettes' + uId + ' li').each(function()
			{
				$(this).hover(function()
				{
					if(!$(this).hasClass('vignettesActive'))
					{
						$(this).animate({opacity:0.5} , 200 , 'linear');
					}//fin if
				} , function()
				{
					if(!$(this).hasClass('vignettesActive'))
					{
						$(this).animate({opacity:1} , 200 , 'linear');
					}//fin if
				});
			});
		},
		clickVignettes:function()
		{
			$('#idVonteneurVignettes' + uId + ' li').each(function()
			{
				$(this).click(function()
				{
					PrivateMethodes.swithPhotos($(this).find('img').attr('src') , $(this).find('img').attr('alt'));
					$(this).addClass('vignettesActive').siblings().removeClass('vignettesActive').trigger('mouseout');
				});
			});
		}
	}
	
	var LoadImg = 
	{
		load:function(urlPhp , objData , divRep)
		{
			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)
				{
					$(divRep).html('<src img="../images/ajax-loader.gif" />');
				},
				success: function(data)
				{
					$(divRep).html(data);
					EventHandlerGalerie.clickVignettes();
					EventHandlerGalerie.overOutVignettes();
					$('#idVonteneurVignettes' + uId + ' li:first').trigger('mouseover').trigger('click');
				}
			});
		}
	}
	
	$.fn.galerieBoyambi = 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.animGhBordeaux' );
		}//fin else
	};
})(jQuery);
