﻿
var ajax={XMLHttpRequest:function(){try{return new XMLHttpRequest();}
catch(e){try{return new ActiveXObject('Msxml2.XMLHTTP');}
catch(e){try{return new ActiveXObject('Microsoft.XMLHTTP');}
catch(e){return false;}}}
return false;},get:function(sFile,oParams,fnDone,that){return this.request('GET',sFile,oParams,fnDone,that);},post:function(sFile,oParams,fnDone,that){return this.request('POST',sFile,oParams,fnDone,that);},request:function(sMethod,sFileName,oParams,fnDone,that){var oRequest=this.XMLHttpRequest();if(!oRequest)return false;var sParams='';var sFile=sFileName.split('#');if(sMethod=='GET'){oRequest.open('GET',sFile[0]+this.params(oParams,'?'),true);}else{sParams=this.params(oParams,'');oRequest.open('POST',sFile[0],true);oRequest.setRequestHeader('Content-Type','application/x-www-form-urlencoded');}
oRequest.setRequestHeader('Referer',window.location);oRequest.onreadystatechange=function(){if(oRequest.readyState==4&&oRequest.status==200){if(fnDone)
fnDone(oRequest,that);if(sFile[1])
ajax.action(oRequest,sFile[1]);}};oRequest.send(sParams);return false;},params:function(oParams,before){var sParams='';for(i in oParams){if(sParams.length>0)sParams+='&';sParams+=encodeURIComponent(i)+'='+encodeURIComponent(oParams[i]);}
return before+sParams;},action:function(oRequest,container){switch(container[0]){case'^':container=container.replace(/^\^/,'');if(!document.getElementById(container))return false;var update=document.getElementById(container).innerHTML;document.getElementById(container).innerHTML=oRequest.responseText+update;break;case'+':container=container.replace(/^\+/,'');if(!document.getElementById(container))return false;document.getElementById(container).innerHTML+=oRequest.responseText;break;default:if(!document.getElementById(container))return false;document.getElementById(container).innerHTML=oRequest.responseText;}}};function buildUri(name,value){return"&"+encodeURIComponent(name)+"="+encodeURIComponent(value);}
function AjaxError(req){ShowHtmlMsg("Error loading "+this.url+" status: "+this.req.status+" "+this.req.statusText,'',true,false,null,null,null);}
function getChildNode(node,name){for(var i=0;i<node.childNodes.length;i++){if(node.childNodes[i].nodeName==name){return node.childNodes[i];}}
throw"Node "+name+" is not a child node of "+node.nodeName;}
function getNodeText(node,name){return getInnerText(getChildNode(node,name));}
function getInnerText(node){if(node.textContent){return node.textContent;}else if(node.text){return node.text;}else if(node.innerText){return stripcdata(node.innerText);}else{switch(node.nodeType){case 3:case 4:return"nodeValue"+node.nodeValue;case 1:case 11:var innerText='';for(var i=0;i<node.childNodes.length;i++){innerText+=getInnerText(node.childNodes[i]);}
return innerText;default:return'';}}}
function stripcdata(str){if(str.substr(0,9)=="<![CDATA["){return str.substr(9,str.length-12);}else{return str;}}
function buildFromForm(f){var enc="";for(var i=0;i<f.elements.length;i++){if(f.elements[i].name){enc+="&"+encodeURIComponent(f.elements[i].name)+"="+encodeURIComponent(f.elements[i].value);}}
return enc.substr(1);}
function getRootNode(req){if(req.readyState==4){if((req.status==200||req.status==304)&&req.responseXML.documentElement){return req.responseXML.documentElement;}}
return null;}
function getResponseText(req){if(req.readyState==4){if(req.status==200||req.status==304){return req.responseText;}}
return null;}
function getParamValue(p,name)
{var re=new RegExp("(^|&)"+name+"=([^&]*?)($|&)","ig");if(p.match(re)!=null)
{return RegExp.$2;}
return null;}