/* ------------------------------------------------------------------------
Class: zoombox
Auteur: Jonathan Boyer (http://www.grafikart.fr)
Version: 1.0.1
	
- Historique de Modifications: 
# BARRY Thierno IB. (ibrahima.br@gmail.com): Lundi 22/12/2008
+ Prise en charge de la navigation par les touches directionnelles
+ Sortie de la zoombox avec ESC
------------------------------------------------------------------------- */

//$(document).ready(function() {
//	zoombox.init();
//});

zoombox = {
	// Configure la boite
	/////////////////
	init: function() {
		zoombox.largeurD = 450; // Largeur par d?faut 
		zoombox.hauteurD = 360; // Hauteur par d?faut
		zoombox.duree = 750; // Dur?e des animation en ms
		zoombox.fond = "#000000";
		zoombox.lecteurFLV = "/js/zoombox/FLVplayer.swf" // Ou se trouve le lecteur FLV par rapport ? la racine
		zoombox.lecteurMP3 = "/js/zoombox/mp3player.swf" // Ou se trouve le lecteur MP3 par rapport ? la racine
		// Trouve toutes les images
		zoombox.images = new Array();
		galleryRegExp = /\[(?:.*)\]/
		$("a[rel^='zoombox']").each(function() {
			if (!zoombox.images[galleryRegExp.exec($(this).attr("rel"))]) {
				zoombox.images[galleryRegExp.exec($(this).attr("rel"))] = new Array();
			}
			zoombox.images[galleryRegExp.exec($(this).attr("rel"))].push($(this));
			$(this).bind('click', function() {
				zoombox.gallerie = galleryRegExp.exec($(this).attr("rel"));
				zoombox.div = $(this);
				zoombox.top = $(this).offset().top - 18;
				zoombox.left = $(this).offset().left - 18;
				zoombox.largeur = $(this).width();
				zoombox.hauteur = $(this).height();
				if ($(this).children("img").length) {
					zoombox.hauteur = $(this).children("img").height();
					zoombox.top = $(this).children("img").offset().top - 18;
				}
				zoombox.open(); return false;
			});
		});
		$(window).resize(function() { zoombox.recadrer(); });
	},
	// Cr?ation des divs
	///////////////
	open: function() {
		for (i = 0; i < zoombox.images[zoombox.gallerie].length; i++) {
			if ($(zoombox.images[zoombox.gallerie][i]).attr("href") == zoombox.div.attr("href")) {
				zoombox.position = i;
			}
		}
		$("embed").css("visibility", "hidden"); // On cache tous les ?l?ments qui pourrait pass? par dessus zoombox
		$("object").css("visibility", "hidden");

		$('body').append("<div id='zoombox'></div>");

		zoombox.aplat();

		$('#zoombox').append("<div id='zoombox_conteneur'></div>");

		$('#zoombox_conteneur').append("<div id='zoombox_conteneur2'></div>");

		$('#zoombox_conteneur2').append("<div id='zoombox_close'></div>");

		$('#zoombox_conteneur2').append("<div id='zoombox_titre'></div>");
		$('#zoombox_titre').append('<table cellspacing="0" cellpadding="0" border="0" style="margin:0 auto;"><tr><td id="zoombox_titreg"></td><td id="zoombox_titrec"></td><td id="zoombox_titred"></td></tr></table>')

		if (zoombox.gallerie) {
			$('#zoombox_titre table tr').append('<td width="39"><a id="zoombox_boutond"></a></td>');
			$('#zoombox_titre table tr').prepend('<td width="39"><a id="zoombox_boutong"></a></td>');
			$("#zoombox_boutond").click(function() { zoombox.next() });
			$("#zoombox_boutong").click(function() { zoombox.prev() });
			///////////////////////modification Ibrahima///////////////////////
			//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) {
					zoombox.next();
				}
				else if (event.keyCode == 37) {
					zoombox.prev()
				}
			});


			if (zoombox.position == zoombox.images[zoombox.gallerie].length - 1) {
				$("#zoombox_boutond").hide();
			}
			if (zoombox.position == 0) {
				$("#zoombox_boutong").hide();
			}
		}

		$('#zoombox_conteneur2').append("<div id='zoombox_bg'></div>");
		$('#zoombox_bg').append("<div class='zoombox_bg_h'></div>");
		$('#zoombox_bg').append("<div class='zoombox_bg_b'></div>");
		$('#zoombox_bg').append("<div class='zoombox_bg_d'></div>");
		$('#zoombox_bg').append("<div class='zoombox_bg_g'></div>");
		$('#zoombox_bg').append("<div class='zoombox_bg_bg'></div>");
		$('#zoombox_bg').append("<div class='zoombox_bg_bd'></div>");
		$('#zoombox_bg').append("<div class='zoombox_bg_hg'></div>");
		$('#zoombox_bg').append("<div class='zoombox_bg_hd'></div>");

		$('#zoombox_conteneur2').append("<div id='zoombox_contenu'></div>");
		$('#zoombox_contenu').css({ 'background-color': zoombox.fond });

		$('#zoombox_contenu').hide();
		$('#zoombox_conteneur2').hide();

		$('#zoombox_conteneur').css({ 'top': zoombox.top + "px" });
		$('#zoombox_conteneur').css({ 'left': zoombox.left + "px" });
		$('#zoombox_conteneur').css({ 'width': zoombox.largeur + "px" });
		$('#zoombox_conteneur').css({ 'height': zoombox.hauteur + "px" });
		zoombox.setContent();

		$("#zoombox_close").click(function() {
			zoombox.close();
		})
		///////////////////////modification Ibrahima///////////////////////
		//On sort de la zoombox si on appuie sur ESC = 27 en ASCII
		$(document).keyup(function(event) {
			if (event.keyCode == 27)
				zoombox.close();
		});
		$("#zoombox_aplat").click(function() {
			zoombox.close();
		})

	},
	// Fermeture de zoombox
	///////////////
	close: function() {
		div = zoombox.div;
		zoombox.top = div.offset().top - 18;
		zoombox.left = div.offset().left - 18;
		zoombox.largeur = div.width();
		zoombox.hauteur = div.height();
		$('#zoombox_bg').hide();
		$('#zoombox_close').fadeOut(zoombox.duree); // plante sur IE7 et Google Chrome
		if (div.children("img").length) {
			zoombox.hauteur = div.children("img").height();
			zoombox.top = div.children("img").offset().top - 18;
		}
		$('#zoombox_aplat').fadeOut(250);
		$('#zoombox_titre').animate({ opacity: 0 }, zoombox.duree);
		if (zoombox.type != "img") {
			$('#zoombox_contenu').empty();
		}
		$('#zoombox_contenu').animate({ opacity: 0 }, zoombox.duree);
		$('#zoombox_conteneur').animate({
			width: zoombox.largeur + "px",
			height: zoombox.hauteur + "px",
			left: zoombox.left + "px",
			top: zoombox.top + "px"
		}, zoombox.duree, function() {
			$("embed").css("visibility", "visible"); // On cache tous les ?l?ments qui pourrait pass? par dessus zoombox
			$("object").css("visibility", "visible");
			$("#zoombox").remove();
		});

	},
	// Redimensionnement
	///////////////
	redim: function() {
		if ($("#zoombox_conteneur2").is(":hidden") && zoombox.type == "img") {
			$('#zoombox_contenu').append(zoombox.contenu);
		}
		if ($('#zoombox_contenu').is(":hidden")) {
			$('#zoombox_contenu').fadeIn();
			$('#zoombox_conteneur2').show();
		}
		$("#zoombox_titrec").empty();
		$("#zoombox_titrec").append(zoombox.titre);
		zoombox.left = ($(window).width() - zoombox.largeur - 36) / 2;
		zoombox.top = ((zoombox.windowH() - zoombox.hauteur - 36) / 2) + zoombox.scrollY();
		$('#zoombox_conteneur').animate({
			width: zoombox.largeur + "px",
			height: zoombox.hauteur + "px",
			left: zoombox.left + "px",
			top: zoombox.top + "px"
		}, zoombox.duree, function() {
			// LE redim est termin?
			if ($('#zoombox_contenu').is(":empty") || zoombox.type != "img") {
				$('#zoombox_contenu').append(zoombox.contenu);
				if (zoombox.type == "img") { $("#zoombox_contenu img").hide(); $("#zoombox_contenu img").fadeIn(); }
				else { $("zoombox_contenu").show(); }
			}
			if (($("#zoombox_titre").is(":hidden") && zoombox.gallerie) || (!zoombox.gallerie && $("#zoombox_titre").is(":hidden") && zoombox.titre)) {
				$("#zoombox_titre").fadeIn(zoombox.duree);
			}

		});

	},
	recadrer: function() {
		if ((zoombox.hauteur + 120) > zoombox.windowH() && zoombox.type == "img") {
			zoombox.largeur = zoombox.largeur * ((zoombox.windowH() - 120) / zoombox.hauteur);
			zoombox.hauteur = (zoombox.windowH() - 120);
		}
		zoombox.left = ($(window).width() - zoombox.largeur - 36) / 2;
		zoombox.top = ((zoombox.windowH() - zoombox.hauteur - 36) / 2) + zoombox.scrollY();
		$('#zoombox_conteneur').css("width", zoombox.largeur + "px");
		$('#zoombox_conteneur').css("height", zoombox.hauteur + "px");
		$('#zoombox_conteneur').css("left", zoombox.left + "px");
		$('#zoombox_conteneur').css("top", zoombox.top + "px");
		
// MIZUHONET
if( ipadCheck ){
	$("#zoombox_aplat").css("width","1300px");
}
// ここまで
	},
	setContent: function() {
		zoombox.titre = zoombox.div.attr("title");
		zoombox.lien = zoombox.div.attr("href");
		taille = zoombox.div.attr("rel").split(' ');
		if ((taille[1]) && (taille[2])) { zoombox.largeur = parseInt(taille[1]); zoombox.hauteur = parseInt(taille[2]); }
		else { zoombox.largeur = zoombox.largeurD; zoombox.hauteur = zoombox.hauteurD; }
		// mmh des expression r?guli?re 
		// On v?rifie le zoombox.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
		zoombox.type = "multi";
		// On ?vite les tailles trop grandes
		if ((zoombox.hauteur + 120) > zoombox.windowH()) {
			zoombox.largeur = zoombox.largeur * ((zoombox.windowH() - 120) / zoombox.hauteur);
			zoombox.hauteur = (zoombox.windowH() - 120);
		}
		if (filtreImg.test(zoombox.lien)) {
			img = new Image();
			img.src = zoombox.lien;
			$('#zoombox').append("<div id='zoombox_loading'></div>");
			zoombox.timer = window.setInterval("zoombox.charger(img)", 100);
			zoombox.type = "img";
			return true;
		}
		else if (filtreMP3.test(zoombox.lien)) {
			zoombox.largeur = 300;
			zoombox.hauteur = 40;
			zoombox.contenu = '<object type="application/x-shockwave-flash" data="' + zoombox.lecteurMP3 + '?son=' + zoombox.lien + '" width="' + zoombox.largeur + '" height="' + zoombox.hauteur + '">';
			zoombox.contenu += '<param name="movie" value="' + zoombox.lecteurMP3 + '?son=' + zoombox.lien + '" /></object>';
		}

		else if (filtreFLV.test(zoombox.lien)) {
			zoombox.contenu = '<embed src="' + zoombox.lecteurFLV + '" width="' + zoombox.largeur + '" height="' + zoombox.hauteur + '" allowscriptaccess="always" allowfullscreen="true" flashvars="file=' + zoombox.lien + '&width=' + zoombox.largeur + '&height=' + zoombox.hauteur + '&autostart=true" wmode="transparent" />';
		}

		else if (filtreSWF.test(zoombox.lien)) {
			zoombox.contenu = '<object width="' + zoombox.largeur + '" height="' + zoombox.hauteur + '"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="' + zoombox.lien + '" /><embed src="' + zoombox.lien + '" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="' + zoombox.largeur + '" height="' + zoombox.hauteur + '" wmode="transparent"></embed></object>';
		}

		else if (filtreQuicktime.test(zoombox.lien)) {
			zoombox.contenu = '<embed src="' + zoombox.lien + '" width="' + zoombox.largeur + '" height="' + zoombox.hauteur + '" controller="true" cache="true" autoplay="true"/>';
		}

		else if (filtreWMV.test(zoombox.lien)) {
			zoombox.contenu = '<embed src="' + zoombox.lien + '" width="' + zoombox.largeur + '" height="' + zoombox.hauteur + '" controller="true" cache="true" autoplay="true" wmode="transparent" />';
		}

		else if (filtreDailymotion.test(zoombox.lien)) {
			id = zoombox.lien.split('_');
			id = id[0].split('/');
			id = id[id.length - 1];
			zoombox.contenu = '<object width="' + zoombox.largeur + '" height="' + zoombox.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="' + zoombox.largeur + '" height="' + zoombox.hauteur + '" allowFullScreen="true" allowScriptAccess="always" wmode="transparent" ></embed></object>';
		}


		else if (filtreVimeo.test(zoombox.lien)) {
			id = zoombox.lien.split('/');
			id = id[3];
			zoombox.contenu = '<object width="' + zoombox.largeur + '" height="' + zoombox.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="' + zoombox.largeur + '" height="' + zoombox.hauteur + '" wmode="transparent" ></embed></object>';
		}


		else if (filtreYoutube.test(zoombox.lien)) {
			id = zoombox.lien.split('watch?v=');
			id = id[1].split('&');
			id = id[0];
			zoombox.contenu = '<object width="' + zoombox.largeur + '" height="' + zoombox.hauteur + '"><param name="movie" value="http://www.youtube.com/v/' + id + '&hl=ja&rel=0&color1=0xFFFFFF&color2=0xFFFFFF&hd=1"></param><embed src="http://www.youtube.com/v/' + id + '&hl=ja&rel=0&color1=0xFFFFFF&color2=0xFFFFFF&hd=1" type="application/x-shockwave-flash" width="' + zoombox.largeur + '" height="' + zoombox.hauteur + '" wmode="transparent"></embed></object>';
		}


		else if (filtreKoreus.test(zoombox.lien)) {
			zoombox.lien = zoombox.lien.split('.html');
			zoombox.lien = zoombox.lien[0];
			zoombox.contenu = '<object type="application/x-shockwave-flash" data="' + zoombox.lien + '" width="' + zoombox.largeur + '" height="' + zoombox.hauteur + '"><param name="movie" value="' + zoombox.lien + '"><embed src="' + zoombox.lien + '" type="application/x-shockwave-flash" width="' + zoombox.largeur + '" height="' + zoombox.hauteur + '"	wmode="transparent"></embed></object>';
		}


		else if (filtreDeezer.test(zoombox.lien)) {
			zoombox.largeur = 220;
			zoombox.hauteur = 55;
			id = zoombox.lien.split('/');
			id = id[id.length - 1];
			zoombox.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 {
			if (zoombox.largeur == zoombox.largeurD) {
				zoombox.largeur = zoombox.windowW() - 100;
			}
			if (zoombox.hauteur == zoombox.hauteurD) {
				zoombox.hauteur = zoombox.windowH() - 150;
			}
			zoombox.contenu = '<iframe src="' + zoombox.lien + '" width="' + zoombox.largeur + '" height="' + zoombox.hauteur + '"></iframe>';
			//zoombox.titre=zoombox.titre+' (<a href="'+(zoombox.lien)+'" target="_blank">Ouvrir dans une nouvelle page</a>)';
			$("#zoombox_titrec").append(zoombox.titre);
		}
		$("#zoombox_contenu").empty();
		zoombox.redim();
	},
	next: function() {
		///////////////////////modification Ibrahima///////////////////////
		//On passe a l'image suivante que si nous n'avons pas atteint la limite
		//sup?rieure d'images dans le tableaux.
		if (zoombox.position < zoombox.images[zoombox.gallerie].length - 1) {
			zoombox.position++;
			zoombox.div = zoombox.images[zoombox.gallerie][zoombox.position];
			zoombox.setContent();
		}
		if (zoombox.position == zoombox.images[zoombox.gallerie].length - 1) {
			$("#zoombox_boutond").fadeOut();
		}
		if ($("#zoombox_boutong").is(":hidden")) {
			$("#zoombox_boutong").fadeIn();
		}
	},
	prev: function() {
		///////////////////////modification Ibrahima///////////////////////
		//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 (zoombox.position > 0) {
			zoombox.position--;
			zoombox.div = zoombox.images[zoombox.gallerie][zoombox.position];
			zoombox.setContent();
		}
		if (zoombox.position == 0) {
			$("#zoombox_boutong").fadeOut();
		}
		if ($("#zoombox_boutond").is(":hidden")) {
			$("#zoombox_boutond").fadeIn();
		}
	},
	// Aparition de l'aplat
	///////////////
	aplat: function() {

		$('#zoombox').append("<div id='zoombox_aplat'></div>");
		$('#zoombox_aplat').css({ 'opacity': 0 });
		$('#zoombox_aplat').fadeTo(250, 0.7);
// MIZUHONET
if( ipadCheck ){
	$("#zoombox_aplat").css("width","1300px");
}
// ここまで
	},
	// Chargement d'une image
	///////////////	
	charger: function(img) {
		if (img.complete) {
			$("#zoombox_conteneur").show();
			window.clearInterval(zoombox.timer);
			zoombox.largeur = img.width;
			zoombox.hauteur = img.height;
			zoombox.contenu = '<img src="' + img.src + '" width="100%" height="100%"/>';
			$('#zoombox_loading').remove();
			// On ?vite les tailles trop grandes
			if ((zoombox.hauteur + 120) > zoombox.windowH()) {
				zoombox.largeur = zoombox.largeur * ((zoombox.windowH() - 120) / zoombox.hauteur);
				zoombox.hauteur = (zoombox.windowH() - 120);
			}
			if ($('#zoombox_contenu img').length) {
				$('#zoombox_contenu img').fadeOut(500, function() { $('#zoombox_contenu').empty(); zoombox.redim(); })
			}
			else {
				$('#zoombox_contenu').empty();
				zoombox.redim();
			}
		}
		// On anim le loader
		if (typeof (j) == 'undefined') { j = 0; }
		$('#zoombox_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(); }
	},
	windowW: function() {
		if (window.innerWidth) return window.innerWidth;
		else { return $(window).width(); }
	}
}


