// Assume that jquery has already been referenced.

var PHOTO = function() {
    var ui = function() {
        var loaderId = 'loaderBlock';
        var loaderHtml = '<div id="' + loaderId + '"><img src="/img/static/loader.gif" alt="loading..."/></div>';
    
        var getLoader = function() {
            var loader = $('#' + loaderId);
            if (loader.length === 0) {
                $('body').append(loaderHtml);
            }
            return loader;
        };
        
        var setLoaderLayout = function(target) {
            target = $(target);
            var loader = getLoader();
            loader.height((target.height() + 8) + 'px');
            loader.width((target.width() + 8) + 'px');
            var l = target.offset().left - 4;
            var t = target.offset().top - 4;
            //loader.offset({ top: t, left: l });
            loader.css('top', t + 'px');
            loader.css('left', l + 'px');
            return loader;
        };
        
        return {
            displayLoader: function(target) {
                setLoaderLayout(target).show();
            },
            hideLoader: function() {
                var loader = getLoader();
                loader.fadeOut('fast');
            }
        };
    };
    
    var ajax = function() {
        var urls = {
            mainImages: '/home/home_pics'    
        };
        
        return {
            getMainImages: function(callback) {
                $.getJSON(urls.mainImages, null, function(data) {
                    callback(data);
                });
            }
        };
    };
    
    return {
        addlScripts: [],
        Util: {
            getFileName: function(fullFilePath) {
                    return fullFilePath.substr(fullFilePath.lastIndexOf('/') + 1);
                },
            printAjaxError: function(req, text, error) {
                document.write(req.responseText);
                }
            },
        
        UI: ui(),
        AJAX: ajax(),
        
        init: function() {
            var scripts = PHOTO.addlScripts;
            for (var i = 0; i < scripts.length; i++) {
                if (scripts[i].init !== undefined && typeof scripts[i].init === 'function') {
                    scripts[i].init();
                }
            }
        }
    };
}();

$(PHOTO.init);