/* * Kendo UI v2011.3.1129 (http://kendoui.com) * Copyright 2011 Telerik AD. All rights reserved. * * Kendo UI commercial licenses may be obtained at http://kendoui.com/license. * If you do not own a commercial license, this file shall be governed by the * GNU General Public License (GPL) version 3. For GPL requirements, please * review: http://www.gnu.org/copyleft/gpl.html */ (function(a,b){function p(a,b){if(a===b)return!0;var c=e(a),d=e(b),f;if(c!==d)return!1;if(c==="date")return a.getTime()===b.getTime();if(c!=="object"&&c!=="array")return!1;for(f in a)if(!p(a[f],b[f]))return!1;return!0}var c=window.kendo,d=a.extend,e=a.type,f=c.getter,g=c.setter,h=c.accessor,i=a.each,j=a.isPlainObject,k="change",l="error",m="modelChange",n=c.Observable,o=/^\/Date\((.*?)\)\/$/,q={number:function(a){return c.parseFloat(a)},date:function(a){if(typeof a=="string"){var b=o.exec(a);if(b)return new Date(parseInt(b[1]))}return c.parseDate(a)},"boolean":function(a){if(typeof a=="string")return a.toLowerCase()==="true";return!!a},string:function(a){return a+""},"default":function(a){return a}},r={string:"",number:0,date:new Date,"boolean":!1,"default":""},s=n.extend({init:function(e){var f=this;n.fn.init.call(f),f._accessors={},f._modified=!1,f.data=e&&!a.isEmptyObject(e)?e:d(!0,{},f.defaultItem),f.pristine=d(!0,{},f.data);if(f.id()===b||f.id()===f.defaultId)f._isNew=!0,f.data.__id=c.guid()},_accessor:function(a){var b=this._accessors;return b[a]=b[a]||h(a)},get:function(a){return this._accessor(a).get(this.data)},_parse:function(a,b){var c=this,d;a=(c.fields||{})[a],a&&(d=a.parse,!d&&a.type&&(d=q[a.type.toLowerCase()]));return d?d(b):b},editable:function(a){a=(this.fields||{})[a];return a?a.editable!==!1:!0},set:function(a,b){var c=this,d,e={},f=!1,g;typeof a=="string"?e[a]=b:e=a;for(d in e){if(!c.editable(d))continue;g=c._accessor(d),b=c._parse(d,e[d]),p(b,g.get(c.data))||(g.set(c.data,b),c._modified=f=!0)}f&&c.trigger(k)},reset:function(){var a=this;d(a.data,a.pristine),a._modified=!1},_accept:function(a){var b=this;b._isNew=!1,b._modified=!1,d(b.data,a),b.pristine=d(!0,{},b.data)},hasChanges:function(){return this._modified},isNew:function(){return this._isNew===!0},changes:function(){var a=null,b,c=this,d=c.data,e=c.pristine;for(b in d)b!=="__id"&&(c.isNew()||!p(e[b],d[b]))&&(a=a||{},a[b]=d[b]);return a}});s.define=function(c){var e,h=d({},{defaultItem:{}},c),i=h.id||"id",j,k,l;a.isFunction(i)?(l=i,k=i):(l=f(i),k=g(i));for(var m in h.fields){var n=h.fields[m],o=n.type||"default",p=null;m=n.field||m,n.nullable||(p=h.defaultItem[m]=n.defaultValue!==b?n.defaultValue:r[o.toLowerCase()]),c.id===m&&(j=h._defaultId=p),h.defaultItem[m]=p,n.parse=n.parse||q[o]}i=function(a,c){var d;if(c===b){d=l(a);return d!==b&&d!==null&&d!==j?d:a.__id}k(a,c)},h.id=function(a){return i(this.data,a)},e=s.extend(h),e.id=i,h.fields&&(e.fields=h.fields);return e};var t=n.extend({init:function(a){var b=this;b.options=a=d({},b.options,a),b._reader=a.reader,b._data=a.data||[],b._destroyed=[],b._transport=a.transport,b._models={},b._map(),n.fn.init.call(b),b.bind([k,m,l],a)},options:{batch:!1,sendAllFields:!1,autoSync:!1},indexOf:function(a){var b=this,c=b.options.model,d=c.id(a);return b._idMap[d]},_map:function(){var a=this,b,c,d=a._data,e=a.options.model;a._idMap={};for(b=0,c=d.length;b