/* PressTIC 2006 Nawer */

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

/**************** 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.getElementsByName_iefix = function(tag, name) {
	    
	     var elem = document.getElementsByTagName(tag);
	     var arr = new Array();
	     for(i = 0,iarr = 0; i < elem.length; i++) {
	          att = elem[i].getAttribute("name");
	          if(att == name) {
	               arr[iarr] = elem[i];
	               iarr++;
	          }
	     }
	     return arr;
	}
	
	sys.API.getwinheight = function() {
	 	var winheight = 500;
		  if (!(winheight = window.innerHeight)) {
		    if (!(winheight = document.documentElement.clientHeight)) {
		      winheight = document.body.clientHeight;
		    }
		  }
		  return winheight;
	}
	
	sys.API.getclientwinheight = function() {
	 	var winheight = 500;
		    if (!(winheight = document.getElementById('ratbody').clientHeight)) {
		       return Signin.getwinheight();
		    }
		  return winheight;
	}
	
	sys.API.getwinwidth = function() {
	 	var winwidth = 500;
		  if (!(winwidth = window.innerWidth)) {
		    if (!(winwidth = document.documentElement.clientWidth)) {
		      winwidth = document.body.clientWidth;
		    }
		  }
		  return winwidth;
	}
	
	sys.API.getwinscrolltop = function() {
	 	var winscroll = 0;
		  if (!(winscroll = window.scrollTop)) {
		    if (!(winscroll = document.documentElement.scrollTop)) {
		      winscroll = document.body.scrollTop;
		    }
		  }
		  return winscroll;
	}
	
	sys.API.HideElement = function(elt){
	 	elt.style.visibility = 'hidden';
		elt.style.display = 'none';
		elt.style.height = '1px';
	}
	
	sys.API.ShowElement = function(elt){
	 	elt.style.visibility = 'visible';
		elt.style.display = 'block';
		elt.style.height = '';
	}
	
	sys.API.HideElementLite = function(elt){
	 	elt.style.visibility = 'hidden';
		elt.style.display = 'none';
	}
	
	sys.API.ShowElementLite = function(elt){
	 	elt.style.visibility = 'visible';
		elt.style.display = 'block';
	}
	
	sys.API.getLeft = function(classname){
	 	divbloc = document.getElementById(classname);
		var limitleft=0;
		if(divbloc.offsetParent) {
			do {
				limitleft += divbloc.offsetLeft;
			} while(divbloc = divbloc.offsetParent)
		}
		return limitleft;
		
	}
	
	sys.API.ShowHideElement = function(elt){
	 	if(elt.getAttribute('visible') == 0){
	 //	 alert(navigator.appName);
		 	elt.style.visibility = 'visible';
			elt.style.display = 'block';
			if(navigator.appName == 'Netscape')
				elt.style.height = '';
			else{
				elt.style.height = elt.offsetHeight + "px";
			}
		    elt.style.overflow = 'visible';
			elt.setAttribute('visible',1);
		}
		else{
		 	elt.style.visibility = 'hidden';
			elt.style.display = 'none';
			elt.style.height = '1px';
			elt.style.overflow = 'hidden';
			elt.setAttribute('visible',0);
		}
	}
	
	sys.API.ShowHideLite = function(elt){
	 	if(elt.getAttribute('visible') == 0){
			elt.style.display = 'block';
			elt.setAttribute('visible',1);
		}
		else{
			elt.style.display = 'none';
			elt.setAttribute('visible',0);
		}
	}
	
	sys.API.ShowHideLite2 = function(elt){
	 	if(elt.getAttribute('visible') == 0){
			elt.style.display = 'block';
			elt.style.visibility = 'visible';
			elt.setAttribute('visible',1);
		}
		else{
			elt.style.display = 'none';
			elt.style.visibility = 'hidden';
			elt.setAttribute('visible',0);
		}
	}
	
	sys.API.ShowHideClass = function(tagtype,cname){
	 	var tables = document.getElementsByTagName(tagtype);
	 	for(var i=0 ; i < tables.length ; i++ ){
	 	 	if(tables[i].className==cname){
	 	 	 	elt = tables[i];
			 	if(elt.getAttribute('visible') == 0){
				 	elt.style.visibility = 'visible';
					elt.style.display = 'block';
					elt.style.height = '';
					elt.setAttribute('visible',1);
				}
				else{
				 	elt.style.visibility = 'hidden';
					elt.style.display = 'none';
					elt.style.height = '1px';
					elt.setAttribute('visible',0);
				}
			}
		}
	}
