$.fn.extend({
	j_lightbox : function($content) {
		return this.each(function(){
			$(this).click(function(e){
				e.preventDefault();
				$.j_lightbox.ouvre($content) ;
			});
		});
	}
	
});

$.extend({

	j_lightbox :    {
	
		fadeSpeed : 0,

		classes : {
			cache : "j_lightbox_cache",
			wrapp : "j_lightbox_wrap",
			content : "j_lightbox_content",
			fermer :  "j_lightbox_fermer",
			valider : "j_lightbox_valider"
		},

		css : {

			content : {
				width : 700,
				margin: "0 auto",
				background: "#fff",
				textAlign: "left",
				padding: "10px"			
			},
			
			wrapp : {
				position: "absolute",
				left: 0,
				top: 0,
				width: "100%",
				textAlign: "center",
				zIndex:999
			},
			
			cache : {
				position: "absolute",
				left: 0,
				top:0,
				opacity : 0.7,
				background: "#888",
				zIndex:998
			},
			
			fermer : {
				background:"#A32828",
				color: "#FFFFFF",
				fontWeight: "bold",
				margin: "0 0.5em 0 0",
				padding: "0.5em 1em",
				textDecoration: "none"
			}
		},

		elements : {
			content : false,
			cache : false,
			wrapp : false,
			selects : false
		},
		
		initialized : false,
		
		initialize : function () {
			$("body").css({position: "relative"});
			$.j_lightbox.elements.cache = $("<div class=\""+$.j_lightbox.classes.cache+"\"></div>").hide().appendTo($("body")).css($.j_lightbox.css.cache);
			$.j_lightbox.elements.wrapp = $("<div class=\""+$.j_lightbox.classes.wrapp+"\"></div>").hide().appendTo($("body")).css($.j_lightbox.css.wrapp);
			$.j_lightbox.elements.content = $("<div class=\""+$.j_lightbox.classes.content+"\"></div>").appendTo($.j_lightbox.elements.wrapp).css($.j_lightbox.css.content) ;
			$.j_lightbox.initialized = true;
		},
		
		resizeCache : function() {
			var d = ___getPageInfo();
			var w = Math.max(d.pageW,$("body").width()) ;
			$.j_lightbox.elements.cache.width(w).height(d.pageH) ;		
		},
		
		resizeWrap : function() {
			var d = ___getPageInfo() ;
			$.j_lightbox.elements.wrapp.css({
				width:d.windowW,
				left:d.scrollX,
				top: d.scrollY + d.windowH/10
			}) ;		
		},
		
		ferme : function() {
			$.j_lightbox.elements.cache.hide();
			$.j_lightbox.elements.wrapp.hide();
			$.j_lightbox.elements.content.html("");
			if ((window.XMLHttpRequest == undefined) && (ActiveXObject != undefined)) {
				$.j_lightbox.elements.selects.css("visibility","visible") ;
			}
		},
		
		ouvre : function($content) {
			
			// Initialisation
			if($.j_lightbox.initialized==false) $.j_lightbox.initialize() ;
			$.j_lightbox.elements.content.prepend($content.show()) ;
			
			// Fermer la boîte
			$.j_lightbox.elements.content.find("."+$.j_lightbox.classes.fermer).show().css($.j_lightbox.css.fermer).click(function(e) {
				e.preventDefault(); 
				$.j_lightbox.ferme() ;
			}) ;
			
			// Correction ie 6 :
			if ((window.XMLHttpRequest == undefined) && (ActiveXObject != undefined)) {
				$.j_lightbox.elements.content.find("select").addClass("select_in_light_box_content") ;
				$.j_lightbox.elements.selects = $("select:visible:not(.select_in_light_box_content)").css("visibility","hidden") ;
			}

			// Dimensions de la boîte
			$.j_lightbox.resizeWrap() ;
			
			// Dimensions du cache
			$.j_lightbox.resizeCache()  ;
			
			// Affichage
			$.j_lightbox.elements.cache.add($.j_lightbox.elements.wrapp).fadeIn($.j_lightbox.fadeSpeed);
			
			// Dimensions du cache quand la fenêtre bouge
			$(window).resize(function() { $.j_lightbox.resizeCache()  ;});		
		}

	}
}) ;

