/**
* Portalbuilder base namespace and types.
* @author msalla
* @requires jquery
* @requires jquery.hotkeys
* @requires jquery.url
* @requires jquery.json
* @namespace Pb
*/
var Pb = Pb ||
{};

(function() {
    if (window.jQuery) {
        (function($) {
            /**
            * Portalbuilder Pb.Utils namespace and functions.
            * @author msalla
            * @namespace Pb.Utils
            */
            var TPb = function() {
                /**
                * Basic system functions and constants.
                * @namespace Pb.System
                */
                function System() {
                    /**
                    * @namespace Pb.System.Guid
                    */
                    function Guid() {
                    }
                    Guid.prototype = {
                        Empty: '00000000-0000-0000-0000-000000000000'
                    };
                    return {
                        Guid: new Guid()
                    };
                }

                /*
                * Here we return an object where we publish the classes we want as an
                * object property using OLN.
                * We are publishing the internal BackOffice class as a namespace field also
                * called BackOffice.
                */
                return {
                    // Here we publish the class as an only instance
                    System: new System()
                };
            } ();
            $.extend(Pb, TPb);

            $.pbSystem = Pb.System;

            //var extensions = {
            //};

            //$.each( extensions, function( i )
            //{
            //	$.fn[i] = this;
            //});
        })(window.jQuery);
    }
})();
