/* Remote XML Call functions */
var req = [];
function processChange_Req(id) {
	if (req[id].readyState == 4) {
		if (req[id].status == 200) {
			var response  = req[id].responseXML.documentElement;
			if (response && response.getElementsByTagName("method")[0]) {
				method = response.getElementsByTagName("method")[0].firstChild.data;
				eval(method + '(response)');
			}
			else if (response && response.getElementsByTagName("rawhtml")[0]) {
				var retid = document.getElementById(response.getElementsByTagName("retid")[0].firstChild.data);
				var rettype = response.getElementsByTagName("rettype")[0].firstChild.data;
				if (rettype == "ihtml") {
					retid.innerHTML = response.getElementsByTagName("rawhtml")[0].firstChild.data;
				}
				else if (rettype == "fvalue") {
					retid.value = response.getElementsByTagName("rawhtml")[0].firstChild.data;
				}
			}
			else if (response && response.getElementsByTagName("error")[0]) {
				alert(response.getElementsByTagName("errortext")[0].firstChild.data);
			}
			else {
				alert("No response data!");
			}
		}
		else {
			alert("An error occured during server call:\n" + req[id].statusText);
		}
	}
}
function perform_Req(reqUrl, funcUrl) {
	var url = (reqUrl)?reqUrl:eval(funcUrl);
   var inum = req.length;
	req[inum] = false;

	if (window.XMLHttpRequest) {
		try {
			req[inum] = new XMLHttpRequest();
		}
		catch(e) {
			req[inum] = false;
		}
	}
	else if (window.ActiveXObject) {
		try {
			req[inum] = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch(e) {
			try {
				req[inum] = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch(e) {
				req[inum] = false;
			}
		}
	}

	if (req[inum]) {
		req[inum].onreadystatechange = function() {
         processChange_Req(inum);
      };
		req[inum].open("GET", url, true);
		req[inum].send(null);
	}
	else {
		return false;
	}
}

function xml_getSTValue(id, elem) {
	if (id && id.getElementsByTagName(elem)[0] ) {
	   if (id.getElementsByTagName(elem)[0].firstChild) {
	      return id.getElementsByTagName(elem)[0].firstChild.data;
	   }
	   else {
	      return '';
	   }
	}
	else {
		return false;
	}
}
