/*********** popin                     ***********************************************/
/*********** Version 1.0               ***********************************************/
/*********** Author Yoann Phung Van    ***********************************************/
/*********** Ouverture d'une popin     ***********************************************/
/*
Exemple d'utilisation sur tous les liens contenant la classe popin-open
$(document).ready(function(){
		$("a.popin-open").popin({
			width:250,
			height:160,
			loaderImg : '/img/register/ajax-loader.gif',
			opacity: .5
		});
});*/

ie6=$.browser.msie&&($.browser.version == "6.0")&&!window.XMLHttpRequest;
ie7 = $.browser.msie&&($.browser.version == "7.0");

jQuery.fn.popin = function(o,url) {
	
	// Parametre par defaut
	var settings = jQuery.extend({
		width : 250,
		height : 160,
		loaderImg: "/img/common/ajax-loader-b-tr.gif",
		opacity: .5,
        top: '',
		url : "#",
		titre: '',
		texte: '',
		timeout: '',
		close:false,
		reload: false,
		reloadInClose: false,
		urlRedirect: '',
        callback: '',
        youtube_id: ''
	}, o);
	
	if(settings.close){
		closePopin();
		return;
	}
	
	// Cas oů le parametre url est passe
	if(settings.url != "#"){
		closePopin();
		openPopin(settings.url);
	} else if (settings.titre != '') {
		closePopin();
		openPopin();
	} else {
		closePopin();
		// action executee sur tous les liens definis par le selecteur
		jQuery(this).each(function() {
			jQuery(this).click(function() {
				openPopin($(this).attr("href"));
				return false;
			});
		});
	}
	
	function openPopin(url_redirect) {
	  
		// Prechargement de l'image du loader
		var Loader = new Image();
		Loader.src = settings.loaderImg;

		var docHeight = $(document).height();	
		var takecareHeight = $("#TakeCareCenter").height();
		var takecareWidth = $("#TakeCareCenter").width();		
		var scroll_top = (window.pageYOffset!=undefined)?window.pageYOffset:document.body.scrollTop;
		
		// Creation des div et rattachement au body
		var bg_popin = document.createElement('div');
		bg_popin.setAttribute('id','bg_popin');
		var popin = document.createElement('div');
		popin.setAttribute('id','popin');
		var loaderpopin = document.createElement('div');
		loaderpopin.setAttribute('id','loaderpopin');
		document.body.appendChild(bg_popin);
		document.body.appendChild(loaderpopin);
		document.body.appendChild(popin);
		
		// Definition des styles du background
		$('#bg_popin').css({'position': 'absolute','width' : takecareWidth+'px','height': (takecareHeight-130)+'px','opacity':'0'});
		$("#bg_popin").animate({opacity:settings.opacity}, 350);

		var bgPosition = $("#bg_popin").position();
		var bgHeight = $("#bg_popin").height();
		var bgWidth = $("#bg_popin").width();
		
		// Definition des styles du loader
		$('#loaderpopin').css({'top' : bgPosition.top+(bgHeight/2)+'px','left' : '50%','margin-left':'-'+(Loader.width/2)+'px','margin-top':'-'+(Loader.height/2)+'px'}).css("background-image", "url('"+settings.loaderImg+"')");
		$('#loaderpopin').css("background-repeat","no-repeat");
		
		// Appel ajax
		if(settings.titre != '' && settings.texte != ''){
			// Affichage de la popin
			$("#loaderpopin").css("background-image", "");
			popin.innerHTML = "<noxhtml><div id=\"modal-popin\"><div id=\"modal-top-bar\"><div class=\"modal-title\">"+settings.titre+"</div><a class=\"modal-close jqmClose\" href=\"#\" title=\"Chiudi\">X Chiudi</a></div><div class=\"modal-content\"><p>"+settings.texte+"</p></div><!-- /.modal-content --></div><!-- /#modal-signin --></noxhtml>"
			$('#popin').css({'width' : settings.width+'px','height' : settings.height+'px','margin-left':'-'+(settings.width/2)+'px','margin-top':'-'+(settings.height/2)+'px','opacity':'0'});
            if (settings.top != "") {
                if(ie6){
                    $.scrollTo('body');
                    $('#popin').css({'top' : settings.top,'margin-top' : '-'+(settings.height/2)+'px','position':'absolute'});
                    
                } else {
                    $('#popin').css({'top' : settings.top,'margin-top' : '-'+(settings.height/2)+'px','position':'fixed'});
                }
			}
			$("#popin").animate({opacity:1}, 300);
			if(settings.reloadInClose == true){
				$('#bg_popin, .jqmClose').click(function(){
					closePopin();
					location.reload();
					return false;
				});
			} else {
				$('#bg_popin, .jqmClose').click(function(){
					closePopin();
					return false;
				});
			}
			if (settings.timeout != "") {
				setTimeout("$(this).popin({close:true});",settings.timeout);
			} else if (settings.reload == true) {
				location.reload();
			} else if (settings.urlRedirect != "") {
				window.location.href = settings.urlRedirect;
			};
            if (settings.callback != "") {
				settings.callback.call();
			}			
		} else if(settings.youtube_id != ''){
            $("#loaderpopin").css("background-image", "");
            popin.innerHTML = '<noxhtml><div id=\"modal-popin\"><div id=\"modal-top-bar\"><div class=\"modal-title\" style="margin-top:-27px;">'+settings.titre+'</div><a class=\"modal-close jqmClose\" href=\"#\" title=\"Chiudi\" style="margin-top:-23px;">X Chiudi</a></div><div class=\"modal-content\" style="padding:0;background: #fff url(/img/common/ajax-loader-b-tr.gif) center center no-repeat"><object width="410" height="332"><param name="movie" value="http://www.youtube.com/v/'+settings.youtube_id+'&hl=it&fs=1&rel=0&color1=0x386b05&color2=0xcad934&autoplay=1&hd=1&amp;ap=%2526fmt%223D&amp;ap=%2526fmt%3D22"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/'+settings.youtube_id+'&hl=it&fs=1&rel=0&color1=0x386b05&color2=0xcad934&autoplay=1&hd=1&amp;ap=%2526fmt%223D&amp;ap=%2526fmt%3D22" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="410" height="332"></embed></object></div><!-- /.modal-content --></div><!-- /#modal-signin --></noxhtml>';
            $('#popin').css({'width' : settings.width+'px','height' : settings.height+'px','margin-left':'-'+(settings.width/2)+'px','margin-top':'-'+(settings.height/2)+'px','opacity':'0'});
            $("#popin").animate({opacity:1}, 300);
            $('#bg_popin, .jqmClose').click(function(){
                closePopin();
                return false;
            });
        }else {
			$.ajax({
				  url: url_redirect,
				  cache: false,
				  success: function(content){
					// Insertion du contenu HTML charge dans la div
					popin.innerHTML = content;
					// Ajout de la fonction fermer sur tout le background
					$('#bg_popin, .jqmClose').click(function(){
						closePopin();
						return false;
					});	
					// On masque le loader
					$("#loaderpopin").css("background-image", "");
					// Definition des styles de la fenętre d'identification
					$('#popin').css({'top' : (settings.top!=''? settings.top:(bgPosition.top +(bgHeight/2) - 20)) +'px','left' : '50%','opacity':'0'});	
					if(settings.height!="automatique"){
					    $('#popin').css({'height' : settings.height+'px','margin-top':'-'+(settings.height/2)+'px'});								
					}else{
					    $('#popin').css({'margin-top':'-'+($('#popin').height()/2)+'px'});	
					}
					if(settings.width!="automatique"){
					    $('#popin').css({'width' : settings.width+'px','margin-left':'-'+(settings.width/2)+'px'});
					}else{
						$('#popin').css({'margin-left':'-'+($('#popin').width()/2)+'px'});	
					}
					$("#popin").animate({opacity:1}, 300);
				  }			  
			});
		}
	}
	
	// Fermeture de la popin 
	function closePopin() {
		$("#popin").animate({opacity:0}, 100);
		$("#loaderpopin").remove();
		$('#bg_popin').remove();
		$('#popin').remove();
		//$("html, body").css("overflow", "auto");
	}
};