var json_url,json_nosessionurl,Session_ID;function AJAX_New(){var e=null;return window.XMLHttpRequest?e=new XMLHttpRequest:window.ActiveXObject&&(e=new ActiveXObject("Microsoft.XMLHTTP")),e}function AJAX_Initialize(){var e,n;"string"==typeof json_nosessionurl&&"string"==typeof Session_ID||(-1==(e=json_url.toLowerCase().indexOf("session_id="))?(json_nosessionurl=json_url,n=""):(-1==(session_end=json_url.indexOf("&",e+11))&&(session_end=json_url.length),n=json_url.substring(e+11,session_end),json_nosessionurl=json_url.slice(0,e)+json_url.slice(session_end+1)),void 0===Session_ID&&(Session_ID=n))}function AJAX_Invalid_Session(e,n,t){n.location.reload()}function AJAX_Append_SessionParameters(e,n){var t="Session_Type="+encodeURIComponent(n);return"admin"==n&&void 0!==Session_ID&&(t+="&Session_ID="+encodeURIComponent(Session_ID)),"string"!=typeof e||0==e.length?t:e+"&"+t}function AJAX_Append_SessionParameters_JSON(e,n){return"admin"==((e=e||new Object).Session_Type=n)&&void 0!==Session_ID&&(e.Session_ID=Session_ID),e}function AJAX_Append_FieldList_JSON(e,n){var t,o,r,i,u,s,a;e=e||new Object,r=new RegExp("(\\[\\s{0,}(?<index>\\d{1,})\\s{0,}\\]|(?<structure>:))","g");for(o of n){for(s=e,u=null,i=0;null!==(a=r.exec(o.name));)u&&void 0!==u.groups.index&&(void 0!==a.groups.structure?s=AJAX_Append_FieldList_JSON_CreateObjectPath(s,u.groups.index-1):void 0!==a.groups.index&&(s=AJAX_Append_FieldList_JSON_CreateArrayPath(s,u.groups.index-1))),(t=o.name.substring(i,a.index)).length&&(void 0!==a.groups.structure?s=AJAX_Append_FieldList_JSON_CreateObjectPath(s,t):void 0!==a.groups.index&&(s=AJAX_Append_FieldList_JSON_CreateArrayPath(s,t))),u=a,i=r.lastIndex;!(t=o.name.substring(i,o.name.length)).length||u&&void 0!==u.groups.index?0===t.length&&u&&void 0!==u.groups.index&&AJAX_Append_FieldList_JSON_SetPathValue(s,u.groups.index-1,o.value):AJAX_Append_FieldList_JSON_SetPathValue(s,t,o.value)}return e}function AJAX_Append_FieldList_JSON_CreateArrayPath(e,n){return e.hasOwnProperty(n)&&Array.isArray(e[n])||(e[n]=new Array),e=e[n]}function AJAX_Append_FieldList_JSON_CreateObjectPath(e,n){return e.hasOwnProperty(n)&&"object"==typeof e[n]||(e[n]=new Object),e=e[n]}function AJAX_Append_FieldList_JSON_SetPathValue(e,n,t){e.hasOwnProperty(n)?Array.isArray(e[n])?e[n].push(t):e[n]=new Array(e[n],t):e[n]=t}function AJAX_Call_Module(e,n,t,o,r,i){return i?i.AJAX_Call_Module(e,n,t,o,r):(AJAX_Initialize(),AJAX_Call_LowLevel(null,e,"application/x-www-form-urlencoded",AJAX_Append_SessionParameters(r,n),"Store_Code="+AJAX_CharsetEncodeAttribute(Store_Code)+"&Function=Module&Module_Code="+AJAX_CharsetEncodeAttribute(t)+"&Module_Function="+AJAX_CharsetEncodeAttribute(o),function(e){var n=new Object;return n.status=e.status,n.success=0,n.error_code="MER-AJX-00002",n.error_message="Miva Merchant returned an invalid response.\nModule: "+t+"\nFunction: "+o+"\nStatus: "+e.status+"\nResponse: "+e.responseText,n}))}function AJAX_Call_Module_JSON(e,n,t,o,r,i){return i?i.AJAX_Call_Module_JSON(e,n,t,o,r):(AJAX_Initialize(),AJAX_Call_LowLevel(null,e,"application/json",JSON.stringify(AJAX_Append_SessionParameters_JSON(r,n)),"Store_Code="+AJAX_CharsetEncodeAttribute(Store_Code)+"&Function=Module&Module_Code="+AJAX_CharsetEncodeAttribute(t)+"&Module_Function="+AJAX_CharsetEncodeAttribute(o),function(e){var n=new Object;return n.status=e.status,n.success=0,n.error_code="MER-AJX-00013",n.error_message="Miva Merchant returned an invalid response.\nFunction: "+o+"\nStatus: "+e.status+"\nResponse: "+e.responseText,n}))}function AJAX_Call_Module_FieldList(e,n,t,o,r,i,u){for(var s=0;s<i.length;s++)r+=(r.length?"&":"")+encodeURIComponent(i[s].name)+"="+(i[s].hasOwnProperty("encoded_value")?i[s].encoded_value:encodeURIComponent(i[s].value));return AJAX_Call_Module(e,n,t,o,r,u)}function AJAX_Call_Module_JSON_FieldList(e,n,t,o,r,i,u){return AJAX_Call_Module_JSON(e,n,t,o,AJAX_Append_FieldList_JSON(r,i),u)}function AJAX_Call_Module_WithFile(e,n,t,o,r,i,u,s,a){return a?a.AJAX_Call_Module_WithFile(e,n,t,o,r,i,u,s):(AJAX_Initialize(),s&&window.FormData?AJAX_Call_Module_WithFile_FormData(e,n,t,o,r,i,s):((a=new Object).success=0,a.error_code="MER-AJX-00009",a.error_message="This browser does not support file upload with the provided parameters",e.Complete(a),window.Modal_Resize&&Modal_Resize(),void 0))}function AJAX_Call_Module_WithFile_FormData(n,e,t,o,r,i,u){var s,a=new FormData;for(s in r)a.append(s,r[s]);return a.append("Session_Type",e),"admin"===e&&void 0!==Session_ID&&a.append("Session_ID",Session_ID),a.append(i,u),null==(e=AJAX_New())?null:(n.Initialize(e,!0),e.upload.addEventListener("progress",function(e){n.Progress((e.loaded/e.total*100).toFixed(0))},!1),e.upload.addEventListener("load",function(e){n.Progress(100)},!1),AJAX_Call_LowLevel(e,function(e){n.Complete(e)},null,a,"Store_Code="+AJAX_CharsetEncodeAttribute(Store_Code)+"&Function=Module&Module_Code="+AJAX_CharsetEncodeAttribute(t)+"&Module_Function="+AJAX_CharsetEncodeAttribute(o),function(e){var n=new Object;return n.status=e.status,n.success=0,n.error_code="MER-AJX-00010",n.error_message="Miva Merchant returned an invalid response.\nFunction: "+o+"\nStatus: "+e.status+"\nResponse: "+e.responseText,n}))}function AJAX_Call_Domain(e,n,t,o,r){return r?r.AJAX_Call_Domain(e,n,t,o):(AJAX_Initialize(),AJAX_Call_LowLevel(null,e,"application/x-www-form-urlencoded",AJAX_Append_SessionParameters(o,n),"Function="+AJAX_CharsetEncodeAttribute(t),function(e){var n=new Object;return n.status=e.status,n.success=0,n.error_code="MER-AJX-00008",n.error_message="Miva Merchant returned an invalid response.\nFunction: "+t+"\nStatus: "+e.status+"\nResponse: "+e.responseText,n}))}function AJAX_Call_Domain_JSON(e,n,t,o,r){return r?r.AJAX_Call_Domain_JSON(e,n,t,o):(AJAX_Initialize(),AJAX_Call_LowLevel(null,e,"application/json",JSON.stringify(AJAX_Append_SessionParameters_JSON(o,n)),"Function="+AJAX_CharsetEncodeAttribute(t),function(e){var n=new Object;return n.status=e.status,n.success=0,n.error_code="MER-AJX-00014",n.error_message="Miva Merchant returned an invalid response.\nFunction: "+t+"\nStatus: "+e.status+"\nResponse: "+e.responseText,n}))}function AJAX_Call_Module_Domain_JSON(e,n,t,o,r,i){return i?i.AJAX_Call_Module_Domain_JSON(e,n,t,o,r):(AJAX_Initialize(),AJAX_Call_LowLevel(null,e,"application/json",JSON.stringify(AJAX_Append_SessionParameters_JSON(r,n)),"Function=Module&Module_Code="+AJAX_CharsetEncodeAttribute(t)+"&Module_Function="+AJAX_CharsetEncodeAttribute(o),function(e){var n=new Object;return n.status=e.status,n.success=0,n.error_code="MER-AJX-00017",n.error_message="Miva Merchant returned an invalid response.\nFunction: "+o+"\nStatus: "+e.status+"\nResponse: "+e.responseText,n}))}function AJAX_Call_Domain_FieldList(e,n,t,o,r,i){for(var u=0;u<r.length;u++)o+=(o.length?"&":"")+encodeURIComponent(r[u].name)+"="+(r[u].hasOwnProperty("encoded_value")?r[u].encoded_value:encodeURIComponent(r[u].value));return AJAX_Call_Domain(e,n,t,o,i)}function AJAX_Call(e,n,t,o,r){return r?r.AJAX_Call(e,n,t,o):AJAX_Call_WithStoreCode(e,n,Store_Code,t,o,r)}function AJAX_Call_WithStoreCode(e,n,t,o,r,i){return i?i.AJAX_Call_WithStoreCode(e,n,t,o,r):(AJAX_Initialize(),AJAX_Call_LowLevel(null,e,"application/x-www-form-urlencoded",AJAX_Append_SessionParameters(r,n),"Store_Code="+AJAX_CharsetEncodeAttribute(t)+"&Function="+AJAX_CharsetEncodeAttribute(o),function(e){var n=new Object;return n.status=e.status,n.success=0,n.error_code="MER-AJX-00012",n.error_message="Miva Merchant returned an invalid response.\nFunction: "+o+"\nStatus: "+e.status+"\nResponse: "+e.responseText,n}))}function AJAX_Call_JSON(e,n,t,o,r){return r?r.AJAX_Call_JSON(e,n,t,o):(AJAX_Initialize(),AJAX_Call_LowLevel(null,e,"application/json",JSON.stringify(AJAX_Append_SessionParameters_JSON(o,n)),"Store_Code="+AJAX_CharsetEncodeAttribute(Store_Code)+"&Function="+AJAX_CharsetEncodeAttribute(t),function(e){var n=new Object;return n.status=e.status,n.success=0,n.error_code="MER-AJX-00015",n.error_message="Miva Merchant returned an invalid response.\nFunction: "+t+"\nStatus: "+e.status+"\nResponse: "+e.responseText,n}))}function AJAX_Call_FieldList(e,n,t,o,r,i){for(var u=0;u<r.length;u++)o+=(o.length?"&":"")+encodeURIComponent(r[u].name)+"="+(r[u].hasOwnProperty("encoded_value")?r[u].encoded_value:encodeURIComponent(r[u].value));return AJAX_Call(e,n,t,o,i)}function AJAX_Call_JSON_FieldList(e,n,t,o,r,i){return AJAX_Call_JSON(e,n,t,AJAX_Append_FieldList_JSON(o,r),i)}function AJAX_Call_WithFile(e,n,t,o,r,i,u,s){return s?s.AJAX_Call_WithFile(e,n,t,o,r,i,u):(AJAX_Initialize(),u&&window.FormData?AJAX_Call_WithFile_FormData(e,n,t,o,r,u):((s=new Object).success=0,s.error_code="MER-AJX-00006",s.error_message="This browser does not support file upload with the provided parameters",e.Complete(s),window.Modal_Resize&&Modal_Resize(),void 0))}function AJAX_Call_WithFile_FormData(n,e,t,o,r,i){var u,s=new FormData;for(u in o)"boolean"==typeof o[u]?s.append(u,o[u]?"1":"0"):Array.isArray(o[u])?s.append(u,PackArray(o[u])):s.append(u,o[u]);return s.append("Session_Type",e),"admin"===e&&void 0!==Session_ID&&s.append("Session_ID",Session_ID),s.append(r,i),null==(e=AJAX_New())?null:(n.Initialize(e,!0),e.upload.addEventListener("progress",function(e){n.Progress((e.loaded/e.total*100).toFixed(0))},!1),e.upload.addEventListener("load",function(e){n.Progress(100)},!1),AJAX_Call_LowLevel(e,function(e){n.Complete(e)},null,s,"Store_Code="+AJAX_CharsetEncodeAttribute(Store_Code)+"&Function="+AJAX_CharsetEncodeAttribute(t),function(e){var n=new Object;return n.success=0,n.status=e.status,n.error_code="MER-AJX-00003",n.error_message="Miva Merchant returned an invalid response.\nFunction: "+t+"\nStatus: "+e.status+"\nResponse: "+e.responseText,n}))}function AJAX_Call_WithFileList_FormData(n,e,t,o,r){var i,u,s,a=new FormData;for(s in o)a.append(s,o[s]);for(a.append("Session_Type",e),"admin"===e&&void 0!==Session_ID&&a.append("Session_ID",Session_ID),i=0,u=r.length;i<u;i++)a.append(r[i].name,r[i].file);return null==(e=AJAX_New())?null:(n.Initialize(e,!0),e.upload.addEventListener("progress",function(e){n.Progress((e.loaded/e.total*100).toFixed(0))},!1),e.upload.addEventListener("load",function(e){n.Progress(100)},!1),AJAX_Call_LowLevel(e,function(e){n.Complete(e)},null,a,"Store_Code="+AJAX_CharsetEncodeAttribute(Store_Code)+"&Function="+AJAX_CharsetEncodeAttribute(t),function(e){var n=new Object;return n.success=0,n.status=e.status,n.error_code="MER-AJX-00003",n.error_message="Miva Merchant returned an invalid response.\nFunction: "+t+"\nStatus: "+e.status+"\nResponse: "+e.responseText,n}))}function AJAX_Call_LowLevel(e,n,t,o,r,i){return null==e&&null==(e=AJAX_New())?null:(AJAX_Call_Initialize(e,n,t,r,i),e.send(o),e)}function AJAX_Call_Initialize(http_request,callback,content_type,uri,error_response){http_request.open("POST",json_nosessionurl+uri,!0),http_request.setRequestHeader("If-Modified-Since","Sat, 1 Jan 2000 00:00:00 GMT"),content_type&&http_request.setRequestHeader("Content-Type",content_type),http_request.onreadystatechange=function(){var response=null,content_length=null,content_encoding=null;if(4==http_request.readyState){if(200!=http_request.status)response=error_response(http_request),callback(response),window.Modal_Resize&&Modal_Resize();else{if(void 0!==http_request.getResponseHeader&&(content_length=http_request.getResponseHeader("Content-Length"),content_encoding=http_request.getResponseHeader("Content-Encoding")),content_length&&content_length!=http_request.responseText.length&&(null==content_encoding||"identity"==content_encoding))return;try{response="undefined"!=typeof JSON&&void 0!==JSON.parse?JSON.parse(http_request.responseText):eval("("+http_request.responseText+")")}catch(e){response=error_response(http_request)}if("session_timeout"==response.error_code||"too_many_sessions"==response.error_code)return AJAX_Invalid_Session(response,window,callback),undefined;callback(response),window.Modal_Resize&&Modal_Resize()}http_request=null}}}function AJAX_AutoComplete_Initialize(e,n,t,o,r){AJAX_Initialize(),AJAX_Call_Initialize(e,n,"application/x-www-form-urlencoded","Store_Code="+AJAX_CharsetEncodeAttribute(Store_Code)+"&Function="+AJAX_CharsetEncodeAttribute(o),function(e){var n=new Object;return n.success=0,n.status=e.status,n.error_code="MER-AJX-00007",n.error_message="Miva Merchant returned an invalid response.\nFunction: "+o+"\nStatus: "+e.status+"\nResponse: "+e.responseText,n}),e.autocomplete_content=AJAX_Append_SessionParameters(r,t)}function AJAX_AutoComplete_Execute(e){e.send(e.autocomplete_content)}function AJAX_Call_JSON_Runtime(e,n,t,o,r,i){return i?i.AJAX_Call_JSON_Runtime(e,n,t,o,r):((o=o||new Object).Session_Type=n,AJAX_Call_Runtime_LowLevel(e,r,"application/json",JSON.stringify(o),"Store_Code="+AJAX_CharsetEncodeAttribute(Store_Code)+"&Function="+AJAX_CharsetEncodeAttribute(t),function(e){var n=new Object;return n.success=0,n.status=e.status,n.error_code="MER-AJX-00016",n.error_message="Miva Merchant returned an invalid response.\nFunction: "+t+"\nStatus: "+e.status+"\nResponse: "+e.responseText,n}))}function AJAX_Call_Runtime_LowLevel(r,e,n,t,o,i){var u,s=new Object;return s.with_credentials=!1,"string"==typeof e&&e.split(",").map(e=>e.trim()).filter(e=>""!==e).map(e=>s[e]=!0),(u=new XMLHttpRequest).withCredentials=s.with_credentials,u.open("POST",runtime_json_url+o,!0),u.setRequestHeader("If-Modified-Since","Sat, 1 Jan 2000 00:00:00 GMT"),n&&u.setRequestHeader("Content-Type",n),u.onload=function(e){var n=null,t=null,o=null;if(void 0!==u.getResponseHeader&&(t=u.getResponseHeader("Content-Length"),o=u.getResponseHeader("Content-Encoding")),!t||t==u.responseText.length||null!=o&&"identity"!=o){try{n=JSON.parse(u.responseText)}catch(e){n=i(u)}"function"==typeof r&&r(n),u=null}},u.send(t),u}function PackArray(e){var n,t="";if(null==e||0==e.length)return"";for(n=0;n<e.length-1;n++)t+=encodeURIComponent(e[n])+"|";return t+=encodeURIComponent(e[n])}function EncodeArray(e){return encodeURIComponent(PackArray(e))}function PackTwoDimensionalArray(e){var n,t,o="";if(null==e||0==e.length)return"";for(n=0;n<e.length;n++){for(t=0;t<e[n].length;t++)o+=encodeURIComponent(e[n][t]),t<e[n].length-1&&(o+="%7C");n<e.length-1&&(o+="|")}return o}function EncodeTwoDimensionalArray(e){return encodeURIComponent(PackTwoDimensionalArray(e))}function Base64ToArrayBuffer(e){for(var n=atob(e),t=n.length,o=new Uint8Array(t),r=0;r<t;r++)o[r]=n.charCodeAt(r);return o.buffer}function ArrayBufferToBase64(e){for(var n=new Array,t=new Uint8Array(e),o=0,r=t.byteLength;o<r;o++)n[o]=String.fromCharCode(t[o]);return btoa(n.join(""))}function AddEvent(n,t,o){try{return n.addEventListener(t,o,!1),!0}catch(e){try{return n.attachEvent("on"+t,o)}catch(e){return!1}}}function RemoveEvent(n,t,o){try{return n.removeEventListener(t,o,!1),!0}catch(e){try{return n.detachEvent("on"+t,o)}catch(e){return!1}}}function FireEvent(e,n){var t;try{t=new Event(n,{bubbles:!0,cancelable:!0}),e.dispatchEvent(t)}catch(t){(t=document.createEvent("HTMLEvents")).initEvent(n,!0,!0),t.eventName=n,window.dispatchEvent(t)}}function AJAX_CharsetEncodeAttribute(e){return AJAX_isUnicode()?encodeURIComponent(e):"function"==typeof escape?escape(e).replace("+","%2B").replace("/","%2F").replace("@","%40"):e}function AJAX_isUnicode(){return 0==(document.characterSet||document.charset||"").search("UTF")}function AJAX_ThreadPool(e){this.threads=e,this.active_count=0,this.running=!1,this.queue=new Array,this.running_queue=new Array}AJAX_ThreadPool.prototype.AJAX_Call_Module=function(n,e,t,o,r){var i=this,u=function(e){n(e),i.ThreadComplete(),-1!=(e=arrayIndexOf(i.running_queue,s))&&i.running_queue.splice(e,1)},s=function(){i.running_queue.push(s),s.http_request=AJAX_Call_Module(u,e,t,o,r)};return this.queue.push(s),s},AJAX_ThreadPool.prototype.AJAX_Call_Module_JSON=function(n,e,t,o,r){var i=this,u=function(e){n(e),i.ThreadComplete(),-1!=(e=arrayIndexOf(i.running_queue,s))&&i.running_queue.splice(e,1)},s=function(){i.running_queue.push(s),s.http_request=AJAX_Call_Module_JSON(u,e,t,o,r)};return this.queue.push(s),s},AJAX_ThreadPool.prototype.AJAX_Call_Module_WithFile=function(n,e,t,o,r,i,u,s){var a,l=this;return n.AJAX_ThreadPool_OriginalComplete=n.Complete,n.Complete=function(e){n.AJAX_ThreadPool_OriginalComplete(e),l.ThreadComplete(),-1!=(e=arrayIndexOf(l.running_queue,a))&&l.running_queue.splice(e,1),n.Complete=n.AJAX_ThreadPool_OriginalComplete,n.AJAX_ThreadPool_OriginalComplete=null},a=function(){l.running_queue.push(a),a.http_request=AJAX_Call_Module_WithFile(n,e,t,o,r,i,u,s)},this.queue.push(a),a},AJAX_ThreadPool.prototype.AJAX_Call_Domain=function(n,e,t,o){var r=this,i=function(e){n(e),r.ThreadComplete(),-1!=(e=arrayIndexOf(r.running_queue,u))&&r.running_queue.splice(e,1)},u=function(){r.running_queue.push(u),u.http_request=AJAX_Call_Domain(i,e,t,o)};return this.queue.push(u),u},AJAX_ThreadPool.prototype.AJAX_Call_Domain_JSON=function(n,e,t,o){var r=this,i=function(e){n(e),r.ThreadComplete(),-1!=(e=arrayIndexOf(r.running_queue,u))&&r.running_queue.splice(e,1)},u=function(){r.running_queue.push(u),u.http_request=AJAX_Call_Domain_JSON(i,e,t,o)};return this.queue.push(u),u},AJAX_ThreadPool.prototype.AJAX_Call_Module_Domain_JSON=function(n,e,t,o,r){var i=this,u=function(e){n(e),i.ThreadComplete(),-1!=(e=arrayIndexOf(i.running_queue,s))&&i.running_queue.splice(e,1)},s=function(){i.running_queue.push(s),s.http_request=AJAX_Call_Module_Domain_JSON(u,e,t,o,r)};return this.queue.push(s),s},AJAX_ThreadPool.prototype.AJAX_Call=function(n,e,t,o){var r=this,i=function(e){n(e),r.ThreadComplete(),-1!=(e=arrayIndexOf(r.running_queue,u))&&r.running_queue.splice(e,1)},u=function(){r.running_queue.push(u),u.http_request=AJAX_Call(i,e,t,o)};return this.queue.push(u),u},AJAX_ThreadPool.prototype.AJAX_Call_WithStoreCode=function(n,e,t,o,r){var i=this,u=function(e){n(e),i.ThreadComplete(),-1!=(e=arrayIndexOf(i.running_queue,s))&&i.running_queue.splice(e,1)},s=function(){i.running_queue.push(s),s.http_request=AJAX_Call_WithStoreCode(u,e,t,o,r)};return this.queue.push(s),s},AJAX_ThreadPool.prototype.AJAX_Call_JSON=function(n,e,t,o){var r=this,i=function(e){n(e),r.ThreadComplete(),-1!=(e=arrayIndexOf(r.running_queue,u))&&r.running_queue.splice(e,1)},u=function(){r.running_queue.push(u),u.http_request=AJAX_Call_JSON(i,e,t,o)};return this.queue.push(u),u},AJAX_ThreadPool.prototype.AJAX_Call_JSON_Runtime=function(n,e,t,o,r){var i=this,u=function(e){n(e),i.ThreadComplete(),-1!=(e=arrayIndexOf(i.running_queue,s))&&i.running_queue.splice(e,1)},s=function(){i.running_queue.push(s),s.http_request=AJAX_Call_JSON_Runtime(u,e,t,o,r)};return this.queue.push(s),s},AJAX_ThreadPool.prototype.AJAX_Call_WithFile=function(n,e,t,o,r,i,u){var s,a=this;return n.AJAX_ThreadPool_OriginalComplete=n.Complete,n.Complete=function(e){n.AJAX_ThreadPool_OriginalComplete(e),a.ThreadComplete(),-1!=(e=arrayIndexOf(a.running_queue,s))&&a.running_queue.splice(e,1),n.Complete=n.AJAX_ThreadPool_OriginalComplete,n.AJAX_ThreadPool_OriginalComplete=null},s=function(){a.running_queue.push(s),s.http_request=AJAX_Call_WithFile(n,e,t,o,r,i,u)},this.queue.push(s),s},AJAX_ThreadPool.prototype.AJAX_Call_Custom=function(n,e){var t=this,o=function(e){n(e),t.ThreadComplete(),-1!=(e=arrayIndexOf(t.running_queue,r))&&t.running_queue.splice(e,1)},r=function(){t.running_queue.push(r),setTimeout(function(){e(o,r)},0)};return this.queue.push(r),r},AJAX_ThreadPool.prototype.Run=function(){var e,n;if(this.running){if(this.active_count<this.threads)for(e=this.active_count;e<=this.threads;e++)this.ThreadStart()}else{if(this.onStart(),this.running=!0,0==this.queue.length)return this.Finished();for(e=0,n=this.threads;e<n&&0<this.queue.length;e++)this.ThreadStart()}},AJAX_ThreadPool.prototype.Cancel=function(){var e,n=this.running_queue;for(this.active_count=0,this.running=!1,this.queue=new Array,this.running_queue=new Array;n.length;)(e=n.pop())&&e.http_request&&(e.http_request.onload=function(){},e.http_request.onreadystatechange=function(){},e.http_request.abort());this.onComplete()},AJAX_ThreadPool.prototype.Queue_Count=function(){return this.queue.length},AJAX_ThreadPool.prototype.Thread_Limit=function(){return this.threads},AJAX_ThreadPool.prototype.DequeueFromStart=function(e){for(e=e||1;this.queue.length&&e--;)this.queue.splice(0,1)},AJAX_ThreadPool.prototype.LimitQueueToCount=function(e){if(e)for(;this.queue.length>e;)this.queue.splice(0,1)},AJAX_ThreadPool.prototype.RemoveFromQueue=function(e){e=this.queue.indexOf(e);-1!==e&&this.queue.splice(e,1)},AJAX_ThreadPool.prototype.SetThreadCount=function(e){this.threads=e},AJAX_ThreadPool.prototype.ThreadStart=function(){if(0==this.queue.length)return 0==this.active_count&&this.Finished(),undefined;this.active_count++,this.queue.splice(0,1)[0]()},AJAX_ThreadPool.prototype.ThreadComplete=function(){this.active_count--,this.ThreadStart()},AJAX_ThreadPool.prototype.Finished=function(){0==this.active_count&&(this.running=!1,this.onComplete())},AJAX_ThreadPool.prototype.Running=function(){return!!this.running},AJAX_ThreadPool.prototype.onStart=function(){},AJAX_ThreadPool.prototype.onComplete=function(){};