	function getXMLHttpRequest(){
	    var xmlHttpReq = false;
	    var self = this;
	    // Mozilla/Safari
	    if (window.XMLHttpRequest) {
		self.xmlHttpReq = new XMLHttpRequest();
	    }
	    // IE
	    else if (window.ActiveXObject) {
		self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
	    }
	    return self.xmlHttpReq; 
	}
	
	function xmlhttpPost(strURL,parameters,callId) {
	    var xmlHttpReq = getXMLHttpRequest();
	    var self = this;
	    self.xmlHttpReq.open('POST', strURL, true);
	    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	    self.xmlHttpReq.onreadystatechange = function() {
		if (self.xmlHttpReq.readyState == 3) {
		    if (window.xmlhttpPost_onReceive) xmlhttpPost_onReceive(self.xmlHttpReq.responseText,callId);
		}
		    
		if (self.xmlHttpReq.readyState == 4) {
		    if (window.xmlhttpPost_onReturn) xmlhttpPost_onReturn(self.xmlHttpReq.responseText,callId);
		}
	    }
	    self.xmlHttpReq.send(parameters);
	}
	
	function getXML(filename){
	   myXMLHTTPRequest = new getXMLHttpRequest();
	   myXMLHTTPRequest.open("GET", filename, false);
	   myXMLHTTPRequest.send(null);
	   return myXMLHTTPRequest.responseXML;	
	}
	
	
	
	
	function isString(o) {
	  return (typeof(o)=="string");
	}
	
	function isObject(o) {
	  return (typeof(o)=="object");
	}
	
	function isArray(o) {
	  return (isObject(o) && (o.length) &&(!isString(o)));
	}
	
	
