Object Closure Pattern / Namespace

Object Closure Pattern / Namespace

by cjgaudin

JavaScript

var register = (function(register, $, Modernizr, undefined) {
    var dms = register.dms = register.dms || {},
        core = register.core = register.core || {};

    //---------------PUBLIC FUNCTIONS--------------------
    core.initPage = function() {
        $('#loadingContainer').ajaxStart(function() {
            showLoadingContainer();
        }).ajaxStop(function() {
            hideLoadingContainer();
        });
    };

    core.initHtml5Features = function(scriptUrl) {
        var cornerScript = scriptUrl + 'jquery.corner.js';
        Modernizr.load([{
            test: Modernizr.borderradius,
            nope: {
                'corner': cornerScript
            },
            callback: {
                'corner': function() {
                    $('#footer').corner('round bottom 5px');
                    $('#loadingContainer').corner('round 15px');
                }
            }}
        ]);
    };

    core.setActionButtons = function() {
        $('body').delegate('.button, .actionButton', 'click', function(e) {
            $('#loadingContainer').show();
        });
    };

    //----------------PRIVATE FUNCTIONS------------------


    function showLoadingContainer() {
        $('#loadingContainer').show();
    }

    function hideLoadingContainer() {
        $('#loadingContainer').hide();
    }

    //return out the register Module
    return register;
})(register || {}, jQuery, Modernizr);