/*SETTINGS*/
var xajaxRequestUri="./ajax.php";
var xajaxDebug=false;
var xajaxStatusMessages=false;
var xajaxWaitCursor=false;
var xajaxDefinedGet=0;
var xajaxDefinedPost=1;
var xajaxLoaded=false;

function xajax_keepAlive(){return xajax.call("keepAlive", arguments, 1);}
function xajax_bootstrap(){return xajax.call("bootstrap", arguments, 1);}
function xajax_moduleGateway(){return xajax.call("moduleGateway", arguments, 1);}
function xajax_connectionGateway(){return xajax.call("connectionGateway", arguments, 1);}
function xajax_sectionGateway(){return xajax.call("sectionGateway", arguments, 1);}
function xajax_applicationGateway(){return xajax.call("applicationGateway", arguments, 1);}

function gatewayRegulator(){
	this.busy = false;
	this.userMode = false;
	this.indicator = null;
	this.iElm = 0;
	this.stat = 'off';
	
	lightCore.registerInit(this);
	this.initialize= function(){
		this.indicator = document.createElement('div');
		this.indicator.innerHTML = 'Venter p&aring; svar fra server...';
		this.indicator.className = 'indicator';
		this.indicator.style.display = 'none'
		this.indicator.style.position = 'absolute';
		this.indicator.style.left ='0px';
		this.indicator.style.top ='0px';
		document.body.appendChild(this.indicator);
	}
	
	this.turnOnIndicator = function(){
		if((this.stat == 'tryOn' || this.stat == 'off') && this.indicator && this.indicator.style.display=='none'){
			this.indicator.style.zIndex = lightCore.getZIndex();
			this.iElm++;
			setTimeout('gr.fadeIndicator('+this.iElm+')',2000);
			this.stat = 'tryOn';
		}
	}
	
	this.setBusy = function(b){
		this.busy = b;
	}
	
	this.isBusy = function(){
		return false;
		return this.busy && this.userMode;
	}

	this.turnOffIndicator = function(){
		to = new turnOff(this.indicator);
		elm = new fader(this.indicator);
		elm.fadeOut();
		elm.activateAfter(to);
		elm.start();
		this.stat = 'off';
	}
	
	this.fadeIndicator = function(id){
		if(id==this.iElm && this.stat=='tryOn' && this.indicator.style.display=='none'){
			this.indicator.style.display = 'block';
			var elm = new fader(this.indicator);
			elm.fadeIn();
			elm.start();
			this.stat = 'on';
		}
	}
}
var gr = new gatewayRegulator();


function applicationStub(){
	this.invokeMethod = function(){
		if(!gr.isBusy()){
			var args = new Array();
			for(var i = 1; i < arguments.length; i++){
				args[args.length] = arguments[i];
			}
			gr.setBusy(true);
			gr.turnOnIndicator();
			xajax_applicationGateway(arguments[0],args);
		}
	}
}
var as = new applicationStub();

function sectionStub(){
	this.invokeMethod = function(){
		if(!gr.isBusy()){
			var args = new Array();
			for(var i = 2; i < arguments.length; i++){
				args[args.length] = arguments[i];
			}
			gr.setBusy(true);
			gr.turnOnIndicator();
			xajax_sectionGateway(arguments[0],arguments[1],args);
		}
	}
}
var ss = new sectionStub();

function connectionStub(){
	this.invokeMethod = function(){

		if(!gr.isBusy()){
			var args = new Array();
			for(var i = 2; i < arguments.length; i++){
				args[args.length] = arguments[i];
			}
			gr.setBusy(true);
			gr.turnOnIndicator();
			xajax_connectionGateway(arguments[0],arguments[1],args);
		}
	}
}
var cs = new connectionStub();

function moduleStub(){
	this.invokeMethod = function(){
		if(!gr.isBusy()){
			var args = new Array();
			for(var i = 3; i < arguments.length; i++){
				args[args.length] = arguments[i];
			}
			gr.setBusy(true);
			gr.turnOnIndicator();
			xajax_moduleGateway(arguments[0],arguments[1],arguments[2],args);
		}
	}
}
var ms = new moduleStub();