Project Re: Brief

/**
 * Application Architecture
 *
 * @author Darcy Clarke
 * @version 1.0
 *
 * @param {Object} window, undefined
 *
 */
 
(function(window, document, undefined){
 
    /*************************************************************/
    /* Defaults
    /*************************************************************/
 
    var App = window.App = {
        utils           : {},
        subscriptions   : {},
        cache           : {}
    };
 
    /*************************************************************/
    /* Methods
    /*************************************************************/
 
    /**
     * Publishes event with arguments
     *
     * @param {String} topic
     */
    App.utils.publish = function(topic, args){
        App.subscriptions[topic] && jQuery.each(App.subscriptions[topic], function(){
            this.apply(App, args || []);