//>>built
define("dojox/lang/observable",["dijit","dojo","dojox"],function(m,n,g){n.provide("dojox.lang.observable");n.experimental("dojox.lang.observable");g.lang.observable=function(k,l,p,h){return g.lang.makeObservable(l,p,h)(k)};g.lang.makeObservable=function(k,l,p,h){function t(a,b,d){return function(){return p(a,b,d,arguments)}}h=h||{};p=p||function(a,b,d,e){return b[d].apply(a,e)};if(g.lang.lettableWin){var q=g.lang.makeObservable;q.inc=(q.inc||0)+1;var w="gettable_"+q.inc;g.lang.lettableWin[w]=k;var x=
"settable_"+q.inc;g.lang.lettableWin[x]=l;var y={};return function(a){if(a.__observable)return a.__observable;if(a.data__)throw Error("Can wrap an object that is already wrapped");var b=[];for(c in h)b.push(c);var d={type:1,event:1};for(c in a)!c.match(/^[a-zA-Z][\w\$_]*$/)||c in h||c in d||b.push(c);var e=b.join(",");var c=y[e];if(!c){var u="dj_lettable_"+q.inc++,v=u+"_dj_getter",r=["Class "+u,"\tPublic data__"];c=0;for(d=b.length;c<d;c++){var f=b[c];var z=typeof a[f];"function"==z||h[f]?r.push("  Public "+
f):"object"!=z&&r.push("\tPublic Property Let "+f+"(val)","\t\tCall "+x+'(me.data__,"'+f+'",val)',"\tEnd Property","\tPublic Property Get "+f,"\t\t"+f+" \x3d "+w+'(me.data__,"'+f+'")',"\tEnd Property")}r.push("End Class");r.push("Function "+v+"()","\tDim tmp","\tSet tmp \x3d New "+u,"\tSet "+v+" \x3d tmp","End Function");g.lang.lettableWin.vbEval(r.join("\n"));y[e]=c=function(){return g.lang.lettableWin.construct(v)}}e=c();e.data__=a;try{a.__observable=e}catch(A){}c=0;for(d=b.length;c<d;c++){f=b[c];
try{var B=a[f]}catch(A){}if("function"==typeof B||h[f])e[f]=t(e,a,f)}return e}}return function(a){if(a.__observable)return a.__observable;var b=a instanceof Array?[]:{};b.data__=a;for(var d in a)"_"!=d.charAt(0)&&("function"==typeof a[d]?b[d]=t(b,a,d):"object"!=typeof a[d]&&function(e){b.__defineGetter__(e,function(){return k(a,e)});b.__defineSetter__(e,function(c){return l(a,e,c)})}(d));for(d in h)b[d]=t(b,a,d);return a.__observable=b}};if(!{}.__defineGetter__)if(n.isIE)document.body?(m=document.createElement("iframe"),
document.body.appendChild(m)):(document.write("\x3ciframe id\x3d'dj_vb_eval_frame'\x3e\x3c/iframe\x3e"),m=document.getElementById("dj_vb_eval_frame")),m.style.display="none",n=m.contentWindow.document,g.lang.lettableWin=m.contentWindow,n.write('\x3chtml\x3e\x3chead\x3e\x3cscript language\x3d"VBScript" type\x3d"text/VBScript"\x3eFunction vb_global_eval(code)ExecuteGlobal(code)End Function\x3c/script\x3e\x3cscript type\x3d"text/javascript"\x3efunction vbEval(code){ \nreturn vb_global_eval(code);}function construct(name){ \nreturn window[name]();}\x3c/script\x3e\x3c/head\x3e\x3cbody\x3evb-eval\x3c/body\x3e\x3c/html\x3e'),
n.close();else throw Error("This browser does not support getters and setters");g.lang.ReadOnlyProxy=g.lang.makeObservable(function(k,l){return k[l]},function(k,l,p){})});