if(typeof COLLECTIONS_VERSION=="undefined"||typeof XMLDOCUMENT_VERSION=="undefined"
||typeof BROWSER_SNIFFER_VERSION=="undefined")
{alert("Fatal Error: Gateway Missing Required Libraries");throw new Error("gateway.js Missing Required Libraries");}
var GATEWAY_VERSION="0.1";function HTTPConnectFactory(){;}
HTTPConnectFactory.prototype.getInstance=function getInstance()
{var gw_http_request=null;if(window.ActiveXObject){try{gw_http_request=new ActiveXObject("Msxml2.XMLHTTP");}catch(e){try{gw_http_request=new ActiveXObject("Microsoft.XMLHTTP");}catch(ex){throw new Error("IE browser, but xmlhttp create failed: "+ex);}}}else{try{gw_http_request=new XMLHttpRequest();if(gw_http_request.readyState==null){gw_http_request.readyState=1;gw_http_request.addEventListener("load",function(){gw_http_request.readyState=4;if(typeof gw_http_request.onreadystatechange=="function")
gw_http_request.onreadystatechange();},false);}}catch(e){throw new Error("Gecko browser, but xmlhttp create failed: "+ex);}}
if(gw_http_request==null){throw new Error("HTTPConnect::createInstance(): Unable to create HTTPConnect object");}
return gw_http_request;};function JSRemote(connection,asyn)
{this.connection=connection;this.loading=false;this.async=asyn;}
JSRemote.prototype.doGetRequest=function doGetRequest(url,func_handler)
{log.info("doGetRequest to: "+url);this.loading=true;var conn=this.connection;var load=this.loading;conn.open("GET",url,this.async);if(this.async)
{conn.onreadystatechange=function()
{if(conn.readyState==4)
{func_handler(conn.responseText);load=false;}}}
conn.send("nothing");if(!this.async){func_handler(conn.responseText);load=false;}};JSRemote.prototype.doPostRequest=function doPostRequest(url,func_handler,bodyinfo)
{log.info("doPostRequest to "+url);this.loading=true;var conn=this.connection;var load=this.loading;var args=[];if(arguments.length>2)
{for(var i=2;i<arguments.length;i++){args.push(arguments[i]);}}
conn.open("POST",url,this.async);if(this.async)
{conn.onreadystatechange=function()
{if(conn.readyState==4)
{args[0]=conn.responseText;func_handler.apply(this,args);load=false;}}}
if(bodyinfo=="")bodyinfo="nothing";conn.setRequestHeader("Content-Length",""+bodyinfo.length);conn.send(bodyinfo);if(!this.async)
{args[0]=conn.responseText;func_handler.apply(this,args);load=false;}};JSRemote.prototype.doSoapPost=function doSoapPost(url,func,func_handler,xmlinfo)
{log.info("doSoapPost to: "+url+" function: "+func);this.loading=true;var conn=this.connection;var load=this.loading;if(conn==null)
throw new Error("Connection problem in SoapPost");try
{conn.open("POST",url,this.async);if(this.async)
{conn.onreadystatechange=function()
{if(conn.readyState==4)
{if(conn.status!="200")
{alert(conn.status+" "+conn.statusText);conn.abort();}
else
{func_handler(conn.responseText);load=false;}}}}
if(conn.readyState!=2&&conn.readyState!=3)
{if(func!=null&&func!="")
conn.setRequestHeader("SOAPAction",func);conn.setRequestHeader("Content-Type","application/soap+xml; charset=utf-8");conn.setRequestHeader("Content-Length",""+xmlinfo.toString().length);conn.send(xmlinfo.toString());}
if(!this.async)
{func_handler(conn.responseText);load=false;}}
catch(e)
{conn.send(null);}};
