/*	Code Javascript pour afficher une boite de lien
**			Par Le Raton Laveur : www.jojoratonlaveur.fr
**************************************/
/*
	CONFIGURATION
*/

bordureh=10; // bordure horizontales en pixels
bordurev=10; // bordure verticales en pixels
opacite=0.8; // Opacité du fond entre 0 et 1
couleur="#000000"; // Couleur du fond
duree=1500; // Temps que met le conteneur à s'afficher (le carré blanc) en milliseconde
lecteurFLV="/classbox/flvplayer.swf" // Ou se trouve le lecteur FLV
lecteurMP3="/classbox/mp3player.swf" // Ou se trouve le lecteur FLV
longueurDefaut=450; // Longueur par défaut (Si aucune valeur n'est précisé)
hauteurDefaut=360; // Hauteur par défaut (Si aucune valeur n'est précisé)

var lbox=50; // Variables servant à retenir les dimensions
var hbox=50; 
var timer; // variable servant de minuteur (pour le chargement d'une image)
var img;

/*
	FONCTION QUI CHARGE L'IMAGE
*/
function charger(titre,lien){
	if(img.complete){
		window.clearInterval(timer);
		longueur=img.width;
		hauteur=img.height;
		animBox(titre,'<img src="'+lien+'"/>',longueur,hauteur);
	}
}
/*
	FONCTION QUI DEMARRE UNE BOX
*/
function classBox(titre,lien,longueur,hauteur){
	setBox(titre,lien,longueur,hauteur);
}
/*
	FONCTION QUI PLACE LES DIV
*/
function setBox(titre,lien,longueur,hauteur){
		$("embed").css("visibility","hidden"); // On cache tous les éléments qui pourrait passé par dessus ClassBox
		$("object").css("visibility","hidden");
		// On créé les div :
		$("body").append("<div id='classbox'><div id='classboxaplat'></div><div id='classboxconteneur'><div id='classboxcontenu'></div></div></div>");
		$("#classboxcontenu").css("width",lbox);
		$("#classboxcontenu").css("padding",bordureh+"px "+bordurev+"px 0px "+bordurev+"px");
		$("#classboxcontenu").css("height",hbox);
		$("#classboxconteneur").css("top",getScrollY()+75);
		// L'espace accueillant les info et le bouton fermer
		$("#classboxconteneur").append("<div id='classboxinfo'><div id='classboxfermer'></div></div>"); // On place le titre et la description		
		$("#classboxinfo").css("padding","0px "+bordurev+"px "+bordureh+"px "+bordureh+"px");
		$("#classboxinfo").hide();
		$("#classboxinfo").css("opacity",0);
		$("#classboxinfo").css("height",0);
		
		$("#classboxfermer").click( function(){ closeBox(); });
		$("#classboxfermer").css("right",bordurev);
		// Hop on anim l'aplat
		$("#classboxaplat").css("background",couleur);
		$("#classboxaplat").css("opacity",0);
		$("#classboxaplat").animate({opacity: opacite}, 250 );
		$("#classboxaplat").click( function(){ closeBox(); });
		codeBox(titre,lien,longueur,hauteur);  // On génère le code à insérer à partir du lien
}
/*
	FONCTION QUI ANIME ET QUI MET LE CONTENU
*/
function animBox(titre,boxcontent,longueur,hauteur){
		if($("#classboxloader").length ){$("#classboxloader").remove();} // Si il y a un loader on le supprime
		$("#classboxcontenu").animate({width: longueur}, duree/2 )
							 .animate({height: hauteur+bordurev}, duree/2 ,function(){
										$("#classboxinfo").prepend(titre);
										
										$("#classboxcontenu").prepend(boxcontent);
										if($("#classboxcontenu img").length){  $("#classboxcontenu img").css("opacity",0); $("#classboxcontenu img").animate({opacity: 1},500);   }
										$("#classboxinfo").css("width",longueur);
										$("#classboxinfo").show();
										$("#classboxinfo").animate({height: "22px", opacity:"1"},duree/2);
										lbox=longueur;
										hbox=hauteur;
									});
			
		
}
/*
	FONCTION QUI QUITTE CLASSBOX
*/
function closeBox(){
	// On supprime tout ce qui a été créé et on masque certains trucs pour ie qui comprend rien
	$("#classboxcontenu").empty();
	$("#classboxinfo").empty();
	$("#classboxcontenu").remove();
	$("#classboxinfo").remove();
	$("#classbox embed").remove();
	$("#classbox embed").css("visibility","hidden");
	$("#classbox embed").css("display","none");
	$("#classboxcontenu").hide(); 	$("#classboxinfo").hide();
	$("#classboxaplat").animate({opacity: 0.0}, 500 , function(){$("#classbox").remove(); $("embed").css("visibility","visible");	$("object").css("visibility","visible");} );
}
/*
	FONCTION QUI GENERE LE CODE
*/
function codeBox(titre,lien,longueur,hauteur){
		// mmh des expression régulière 
		// On vérifie le lien pour générer le code en fonction
		filtreImg=/(\.jpg)|(\.jpeg)|(\.bmp)|(\.gif)|(\.png)/i
		filtreMP3=/(\.mp3)/i
		filtreFLV=/(\.flv)/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
		if(filtreImg.test(lien)){
			img=new Image();
			img.src=lien;	
			$("#classboxcontenu").append("<div id='classboxloader'></div>");	
			timer = window.setInterval('charger("'+titre+'","'+lien+'")',100);
			return true;
		}

		else if(filtreMP3.test(lien)){
			largeur=300;
			hauteur=40;
			boxcontent='<object type="application/x-shockwave-flash" data="'+lecteurMP3+'?son='+lien+'" width="'+longueur+'" height="'+hauteur+'">';
			boxcontent+='<param name="movie" value="'+lecteurMP3+'?son='+lien+'" /></object>';;
		}		
		
		else if(filtreFLV.test(lien)){
			boxcontent='<embed src="'+lecteurFLV+'" width="'+longueur+'" height="'+hauteur+'" allowscriptaccess="always" allowfullscreen="true" flashvars="file='+lien+'&width='+longueur+'&height='+hauteur+'" />';
		}
		
		else if(filtreQuicktime.test(lien)){
			hauteur=hauteur+20;
			boxcontent='<embed src="'+lien+'" width="'+longueur+'" height="'+hauteur+'" controller="true" cache="true" autoplay="true"/>';
		}
		
		else if(filtreWMV.test(lien)){
			boxcontent='<embed src="'+lien+'" width="'+longueur+'" height="'+hauteur+'" controller="true" cache="true" autoplay="true"/>';
		}

		else if(filtreDailymotion.test(lien)){
			id=lien.split('_');
			id=id[0].split('/');
			id=id[id.length-1];
			boxcontent='<object width="'+longueur+'" height="'+hauteur+'"><param name="movie" value="http://www.dailymotion.com/swf/'+id+'&colors=background:FFFFFF;foreground:474747;special:00AAEB;&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:FFFFFF;foreground:474747;special:00AAEB;&related=0" type="application/x-shockwave-flash" width="'+longueur+'" height="'+hauteur+'" allowFullScreen="true" allowScriptAccess="always"></embed></object>';
		}
		
		
		else if(filtreVimeo.test(lien)){
			id=lien.split('/');
			id=id[3];
			boxcontent='<object width="'+longueur+'" height="'+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="'+longueur+'" height="'+hauteur+'"></embed></object>';
		}
		
		
		else if(filtreYoutube.test(lien)){
			id=lien.split('watch?v=');
			id=id[1].split('&');
			id=id[0];
			boxcontent='<object width="'+longueur+'" height="'+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="'+longueur+'" height="'+hauteur+'"></embed></object>';
		}
		
		
		else if(filtreKoreus.test(lien)){
			lien=lien.split('.html');
			lien=lien[0];
			boxcontent='<object type="application/x-shockwave-flash" data="'+lien+'" width="'+longueur+'" height="'+hauteur+'"><param name="movie" value="'+lien+'"><embed src="'+lien+'" type="application/x-shockwave-flash" width="'+longueur+'" height="'+hauteur+'"></embed></object>';
		}
		
		else if(filtreDeezer.test(lien)){
			largeur=300;
			hauteur=120;
			id=lien.split('/');
			id=id[id.length-1];
			boxcontent='<div class="deezer"><object width="220" height="55"><param name="movie" value="http://www.deezer.com/embedded/small-widget-v2.swf?idSong='+id+'&colorBackground=0x23150D&textColor1=0xFFFFFF&colorVolume=0xFF6600&autoplay=0"></param><embed src="http://www.deezer.com/embedded/small-widget-v2.swf?idSong='+id+'&colorBackground=0x23150D&textColor1=0xFFFFFF&colorVolume=0xFF6600&autoplay=0" type="application/x-shockwave-flash" width="220" height="55"></embed></object></div>';
		}
		
		else{
			boxcontent='<iframe src="'+lien+'" width="'+longueur+'" height="'+hauteur+'"></iframe>';
			titre=titre+' (<a href="'+(lien)+'" target="_blank">Ouvrir dans une nouvelle page</a>)';
		}	

		animBox(titre,boxcontent,longueur,hauteur);
}
/*
	FONCTION QUI RECUPERE A POSITION EN Y
*/
function getScrollY() {
  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;
}


/*
	GESTIONNAIRE D'EVENEMENT
*/
jQuery().ready(function(){	

// On  click sur un lien classbox...
$("a[rel^='classbox']").click(function(){
		taille=this.rel.split(' ');
		if((taille[1])&&(taille[2])){ longueur = parseInt(taille[1]); hauteur =  parseInt(taille[2]);}
		else{longueur=longueurDefaut; hauteur=hauteurDefaut;}
		classBox(this.title,this.href,longueur,hauteur);
		return false;
		});

});

