
var __AJAX_INIT__=true;var __AJAX_READYSTATE_UNINITIALIZED__=0;var __AJAX_READYSTATE_OPEN__=1;var __AJAX_READYSTATE_SENT__=2;var __AJAX_READYSTATE_RECEIVING__=3;var __AJAX_READYSTATE_FINISHED__=4;var __AJAX_NODETYPE_ELEMENT__=1;var __AJAX_NODETYPE_ATTRIBUTE__=2;var __AJAX_NODETYPE_TEXT__=3;var __AJAX_NODETYPE_CDATA_SECTION__=4;var __AJAX_NODETYPE_ENTITY_REFERENCE__=5;var __AJAX_NODETYPE_ENTITY__=6;var __AJAX_NODETYPE_PROCESSING_INSTRUCTION__=7;var __AJAX_NODETYPE_COMMENT__=8;var __AJAX_NODETYPE_DOCUMENT__=9;var __AJAX_NODETYPE_DOCUMENT_TYPE__=10;var __AJAX_NODETYPE_DOCUMENT_FRAGMENT__=11;var __AJAX_NODETYPE_NOTATION__=12;var __AJAX_REQUESTS__=new Array();var __AJAX_REQUEST_CURRENT__=0;var XMLHttpFactories=[function()
{return new XMLHttpRequest()},function()
{return new ActiveXObject("Msxml2.XMLHTTP")},function()
{return new ActiveXObject("Msxml3.XMLHTTP")},function()
{return new ActiveXObject("Microsoft.XMLHTTP")}];function handleAjaxErrors(xmlrequest)
{if(xmlrequest==null)
{if(__AJAX_INIT__==null||__AJAX_INIT__==false)
{alert("There was an error initializing the Ajax handler");}
else
{alert("There was an error establishing the Ajax request");}}
else
{if(xmlrequest.readyState==__AJAX_READYSTATE_FINISHED__)
{if(xmlrequest.status!=200||xmlrequest.status!=304)
{alert("There was an error connecting to the server, please try again");}}}}
function createXMLHTTPObject()
{if(__AJAX_INIT__==null||__AJAX_INIT__==false)
{handleAjaxErrors();}
var xmlhttp=false;for(var i=0;i<XMLHttpFactories.length;i++)
{try
{xmlhttp=XMLHttpFactories[i]();}
catch(e)
{continue;}
break;}
__AJAX_REQUEST_CURRENT__++;return xmlhttp;}
function sendXMLRequest(url,callback,kPost)
{var thread_id=__AJAX_REQUEST_CURRENT__;__AJAX_REQUESTS__[thread_id]=createXMLHTTPObject();if(!__AJAX_REQUESTS__[thread_id])
{handleAjaxErrors();return false;}
var method=(kPost)?"POST":"GET";if(url.indexOf('?')==-1)
{url=url+"?rand="+Math.random();}
else
{url=url+"&rand="+Math.random();}
__AJAX_REQUESTS__[thread_id].open(method,url,true);__AJAX_REQUESTS__[thread_id].setRequestHeader('User-Agent','XMLHTTP/1.0');if(kPost)
{__AJAX_REQUESTS__[thread_id].setRequestHeader('Content-type','application/x-www-form-urlencoded');}
__AJAX_REQUESTS__[thread_id].onreadystatechange=function()
{if(__AJAX_REQUESTS__[thread_id].readyState==__AJAX_READYSTATE_FINISHED__)
{callback(__AJAX_REQUESTS__[thread_id]);}}
if(kPost!=null)
{__AJAX_REQUESTS__[thread_id].send(kPost.toEscapedString());}
else
{__AJAX_REQUESTS__[thread_id].send('');}
return true;}
function handleTest(xmlrequest)
{handleAjaxDebug(xmlrequest);}
function cHttpPost()
{cHttpPost.baseConstructor.call(this);this.toEscapedString=function()
{var szEscaped="";for(i=0;i<this.arComponents.length;i++)
{szEscaped+=(this.arComponents[i]['key']+"="+encodeURIComponent(this.arComponents[i]['value']));if(i<(this.arComponents.length-1))
{szEscaped+="&";}}
return szEscaped;}
this.addComponent=function(key,value)
{if(this.arComponents==null)
{this.arComponents=new Array();}
var i=this.arComponents.length;this.arComponents[i]=new Array();this.arComponents[i]['key']=key;this.arComponents[i]['value']=value;}}
extendClass(cDebuggable,cHttpPost);function cXMLNodeParser(node)
{cXMLNodeParser.baseConstructor.call(this);this.parseXMLNode=function(node)
{if(node==null)
{return false;}
if(node.childNodes==null)
{return false;}
if(node.childNodes.length==0)
{return false;}
for(var i=0;i<node.childNodes.length;i++)
{if(node.childNodes[i].nodeType==__AJAX_NODETYPE_ELEMENT__)
{if(node.childNodes[i].childNodes.length!=0)
{if(node.childNodes[i].childNodes.length>1||node.childNodes[i].childNodes[0].nodeType!=__AJAX_NODETYPE_TEXT__)
{if(this[node.childNodes[i].nodeName]==null)
{this[node.childNodes[i].nodeName]=new cXMLNodeParser(node.childNodes[i]);}
else
{if(typeof this[node.childNodes[i].nodeName]=="object"&&this[node.childNodes[i].nodeName].length!=null&&getObjectClass(this[node.childNodes[i].nodeName])!="cXMLNodeParser")
{this[node.childNodes[i].nodeName][this[node.childNodes[i].nodeName].length]=new cXMLNodeParser(node.childNodes[i]);}
else
{tmp=this[node.childNodes[i].nodeName];this[node.childNodes[i].nodeName]=new Array();this[node.childNodes[i].nodeName][0]=tmp;this[node.childNodes[i].nodeName][1]=new cXMLNodeParser(node.childNodes[i]);}}}
else
{if(node.childNodes[i].childNodes[0]!=null)
{this[node.childNodes[i].nodeName]=node.childNodes[i].childNodes[0].nodeValue;}
else
{this[node.childNodes[i].nodeName]=false;}}}}}
return true;}
this.length=function()
{var length=0;for(k in this)
{switch(typeof this[k])
{case"function":break;default:length=length+1;break;}}
return length;}
if(node!=null)
{this.parseXMLNode(node);}}
extendClass(cDebuggable,cXMLNodeParser);function cAjaxable()
{cAjaxable.baseConstructor.call(this);cAjaxable.prototype.parseXMLNode=function(kXMLNode)
{return new cXMLNodeParser(kXMLNode);}
cAjaxable.prototype.extractFromXMLNode=function(kXMLNode)
{this.assignXMLNode(this.parseXMLNode(kXMLNode));}
cAjaxable.prototype.assignXMLNode=function(kXMLNodeParser)
{var k_name="";for(k in kXMLNodeParser)
{switch(typeof kXMLNodeParser[k])
{case"function":break;case"object":k_name=getObjectClass(kXMLNodeParser[k]);if(k_name=="")
{k_name="object";}
if(this[k_name]!=null)
{if(this[k_name].length!=null)
{this[k_name][this[k_name].length]=kXMLNodeParser[k];}
else
{var j;j=this[k_name];this[k_name]=new Array();this[k_name][0]=j;this[k_name][1]=kXMLNodeParser[k];}}
break;default:this[k]=kXMLNodeParser[k];break;}}}}
extendClass(cDebuggable,cAjaxable);function handleXMLUserError(responseXML)
{if(responseXML.hasChildNodes())
{if((responseXML.childNodes[0]!=null&&responseXML.childNodes[0].tagName=="error")||(responseXML.childNodes[1]!=null&&responseXML.childNodes[1].tagName=="error"))
{kNode=new cXMLNodeParser(responseXML);if(kNode!=null&&kNode.error!=null&&kNode.error.szDescription!=null)
{alert(kNode.error.szDescription);}
return true;}}
return false;}