var loader = {
    showLoader: function(){
        $(document.body).prepend('<div id="loader">Loading...</div>');
    },
    hideLoader: function() {
        $('#loader').remove();
        //$('#loader').fadeOut(100, function(){$(this).remove()});
    },
    ajax: function(options) {
        loader.showLoader();
        if (options.complete == null) {
           options.complete = function(XMLHttpRequest, textStatus) {
                loader.hideLoader();
                Custom.init();
            };
        } else {
            cmp = options.complete;
            options.complete = function(XMLHttpRequest, textStatus) {
                loader.hideLoader();
                cmp(XMLHttpRequest, textStatus);
                Custom.init();
            };
        }
        
        $.ajax(options);
    },
    post: function(url, data, callback, type) {
        loader.showLoader();
        if(callback == null) {
            callback = function(dat, textStatus) {
                loader.hideLoader();
                Custom.init();
            };
        } else {
            cb = callback;
            callback = function(dat, textStatus) {
                loader.hideLoader();
                cb(dat, textStatus);
                Custom.init();
            };
        }
        $.post(url, data, callback, type);
    }
};