(function($) {
    $.loader = function(options){
        var defaults = {
            maskSelector: "#mask"
        };
        var opts = $.extend(defaults, options);
        function show_ajax_loader(){
            var windowHeight = $(window).height();
            var windowWidth = $(window).width();
            var ajax_loader = $("#ajax-loader");
            ajax_loader.css({"left":windowWidth/2-100, "top":windowHeight/2, "display":"block"});
            var maskHeight = $(document).height();
            var maskWidth = $(window).width();
            //Set height and width to mask to fill up the whole screen
            $(opts.maskSelector).css({"width":maskWidth,"height":maskHeight});
            //transition effect
            $(opts.maskSelector).fadeIn({
                duration: 700,
                easting: "easInCirc"               
            });
        }
        
        function hide_ajax_loader(){
            var ajax_loader = $("#ajax-loader");
            ajax_loader.css({"display":"none"});
            $(opts.maskSelector).fadeOut(500);
        }
        
        return {
            "show_ajax_loader" : function(){
                show_ajax_loader();
            },
            "hide_ajax_loader" : function(){
                hide_ajax_loader();
            }
        };
    };
})(jQuery);