var AJAXQUEUE_STATUS_PREPPING=0;var AJAXQUEUE_STATUS_QUEUED=1;var AJAXQUEUE_STATUS_PROCESSING=2;var AJAXQUEUE_STATUS_SENT=3;var AJAXQUEUE_STATUS_COMPLETE=4;var AJAXQUEUE_STATUS_ERROR=5;var AJAXQUEUE_STATUS_CANCELLED=6;function CyberAjaxQueue(){this.bDoCleanup=true;this.iAjaxCallInterval=250;this.iIntervalId=0;this.bIntervalStarted=false;this.locks=new Object;this.calls=new Object;this.strLastCall=null;this.iIteration=0;this.errorHandler=null;this.RegisterErrorHandler=function(A){this.errorHandler=A};this.schedule=function(G,D,J,F,I,A,H){if(this.calls[G]!=undefined){this.destroyCall(G)
}var C=true;var B=new CyberAjaxQueueCall(D,H);B.successCallback=J;B.failureCallback=F;B.priority=(A==true)?true:false;if(I==true){this.purgeAllCalls()}this.calls[G]=B;this.calls[G].state=AJAXQUEUE_STATUS_PREPPING;try{this.calls[G].xmlObject=this.getNewXMLObject();this.calls[G].xmlObject.onreadystatechange=function(){onReadyStateChangeCyberAqHelper(G,D)}}catch(E){if(this.errorHandler){this.errorHandler(E)}else{alert("CyberAjaxQueue Scheduling Failed for ["+G+"]: "+E.message)}bRetrun=false}this.calls[G].state=AJAXQUEUE_STATUS_QUEUED;
return C};this.isLocked=function(B){if(B!=undefined){if(this.locks[B]!=undefined){return this.locks[B].state}else{return false}}else{for(var A in this.locks){if(this.locks[A].state==true){return true}}return false}};this.registerLock=function(B){var A=new CyberAjaxQueueLock(B);this.locks[B]=A;return };this.unregisterLock=function(B){try{delete this.locks[B]}catch(A){}return };this.engageLock=function(A){return this.changeLockState(A,true)};this.disengageLock=function(A){return this.changeLockState(A,false)};
this.changeLockState=function(C,A){try{this.locks[C].state=A}catch(B){if(this.errorHandler){this.errorHandler(B)}else{alert("CyberAjaxQueue: cannot change lock ["+C+"]: "+B.message)}}return };this.destroyCall=function(A){if(this.calls[A]!=undefined){this.calls[A].state=AJAXQUEUE_STATUS_CANCELLED;this.abortCall(A);if(this.bDoCleanup==true){this.purgeCall(A)}}};this.purgeCall=function(A){try{delete this.calls[A]}catch(B){}return };this.abortCall=function(A){this.calls[A].xmlObject.abort();return };this.purgeAllCalls=function(){for(var A in this.calls){this.destroyCall(A)
}if(this.bDoCleanup==true){this.calls=new Object}};this.getNewXMLObject=function(){var A=null;try{if(window.XMLHttpRequest){A=new XMLHttpRequest()}else{A=new ActiveXObject("Microsoft.XMLHTTP")}if(A==undefined||A==null){alert("This website requires that your browser support AJAX.  Please update your browser, or use the accesible site links at the bottom of the page to continue.")}}catch(B){alert("This website requires that your browser support AJAX.  Please update your browser, or use the accesible site links at the bottom of the page to continue.")
}return A};this.doAjaxHandling=function(){var A=this.getNextPriorityOpenCall();if(A==null){A=this.getNextOpenCall()}this.strLastCall=A;this.iIteration++;if(A!=null){if(this.isLocked()==true&&this.calls[A].priority==false){this.strLastCall="skip! "+this.isLocked()+" "+this.calls[A].priority;return }this.calls[A].state=AJAXQUEUE_STATUS_PROCESSING;try{var C=this.calls[A];if(C.postData==null){C.xmlObject.open("GET",C.url,true);C.xmlObject.send("")}else{C.xmlObject.open("POST",C.url,true);C.xmlObject.setRequestHeader("Content-type","application/x-www-form-urlencoded");
C.xmlObject.setRequestHeader("Content-length",C.postData.length);C.xmlObject.setRequestHeader("Connection","close");C.xmlObject.send(C.postData)}}catch(B){C.state=AJAXQUEUE_STATUS_ERROR;if(this.errorHandler){this.errorHandler(B)}else{alert("CyberAjaxQueue: Could not act on ["+A+"]:"+B.message)}}}this.cleanUpCalls()};this.getNextOpenCall=function(){for(var A in this.calls){if(this.calls[A].state==AJAXQUEUE_STATUS_QUEUED){return A}}return null};this.getNextPriorityOpenCall=function(){for(var A in this.calls){if(this.calls[A].state==AJAXQUEUE_STATUS_QUEUED&&this.calls[A].priority==true){return A
}}return null};this.cleanUpCalls=function(){if(this.bDoCleanup==true){for(var A in this.calls){if(this.calls[A].state>AJAXQUEUE_STATUS_SENT){this.destroyCall(A)}}return }};this.IsAjaxCapable=function(){var A=this.getNewXMLObject();if(A==undefined||A==null){return false}A=null;return true}}function onReadyStateChangeCyberAqHelper(A,C){if(g_CyberAjaxQueue.calls[A]){if(g_CyberAjaxQueue.calls[A].state!=AJAXQUEUE_STATUS_PROCESSING){return }if(g_CyberAjaxQueue.calls[A].xmlObject.readyState==4){if(g_CyberAjaxQueue.calls[A].xmlObject.status&&g_CyberAjaxQueue.calls[A].xmlObject.status==200){try{g_CyberAjaxQueue.calls[A].successCallback(g_CyberAjaxQueue.calls[A].xmlObject);
g_CyberAjaxQueue.calls[A].state=AJAXQUEUE_STATUS_COMPLETE}catch(B){g_CyberAjaxQueue.calls[A].state=AJAXQUEUE_STATUS_ERROR;if(this.errorHandler){this.errorHandler(B)}else{alert("CyberAjaxQueue: successCallback for ["+A+"] failed: "+B.message)}}}else{if(g_CyberAjaxQueue.calls[A].xmlObject.status==404){g_CyberAjaxQueue.calls[A].state=AJAXQUEUE_STATUS_ERROR;if(g_CyberAjaxQueue.calls[A].failureCallback!=null){g_CyberAjaxQueue.calls[A].failureCallback(g_CyberAjaxQueue.calls[A].xmlObject)}else{if(this.errorHandler){var B=new Error("404: Page not found, "+C);
this.errorHandler(B)}else{alert("CyberAjaxQueue Call Failed for ["+A+"]: ["+C+"] Does Not Exist!")}}}else{if(g_CyberAjaxQueue.calls[A].xmlObject.status==500){g_CyberAjaxQueue.calls[A].state=AJAXQUEUE_STATUS_ERROR;if(g_CyberAjaxQueue.calls[A].failureCallback!=null){g_CyberAjaxQueue.calls[A].failureCallback(g_CyberAjaxQueue.calls[A].xmlObject)}else{if(this.errorHandler){var B=new Error("500: Internal server error, "+C);this.errorHandler(B)}else{alert("CyberAjaxQueue Call Failed for ["+A+"]: ["+C+"] Server Error!")
}}}}}}}}function CyberAjaxQueueCall(B,A){this.url=B;this.postData=A;this.xmlObject=null;this.state=AJAXQUEUE_STATUS_PREPPING;this.successCallback=null;this.failureCallback=null;this.priority=0}function CyberAjaxQueueLock(A){this.name=A;this.state=false}function CyberGetNodeValue(D,A){try{if(D){var B=D.getElementsByTagName(A);if(B&&B[0]){if(B[0].firstChild){return B[0].firstChild.nodeValue}}}}catch(C){}return""}function CyberUrlEncode(G){var C="";var A=0;G=G.toString();var F=/(^[a-zA-Z0-9_.]*)/;while(A<G.length){var D=F.exec(G.substr(A));
if(D!=null&&D.length>1&&D[1]!=""){C+=D[1];A+=D[1].length}else{if(G[A]==" "){C+="+"}else{var B=G.charCodeAt(A);var E=B.toString(16);C+="%"+(E.length<2?"0":"")+E.toUpperCase()}A++}}return C}function CyberParseXMLToJS(A){var D;if(A.childNodes.length){if(A.childNodes.length==1&&(A.firstChild.nodeName=="#text"||A.firstChild.nodeName=="#cdata-section")){D=A.firstChild.nodeValue.toString()}else{D={};for(var B=0;B<A.childNodes.length;B++){var C=A.childNodes[B];var F=C.nodeName;if(F!="#text"){var E=CyberParseXMLToJS(C);
switch(typeof (D[F])){case"undefined":D[F]=E;break;case"string":D[F]=[D[F],E];break;case"object":if(typeof (D[F].push)=="function"){D[F].push(E)}else{D[F]=[D[F],E]}break}}}}}else{D=""}return D}g_CyberAjaxQueue=new CyberAjaxQueue();g_bAjaxEnabled=g_CyberAjaxQueue.IsAjaxCapable();function fireCyberAjaxQueue(){if(g_CyberAjaxQueue.bIntervalStarted==false){g_CyberAjaxQueue.iIntervalId=setInterval(function(){g_CyberAjaxQueue.doAjaxHandling()},g_CyberAjaxQueue.iAjaxCallInterval);g_CyberAjaxQueue.bIntervalStarted==true
}}RfgQueueCommand("fireCyberAjaxQueue();");
