﻿(function(){var a=null;function b(){var m="\r\n--",f="\r\n",e="--",r="DataServiceVersion",h="GET",d="application/json",c="Content-Type",l="DELETE",k="MERGE",j="POST",i="undefined",b=false,g=true,q="$filter",p="$orderby",o="$top",n="$skip";Type._registerScript("MicrosoftAjaxAdoNet.js",["MicrosoftAjaxWebServices.js"]);var s=Sys._merge;Type.registerNamespace("Sys.Data");if(!Sys.Data.IDataProvider){Sys.Data.IDataProvider=function(){};Sys.Data.IDataProvider.registerInterface("Sys.Data.IDataProvider")}if(!Sys.Data.MergeOption){Sys.Data.MergeOption=function(){};Sys.Data.MergeOption.prototype={appendOnly:0,overwriteChanges:1};Sys.Data.MergeOption.registerEnum("Sys.Data.MergeOption")}Sys.Data.AdoNetQueryBuilder=function(b){var a=this;a._queryParameters={};a._uri=b;var c=b.indexOf("?");if(c>=0){a._uri=b.substr(0,c);var e=b.substr(c+1).split("&");for(var f in e){param=e[f];var d=param.indexOf("=");if(d>=0)a._queryParameters[decodeURIComponent(param.substr(0,d))]=decodeURIComponent(param.substr(d+1));else a._queryParameters[decodeURIComponent(param)]=""}}};Sys.Data.AdoNetQueryBuilder.prototype={_queryParameters:a,_uri:a,get_skip:function(){return this._getIntParam(n)},set_skip:function(a){this._setParam(n,a)},get_top:function(){return this._getIntParam(o)},set_top:function(a){this._setParam(o,a)},get_orderby:function(){return this._getStringParam(p)},set_orderby:function(a){this._setParam(p,a)},get_filter:function(){return this._getStringParam(q)},set_filter:function(a){this._setParam(q,a)},get_expand:function(){return this._getStringParam("$expand")},set_expand:function(a){this._setParam("$expand",a)},get_resourcePath:function(){return this._uri},get_queryParameters:function(){return this._queryParameters},set_queryParameters:function(a){this._queryParameters=a},toString:function(){var c,f,e,d=[],i=this._queryParameters,j=Sys.Data.AdoNetQueryBuilder._queryOptions;for(c in i)if(i.hasOwnProperty(c)&&!Array.contains(j,c)){e=i[c];if(e!=a)d.push({key:c,value:e})}for(f in j){c=j[f];e=i[c];if(e!=a)d.push({key:c,value:e})}var h=new Sys.StringBuilder(this._uri),k=g;for(f in d)if(d.hasOwnProperty(f)){h.append(k?"?":"&");h.append(encodeURIComponent(d[f].key));h.append("=");h.append(encodeURIComponent(d[f].value));k=b}return h.toString()},_getIntParam:function(c){var b=parseInt(this._queryParameters[c]);return isNaN(b)?a:b},_getStringParam:function(c){var b=this._queryParameters[c];return b||a},_setParam:function(c,b){if(typeof b===i||b===a)delete this._queryParameters[c];else this._queryParameters[c]=b}};Sys.Data.AdoNetQueryBuilder._queryOptions=[q,p,n,o];Sys.Data.AdoNetQueryBuilder.registerClass("Sys.Data.AdoNetQueryBuilder");Sys.Data._AdoNetUtil=function(){};Sys.Data._AdoNetUtil.concatUris=function(b,a){if(a.indexOf("//")>=0)return a;if(b.endsWith("/"))b=b.substr(0,b.length-1);if(a.startsWith("/"))a=a.substr(1);return b+"/"+a};Sys.Data._AdoNetUtil.extractETag=function(b){return b.__metadata?b.__metadata.etag||a:a};Sys.Data._AdoNetUtil.extractUri=function(b){return b.__metadata?b.__metadata.uri||a:a};Sys.Data._AdoNetUtil.registerClass("Sys.Data._AdoNetUtil");Sys.Data.AdoNetActionResult=function(e,c,b,d){var a=this;a._result=e;a._headers=c||{};a._actionContext=b;a._operation=d};Sys.Data.AdoNetActionResult.prototype={_actionContext:a,_operation:a,_result:a,_headers:a,get_httpHeaders:function(){return this._headers},get_actionContext:function(){return this._actionContext},get_operation:function(){return this._operation},get_result:function(){return this._result}};Sys.Data.AdoNetActionResult.registerClass("Sys.Data.AdoNetActionResult");Sys.Data.AdoNetActionSequence=function(a){this._actionQueue=[];this._dataService=a};Sys.Data.AdoNetActionSequence.prototype={get_serviceProxy:function(){return this._dataService},addInsertAction:function(d,b,c){var a=this._actionQueue;a[a.length]=[0,b,d,c]},addUpdateAction:function(e,d,c){var b=this._actionQueue;b[b.length]=[1,d||a,e,c]},addRemoveAction:function(d,c){var b=this._actionQueue;b[b.length]=[2,a,d,c]},clearActions:function(){this._actionQueue=[]},execute:function(p,q,r){var g=this,m=g._actionQueue,d=new Sys.Data._AdoNetBatchWriter(window.location.host),o=g._dataService;g._actionQueue=[];d.startChangeSet();for(var i=0,s=m.length;i<s;i++){var e=m[i],f=e[1],h=e[2],n=Sys.Data._AdoNetUtil.extractETag(h);switch(e[0]){case 0:e[0]="insert";d.addChange(f,n,j,Sys.Serialization.JavaScriptSerializer.serialize(h),i);break;case 1:e[0]="edit";if(!f)f=Sys.Data._AdoNetUtil.extractUri(h);d.addChange(f,n,o.get_replaceOnUpdate()?"PUT":k,Sys.Serialization.JavaScriptSerializer.serialize(h));break;case 2:e[0]="remove";f=Sys.Data._AdoNetUtil.extractUri(h);d.addChange(f,n,l,a)}}d.endChangeSet();var b=new Sys.Net.WebRequest;b.set_url(Sys.Data._AdoNetUtil.concatUris(o.get_serviceUri(),"$batch"));b.get_headers()[c]="multipart/mixed; boundary="+d.get_topBoundary();b.set_httpVerb(j);b.set_timeout(o.get_timeout());b.set_body(d.get_requestBody());b.set_userContext({q:m,bw:d,c:r,s:p,f:q});b.add_completed(Function.createDelegate(g,g._batchCompleted));b.invoke();return b},_batchCompleted:function(k){var e="actionSequence",j,f,g,l=k.get_webRequest().get_userContext(),u=l.q,s=l.f,r=l.s,p=l.c,y=l.bw,h=this._dataService._checkForError(k,e,b);function w(){var f=g.status?parseFloat(g.status.code):-1;if(f<200||f>300){var j;if(g.headers[c]===d){var i=Sys.Serialization.JavaScriptSerializer.deserialize(g.body);h=Sys.Data.AdoNetActionSequence._getError(b,f,a,i,e)}else h=Sys.Data.AdoNetActionSequence._getError(b,f,String.format(Sys.Data.AdoNetRes.operationFailed,e))}}function n(){if(s)s(h,p,e)}if(h){n();return}f=Sys.Data._AdoNetBatchReader._parseResponse(k);if(f.length!==1){h=Sys.Data.AdoNetActionSequence._getError(b,-1,String.format(Sys.Data.AdoNetRes.invalidBatchResponse,k.get_webRequest().get_url()));n();return}f=f[0];if(f.length===1){g=f[0];w();if(h){n();return}}if(f.length!==u.length){h=Sys.Data.AdoNetActionSequence._getError(b,-1,String.format(Sys.Data.AdoNetRes.invalidBatchResponse,k.get_webRequest().get_url()));n();return}if(r){var v=f.length,t=new Array(v);for(var m=0;m<v;m++){g=f[m],body=g.body;j=a;if(body){j=Sys.Serialization.JavaScriptSerializer.deserialize(body);if(j&&j.d)j=j.d}var q=u[m],o=q[3],x=q[0];if(typeof o===i)o=a;t[m]=new Sys.Data.AdoNetActionResult(j,g.headers,o,x)}r(t,p,e)}}};Sys.Data.AdoNetActionSequence.registerClass("Sys.Data.AdoNetActionSequence");Sys.Data.AdoNetActionSequence._getError=function(h,l,i,d,g){var c,f=d?d.error:a;if(!f)c=new Sys.Net.WebServiceError(h,String.format(i||Sys.Data.AdoNetRes.operationFailed,g));else{var b=f.message,e=f.innererror,j,k;b=b&&b.value?b.value:a;if(e){k=e.type;j=e.stacktrace}c=new Sys.Net.WebServiceError(h,String.format(i||b||Sys.Data.AdoNetRes.operationFailed,g),j||a,k||a,d)}c._statusCode=l;return c};Sys.Data.AdoNetInvokeParametersBuilder=function(){this._queryBuilder=new Sys.Data.AdoNetQueryBuilder("");this._parameters=this._queryBuilder.get_queryParameters()};Sys.Data.AdoNetInvokeParametersBuilder.prototype={_parameters:a,_queryBuilder:a,get_parameters:function(){return this._parameters},addBoolean:function(b,a){this._parameters[b]=a.toString()},addDate:function(d,a,b){var c=b?a.format("yyyy-MM-ddTHH:mm:ss.fffffffzzz"):a.format("yyyy-MM-ddTHH:mm:ss.fffffff");this._parameters[d]="datetime'"+c+"'"},addDecimal:function(b,a){this._parameters[b]=a.toString()+"M"},addDouble:function(b,a){this._parameters[b]=a.toString()},addGuid:function(b,a){this._parameters[b]="guid'"+a+"'"},addInteger:function(b,a){this._parameters[b]=a.toString()},addString:function(b,a){this._parameters[b]="'"+a.replace(new RegExp("'","g"),"''")+"'"},toString:function(){return this._queryBuilder.toString()}};Sys.Data.AdoNetInvokeParametersBuilder.registerClass("Sys.Data.AdoNetInvokeParametersBuilder");Sys.Data.AdoNetServiceProxy=function(a){this._serviceUri=a;Sys.Data.AdoNetServiceProxy.initializeBase(this)};Sys.Data.AdoNetServiceProxy.prototype={_replaceOnUpdate:b,_serviceUri:a,_usePostTunneling:g,get_path:function(){return this.get_serviceUri()},get_replaceOnUpdate:function(){return this._replaceOnUpdate},set_replaceOnUpdate:function(a){this._replaceOnUpdate=a},get_serviceUri:function(){return this._serviceUri},createActionSequence:function(){return new Sys.Data.AdoNetActionSequence(this)},insert:function(g,d,b,c,e,f){var a=this._prepareWebRequest(g,d,j,b,c,e,"insert",f);a.invoke();return a},invoke:function(d,b,j,f,g,i,k){var c=new Sys.Data.AdoNetQueryBuilder(d);c._queryParameters=s(a,c._queryParameters,j);b=b||h;var e=this._prepareWebRequest(a,c.toString(),b,f,g,i,d,k);e.invoke();return e},fetchData:function(e,b,m,n,j,k,h,l){var c=this,g,d=a;if(typeof h!==i){d=c.get_timeout();c.set_timeout(h)}if(b)for(var f in b)if(b.hasOwnProperty(f))e+=(e.indexOf("?")<0?"?":"&")+encodeURIComponent(f)+"="+encodeURIComponent(b[f]);g=c.query(e,j,k,l);if(d!==a)c.set_timeout(d);return g},fetchDeferredProperty:function(b,c,f,i,j,k){var g=Function.createDelegate(this,function(g,e,d){b[c]=g;var a=f||this.get_defaultSucceededCallback();if(a)a(b,e,d)}),d;if(b[c]&&b[c].__deferred&&b[c].__deferred.uri)d=b[c].__deferred.uri;else if(b.__metadata&&b.__metadata.uri)d=b.__metadata.uri+"/"+c;var e=this._prepareWebRequest(a,d,h,g,i,j,c,k);e.invoke();return e},query:function(c,d,e,f,g){var b=this._prepareWebRequest(a,c,h,d,e,f,c,g);b.invoke();return b},update:function(g,c,d,e,f){var h=this._replaceOnUpdate?"PUT":k,b=this._prepareWebRequest(g,a,h,c,d,e,"update",f);b.invoke();return b},remove:function(h,d,e,f,g){var b=this._prepareWebRequest(h,a,l,d,e,f,"remove",g);b.set_body(a);delete b.get_headers()[c];b.invoke();return b},_checkForError:function(g,n,p){var h=this,e,k=a,l=b,f=0;if(!g.get_responseAvailable()){l=g.get_timedOut();e=l?Sys.Data.AdoNetRes.operationTimedOut:String.format(Sys.Data.AdoNetRes.operationFailed,n)}else{f=g.get_statusCode();if(f===1223||f===0)f=204;if(p){var m=g.getResponseHeader(r);if(!m.startsWith("1.0;")&&f!==204)e=m.length>0?String.format(Sys.Data.AdoNetRes.serviceVersionTooHigh,h.get_serviceUri()):String.format(Sys.Data.AdoNetRes.uriNotAdoNetService,h.get_serviceUri())}if(!e&&(f<200||f>=300)){var i=g.getResponseHeader(c);if(i.startsWith(d))k=g.get_object();else if(i.startsWith("application/xml")||i.startsWith("text/xml")){var q=g.get_xml(),j=q.documentElement.getElementsByTagName("message");if(j&&j.length){var o=j[0];if(o.childNodes.length)e=o.childNodes[0].nodeValue}if(!e)e=String.format(Sys.Data.AdoNetRes.uriNotAdoNetService,h.get_serviceUri())}else e=String.format(Sys.Data.AdoNetRes.uriNotAdoNetService,h.get_serviceUri())}}if(e||k)return Sys.Data.AdoNetActionSequence._getError(l,f,e,k,n);return a},_onResponseComplete:function(f,j,i,h,e){var k=this._checkForError(f,e,g);if(k){if(i)i(k,h,e)}else if(j){var l=f.getResponseHeader(c),b=a;if(l.startsWith(d)){b=f.get_object();b=b.d||b}j(b,h,e)}},_prepareWebRequest:function(m,t,q,o,n,h,u,b){var e=this;b=b||new Sys.Net.WebRequest;b.set_url(Sys.Data._AdoNetUtil.concatUris(e._serviceUri,t||""));b.set_timeout(e.get_timeout());var f=b.get_headers();f["Accept"]=d;f[r]="1.0;AspNetAjax";f["MaxDataServiceVersion"]="1.0;";b.set_httpVerb(q);if(e._usePostTunneling){var g=q.toUpperCase();if(g==="PUT"||g===l||g===k){b.set_httpVerb(j);f["X-HTTP-Method"]=g}}if(m){b.set_body(Sys.Serialization.JavaScriptSerializer.serialize(m));f[c]=d;var p=Sys.Data._AdoNetUtil.extractETag(m);if(p)f["If-Match"]=p;var s=Sys.Data._AdoNetUtil.extractUri(m);if(s)b.set_url(s)}o=o||e.get_defaultSucceededCallback();n=n||e.get_defaultFailedCallback();if(typeof h===i||h===a)h=e.get_defaultUserContext();b.add_completed(Function.createDelegate(e,function(a){this._onResponseComplete(a,o,n,h,u)}));return b}};Sys.Data.AdoNetServiceProxy.registerClass("Sys.Data.AdoNetServiceProxy",Sys.Net.WebServiceProxy,Sys.Data.IDataProvider);Sys.Data._AdoNetBatchReader=function(b,c){var a=this;a._responseBody=b;a._boundary=[c];a._position=0;a._responses=[];a._parseParts(a._responses)};Sys.Data._AdoNetBatchReader.prototype={get_responses:function(){return this._responses},_parseParts:function(h){var b=this;if(b._readToMark(e+b._currentBoundary(),g)===a)return;b._readLine();var i=a;while(i!==e&&!b._eof()){var f=[];b._parseHeaders(f);var d=f[c];if(d.indexOf("multipart/mixed")===0){var j=[];b._boundary.push(Sys.Data._AdoNetBatchReader._boundaryFromTypeHeader(d));b._parseParts(j);b._boundary.pop();h.push(j);var k=b._readToMark(e+b._currentBoundary(),g)}else if(d.indexOf("application/http")===0)h.push(b._parseHttpResponse());i=b._peek(2);b._readLine()}},_parseHttpResponse:function(){var a=this,h=a._readLine(),d=a._parseStatus(h),c=[];a._parseHeaders(c);var b=a._readToMark(e+a._currentBoundary(),g);if(b===f)b="";return {status:d,headers:c,body:b}},_parseHeaders:function(c){for(var a=this._readLine();a;a=this._readLine()){var b=this._parseHeader(a);c[b.name]=b.value}},_parseHeader:function(b){if(b===a)return a;var c=b.indexOf(":");return c===-1?a:{name:b.substring(0,c).trim(),value:b.substring(c+1).trim()}},_parseStatus:function(c){var b=Sys.Data._AdoNetBatchReader._statusRegExp.exec(c);return b?{code:b[1],text:b[2]}:a},_currentBoundary:function(){return this._boundary[this._boundary.length-1]},_eof:function(){return this._position===-1},_readLine:function(){return this._readToMark(f,b)},_readToMark:function(e,f){var b=this;if(b._eof())return a;var c,d=b._responseBody.indexOf(e,b._position);if(d<0)if(f)c=a;else{c=b._responseBody.substring(b._position);b._position=-1}else{c=b._responseBody.substring(b._position,d);b._position=d+e.length}return c},_peek:function(b){var a=this;if(a._eof())return "";return a._responseBody.substring(a._position,a._position+b)}};Sys.Data._AdoNetBatchReader._boundaryFromTypeHeader=function(c){var d=/;\s*boundary=(.*)$/i,b=d.exec(c);return b?b[1]:a};Sys.Data._AdoNetBatchReader._parseResponse=function(a){var b=new Sys.Data._AdoNetBatchReader(a.get_responseData(),Sys.Data._AdoNetBatchReader._boundaryFromTypeHeader(a.getResponseHeader(c)));return b.get_responses()};Sys.Data._AdoNetBatchReader._statusRegExp=new RegExp("^HTTP\\/1\\.[01] (\\d{3}) (.*)$","i");Sys.Data._AdoNetBatchReader.registerClass("Sys.Data._AdoNetBatchReader");Sys.Data._AdoNetBatchWriter=function(c){var b=this;b._host=c;b._content="";b._boundary=a;b._changesetBoundary=a;b._changesetEntries=a;b._contentType=d};Sys.Data._AdoNetBatchWriter.prototype={get_contentType:function(){return this._contentType},set_contentType:function(a){this._contentType=a},get_requestBody:function(){return this._content+e+this.get_topBoundary()+e},get_topBoundary:function(){var a=this;if(!a._boundary)a._boundary="batch_"+a._createBoundary();return a._boundary},addChange:function(b,e,c,d,a){this._changesetEntries.push({uri:b,eTag:e,method:c,body:d,contentId:a})},addQuery:function(b){this._content+=this._startPart(this.get_topBoundary(),h,b,a)+f},endChangeSet:function(){var b=this,c="";for(var e in b._changesetEntries){var d=b._changesetEntries[e];c+=b._startPart(b._changesetBoundary,d.method,d.uri,d.eTag,d.contentId);if(d.body)c+="Content-Type: "+b._contentType+";charset=utf-8\r\n";c+=f;if(d.body)c+=d.body}if(c)c+=m+b._changesetBoundary+"--\r\n";b._content+=m+b.get_topBoundary()+"\r\nContent-Type: multipart/mixed;boundary="+b._changesetBoundary+"\r\n\r\n"+c;b._changesetBoundary=a;b._changesetEntries=a},startChangeSet:function(){this._changesetBoundary="changeset_"+this._createBoundary();this._changesetEntries=[]},_createBoundary:function(){function a(){return Math.floor((1+Math.random())*65536).toString(16).substr(1)}return a()+"-"+a()+"-"+a()},_startPart:function(d,e,g,c,b){var a=m+d+"\r\nContent-Type: application/http\r\nContent-Transfer-Encoding: binary\r\n\r\n"+e+" "+g+" HTTP/1.1\r\n";if(typeof b==="number")a+="Content-ID: "+b+f;if(c)a+="If-Match: "+c+f;a+="Host: "+this._host+"\r\nAccept: "+this.get_contentType()+"\r\nAccept-Charset: utf-8\r\n";return a}};Sys.Data._AdoNetBatchWriter.registerClass("Sys.Data._AdoNetBatchWriter")}if(window.Sys&&Sys.loader)Sys.loader.registerScript("AdoNet",a,b);else b()})();
Type.registerNamespace('Sys.Data');Sys.Data.AdoNetRes={'uriNotAdoNetService':'The URI \'{0}\' does not point to an ADO.NET Data Service.','invalidBatchResponse':'The batch operation failed due to an invalid response from \'{0}\'.','operationTimedOut':'The data operation \'{0}\' timed out.','operationFailed':'The data operation \'{0}\' failed.','serviceVersionTooHigh':'The URI \'{0}\' points to an ADO.NET Data Service of a higher version than is supported by this library.'};

