Click here to Skip to main content
15,897,273 members
Articles / Web Development / ASP.NET

Drag & Drop Shopping Cart Using ASP.NET MVC and JQuery

Rate me:
Please Sign up or sign in to vote.
4.76/5 (25 votes)
18 Dec 2011CPOL3 min read 176.1K   15.1K   79  
Add interactivity to Shopping Cart Using JQuery and ASP.NET MVC
/*
* Note: While Microsoft is not the author of this file, Microsoft is
* offering you a license subject to the terms of the Microsoft Software
* License Terms for Microsoft ASP.NET Model View Controller 4 Developer Preview.
* Microsoft reserves all other rights. The notices below are provided
* for informational purposes only and are not the license terms under
* which Microsoft distributed this file.
*/
// Knockout JavaScript library v1.3.0beta
// (c) Steven Sanderson - http://knockoutjs.com/

(function(window,undefined){ 
function c(b){throw b;}var l=void 0,o=null,r=window.ko={};r.b=function(b,e){for(var d=b.split("."),a=window,f=0;f<d.length-1;f++)a=a[d[f]];a[d[d.length-1]]=e};r.l=function(b,e,d){b[e]=d};
r.a=new function(){function b(a,f){if(a.tagName!="INPUT"||!a.type)return!1;if(f.toLowerCase()!="click")return!1;var g=a.type.toLowerCase();return g=="checkbox"||g=="radio"}var e=/^(\s|\u00A0)+|(\s|\u00A0)+$/g,d={click:1,dblclick:1,mousedown:1,mouseup:1,mousemove:1,mouseover:1,mouseout:1,mouseenter:1,mouseleave:1};return{Ba:["authenticity_token",/^__RequestVerificationToken(_.*)?$/],p:function(a,f){for(var g=0,b=a.length;g<b;g++)f(a[g])},k:function(a,f){if(typeof a.indexOf=="function")return a.indexOf(f);
for(var g=0,b=a.length;g<b;g++)if(a[g]===f)return g;return-1},Ta:function(a,f,g){for(var b=0,d=a.length;b<d;b++)if(f.call(g,a[b]))return a[b];return o},ba:function(a,f){var g=r.a.k(a,f);g>=0&&a.splice(g,1)},aa:function(a,f){for(var a=a||[],g=[],b=0,d=a.length;b<d;b++)g.push(f(a[b]));return g},$:function(a,f){for(var a=a||[],g=[],b=0,d=a.length;b<d;b++)f(a[b])&&g.push(a[b]);return g},J:function(a,f){for(var g=0,b=f.length;g<b;g++)a.push(f[g]);return a},extend:function(a,f){for(var b in f)f.hasOwnProperty(b)&&
(a[b]=f[b]);return a},L:function(a){for(;a.firstChild;)r.removeNode(a.firstChild)},pa:function(a,f){r.a.L(a);f&&r.a.p(f,function(f){a.appendChild(f)})},Ia:function(a,f){var b=a.nodeType?[a]:a;if(b.length>0){for(var d=b[0],e=d.parentNode,i=0,k=f.length;i<k;i++)e.insertBefore(f[i],d);i=0;for(k=b.length;i<k;i++)r.removeNode(b[i])}},Ka:function(a,f){navigator.userAgent.indexOf("MSIE 6")>=0?a.setAttribute("selected",f):a.selected=f},v:function(a){return(a||"").replace(e,"")},Bb:function(a,f){for(var b=
[],d=(a||"").split(f),e=0,i=d.length;e<i;e++){var k=r.a.v(d[e]);k!==""&&b.push(k)}return b},zb:function(a,f){a=a||"";return f.length>a.length?!1:a.substring(0,f.length)===f},eb:function(a){for(var f=Array.prototype.slice.call(arguments,1),b="return ("+a+")",d=0;d<f.length;d++)f[d]&&typeof f[d]=="object"&&(b="with(sc["+d+"]) { "+b+" } ");return(new Function("sc",b))(f)},bb:function(a,f){if(f.compareDocumentPosition)return(f.compareDocumentPosition(a)&16)==16;for(;a!=o;){if(a==f)return!0;a=a.parentNode}return!1},
ga:function(a){return r.a.bb(a,document)},s:function(a,f,g){if(typeof jQuery!="undefined"){if(b(a,f))var d=g,g=function(a,f){var b=this.checked;if(f)this.checked=f.Va!==!0;d.call(this,a);this.checked=b};jQuery(a).bind(f,g)}else typeof a.addEventListener=="function"?a.addEventListener(f,g,!1):typeof a.attachEvent!="undefined"?a.attachEvent("on"+f,function(f){g.call(a,f)}):c(Error("Browser doesn't support addEventListener or attachEvent"))},ta:function(a,f){(!a||!a.nodeType)&&c(Error("element must be a DOM node when calling triggerEvent"));
if(typeof jQuery!="undefined"){var g=[];b(a,f)&&g.push({Va:a.checked});jQuery(a).trigger(f,g)}else if(typeof document.createEvent=="function")typeof a.dispatchEvent=="function"?(g=document.createEvent(f in d?"MouseEvents":"HTMLEvents"),g.initEvent(f,!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,a),a.dispatchEvent(g)):c(Error("The supplied element doesn't support dispatchEvent"));else if(typeof a.fireEvent!="undefined"){if(f=="click"&&a.tagName=="INPUT"&&(a.type.toLowerCase()=="checkbox"||a.type.toLowerCase()==
"radio"))a.checked=a.checked!==!0;a.fireEvent("on"+f)}else c(Error("Browser doesn't support triggering events"))},d:function(a){return r.T(a)?a():a},ab:function(a,f){return r.a.k((a.className||"").split(/\s+/),f)>=0},Oa:function(a,f,b){var d=r.a.ab(a,f);if(b&&!d)a.className=(a.className||"")+" "+f;else if(d&&!b){for(var b=(a.className||"").split(/\s+/),d="",e=0;e<b.length;e++)b[e]!=f&&(d+=b[e]+" ");a.className=r.a.v(d)}},outerHTML:function(a){var f=a.outerHTML;if(typeof f=="string")return f;f=window.document.createElement("div");
f.appendChild(a.cloneNode(!0));return f.innerHTML},ub:function(a,f){for(var a=r.a.d(a),f=r.a.d(f),b=[],d=a;d<=f;d++)b.push(d);return b},la:function(a){for(var f=[],b=0,d=a.length;b<d;b++)f.push(a[b]);return f},ja:/MSIE 6/i.test(navigator.userAgent),lb:/MSIE 7/i.test(navigator.userAgent),Ca:function(a,f){for(var b=r.a.la(a.getElementsByTagName("INPUT")).concat(r.a.la(a.getElementsByTagName("TEXTAREA"))),d=typeof f=="string"?function(a){return a.name===f}:function(a){return f.test(a.name)},e=[],i=b.length-
1;i>=0;i--)d(b[i])&&e.push(b[i]);return e},rb:function(a){return typeof a=="string"&&(a=r.a.v(a))?window.JSON&&window.JSON.parse?window.JSON.parse(a):(new Function("return "+a))():o},ra:function(a){(typeof JSON=="undefined"||typeof JSON.stringify=="undefined")&&c(Error("Cannot find JSON.stringify(). Some browsers (e.g., IE < 8) don't support it natively, but you can overcome this by adding a script reference to json2.js, downloadable from http://www.json.org/json2.js"));return JSON.stringify(r.a.d(a))},
sb:function(a,f,b){var b=b||{},d=b.params||{},e=b.includeFields||this.Ba,i=a;if(typeof a=="object"&&a.tagName=="FORM")for(var i=a.action,k=e.length-1;k>=0;k--)for(var m=r.a.Ca(a,e[k]),q=m.length-1;q>=0;q--)d[m[q].name]=m[q].value;var f=r.a.d(f),p=document.createElement("FORM");p.style.display="none";p.action=i;p.method="post";for(var n in f)a=document.createElement("INPUT"),a.name=n,a.value=r.a.ra(r.a.d(f[n])),p.appendChild(a);for(n in d)a=document.createElement("INPUT"),a.name=n,a.value=d[n],p.appendChild(a);
document.body.appendChild(p);b.submitter?b.submitter(p):p.submit();setTimeout(function(){p.parentNode.removeChild(p)},0)}}};r.b("ko.utils",r.a);r.b("ko.utils.arrayForEach",r.a.p);r.b("ko.utils.arrayFirst",r.a.Ta);r.b("ko.utils.arrayFilter",r.a.$);r.b("ko.utils.arrayGetDistinctValues",r.a.Ab);r.b("ko.utils.arrayIndexOf",r.a.k);r.b("ko.utils.arrayMap",r.a.aa);r.b("ko.utils.arrayPushAll",r.a.J);r.b("ko.utils.arrayRemoveItem",r.a.ba);r.b("ko.utils.extend",r.a.extend);
r.b("ko.utils.fieldsIncludedWithJsonPost",r.a.Ba);r.b("ko.utils.getFormFields",r.a.Ca);r.b("ko.utils.postJson",r.a.sb);r.b("ko.utils.parseJson",r.a.rb);r.b("ko.utils.registerEventHandler",r.a.s);r.b("ko.utils.stringifyJson",r.a.ra);r.b("ko.utils.range",r.a.ub);r.b("ko.utils.toggleDomNodeCssClass",r.a.Oa);r.b("ko.utils.triggerEvent",r.a.ta);r.b("ko.utils.unwrapObservable",r.a.d);
Function.prototype.bind||(Function.prototype.bind=function(b){var e=this,d=Array.prototype.slice.call(arguments),b=d.shift();return function(){return e.apply(b,d.concat(Array.prototype.slice.call(arguments)))}});
r.a.e=new function(){var b=0,e="__ko__"+(new Date).getTime(),d={};return{get:function(a,f){var b=r.a.e.getAll(a,!1);return b===l?l:b[f]},set:function(a,f,b){b===l&&r.a.e.getAll(a,!1)===l||(r.a.e.getAll(a,!0)[f]=b)},getAll:function(a,f){var g=a[e];if(!(g&&g!=="null")){if(!f)return;g=a[e]="ko"+b++;d[g]={}}return d[g]},clear:function(a){var f=a[e];f&&(delete d[f],a[e]=o)}}};r.b("ko.utils.domData",r.a.e);r.b("ko.utils.domData.clear",r.a.e.clear);
r.a.w=new function(){function b(a,f){var b=r.a.e.get(a,d);b===l&&f&&(b=[],r.a.e.set(a,d,b));return b}function e(a){var f=b(a,!1);if(f)for(var f=f.slice(0),d=0;d<f.length;d++)f[d](a);r.a.e.clear(a);typeof jQuery=="function"&&typeof jQuery.cleanData=="function"&&jQuery.cleanData([a])}var d="__ko_domNodeDisposal__"+(new Date).getTime();return{wa:function(a,f){typeof f!="function"&&c(Error("Callback must be a function"));b(a,!0).push(f)},Ha:function(a,f){var g=b(a,!1);g&&(r.a.ba(g,f),g.length==0&&r.a.e.set(a,
d,l))},H:function(a){if(!(a.nodeType!=1&&a.nodeType!=9)){e(a);var b=[];r.a.J(b,a.getElementsByTagName("*"));for(var a=0,d=b.length;a<d;a++)e(b[a])}},removeNode:function(a){r.H(a);a.parentNode&&a.parentNode.removeChild(a)}}};r.H=r.a.w.H;r.removeNode=r.a.w.removeNode;r.b("ko.cleanNode",r.H);r.b("ko.removeNode",r.removeNode);r.b("ko.utils.domNodeDisposal",r.a.w);r.b("ko.utils.domNodeDisposal.addDisposeCallback",r.a.w.wa);r.b("ko.utils.domNodeDisposal.removeDisposeCallback",r.a.w.Ha);
(function(){function b(b){for(var b=b||"",a=[];b.match(e);)b=b.replace(e,function(b,f,d){f&&a.push(document.createTextNode(f));a.push(document.createComment(d));return""});var f=r.a.v(b).toLowerCase(),g=document.createElement("div"),f=f.match(/^<(thead|tbody|tfoot)/)&&[1,"<table>","</table>"]||!f.indexOf("<tr")&&[2,"<table><tbody>","</tbody></table>"]||(!f.indexOf("<td")||!f.indexOf("<th"))&&[3,"<table><tbody><tr>","</tr></tbody></table>"]||[0,"",""];for(g.innerHTML=f[1]+b+f[2];f[0]--;)g=g.lastChild;
return a.concat(r.a.la(g.childNodes))}var e=/^(\s*)<\!--(.*?)--\>/;r.a.V=function(d){return typeof jQuery!="undefined"?jQuery.clean([d]):b(d)};r.a.xb=function(b,a){r.a.L(b);if(a!==o&&a!==l)if(typeof a!="string"&&(a=a.toString()),typeof jQuery!="undefined")jQuery(b).html(a);else for(var f=r.a.V(a),g=0;g<f.length;g++)b.appendChild(f[g])}})();r.b("ko.utils.parseHtmlFragment",r.a.V);
r.q=function(){function b(){return((1+Math.random())*4294967296|0).toString(16).substring(1)}function e(a,b){if(a)if(a.nodeType==8){var d=r.q.Fa(a.nodeValue);d!=o&&b.push({$a:a,pb:d})}else if(a.nodeType==1)for(var d=0,h=a.childNodes,j=h.length;d<j;d++)e(h[d],b)}var d={};return{ma:function(a){typeof a!="function"&&c(Error("You can only pass a function to ko.memoization.memoize()"));var f=b()+b();d[f]=a;return"<\!--[ko_memo:"+f+"]--\>"},Pa:function(a,b){var g=d[a];g===l&&c(Error("Couldn't find any memo with ID "+
a+". Perhaps it's already been unmemoized."));try{return g.apply(o,b||[]),!0}finally{delete d[a]}},Qa:function(a,b){var d=[];e(a,d);for(var h=0,j=d.length;h<j;h++){var i=d[h].$a,k=[i];b&&r.a.J(k,b);r.q.Pa(d[h].pb,k);i.nodeValue="";i.parentNode&&i.parentNode.removeChild(i)}},Fa:function(a){return(a=a.match(/^\[ko_memo\:(.*?)\]$/))?a[1]:o}}}();r.b("ko.memoization",r.q);r.b("ko.memoization.memoize",r.q.ma);r.b("ko.memoization.unmemoize",r.q.Pa);r.b("ko.memoization.parseMemoText",r.q.Fa);
r.b("ko.memoization.unmemoizeDomNodeAndDescendants",r.q.Qa);r.Aa={throttle:function(b,e){b.throttleEvaluation=e;var d=o;return r.h({read:b,write:function(a){clearTimeout(d);d=setTimeout(function(){b(a)},e)}})}};r.b("ko.extenders",r.Aa);r.Ma=function(b,e){this.ca=b;this.Za=e;r.l(this,"dispose",this.u)};r.Ma.prototype.u=function(){this.kb=!0;this.Za()};
r.P=function(){this.Q=[];r.a.extend(this,r.P.fn);r.l(this,"subscribe",this.sa);r.l(this,"extend",this.extend);r.l(this,"notifySubscribers",this.N);r.l(this,"getSubscriptionsCount",this.hb)};
r.P.fn={sa:function(b,e){var d=e?b.bind(e):b,a=new r.Ma(d,function(){r.a.ba(this.Q,a)}.bind(this));this.Q.push(a);return a},N:function(b){r.a.p(this.Q.slice(0),function(e){e&&e.kb!==!0&&e.ca(b)})},hb:function(){return this.Q.length},extend:function(b){var e=this;if(b)for(var d in b){var a=r.Aa[d];typeof a=="function"&&(e=a(e,b[d]))}return e}};r.Ea=function(b){return typeof b.sa=="function"&&typeof b.N=="function"};r.b("ko.subscribable",r.P);r.b("ko.isSubscribable",r.Ea);
r.R=function(){var b=[];return{Ua:function(e){b.push({ca:e,za:[]})},end:function(){b.pop()},Ga:function(e){r.Ea(e)||c("Only subscribable things can act as dependencies");if(b.length>0){var d=b[b.length-1];r.a.k(d.za,e)>=0||(d.za.push(e),d.ca(e))}}}}();var x={undefined:!0,"boolean":!0,number:!0,string:!0};
r.z=function(b){function e(){if(arguments.length>0){if(!e.equalityComparer||!e.equalityComparer(d,arguments[0]))d=arguments[0],e.N(d);return this}else return r.R.Ga(e),d}var d=b;r.P.call(e);e.Y=function(){e.N(d)};r.a.extend(e,r.z.fn);r.l(e,"valueHasMutated",e.Y);return e};r.z.fn={A:r.z,equalityComparer:function(b,e){return b===o||typeof b in x?b===e:!1}};r.T=function(b){return b===o||b===l||b.A===l?!1:b.A===r.z?!0:r.T(b.A)};
r.M=function(b){return typeof b=="function"&&b.A===r.z?!0:typeof b=="function"&&b.A===r.h&&b.ib?!0:!1};r.b("ko.observable",r.z);r.b("ko.isObservable",r.T);r.b("ko.isWriteableObservable",r.M);
r.O=function(b){arguments.length==0&&(b=[]);b!==o&&b!==l&&!("length"in b)&&c(Error("The argument passed when initializing an observable array must be an array, or null, or undefined."));var e=new r.z(b);r.a.extend(e,r.O.fn);r.l(e,"remove",e.remove);r.l(e,"removeAll",e.vb);r.l(e,"destroy",e.fa);r.l(e,"destroyAll",e.Ya);r.l(e,"indexOf",e.indexOf);r.l(e,"replace",e.replace);return e};
r.O.fn={remove:function(b){for(var e=this(),d=[],a=[],f=typeof b=="function"?b:function(a){return a===b},g=0,h=e.length;g<h;g++){var j=e[g];f(j)?a.push(j):d.push(j)}this(d);return a},vb:function(b){if(b===l){var e=this();this([]);return e}return!b?[]:this.remove(function(d){return r.a.k(b,d)>=0})},fa:function(b){for(var e=this(),d=typeof b=="function"?b:function(a){return a===b},a=e.length-1;a>=0;a--)d(e[a])&&(e[a]._destroy=!0);this.Y()},Ya:function(b){return b===l?this.fa(function(){return!0}):!b?
[]:this.fa(function(e){return r.a.k(b,e)>=0})},indexOf:function(b){var e=this();return r.a.k(e,b)},replace:function(b,e){var d=this.indexOf(b);d>=0&&(this()[d]=e,this.Y())}};r.a.p("pop,push,reverse,shift,sort,splice,unshift".split(","),function(b){r.O.fn[b]=function(){var e=this(),e=e[b].apply(e,arguments);this.Y();return e}});r.a.p(["slice"],function(b){r.O.fn[b]=function(){var e=this();return e[b].apply(e,arguments)}});r.b("ko.observableArray",r.O);
function y(b,e,d){b&&typeof b=="object"?d=b:(d=d||{},d.read=b||d.read,d.owner=e||d.owner);typeof d.read!="function"&&c("Pass a function that returns the value of the dependentObservable");return d}
r.h=function(b,e,d){function a(){r.a.p(p,function(a){a.u()});p=[]}function f(){var a=h.throttleEvaluation;a&&a>=0?(clearTimeout(n),n=setTimeout(g,a)):g()}function g(){if(i&&typeof d.disposeWhen=="function"&&d.disposeWhen())h.u();else{try{a(),r.R.Ua(function(a){p.push(a.sa(f))}),j=d.owner?d.read.call(d.owner):d.read()}finally{r.R.end()}h.N(j);i=!0}}function h(){if(arguments.length>0)typeof d.write==="function"?d.write.apply(d.owner,arguments):c("Cannot write a value to a dependentObservable unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters.");
else return i||g(),r.R.Ga(h),j}var j,i=!1,d=y(b,e,d),k=typeof d.disposeWhenNodeIsRemoved=="object"?d.disposeWhenNodeIsRemoved:o,m=o;if(k){m=function(){h.u()};r.a.w.wa(k,m);var q=d.disposeWhen;d.disposeWhen=function(){return!r.a.ga(k)||typeof q=="function"&&q()}}var p=[],n=o;h.gb=function(){return p.length};h.ib=typeof d.write==="function";h.u=function(){k&&r.a.w.Ha(k,m);a()};r.P.call(h);r.a.extend(h,r.h.fn);d.deferEvaluation!==!0&&g();r.l(h,"dispose",h.u);r.l(h,"getDependenciesCount",h.gb);return h};
r.h.fn={A:r.h};r.h.A=r.z;r.b("ko.dependentObservable",r.h);r.b("ko.computed",r.h);
(function(){function b(a,f,g){g=g||new d;a=f(a);if(!(typeof a=="object"&&a!==o&&a!==l))return a;var h=a instanceof Array?[]:{};g.save(a,h);e(a,function(d){var e=f(a[d]);switch(typeof e){case "boolean":case "number":case "string":case "function":h[d]=e;break;case "object":case "undefined":var k=g.get(e);h[d]=k!==l?k:b(e,f,g)}});return h}function e(a,b){if(a instanceof Array)for(var d=0;d<a.length;d++)b(d);else for(d in a)b(d)}function d(){var a=[],b=[];this.save=function(d,e){var j=r.a.k(a,d);j>=0?
b[j]=e:(a.push(d),b.push(e))};this.get=function(d){d=r.a.k(a,d);return d>=0?b[d]:l}}r.Na=function(a){arguments.length==0&&c(Error("When calling ko.toJS, pass the object you want to convert."));return b(a,function(a){for(var b=0;r.T(a)&&b<10;b++)a=a();return a})};r.toJSON=function(a){a=r.Na(a);return r.a.ra(a)}})();r.b("ko.toJS",r.Na);r.b("ko.toJSON",r.toJSON);
r.j={r:function(b){return b.tagName=="OPTION"?b.__ko__hasDomDataOptionValue__===!0?r.a.e.get(b,r.c.options.na):b.getAttribute("value"):b.tagName=="SELECT"?b.selectedIndex>=0?r.j.r(b.options[b.selectedIndex]):l:b.value},Z:function(b,e){if(b.tagName=="OPTION")switch(typeof e){case "string":case "number":r.a.e.set(b,r.c.options.na,l);"__ko__hasDomDataOptionValue__"in b&&delete b.__ko__hasDomDataOptionValue__;b.value=e;break;default:r.a.e.set(b,r.c.options.na,e),b.__ko__hasDomDataOptionValue__=!0,b.value=
""}else if(b.tagName=="SELECT")for(var d=b.options.length-1;d>=0;d--){if(r.j.r(b.options[d])==e){b.selectedIndex=d;break}}else{if(e===o||e===l)e="";b.value=e}}};r.b("ko.selectExtensions",r.j);r.b("ko.selectExtensions.readValue",r.j.r);r.b("ko.selectExtensions.writeValue",r.j.Z);
r.i=function(){function b(a,b){for(var d=o;a!=d;)d=a,a=a.replace(e,function(a,f){return b[f]});return a}var e=/\@ko_token_(\d+)\@/g,d=/^[\_$a-z][\_$a-z0-9]*(\[.*?\])*(\.[\_$a-z][\_$a-z0-9]*(\[.*?\])*)*$/i,a=["true","false"];return{B:[],W:function(a){var d=r.a.v(a);if(d.length<3)return[];d.charAt(0)==="{"&&(d=d.substring(1,d.length-1));for(var a=[],e=o,j,i=0;i<d.length;i++){var k=d.charAt(i);if(e===o)switch(k){case '"':case "'":case "/":e=i,j=k}else if(k==j&&d.charAt(i-1)!=="\\"){k=d.substring(e,i+
1);a.push(k);var m="@ko_token_"+(a.length-1)+"@",d=d.substring(0,e)+m+d.substring(i+1);i-=k.length-m.length;e=o}}j=e=o;for(var q=0,p=o,i=0;i<d.length;i++){k=d.charAt(i);if(e===o)switch(k){case "{":e=i;p=k;j="}";break;case "(":e=i;p=k;j=")";break;case "[":e=i,p=k,j="]"}k===p?q++:k===j&&(q--,q===0&&(k=d.substring(e,i+1),a.push(k),m="@ko_token_"+(a.length-1)+"@",d=d.substring(0,e)+m+d.substring(i+1),i-=k.length-m.length,e=o))}j=[];d=d.split(",");e=0;for(i=d.length;e<i;e++)q=d[e],p=q.indexOf(":"),p>0&&
p<q.length-1?(k=q.substring(p+1),j.push({key:b(q.substring(0,p),a),value:b(k,a)})):j.push({unknown:b(q,a)});return j},ia:function(b){for(var e=typeof b==="string"?r.i.W(b):b,h=[],b=[],j,i=0;j=e[i];i++)if(h.length>0&&h.push(","),j.key){var k;a:{k=j.key;var m=r.a.v(k);switch(m.length&&m.charAt(0)){case "'":case '"':break a;default:k="'"+m+"'"}}j=j.value;h.push(k);h.push(":");h.push(j);m=r.a.v(j);if(r.a.k(a,r.a.v(m).toLowerCase())>=0?0:m.match(d)!==o)b.length>0&&b.push(", "),b.push(k+" : function(__ko_value) { "+
j+" = __ko_value; }")}else j.unknown&&h.push(j.unknown);e=h.join("");b.length>0&&(e=e+", '_ko_property_writers' : { "+b.join("")+" } ");return e},nb:function(a,b){for(var d=0;d<a.length;d++)if(r.a.v(a[d].key)==b)return!0;return!1}}}();r.b("ko.jsonExpressionRewriting",r.i);r.b("ko.jsonExpressionRewriting.bindingRewriteValidators",r.i.B);r.b("ko.jsonExpressionRewriting.parseObjectLiteral",r.i.W);r.b("ko.jsonExpressionRewriting.insertPropertyAccessorsIntoJson",r.i.ia);
(function(){function b(a){return a.nodeType==8&&a.nodeValue.match(d)}function e(d){for(var e=d,h=1,j=[];e=e.nextSibling;){if(e.nodeType==8&&e.nodeValue.match(a)&&(h--,h===0))return j;j.push(e);b(e)&&h++}c(Error("Cannot find closing comment tag to match: "+d.nodeValue))}var d=/^\s*ko\s+(.*\:.*)\s*$/,a=/^\s*\/ko\s*$/;r.f={C:{},childNodes:function(a){return b(a)?e(a):a.childNodes},ha:function(a){if(b(a))for(var a=r.f.childNodes(a),d=0,e=a.length;d<e;d++)r.removeNode(a[d]);else r.a.L(a)},pa:function(a,
d){if(b(a)){r.f.ha(a);for(var e=a.nextSibling,j=0,i=d.length;j<i;j++)e.parentNode.insertBefore(d[j],e)}else r.a.pa(a,d)},tb:function(a,d){b(a)?a.parentNode.insertBefore(d,a.nextSibling):a.firstChild?a.insertBefore(d,a.firstChild):a.appendChild(d)},jb:function(a,d,e){b(a)?a.parentNode.insertBefore(d,e.nextSibling):e.nextSibling?a.insertBefore(d,e.nextSibling):a.appendChild(d)},nextSibling:function(d){if(b(d))var g=e(d),d=(g.length>0?g[g.length-1].nextSibling:d.nextSibling).nextSibling;else d=d.nextSibling&&
d.nextSibling.nodeType==8&&d.nextSibling.nodeValue.match(a)?l:d.nextSibling;return d},ua:function(a){return(a=b(a))?a[1]:o},fb:function(a){if(r.f.ua(a)){var b;b=r.f.childNodes(a);for(var d=[],e=0,i=b.length;e<i;e++)r.a.w.H(b[e]),d.push(r.a.outerHTML(b[e]));b=String.prototype.concat.apply("",d);r.f.ha(a);(new r.m.D(a)).text(b)}}}})();r.G=function(){};
r.a.extend(r.G.prototype,{nodeHasBindings:function(b){switch(b.nodeType){case 1:return b.getAttribute("data-bind")!=o;case 8:return r.f.ua(b)!=o;default:return!1}},getBindings:function(b,e){var d=this.getBindingsString(b,e);return d?this.parseBindingsString(d,e):o},getBindingsString:function(b){switch(b.nodeType){case 1:return b.getAttribute("data-bind");case 8:return r.f.ua(b);default:return o}},parseBindingsString:function(b,e){try{var d=e.$data,a=" { "+r.i.ia(b)+" } ";return r.a.eb(a,d===o?window:
d,e)}catch(f){c(Error("Unable to parse bindings.\nMessage: "+f+";\nBindings value: "+b))}}});r.G.instance=new r.G;r.b("ko.bindingProvider",r.G);
(function(){function b(d,a,f){var g=!0,h=a.nodeType==1;if(h&&f||r.G.instance.nodeHasBindings(a))g=e(a,o,d,f).yb;if(h&&g)for(f=a.childNodes[0];a=f;)f=r.f.nextSibling(a),b(d,a,!1)}function e(b,a,e,g){function h(a){return function(){return k[a]}}function j(){return k}var i=!0;r.f.fb(b);var k,m;new r.h(function(){var q=e&&e instanceof r.F?e:new r.F(r.a.d(e)),p=q.$data;g&&r.La(b,q);if(k=(typeof a=="function"?a():a)||r.G.instance.getBindings(b,q)){if(i)for(var n in k){var s=r.c[n];s&&b.nodeType===8&&!r.f.C[n]&&
c(Error("The binding '"+n+"' cannot be used with virtual elements"));if(s&&typeof s.init=="function"&&(s=(0,s.init)(b,h(n),j,p,q))&&s.controlsDescendantBindings)m!==l&&c(Error("Multiple bindings ("+m+" and "+n+") are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element.")),m=n}for(n in k)(s=r.c[n])&&typeof s.update=="function"&&(0,s.update)(b,h(n),j,p,q)}},o,{disposeWhenNodeIsRemoved:b});i=!1;return{yb:m===l}}r.c={};r.F=function(b,a){this.$data=
b;a?(this.$parent=a.$data,this.$parents=(a.$parents||[]).slice(0),this.$parents.unshift(this.$parent),this.$root=a.$root):(this.$parents=[],this.$root=b)};r.F.prototype={ea:function(b){return new r.F(b,this)}};r.La=function(b,a){if(arguments.length==2)r.a.e.set(b,"__ko_bindingContext__",a);else return r.a.e.get(b,"__ko_bindingContext__")};r.ya=function(b,a,f){return e(b,a,f,!0)};r.xa=function(d,a){a&&a.nodeType!==1&&a.nodeType!==8&&c(Error("ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node"));
a=a||window.document.body;b(d,a,!0)};r.da=function(b){switch(b.nodeType){case 1:case 8:var a=r.La(b);if(a)return a;if(b.parentNode)return r.da(b.parentNode)}};r.Xa=function(b){return(b=r.da(b))?b.$data:l};r.b("ko.bindingHandlers",r.c);r.b("ko.applyBindings",r.xa);r.b("ko.applyBindingsToNode",r.ya);r.b("ko.contextFor",r.da);r.b("ko.dataFor",r.Xa)})();r.a.p(["click"],function(b){r.c[b]={init:function(e,d,a,f){return r.c.event.init.call(this,e,function(){var a={};a[b]=d();return a},a,f)}}});
r.c.event={init:function(b,e,d,a){var f=e()||{},g;for(g in f)(function(){var f=g;typeof f=="string"&&r.a.s(b,f,function(b){var g,k=e()[f],m=d();try{g=k.apply(a,arguments)}finally{if(g!==!0)b.preventDefault?b.preventDefault():b.returnValue=!1}if(m[f+"Bubble"]===!1)b.cancelBubble=!0,b.stopPropagation&&b.stopPropagation()})})()}};
r.c.submit={init:function(b,e,d,a){typeof e()!="function"&&c(Error("The value for a submit binding must be a function to invoke on submit"));r.a.s(b,"submit",function(d){var g,h=e();try{g=h.call(a,b)}finally{if(g!==!0)d.preventDefault?d.preventDefault():d.returnValue=!1}})}};r.c.visible={update:function(b,e){var d=r.a.d(e()),a=b.style.display!="none";if(d&&!a)b.style.display="";else if(!d&&a)b.style.display="none"}};
r.c.enable={update:function(b,e){var d=r.a.d(e());if(d&&b.disabled)b.removeAttribute("disabled");else if(!d&&!b.disabled)b.disabled=!0}};r.c.disable={update:function(b,e){r.c.enable.update(b,function(){return!r.a.d(e())})}};
r.c.value={init:function(b,e,d){var a=d().valueUpdate||"change",f=!1;r.a.zb(a,"after")&&(f=!0,a=a.substring(5));var g=f?function(a){setTimeout(a,0)}:function(a){a()};r.a.s(b,a,function(){g(function(){var a=e(),f=r.j.r(b);r.M(a)?a(f):(a=d(),a._ko_property_writers&&a._ko_property_writers.value&&a._ko_property_writers.value(f))})})},update:function(b,e){var d=r.a.d(e()),a=r.j.r(b),f=d!=a;d===0&&a!==0&&a!=="0"&&(f=!0);f&&(a=function(){r.j.Z(b,d)},a(),b.tagName=="SELECT"&&setTimeout(a,0));b.tagName=="SELECT"&&
(a=r.j.r(b),a!==d&&r.a.ta(b,"change"))}};
r.c.options={update:function(b,e,d){b.tagName!="SELECT"&&c(Error("options binding applies only to SELECT elements"));var a=r.a.aa(r.a.$(b.childNodes,function(a){return a.tagName&&a.tagName=="OPTION"&&a.selected}),function(a){return r.j.r(a)||a.innerText||a.textContent}),f=b.scrollTop,g=r.a.d(e());r.a.L(b);if(g){var h=d();typeof g.length!="number"&&(g=[g]);if(h.optionsCaption){var j=document.createElement("OPTION");j.innerHTML=h.optionsCaption;r.j.Z(j,l);b.appendChild(j)}d=0;for(e=g.length;d<e;d++){var j=
document.createElement("OPTION"),i=typeof h.optionsValue=="string"?g[d][h.optionsValue]:g[d],k=h.optionsText;optionText=typeof k=="function"?k(g[d]):typeof k=="string"?g[d][k]:i;i=r.a.d(i);optionText=r.a.d(optionText);r.j.Z(j,i);j.innerHTML=optionText.toString();b.appendChild(j)}g=b.getElementsByTagName("OPTION");d=h=0;for(e=g.length;d<e;d++)r.a.k(a,r.j.r(g[d]))>=0&&(r.a.Ka(g[d],!0),h++);if(f)b.scrollTop=f}}};r.c.options.na="__ko.bindingHandlers.options.optionValueDomData__";
r.c.selectedOptions={Da:function(b){for(var e=[],b=b.childNodes,d=0,a=b.length;d<a;d++){var f=b[d];f.tagName=="OPTION"&&f.selected&&e.push(r.j.r(f))}return e},init:function(b,e,d){r.a.s(b,"change",function(){var a=e();r.M(a)?a(r.c.selectedOptions.Da(this)):(a=d(),a._ko_property_writers&&a._ko_property_writers.value&&a._ko_property_writers.value(r.c.selectedOptions.Da(this)))})},update:function(b,e){b.tagName!="SELECT"&&c(Error("values binding applies only to SELECT elements"));var d=r.a.d(e());if(d&&
typeof d.length=="number")for(var a=b.childNodes,f=0,g=a.length;f<g;f++){var h=a[f];h.tagName=="OPTION"&&r.a.Ka(h,r.a.k(d,r.j.r(h))>=0)}}};r.c.text={update:function(b,e){var d=r.a.d(e());if(d===o||d===l)d="";typeof b.innerText=="string"?b.innerText=d:b.textContent=d}};r.c.html={init:function(){return{controlsDescendantBindings:!0}},update:function(b,e){var d=r.a.d(e());r.a.xb(b,d)}};
r.c.css={update:function(b,e){var d=r.a.d(e()||{}),a;for(a in d)if(typeof a=="string"){var f=r.a.d(d[a]);r.a.Oa(b,a,f)}}};r.c.style={update:function(b,e){var d=r.a.d(e()||{}),a;for(a in d)if(typeof a=="string"){var f=r.a.d(d[a]);b.style[a]=f||""}}};r.c.uniqueName={init:function(b,e){if(e())b.name="ko_unique_"+ ++r.c.uniqueName.Wa,r.a.ja&&b.mergeAttributes(document.createElement("<input name='"+b.name+"'/>"),!1)}};r.c.uniqueName.Wa=0;
r.c.checked={init:function(b,e,d){r.a.s(b,"click",function(){var a;if(b.type=="checkbox")a=b.checked;else if(b.type=="radio"&&b.checked)a=b.value;else return;var f=e();b.type=="checkbox"&&r.a.d(f)instanceof Array?(a=r.a.k(r.a.d(f),b.value),b.checked&&a<0?f.push(b.value):!b.checked&&a>=0&&f.splice(a,1)):r.M(f)?f()!==a&&f(a):(f=d(),f._ko_property_writers&&f._ko_property_writers.checked&&f._ko_property_writers.checked(a))});b.type=="radio"&&!b.name&&r.c.uniqueName.init(b,function(){return!0})},update:function(b,
e){var d=r.a.d(e());if(b.type=="checkbox")b.checked=d instanceof Array?r.a.k(d,b.value)>=0:d,d&&r.a.ja&&b.mergeAttributes(document.createElement("<input type='checkbox' checked='checked' />"),!1);else if(b.type=="radio")b.checked=b.value==d,b.value==d&&(r.a.ja||r.a.lb)&&b.mergeAttributes(document.createElement("<input type='radio' checked='checked' />"),!1)}};
r.c.attr={update:function(b,e){var d=r.a.d(e())||{},a;for(a in d)if(typeof a=="string"){var f=r.a.d(d[a]);f===!1||f===o||f===l?b.removeAttribute(a):b.setAttribute(a,f.toString())}}};
r.c.hasfocus={init:function(b,e,d){function a(a){var b=e();a!=r.a.d(b)&&(r.M(b)?b(a):(b=d(),b._ko_property_writers&&b._ko_property_writers.hasfocus&&b._ko_property_writers.hasfocus(a)))}r.a.s(b,"focus",function(){a(!0)});r.a.s(b,"focusin",function(){a(!0)});r.a.s(b,"blur",function(){a(!1)});r.a.s(b,"focusout",function(){a(!1)})},update:function(b,e){var d=r.a.d(e());d?b.focus():b.blur();r.a.ta(b,d?"focusin":"focusout")}};
r.c["with"]={n:function(b){return function(){var e=b();return{"if":e,data:e,templateEngine:r.o.I}}},init:function(b,e){return r.c.template.init(b,r.c["with"].n(e))},update:function(b,e,d,a,f){return r.c.template.update(b,r.c["with"].n(e),d,a,f)}};r.i.B["with"]=!1;r.f.C["with"]=!0;
r.c["if"]={n:function(b){return function(){return{"if":b(),templateEngine:r.o.I}}},init:function(b,e){return r.c.template.init(b,r.c["if"].n(e))},update:function(b,e,d,a,f){return r.c.template.update(b,r.c["if"].n(e),d,a,f)}};r.i.B["if"]=!1;r.f.C["if"]=!0;r.c.ifnot={n:function(b){return function(){return{ifnot:b(),templateEngine:r.o.I}}},init:function(b,e){return r.c.template.init(b,r.c.ifnot.n(e))},update:function(b,e,d,a,f){return r.c.template.update(b,r.c.ifnot.n(e),d,a,f)}};r.i.B.ifnot=!1;
r.f.C.ifnot=!0;r.c.foreach={n:function(b){return function(){var e=r.a.d(b());return!e||typeof e.length=="number"?{foreach:e,templateEngine:r.o.I}:{foreach:e.data,includeDestroyed:e.includeDestroyed,afterAdd:e.afterAdd,beforeRemove:e.beforeRemove,afterRender:e.afterRender,templateEngine:r.o.I}}},init:function(b,e){return r.c.template.init(b,r.c.foreach.n(e))},update:function(b,e,d,a,f){return r.c.template.update(b,r.c.foreach.n(e),d,a,f)}};r.i.B.foreach=!1;r.f.C.foreach=!0;r.t=function(){};
r.t.prototype.renderTemplateSource=function(){c("Override renderTemplateSource in your ko.templateEngine subclass")};r.t.prototype.createJavaScriptEvaluatorBlock=function(){c("Override createJavaScriptEvaluatorBlock in your ko.templateEngine subclass")};
r.t.prototype.makeTemplateSource=function(b){if(typeof b=="string"){var e=document.getElementById(b);e||c(Error("Cannot find template with ID "+b));return new r.m.g(e)}else if(b.nodeType==1||b.nodeType==8)return new r.m.D(b);else c(Error("Unrecognised template type: "+b))};r.t.prototype.renderTemplate=function(b,e,d){return this.renderTemplateSource(this.makeTemplateSource(b),e,d)};r.t.prototype.isTemplateRewritten=function(b){return this.allowTemplateRewriting===!1?!0:this.U&&this.U[b]?!0:this.makeTemplateSource(b).data("isRewritten")};
r.t.prototype.rewriteTemplate=function(b,e){var d=this.makeTemplateSource(b),a=e(d.text());d.text(a);d.data("isRewritten",!0);if(typeof b=="string")this.U=this.U||{},this.U[b]=!0};r.b("ko.templateEngine",r.t);
r.X=function(){function b(a,b,d){for(var a=r.i.W(a),e=r.i.B,j=0;j<a.length;j++){var i=a[j].key;if(e.hasOwnProperty(i)){var k=e[i];typeof k==="function"?(i=k(a[j].value))&&c(Error(i)):k||c(Error("This template engine does not support the '"+i+"' binding within its templates"))}}a="ko.templateRewriting.applyMemoizedBindingsToNextSibling(function() {             return (function() { return { "+r.i.ia(a)+" } })()         })";return d.createJavaScriptEvaluatorBlock(a)+b}var e=/(<[a-z]+\d*(\s+(?!data-bind=)[a-z0-9\-]+(=(\"[^\"]*\"|\'[^\']*\'))?)*\s+)data-bind=(["'])([\s\S]*?)\5/gi,
d=/<\!--\s*ko\b\s*([\s\S]*?)\s*--\>/g;return{cb:function(a,b){b.isTemplateRewritten(a)||b.rewriteTemplate(a,function(a){return r.X.qb(a,b)})},qb:function(a,f){return a.replace(e,function(a,d,e,i,k,m,q){return b(q,d,f)}).replace(d,function(a,d){return b(d,"<\!-- ko --\>",f)})},Ra:function(a){return r.q.ma(function(b,d){b.nextSibling&&r.ya(b.nextSibling,a,d)})}}}();r.b("ko.templateRewriting",r.X);r.b("ko.templateRewriting.applyMemoizedBindingsToNextSibling",r.X.Ra);
(function(){r.m={};r.m.g=function(b){this.g=b};r.m.g.prototype.text=function(){if(arguments.length==0)return this.g.tagName.toLowerCase()=="script"?this.g.text:this.g.innerHTML;else{var b=arguments[0];this.g.tagName.toLowerCase()=="script"?this.g.text=b:this.g.innerHTML=b}};r.m.g.prototype.data=function(b){if(arguments.length===1)return r.a.e.get(this.g,"templateSourceData_"+b);else r.a.e.set(this.g,"templateSourceData_"+b,arguments[1])};r.m.D=function(b){this.g=b};r.m.D.prototype=new r.m.g;r.m.D.prototype.text=
function(){if(arguments.length==0)return r.a.e.get(this.g,"__ko_anon_template__");else r.a.e.set(this.g,"__ko_anon_template__",arguments[0])};r.b("ko.templateSources",r.m);r.b("ko.templateSources.domElement",r.m.g);r.b("ko.templateSources.anonymousTemplate",r.m.D)})();
(function(){function b(a,b,d){for(var e=0;node=a[e];e++)node.parentNode===b&&(node.nodeType===1||node.nodeType===8)&&d(node)}function e(a,b,e,h,j){var j=j||{},i=j.templateEngine||d;r.X.cb(e,i);e=i.renderTemplate(e,h,j);(typeof e.length!="number"||e.length>0&&typeof e[0].nodeType!="number")&&c("Template engine must return an array of DOM nodes");i=!1;switch(b){case "replaceChildren":r.f.pa(a,e);i=!0;break;case "replaceNode":r.a.Ia(a,e);i=!0;break;case "ignoreTargetNode":break;default:c(Error("Unknown renderMode: "+
b))}i&&(r.va(e,h),j.afterRender&&j.afterRender(e,h.$data));return e}var d;r.qa=function(a){a!=l&&!(a instanceof r.t)&&c("templateEngine must inherit from ko.templateEngine");d=a};r.va=function(a,d){var e=r.a.J([],a),h=a.length>0?a[0].parentNode:o;b(e,h,function(a){r.xa(d,a)});b(e,h,function(a){r.q.Qa(a,[d])})};r.oa=function(a,b,g,h,j){g=g||{};(g.templateEngine||d)==l&&c("Set a template engine before calling renderTemplate");j=j||"replaceChildren";if(h){var i=h.nodeType?h:h.length>0?h[0]:o;return new r.h(function(){var d=
b&&b instanceof r.F?b:new r.F(r.a.d(b)),m=typeof a=="function"?a(d.$data):a,d=e(h,j,m,d,g);j=="replaceNode"&&(h=d,i=h.nodeType?h:h.length>0?h[0]:o)},o,{disposeWhen:function(){return!i||!r.a.ga(i)},disposeWhenNodeIsRemoved:i&&j=="replaceNode"?i.parentNode:i})}else return r.q.ma(function(d){r.oa(a,b,g,d,"replaceNode")})};r.wb=function(a,b,d,h,j){function i(a,b){var e=j.ea(r.a.d(a));r.va(b,e);d.afterRender&&d.afterRender(b,e.$data)}return new r.h(function(){var k=r.a.d(b)||[];typeof k.length=="undefined"&&
(k=[k]);k=r.a.$(k,function(a){return d.includeDestroyed||!a._destroy});r.a.Ja(h,k,function(b){var f=typeof a=="function"?a(b):a;return e(o,"ignoreTargetNode",f,j.ea(r.a.d(b)),d)},d,i)},o,{disposeWhenNodeIsRemoved:h})};r.c.template={init:function(a,b){var d=r.a.d(b());typeof d!="string"&&!d.name&&a.nodeType==1&&((new r.m.D(a)).text(a.innerHTML),r.a.L(a));return{controlsDescendantBindings:!0}},update:function(a,b,d,e,j){b=r.a.d(b());e=!0;typeof b=="string"?d=b:(d=b.name,"if"in b&&(e=e&&r.a.d(b["if"])),
"ifnot"in b&&(e=e&&!r.a.d(b.ifnot)));var i=o;typeof b.foreach!="undefined"?i=r.wb(d||a,e&&b.foreach||[],b,a,j):e?(j=typeof b=="object"&&"data"in b?j.ea(r.a.d(b.data)):j,i=r.oa(d||a,j,b,a)):r.f.ha(a);j=i;(b=r.a.e.get(a,"__ko__templateSubscriptionDomDataKey__"))&&typeof b.u=="function"&&b.u();r.a.e.set(a,"__ko__templateSubscriptionDomDataKey__",j)}};r.i.B.template=function(a){a=r.i.W(a);return a.length==1&&a[0].unknown?o:r.i.nb(a,"name")?o:"This template engine does not support anonymous templates nested within its templates"};
r.f.C.template=!0})();r.b("ko.setTemplateEngine",r.qa);r.b("ko.renderTemplate",r.oa);
r.a.K=function(b,e,d){if(d===l)return r.a.K(b,e,1)||r.a.K(b,e,10)||r.a.K(b,e,Number.MAX_VALUE);else{for(var b=b||[],e=e||[],a=b,f=e,g=[],h=0;h<=f.length;h++)g[h]=[];for(var h=0,j=Math.min(a.length,d);h<=j;h++)g[0][h]=h;h=1;for(j=Math.min(f.length,d);h<=j;h++)g[h][0]=h;for(var j=a.length,i,k=f.length,h=1;h<=j;h++){i=Math.max(1,h-d);for(var m=Math.min(k,h+d);i<=m;i++)g[i][h]=a[h-1]===f[i-1]?g[i-1][h-1]:Math.min(g[i-1][h]===l?Number.MAX_VALUE:g[i-1][h]+1,g[i][h-1]===l?Number.MAX_VALUE:g[i][h-1]+1)}d=
b.length;a=e.length;f=[];h=g[a][d];if(h===l)g=o;else{for(;d>0||a>0;){j=g[a][d];k=a>0?g[a-1][d]:h+1;m=d>0?g[a][d-1]:h+1;i=a>0&&d>0?g[a-1][d-1]:h+1;if(k===l||k<j-1)k=h+1;if(m===l||m<j-1)m=h+1;i<j-1&&(i=h+1);k<=m&&k<i?(f.push({status:"added",value:e[a-1]}),a--):(m<k&&m<i?f.push({status:"deleted",value:b[d-1]}):(f.push({status:"retained",value:b[d-1]}),a--),d--)}g=f.reverse()}return g}};r.b("ko.utils.compareArrays",r.a.K);
(function(){function b(b,d,a,f){var g=[],b=r.h(function(){var b=d(a)||[];g.length>0&&(r.a.Ia(g,b),f&&f(a,b));g.splice(0,g.length);r.a.J(g,b)},o,{disposeWhenNodeIsRemoved:b,disposeWhen:function(){return g.length==0||!r.a.ga(g[0])}});return{ob:g,h:b}}r.a.Ja=function(e,d,a,f,g){for(var d=d||[],f=f||{},h=r.a.e.get(e,"setDomNodeChildrenFromArrayMapping_lastMappingResult")===l,j=r.a.e.get(e,"setDomNodeChildrenFromArrayMapping_lastMappingResult")||[],i=r.a.aa(j,function(a){return a.Sa}),k=r.a.K(i,d),d=[],
m=0,q=[],i=[],p=o,n=0,s=k.length;n<s;n++)switch(k[n].status){case "retained":var t=j[m];d.push(t);t.S.length>0&&(p=t.S[t.S.length-1]);m++;break;case "deleted":j[m].h.u();r.a.p(j[m].S,function(a){q.push({element:a,index:n,value:k[n].value});p=a});m++;break;case "added":var t=k[n].value,u=b(e,a,t,g),v=u.ob;d.push({Sa:k[n].value,S:v,h:u.h});for(var u=0,z=v.length;u<z;u++){var w=v[u];i.push({element:w,index:n,value:k[n].value});p==o?r.f.tb(e,w):r.f.jb(e,w,p);p=w}g&&g(t,v)}r.a.p(q,function(a){r.H(a.element)});
a=!1;if(!h){if(f.afterAdd)for(n=0;n<i.length;n++)f.afterAdd(i[n].element,i[n].index,i[n].value);if(f.beforeRemove){for(n=0;n<q.length;n++)f.beforeRemove(q[n].element,q[n].index,q[n].value);a=!0}}a||r.a.p(q,function(a){r.removeNode(a.element)});r.a.e.set(e,"setDomNodeChildrenFromArrayMapping_lastMappingResult",d)}})();r.b("ko.utils.setDomNodeChildrenFromArrayMapping",r.a.Ja);r.o=function(){this.allowTemplateRewriting=!1};r.o.prototype=new r.t;
r.o.prototype.renderTemplateSource=function(b){b=b.text();return r.a.V(b)};r.o.I=new r.o;r.qa(r.o.I);r.b("ko.nativeTemplateEngine",r.o);
(function(){r.ka=function(){var b=this.mb=function(){if(typeof jQuery=="undefined"||!jQuery.tmpl&&!jQuery.render)return 0;try{if(jQuery.render)return 3;if(jQuery.tmpl.tag.tmpl.open.toString().indexOf("__")>=0)return 2}catch(a){}return 1}();this.renderTemplateSource=function(a,d,g){g=g||{};b<2&&c(Error("Your version of jQuery.tmpl is too old. Please upgrade to jQuery.tmpl 1.0.0pre or later."));var h=a.data("precompiled");h||(h=a.text()||"",h="{{ko_with "+(b==2?"$item":"$ctx")+".koBindingContext}}"+
h+"{{/ko_with}}",h=jQuery.template(o,h),a.data("precompiled",h));a=[d.$data];d=jQuery.extend({koBindingContext:d},g.templateOptions);g=h;b<3?d=jQuery.tmpl(g,a,d):(d=jQuery.render(g,a,d),d=jQuery(r.a.V(d)));d.appendTo(document.createElement("div"));jQuery.fragments={};return d};this.createJavaScriptEvaluatorBlock=function(a){return"{{ko_code ((function() { return "+a+" })()) }}"};this.addTemplate=function(a,b){document.write("<script type='text/html' id='"+a+"'>"+b+"<\/script>")};if(b>=2){var d=b==
2?"tmpl":"tmplSettings";jQuery[d].tag.ko_code={open:"__.push($1 || '');"};jQuery[d].tag.ko_with={open:"with($1) {",close:"} "}}};r.ka.prototype=new r.t;var b=new r.ka;b.mb>0&&r.qa(b);r.b("ko.jqueryTmplTemplateEngine",r.ka)})();
})(window);                  

By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.

If a file you wish to view isn't highlighted, and is a text file (not binary), please let us know and we'll add colourisation support for it.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Software Developer
India India
I have been working as a Software Engineer on Microsoft .NET Technology.I have developed several web/desktop application build on .NET technology .My point of interest is Web Development,Desktop Development,Ajax,Json,Jquey,XML etc.I have completed Master of Computer Application in May-2011.I'm not happy unless I'm learning something new.

Comments and Discussions