var sFullUrl = 'http://dev.picms.lc';
var sExecuteActionUrl = sFullUrl + '/ajax/exec/';

var CCore = function ()
{
	this.sFullUrl          = 'http://dev.picms.lc';
	
	this.sExecuteActionUrl = this.sFullUrl + '/ajax/exec/';
	
	this.aPathway = new Array(100);
	
	this.sCurrentUrl = new String();
	
	this.aCurrentUrl = new Array();
	
	this.aHistory = new Array();
	
	this.sMainDivId  = new String('MainContentDiv');
	
	this.inspectUrl = function ()
	{
		if (document.location.hash.indexOf('#/') == 0) {
			document.location.hash = document.location.hash.substr(2);
		}
		
		var sNewUrl = new String(document.location.hash).replace('#', '');
		
		if (this.sCurrentUrl != sNewUrl) {
			if (sNewUrl.length > 0) { 
				this.sCurrentUrl = sNewUrl;
				
				this.aCurrentUrl = this.sCurrentUrl.split('/');
				// ...
				if (this.aCurrentUrl.length >= 3) { 
					var sModule = this.aCurrentUrl[0];
					var sModel  = this.aCurrentUrl[1];
					var sAction = this.aCurrentUrl[2];
					var aParams = this.aCurrentUrl;
					aParams.splice(0, 3);
					
					var aRequest = new Object;
					var n = 0;
					var aTempReq = new Array();
					for(n = 0; n < aParams.length; n++) {
						aTempReq = aParams[n].split('=');
						aRequest[aTempReq[0]] = aTempReq[1];
					}
					
					aRequest['_Module'] = sModule;
					aRequest['_Model']  = sModel;
					aRequest['_Action'] = sAction;
					
					
					Rx.showAjaxLoader();
					Rx.ajax({
						Url: sExecuteActionUrl,
						Params: aRequest,
						OnReady: function (result, errors) 
						{
							$$('MainContentDiv').innerHTML = '';
							var oBox = document.createElement('DIV');
							oBox.innerHTML = result['html'];
							$$('MainContentDiv').appendChild(oBox);
							Rx.hideAjaxLoader();
						}
						
					});
				}
			} else {
				$$(Core.sMainDivId).innerHTML = '';
			}
		}
	};
	
	this.exec = function (sModule, sModel, sAction, aParams, sTarget)
	{
		var oRequest = aParams;
		oRequest['_Module'] = sModule;
		oRequest['_Model']  = sModel;
		oRequest['_Action'] = sAction;
		JsHttpRequest.query(
			this.sExecuteActionUrl, oRequest,		
			function(result, errors) {
			//	$$(sTarget).innerHTML = errors;
				$$(sTarget).innerHTML = '';
				var oBox = document.createElement('DIV');
				oBox.innerHTML = result['html'];
				$$(sTarget).appendChild(oBox);
			}, 
			true
		);
		
	};
	
	this.execGlobal = function (sModule, sModel, sAction, aParams, sRedirect)
	{
		this.addToHistory(sModule, sModel, sAction, aParams);
		this.exec(sModule, sModel, sAction, aParams, Core.sMainDivId);
	};
	
	this.addToHistory = function (sModule, sModel, sAction, aParams)
	{
		this.aHistory[this.aHistory.length] = {
			'Module': sModule,
			'Model' : sModel,
			'Action': sAction,
			'Params': aParams
		};
		
		return true;
	};
};
