From 870a5daf24c165069fe6f546bb3710f9b3880538 Mon Sep 17 00:00:00 2001 From: Petr Vobornik Date: Fri, 10 Jan 2014 17:28:27 +0100 Subject: webui: Datetime parsing and formatting this patch implements: - output_formatter in field. It should be used in par with formatter. Formatter serves for datasource->widget conversion, output_formatter for widget->datasource format conversion. - datetime module which parses/format strings in subset of ISO 8601 and LDAP generalized time format to Date. - utc formatter replaced with new datetime formatter - datetime_validator introduced - new datetime field, extension of text field, which by default uses datetime formatter and validator Dojo was regenerated to include dojo/string module https://fedorahosted.org/freeipa/ticket/4194 Reviewed-By: Adam Misnyovszki --- install/ui/build/dojo/dojo.js | 2 +- install/ui/doc/categories.json | 3 +- install/ui/src/dojo.profile.js | 1 + install/ui/src/freeipa/datetime.js | 217 +++++++++++++++++++++++++++++++++++++ install/ui/src/freeipa/field.js | 116 ++++++++++++++++++-- install/ui/src/freeipa/host.js | 25 +++-- install/ui/src/freeipa/ipa.js | 39 +------ install/ui/src/freeipa/user.js | 2 +- install/ui/src/freeipa/widget.js | 18 +-- install/ui/src/webui.profile.js | 1 + install/ui/test/data/ipa_init.json | 1 + install/ui/test/utils_tests.js | 91 +++++++++++++++- 12 files changed, 446 insertions(+), 70 deletions(-) create mode 100644 install/ui/src/freeipa/datetime.js (limited to 'install/ui') diff --git a/install/ui/build/dojo/dojo.js b/install/ui/build/dojo/dojo.js index 89d9ff191..5b38c81c9 100644 --- a/install/ui/build/dojo/dojo.js +++ b/install/ui/build/dojo/dojo.js @@ -1 +1 @@ -(function(e,t){var n=function(){},r=function(e){for(var t in e)return 0;return 1},i={}.toString,s=function(e){return i.call(e)=="[object Function]"},o=function(e){return i.call(e)=="[object String]"},u=function(e){return i.call(e)=="[object Array]"},a=function(e,t){if(e)for(var n=0;e[n];)t(e[n++])},f=function(e,t){for(var n in t)e[n]=t[n];return e},l=function(e,t){return f(new Error(e),{src:"dojoLoader",info:t})},c=1,h=function(){return"_"+c++},p=function(e,t,n){return xt(e,t,n,0,p)},d=this,v=d.document,m=v&&v.createElement("DiV"),g=p.has=function(e){return s(y[e])?y[e]=y[e](d,v,m):y[e]},y=g.cache=t.hasCache;g.add=function(e,t,n,r){return(y[e]===undefined||r)&&(y[e]=t),n&&g(e)},0,0;for(var x in e.has)g.add(x,e.has[x],0,1);var T=1,N=2,C=3,k=4,L=5,A=0,O="sync",M="xd",_=[],D=0,P=n,H=n,B;p.isXdUrl=n,p.initSyncLoader=function(e,t,n){return D||(D=e,P=t,H=n),{sync:O,requested:T,arrived:N,nonmodule:C,executing:k,executed:L,syncExecStack:_,modules:Z,execQ:Nt,getModule:Ft,injectModule:ln,setArrived:At,signal:X,finishExec:Gt,execModule:Zt,dojoRequirePlugin:D,getLegacyMode:function(){return A},guardCheckComplete:tn}};var j=location.protocol,F=location.host;p.isXdUrl=function(e){if(/^\./.test(e))return!1;if(/^\/\//.test(e))return!0;var t=e.match(/^([^\/\:]+\:)\/+([^\/]+)/);return t&&(t[1]!=j||F&&t[2]!=F)},1,g.add("dojo-force-activex-xhr",!v.addEventListener&&window.location.protocol=="file:"),g.add("native-xhr",typeof XMLHttpRequest!="undefined");if(g("native-xhr")&&!g("dojo-force-activex-xhr"))B=function(){return new XMLHttpRequest};else{for(var I=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],q,S=0;S<3;)try{q=I[S++];if(new ActiveXObject(q))break}catch(R){}B=function(){return new ActiveXObject(q)}}p.getXhr=B,g.add("dojo-gettext-api",1),p.getText=function(e,t,n){var r=B();r.open("GET",rn(e),!1),r.send(null);if(r.status==200||!location.host&&!r.status)return n&&n(r.responseText,t),r.responseText;throw l("xhrFailed",r.status)};var U=new Function("return eval(arguments[0]);");p.eval=function(e,t){return U(e+"\r\n////@ sourceURL="+t)};var z={},W="error",X=p.signal=function(e,t){var n=z[e];a(n&&n.slice(0),function(e){e.apply(null,u(t)?t:[t])})},V=p.on=function(e,t){var n=z[e]||(z[e]=[]);return n.push(t),{remove:function(){for(var e=0;eE&&(S=s(t[1])?e.replace(t[0],t[1]):t[1])}),S?Pt(S,0,n,r,i,o,u,f,c):(y=r[e],y?c?Dt(y.pid,y.mid,y.pack,y.url):r[e]:(v=Mt(e,u),v?m=v[1]+e.substring(v[3]):h?m=p.location+"/"+d:g("config-tlmSiblingOfDojo")?m="../"+e:m=e,/(^\/)|(\:)/.test(m)||(m=i+m),m+=".js",Dt(h,e,p,_t(m))))},Ht=function(e,t){return Pt(e,t,Q,Z,p.baseUrl,Y,K,$)},Bt=function(e,t,n){return e.normalize?e.normalize(t,function(e){return It(e,n)}):It(t,n)},jt=0,Ft=function(e,t,n){var r,i,s,o;return r=e.match(/^(.+?)\!(.*)$/),r?(i=Ft(r[1],t,n),A==O&&!i.executed&&(ln(i),i.injected===N&&!i.executed&&tn(function(){Zt(i)}),i.executed?Kt(i):Nt.unshift(i)),i.executed===L&&!i.load&&Kt(i),i.load?(s=Bt(i,r[2],t),e=i.mid+"!"+(i.dynamic?++jt+"!":"")+s):(s=r[2],e=i.mid+"!"+ ++jt+"!waitingForPlugin"),o={plugin:i,mid:e,req:Tt(t),prid:s}):o=Ht(e,t),Z[o.mid]||!n&&(Z[o.mid]=o)},It=p.toAbsMid=function(e,t){return Ht(e,t).mid},qt=p.toUrl=function(e,t){var n=Ht(e+"/x",t),r=n.url;return rn(n.pid===0?e:r.substring(0,r.length-5))},Rt={injected:N,executed:L,def:C,result:C},Ut=function(e){return Z[e]=f({mid:e},Rt)},zt=Ut("require"),Wt=Ut("exports"),Xt=Ut("module"),Vt=function(e,t){p.trace("loader-run-factory",[e.mid]);var n=e.def,r;_.unshift(e);if(g("config-dojo-loader-catches"))try{r=s(n)?n.apply(null,t):n}catch(i){X(W,e.result=l("factoryThrew",[e,i]))}else r=s(n)?n.apply(null,t):n;e.result=r===undefined&&e.cjs?e.cjs.exports:r,_.shift(e)},$t={},Jt=0,Kt=function(e){var t=e.result;return e.dynamic=t.dynamic,e.normalize=t.normalize,e.load=t.load,e},Qt=function(e){var t={};a(e.loadQ,function(n){var r=Bt(e,n.prid,n.req.module),i=e.dynamic?n.mid.replace(/waitingForPlugin$/,r):e.mid+"!"+r,s=f(f({},n),{mid:i,prid:r,injected:0});Z[i]||sn(Z[i]=s),t[n.mid]=Z[i],At(n),delete Z[n.mid]}),e.loadQ=0;var n=function(e){for(var n,r=e.deps||[],i=0;i")]),!e.def||t?$t:e.cjs&&e.cjs.exports;if(!e.executed){if(!e.def)return $t;var n=e.mid,r=e.deps||[],i,s,o=[],u=0;e.executed=k;while(i=r[u++]){s=i===zt?Tt(e):i===Wt?e.cjs.exports:i===Xt?e.cjs:Zt(i,t);if(s===$t)return e.executed=0,p.trace("loader-exec-module",["abort",n]),0,$t;o.push(s)}Vt(e,o),Gt(e),0}return e.result},en=0,tn=function(e){try{en++,e()}finally{en--}Ot()&&X("idle",[])},nn=function(){if(en)return;tn(function(){P();for(var e,t,n=0;n0),n.add("device-width",screen.availWidth||innerWidth);var a=document.createElement("form");return n.add("dom-attributes-explicit",a.attributes.length==0),n.add("dom-attributes-specified-flag",a.attributes.length>0&&a.attributes.length<40),n.clearElement=function(e){return e.innerHTML="",e},n.normalize=function(e,t){var r=e.match(/[\?:]|[^:\?]*/g),i=0,s=function(e){var t=r[i++];return t==":"?0:r[i++]=="?"?!e&&n(t)?s():(s(!0),s(e)):t||0};return e=s(),e&&t(e)},n.load=function(e,t,n){e?t([e],n):n()},n})},"dojo/_base/declare":function(){define(["./kernel","../has","./lang"],function(e,t,n){function f(e,t){throw new Error("declare"+(t?" "+t:"")+": "+e)}function l(e,t){var n=[],r=[{cls:0,refs:[]}],i={},o=1,a=e.length,l=0,c,h,p,d,v,m,g,y;for(;l=0;--c)v=h[c].prototype,v.hasOwnProperty("declaredClass")||(v.declaredClass="uniqName_"+u++),g=v.declaredClass,i.hasOwnProperty(g)||(i[g]={count:0,refs:[],cls:h[c]},++o),m=i[g],d&&d!==m&&(m.refs.push(d),++d.count),d=m;++d.count,r[0].refs.push(d)}while(r.length){d=r.pop(),n.push(d.cls),--o;while(y=d.refs,y.length==1){d=y[0];if(!d||--d.count){d=0;break}n.push(d.cls),--o}if(d)for(l=0,a=y.length;l=0;--o)s=e[o],u=s._meta,s=u?u.ctor:s,s&&s.apply(this,f?f[o]:n);s=this.postscript,s&&s.apply(this,r)}}function E(e,t){return function(){var n=arguments,r=n,i=n[0],s;if(!(this instanceof n.callee))return N(n);t&&(i&&(s=i.preamble,s&&(r=s.apply(this,r)||r)),s=this.preamble,s&&s.apply(this,r)),e&&e.apply(this,n),s=this.postscript,s&&s.apply(this,n)}}function S(e){return function(){var t=arguments,n=0,r,i;if(!(this instanceof t.callee))return N(t);for(;r=e[n];++n){i=r._meta,r=i?i.ctor:r;if(r){r.apply(this,t);break}}r=this.postscript,r&&r.apply(this,t)}}function x(e,t,n){return function(){var r,i,s,o=0,u=1;n&&(o=t.length-1,u=-1);for(;r=t[o];o+=u)i=r._meta,s=(i?i.hidden:r.prototype)[e],s&&s.apply(this,arguments)}}function T(e){o.prototype=e.prototype;var t=new o;return o.prototype=null,t}function N(e){var t=e.callee,n=T(t);return t.apply(n,e),n}function C(e,t,o){typeof e!="string"&&(o=t,t=e,e=""),o=o||{};var u,p,g,N,k,L,A,O=1,M=t;s.call(t)=="[object Array]"?(L=l(t,e),g=L[0],O=L.length-g,t=L[O]):(L=[0],t?s.call(t)=="[object Function]"?(g=t._meta,L=L.concat(g?g.bases:t)):f("base class is not a callable constructor.",e):t!==null&&f("unknown base class. Did you use dojo.require to pull it in?",e));if(t)for(p=O-1;;--p){u=T(t);if(!p)break;g=L[p],(g._meta?m:r)(u,g.prototype),N=new Function,N.superclass=t,N.prototype=u,t=u.constructor=N}else u={};C.safeMixin(u,o),g=o.constructor,g!==i.constructor&&(g.nom=a,u.constructor=g);for(p=O-1;p;--p)g=L[p]._meta,g&&g.chains&&(A=r(A||{},g.chains));u["-chains-"]&&(A=r(A||{},u["-chains-"])),g=!A||!A.hasOwnProperty(a),L[0]=N=A&&A.constructor==="manual"?S(L):L.length==1?E(o.constructor,g):w(L,g),N._meta={bases:L,hidden:o,chains:A,parents:M,ctor:o.constructor},N.superclass=t&&t.prototype,N.extend=y,N.createSubclass=b,N.prototype=u,u.constructor=N,u.getInherited=h,u.isInstanceOf=v,u.inherited=d,u.__inherited=c,e&&(u.declaredClass=e,n.setObject(e,N));if(A)for(k in A)u[k]&&typeof A[k]=="string"&&k!=a&&(g=u[k]=x(k,L,A[k]==="after"),g.nom=k);return N}var r=n.mixin,i=Object.prototype,s=i.toString,o=new Function,u=0,a="constructor",d=e.config.isDebug?p:c;return e.safeMixin=C.safeMixin=g,e.declare=C,C})},"dojo/_base/kernel":function(){define(["../has","./config","require","module"],function(e,t,n,r){var i,s,o={},u={},a={config:t,global:this,dijit:o,dojox:u},f={dojo:["dojo",a],dijit:["dijit",o],dojox:["dojox",u]},l=n.map&&n.map[r.id.match(/[^\/]+/)[0]],c;for(s in l)f[s]?f[s][0]=l[s]:f[s]=[l[s],{}];for(s in f)c=f[s],c[1]._scopeName=c[0],t.noGlobals||(this[c[0]]=c[1]);a.scopeMap=f,a.baseUrl=a.config.baseUrl=n.baseUrl,a.isAsync=n.async,a.locale=t.locale;var h="$Rev: 43d05c6 $".match(/\d+/);a.version={major:1,minor:9,patch:1,flag:"",revision:h?+h[0]:NaN,toString:function(){var e=a.version;return e.major+"."+e.minor+"."+e.patch+e.flag+" ("+e.revision+")"}},1,Function("d","d.eval = function(){return d.global.eval ? d.global.eval(arguments[0]) : eval(arguments[0]);}")(a),a.exit=function(){},1,typeof console!="undefined"||(console={});var p=["assert","count","debug","dir","dirxml","error","group","groupEnd","info","profile","profileEnd","time","timeEnd","trace","warn","log"],d;i=0;while(d=p[i++])console[d]||function(){var e=d+"";console[e]="log"in console?function(){var t=Array.apply({},arguments);t.unshift(e+":"),console.log(t.join(" "))}:function(){},console[e]._fake=!0}();e.add("dojo-debug-messages",!!t.isDebug),a.deprecated=a.experimental=function(){},e("dojo-debug-messages")&&(a.deprecated=function(e,t,n){var r="DEPRECATED: "+e;t&&(r+=" "+t),n&&(r+=" -- will be removed in version: "+n),console.warn(r)},a.experimental=function(e,t){var n="EXPERIMENTAL: "+e+" -- APIs subject to change without notice.";t&&(n+=" "+t),console.warn(n)}),1;if(t.modulePaths){a.deprecated("dojo.modulePaths","use paths configuration");var v={};for(s in t.modulePaths)v[s.replace(/\./g,"/")]=t.modulePaths[s];n({paths:v})}return 1,a.moduleUrl=function(e,t){a.deprecated("dojo.moduleUrl()","use require.toUrl","2.0");var r=null;return e&&(r=n.toUrl(e.replace(/\./g,"/")+(t?"/"+t:"")+"/*.*").replace(/\/\*\.\*/,"")+(t?"":"/")),r},a._hasResource={},a})},"dojo/_base/config":function(){define(["../has","require"],function(e,t){var n={},r=t.rawConfig,i;for(i in r)n[i]=r[i];return!n.locale&&typeof navigator!="undefined"&&(n.locale=(navigator.language||navigator.userLanguage).toLowerCase()),n})},"dojo/_base/lang":function(){define(["./kernel","../has","../sniff"],function(e,t){t.add("bug-for-in-skips-shadowed",function(){for(var e in{toString:1})return 0;return 1});var n=t("bug-for-in-skips-shadowed")?"hasOwnProperty.valueOf.isPrototypeOf.propertyIsEnumerable.toLocaleString.toString.constructor".split("."):[],r=n.length,i=function(t,n,r){var i,s=0,o=e.global;if(!r){if(!t.length)return o;i=t[s++];try{r=e.scopeMap[i]&&e.scopeMap[i][1]}catch(u){}r=r||(i in o?o[i]:n?o[i]={}:undefined)}while(r&&(i=t[s++]))r=i in r?r[i]:n?r[i]={}:undefined;return r},s=Object.prototype.toString,o=function(e,t,n){return(n||[]).concat(Array.prototype.slice.call(e,t||0))},u=/\{([^\}]+)\}/g,a={_extraNames:n,_mixin:function(e,i,s){var o,u,a,f={};for(o in i){u=i[o];if(!(o in e)||e[o]!==u&&(!(o in f)||f[o]!==u))e[o]=s?s(u):u}if(t("bug-for-in-skips-shadowed")&&i)for(a=0;a2)return a._hitchArgs.apply(e,arguments);n||(n=t,t=null);if(a.isString(n)){t=t||e.global;if(!t[n])throw['lang.hitch: scope["',n,'"] is null (scope="',t,'")'].join("");return function(){return t[n].apply(t,arguments||[])}}return t?function(){return n.apply(t,arguments||[])}:n},delegate:function(){function e(){}return function(t,n){e.prototype=t;var r=new e;return e.prototype=null,n&&a._mixin(r,n),r}}(),_toArray:t("ie")?function(){function e(e,t,n){var r=n||[];for(var i=t||0;i=0),e.add("msapp",parseFloat(n.split("MSAppHost/")[1])||undefined),e.add("khtml",r.indexOf("Konqueror")>=0?i:undefined),e.add("webkit",parseFloat(n.split("WebKit/")[1])||undefined),e.add("chrome",parseFloat(n.split("Chrome/")[1])||undefined),e.add("safari",r.indexOf("Safari")>=0&&!e("chrome")?parseFloat(r.split("Version/")[1]):undefined),e.add("mac",r.indexOf("Macintosh")>=0),e.add("quirks",document.compatMode=="BackCompat");if(n.match(/(iPhone|iPod|iPad)/)){var s=RegExp.$1.replace(/P/,"p"),o=n.match(/OS ([\d_]+)/)?RegExp.$1:"1",u=parseFloat(o.replace(/_/,".").replace(/_/g,""));e.add(s,u),e.add("ios",u)}e.add("android",parseFloat(n.split("Android ")[1])||undefined),e.add("bb",(n.indexOf("BlackBerry")>=0||n.indexOf("BB10")>=0)&&parseFloat(n.split("Version/")[1])||undefined),e.add("svg",typeof SVGAngle!="undefined");if(!e("webkit")){n.indexOf("Opera")>=0&&e.add("opera",i>=9.8?parseFloat(n.split("Version/")[1])||i:i),n.indexOf("Gecko")>=0&&!e("khtml")&&!e("webkit")&&e.add("mozilla",i),e("mozilla")&&e.add("ff",parseFloat(n.split("Firefox/")[1]||n.split("Minefield/")[1])||undefined);if(document.all&&!e("opera")){var a=parseFloat(r.split("MSIE ")[1])||undefined,f=document.documentMode;f&&f!=5&&Math.floor(a)!=f&&(a=f),e.add("ie",a)}e.add("wii",typeof opera!="undefined"&&opera.wiiremote)}return e})},"dojo/_base/array":function(){define(["./kernel","../has","./lang"],function(e,t,n){function s(e){return r[e]=new Function("item","index","array",e)}function o(e){var t=!e;return function(n,i,o){var u=0,a=n&&n.length||0,f;a&&typeof n=="string"&&(n=n.split("")),typeof i=="string"&&(i=r[i]||s(i));if(o)for(;u0)return a.lastIndexOf(s,o,u);var l=s&&s.length||0,c=e?l+r:n,h;u===i?h=e?n:l+r:u<0?(h=l+u,h<0&&(h=n)):h=u>=l?l+r:u,l&&typeof s=="string"&&(s=s.split(""));for(;h!=c;h+=t)if(s[h]==o)return h;return-1}}var r={},i,a={every:o(!1),some:o(!0),indexOf:u(!0),lastIndexOf:u(!1),forEach:function(e,t,n){var i=0,o=e&&e.length||0;o&&typeof e=="string"&&(e=e.split("")),typeof t=="string"&&(t=r[t]||s(t));if(n)for(;i':"<"+h.join("><")+">",h.post=""}var p;n("ie")<=8&&(p=function(e){e.__dojo_html5_tested="yes";var t=m("div",{innerHTML:"",style:{visibility:"hidden"}},e.body);t.childNodes.length!==1&&"abbr article aside audio canvas details figcaption figure footer header hgroup mark meter nav output progress section summary time video".replace(/\b\w+\b/g,function(t){e.createElement(t)}),b(t)}),e.toDom=function(t,i){i=i||r.doc;var s=i[l];s||(i[l]=s=++f+"",a[s]=i.createElement("div")),n("ie")<=8&&!i.__dojo_html5_tested&&i.body&&p(i),t+="";var c=t.match(u),h=c?c[1].toLowerCase():"",d=a[s],v,m,g,y;if(c&&o[h]){v=o[h],d.innerHTML=v.pre+t+v.post;for(m=v.length;m;--m)d=d.firstChild}else d.innerHTML=t;if(d.childNodes.length==1)return d.removeChild(d.firstChild);y=i.createDocumentFragment();while(g=d.firstChild)y.appendChild(g);return y},e.place=function(n,r,s){r=i.byId(r),typeof n=="string"&&(n=/^\s*90)&&(t<96||t>111)&&(t<186||t>192)&&(t<219||t>222)&&t!=229;if(r||e.ctrlKey){var i=r?0:t;if(e.ctrlKey){if(t==3||t==13)return n.call(e.currentTarget,e);i>95&&i<106?i-=48:!e.shiftKey&&i>=65&&i<=90?i+=32:i=f[i]||i}var s=c(e,{type:"keypress",faux:!0,charCode:i});n.call(e.currentTarget,s),o("ie")&&d(e,s.keyCode)}}),i=t(e,"keypress",function(e){var t=e.charCode;return t=t>=32?t:0,e=c(e,{charCode:t,faux:!0}),n.call(this,e)});return{remove:function(){r.remove(),i.remove()}}}}else o("opera")?p=function(e,n){return t(e,"keypress",function(e){var t=e.which;return t==3&&(t=99),t=t<32&&!e.shiftKey?0:t,e.ctrlKey&&!e.shiftKey&&t>=65&&t<=90&&(t+=32),n.call(this,c(e,{charCode:t}))})}:p=function(e,n){return t(e,"keypress",function(e){return h(e),n.call(this,e)})};var v={_keypress:p,connect:function(e,t,n,r,i){var s=arguments,o=[],u=0;o.push(typeof s[0]=="string"?null:s[u++],s[u++]);var f=s[u+1];o.push(typeof f=="string"||typeof f=="function"?s[u++]:null,s[u++]);for(var l=s.length;u-1){var o=t.split(/\s*,\s*/),u=[],a=0,f;while(f=o[a++])u.push(r(e,f,n,i,s));return u.remove=function(){for(var e=0;e=0&&(o.width=r+s),i>=0&&(o.height=i+s)}function u(e){return e.tagName.toLowerCase()=="button"||e.tagName.toLowerCase()=="input"&&(e.getAttribute("type")||"").toLowerCase()=="button"}function a(e){return i.boxModel=="border-box"||e.tagName.toLowerCase()=="table"||u(e)}var i={};i.boxModel="content-box",e("ie")&&(i.boxModel=document.compatMode=="BackCompat"?"border-box":"content-box"),i.getPadExtents=function(t,i){t=n.byId(t);var s=i||r.getComputedStyle(t),o=r.toPixelValue,u=o(t,s.paddingLeft),a=o(t,s.paddingTop),f=o(t,s.paddingRight),l=o(t,s.paddingBottom);return{l:u,t:a,r:f,b:l,w:u+f,h:a+l}};var s="none";i.getBorderExtents=function(t,i){t=n.byId(t);var o=r.toPixelValue,u=i||r.getComputedStyle(t),a=u.borderLeftStyle!=s?o(t,u.borderLeftWidth):0,f=u.borderTopStyle!=s?o(t,u.borderTopWidth):0,l=u.borderRightStyle!=s?o(t,u.borderRightWidth):0,c=u.borderBottomStyle!=s?o(t,u.borderBottomWidth):0;return{l:a,t:f,r:l,b:c,w:a+l,h:f+c}},i.getPadBorderExtents=function(t,s){t=n.byId(t);var o=s||r.getComputedStyle(t),u=i.getPadExtents(t,o),a=i.getBorderExtents(t,o);return{l:u.l+a.l,t:u.t+a.t,r:u.r+a.r,b:u.b+a.b,w:u.w+a.w,h:u.h+a.h}},i.getMarginExtents=function(t,i){t=n.byId(t);var s=i||r.getComputedStyle(t),o=r.toPixelValue,u=o(t,s.marginLeft),a=o(t,s.marginTop),f=o(t,s.marginRight),l=o(t,s.marginBottom);return{l:u,t:a,r:f,b:l,w:u+f,h:a+l}},i.getMarginBox=function(o,u){o=n.byId(o);var a=u||r.getComputedStyle(o),f=i.getMarginExtents(o,a),l=o.offsetLeft-f.l,c=o.offsetTop-f.t,h=o.parentNode,p=r.toPixelValue,d;if(e("mozilla")){var v=parseFloat(a.left),m=parseFloat(a.top);!isNaN(v)&&!isNaN(m)?(l=v,c=m):h&&h.style&&(d=r.getComputedStyle(h),d.overflow!="visible"&&(l+=d.borderLeftStyle!=s?p(o,d.borderLeftWidth):0,c+=d.borderTopStyle!=s?p(o,d.borderTopWidth):0))}else(e("opera")||e("ie")==8&&!e("quirks"))&&h&&(d=r.getComputedStyle(h),l-=d.borderLeftStyle!=s?p(o,d.borderLeftWidth):0,c-=d.borderTopStyle!=s?p(o,d.borderTopWidth):0);return{l:l,t:c,w:o.offsetWidth+f.w,h:o.offsetHeight+f.h}},i.getContentBox=function(s,o){s=n.byId(s);var u=o||r.getComputedStyle(s),a=s.clientWidth,f,l=i.getPadExtents(s,u),c=i.getBorderExtents(s,u);return a?(f=s.clientHeight,c.w=c.h=0):(a=s.offsetWidth,f=s.offsetHeight),e("opera")&&(l.l+=c.l,l.t+=c.t),{l:l.l,t:l.t,w:a-l.w-c.w,h:f-l.h-c.h}},i.setContentSize=function(t,r,s){t=n.byId(t);var u=r.w,f=r.h;if(a(t)){var l=i.getPadBorderExtents(t,s);u>=0&&(u+=l.w),f>=0&&(f+=l.h)}o(t,NaN,NaN,u,f)};var f={l:0,t:0,w:0,h:0};return i.setMarginBox=function(s,l,c){s=n.byId(s);var h=c||r.getComputedStyle(s),p=l.w,d=l.h,v=a(s)?f:i.getPadBorderExtents(s,h),m=i.getMarginExtents(s,h);if(e("webkit")&&u(s)){var g=s.style;p>=0&&!g.width&&(g.width="4px"),d>=0&&!g.height&&(g.height="4px")}p>=0&&(p=Math.max(p-v.w-m.w,0)),d>=0&&(d=Math.max(d-v.h-m.h,0)),o(s,l.l,l.t,p,d)},i.isBodyLtr=function(n){return n=n||t.doc,(t.body(n).dir||n.documentElement.dir||"ltr").toLowerCase()=="ltr"},i.docScroll=function(r){r=r||t.doc;var s=t.doc.parentWindow||t.doc.defaultView;return"pageXOffset"in s?{x:s.pageXOffset,y:s.pageYOffset}:(s=e("quirks")?t.body(r):r.documentElement)&&{x:i.fixIeBiDiScrollLeft(s.scrollLeft||0,r),y:s.scrollTop||0}},e("ie")&&(i.getIeDocumentElementOffset=function(r){r=r||t.doc;var i=r.documentElement;if(e("ie")<8){var s=i.getBoundingClientRect(),o=s.left,u=s.top;return e("ie")<7&&(o+=i.clientLeft,u+=i.clientTop),{x:o<0?0:o,y:u<0?0:u}}return{x:0,y:0}}),i.fixIeBiDiScrollLeft=function(r,s){s=s||t.doc;var o=e("ie");if(o&&!i.isBodyLtr(s)){var u=e("quirks"),a=u?t.body(s):s.documentElement,f=t.global;return o==6&&!u&&f.frameElement&&a.scrollHeight>a.clientHeight&&(r+=a.clientLeft),o<8||u?r+a.clientWidth-a.scrollWidth:-r}return r},i.position=function(r,s){r=n.byId(r);var o=t.body(r.ownerDocument),u=r.getBoundingClientRect();u={x:u.left,y:u.top,w:u.right-u.left,h:u.bottom-u.top};if(e("ie")<9){var a=i.getIeDocumentElementOffset(r.ownerDocument);u.x-=a.x+(e("quirks")?o.clientLeft+o.offsetLeft:0),u.y-=a.y+(e("quirks")?o.clientTop+o.offsetTop:0)}if(s){var f=i.docScroll(r.ownerDocument);u.x+=f.x,u.y+=f.y}return u},i.getMarginSize=function(t,s){t=n.byId(t);var o=i.getMarginExtents(t,s||r.getComputedStyle(t)),u=t.getBoundingClientRect();return{w:u.right-u.left+o.w,h:u.bottom-u.top+o.h}},i.normalizeEvent=function(t){"layerX"in t||(t.layerX=t.offsetX,t.layerY=t.offsetY);if(!e("dom-addeventlistener")){var n=t.target,r=n&&n.ownerDocument||document,s=e("quirks")?r.body:r.documentElement,o=i.getIeDocumentElementOffset(r);t.pageX=t.clientX+i.fixIeBiDiScrollLeft(s.scrollLeft||0,r)-o.x,t.pageY=t.clientY+(s.scrollTop||0)-o.y}},i})},"dojo/mouse":function(){define(["./_base/kernel","./on","./has","./dom","./_base/window"],function(e,t,n,r,i){function o(e,n){var i=function(i,s){return t(i,e,function(e){if(n)return n(e,s);if(!r.isDescendant(e.relatedTarget,i))return s.call(this,e)})};return i.bubble=function(t){return o(e,function(e,n){var r=t(e.target),i=e.relatedTarget;if(r&&r!=(i&&i.nodeType==1&&t(i)))return n.call(r,e)})},i}n.add("dom-quirks",i.doc&&i.doc.compatMode=="BackCompat"),n.add("events-mouseenter",i.doc&&"onmouseenter"in i.doc.createElement("div")),n.add("events-mousewheel",i.doc&&"onmousewheel"in i.doc);var s;n("dom-quirks")&&n("ie")||!n("dom-addeventlistener")?s={LEFT:1,MIDDLE:4,RIGHT:2,isButton:function(e,t){return e.button&t},isLeft:function(e){return e.button&1},isMiddle:function(e){return e.button&4},isRight:function(e){return e.button&2}}:s={LEFT:0,MIDDLE:1,RIGHT:2,isButton:function(e,t){return e.button==t},isLeft:function(e){return e.button==0},isMiddle:function(e){return e.button==1},isRight:function(e){return e.button==2}},e.mouseButtons=s;var u;return n("events-mousewheel")?u="mousewheel":u=function(e,n){return t(e,"DOMMouseScroll",function(e){e.wheelDelta=-e.detail,n.call(this,e)})},{_eventHandler:o,enter:o("mouseover"),leave:o("mouseout"),wheel:u,isLeft:s.isLeft,isMiddle:s.isMiddle,isRight:s.isRight}})},"dojo/_base/sniff":function(){define(["./kernel","./lang","../sniff"],function(e,t,n){return e._name="browser",t.mixin(e,{isBrowser:!0,isFF:n("ff"),isIE:n("ie"),isKhtml:n("khtml"),isWebKit:n("webkit"),isMozilla:n("mozilla"),isMoz:n("mozilla"),isOpera:n("opera"),isSafari:n("safari"),isChrome:n("chrome"),isMac:n("mac"),isIos:n("ios"),isAndroid:n("android"),isWii:n("wii"),isQuirks:n("quirks"),isAir:n("air")}),n})},"dojo/keys":function(){define(["./_base/kernel","./sniff"],function(e,t){return e.keys={BACKSPACE:8,TAB:9,CLEAR:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,META:t("webkit")?91:224,PAUSE:19,CAPS_LOCK:20,ESCAPE:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT_ARROW:37,UP_ARROW:38,RIGHT_ARROW:39,DOWN_ARROW:40,INSERT:45,DELETE:46,HELP:47,LEFT_WINDOW:91,RIGHT_WINDOW:92,SELECT:93,NUMPAD_0:96,NUMPAD_1:97,NUMPAD_2:98,NUMPAD_3:99,NUMPAD_4:100,NUMPAD_5:101,NUMPAD_6:102,NUMPAD_7:103,NUMPAD_8:104,NUMPAD_9:105,NUMPAD_MULTIPLY:106,NUMPAD_PLUS:107,NUMPAD_ENTER:108,NUMPAD_MINUS:109,NUMPAD_PERIOD:110,NUMPAD_DIVIDE:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,F13:124,F14:125,F15:126,NUM_LOCK:144,SCROLL_LOCK:145,UP_DPAD:175,DOWN_DPAD:176,LEFT_DPAD:177,RIGHT_DPAD:178,copyKey:t("mac")&&!t("air")?t("safari")?91:224:17}})},"dojo/dom-class":function(){define(["./_base/lang","./_base/array","./dom"],function(e,t,n){function u(e){if(typeof e=="string"||e instanceof String){if(e&&!s.test(e))return o[0]=e,o;var n=e.split(s);return n.length&&!n[0]&&n.shift(),n.length&&!n[n.length-1]&&n.pop(),n}return e?t.filter(e,function(e){return e}):[]}var r="className",i,s=/\s+/,o=[""],a={};return i={contains:function(t,i){return(" "+n.byId(t)[r]+" ").indexOf(" "+i+" ")>=0},add:function(t,i){t=n.byId(t),i=u(i);var s=t[r],o;s=s?" "+s+" ":" ",o=s.length;for(var a=0,f=i.length,l;a-1&&s.splice(e,1)},o}})})},"dojo/when":function(){define(["./Deferred","./promise/Promise"],function(e,t){"use strict";return function(r,i,s,o){var u=r&&typeof r.then=="function",a=u&&r instanceof t;if(!u)return arguments.length>1?i?i(r):r:(new e).resolve(r);if(!a){var f=new e(r.cancel);r.then(f.resolve,f.reject,f.progress),r=f.promise}return i||s||o?r.then(i,s,o):r}})},"dojo/Deferred":function(){define(["./has","./_base/lang","./errors/CancelError","./promise/Promise","./promise/instrumentation"],function(e,t,n,r,i){"use strict";var s=0,o=1,u=2,a="This deferred has already been fulfilled.",f=Object.freeze||function(){},l=function(e,t,n,r,i){t===u&&d.instrumentRejected&&e.length===0&&d.instrumentRejected(n,!1,r,i);for(var s=0;s");r.instrumentRejected=f,a=parseInt(o[0],10)||a}}}})},"dojo/promise/tracer":function(){define(["../_base/lang","./Promise","../Evented"],function(e,t,n){"use strict";function s(e){setTimeout(function(){i.apply(r,e)},0)}var r=new n,i=r.emit;return r.emit=null,t.prototype.trace=function(){var t=e._toArray(arguments);return this.then(function(e){s(["resolved",e].concat(t))},function(e){s(["rejected",e].concat(t))},function(e){s(["progress",e].concat(t))}),this},t.prototype.traceRejected=function(){var t=e._toArray(arguments);return this.otherwise(function(e){s(["rejected",e].concat(t))}),this},r})},"dojo/io-query":function(){define(["./_base/lang"],function(e){var t={};return{objectToQuery:function(r){var i=encodeURIComponent,s=[];for(var o in r){var u=r[o];if(u!=t[o]){var a=i(o)+"=";if(e.isArray(u))for(var f=0,l=u.length;f0?r:null},_indexRoutes:function(){var e,t,n,r,i=this._routes;r=this._routeIndex={};for(e=0,t=i.length;e=0?e.substring(n+1):""}function p(){return h(location.href,"#")}function d(){s.publish("/dojo/hashchange",p())}function v(){if(p()===a)return;a=p(),d()}function m(e){if(f){if(f.isTransitioning()){setTimeout(i.hitch(null,m,e),c);return}var t=f.iframe.location.href,n=t.indexOf("?");f.iframe.location.replace(t.substring(0,n)+"?"+e);return}location.replace("#"+e),!l&&v()}function g(){function y(){a=p(),u=m?a:h(g.href,"?"),f=!1,l=null}var r=document.createElement("iframe"),s="dojo-hash-iframe",o=n.dojoBlankHtmlUrl||t.toUrl("./resources/blank.html");n.useXDomain&&!n.dojoBlankHtmlUrl&&console.warn("dojo.hash: When using cross-domain Dojo builds, please save dojo/resources/blank.html to your domain and set djConfig.dojoBlankHtmlUrl to the path on your domain to blank.html"),r.id=s,r.src=o+"?"+p(),r.style.display="none",document.body.appendChild(r),this.iframe=e.global[s];var u,f,l,v,m,g=this.iframe.location;this.isTransitioning=function(){return f},this.pollLocation=function(){if(!m)try{var e=h(g.href,"?");document.title!=v&&(v=this.iframe.document.title=document.title)}catch(t){m=!0,console.error("dojo.hash: Error adding history entry. Server unreachable.")}var n=p();if(f&&a===n){if(!m&&e!==l){setTimeout(i.hitch(this,this.pollLocation),0);return}y(),d()}else if(a!==n||!m&&u!==e){if(a!==n){a=n,f=!0,l=n,r.src=o+"?"+l,m=!1,setTimeout(i.hitch(this,this.pollLocation),0);return}m||(location.href="#"+g.search.substring(1),y(),d())}setTimeout(i.hitch(this,this.pollLocation),c)},y(),setTimeout(i.hitch(this,this.pollLocation),c)}e.hash=function(e,t){return arguments.length?(e.charAt(0)=="#"&&(e=e.substring(1)),t?m(e):location.href="#"+e,e):p()};var a,f,l,c=n.hashPollFrequency||100;return o(function(){"onhashchange"in e.global&&(!u("ie")||u("ie")>=8&&document.compatMode!="BackCompat")?l=r.after(e.global,"onhashchange",d,!0):document.addEventListener?(a=p(),setInterval(v,c)):document.attachEvent&&(f=new g)}),e.hash})},"dojo/store/Observable":function(){define(["../_base/kernel","../_base/lang","../when","../_base/array"],function(e,t,n,r){var i=function(e){function f(t,r){var i=e[t];i&&(e[t]=function(e){if(a)return i.apply(this,arguments);a=!0;try{var t=i.apply(this,arguments);return n(t,function(t){r(typeof t=="object"&&t||e)}),t}finally{a=!1}})}var i,s=[],o=0;e=t.delegate(e),e.notify=function(e,t){o++;var n=s.slice();for(var r=0,i=n.length;r-1?g:n.length;n.splice(w,0,t),y=r.indexOf(h(n),t),n.splice(w,1),f.start&&y==0||!a&&y==n.length?y=-1:n.splice(y,0,t)}}else t&&(s!==i?y=g:f.start||(y=e.defaultIndex||0,n.splice(y,0,t)));if((g>-1||y>-1)&&(u||!h||g!=y)){var E=d.slice();for(l=0;v=E[l];l++)v(t||m,g,y)}})});var a={};return a.remove=a.cancel=function(){var e=r.indexOf(d,t);e>-1&&(d.splice(e,1),d.length||s.splice(r.indexOf(s,v),1))},a}}return l};var a;return f("put",function(t){e.notify(t,e.getIdentity(t))}),f("add",function(t){e.notify(t)}),f("remove",function(t){e.notify(undefined,t)}),e};return t.setObject("dojo.store.Observable",i),i})},"dojo/store/Memory":function(){define(["../_base/declare","./util/QueryResults","./util/SimpleQueryEngine"],function(e,t,n){var r=null;return e("dojo.store.Memory",r,{constructor:function(e){for(var t in e)this[t]=e[t];this.setData(this.data||[])},data:null,idProperty:"id",index:null,queryEngine:n,get:function(e){return this.data[this.index[e]]},getIdentity:function(e){return e[this.idProperty]},put:function(e,t){var n=this.data,r=this.index,i=this.idProperty,s=e[i]=t&&"id"in t?t.id:i in e?e[i]:Math.random();if(s in r){if(t&&t.overwrite===!1)throw new Error("Object already exists");n[r[s]]=e}else r[s]=n.push(e)-1;return s},add:function(e,t){return(t=t||{}).overwrite=!1,this.put(e,t)},remove:function(e){var t=this.index,n=this.data;if(e in t)return n.splice(t[e],1),this.setData(n),!0},query:function(e,n){return t(this.queryEngine(e,n)(this.data))},setData:function(e){e.items?(this.idProperty=e.identifier,e=this.data=e.items):this.data=e,this.index={};for(var t=0,n=e.length;to)?-1:1}return 0});if(n&&(n.start||n.count)){var o=i.length;i=i.slice(n.start||0,(n.start||0)+(n.count||Infinity)),i.total=o}return i}switch(typeof t){default:throw new Error("Can not query with a "+typeof t);case"object":case"undefined":var r=t;t=function(e){for(var t in r){var n=r[t];if(n&&n.test){if(!n.test(e[t],e))return!1}else if(n!=e[t])return!1}return!0};break;case"string":if(!this[t])throw new Error("No filter function "+t+" was found in store");t=this[t];case"function":}return i.matches=t,i}})},"dojo/query":function(){define(["./_base/kernel","./has","./dom","./on","./_base/array","./_base/lang","./selector/_loader","./selector/_loader!default"],function(e,t,n,r,i,s,o,u){"use strict";function E(e,t){var r=function(r,i){if(typeof i=="string"){i=n.byId(i);if(!i)return new t([])}var s=typeof r=="string"?e(r,i):r?r.end&&r.on?r:[r]:[];return s.end&&s.on?s:new t(s)};r.matches=e.match||function(e,t,n){return r.filter([e],t,n).length>0},r.filter=e.filter||function(e,t,n){return r(t,n).filter(function(t){return i.indexOf(e,t)>-1})};if(typeof e!="function"){var s=e.search;e=function(e,t){return s(t||document,e)}}return r}t.add("array-extensible",function(){return s.delegate([],{length:1}).length==1&&!t("bug-for-in-skips-shadowed")});var a=Array.prototype,f=a.slice,l=a.concat,c=i.forEach,h=function(e,t,n){var r=new(n||this._NodeListCtor||b)(e);return t?r._stash(t):r},p=function(t,n,r){return n=[0].concat(f.call(n,0)),r=r||e.global,function(e){return n[0]=e,t.apply(r,n)}},d=function(e,t){return function(){return this.forEach(p(e,arguments,t)),this}},v=function(e,t){return function(){return this.map(p(e,arguments,t))}},m=function(e,t){return function(){return this.filter(p(e,arguments,t))}},g=function(t,n,r){return function(){var i=arguments,s=p(t,i,r);return n.call(r||e.global,i)?this.map(s):(this.forEach(s),this)}},y=function(e){var n=this instanceof b&&t("array-extensible");typeof e=="number"&&(e=Array(e));var r=e&&"length"in e?e:arguments;if(n||!r.sort){var i=n?this:[],o=i.length=r.length;for(var u=0;u-1)return f(e,n);var r=n?n.ownerDocument||n:t.doc||document,s=(i?/^([\w]*)#([\w\-]+$)|^(\.)([\w\-\*]+$)|^(\w+$)/:/^([\w]*)#([\w\-]+)(?:\s+(.*))?$|(?:^|(>|.+\s+))([\w\-\*]+)(\S*$)/).exec(e);n=n||r;if(s){if(s[2]){var l=t.byId?t.byId(s[2],r):r.getElementById(s[2]);if(!l||s[1]&&s[1]!=l.tagName.toLowerCase())return[];if(n!=r){var c=l;while(c!=n){c=c.parentNode;if(!c)return[]}}return s[3]?o(s[3],l):[l]}if(s[3]&&n.getElementsByClassName)return n.getElementsByClassName(s[4]);var l;if(s[5]){l=n.getElementsByTagName(s[5]);if(!s[4]&&!s[6])return l;e=(s[4]||"")+s[6]}}if(i)return n.nodeType===1&&n.nodeName.toLowerCase()!=="object"?u(n,e,n.querySelectorAll):n.querySelectorAll(e);l||(l=n.getElementsByTagName("*"));var h=[];for(var p=0,d=l.length;p-1&&(" "+n.className+" ").indexOf(t)>-1}},"#":function(e){return function(t){return t.id==e}}},r={"^=":function(e,t){return e.indexOf(t)==0},"*=":function(e,t){return e.indexOf(t)>-1},"$=":function(e,t){return e.substring(e.length-t.length,e.length)==t},"~=":function(e,t){return(" "+e+" ").indexOf(" "+t+" ")>-1},"|=":function(e,t){return(e+"-").indexOf(t+"-")==0},"=":function(e,t){return e==t},"":function(e,t){return!0}},u={};return function(e,n,r){var f=u[n];if(!f){if(n.replace(/(?:\s*([> ])\s*)|(#|\.)?((?:\\.|[\w-])+)|\[\s*([\w-]+)\s*(.?=)?\s*("(?:\\.|[^"])+"|'(?:\\.|[^'])+'|(?:\\.|[^\]])*)\s*\]/g,function(e,n,r,u,l,c,h){return u?f=a(f,t[r||""](u.replace(/\\/g,""))):n?f=(n==" "?s:o)(f):l&&(f=a(f,i(l,h,c))),""}))throw new Error("Syntax error in query");if(!f)return!0;u[n]=f}return f(e,r)}}();if(!e("dom-qsa"))var f=function(e,t){var n=e.match(s),r=[];for(var i=0;i=0;f--){var l=i?this._cloneNode(t[f]):t[f];if(t._runParse&&e.parser&&e.parser.parse){u||(u=o.ownerDocument.createElement("div")),u.appendChild(l),e.parser.parse(u),l=u.firstChild;while(u.firstChild)u.removeChild(u.firstChild)}f==a-1?s.place(l,o,r):o.parentNode.insertBefore(l,o),o=l}},position:d(o.position),attr:h(v(u),f),style:h(v(a),f),addClass:p(i.add),removeClass:p(i.remove),toggleClass:p(i.toggle),replaceClass:p(i.replace),empty:p(s.empty),removeAttr:p(u.remove),marginBox:d(o.getMarginBox),place:function(e,n){var r=t(e)[0];return this.forEach(function(e){s.place(e,r,n)})},orphan:function(e){return(e?t._filterResult(this,e):this).forEach(l)},adopt:function(e,n){return t(e).place(this[0],n)._stash(this)},query:function(e){if(!e)return this;var n=new c;return this.map(function(r){t(e,r).forEach(function(e){e!==undefined&&n.push(e)})}),n._stash(this)},filter:function(e){var r=arguments,i=this,s=0;if(typeof e=="string"){i=t._filterResult(this,r[0]);if(r.length==1)return i._stash(this);s=1}return this._wrap(n.filter(i,r[s],r[s+1]),this)},addContent:function(e,t){e=this._normalize(e,this[0]);for(var n=0,r;r=this[n];n++)e.length?this._place(e,r,t,n>0):s.empty(r);return this}}),c})},"dojo/promise/all":function(){define(["../_base/array","../Deferred","../when"],function(e,t,n){"use strict";var r=e.some;return function(i){var s,o;i instanceof Array?o=i:i&&typeof i=="object"&&(s=i);var u,a=[];if(s){o=[];for(var f in s)Object.hasOwnProperty.call(s,f)&&(a.push(f),o.push(s[f]));u={}}else o&&(u=[]);if(!o||!o.length)return(new t).resolve(u);var l=new t;l.promise.always(function(){u=a=null});var c=o.length;return r(o,function(e,t){return s||a.push(t),n(e,function(e){l.isFulfilled()||(u[a[t]]=e,--c===0&&l.resolve(u))},l.reject),l.isFulfilled()}),l.promise}})}}}),function(){var e=this.require;e({cache:{}}),!e.async&&e(["dojo"]),e.boot&&e.apply(null,e.boot)}() \ No newline at end of file +(function(e,t){var n=function(){},r=function(e){for(var t in e)return 0;return 1},i={}.toString,s=function(e){return i.call(e)=="[object Function]"},o=function(e){return i.call(e)=="[object String]"},u=function(e){return i.call(e)=="[object Array]"},a=function(e,t){if(e)for(var n=0;e[n];)t(e[n++])},f=function(e,t){for(var n in t)e[n]=t[n];return e},l=function(e,t){return f(new Error(e),{src:"dojoLoader",info:t})},c=1,h=function(){return"_"+c++},p=function(e,t,n){return xt(e,t,n,0,p)},d=this,v=d.document,m=v&&v.createElement("DiV"),g=p.has=function(e){return s(y[e])?y[e]=y[e](d,v,m):y[e]},y=g.cache=t.hasCache;g.add=function(e,t,n,r){return(y[e]===undefined||r)&&(y[e]=t),n&&g(e)},0,0;for(var x in e.has)g.add(x,e.has[x],0,1);var T=1,N=2,C=3,k=4,L=5,A=0,O="sync",M="xd",_=[],D=0,P=n,H=n,B;p.isXdUrl=n,p.initSyncLoader=function(e,t,n){return D||(D=e,P=t,H=n),{sync:O,requested:T,arrived:N,nonmodule:C,executing:k,executed:L,syncExecStack:_,modules:Z,execQ:Nt,getModule:Ft,injectModule:ln,setArrived:At,signal:X,finishExec:Gt,execModule:Zt,dojoRequirePlugin:D,getLegacyMode:function(){return A},guardCheckComplete:tn}};var j=location.protocol,F=location.host;p.isXdUrl=function(e){if(/^\./.test(e))return!1;if(/^\/\//.test(e))return!0;var t=e.match(/^([^\/\:]+\:)\/+([^\/]+)/);return t&&(t[1]!=j||F&&t[2]!=F)},1,g.add("dojo-force-activex-xhr",!v.addEventListener&&window.location.protocol=="file:"),g.add("native-xhr",typeof XMLHttpRequest!="undefined");if(g("native-xhr")&&!g("dojo-force-activex-xhr"))B=function(){return new XMLHttpRequest};else{for(var I=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"],q,S=0;S<3;)try{q=I[S++];if(new ActiveXObject(q))break}catch(R){}B=function(){return new ActiveXObject(q)}}p.getXhr=B,g.add("dojo-gettext-api",1),p.getText=function(e,t,n){var r=B();r.open("GET",rn(e),!1),r.send(null);if(r.status==200||!location.host&&!r.status)return n&&n(r.responseText,t),r.responseText;throw l("xhrFailed",r.status)};var U=new Function("return eval(arguments[0]);");p.eval=function(e,t){return U(e+"\r\n////@ sourceURL="+t)};var z={},W="error",X=p.signal=function(e,t){var n=z[e];a(n&&n.slice(0),function(e){e.apply(null,u(t)?t:[t])})},V=p.on=function(e,t){var n=z[e]||(z[e]=[]);return n.push(t),{remove:function(){for(var e=0;eE&&(S=s(t[1])?e.replace(t[0],t[1]):t[1])}),S?Pt(S,0,n,r,i,o,u,f,c):(y=r[e],y?c?Dt(y.pid,y.mid,y.pack,y.url):r[e]:(v=Mt(e,u),v?m=v[1]+e.substring(v[3]):h?m=p.location+"/"+d:g("config-tlmSiblingOfDojo")?m="../"+e:m=e,/(^\/)|(\:)/.test(m)||(m=i+m),m+=".js",Dt(h,e,p,_t(m))))},Ht=function(e,t){return Pt(e,t,Q,Z,p.baseUrl,Y,K,$)},Bt=function(e,t,n){return e.normalize?e.normalize(t,function(e){return It(e,n)}):It(t,n)},jt=0,Ft=function(e,t,n){var r,i,s,o;return r=e.match(/^(.+?)\!(.*)$/),r?(i=Ft(r[1],t,n),A==O&&!i.executed&&(ln(i),i.injected===N&&!i.executed&&tn(function(){Zt(i)}),i.executed?Kt(i):Nt.unshift(i)),i.executed===L&&!i.load&&Kt(i),i.load?(s=Bt(i,r[2],t),e=i.mid+"!"+(i.dynamic?++jt+"!":"")+s):(s=r[2],e=i.mid+"!"+ ++jt+"!waitingForPlugin"),o={plugin:i,mid:e,req:Tt(t),prid:s}):o=Ht(e,t),Z[o.mid]||!n&&(Z[o.mid]=o)},It=p.toAbsMid=function(e,t){return Ht(e,t).mid},qt=p.toUrl=function(e,t){var n=Ht(e+"/x",t),r=n.url;return rn(n.pid===0?e:r.substring(0,r.length-5))},Rt={injected:N,executed:L,def:C,result:C},Ut=function(e){return Z[e]=f({mid:e},Rt)},zt=Ut("require"),Wt=Ut("exports"),Xt=Ut("module"),Vt=function(e,t){p.trace("loader-run-factory",[e.mid]);var n=e.def,r;_.unshift(e);if(g("config-dojo-loader-catches"))try{r=s(n)?n.apply(null,t):n}catch(i){X(W,e.result=l("factoryThrew",[e,i]))}else r=s(n)?n.apply(null,t):n;e.result=r===undefined&&e.cjs?e.cjs.exports:r,_.shift(e)},$t={},Jt=0,Kt=function(e){var t=e.result;return e.dynamic=t.dynamic,e.normalize=t.normalize,e.load=t.load,e},Qt=function(e){var t={};a(e.loadQ,function(n){var r=Bt(e,n.prid,n.req.module),i=e.dynamic?n.mid.replace(/waitingForPlugin$/,r):e.mid+"!"+r,s=f(f({},n),{mid:i,prid:r,injected:0});Z[i]||sn(Z[i]=s),t[n.mid]=Z[i],At(n),delete Z[n.mid]}),e.loadQ=0;var n=function(e){for(var n,r=e.deps||[],i=0;i")]),!e.def||t?$t:e.cjs&&e.cjs.exports;if(!e.executed){if(!e.def)return $t;var n=e.mid,r=e.deps||[],i,s,o=[],u=0;e.executed=k;while(i=r[u++]){s=i===zt?Tt(e):i===Wt?e.cjs.exports:i===Xt?e.cjs:Zt(i,t);if(s===$t)return e.executed=0,p.trace("loader-exec-module",["abort",n]),0,$t;o.push(s)}Vt(e,o),Gt(e),0}return e.result},en=0,tn=function(e){try{en++,e()}finally{en--}Ot()&&X("idle",[])},nn=function(){if(en)return;tn(function(){P();for(var e,t,n=0;n0),n.add("device-width",screen.availWidth||innerWidth);var a=document.createElement("form");return n.add("dom-attributes-explicit",a.attributes.length==0),n.add("dom-attributes-specified-flag",a.attributes.length>0&&a.attributes.length<40),n.clearElement=function(e){return e.innerHTML="",e},n.normalize=function(e,t){var r=e.match(/[\?:]|[^:\?]*/g),i=0,s=function(e){var t=r[i++];return t==":"?0:r[i++]=="?"?!e&&n(t)?s():(s(!0),s(e)):t||0};return e=s(),e&&t(e)},n.load=function(e,t,n){e?t([e],n):n()},n})},"dojo/_base/declare":function(){define(["./kernel","../has","./lang"],function(e,t,n){function f(e,t){throw new Error("declare"+(t?" "+t:"")+": "+e)}function l(e,t){var n=[],r=[{cls:0,refs:[]}],i={},o=1,a=e.length,l=0,c,h,p,d,v,m,g,y;for(;l=0;--c)v=h[c].prototype,v.hasOwnProperty("declaredClass")||(v.declaredClass="uniqName_"+u++),g=v.declaredClass,i.hasOwnProperty(g)||(i[g]={count:0,refs:[],cls:h[c]},++o),m=i[g],d&&d!==m&&(m.refs.push(d),++d.count),d=m;++d.count,r[0].refs.push(d)}while(r.length){d=r.pop(),n.push(d.cls),--o;while(y=d.refs,y.length==1){d=y[0];if(!d||--d.count){d=0;break}n.push(d.cls),--o}if(d)for(l=0,a=y.length;l=0;--o)s=e[o],u=s._meta,s=u?u.ctor:s,s&&s.apply(this,f?f[o]:n);s=this.postscript,s&&s.apply(this,r)}}function E(e,t){return function(){var n=arguments,r=n,i=n[0],s;if(!(this instanceof n.callee))return N(n);t&&(i&&(s=i.preamble,s&&(r=s.apply(this,r)||r)),s=this.preamble,s&&s.apply(this,r)),e&&e.apply(this,n),s=this.postscript,s&&s.apply(this,n)}}function S(e){return function(){var t=arguments,n=0,r,i;if(!(this instanceof t.callee))return N(t);for(;r=e[n];++n){i=r._meta,r=i?i.ctor:r;if(r){r.apply(this,t);break}}r=this.postscript,r&&r.apply(this,t)}}function x(e,t,n){return function(){var r,i,s,o=0,u=1;n&&(o=t.length-1,u=-1);for(;r=t[o];o+=u)i=r._meta,s=(i?i.hidden:r.prototype)[e],s&&s.apply(this,arguments)}}function T(e){o.prototype=e.prototype;var t=new o;return o.prototype=null,t}function N(e){var t=e.callee,n=T(t);return t.apply(n,e),n}function C(e,t,o){typeof e!="string"&&(o=t,t=e,e=""),o=o||{};var u,p,g,N,k,L,A,O=1,M=t;s.call(t)=="[object Array]"?(L=l(t,e),g=L[0],O=L.length-g,t=L[O]):(L=[0],t?s.call(t)=="[object Function]"?(g=t._meta,L=L.concat(g?g.bases:t)):f("base class is not a callable constructor.",e):t!==null&&f("unknown base class. Did you use dojo.require to pull it in?",e));if(t)for(p=O-1;;--p){u=T(t);if(!p)break;g=L[p],(g._meta?m:r)(u,g.prototype),N=new Function,N.superclass=t,N.prototype=u,t=u.constructor=N}else u={};C.safeMixin(u,o),g=o.constructor,g!==i.constructor&&(g.nom=a,u.constructor=g);for(p=O-1;p;--p)g=L[p]._meta,g&&g.chains&&(A=r(A||{},g.chains));u["-chains-"]&&(A=r(A||{},u["-chains-"])),g=!A||!A.hasOwnProperty(a),L[0]=N=A&&A.constructor==="manual"?S(L):L.length==1?E(o.constructor,g):w(L,g),N._meta={bases:L,hidden:o,chains:A,parents:M,ctor:o.constructor},N.superclass=t&&t.prototype,N.extend=y,N.createSubclass=b,N.prototype=u,u.constructor=N,u.getInherited=h,u.isInstanceOf=v,u.inherited=d,u.__inherited=c,e&&(u.declaredClass=e,n.setObject(e,N));if(A)for(k in A)u[k]&&typeof A[k]=="string"&&k!=a&&(g=u[k]=x(k,L,A[k]==="after"),g.nom=k);return N}var r=n.mixin,i=Object.prototype,s=i.toString,o=new Function,u=0,a="constructor",d=e.config.isDebug?p:c;return e.safeMixin=C.safeMixin=g,e.declare=C,C})},"dojo/_base/kernel":function(){define(["../has","./config","require","module"],function(e,t,n,r){var i,s,o={},u={},a={config:t,global:this,dijit:o,dojox:u},f={dojo:["dojo",a],dijit:["dijit",o],dojox:["dojox",u]},l=n.map&&n.map[r.id.match(/[^\/]+/)[0]],c;for(s in l)f[s]?f[s][0]=l[s]:f[s]=[l[s],{}];for(s in f)c=f[s],c[1]._scopeName=c[0],t.noGlobals||(this[c[0]]=c[1]);a.scopeMap=f,a.baseUrl=a.config.baseUrl=n.baseUrl,a.isAsync=n.async,a.locale=t.locale;var h="$Rev: 43d05c6 $".match(/\d+/);a.version={major:1,minor:9,patch:1,flag:"",revision:h?+h[0]:NaN,toString:function(){var e=a.version;return e.major+"."+e.minor+"."+e.patch+e.flag+" ("+e.revision+")"}},1,Function("d","d.eval = function(){return d.global.eval ? d.global.eval(arguments[0]) : eval(arguments[0]);}")(a),a.exit=function(){},1,typeof console!="undefined"||(console={});var p=["assert","count","debug","dir","dirxml","error","group","groupEnd","info","profile","profileEnd","time","timeEnd","trace","warn","log"],d;i=0;while(d=p[i++])console[d]||function(){var e=d+"";console[e]="log"in console?function(){var t=Array.apply({},arguments);t.unshift(e+":"),console.log(t.join(" "))}:function(){},console[e]._fake=!0}();e.add("dojo-debug-messages",!!t.isDebug),a.deprecated=a.experimental=function(){},e("dojo-debug-messages")&&(a.deprecated=function(e,t,n){var r="DEPRECATED: "+e;t&&(r+=" "+t),n&&(r+=" -- will be removed in version: "+n),console.warn(r)},a.experimental=function(e,t){var n="EXPERIMENTAL: "+e+" -- APIs subject to change without notice.";t&&(n+=" "+t),console.warn(n)}),1;if(t.modulePaths){a.deprecated("dojo.modulePaths","use paths configuration");var v={};for(s in t.modulePaths)v[s.replace(/\./g,"/")]=t.modulePaths[s];n({paths:v})}return 1,a.moduleUrl=function(e,t){a.deprecated("dojo.moduleUrl()","use require.toUrl","2.0");var r=null;return e&&(r=n.toUrl(e.replace(/\./g,"/")+(t?"/"+t:"")+"/*.*").replace(/\/\*\.\*/,"")+(t?"":"/")),r},a._hasResource={},a})},"dojo/_base/config":function(){define(["../has","require"],function(e,t){var n={},r=t.rawConfig,i;for(i in r)n[i]=r[i];return!n.locale&&typeof navigator!="undefined"&&(n.locale=(navigator.language||navigator.userLanguage).toLowerCase()),n})},"dojo/_base/lang":function(){define(["./kernel","../has","../sniff"],function(e,t){t.add("bug-for-in-skips-shadowed",function(){for(var e in{toString:1})return 0;return 1});var n=t("bug-for-in-skips-shadowed")?"hasOwnProperty.valueOf.isPrototypeOf.propertyIsEnumerable.toLocaleString.toString.constructor".split("."):[],r=n.length,i=function(t,n,r){var i,s=0,o=e.global;if(!r){if(!t.length)return o;i=t[s++];try{r=e.scopeMap[i]&&e.scopeMap[i][1]}catch(u){}r=r||(i in o?o[i]:n?o[i]={}:undefined)}while(r&&(i=t[s++]))r=i in r?r[i]:n?r[i]={}:undefined;return r},s=Object.prototype.toString,o=function(e,t,n){return(n||[]).concat(Array.prototype.slice.call(e,t||0))},u=/\{([^\}]+)\}/g,a={_extraNames:n,_mixin:function(e,i,s){var o,u,a,f={};for(o in i){u=i[o];if(!(o in e)||e[o]!==u&&(!(o in f)||f[o]!==u))e[o]=s?s(u):u}if(t("bug-for-in-skips-shadowed")&&i)for(a=0;a2)return a._hitchArgs.apply(e,arguments);n||(n=t,t=null);if(a.isString(n)){t=t||e.global;if(!t[n])throw['lang.hitch: scope["',n,'"] is null (scope="',t,'")'].join("");return function(){return t[n].apply(t,arguments||[])}}return t?function(){return n.apply(t,arguments||[])}:n},delegate:function(){function e(){}return function(t,n){e.prototype=t;var r=new e;return e.prototype=null,n&&a._mixin(r,n),r}}(),_toArray:t("ie")?function(){function e(e,t,n){var r=n||[];for(var i=t||0;i=0),e.add("msapp",parseFloat(n.split("MSAppHost/")[1])||undefined),e.add("khtml",r.indexOf("Konqueror")>=0?i:undefined),e.add("webkit",parseFloat(n.split("WebKit/")[1])||undefined),e.add("chrome",parseFloat(n.split("Chrome/")[1])||undefined),e.add("safari",r.indexOf("Safari")>=0&&!e("chrome")?parseFloat(r.split("Version/")[1]):undefined),e.add("mac",r.indexOf("Macintosh")>=0),e.add("quirks",document.compatMode=="BackCompat");if(n.match(/(iPhone|iPod|iPad)/)){var s=RegExp.$1.replace(/P/,"p"),o=n.match(/OS ([\d_]+)/)?RegExp.$1:"1",u=parseFloat(o.replace(/_/,".").replace(/_/g,""));e.add(s,u),e.add("ios",u)}e.add("android",parseFloat(n.split("Android ")[1])||undefined),e.add("bb",(n.indexOf("BlackBerry")>=0||n.indexOf("BB10")>=0)&&parseFloat(n.split("Version/")[1])||undefined),e.add("svg",typeof SVGAngle!="undefined");if(!e("webkit")){n.indexOf("Opera")>=0&&e.add("opera",i>=9.8?parseFloat(n.split("Version/")[1])||i:i),n.indexOf("Gecko")>=0&&!e("khtml")&&!e("webkit")&&e.add("mozilla",i),e("mozilla")&&e.add("ff",parseFloat(n.split("Firefox/")[1]||n.split("Minefield/")[1])||undefined);if(document.all&&!e("opera")){var a=parseFloat(r.split("MSIE ")[1])||undefined,f=document.documentMode;f&&f!=5&&Math.floor(a)!=f&&(a=f),e.add("ie",a)}e.add("wii",typeof opera!="undefined"&&opera.wiiremote)}return e})},"dojo/_base/array":function(){define(["./kernel","../has","./lang"],function(e,t,n){function s(e){return r[e]=new Function("item","index","array",e)}function o(e){var t=!e;return function(n,i,o){var u=0,a=n&&n.length||0,f;a&&typeof n=="string"&&(n=n.split("")),typeof i=="string"&&(i=r[i]||s(i));if(o)for(;u0)return a.lastIndexOf(s,o,u);var l=s&&s.length||0,c=e?l+r:n,h;u===i?h=e?n:l+r:u<0?(h=l+u,h<0&&(h=n)):h=u>=l?l+r:u,l&&typeof s=="string"&&(s=s.split(""));for(;h!=c;h+=t)if(s[h]==o)return h;return-1}}var r={},i,a={every:o(!1),some:o(!0),indexOf:u(!0),lastIndexOf:u(!1),forEach:function(e,t,n){var i=0,o=e&&e.length||0;o&&typeof e=="string"&&(e=e.split("")),typeof t=="string"&&(t=r[t]||s(t));if(n)for(;i>=1))break;e+=e}return n.join("")},n.pad=function(e,t,r,i){r||(r="0");var s=String(e),o=n.rep(r,Math.ceil((t-s.length)/r.length));return i?s+o:o+s},n.substitute=function(n,r,i,s){return s=s||e.global,i=i?t.hitch(s,i):function(e){return e},n.replace(/\$\{([^\s\:\}]+)(?:\:([^\s\:\}]+))?\}/g,function(e,n,o){var u=t.getObject(n,!1,r);return o&&(u=t.getObject(o,!1,s).call(s,u,n)),i(u,n).toString()})},n.trim=String.prototype.trim?t.trim:function(e){e=e.replace(/^\s+/,"");for(var t=e.length-1;t>=0;t--)if(/\S/.test(e.charAt(t))){e=e.substring(0,t+1);break}return e},n})},"dojo/dom":function(){define(["./sniff","./_base/window"],function(e,t){if(e("ie")<=7)try{document.execCommand("BackgroundImageCache",!1,!0)}catch(n){}var r={};e("ie")?r.byId=function(e,n){if(typeof e!="string")return e;var r=n||t.doc,i=e&&r.getElementById(e);if(!(!i||i.attributes.id.value!=e&&i.id!=e))return i;var s=r.all[e];if(!s||s.nodeName)s=[s];var o=0;while(i=s[o++])if(i.attributes&&i.attributes.id&&i.attributes.id.value==e||i.id==e)return i}:r.byId=function(e,n){return(typeof e=="string"?(n||t.doc).getElementById(e):e)||null},r.isDescendant=function(e,t){try{e=r.byId(e),t=r.byId(t);while(e){if(e==t)return!0;e=e.parentNode}}catch(n){}return!1},e.add("css-user-select",function(e,t,n){if(!n)return!1;var r=n.style,i=["Khtml","O","ms","Moz","Webkit"],s=i.length,o="userSelect",u;do if(typeof r[o]!="undefined")return o;while(s--&&(o=i[s]+"UserSelect"));return!1});var i=e("css-user-select");return r.setSelectable=i?function(e,t){r.byId(e).style[i]=t?"":"none"}:function(e,t){e=r.byId(e);var n=e.getElementsByTagName("*"),i=n.length;if(t){e.removeAttribute("unselectable");while(i--)n[i].removeAttribute("unselectable")}else{e.setAttribute("unselectable","on");while(i--)n[i].setAttribute("unselectable","on")}},r})},"dojo/_base/window":function(){define(["./kernel","./lang","../sniff"],function(e,t,n){var r={global:e.global,doc:this.document||null,body:function(t){return t=t||e.doc,t.body||t.getElementsByTagName("body")[0]},setContext:function(t,n){e.global=r.global=t,e.doc=r.doc=n},withGlobal:function(t,n,i,s){var o=e.global;try{return e.global=r.global=t,r.withDoc.call(null,t.document,n,i,s)}finally{e.global=r.global=o}},withDoc:function(t,i,s,o){var u=r.doc,a=n("quirks"),f=n("ie"),l,c,h;try{return e.doc=r.doc=t,e.isQuirks=n.add("quirks",e.doc.compatMode=="BackCompat",!0,!0),n("ie")&&(h=t.parentWindow)&&h.navigator&&(l=parseFloat(h.navigator.appVersion.split("MSIE ")[1])||undefined,c=t.documentMode,c&&c!=5&&Math.floor(l)!=c&&(l=c),e.isIE=n.add("ie",l,!0,!0)),s&&typeof i=="string"&&(i=s[i]),i.apply(s,o||[])}finally{e.doc=r.doc=u,e.isQuirks=n.add("quirks",a,!0,!0),e.isIE=n.add("ie",f,!0,!0)}}};return t.mixin(e,r),r})},"dojo/dom-construct":function(){define(["exports","./_base/kernel","./sniff","./_base/window","./dom","./dom-attr"],function(e,t,n,r,i,s){function d(e,t){var n=t.parentNode;n&&n.insertBefore(e,t)}function v(e,t){var n=t.parentNode;n&&(n.lastChild==t?n.appendChild(e):n.insertBefore(e,t.nextSibling))}function g(e){if(e.canHaveChildren)try{e.innerHTML="";return}catch(t){}for(var n;n=e.lastChild;)y(n,e)}function y(e,t){e.firstChild&&g(e),t&&(n("ie")&&t.canHaveChildren&&"removeNode"in e?e.removeNode(!1):t.removeChild(e))}var o={option:["select"],tbody:["table"],thead:["table"],tfoot:["table"],tr:["table","tbody"],td:["table","tbody","tr"],th:["table","thead","tr"],legend:["fieldset"],caption:["table"],colgroup:["table"],col:["table","colgroup"],li:["ul"]},u=/<\s*([\w\:]+)/,a={},f=0,l="__"+t._scopeName+"ToDomId";for(var c in o)if(o.hasOwnProperty(c)){var h=o[c];h.pre=c=="option"?'