/* ------------------------------------------------------------------------
	Class: zoomslide

------------------------------------------------------------------------- */

$(document).ready(function(){
	zoomslide.init();
});
zoomslide = {
		// Configure la boite
		/////////////////
		init : function(){
			zoomslide.largeurD=450; // Largeur par défaut
			zoomslide.hauteurD=360; // Hauteur par défaut
			zoomslide.duree=750;	// Durée des animation en ms
			zoomslide.fond="#000000";
			zoomslide.lecteurFLV="/images/zoomslide/FLVplayer.swf" // Ou se trouve le lecteur FLV par rapport à la racine
			zoomslide.lecteurMP3="/images/zoomslide/mp3player.swf" // Ou se trouve le lecteur MP3 par rapport à la racine
			// Trouve toutes les images
			zoomslide.images = new Array();
			galleryRegExp = /\[(?:.*)\]/
			$("a[rel^='zoomslide']").each(function(){
					if(!zoomslide.images[galleryRegExp.exec($(this).attr("rel"))]){
						zoomslide.images[galleryRegExp.exec($(this).attr("rel"))]=new Array();
					}
					zoomslide.images[galleryRegExp.exec($(this).attr("rel"))].push($(this));
					$(this).bind('click',function(){
					zoomslide.gallerie=galleryRegExp.exec($(this).attr("rel"));
					zoomslide.div=$(this);
					zoomslide.top=$(this).offset().top-18;
					zoomslide.left=$(this).offset().left-18;
					zoomslide.largeur=$(this).width();
					zoomslide.hauteur=$(this).height();
					if($(this).children("img").length){
						zoomslide.hauteur=$(this).children("img").height();
						zoomslide.top=$(this).children("img").offset().top-18;
					}
					zoomslide.open(); return false;
				});
			});
			$(window).resize(function(){ zoomslide.recadrer(); });
		},
		// Création des divs
		///////////////
		open : function(){
			for (i = 0; i < zoomslide.images[zoomslide.gallerie].length; i++){
				if($(zoomslide.images[zoomslide.gallerie][i]).attr("href") == zoomslide.div.attr("href")){
					zoomslide.position=i;
				}
			}
			$("embed").css("visibility","hidden"); // On cache tous les éléments qui pourrait passé par dessus zoomslide
			$("object").css("visibility","hidden");

			$('body').append("<div id='zoomslide'></div>");

			zoomslide.aplat();

			$('#zoomslide').append("<div id='zoomslide_conteneur'></div>");

			$('#zoomslide_conteneur').append("<div id='zoomslide_conteneur2'></div>");

			$('#zoomslide_conteneur2').append("<div id='zoomslide_close'></div>");

			$('#zoomslide_conteneur2').append("<div id='zoomslide_titre'></div>");
			$('#zoomslide_titre').append('<table cellspacing="0" cellpadding="0" border="0" style="margin:0 auto;"><tr><td id="zoomslide_titreg"></td><td id="zoomslide_titrec"></td><td id="zoomslide_titred"></td></tr></table>')

			if(zoomslide.gallerie){
				$('#zoomslide_titre table tr').append('<td width="39"><a id="zoomslide_boutond"></a></td>');
				$('#zoomslide_titre table tr').prepend('<td width="39"><a id="zoomslide_boutong"></a></td>');
				$("#zoomslide_boutond").click(function(){zoomslide.next()});
				$("#zoomslide_boutong").click(function(){zoomslide.prev()});
				///////////////////////modification ///////////////////////
				//On passe a l'image suivante si on appuie sur Rigth = 39 en ASCII
				//On passe a l'image précédente si on appuie sur Left = 37 en ASCII
      			$(document).keyup(function(event){
      				//Avec ce filtre tu pouras bien t'amuser avec le clavier... il suffit d'imaginer
      				//alert(event.keyCode);
      				if(event.keyCode==39){
      					zoomslide.next();
      				}
      				else if(event.keyCode==37){
      					zoomslide.prev()
      				}
      			});


				if(zoomslide.position==zoomslide.images[zoomslide.gallerie].length-1){
					$("#zoomslide_boutond").hide();
				}
				if(zoomslide.position==0){
					$("#zoomslide_boutong").hide();
				}
			}

			$('#zoomslide_conteneur2').append("<div id='zoomslide_bg'></div>");
			$('#zoomslide_bg').append("<div class='zoomslide_bg_h'></div>");
			$('#zoomslide_bg').append("<div class='zoomslide_bg_b'></div>");
			$('#zoomslide_bg').append("<div class='zoomslide_bg_d'></div>");
			$('#zoomslide_bg').append("<div class='zoomslide_bg_g'></div>");
			$('#zoomslide_bg').append("<div class='zoomslide_bg_bg'></div>");
			$('#zoomslide_bg').append("<div class='zoomslide_bg_bd'></div>");
			$('#zoomslide_bg').append("<div class='zoomslide_bg_hg'></div>");
			$('#zoomslide_bg').append("<div class='zoomslide_bg_hd'></div>");

			$('#zoomslide_conteneur2').append("<div id='zoomslide_contenu'></div>");
			$('#zoomslide_contenu').css({'background-color': zoomslide.fond});

			$('#zoomslide_contenu').hide();
			$('#zoomslide_conteneur2').hide();

			$('#zoomslide_conteneur').css({'top':zoomslide.top+"px"});
			$('#zoomslide_conteneur').css({'left':zoomslide.left+"px"});
			$('#zoomslide_conteneur').css({'width':zoomslide.largeur+"px"});
			$('#zoomslide_conteneur').css({'height':zoomslide.hauteur+"px"});
			zoomslide.setContent();

			$("#zoomslide_close").click(function(){
				zoomslide.close();
			})
			///////////////////////modification ///////////////////////
			//On sort de la zoomslide si on appuie sur ESC = 27 en ASCII
			$(document).keyup(function(event){
      			if(event.keyCode==27)
      				zoomslide.close();
      		});
			$("#zoomslide_aplat").click(function(){
				zoomslide.close();
			})

		},
		// Fermeture de zoomslide
		///////////////
		close : function(){
			div=zoomslide.div;
			zoomslide.top=div.offset().top-18;
			zoomslide.left=div.offset().left-18;
			zoomslide.largeur=div.width();
			zoomslide.hauteur=div.height();
			$('#zoomslide_bg').hide();
			//$('#zoomslide_close').fadeOut(zoomslide.duree); // plante sur IE7 et Google Chrome
			if(div.children("img").length){
				zoomslide.hauteur=div.children("img").height();
				zoomslide.top=div.children("img").offset().top-18;
			}
			$('#zoomslide_aplat').fadeOut(250);
			$('#zoomslide_titre').animate({opacity: 0},zoomslide.duree);
			if(zoomslide.type!="img"){
				$('#zoomslide_contenu').empty();
			}
			$('#zoomslide_contenu').animate({opacity: 0},zoomslide.duree);
			$('#zoomslide_conteneur').animate({
				width: zoomslide.largeur+"px",
				height: zoomslide.hauteur+"px",
				left: zoomslide.left+"px",
				top: zoomslide.top+"px"
			},zoomslide.duree,function(){
				$("embed").css("visibility","visible"); // On cache tous les éléments qui pourrait passé par dessus zoomslide
				$("object").css("visibility","visible");
				$("#zoomslide").remove();
			});

		},
		// Redimensionnement
		///////////////
		redim : function(){
			if($("#zoomslide_conteneur2").is(":hidden") && zoomslide.type=="img"){
				$('#zoomslide_contenu').append(zoomslide.contenu);
			}
			if($('#zoomslide_contenu').is(":hidden")){
				$('#zoomslide_contenu').fadeIn();
				$('#zoomslide_conteneur2').show();
			}
			$("#zoomslide_titrec").empty();
			$("#zoomslide_titrec").append(zoomslide.titre);
			zoomslide.left=($(window).width()-zoomslide.largeur-36)/2;
			zoomslide.top=((zoomslide.windowH()-zoomslide.hauteur-36)/2)+zoomslide.scrollY();
			$('#zoomslide_conteneur').animate({
				width: zoomslide.largeur+"px",
				height: zoomslide.hauteur+"px",
				left: zoomslide.left+"px",
				top: zoomslide.top+"px"
			},zoomslide.duree,function(){
				// LE redim est terminé
				if($('#zoomslide_contenu').is(":empty") || zoomslide.type!="img"){
					$('#zoomslide_contenu').append(zoomslide.contenu);
					if(zoomslide.type=="img"){$("#zoomslide_contenu img").hide(); $("#zoomslide_contenu img").fadeIn();}
					else{$("zoomslide_contenu").show();}
				}
				if(($("#zoomslide_titre").is(":hidden") && zoomslide.gallerie) || (!zoomslide.gallerie && $("#zoomslide_titre").is(":hidden") && zoomslide.titre)){
					$("#zoomslide_titre").fadeIn(zoomslide.duree);
				}

			});

		},
		recadrer : function(){
			if((zoomslide.hauteur+120)>zoomslide.windowH() && zoomslide.type=="img"){
				zoomslide.largeur=zoomslide.largeur*((zoomslide.windowH()-120)/zoomslide.hauteur);
				zoomslide.hauteur=(zoomslide.windowH()-120);
			}
			zoomslide.left=($(window).width()-zoomslide.largeur-36)/2;
			zoomslide.top=((zoomslide.windowH()-zoomslide.hauteur-36)/2)+zoomslide.scrollY();
			$('#zoomslide_conteneur').css("width",zoomslide.largeur+"px");
			$('#zoomslide_conteneur').css("height",zoomslide.hauteur+"px");
			$('#zoomslide_conteneur').css("left",zoomslide.left+"px");
			$('#zoomslide_conteneur').css("top",zoomslide.top+"px");
		},
		setContent : function(){
			zoomslide.titre=zoomslide.div.attr("title");
			zoomslide.lien=zoomslide.div.attr("href");
			taille=zoomslide.div.attr("rel").split(' ');
			if((taille[1])&&(taille[2])){ zoomslide.largeur = parseInt(taille[1]); zoomslide.hauteur =  parseInt(taille[2]);}
			else{zoomslide.largeur=zoomslide.largeurD; zoomslide.hauteur=zoomslide.hauteurD;}
			// mmh des expression régulière
			// On vérifie le zoomslide.lien pour générer le code en fonction
			filtreImg=/(\.jpg)|(\.jpeg)|(\.bmp)|(\.gif)|(\.png)/i
			filtreMP3=/(\.mp3)/i
			filtreFLV=/(\.flv)/i
			filtreSWF=/(\.swf)/i
			filtreQuicktime=/(\.mov)|(\.mp4)/i
			filtreWMV=/(\.wmv)/i
			filtreDailymotion=/(http:\/\/www.dailymotion)|(http:\/\/dailymotion)/i
			filtreVimeo=/(http:\/\/www.vimeo)|(http:\/\/vimeo)/i
			filtreYoutube=/(youtube\.)/i
			filtreKoreus=/(http:\/\/www\.koreus)|(http:\/\/koreus)/i
			filtreDeezer=/(http:\/\/www\.deezer)|(http:\/\/deezer)/i
			zoomslide.type="multi";
			// On évite les tailles trop grandes
			if((zoomslide.hauteur+120)>zoomslide.windowH()){
				zoomslide.largeur=zoomslide.largeur*((zoomslide.windowH()-120)/zoomslide.hauteur);
				zoomslide.hauteur=(zoomslide.windowH()-120);
			}
			if(filtreImg.test(zoomslide.lien)){
				img=new Image();
				img.src=zoomslide.lien;
				$('#zoomslide').append("<div id='zoomslide_loading'></div>");
				zoomslide.timer = window.setInterval("zoomslide.charger(img)",100);
				zoomslide.type="img";
				return true;
			}
			else if(filtreMP3.test(zoomslide.lien)){
				zoomslide.largeur=300;
				zoomslide.hauteur=40;
				zoomslide.contenu='<object type="application/x-shockwave-flash" data="'+zoomslide.lecteurMP3+'?son='+zoomslide.lien+'" width="'+zoomslide.largeur+'" height="'+zoomslide.hauteur+'">';
				zoomslide.contenu+='<param name="movie" value="'+zoomslide.lecteurMP3+'?son='+zoomslide.lien+'" /></object>';
			}

			else if(filtreFLV.test(zoomslide.lien)){
				zoomslide.contenu='<embed src="'+zoomslide.lecteurFLV+'" width="'+zoomslide.largeur+'" height="'+zoomslide.hauteur+'" allowscriptaccess="always" allowfullscreen="true" flashvars="file='+zoomslide.lien+'&width='+zoomslide.largeur+'&height='+zoomslide.hauteur+'" wmode="transparent" />';
			}

			else if(filtreSWF.test(zoomslide.lien)){
				zoomslide.contenu='<object width="'+zoomslide.largeur+'" height="'+zoomslide.hauteur+'"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="'+zoomslide.lien+'" /><embed src="'+zoomslide.lien+'" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="'+zoomslide.largeur+'" height="'+zoomslide.hauteur+'" wmode="transparent"></embed></object>';
			}

			else if(filtreQuicktime.test(zoomslide.lien)){
				zoomslide.contenu='<embed src="'+zoomslide.lien+'" width="'+zoomslide.largeur+'" height="'+zoomslide.hauteur+'" controller="true" cache="true" autoplay="true"/>';
			}

			else if(filtreWMV.test(zoomslide.lien)){
				zoomslide.contenu='<embed src="'+zoomslide.lien+'" width="'+zoomslide.largeur+'" height="'+zoomslide.hauteur+'" controller="true" cache="true" autoplay="true" wmode="transparent" />';
			}

			else if(filtreDailymotion.test(zoomslide.lien)){
				id=zoomslide.lien.split('_');
				id=id[0].split('/');
				id=id[id.length-1];
				zoomslide.contenu='<object width="'+zoomslide.largeur+'" height="'+zoomslide.hauteur+'"><param name="movie" value="http://www.dailymotion.com/swf/'+id+'&colors=background:000000;glow:000000;foreground:FFFFFF;special:000000;&related=0"></param><param name="allowFullScreen" value="true"></param><param name="allowScriptAccess" value="always"></param><embed src="http://www.dailymotion.com/swf/'+id+'&colors=background:000000;glow:000000;foreground:FFFFFF;special:000000;&related=0" type="application/x-shockwave-flash" width="'+zoomslide.largeur+'" height="'+zoomslide.hauteur+'" allowFullScreen="true" allowScriptAccess="always" wmode="transparent" ></embed></object>';
			}


			else if(filtreVimeo.test(zoomslide.lien)){
				id=zoomslide.lien.split('/');
				id=id[3];
				zoomslide.contenu='<object width="'+zoomslide.largeur+'" height="'+zoomslide.hauteur+'"><param name="allowfullscreen" value="true" />	<param name="allowscriptaccess" value="always" />	<param name="movie" value="http://www.vimeo.com/moogaloop.swf?clip_id='+id+'&amp;server=www.vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=00AAEB&amp;fullscreen=1" />	<embed src="http://www.vimeo.com/moogaloop.swf?clip_id='+id+'&amp;server=www.vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=1&amp;color=00AAEB&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="'+zoomslide.largeur+'" height="'+zoomslide.hauteur+'" wmode="transparent" ></embed></object>';
			}


			else if(filtreYoutube.test(zoomslide.lien)){
				id=zoomslide.lien.split('watch?v=');
				id=id[1].split('&');
				id=id[0];
				zoomslide.contenu='<object width="'+zoomslide.largeur+'" height="'+zoomslide.hauteur+'"><param name="movie" value="http://www.youtube.com/v/'+id+'&hl=fr&rel=0&color1=0xFFFFFF&color2=0xFFFFFF"></param><embed src="http://www.youtube.com/v/'+id+'&hl=fr&rel=0&color1=0xFFFFFF&color2=0xFFFFFF" type="application/x-shockwave-flash" width="'+zoomslide.largeur+'" height="'+zoomslide.hauteur+'" wmode="transparent"></embed></object>';
			}


			else if(filtreKoreus.test(zoomslide.lien)){
				zoomslide.lien=zoomslide.lien.split('.html');
				zoomslide.lien=zoomslide.lien[0];
				zoomslide.contenu='<object type="application/x-shockwave-flash" data="'+zoomslide.lien+'" width="'+zoomslide.largeur+'" height="'+zoomslide.hauteur+'"><param name="movie" value="'+zoomslide.lien+'"><embed src="'+zoomslide.lien+'" type="application/x-shockwave-flash" width="'+zoomslide.largeur+'" height="'+zoomslide.hauteur+'"  wmode="transparent"></embed></object>';
			}


			else if(filtreDeezer.test(zoomslide.lien)){
				zoomslide.largeur=220;
				zoomslide.hauteur=55;
				id=zoomslide.lien.split('/');
				id=id[id.length-1];
				zoomslide.contenu='<object width="220" height="55"><param name="movie" value="http://www.deezer.com/embedded/small-widget-v2.swf?idSong='+id+'&colorBackground=0x000000&textColor1=0xFFFFFF&colorVolume=0xFF6600&autoplay=0"></param><embed src="http://www.deezer.com/embedded/small-widget-v2.swf?idSong='+id+'&colorBackground=0x000000&textColor1=0xFFFFFF&colorVolume=0xFF6600&autoplay=0" type="application/x-shockwave-flash" width="220" height="55" wmode="transparent"></embed></object>';
			}

			else{
				zoomslide.contenu='<iframe src="'+zoomslide.lien+'" width="'+zoomslide.largeur+'" height="'+zoomslide.hauteur+'"></iframe>';
				zoomslide.titre=zoomslide.titre+' (<a href="'+(zoomslide.lien)+'" target="_blank">Ouvrir dans une nouvelle page</a>)';
				$("#zoomslide_titrec").append(' (<a href="'+(zoomslide.lien)+'" target="_blank">Ouvrir dans une nouvelle page</a>)');
			}
			$("#zoomslide_contenu").empty();
			zoomslide.redim();
		},
		next : function(){
			///////////////////////modification ///////////////////////
			//On passe a l'image suivante que si nous n'avons pas atteint la limite
			//supérieure d'images dans le tableaux.
			if(zoomslide.position<zoomslide.images[zoomslide.gallerie].length-1){
				zoomslide.position++;
				zoomslide.div=zoomslide.images[zoomslide.gallerie][zoomslide.position];
				zoomslide.setContent();
			}
			if(zoomslide.position==zoomslide.images[zoomslide.gallerie].length-1){
				$("#zoomslide_boutond").fadeOut();
			}
			if($("#zoomslide_boutong").is(":hidden")){
				$("#zoomslide_boutong").fadeIn();
			}
		},
		prev : function(){
			///////////////////////modification ///////////////////////
			//On passe a l'image précédente que si nous n'avons pas atteint la
			//limite inférieure d'images dans le tableaux.
			if(zoomslide.position>0){
				zoomslide.position--;
				zoomslide.div=zoomslide.images[zoomslide.gallerie][zoomslide.position];
				zoomslide.setContent();
			}
			if(zoomslide.position==0){
				$("#zoomslide_boutong").fadeOut();
			}
			if($("#zoomslide_boutond").is(":hidden")){
				$("#zoomslide_boutond").fadeIn();
			}
		},
		// Aparition de l'aplat
		///////////////
		aplat : function(){

 			$('#zoomslide').append("<div id='zoomslide_aplat'></div>");
			$('#zoomslide_aplat').css({'opacity': 0});
			$('#zoomslide_aplat').fadeTo(250,0.4);

		},
		// Chargement d'une image
		///////////////
		charger : function(img){
			if(img.complete){
				$("#zoomslide_conteneur").show();
				window.clearInterval(zoomslide.timer);
				zoomslide.largeur=img.width;
				zoomslide.hauteur=img.height;
				zoomslide.contenu='<img src="'+img.src+'" width="100%" height="100%"/>';
				$('#zoomslide_loading').remove();
				// On évite les tailles trop grandes
				if((zoomslide.hauteur+120)>zoomslide.windowH()){
					zoomslide.largeur=zoomslide.largeur*((zoomslide.windowH()-120)/zoomslide.hauteur);
					zoomslide.hauteur=(zoomslide.windowH()-120);
				}
				if($('#zoomslide_contenu img').length){
					$('#zoomslide_contenu img').fadeOut(500,function(){$('#zoomslide_contenu').empty(); zoomslide.redim();})
				}
				else{
					$('#zoomslide_contenu').empty();
					zoomslide.redim();
				}
			}
			// On anim le loader
			if(typeof(j)=='undefined'){j=0;}
 			$('#zoomslide_loading').css({'background-position': "0px "+j+"px"});
			j=j-40;
			if(j<(-440)){j=0;}
		},
		scrollY : function() {
		  scrOfY = 0;
		  if( typeof( window.pageYOffset ) == 'number' ) {
			//Netscape compliant
			scrOfY = window.pageYOffset;
		  } else if( document.body && ( document.body.scrollTop ) ) {
			//DOM compliant
			scrOfY = document.body.scrollTop;
		  } else if( document.documentElement && ( document.documentElement.scrollTop ) ) {
			//IE6 standards compliant mode
			scrOfY = document.documentElement.scrollTop;
		  }
		  return scrOfY;
		  alert(scrOfY);
		},
		windowH : function(){
			if (window.innerHeight) return window.innerHeight  ;
			else{return $(window).height();}
		}
}
