/*
Exemple
jQuery("#myLien").click(function(){
	jQuery("body").popup({
		background:{
			id:'bgpopup',
			css:{'background':'red'},
			removeOnClick:true
		},
		popup:{
			id:'mypopup',
			css:{'background':'url(mon_image.jpg)','width':'500px', 'height':'375px'},
                        removeOnClick:{0:'#firstId', 1:'#secondId'}
		},
		ajax:'page.php',
		data:'',
		content:'',
                callback:'myFunction()'
	});
});

*/

(function($) {
    $.fn.popup = function(options){
	
        // valeur par defaut
        var heightScreen = $(this).outerHeight();
        var widthScreen = $(this).outerWidth();
        var defaults = {
            background: 	{
                id:'bg-popup',
                css:{
                    'background':'#000',
                    'opacity':'0.5',
                    'z-index':'99999',
                    'position':'absolute',
                    'overflow':'hidden'
                    
                },
                removeOnClick:true
            },
            popup: 			{
                id:'popup',
                css:{
                    'width':'432px',
                    'height':'260px',
                    'z-index':'99999',
                    'position':'absolute'
                }
            }
        };
	
        // fusion des 2 tableaux, avec true en premier param => fusion recursive
        options = $.extend(true, defaults, options);
		
        // calcul pour centrer la popup
        options.background.css.height = document.height;
        options.background.css.width = '100%';
        options.background.css.top = '0';
        options.background.css.left = '0';
        options.popup.css.top = (($(window).height()/2) - (parseInt(options.popup.css.height)/2)) + $(window).scrollTop();
        options.popup.css.left = (widthScreen/2) - (parseInt(options.popup.css.width)/2);
		
        // creation des div
        var myBg = $("<div></div>").hide().attr("id", options.background.id).css(options.background.css).appendTo(this);
        var myPopup = $("<div></div>").hide().attr("id", options.popup.id).css(options.popup.css).appendTo(this);

        // si requete AJAX pour charger contenu popup
        if(options.ajax){
            if(!options.data) options.data = '';
            $.ajax({
                type: "POST",
                url: options.ajax,
                data: options.data,
                success: function(html){
                    myPopup.html(html);
                    popupClickRemove();
                    if(options.callback){
                        eval(options.callback);
                    }
                }
            });
        }
		
        // si contenu a charger dans la popup
        if (options.content) {
            myPopup.html(options.content);
            popupClickRemove();
            if(options.callback){
                eval(options.callback);
            }
        }
		
        // bind evenement click
        if(options.background.removeOnClick){
            myBg.click(function(event){
                removePopup();
            });
        }
		
        // affichage des div
        $("select").css('visibility', 'hidden');
        myBg.show();
        myPopup.fadeIn();
        
        // fonction pour parcourir tableau des id pr fermer popup
        function popupClickRemove(){
            if(options.popup.removeOnClick){
                $.each(options.popup.removeOnClick, function(key, value){
                    $(value).css("cursor", "pointer").click(function(event){
                        removePopup();
                    });
                });
            }
        }
		
        // fonction suppression div
        function removePopup(){
            myPopup.fadeOut(function(){
                myPopup.remove();
                myBg.remove();
                $("select").css('visibility', 'visible');
            });
        }
    };

})(jQuery);
