function AjaxQueue(){this._items=[];this._isrunning=false;this._serviceurl="/Web/Services/Action.asmx/Request"}AjaxQueue.prototype.serviceUrl=function(a){if(a!=null&&a!=undefined)this._serviceurl=a;return this._serviceurl};AjaxQueue.prototype.addItem=function(a){this._items.push(a);this._items.length==1&&this.processNext()};AjaxQueue.prototype.processNext=function(){var a=this;if(a._items.length<=0||a._isrunning)return;a._isrunning=true;var b=a,c=a._items.pop();$.ajax({type:"POST",url:b.serviceUrl(),data:c.jsonParameters(),contentType:"application/json; charset=utf-8",dataType:"json",success:function(d,a){c.onAjaxSuccess(d,a);b._isrunning=false;b.processNext()},error:function(a,e,d){var f=a.statusText.length>0?a.statusText:e,g=a.responseText.length>0?a.responseText:d?d:"Unknown Error";c.parseResult("{'success':false,'content':'"+g.replace("'","'").replace(/\n/gi,"\\n").replace(/\r/gi,"\\r")+"'}",f);c.onAjaxFailed();b._isrunning=false;b.processNext()}})};var ajaxQueue=new AjaxQueue,ajaxQueue2=new AjaxQueue;function AjaxRequest(a){this._request=a;this.reset()}AjaxRequest.prototype.reset=function(){var a=this;a._status=undefined;a._success=undefined;a._parameters=undefined;a._content="";a._debug=false;a._validationerrors=undefined};AjaxRequest.prototype.debug=function(a){if(a!=null&&a!=undefined)this._debug=a;return this._debug};AjaxRequest.prototype.success=function(a){if(a!=null&&a!=undefined)this._success=a;return this._success};AjaxRequest.prototype.content=function(a){if(a!=null&&a!=undefined)this._content=a;return this._content};AjaxRequest.prototype.status=function(a){if(a!=null&&a!=undefined)this._status=a;return this._status};AjaxRequest.prototype.request=function(a){if(a!=null&&a!=undefined)this._request=a;return this._request};AjaxRequest.prototype.parameters=function(a){if(a!=null&&a!=undefined)this._parameters=a;return this._parameters};AjaxRequest.prototype.validationerrors=function(a){if(a!=null&&a!=undefined&&a.length){this._validationerrors=[];for(var b=0;b<a.length;b++){var c={};for(var d in a[b])c[d.toLowerCase()]=a[b][d];this._validationerrors.push(c)}}return this._validationerrors};AjaxRequest.prototype.jsonParameters=function(){var a=this.request().values();if(a==null||a==undefined)a={};a.action=this.request().action();a.type=this.request().type();var b={};b.Data=$.URLEncode(encodeUTF(JSON.stringify(a)));return JSON.stringify(b)};AjaxRequest.prototype.run=function(){var a=this;a.reset();if(a.request().validate){var c=a.request().validate();if(c==true){var b=a;b.request().onBeforeLoad&&b.request().onBeforeLoad(b);if(ajaxQueue._items.length>ajaxQueue2._items.length||ajaxQueue._isrunning)ajaxQueue2.addItem(b);else ajaxQueue.addItem(b)}else{a.success(false);a.content(c);a.onAjaxFailed()}}};AjaxRequest.prototype.parseResult=function(c,e){var b=this;if(c!=null&&c!=undefined)try{var a=JSON.parse(c);if(a){b.success(a.Success?a.Success:false);b.content(a.Content);b.parameters(a.Parameters?a.Parameters:{});b.validationerrors(a.Errors?a.Errors:{})}}catch(d){b.success(false);b.content(d.Description)}b.status(e)};AjaxRequest.prototype.onAjaxSuccess=function(b,c){var a=this;if(b!=null&&b.d)a.parseResult(b.d,c);else a.parseResult(b,c);if(a.success()){a.request().onAfterLoad()&&a.request().onAfterLoad()(a);a.request().onSuccess&&a.request().onSuccess(a);a.request().onComplete()&&a.request().onComplete()(a)}else a.onAjaxFailed()};AjaxRequest.prototype.onAjaxFailed=function(){var a=this;a.request().onAfterLoad()&&a.request().onAfterLoad()(a);a.request().onFail&&a.request().onFail(a);a.request().onComplete()&&a.request().onComplete()(a);a._debug&&alert(a.content())};function AjaxAction(a){var b=this;b._type="action";b._action=a.action?a.action:undefined;b._values=a.values?a.values:undefined;b._items=a.items?a.items:undefined;b._onsuccess=a.onsuccess?a.onsuccess:undefined;b._oncomplete=a.oncomplete?a.oncomplete:undefined;b._onbeforeload=a.onbeforeload?a.onbeforeload:undefined;b._onafterload=a.onafterload?a.onafterload:undefined}AjaxAction.prototype.copyPrototype=function(b,a){var e=a.toString(),c=e.match(/\s*function (.*)\(/);if(c!=null)b.prototype[c[1]]=a;for(var d in a.prototype)b.prototype[d]=a.prototype[d]};AjaxAction.prototype.validate=function(){if(this._action==undefined)return "Missing Action";return true};AjaxAction.prototype.type=function(a){if(a!=null&&a!=undefined)this._type=a;return this._type};AjaxAction.prototype.action=function(a){if(a!=null&&a!=undefined)this._action=a;return this._action};AjaxAction.prototype.values=function(a){if(a!=null&&a!=undefined)this._values=a;return this._values};AjaxAction.prototype.items=function(a){if(a!=null&&a!=undefined)this._items=a;return this._items};AjaxAction.prototype.onComplete=function(a){if(a!=null&&a!=undefined)this._oncomplete=a;return this._oncomplete};AjaxAction.prototype.onBeforeLoad=function(a){if(a!=null&&a!=undefined)this._onbeforeload=a;return this._onbeforeload};AjaxAction.prototype.onAfterLoad=function(a){if(a!=null&&a!=undefined)this._onafterload=a;return this._onafterload};AjaxAction.prototype.perform=function(a){(new AjaxRequest(new AjaxAction(a))).run()};function AjaxReplacer(a){this.AjaxAction(a);this._type="control";this._target=a.target?a.target:undefined}AjaxAction.prototype.copyPrototype(AjaxReplacer,AjaxAction);AjaxReplacer.prototype.target=function(a){if(a!=null&&a!=undefined)this._target=typeof a=="string"?$("#"+a):$(a);return this._target};AjaxReplacer.prototype.validate=function(){if(this._action==undefined)return "Missing Action";if(this._target==undefined)return "Missing Target";return true};AjaxReplacer.prototype.onSuccess=function(b){var a=this;if(a._onsuccess!=undefined)a._onsuccess(b);else if(b.success()&&a.target()&&a.target().html)a.target().html(b.content());else a.onFail(b)};AjaxReplacer.prototype.onFail=function(b){var a=this;if(b.debug())if(a.target()&&a.target().html){a.target().empty();a.target().html(b.content())}else alert(b.content())};AjaxReplacer.prototype.perform=function(a){(new AjaxRequest(new AjaxReplacer(a))).run()};function AjaxAutoComplete(c){var b="autocompleteloadinganimation";c.search.length<=0&&alert("no search specified");var a=this;a.search=c.search;a.control=c.control;a.onselect=c.onselect?c.onselect:undefined;a.onsearch=c.onsearch?c.onsearch:function(){!this.control.hasClass(b)&&this.control.addClass(b)};a.onopen=c.onopen?c.onopen:function(){this.control.hasClass(b)&&this.control.removeClass(b)};a.limit=c.limit?c.limit:10;a.values=c.values;c.control.autocomplete({open:function(b,c){a.onopen&&a.onopen(b,c)},select:function(b,c){a.onselect&&a.onselect(b,c)},search:function(b,c){a.onsearch&&a.onsearch(b,c)},source:function(f,e){var c={type:"autocomplete",term:f.term,limit:a.limit,searchtype:a.search};if(a.values)for(var d in a.values)c[d]=a.values[d];$.ajax({type:"POST",url:"/Web/Services/Action.asmx/Request",dataType:"json",contentType:"application/json; charset=utf-8",data:JSON.stringify({Data:$.URLEncode(JSON.stringify(c))}),success:function(f){a.control.hasClass(b)&&a.control.removeClass(b);var d=null;if(f!=null&&f.d)d=f.d;else d=f;if(d!=null&&d!=undefined)try{var c=eval("("+d+")");if(c)if(c.Success&&c.Parameters&&c.Parameters.Items&&c.Parameters.Items.items){var g=[];for(var h in c.Parameters.Items.items)g.push({label:c.Parameters.Items.items[h],value:h});e(g)}else error();else error()}catch(i){error()}else error()},error:function(){a.control.hasClass(b)&&a.control.removeClass(b)}})}})}