app = {

components: new Object(),

translations: new Object(),

loadPage: function(requestPath, withToken)
	{
	if (withToken == true)
		{
		document.getElementById('loadPage').action = app.absoluteUrl + app.baseUrl + requestPath;
		document.getElementById('loadPage').page_token.value = app.pageToken;
		document.getElementById('loadPage').submit();
		}
	else
		window.location = app.absoluteUrl + app.baseUrl + requestPath;
	},

loadJs: function(requestPath)
	{
	Ext.Msg.wait('Please wait', 'Loading...');

	var oScript = document.createElement("script");
	oScript.src = app.baseUrl + requestPath;
	document.body.appendChild(oScript);
	},

requireJs: function(requestPath, initAfterRequire)
	{
	Ext.Msg.wait('Please wait', 'Loading...');

	var requireScript = document.createElement("script");
	requireScript.src = app.absoluteUrl + app.jsScriptsPath + "/" + requestPath;

	if (Ext.isIE)
		{
		requireScript.onreadystatechange = function()
			{
			if (requireScript.readyState == 'loaded' || requireScript.readyState == 'complete')
				{
				if (!Ext.isEmpty(initAfterRequire)) initAfterRequire();

				app.initAfterRequireJs();
				}
			};
		}
	else
		{
		requireScript.onload = function()
			{
			if (!Ext.isEmpty(initAfterRequire)) initAfterRequire();
			
			app.initAfterRequireJs()
			};
		}
		
	document.body.appendChild(requireScript);
	},
	
init: function(){},

initAfterRequireJs: function(){},

getUrlHashParams: function()
	{
	var paramsArray = new Object();
	var url = "" + window.location;
	var paramsString = explode("#", url, 2);

	if ((paramsString.length == 2))
		{
		var params = explode("&", paramsString[1]);
		
		for (var i in params)
			{
			var param = explode("=", params[i], 2)
			
			if (param.length == 2)
				paramsArray[param[0]] = param[1];
			}
		}
		
	return paramsArray;
	}
}

