var objAJAXPool=new Array();var objTopWindow=null;var nTopZOrder=4000;function classAJAX()
{this.objConnection=function(){var http_request=null;var XMLDoc='';var objForm=0;var objWnd=0;var fnLaunchJavascript=null;var nIndex=0;var fnDestructor=null;var fnBringToTop=null;var dtTimeStamp=null;};this.bringToTop=function(objWnd){if(objWnd)
{szTemp=objWnd.style['position'];if(szTemp.toLowerCase()!='absolute')
return;if(objTopWindow!=objWnd)
{nTopZOrder++;if(objTopWindow)
{objTopWindow.style['zIndex']=ToolMan.css().readStyle(objTopWindow,"z-index");}
objWnd.style['zIndex']=nTopZOrder;objTopWindow=objWnd;}
else
{objWnd.style['zIndex']=nTopZOrder;}}}
this.getParentWnd=function(szElement){var objNode=document.getElementById(szElement);if(!objNode)
{document.getElementById('divWindowManager').innerHTML=document.getElementById('divWindowManager').innerHTML+'<div id="'+szElement+'" style="position:absolute;left:50px;top:50px;background:#FFFFFF;">&nbsp;</div>';objNode=document.getElementById(szElement);}
return document.getElementById(szElement);}
this.callbackFunction=function(nIndex,fnCallback){szFunction='var objConn = objAJAXPool['+nIndex+'];';szFunction+='if (objConn.http_request.readyState == 4) { ';szFunction+='    if (objConn.http_request.status == 200) { ';if(typeof fnCallback=='function')
{szFunction+='    ('+fnCallback.toString()+')(objConn);';}
else
{szFunction+='		objConn.XMLDoc = objConn.http_request.responseText.replace(/<nbsp \\/>/m, \'&nbsp;\'); ';szFunction+='		if (objConn.objWnd) objConn.objWnd.innerHTML = objConn.XMLDoc; ';szFunction+='		objConn.fnLaunchJavascript(objConn.XMLDoc); ';}
szFunction+='	} ';szFunction+='objConn.fnDestructor(objConn);';szFunction+='} ';return new Function(szFunction);};this.launchJavascript=function(responseText,bDebug){var ScriptFragment='(?:<script.*?>)((\r|\n|.)*?)(?:<\/script>)';var regMatch=new RegExp(ScriptFragment,'img');var scripts=responseText.match(regMatch);var js='';if(scripts){for(var s=0;s<scripts.length;s++){var match=new RegExp(ScriptFragment,'im');js+=scripts[s].match(match)[1];}
eval(js);}};var fnLaunchJavascript=this.launchJavascript;var objPool=objAJAXPool;objPool[0]=new this.objConnection();objPool[1]=new this.objConnection();objPool[2]=new this.objConnection();objPool[3]=new this.objConnection();objPool[4]=new this.objConnection();objPool[5]=new this.objConnection();objPool[6]=new this.objConnection();objPool[7]=new this.objConnection();objPool[8]=new this.objConnection();objPool[9]=new this.objConnection();this.getConnection=function(bRecurse){objConn=null;for(nIndex=0;nIndex<objPool.length;nIndex++)
{if(!objPool[nIndex].http_request)
{objConn=objPool[nIndex];objConn.objWnd=0;objConn.objForm=0;objConn.fnLaunchJavascript=this.launchJavascript;objConn.XMLDoc='';objConn.http_request=null;objConn.nIndex=nIndex;objConn.fnDestructor=this.releaseConnection;objConn.fnBringToTop=this.bringToTop;objConn.dtTimeStamp=new Date();if(window.XMLHttpRequest){objConn.http_request=new XMLHttpRequest();if(objConn.http_request.overrideMimeType){objConn.http_request.overrideMimeType('text/xml');}}else if(window.ActiveXObject){try{objConn.http_request=new ActiveXObject("Msxml2.XMLHTTP");}catch(e){try{objConn.http_request=new ActiveXObject("Microsoft.XMLHTTP");}catch(e){}}}
if(!objConn.http_request)
{alert('Giving up :( Cannot create an XMLHTTP instance');this.releaseConnection(objConn);return null;}
break;}}
if(!objConn)
{if(bRecurse)
return null;var dtNow=new Date();for(nIndex=0;nIndex<objPool.length;nIndex++)
{if(objPool[nIndex].dtTimeStamp)
{if(objPool[nIndex].dtTimeStamp.getTime()<(dtNow-5000))
{this.releaseConnection(objPool[nIndex]);}}
else
{this.releaseConnection(objPool[nIndex]);}}
objConn=this.getConnection(true);}
if(!objConn)
{alert('Unable to create connection. All connections are busy.\nPlease reload the page to release all connections.');}
return objConn;}
this.releaseConnection=function(objConn){objConn.objWnd=0;objConn.objForm=0;objConn.XMLDoc='';objConn.http_request=null;objConn.nIndex=nIndex;objConn.dtTimeStamp=null;}
this.showAjaxForm=function(url,frmID,bForm,wndID,bAsync){objConn=this.getConnection();if(!objConn)
return false;szPostData='';if(wndID==null)
wndID=frmID;if(typeof(frmID)=='object')objConn.objForm=frmID;else objConn.objForm=document.getElementById(frmID);if(typeof(wndID)=='object')
{objConn.objWnd=wndID;}
else
{objConn.objWnd=this.getParentWnd(wndID);}
if(bForm)
{szPostData=this.getPostData(objConn.objForm);if(url==null)
url=objConn.objForm.action;}
if(this.ajaxRequest(url,szPostData,bAsync,objConn))
{if(bAsync)
{return;}
if(objConn.objWnd)objConn.objWnd['innerHTML']=objConn.XMLDoc;this.launchJavascript(objConn.XMLDoc);objConn.fnDestructor(objConn);}};this.getPostData=function(objForm){szPostData='';var arryElements=objForm.elements;for(nIndex=0;nIndex<arryElements.length;nIndex++)
{if(arryElements[nIndex].type!='button')
{if((arryElements[nIndex].type=='checkbox'))
{if(arryElements[nIndex].checked)
{if(szPostData.length)
szPostData+='&';szPostData+=arryElements[nIndex].name+'='+encodeURIComponent(arryElements[nIndex].value);}}
else if((arryElements[nIndex].type=='select-multiple'))
{for(nKey=0;nKey<arryElements[nIndex].options.length;nKey++)
{if(arryElements[nIndex].options[nKey].selected)
{if(szPostData.length)
szPostData+='&';szPostData+=arryElements[nIndex].name+'='+encodeURIComponent(arryElements[nIndex].options[nKey].value);}}}
else if((arryElements[nIndex].type=='radio'))
{if(arryElements[nIndex].checked)
{if(szPostData.length)
szPostData+='&';szPostData+=arryElements[nIndex].name+'='+encodeURIComponent(arryElements[nIndex].value);}}
else
{if(szPostData.length)
szPostData+='&';szPostData+=arryElements[nIndex].name+'='+encodeURIComponent(arryElements[nIndex].value);}}}
return szPostData;}
this.ajaxRequest=function(url,szPostData,bAsync,objConn,fnCallback){if(url.search(/\?/i)>0)
url+='&sIgnore=';else
url+='?sIgnore=';d=new Date();url+=Math.random();url=url.replace(/&amp;/ig,'&');if(!objConn)
objConn=this.getConnection();if(!objConn)
return false;if(bAsync)
{objConn.http_request.onreadystatechange=this.callbackFunction(objConn.nIndex,fnCallback);}
else
bAsync=false;if(szPostData.length)
{objConn.http_request.open('POST',url,bAsync);objConn.http_request.setRequestHeader('Content-Type','application/x-www-form-urlencoded');objConn.http_request.setRequestHeader('X-Requested-With','XMLHttpRequest');objConn.http_request.send(szPostData);}
else
{objConn.http_request.open('GET',url,bAsync);objConn.http_request.setRequestHeader('X-Requested-With','XMLHttpRequest');objConn.http_request.send(null);}
if(bAsync)
return'';if(objConn.http_request.status==200)
{objConn.XMLDoc=objConn.http_request.responseText.replace(/<nbsp \/>/m,'&nbsp;');return objConn.http_request.responseText;}
else
{}
return false;};};var objAjax=new classAJAX();
