function multiUpdate (obj) {
	var js;
	for (var i in obj) {
		if(i == 'javascript') {
			js = obj[i];
		}
		else {
		//properties starting with _ will not be considered
			if (!(i.match(/^_/)) && getObj(i)) {
				getObj(i).innerHTML = obj[i];
			}  
		}     
	}
	if(js) {
		eval(js);
	}
}

function getObj(name) {
	if( typeof(name) == 'object' ) {
		this.obj = name;
	} else {
		if (document.getElementById) {
			this.obj = document.getElementById(name);
		} else if (document.all)  {
			this.obj = document.all[name];
		} else if (document.layers)  {
			this.obj = document.layers[name];
		}
	}
	return this.obj;
}

function objExist(name) {
	if( typeof(name) == 'object' ) {
		return true;
	} else {
		if (document.getElementById) {
			this.obj = document.getElementById(name);
		} else if (document.all)  {
			this.obj = document.all[name];
		} else if (document.layers)  {
			this.obj = document.layers[name];
		}
		if(this.obj) {
			return true;
		} else {
			return false;
		}		
	}

}

function GetXMLHttpObject() { 
	var objXMLHttp=null;
	
	if (window.XMLHttpRequest) {
		objXMLHttp=new XMLHttpRequest();
	}

	else if (window.ActiveXObject) {
		objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP");
	}
	return objXMLHttp;
}

function processGet(fID,path,obj) {
	var str = retrieveformvalues(fID);
	var obj = document.getElementById(obj);
	var url = path;
	url += '&'+str;
	var xmlhttp = GetXMLHttpObject();
	
	if(xmlhttp == null) {
		obj.innerHTML = "ERROR! Your browser needs to updated to the latest version.";
		return;
	}
	
	xmlhttp.open("GET",url,true);
	xmlhttp.onreadystatechange = function() {
			if(xmlhttp.readyState !== 4) {
				obj.innerHTML = '<small>loading...</small>';
			}
			if(xmlhttp.readyState == 4 && xmlhttp.status == 200) {
				obj.innerHTML = xmlhttp.responseText;
			}
	}
	
	xmlhttp.send(null);
}

function retrieveformvalues(fobj) {
	var str = "";
	
	// Run through a list of all objects contained within the form
	for(var i=0;i<fobj.elements.length;i++) {
		str += fobj.elements[i].name + "=" + escape(fobj.elements[i].value) + "&";
	}
	// Then return the string values
	str += "sid=" + Math.random();
	return str;
}

function initGetProcess(fID,method,url,loadtxt) {
	processAjaxRequestJSON(fID,method,loadtxt,url,
	function(x) {
		try {
			var m = eval('(' + x.responseText + ')');
			multiUpdate(m);
		} catch (e) { 
			alert(e + x.responseText);
		}
	});
}

function processAjaxRequestJSON(fID,method,loadtxt,url,callback) {
	var str = retrieveformvalues(document.getElementById(fID));
	var path = url;
	var method 	= method.toUpperCase();
	ldtxt = document.getElementById(loadtxt);
	var self = this;
	var xmlhttp = null;
	
	try {
		var xmlhttp = GetXMLHttpObject();
	} catch(e){
		alert('Error occurred while trying to process your request');
		return;
	}
	
	if(method == "POST") {
		xmlhttp.open(method,path,true);
		xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		xmlhttp.setRequestHeader("Content-length", path.length);
		xmlhttp.setRequestHeader("Connection", "close");
		xmlhttp.send(str);
	} else {
		xmlhttp.open(method,path+'&'+str,true);
		xmlhttp.setRequestHeader("Pragma", "no-cache");
		xmlhttp.send(null);
	} 
	
	xmlhttp.onreadystatechange = function () {
		if(xmlhttp.readyState !== 4 || xmlhttp.readyState !== 200) {
				ldtxt.innerHTML = '<small>loading...</small>';
		}
			
		if (xmlhttp.readyState == 4 || xmlhttp.readyState == 'complete') {
			if (xmlhttp.status == 200) {
				if (typeof callback == 'function') {
					callback(xmlhttp);
				}
				else {
					eval(callback);
				}
			}
			else {
				alert('An error occurred while trying to return your request. \nError '+xmlhttp.status+': '+xmlhttp.statusText);
				return;
			}
		}
	};
}