/* PressTIC 2006 Nawer */

sys.version = '0.01';
sys.name = 'PressTicOs';
sys.startup = '';
sys.mainf = '';

	sys.LaunchPressTICOs = function() {
		sys.mainf = document.getElementById('system');
//		sys.mainf.innerHTML = 'We are proceeding with a major update. Please come back in a few minutes. ';
		sys.mainf.innerHTML = 'Starting Os...';
	//	alert('stop50');
		Osuser.loadConf();
	//	alert('stop60');
		switch(sys.startpage){
			case 'matoumba' : 
								if(mat)mat.LaunchMatoumba();	break;
			default : 		 mat.LaunchMatoumba();	
		
		}
	}

/**************** Web request Drivers ****************/
/* Help from http://xulfr.org/wiki/ApplisWeb/Request */

sys.Net = new Object();
sys.Net.data = '';

	sys.Net.SynchRequest = function(url, params, method){
		sys.Net.data = '';
		if (window.XMLHttpRequest){
			req = new XMLHttpRequest();
		}
		else if (window.ActiveXObject) 
			req = new ActiveXObject('Microsoft.XMLHTTP');
		
		switch(method){
			case 'GET' : req.open('GET', url+params, false);
						 req.send(null);
						 break;
			case 'POST' : req.open('POST', url, false);
						  req.setRequestHeader("Content-type","application/x-www-form-urlencoded");
						  req.setRequestHeader("Accept-Encoding", "gzip, deflate");
						  req.send(params);
						  break;
			default : alert('Private function');
		}		
		if ( req.status < 400 ) {
		  sys.Net.data = req.responseText;
		}
		else{
			alert('Error loading page '.url);
			sys.Net.data = '';
		}
    }    
    
	sys.Net.Request = function(url, params, method, displayfunc, retall){
		var req;
		if (window.XMLHttpRequest){
		//	user_pref("signed.applets.codebase_principal_support", true);
		//	netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
		//	netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
			req = new XMLHttpRequest();
		//	netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect UniversalBrowserAccess');
		}
		else if (window.ActiveXObject) 
			req = new ActiveXObject('Microsoft.XMLHTTP');
		// callback function for asynch process
	  	req.onreadystatechange = function (aEvt) {
		    if (req.readyState == 4) {
				if(req.status < 400){
				    if(retall){
				    	displayfunc(sys.Net.GetXML(req));
				    }
				    else
		        		displayfunc(req.responseText);
		        }
				else
					alert('Error loading page '.url);
			}
		}
		switch(method){
			case 'GET' : req.open('GET', url+params, true);
						 req.send(null);
						 break;
			case 'POST' : req.open('POST', url, true);
						  req.setRequestHeader("Content-type","application/x-www-form-urlencoded");
						  req.send(params);
						  break;
			case 'BINPOST' : req.open('POST', url, true);
						  req.setRequestHeader("Content-type","multipart/form-data");
						  req.send(params);
						  break;
			default : alert('Private function');
		}
	}
	
	sys.Net.GetXML = function(req){
	    var curxml;
		if (window.ActiveXObject){
			var xmldoc=new ActiveXObject("Microsoft.XMLDOM");
			xmldoc.loadXML(req.responseText);
			curxml=xmldoc; 
	    }
	    else{
	      	
			curxml=new DOMParser().parseFromString(req.responseText,"text/xml");
	    }
	    var tmp = new Object();
	    tmp.status = req.status;
	    tmp.responseText = req.responseText;
	    tmp.responseXML = curxml;
		return tmp;
	}
	
	sys.Net.ReqGET = function(url, params, displayfunc){
	  	sys.Net.Request(url, params, 'GET', displayfunc);
	}
	
	sys.Net.ReqGETEmul = function(url, params, displayfunc){
	  	sys.Net.Request(url, params, 'GET', displayfunc,true);
	}

	sys.Net.ReqPOST = function(url, params, displayfunc){
	  	sys.Net.Request(url, params, 'POST', displayfunc);
	}
	
	sys.Net.ReqSynchGET = function(url, params){
	  	sys.Net.SynchRequest(url, params, 'GET');
	}

	sys.Net.ReqSynchPOST = function(url, params){
	  	sys.Net.SynchRequest(url, params, 'POST');
	}
	
	sys.Net.getBrowser = function(){
	  
	}

/**************** Function API *******************/
sys.API = new Object();

	sys.API.getElementByClass = function(parent, classname){
	    if(!parent)return null;
		for(var i = 0; i< parent.childNodes.length;i++){
			if(parent.childNodes[i].className == classname)
				return parent.childNodes[i];
		}
	}
	
	sys.API.getFarElementByClass = function(parent, classname){
	    if(!parent)return null;
		if(parent.className == classname) return parent;
		
		for(var i = 0; i< parent.childNodes.length;i++){
			var obj = sys.API.getFarElementByClass(parent.childNodes[i],classname);
			if (obj != null) return obj;
		}
		return null;
		
	}
	
	sys.API.loadScript = function(scriptname){
		alert("tention...");
		var params = 'mode=geturlproxy';
		params +='&url='+escape(scriptname)
		sys.Net.ReqSynchGET('pressticos.php?',params);
		//alert(sys.Net.data);
		eval(sys.Net.data);
		
	}