function AJAXParameters(){ this.m_Method = ''; this.m_Parameters = new Array(); this.add = function(_name, _value) { this.m_Parameters[_name] = _value; } this.SetMethod = function(_method) { this.m_Method = _method; } // TODO: ADD METHODS TO STREAM PARAMETERS this._buildQueryString = function() { var queryString = ''; if(this.m_Parameters.Length<1) return queryString; else queryString = '?'; for(var key in this.m_Parameters){ queryString += key + "=" + this.m_Parameters[key] + "&"; } queryString = queryString.replace(/&$/,''); return queryString; } } function AJAXClient() { } AJAXClient.invoke = function(_url, _parameters, _async, _format, _callback) { // TODO: ADD LOGIC IF THE FORMAT IS OF TYPE SOAP if(_format == "SOAP"){ AJAXClient.invokeSOAP(_url, _parameters, _async, _callback); } else if(_format == "JSON"){ AJAXClient.invokeJSON(_url, _parameters, _async, _callback); } else if(_format == "XML"){ AJAXClient.invokeSOAP(_url, _parameters, _async, _callback); } else { AJAXClient.invokeTXT (_url, _parameters, _async, _callback); } } AJAXClient.invokeSOAP = function(_url, _parameters, _async, _callback){ // TODO: IMPLEMENT } AJAXClient.invokeXML = function(_url, _parameters, _async, _callback){ // TODO: IMPLEMENT } AJAXClient.invokeJSON = function(_url, _parameters, _async, _callback){ // TODO: IMPLEMENT } AJAXClient.invokeTXT = function(_url, _parameters, _async, _callback){ var xmlHttp = AJAXClient._getXmlHttp(); xmlHttp.onreadystatechange = _callback; xmlHttp.onreadystatechange = function() { if(xmlHttp.readyState == 4) _callback(xmlHttp); } _url += _parameters._buildQueryString(); xmlHttp.open("GET",_url,true); xmlHttp.send(null); } AJAXClient._getXmlHttp = function() { var xmlHttp; try { if(window.XMLHttpRequest) // Non-IE browsers { xmlHttp = new XMLHttpRequest(); return xmlHttp; } else if (window.ActiveXObject) // IE { return new ActiveXObject("Msxml2.XMLHTTP"); } } catch (ex) { } throw new Error("Your browser does not support XmlHttp objects"); } /*** HANDLERS (Not a great Idea ***/ function JSONHandler(){ } function XMLHandler(){ if(this.readyState == 4 && this.status == 200) { if(this.responseXML != null && this.responseXML.getElementById('test').firtChild.data) // success: Process Data testXML(this.responseXML.getElementById('test').firstChild.data); } else if (this.readyState == 4 && this.status != 200) { // fetched the wrong page or network error... // Process Data (ERROR SOMEHOW) testXML(null); } } function testXML(data) { // taking care of data } function TXTHandler(r){ document.ajaxTest.time.value=r.responseText; }