/*******************************
 * Fonctions js d'ouverture de popups "full javascript"
 * 
 * Nécéssite :
 *  - jquery.js
 */
var Popups = function() {
	
	/** Vrai si une popup est actuellement affichée */
	var ouvert = false;
	
	/**
	 * 
	 * @param string source dsd
	 */
	var ouvrirPopup = function(idSource, idPopup) {
		if (ouvert) return;
		ouvert = true;
		
		//Réinitialisation du fond (Evite certains bugs "étranges")
		$('<div id="fondPopup" class="fondPopup">&nbsp;</div>').replaceAll($('#fondPopup'));
		
		//Eléments manipulés
		var fond = $('#fondPopup');
		var popup = $('#' + idPopup);
		
		//Positionnement
		var top;
		var left;
		if (idSource) {
			var source = $('#' + idSource);
			var offset = source.offset();
			popup.css({top: '', left: ''}); //For IE 
			top = offset.top + source.height() + $(window).scrollTop();
			left = offset.left;
			
		} else {
			var windowWidth = document.documentElement.clientWidth;  
			var windowHeight = document.documentElement.clientHeight;  
			var popupHeight = popup.height();  
			var popupWidth  = popup.width();  
			top = windowHeight / 2 - popupHeight / 2;  
			left = windowWidth / 2 - popupWidth / 2;
		}
		popup.offset({top: top, left: left});
		
		//Affichage
		fond.css('opacity', '0');
		fond.css('z-index', 1);
		popup.css('z-index', 2);
		
		fond.show();
		popup.fadeIn(100);

		//Correctif de positionnement pour IE 7 et moins
		if (/MSIE/.test(navigator.userAgent)) {
			popup.offset({top: top, left: left});
		}
		
		//Evènnements
		fond.click(function() {
			fermerPopup(idPopup);
		});
		$(document).keypress(function(e){  
			fermerPopup(idPopup);
		});
	};
	
	var fermerPopup = function(idPopup) {
		if (!ouvert) return;
		ouvert = false;
		
		var fond = $('#fondPopup');
		var popup = $('#' + idPopup);
		
		fond.hide();
		popup.fadeOut(100);
	};
	
	return {
		ouvrirPopup: ouvrirPopup,
		fermerPopup: fermerPopup
	};
}();