/**
 * jQuery Popups plugin
 *
 * Copyright (c) 2011 Oscar Antonio Gonzalez de Chaves Perez (oscarantonio.es)
 *
 */

(function($) {
    $.fn.extend({
        popups: function(options) {
        	//Defaults are below
			var settings = $.extend({}, $.fn.popups.defaults, options);
			
       		function show_popup(popup, alpha, rgb) {
        		if(!$("div#popup_bg").length) {
					$("body").prepend("<div id='popup_bg'></div>");
					body_height = $("body").height();
					$("div.popup_bg").height(body_height);
				}
				
				css = {
					"background" : settings.background,
					"-moz-opacity" : (settings.alpha/10),
					"opacity" :  (settings.alpha/100),
					"filter" : "alpha(opacity="+settings.alpha+")"
				}
					
				$("#popup_bg").css(css).show();
					
				popup = popup.attr("id");	
				popup = popup.substr(2);
				div_popup = popup+"_wrapper";
				popup_aux = "#"+popup;
				popup = $(popup_aux);
				
				//
				$(popup_aux).remove();
				popup_template = "<div class='p' id='"+div_popup+"'><a href='#' title='Close' class='close_corner a_close' /><div class='p_t'><div class='p_t_l'></div><div class='p_t_r'></div></div><div class='p_m'><div class='p_m_l'><div class='p_m_r'><div class='p_m_c'></div></div></div></div><div class='p_b'><div class='p_b_l'></div><div class='p_b_r'></div></div></div>";
				$("body").prepend(popup_template);
				$("div.p_m_c").prepend(popup);
				//
				
				div_popup = "#"+div_popup;
				popup = $(div_popup);
				popup.find(".d_popup").show();
				
				css = {
					"position" : "fixed",
					"top" : "20%",
					"left" : "50%"
				}
				
				popup.css(css);
				
				width_aux = popup.width() - (2*$("div.p_t, div.p_b").height());
				$("div.p_t, div.p_b").width(width_aux);
				popup = $(div_popup);
				width = popup.width();
							
				margin_left = 0-(parseInt(parseInt(width)/2));				
				popup.css({ "margin-left" : margin_left });
				
				popup.show();				
			}
        
        	function close_popups() {
        		p = $("div.p_m_c").html();
        		
        		popup = $(".p");
				popup.hide();
				popup.remove();
				
				if($("div#popup_bg").length)	
					$("#popup_bg").hide();
					
				$("body").prepend(p);
				$("div.d_popup").hide();				
        	}
        	
        	$(".p a.a_close").live("click", function(e) { e.preventDefault(); close_popups(); });
        	
        	$(document).keyup(function(e) {
				if (e.keyCode == 27) { close_popups(); } // ESC
			});
        
        	return this.each(function() {   	
        		popup_aux = "#"+$(this).attr("id");
	        	popup = $(popup_aux);

	        	$("#a_"+popup.attr("id")).live("click", function(e) {
    	    		e.preventDefault();
        			show_popup($(this));
        		});
			});
        }
    });
    
    //Default settings
	$.fn.popups.defaults = {
		background : '#000000',
		alpha : 80
	};
})(jQuery);
