//By Jesse
function JSGateway(){
	this.http = getHTTPObject();
	this.url = '';
	this.obj = '';
	this.method = 'PATH';
	this.output = false;
	var thisobj = this;
	this.load=function(url, obj){
		this.url = url;
		this.obj = obj;
		this.http.open('GET',this.buildurl(),true);
		this.http.onreadystatechange = function(){
			if(thisobj.http.readyState == 4){
				if(thisobj.output){
					thisobj.output.innerHTML = thisobj.http.responseText;
					thisobj.onLoad(thisobj.http.responseText);
				} else {
					thisobj.onLoad(thisobj.http.responseText);
				}
			}
		}
		this.http.send(null);
	}
	this.setMethod = function(method){
		this.method = method;
	}
	this.setOutput = function(output){
		this.output = document.getElementById(output);
	}
	this.buildurl = function(){
		this.obj.mode = 'jsgateway';
		var equal = '=';
		var separator = '&';
		var begin = '?';
		if(this.method == 'PATH') separator = equal = begin = '/';
		var url = this.url + begin;
		for(var i in this.obj){
			url += i + equal + this.obj[i] + separator;
		}
		return(url);
	}
	this.csv2array = function(txt){
			var tmp = txt.split('\r\n');
			var a = new Array();
			for(var i = 0;i<tmp.length;i++){
				var tmp2 = tmp[i].split(';');
				a.push(tmp2);			
			}
			return(a);
	}
	this.onLoad = function(result){}
}
function getHTTPObject() {
	var req;
	try { 
		if (window.XMLHttpRequest) {  
			req = new XMLHttpRequest();
			if (req.readyState == null) {
				req.readyState = 1;
				req.addEventListener("load", function () {
					req.readyState = 4;
					if (typeof req.onReadyStateChange == "function") req.onReadyStateChange();
				}, false);
			}
			return req;
		}
		if (window.ActiveXObject) {
			var prefixes = ["MSXML2", "Microsoft", "MSXML", "MSXML3"];
  			for (var i = 0; i < prefixes.length; i++) {
				try {
					req = new ActiveXObject(prefixes[i] + ".XmlHttp");
					return req;
				} catch (ex) {};
			} 
		}
	} catch (ex) {}
	alert("XmlHttp Objects not supported by client browser");
}
// --------------------------------------------------------