var NS = {};

NS = new function()
{	
	var packages = [];
	var extFiles = [];
	
	function _createNS(nsString)
	{
		if (!packages[nsString])
		{
			packages[nsString] = true;
			eval(nsString+" = {}");
			//eval("if(!"+nsString+") "+nsString+" = {}; else alert('error')");
		}
	}

	this.createNS = function(nsString)
	{
		var parts = nsString.split(".");
		var str = "";
		
		for (var i = 0; i < parts.length; i++)
		{
			if (i != 0)
				str += ".";

			str += parts[i];
			_createNS(str);			
		}
	}

	this.importFile = function(file,cb)
	{	
		if (extFiles[file])
		{
			if (cb)
				cb.call([file,false]);

			return;
		}
		
		var loadCb = new Callback(null,function(xmlObj)
		{
			if (xmlObj.readyState == XML_COMPLETE)
			{
				extFiles[file] = true;
				
				eval(xmlObj.responseText);
				if (cb)
					cb.call([file,true]);				
			}
		});

		getXml("GET",'/javascript/'+file,null,true,loadCb);
				
		/*var headEl = document.getElementsByTagName('head')[0];

		var scriptEl = document.createElement('script');
		scriptEl.setAttribute("type","text/javascript");
		scriptEl.setAttrbute("src",file);
	
		headEl.appendChild(scriptEl);
		
		alert(scriptEl);*/		
	}
}
