|
var namespace = (function() {
|
|
var namespace = function(nsString, callback) {
|
|
var nsParts = nsString.split(namespace.namespaceDelimiter);
|
|
|
|
var ns = namespace.root;
|
|
|
|
var len = nsParts.length;
|
|
for(var i=0; i<len; ++i)
|
|
{
|
|
if( !ns[nsParts[i]] )
|
|
ns[nsParts[i]] = {__namespaceAutoCreated: true};
|
|
|
|
ns = ns[nsParts[i]];
|
|
}
|
|
|
|
if( callback )
|
|
{
|
|
var nsExt = callback.call(ns, ns);
|
|
|
|
if( nsExt )
|
|
{
|
|
if( !ns )
|
|
ns = {};
|
|
|
|
for(var key in nsExt)
|
|
ns[key] = nsExt[key];
|
|
}
|
|
|
|
ns.__namespaceAutoCreated = false;
|
|
}
|
|
else if( namespace.loadNamespace && ns.__namespaceAutoCreated )
|
|
{
|
|
var url;
|
|
|
|
var len = namespace.namespaceLocations.length;
|
|
for(var i=0; i<len; ++i)
|
|
{
|
|
var entry = namespace.namespaceLocations[i];
|
|
if( nsString.indexOf(entry.namespace) === 0 )
|
|
{
|
|
url = entry.location;
|
|
break;
|
|
}
|
|
}
|
|
|
|
url += "/"+ nsString +".js";
|
|
|
|
jQuery.ajax({
|
|
url: url,
|
|
async: false,
|
|
dataType: "text",
|
|
success: function(res) {
|
|
eval(res);
|
|
/*
|
|
var script = window.document.createElement("script");
|
|
script.type = "text/javascript";
|
|
script.text = res;
|
|
window.document.body.appendChild(script);
|
|
*/
|
|
},
|
|
error: function(xhr, textStatus, errorThrown) {
|
|
alert(textStatus +": "+ errorThrown);
|
|
},
|
|
});
|
|
}
|
|
|
|
return ns;
|
|
};
|
|
|
|
return namespace;
|
|
})();
|
|
|
|
window.namespaceRoot = {};
|
|
namespace.root = window.namespaceRoot;
|
|
namespace.namespaceDelimiter = ".";
|
|
namespace.namespaceLocations = [{namespace: "", location: "js"}];
|
|
namespace.loadNamespace = true;
|