/*                                                                                                                                                      
Copyright (c) 2006, MAIL! Inc. All rights reserved.                                                                                                    
Code licensed under the BSD License:                                                                                                                    
http://developer.MAIL.net/yui/license.txt                                                                                                              
version: 0.10.0                                                                                                                                         
*/ 

/* Copyright (c) 2006 MAIL! Inc. All rights reserved. */

/**
 * The MAIL global namespace
 * @constructor
 */
var MAIL = window.MAIL || {};

/**
 * Returns the namespace specified and creates it if it doesn't exist
 *
 * MAIL.namespace("property.package");
 * MAIL.namespace("MAIL.property.package");
 *
 * Either of the above would create MAIL.property, then
 * MAIL.property.package
 *
 * @param  {String} sNameSpace String representation of the desired 
 *                             namespace
 * @return {Object}            A reference to the namespace object
 */
MAIL.namespace = function( sNameSpace ) {

    if (!sNameSpace || !sNameSpace.length) {
        return null;
    }

    var levels = sNameSpace.split(".");

    var currentNS = MAIL;

    // MAIL is implied, so it is ignored if it is included
    for (var i=(levels[0] == "MAIL") ? 1 : 0; i<levels.length; ++i) {
        currentNS[levels[i]] = currentNS[levels[i]] || {};
        currentNS = currentNS[levels[i]];
    }

    return currentNS;
};

/**
 * Global log method.
 */
MAIL.log = function(sMsg,sCategory) {
    if(MAIL.widget.Logger) {
        MAIL.widget.Logger.log(null, sMsg, sCategory);
    } else {
        return false;
    }
};

MAIL.namespace("util");
MAIL.namespace("widget");
MAIL.namespace("example");

