/*
	Copyright (c) 2004-2011, The Dojo Foundation All Rights Reserved.
	Available via Academic Free License >= 2.1 OR the modified BSD license.
	see: http://dojotoolkit.org/license for details
*/


window[esri._dojoScopeName||"dojo"]._xdResourceLoaded(function(_1,_2,_3){return {depends:[["provide","dojox.lang.typed"],["require","dojox.json.schema"]],defineResource:function(_4,_5,_6){if(!_4._hasResource["dojox.lang.typed"]){_4._hasResource["dojox.lang.typed"]=true;(function(){var _7,_8=typeof _4!="undefined";if(_8){_4.provide("dojox.lang.typed");_4.require("dojox.json.schema");_7=_6.json.schema;}else{if(typeof JSONSchema=="undefined"){throw new Error("Dojo or JSON Schema library must be present");}_7=JSONSchema;}function _9(_a,_b){var _c=function(){var _d=_b();if(_d&&_d.parameters){var _e=_d.parameters;for(var j=0;j<_e.length;j++){arguments[j]=_f(arguments[j],_e[j],j.toString());}if(_d.additionalParameters){for(;j<arguments.length;j++){arguments[j]=_f(arguments[j],_d.additionalParameters,j.toString());}}}var _10=_a.apply(this,arguments);if(_d.returns){_f(_10,_d.returns);}return _10;};_c.__typedFunction__=true;for(var i in _a){_c[i]=_a[i];}return _c;};function _11(obj){return function(){return obj;};};function _f(_12,_13,_14){if(typeof _12=="function"&&_13&&!_12.__typedFunction__){_12=_9(_12,_11(_13));}var _15=_7._validate(_12,_13,_14);if(!_15.valid){var _16="";var _17=_15.errors;for(var i=0;i<_17.length;i++){_16+=_17[i].property+" "+_17[i].message+"\n";}throw new TypeError(_16);}return _12;};var _18=_7.__defineGetter__;var _19=function(_1a){if(_1a.__typedClass__){return _1a;}var _1b=function(){var i,_1c,_1d=_1b.properties;var _1e=_1b.methods;_1a.apply(this,arguments);this.__props__={};for(i in _1e){_1c=this[i];if(_1c){if(!_1c.__typedFunction__){var _1f=this;while(!_1f.hasOwnProperty(i)&&_1f.__proto__){_1f=_1f.__proto__;}(function(i){_1f[i]=_9(_1c,function(){return _1e[i];});})(i);}}else{(function(i){this[i]=function(){throw new TypeError("The method "+i+" is defined but not implemented");};})(i);}}if(_18){var _20=this;for(i in _1d){_1c=this[i];if(this.hasOwnProperty(i)){this.__props__[i]=_1c;}(function(i){delete _20[i];_20.__defineGetter__(i,function(){return i in this.__props__?this.__props__[i]:this.__proto__[i];});_20.__defineSetter__(i,function(_21){_f(_21,_1d[i],i);return this.__props__[i]=_21;});})(i);}}_f(this,_1b);};_1b.prototype=_1a.prototype;for(var i in _1a){_1b[i]=_1a[i];}if(_1a.prototype.declaredClass&&_8){_4.setObject(_1a.prototype.declaredClass,_1b);}_1b.__typedClass__=true;return _1b;};if(_8){_6.lang.typed=_19;if(_4.config.typeCheckAllClasses){var _22=_4.declare;_4.declare=function(_23){var _24=_22.apply(this,arguments);_24=_19(_24);return _24;};_4.mixin(_4.declare,_22);}}else{typed=_19;}})();}}};});