/*
	Copyright (c) 2004-2007, The Dojo Foundation
	All Rights Reserved.

	Licensed under the Academic Free License version 2.1 or above OR the
	modified BSD license. For more information on Dojo licensing, see:

		http://dojotoolkit.org/book/dojo-book-0-9/introduction/licensing
*/

/*
	This is a compiled version of Dojo, built for deployment and not for
	development. To get an editable version, please visit:

		http://dojotoolkit.org

	for documentation and information on getting the source.
*/

if(typeof dojo=="undefined"){(function(){if(typeof this["djConfig"]=="undefined"){this.djConfig={};}if((!this["console"])||(!console["firebug"])){this.console={};}var cn=["assert","count","debug","dir","dirxml","error","group","groupEnd","info","log","profile","profileEnd","time","timeEnd","trace","warn"];var i=0,tn;while((tn=cn[i++])){if(!console[tn]){console[tn]=function(){};}}if(typeof this["dojo"]=="undefined"){this.dojo={};}dojo.global=this;var _4={isDebug:false,libraryScriptUri:"",preventBackButtonFix:true,delayMozLoadingFix:false};for(var _5 in _4){if(typeof djConfig[_5]=="undefined"){djConfig[_5]=_4[_5];}}var _6=["Browser","Rhino","Spidermonkey","Mobile"];var t;while(t=_6.shift()){dojo["is"+t]=false;}})();dojo.locale=djConfig.locale;dojo.version={major:1,minor:0,patch:0,flag:"beta",revision:Number("$Rev: 10861 $".match(/[0-9]+/)[0]),toString:function(){with(dojo.version){return major+"."+minor+"."+patch+flag+" ("+revision+")";}}};if(typeof OpenAjax!="undefined"){OpenAjax.hub.registerLibrary("dojo","http://dojotoolkit.org",dojo.version.toString());}dojo._getProp=function(_8,_9,_a){var _b=_a||dojo.global;for(var i=0,p;_b&&(p=_8[i]);i++){_b=(p in _b?_b[p]:(_9?_b[p]={}:undefined));}return _b;};dojo.setObject=function(_e,_f,_10){var _11=_e.split("."),p=_11.pop(),obj=dojo._getProp(_11,true,_10);return (obj&&p?(obj[p]=_f):undefined);};dojo.getObject=function(_14,_15,_16){return dojo._getProp(_14.split("."),_15,_16);};dojo.exists=function(_17,obj){return !!dojo.getObject(_17,false,obj);};dojo["eval"]=function(_19){return dojo.global.eval?dojo.global.eval(_19):eval(_19);};dojo.deprecated=dojo.experimental=function(){};(function(){var _1a={_loadedModules:{},_inFlightCount:0,_hasResource:{},_modulePrefixes:{dojo:{name:"dojo",value:"."},doh:{name:"doh",value:"../util/doh"},tests:{name:"tests",value:"tests"}},_moduleHasPrefix:function(_1b){var mp=this._modulePrefixes;return Boolean(mp[_1b]&&mp[_1b].value);},_getModulePrefix:function(_1d){var mp=this._modulePrefixes;if(this._moduleHasPrefix(_1d)){return mp[_1d].value;}return _1d;},_loadedUrls:[],_postLoad:false,_loaders:[],_unloaders:[],_loadNotifying:false};for(var _1f in _1a){dojo[_1f]=_1a[_1f];}})();dojo._loadPath=function(_20,_21,cb){var uri=(((_20.charAt(0)=="/"||_20.match(/^\w+:/)))?"":this.baseUrl)+_20;if(djConfig.cacheBust&&dojo.isBrowser){uri+="?"+String(djConfig.cacheBust).replace(/\W+/g,"");}try{return !_21?this._loadUri(uri,cb):this._loadUriAndCheck(uri,_21,cb);}catch(e){console.debug(e);return false;}};dojo._loadUri=function(uri,cb){if(this._loadedUrls[uri]){return true;}var _26=this._getText(uri,true);if(!_26){return false;}this._loadedUrls[uri]=true;this._loadedUrls.push(uri);if(cb){_26="("+_26+")";}var _27=dojo["eval"](_26+"\r\n//@ sourceURL="+uri);if(cb){cb(_27);}return true;};dojo._loadUriAndCheck=function(uri,_29,cb){var ok=false;try{ok=this._loadUri(uri,cb);}catch(e){console.debug("failed loading "+uri+" with error: "+e);}return Boolean(ok&&this._loadedModules[_29]);};dojo.loaded=function(){this._loadNotifying=true;this._postLoad=true;var mll=this._loaders;this._loaders=[];for(var x=0;x<mll.length;x++){mll[x]();}this._loadNotifying=false;if(dojo._postLoad&&dojo._inFlightCount==0&&this._loaders.length>0){dojo._callLoaded();}};dojo.unloaded=function(){var mll=this._unloaders;while(mll.length){(mll.pop())();}};dojo.addOnLoad=function(obj,_30){var d=dojo;if(arguments.length==1){d._loaders.push(obj);}else{if(arguments.length>1){d._loaders.push(function(){obj[_30]();});}}if(d._postLoad&&d._inFlightCount==0&&!d._loadNotifying){d._callLoaded();}};dojo.addOnUnload=function(obj,_33){var d=dojo;if(arguments.length==1){d._unloaders.push(obj);}else{if(arguments.length>1){d._unloaders.push(function(){obj[_33]();});}}};dojo._modulesLoaded=function(){if(this._postLoad){return;}if(this._inFlightCount>0){console.debug("files still in flight!");return;}dojo._callLoaded();};dojo._callLoaded=function(){if(typeof setTimeout=="object"||(djConfig["useXDomain"]&&dojo.isOpera)){setTimeout("dojo.loaded();",0);}else{dojo.loaded();}};dojo._getModuleSymbols=function(_35){var _36=_35.split(".");for(var i=_36.length;i>0;i--){var _38=_36.slice(0,i).join(".");if((i==1)&&!this._moduleHasPrefix(_38)){_36[0]="../"+_36[0];}else{var _39=this._getModulePrefix(_38);if(_39!=_38){_36.splice(0,i,_39);break;}}}return _36;};dojo._global_omit_module_check=false;dojo._loadModule=function(_3a,_3b,_3c){_3c=this._global_omit_module_check||_3c;var _3d=this._loadedModules[_3a];if(_3d){return _3d;}var _3e=_3a.split(".");var _3f=this._getModuleSymbols(_3a);var _40=((_3f[0].charAt(0)!="/")&&!_3f[0].match(/^\w+:/));var _41=_3f[_3f.length-1];var _42;if(_41=="*"){_3a=_3e.slice(0,-1).join(".");_3f.pop();_42=_3f.join("/")+"/"+(djConfig["packageFileName"]||"__package__")+".js";if(_40&&_42.charAt(0)=="/"){_42=_42.slice(1);}}else{_42=_3f.join("/")+".js";_3a=_3e.join(".");}var _43=(!_3c)?_3a:null;var ok=this._loadPath(_42,_43);if((!ok)&&(!_3c)){throw new Error("Could not load '"+_3a+"'; last tried '"+_42+"'");}if((!_3c)&&(!this["_isXDomain"])){_3d=this._loadedModules[_3a];if(!_3d){throw new Error("symbol '"+_3a+"' is not defined after loading '"+_42+"'");}}return _3d;};dojo.require=dojo._loadModule;dojo.provide=function(_45){var _46=_45+"";var _47=_46;var _48=_45.split(/\./);if(_48[_48.length-1]=="*"){_48.pop();_47=_48.join(".");}var _49=dojo.getObject(_47,true);this._loadedModules[_46]=_49;this._loadedModules[_47]=_49;return _49;};dojo.platformRequire=function(_4a){var _4b=_4a["common"]||[];var _4c=_4b.concat(_4a[dojo._name]||_4a["default"]||[]);for(var x=0;x<_4c.length;x++){var _4e=_4c[x];if(_4e.constructor==Array){dojo._loadModule.apply(dojo,_4e);}else{dojo._loadModule(_4e);}}};dojo.requireIf=function(_4f,_50){if(_4f===true){var _51=[];for(var i=1;i<arguments.length;i++){_51.push(arguments[i]);}dojo.require.apply(dojo,_51);}};dojo.requireAfterIf=dojo.requireIf;dojo.registerModulePath=function(_53,_54){this._modulePrefixes[_53]={name:_53,value:_54};};dojo.requireLocalization=function(_55,_56,_57,_58){dojo.require("dojo.i18n");dojo.i18n._requireLocalization.apply(dojo.hostenv,arguments);};(function(){var ore=new RegExp("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$");var ire=new RegExp("^((([^:]+:)?([^@]+))@)?([^:]*)(:([0-9]+))?$");dojo._Url=function(){var n=null;var _a=arguments;var uri=_a[0];for(var i=1;i<_a.length;i++){if(!_a[i]){continue;}var _5f=new dojo._Url(_a[i]+"");var _60=new dojo._Url(uri+"");if((_5f.path=="")&&(!_5f.scheme)&&(!_5f.authority)&&(!_5f.query)){if(_5f.fragment!=n){_60.fragment=_5f.fragment;}_5f=_60;}else{if(!_5f.scheme){_5f.scheme=_60.scheme;if(!_5f.authority){_5f.authority=_60.authority;if(_5f.path.charAt(0)!="/"){var _61=_60.path.substring(0,_60.path.lastIndexOf("/")+1)+_5f.path;var _62=_61.split("/");for(var j=0;j<_62.length;j++){if(_62[j]=="."){if(j==_62.length-1){_62[j]="";}else{_62.splice(j,1);j--;}}else{if(j>0&&!(j==1&&_62[0]=="")&&_62[j]==".."&&_62[j-1]!=".."){if(j==(_62.length-1)){_62.splice(j,1);_62[j-1]="";}else{_62.splice(j-1,2);j-=2;}}}}_5f.path=_62.join("/");}}}}uri="";if(_5f.scheme){uri+=_5f.scheme+":";}if(_5f.authority){uri+="//"+_5f.authority;}uri+=_5f.path;if(_5f.query){uri+="?"+_5f.query;}if(_5f.fragment){uri+="#"+_5f.fragment;}}this.uri=uri.toString();var r=this.uri.match(ore);this.scheme=r[2]||(r[1]?"":n);this.authority=r[4]||(r[3]?"":n);this.path=r[5];this.query=r[7]||(r[6]?"":n);this.fragment=r[9]||(r[8]?"":n);if(this.authority!=n){r=this.authority.match(ire);this.user=r[3]||n;this.password=r[4]||n;this.host=r[5];this.port=r[7]||n;}};dojo._Url.prototype.toString=function(){return this.uri;};})();dojo.moduleUrl=function(_65,url){var loc=dojo._getModuleSymbols(_65).join("/");if(!loc){return null;}if(loc.lastIndexOf("/")!=loc.length-1){loc+="/";}var _68=loc.indexOf(":");if(loc.charAt(0)!="/"&&(_68==-1||_68>loc.indexOf("/"))){loc=dojo.baseUrl+loc;}return new dojo._Url(loc,url);};if(typeof window!="undefined"){dojo.isBrowser=true;dojo._name="browser";(function(){var d=dojo;if(document&&document.getElementsByTagName){var _6a=document.getElementsByTagName("script");var _6b=/dojo(\.xd)?\.js([\?\.]|$)/i;for(var i=0;i<_6a.length;i++){var src=_6a[i].getAttribute("src");if(!src){continue;}var m=src.match(_6b);if(m){if(!djConfig["baseUrl"]){djConfig["baseUrl"]=src.substring(0,m.index);}var cfg=_6a[i].getAttribute("djConfig");if(cfg){var _70=eval("({ "+cfg+" })");for(var x in _70){djConfig[x]=_70[x];}}break;}}}d.baseUrl=djConfig["baseUrl"];var n=navigator;var dua=n.userAgent;var dav=n.appVersion;var tv=parseFloat(dav);d.isOpera=(dua.indexOf("Opera")>=0)?tv:0;d.isKhtml=(dav.indexOf("Konqueror")>=0)||(dav.indexOf("Safari")>=0)?tv:0;d.isSafari=(dav.indexOf("Safari")>=0)?tv:0;var _76=dua.indexOf("Gecko");d.isMozilla=d.isMoz=((_76>=0)&&(!d.isKhtml))?tv:0;d.isFF=0;d.isIE=0;try{if(d.isMoz){d.isFF=parseFloat(dua.split("Firefox/")[1].split(" ")[0]);}if((document.all)&&(!d.isOpera)){d.isIE=parseFloat(dav.split("MSIE ")[1].split(";")[0]);}}catch(e){}if(dojo.isIE&&(window.location.protocol==="file:")){djConfig.ieForceActiveXXhr=true;}var cm=document["compatMode"];d.isQuirks=(cm=="BackCompat")||(cm=="QuirksMode")||(d.isIE<6);d.locale=djConfig.locale||(d.isIE?n.userLanguage:n.language).toLowerCase();d._println=console.debug;d._XMLHTTP_PROGIDS=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"];d._xhrObj=function(){var _78=null;var _79=null;if(!dojo.isIE||!djConfig.ieForceActiveXXhr){try{_78=new XMLHttpRequest();}catch(e){}}if(!_78){for(var i=0;i<3;++i){var _7b=dojo._XMLHTTP_PROGIDS[i];try{_78=new ActiveXObject(_7b);}catch(e){_79=e;}if(_78){dojo._XMLHTTP_PROGIDS=[_7b];break;}}}if(!_78){throw new Error("XMLHTTP not available: "+_79);}return _78;};d._isDocumentOk=function(_7c){var _7d=_7c.status||0;return ((_7d>=200)&&(_7d<300))||(_7d==304)||(_7d==1223)||(!_7d&&(location.protocol=="file:"||location.protocol=="chrome:"));};var _7e=window.location+"";var _7f=document.getElementsByTagName("base");var _80=(_7f&&_7f.length>0);d._getText=function(uri,_82){var _83=this._xhrObj();if(!_80&&dojo._Url){uri=(new dojo._Url(_7e,uri)).toString();}_83.open("GET",uri,false);try{_83.send(null);if(!d._isDocumentOk(_83)){var err=Error("Unable to load "+uri+" status:"+_83.status);err.status=_83.status;err.responseText=_83.responseText;throw err;}}catch(e){if(_82){return null;}throw e;}return _83.responseText;};})();dojo._initFired=false;dojo._loadInit=function(e){dojo._initFired=true;var _86=(e&&e.type)?e.type.toLowerCase():"load";if(arguments.callee.initialized||(_86!="domcontentloaded"&&_86!="load")){return;}arguments.callee.initialized=true;if(typeof dojo["_khtmlTimer"]!="undefined"){clearInterval(dojo._khtmlTimer);delete dojo._khtmlTimer;}if(dojo._inFlightCount==0){dojo._modulesLoaded();}};if(document.addEventListener){if(dojo.isOpera||(dojo.isMoz&&(djConfig["enableMozDomContentLoaded"]===true))){document.addEventListener("DOMContentLoaded",dojo._loadInit,null);}window.addEventListener("load",dojo._loadInit,null);}if(/(WebKit|khtml)/i.test(navigator.userAgent)){dojo._khtmlTimer=setInterval(function(){if(/loaded|complete/.test(document.readyState)){dojo._loadInit();}},10);}(function(){var _w=window;var _88=function(_89,fp){var _8b=_w[_89]||function(){};_w[_89]=function(){fp.apply(_w,arguments);_8b.apply(_w,arguments);};};if(dojo.isIE){document.write("<scr"+"ipt defer src=\"//:\" "+"onreadystatechange=\"if(this.readyState=='complete'){dojo._loadInit();}\">"+"</scr"+"ipt>");var _8c=true;_88("onbeforeunload",function(){_w.setTimeout(function(){_8c=false;},0);});_88("onunload",function(){if(_8c){dojo.unloaded();}});try{document.namespaces.add("v","urn:schemas-microsoft-com:vml");document.createStyleSheet().addRule("v\\:*","behavior:url(#default#VML)");}catch(e){}}else{_88("onbeforeunload",function(){dojo.unloaded();});}})();}if(djConfig.isDebug){dojo.require("dojo._firebug.firebug");}if(djConfig.debugAtAllCosts){djConfig.useXDomain=true;dojo.require("dojo._base._loader.loader_xd");dojo.require("dojo._base._loader.loader_debug");dojo.require("dojo.i18n");}}if(!dojo._hasResource["dojo._base.lang"]){dojo._hasResource["dojo._base.lang"]=true;dojo.provide("dojo._base.lang");dojo.isString=function(it){return typeof it=="string"||it instanceof String;};dojo.isArray=function(it){return it&&it instanceof Array||typeof it=="array"||(dojo.NodeList&&it instanceof dojo.NodeList);};dojo.isFunction=(function(){var _8f=function(it){return typeof it=="function"||it instanceof Function;};return dojo.isSafari?function(it){if(typeof it=="function"&&it=="[object NodeList]"){return false;}return _8f(it);}:_8f;})();dojo.isObject=function(it){return it!==undefined&&(it===null||typeof it=="object"||dojo.isArray(it)||dojo.isFunction(it));};dojo.isArrayLike=function(it){var d=dojo;return it&&it!==undefined&&!d.isString(it)&&!d.isFunction(it)&&!(it.tagName&&it.tagName.toLowerCase()=="form")&&(d.isArray(it)||isFinite(it.length));};dojo.isAlien=function(it){return it&&!dojo.isFunction(it)&&/\{\s*\[native code\]\s*\}/.test(String(it));};dojo._mixin=function(obj,_97){var _98={};for(var x in _97){if(_98[x]===undefined||_98[x]!=_97[x]){obj[x]=_97[x];}}if(dojo.isIE&&_97){var p=_97.toString;if(typeof p=="function"&&p!=obj.toString&&p!=_98.toString&&p!="\nfunction toString() {\n    [native code]\n}\n"){obj.toString=_97.toString;}}return obj;};dojo.mixin=function(obj,_9c){for(var i=1,l=arguments.length;i<l;i++){dojo._mixin(obj,arguments[i]);}return obj;};dojo.extend=function(_9f,_a0){for(var i=1,l=arguments.length;i<l;i++){dojo._mixin(_9f.prototype,arguments[i]);}return _9f;};dojo._hitchArgs=function(_a3,_a4){var pre=dojo._toArray(arguments,2);var _a6=dojo.isString(_a4);return function(){var _a7=dojo._toArray(arguments);var f=_a6?(_a3||dojo.global)[_a4]:_a4;return f&&f.apply(_a3||this,pre.concat(_a7));};};dojo.hitch=function(_a9,_aa){if(arguments.length>2){return dojo._hitchArgs.apply(dojo,arguments);}if(!_aa){_aa=_a9;_a9=null;}if(dojo.isString(_aa)){_a9=_a9||dojo.global;if(!_a9[_aa]){throw (["dojo.hitch: scope[\"",_aa,"\"] is null (scope=\"",_a9,"\")"].join(""));}return function(){return _a9[_aa].apply(_a9,arguments||[]);};}return !_a9?_aa:function(){return _aa.apply(_a9,arguments||[]);};};dojo._delegate=function(obj,_ac){function TMP(){};TMP.prototype=obj;var tmp=new TMP();if(_ac){dojo.mixin(tmp,_ac);}return tmp;};dojo.partial=function(_ae){var arr=[null];return dojo.hitch.apply(dojo,arr.concat(dojo._toArray(arguments)));};dojo._toArray=function(obj,_b1){var arr=[];for(var x=_b1||0;x<obj.length;x++){arr.push(obj[x]);}return arr;};dojo.clone=function(o){if(!o){return o;}if(dojo.isArray(o)){var r=[];for(var i=0;i<o.length;++i){r.push(dojo.clone(o[i]));}return r;}else{if(dojo.isObject(o)){if(o.nodeType&&o.cloneNode){return o.cloneNode(true);}else{var r=new o.constructor();for(var i in o){if(!(i in r)||r[i]!=o[i]){r[i]=dojo.clone(o[i]);}}return r;}}}return o;};dojo.trim=function(str){return str.replace(/^\s\s*/,"").replace(/\s\s*$/,"");};}if(!dojo._hasResource["dojo._base.declare"]){dojo._hasResource["dojo._base.declare"]=true;dojo.provide("dojo._base.declare");dojo.declare=function(_b8,_b9,_ba){if(dojo.isFunction(_ba)||(arguments.length>3)){dojo.deprecated("dojo.declare: for class '"+_b8+"' pass initializer function as 'constructor' property instead of as a separate argument.","","1.0");var c=_ba;_ba=arguments[3]||{};_ba.constructor=c;}var dd=arguments.callee,_bd=null;if(dojo.isArray(_b9)){_bd=_b9;_b9=_bd.shift();}if(_bd){for(var i=0,m;i<_bd.length;i++){m=_bd[i];if(!m){throw ("Mixin #"+i+" to declaration of "+_b8+" is null. It's likely a required module is not loaded.");}_b9=dd._delegate(_b9,m);}}var _c0=(_ba||0).constructor,_c1=dd._delegate(_b9),fn;for(var i in _ba){if(dojo.isFunction(fn=_ba[i])&&(!0[i])){fn.nom=i;}}dojo.extend(_c1,{declaredClass:_b8,_constructor:_c0,preamble:null},_ba||0);_c1.prototype.constructor=_c1;return dojo.setObject(_b8,_c1);};dojo.mixin(dojo.declare,{_delegate:function(_c3,_c4){var bp=(_c3||0).prototype,mp=(_c4||0).prototype;var _c7=dojo.declare._makeCtor();dojo.mixin(_c7,{superclass:bp,mixin:mp,extend:dojo.declare._extend});if(_c3){_c7.prototype=dojo._delegate(bp);}dojo.extend(_c7,dojo.declare._core,mp||0,{_constructor:null,preamble:null});_c7.prototype.constructor=_c7;_c7.prototype.declaredClass=(bp||0).declaredClass+"_"+(mp||0).declaredClass;dojo.setObject(_c7.prototype.declaredClass,_c7);return _c7;},_extend:function(_c8){for(var i in _c8){if(dojo.isFunction(fn=_c8[i])&&(!0[i])){fn.nom=i;}}dojo.extend(this,_c8);},_makeCtor:function(){return function(){this._construct(arguments);};},_core:{_construct:function(_ca){var c=_ca.callee,s=c.superclass,ct=s&&s.constructor,m=c.mixin,mct=m&&m.constructor,a=_ca,ii,fn;if(a[0]){if((fn=a[0]["preamble"])){a=fn.apply(this,a)||a;}}if(fn=c.prototype.preamble){a=fn.apply(this,a)||a;}if(ct&&ct.apply){ct.apply(this,a);}if(mct&&mct.apply){mct.apply(this,a);}if(ii=c.prototype._constructor){ii.apply(this,_ca);}if(this.constructor.prototype==c.prototype&&(ct=this.postscript)){ct.apply(this,_ca);}},_findMixin:function(_d3){var c=this.constructor,p,m;while(c){p=c.superclass;m=c.mixin;if(m==_d3||(m instanceof _d3.constructor)){return p;}if(m&&(m=m._findMixin(_d3))){return m;}c=p&&p.constructor;}},_findMethod:function(_d7,_d8,_d9,has){var p=_d9,c,m,f;do{c=p.constructor;m=c.mixin;if(m&&(m=this._findMethod(_d7,_d8,m,has))){return m;}if((f=p[_d7])&&(has==(f==_d8))){return p;}p=c.superclass;}while(p);return !has&&(p=this._findMixin(_d9))&&this._findMethod(_d7,_d8,p,has);},inherited:function(_df,_e0,_e1){var a=arguments;if(!dojo.isString(a[0])){_e1=_e0;_e0=_df;_df=_e0.callee.nom;}var c=_e0.callee,p=this.constructor.prototype,a=_e1||_e0,fn,mp;if(this[_df]!=c||p[_df]==c){mp=this._findMethod(_df,c,p,true);if(!mp){throw (this.declaredClass+": name argument (\""+_df+"\") to inherited must match callee (declare.js)");}p=this._findMethod(_df,c,mp,false);}fn=p&&p[_df];if(!fn){console.debug(mp.declaredClass+": no inherited \""+_df+"\" was found (declare.js)");return;}return fn.apply(this,a);}}});}if(!dojo._hasResource["dojo._base.connect"]){dojo._hasResource["dojo._base.connect"]=true;dojo.provide("dojo._base.connect");dojo._listener={getDispatcher:function(){return function(){var ap=Array.prototype,c=arguments.callee,ls=c._listeners,t=c.target;var r=t&&t.apply(this,arguments);for(var i in ls){if(!(i in ap)){ls[i].apply(this,arguments);}}return r;};},add:function(_ed,_ee,_ef){_ed=_ed||dojo.global;var f=_ed[_ee];if(!f||!f._listeners){var d=dojo._listener.getDispatcher();d.target=f;d._listeners=[];f=_ed[_ee]=d;}return f._listeners.push(_ef);},remove:function(_f2,_f3,_f4){var f=(_f2||dojo.global)[_f3];if(f&&f._listeners&&_f4--){delete f._listeners[_f4];}}};dojo.connect=function(obj,_f7,_f8,_f9,_fa){var a=arguments,_fc=[],i=0;_fc.push(dojo.isString(a[0])?null:a[i++],a[i++]);var a1=a[i+1];_fc.push(dojo.isString(a1)||dojo.isFunction(a1)?a[i++]:null,a[i++]);for(var l=a.length;i<l;i++){_fc.push(a[i]);}return dojo._connect.apply(this,_fc);};dojo._connect=function(obj,_101,_102,_103){var l=dojo._listener,h=l.add(obj,_101,dojo.hitch(_102,_103));return [obj,_101,h,l];};dojo.disconnect=function(_106){if(_106&&_106[0]!==undefined){dojo._disconnect.apply(this,_106);delete _106[0];}};dojo._disconnect=function(obj,_108,_109,_10a){_10a.remove(obj,_108,_109);};dojo._topics={};dojo.subscribe=function(_10b,_10c,_10d){return [_10b,dojo._listener.add(dojo._topics,_10b,dojo.hitch(_10c,_10d))];};dojo.unsubscribe=function(_10e){if(_10e){dojo._listener.remove(dojo._topics,_10e[0],_10e[1]);}};dojo.publish=function(_10f,args){var f=dojo._topics[_10f];if(f){f.apply(this,args||[]);}};dojo.connectPublisher=function(_112,obj,_114){var pf=function(){dojo.publish(_112,arguments);};return (_114)?dojo.connect(obj,_114,pf):dojo.connect(obj,pf);};}if(!dojo._hasResource["dojo._base.Deferred"]){dojo._hasResource["dojo._base.Deferred"]=true;dojo.provide("dojo._base.Deferred");dojo.Deferred=function(_116){this.chain=[];this.id=this._nextId();this.fired=-1;this.paused=0;this.results=[null,null];this.canceller=_116;this.silentlyCancelled=false;};dojo.extend(dojo.Deferred,{_nextId:(function(){var n=1;return function(){return n++;};})(),cancel:function(){var err;if(this.fired==-1){if(this.canceller){err=this.canceller(this);}else{this.silentlyCancelled=true;}if(this.fired==-1){if(!(err instanceof Error)){var res=err;err=new Error("Deferred Cancelled");err.dojoType="cancel";err.cancelResult=res;}this.errback(err);}}else{if((this.fired==0)&&(this.results[0] instanceof dojo.Deferred)){this.results[0].cancel();}}},_resback:function(res){this.fired=((res instanceof Error)?1:0);this.results[this.fired]=res;this._fire();},_check:function(){if(this.fired!=-1){if(!this.silentlyCancelled){throw new Error("already called!");}this.silentlyCancelled=false;return;}},callback:function(res){this._check();this._resback(res);},errback:function(res){this._check();if(!(res instanceof Error)){res=new Error(res);}this._resback(res);},addBoth:function(cb,cbfn){var _11f=dojo.hitch(cb,cbfn);if(arguments.length>2){_11f=dojo.partial(_11f,arguments,2);}return this.addCallbacks(_11f,_11f);},addCallback:function(cb,cbfn){var _122=dojo.hitch(cb,cbfn);if(arguments.length>2){_122=dojo.partial(_122,arguments,2);}return this.addCallbacks(_122,null);},addErrback:function(cb,cbfn){var _125=dojo.hitch(cb,cbfn);if(arguments.length>2){_125=dojo.partial(_125,arguments,2);}return this.addCallbacks(null,_125);},addCallbacks:function(cb,eb){this.chain.push([cb,eb]);if(this.fired>=0){this._fire();}return this;},_fire:function(){var _128=this.chain;var _129=this.fired;var res=this.results[_129];var self=this;var cb=null;while((_128.length>0)&&(this.paused==0)){var f=_128.shift()[_129];if(!f){continue;}try{res=f(res);_129=((res instanceof Error)?1:0);if(res instanceof dojo.Deferred){cb=function(res){self._resback(res);self.paused--;if((self.paused==0)&&(self.fired>=0)){self._fire();}};this.paused++;}}catch(err){console.debug(err);_129=1;res=err;}}this.fired=_129;this.results[_129]=res;if((cb)&&(this.paused)){res.addBoth(cb);}}});}if(!dojo._hasResource["dojo._base.json"]){dojo._hasResource["dojo._base.json"]=true;dojo.provide("dojo._base.json");dojo.fromJson=function(json){try{return eval("("+json+")");}catch(e){console.debug(e);return json;}};dojo._escapeString=function(str){return ("\""+str.replace(/(["\\])/g,"\\$1")+"\"").replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g,"\\r");};dojo.toJsonIndentStr="\t";dojo.toJson=function(it,_132,_133){_133=_133||"";var _134=(_132?_133+dojo.toJsonIndentStr:"");var _135=(_132?"\n":"");var _136=typeof (it);if(_136=="undefined"){return "undefined";}else{if((_136=="number")||(_136=="boolean")){return it+"";}else{if(it===null){return "null";}}}if(_136=="string"){return dojo._escapeString(it);}var _137=arguments.callee;var _138;if(typeof it.__json__=="function"){_138=it.__json__();if(it!==_138){return _137(_138,_132,_134);}}if(typeof it.json=="function"){_138=it.json();if(it!==_138){return _137(_138,_132,_134);}}if(dojo.isArray(it)){var res=[];for(var i=0;i<it.length;i++){var val=_137(it[i],_132,_134);if(typeof (val)!="string"){val="undefined";}res.push(_135+_134+val);}return "["+res.join(", ")+_135+_133+"]";}if(_136=="function"){return null;}var _13c=[];for(var key in it){var _13e;if(typeof (key)=="number"){_13e="\""+key+"\"";}else{if(typeof (key)=="string"){_13e=dojo._escapeString(key);}else{continue;}}val=_137(it[key],_132,_134);if(typeof (val)!="string"){continue;}_13c.push(_135+_134+_13e+": "+val);}return "{"+_13c.join(", ")+_135+_133+"}";};}if(!dojo._hasResource["dojo._base.array"]){dojo._hasResource["dojo._base.array"]=true;dojo.provide("dojo._base.array");(function(){var _13f=function(arr,obj,cb){return [(dojo.isString(arr)?arr.split(""):arr),(obj||dojo.global),(dojo.isString(cb)?(new Function("item","index","array",cb)):cb)];};dojo.mixin(dojo,{indexOf:function(_143,_144,_145,_146){var i=0,step=1,end=_143.length;if(_146){i=end-1;step=end=-1;}for(i=_145||i;i!=end;i+=step){if(_143[i]==_144){return i;}}return -1;},lastIndexOf:function(_14a,_14b,_14c){return dojo.indexOf(_14a,_14b,_14c,true);},forEach:function(arr,_14e,obj){if(!arr||!arr.length){return;}var _p=_13f(arr,obj,_14e);arr=_p[0];for(var i=0,l=_p[0].length;i<l;i++){_p[2].call(_p[1],arr[i],i,arr);}},_everyOrSome:function(_153,arr,_155,obj){var _p=_13f(arr,obj,_155);arr=_p[0];for(var i=0,l=arr.length;i<l;i++){var _15a=!!_p[2].call(_p[1],arr[i],i,arr);if(_153^_15a){return _15a;}}return _153;},every:function(arr,_15c,_15d){return this._everyOrSome(true,arr,_15c,_15d);},some:function(arr,_15f,_160){return this._everyOrSome(false,arr,_15f,_160);},map:function(arr,func,obj){var _p=_13f(arr,obj,func);arr=_p[0];var _165=((arguments[3])?(new arguments[3]()):[]);for(var i=0;i<arr.length;++i){_165.push(_p[2].call(_p[1],arr[i],i,arr));}return _165;},filter:function(arr,_168,obj){var _p=_13f(arr,obj,_168);arr=_p[0];var _16b=[];for(var i=0;i<arr.length;i++){if(_p[2].call(_p[1],arr[i],i,arr)){_16b.push(arr[i]);}}return _16b;}});})();}if(!dojo._hasResource["dojo._base.Color"]){dojo._hasResource["dojo._base.Color"]=true;dojo.provide("dojo._base.Color");dojo.Color=function(_16d){if(_16d){this.setColor(_16d);}};dojo.Color.named={black:[0,0,0],silver:[192,192,192],gray:[128,128,128],white:[255,255,255],maroon:[128,0,0],red:[255,0,0],purple:[128,0,128],fuchsia:[255,0,255],green:[0,128,0],lime:[0,255,0],olive:[128,128,0],yellow:[255,255,0],navy:[0,0,128],blue:[0,0,255],teal:[0,128,128],aqua:[0,255,255]};dojo.extend(dojo.Color,{r:255,g:255,b:255,a:1,_set:function(r,g,b,a){var t=this;t.r=r;t.g=g;t.b=b;t.a=a;},setColor:function(_173){var d=dojo;if(d.isString(_173)){d.colorFromString(_173,this);}else{if(d.isArray(_173)){d.colorFromArray(_173,this);}else{this._set(_173.r,_173.g,_173.b,_173.a);if(!(_173 instanceof d.Color)){this.sanitize();}}}return this;},sanitize:function(){return this;},toRgb:function(){var t=this;return [t.r,t.g,t.b];},toRgba:function(){var t=this;return [t.r,t.g,t.b,t.a];},toHex:function(){var arr=dojo.map(["r","g","b"],function(x){var s=this[x].toString(16);return s.length<2?"0"+s:s;},this);return "#"+arr.join("");},toCss:function(_17a){var t=this,rgb=t.r+", "+t.g+", "+t.b;return (_17a?"rgba("+rgb+", "+t.a:"rgb("+rgb)+")";},toString:function(){return this.toCss(true);}});dojo.blendColors=function(_17d,end,_17f,obj){var d=dojo,t=obj||new dojo.Color();d.forEach(["r","g","b","a"],function(x){t[x]=_17d[x]+(end[x]-_17d[x])*_17f;if(x!="a"){t[x]=Math.round(t[x]);}});return t.sanitize();};dojo.colorFromRgb=function(_184,obj){var m=_184.toLowerCase().match(/^rgba?\(([\s\.,0-9]+)\)/);return m&&dojo.colorFromArray(m[1].split(/\s*,\s*/),obj);};dojo.colorFromHex=function(_187,obj){var d=dojo,t=obj||new d.Color(),bits=(_187.length==4)?4:8,mask=(1<<bits)-1;_187=Number("0x"+_187.substr(1));if(isNaN(_187)){return null;}d.forEach(["b","g","r"],function(x){var c=_187&mask;_187>>=bits;t[x]=bits==4?17*c:c;});t.a=1;return t;};dojo.colorFromArray=function(a,obj){var t=obj||new dojo.Color();t._set(Number(a[0]),Number(a[1]),Number(a[2]),Number(a[3]));if(isNaN(t.a)){t.a=1;}return t.sanitize();};dojo.colorFromString=function(str,obj){var a=dojo.Color.named[str];return a&&dojo.colorFromArray(a,obj)||dojo.colorFromRgb(str,obj)||dojo.colorFromHex(str,obj);};}if(!dojo._hasResource["dojo._base"]){dojo._hasResource["dojo._base"]=true;dojo.provide("dojo._base");(function(){if(djConfig.require){for(var x=0;x<djConfig.require.length;x++){dojo["require"](djConfig.require[x]);}}})();}if(!dojo._hasResource["dojo._base.window"]){dojo._hasResource["dojo._base.window"]=true;dojo.provide("dojo._base.window");dojo.isGears=0;dojo._gearsObject=function(){var _196;var _197;var _198=dojo.getObject("google.gears");if(_198){return _198;}if(typeof GearsFactory!="undefined"){_196=new GearsFactory();}else{if(dojo.isIE){try{_196=new ActiveXObject("Gears.Factory");}catch(e){}}else{if(navigator.mimeTypes["application/x-googlegears"]){_196=document.createElement("object");_196.setAttribute("type","application/x-googlegears");_196.setAttribute("width",0);_196.setAttribute("height",0);_196.style.display="none";document.documentElement.appendChild(_196);}}}if(!_196){return null;}dojo.setObject("google.gears.factory",_196);return dojo.getObject("google.gears");};var gearsObj=dojo._gearsObject();if(gearsObj){dojo.isGears=true;}dojo.doc=window["document"]||null;dojo.body=function(){return dojo.doc.body||dojo.doc.getElementsByTagName("body")[0];};dojo.setContext=function(_199,_19a){dojo.global=_199;dojo.doc=_19a;};dojo._fireCallback=function(_19b,_19c,_19d){if((_19c)&&((typeof _19b=="string")||(_19b instanceof String))){_19b=_19c[_19b];}return (_19c?_19b.apply(_19c,_19d||[]):_19b());};dojo.withGlobal=function(_19e,_19f,_1a0,_1a1){var rval;var _1a3=dojo.global;var _1a4=dojo.doc;try{dojo.setContext(_19e,_19e.document);rval=dojo._fireCallback(_19f,_1a0,_1a1);}finally{dojo.setContext(_1a3,_1a4);}return rval;};dojo.withDoc=function(_1a5,_1a6,_1a7,_1a8){var rval;var _1aa=dojo.doc;try{dojo.doc=_1a5;rval=dojo._fireCallback(_1a6,_1a7,_1a8);}finally{dojo.doc=_1aa;}return rval;};if(djConfig["modulePaths"]){for(var param in djConfig["modulePaths"]){dojo.registerModulePath(param,djConfig["modulePaths"][param]);}}}if(!dojo._hasResource["dojo._base.event"]){dojo._hasResource["dojo._base.event"]=true;dojo.provide("dojo._base.event");(function(){var del=dojo._event_listener={add:function(node,name,fp){if(!node){return;}name=del._normalizeEventName(name);fp=del._fixCallback(name,fp);var _1af=name;if((!dojo.isIE)&&((name=="mouseenter")||(name=="mouseleave"))){var _1af=name;var ofp=fp;name=(name=="mouseenter")?"mouseover":"mouseout";fp=function(e){var id=dojo.isDescendant(e.relatedTarget,node);if(id==false){return ofp.call(this,e);}};}node.addEventListener(name,fp,false);return fp;},remove:function(node,_1b4,_1b5){(node)&&(node.removeEventListener(del._normalizeEventName(_1b4),_1b5,false));},_normalizeEventName:function(name){return (name.slice(0,2)=="on"?name.slice(2):name);},_fixCallback:function(name,fp){return (name!="keypress"?fp:function(e){return fp.call(this,del._fixEvent(e,this));});},_fixEvent:function(evt,_1bb){switch(evt.type){case "keypress":del._setKeyChar(evt);break;}return evt;},_setKeyChar:function(evt){evt.keyChar=(evt.charCode?String.fromCharCode(evt.charCode):"");}};dojo.fixEvent=function(evt,_1be){return del._fixEvent(evt,_1be);};dojo.stopEvent=function(evt){evt.preventDefault();evt.stopPropagation();};var _1c0=dojo._listener;dojo._connect=function(obj,_1c2,_1c3,_1c4,_1c5){var _1c6=obj&&(obj.nodeType||obj.attachEvent||obj.addEventListener);var lid=!_1c6?0:(!_1c5?1:2),l=[dojo._listener,del,_1c0][lid];var h=l.add(obj,_1c2,dojo.hitch(_1c3,_1c4));return [obj,_1c2,h,lid];};dojo._disconnect=function(obj,_1cb,_1cc,_1cd){([dojo._listener,del,_1c0][_1cd]).remove(obj,_1cb,_1cc);};dojo.keys={BACKSPACE:8,TAB:9,CLEAR:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,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};if(dojo.isIE){_trySetKeyCode=function(e,code){try{return (e.keyCode=code);}catch(e){return 0;}};var iel=dojo._listener;if(!djConfig._allow_leaks){_1c0=iel=dojo._ie_listener={handlers:[],add:function(_1d1,_1d2,_1d3){_1d1=_1d1||dojo.global;var f=_1d1[_1d2];if(!f||!f._listeners){var d=dojo._getIeDispatcher();d.target=f&&(ieh.push(f)-1);d._listeners=[];f=_1d1[_1d2]=d;}return f._listeners.push(ieh.push(_1d3)-1);},remove:function(_1d7,_1d8,_1d9){var f=(_1d7||dojo.global)[_1d8],l=f&&f._listeners;if(f&&l&&_1d9--){delete ieh[l[_1d9]];delete l[_1d9];}}};var ieh=iel.handlers;}dojo.mixin(del,{add:function(node,_1dd,fp){if(!node){return;}_1dd=del._normalizeEventName(_1dd);if(_1dd=="onkeypress"){var kd=node.onkeydown;if(!kd||!kd._listeners||!kd._stealthKeydown){del.add(node,"onkeydown",del._stealthKeyDown);node.onkeydown._stealthKeydown=true;}}return iel.add(node,_1dd,del._fixCallback(fp));},remove:function(node,_1e1,_1e2){iel.remove(node,del._normalizeEventName(_1e1),_1e2);},_normalizeEventName:function(_1e3){return (_1e3.slice(0,2)!="on"?"on"+_1e3:_1e3);},_nop:function(){},_fixEvent:function(evt,_1e5){if(!evt){var w=(_1e5)&&((_1e5.ownerDocument||_1e5.document||_1e5).parentWindow)||window;evt=w.event;}if(!evt){return (evt);}evt.target=evt.srcElement;evt.currentTarget=(_1e5||evt.srcElement);evt.layerX=evt.offsetX;evt.layerY=evt.offsetY;var se=evt.srcElement,doc=(se&&se.ownerDocument)||document;var _1e9=((dojo.isIE<6)||(doc["compatMode"]=="BackCompat"))?doc.body:doc.documentElement;var _1ea=dojo._getIeDocumentElementOffset();evt.pageX=evt.clientX+dojo._fixIeBiDiScrollLeft(_1e9.scrollLeft||0)-_1ea.x;evt.pageY=evt.clientY+(_1e9.scrollTop||0)-_1ea.y;if(evt.type=="mouseover"){evt.relatedTarget=evt.fromElement;}if(evt.type=="mouseout"){evt.relatedTarget=evt.toElement;}evt.stopPropagation=del._stopPropagation;evt.preventDefault=del._preventDefault;return del._fixKeys(evt);},_fixKeys:function(evt){switch(evt.type){case "keypress":var c=("charCode" in evt?evt.charCode:evt.keyCode);if(c==10){c=0;evt.keyCode=13;}else{if(c==13||c==27){c=0;}else{if(c==3){c=99;}}}evt.charCode=c;del._setKeyChar(evt);break;}return evt;},_punctMap:{106:42,111:47,186:59,187:43,188:44,189:45,190:46,191:47,192:96,219:91,220:92,221:93,222:39},_stealthKeyDown:function(evt){var kp=evt.currentTarget.onkeypress;if(!kp||!kp._listeners){return;}var k=evt.keyCode;var _1f0=(k!=13)&&(k!=32)&&(k!=27)&&(k<48||k>90)&&(k<96||k>111)&&(k<186||k>192)&&(k<219||k>222);if(_1f0||evt.ctrlKey){var c=(_1f0?0:k);if(evt.ctrlKey){if(k==3||k==13){return;}else{if(c>95&&c<106){c-=48;}else{if((!evt.shiftKey)&&(c>=65&&c<=90)){c+=32;}else{c=del._punctMap[c]||c;}}}}var faux=del._synthesizeEvent(evt,{type:"keypress",faux:true,charCode:c});kp.call(evt.currentTarget,faux);evt.cancelBubble=faux.cancelBubble;evt.returnValue=faux.returnValue;_trySetKeyCode(evt,faux.keyCode);}},_stopPropagation:function(){this.cancelBubble=true;},_preventDefault:function(){this.bubbledKeyCode=this.keyCode;if(this.ctrlKey){_trySetKeyCode(this,0);}this.returnValue=false;}});dojo.stopEvent=function(evt){evt=evt||window.event;del._stopPropagation.call(evt);del._preventDefault.call(evt);};}del._synthesizeEvent=function(evt,_1f5){var faux=dojo.mixin({},evt,_1f5);del._setKeyChar(faux);faux.preventDefault=function(){evt.preventDefault();};faux.stopPropagation=function(){evt.stopPropagation();};return faux;};if(dojo.isOpera){dojo.mixin(del,{_fixEvent:function(evt,_1f8){switch(evt.type){case "keypress":var c=evt.which;if(c==3){c=99;}c=((c<41)&&(!evt.shiftKey)?0:c);if((evt.ctrlKey)&&(!evt.shiftKey)&&(c>=65)&&(c<=90)){c+=32;}return del._synthesizeEvent(evt,{charCode:c});}return evt;}});}if(dojo.isSafari){dojo.mixin(del,{_fixEvent:function(evt,_1fb){switch(evt.type){case "keypress":var c=evt.charCode,s=evt.shiftKey,k=evt.keyCode;k=k||_1ff[evt.keyIdentifier]||0;if(evt.keyIdentifier=="Enter"){c=0;}else{if((evt.ctrlKey)&&(c>0)&&(c<27)){c+=96;}else{if(c==dojo.keys.SHIFT_TAB){c=dojo.keys.TAB;s=true;}else{c=(c>=32&&c<63232?c:0);}}}return del._synthesizeEvent(evt,{charCode:c,shiftKey:s,keyCode:k});}return evt;}});dojo.mixin(dojo.keys,{SHIFT_TAB:25,UP_ARROW:63232,DOWN_ARROW:63233,LEFT_ARROW:63234,RIGHT_ARROW:63235,F1:63236,F2:63237,F3:63238,F4:63239,F5:63240,F6:63241,F7:63242,F8:63243,F9:63244,F10:63245,F11:63246,F12:63247,PAUSE:63250,DELETE:63272,HOME:63273,END:63275,PAGE_UP:63276,PAGE_DOWN:63277,INSERT:63302,PRINT_SCREEN:63248,SCROLL_LOCK:63249,NUM_LOCK:63289});var dk=dojo.keys,_1ff={"Up":dk.UP_ARROW,"Down":dk.DOWN_ARROW,"Left":dk.LEFT_ARROW,"Right":dk.RIGHT_ARROW,"PageUp":dk.PAGE_UP,"PageDown":dk.PAGE_DOWN};}})();if(dojo.isIE){dojo._getIeDispatcher=function(){return function(){var ap=Array.prototype,h=dojo._ie_listener.handlers,c=arguments.callee,ls=c._listeners,t=h[c.target];var r=t&&t.apply(this,arguments);for(var i in ls){if(!(i in ap)){h[ls[i]].apply(this,arguments);}}return r;};};dojo._event_listener._fixCallback=function(fp){var f=dojo._event_listener._fixEvent;return function(e){return fp.call(this,f(e,this));};};}}if(!dojo._hasResource["dojo._base.html"]){dojo._hasResource["dojo._base.html"]=true;dojo.provide("dojo._base.html");try{document.execCommand("BackgroundImageCache",false,true);}catch(e){}if(dojo.isIE||dojo.isOpera){dojo.byId=function(id,doc){if(dojo.isString(id)){var _d=doc||dojo.doc;var te=_d.getElementById(id);if(te&&te.attributes.id.value==id){return te;}else{var eles=_d.all[id];if(!eles){return;}if(!eles.length){return eles;}var i=0;while((te=eles[i++])){if(te.attributes.id.value==id){return te;}}}}else{return id;}};}else{dojo.byId=function(id,doc){if(dojo.isString(id)){return (doc||dojo.doc).getElementById(id);}else{return id;}};}(function(){var _213=null;dojo._destroyElement=function(node){node=dojo.byId(node);try{if(!_213){_213=document.createElement("div");}_213.appendChild(node.parentNode?node.parentNode.removeChild(node):node);_213.innerHTML="";}catch(e){}};dojo.isDescendant=function(node,_216){try{node=dojo.byId(node);_216=dojo.byId(_216);while(node){if(node===_216){return true;}node=node.parentNode;}}catch(e){return -1;}return false;};dojo.setSelectable=function(node,_218){node=dojo.byId(node);if(dojo.isMozilla){node.style.MozUserSelect=_218?"":"none";}else{if(dojo.isKhtml){node.style.KhtmlUserSelect=_218?"auto":"none";}else{if(dojo.isIE){node.unselectable=_218?"":"on";dojo.query("*",node).forEach(function(_219){_219.unselectable=_218?"":"on";});}}}};var _21a=function(node,ref){ref.parentNode.insertBefore(node,ref);return true;};var _21d=function(node,ref){var pn=ref.parentNode;if(ref==pn.lastChild){pn.appendChild(node);}else{return _21a(node,ref.nextSibling);}return true;};dojo.place=function(node,_222,_223){if(!node||!_222||_223===undefined){return false;}node=dojo.byId(node);_222=dojo.byId(_222);if(typeof _223=="number"){var cn=_222.childNodes;if((_223==0&&cn.length==0)||cn.length==_223){_222.appendChild(node);return true;}if(_223==0){return _21a(node,_222.firstChild);}return _21d(node,cn[_223-1]);}switch(_223.toLowerCase()){case "before":return _21a(node,_222);case "after":return _21d(node,_222);case "first":if(_222.firstChild){return _21a(node,_222.firstChild);}else{_222.appendChild(node);return true;}break;default:_222.appendChild(node);return true;}};dojo.boxModel="content-box";if(dojo.isIE){var _dcm=document.compatMode;dojo.boxModel=(_dcm=="BackCompat")||(_dcm=="QuirksMode")||(dojo.isIE<6)?"border-box":"content-box";}var gcs,dv=document.defaultView;if(dojo.isSafari){gcs=function(node){var s=dv.getComputedStyle(node,null);if(!s&&node.style){node.style.display="";s=dv.getComputedStyle(node,null);}return s||{};};}else{if(dojo.isIE){gcs=function(node){return node.currentStyle;};}else{gcs=function(node){return dv.getComputedStyle(node,null);};}}dojo.getComputedStyle=gcs;if(!dojo.isIE){dojo._toPixelValue=function(_22c,_22d){return parseFloat(_22d)||0;};}else{dojo._toPixelValue=function(_22e,_22f){if(!_22f){return 0;}if(_22f=="medium"){return 4;}if(_22f.slice&&(_22f.slice(-2)=="px")){return parseFloat(_22f);}with(_22e){var _230=style.left;var _231=runtimeStyle.left;runtimeStyle.left=currentStyle.left;try{style.left=_22f;_22f=style.pixelLeft;}catch(e){_22f=0;}style.left=_230;runtimeStyle.left=_231;}return _22f;};}dojo._getOpacity=(dojo.isIE?function(node){try{return (node.filters.alpha.opacity/100);}catch(e){return 1;}}:function(node){return dojo.getComputedStyle(node).opacity;});dojo._setOpacity=(dojo.isIE?function(node,_235){if(_235==1){node.style.cssText=node.style.cssText.replace(/FILTER:[^;]*;/i,"");if(node.nodeName.toLowerCase()=="tr"){dojo.query("> td",node).forEach(function(i){i.style.cssText=i.style.cssText.replace(/FILTER:[^;]*;/i,"");});}}else{var o="Alpha(Opacity="+(_235*100)+")";node.style.filter=o;}if(node.nodeName.toLowerCase()=="tr"){dojo.query("> td",node).forEach(function(i){i.style.filter=o;});}return _235;}:function(node,_23a){return node.style.opacity=_23a;});var _23b={width:true,height:true,left:true,top:true};var _23c=function(node,type,_23f){type=type.toLowerCase();if(_23b[type]===true){return dojo._toPixelValue(node,_23f);}else{if(_23b[type]===false){return _23f;}else{if(dojo.isOpera&&type=="cssText"){}if((type.indexOf("margin")>=0)||(type.indexOf("padding")>=0)||(type.indexOf("width")>=0)||(type.indexOf("height")>=0)||(type.indexOf("max")>=0)||(type.indexOf("min")>=0)||(type.indexOf("offset")>=0)){_23b[type]=true;return dojo._toPixelValue(node,_23f);}else{_23b[type]=false;return _23f;}}}};dojo.style=function(node,_241,_242){var n=dojo.byId(node),args=arguments.length,op=(_241=="opacity");if(args==3){return op?dojo._setOpacity(n,_242):n.style[_241]=_242;}if(args==2&&op){return dojo._getOpacity(n);}var s=dojo.getComputedStyle(n);return (args==1)?s:_23c(n,_241,s[_241]);};dojo._getPadExtents=function(n,_248){var s=_248||gcs(n),px=dojo._toPixelValue,l=px(n,s.paddingLeft),t=px(n,s.paddingTop);return {l:l,t:t,w:l+px(n,s.paddingRight),h:t+px(n,s.paddingBottom)};};dojo._getBorderExtents=function(n,_24e){var ne="none",px=dojo._toPixelValue,s=_24e||gcs(n),bl=(s.borderLeftStyle!=ne?px(n,s.borderLeftWidth):0),bt=(s.borderTopStyle!=ne?px(n,s.borderTopWidth):0);return {l:bl,t:bt,w:bl+(s.borderRightStyle!=ne?px(n,s.borderRightWidth):0),h:bt+(s.borderBottomStyle!=ne?px(n,s.borderBottomWidth):0)};};dojo._getPadBorderExtents=function(n,_255){var s=_255||gcs(n),p=dojo._getPadExtents(n,s),b=dojo._getBorderExtents(n,s);return {l:p.l+b.l,t:p.t+b.t,w:p.w+b.w,h:p.h+b.h};};dojo._getMarginExtents=function(n,_25a){var s=_25a||gcs(n),px=dojo._toPixelValue,l=px(n,s.marginLeft),t=px(n,s.marginTop),r=px(n,s.marginRight),b=px(n,s.marginBottom);if(dojo.isSafari&&(s.position!="absolute")){r=l;}return {l:l,t:t,w:l+r,h:t+b};};dojo._getMarginBox=function(node,_262){var s=_262||gcs(node),me=dojo._getMarginExtents(node,s);var l=node.offsetLeft-me.l,t=node.offsetTop-me.t;if(dojo.isMoz){var sl=parseFloat(s.left),st=parseFloat(s.top);if(!isNaN(sl)&&!isNaN(st)){l=sl,t=st;}else{var p=node.parentNode;if(p&&p.style){var pcs=gcs(p);if(pcs.overflow!="visible"){var be=dojo._getBorderExtents(p,pcs);l+=be.l,t+=be.t;}}}}else{if(dojo.isOpera){var p=node.parentNode;if(p){var be=dojo._getBorderExtents(p);l-=be.l,t-=be.t;}}}return {l:l,t:t,w:node.offsetWidth+me.w,h:node.offsetHeight+me.h};};dojo._getContentBox=function(node,_26d){var s=_26d||gcs(node),pe=dojo._getPadExtents(node,s),be=dojo._getBorderExtents(node,s),w=node.clientWidth,h;if(!w){w=node.offsetWidth,h=node.offsetHeight;}else{h=node.clientHeight,be.w=be.h=0;}if(dojo.isOpera){pe.l+=be.l;pe.t+=be.t;}return {l:pe.l,t:pe.t,w:w-pe.w-be.w,h:h-pe.h-be.h};};dojo._getBorderBox=function(node,_274){var s=_274||gcs(node),pe=dojo._getPadExtents(node,s),cb=dojo._getContentBox(node,s);return {l:cb.l-pe.l,t:cb.t-pe.t,w:cb.w+pe.w,h:cb.h+pe.h};};dojo._setBox=function(node,l,t,w,h,u){u=u||"px";with(node.style){if(!isNaN(l)){left=l+u;}if(!isNaN(t)){top=t+u;}if(w>=0){width=w+u;}if(h>=0){height=h+u;}}};dojo._usesBorderBox=function(node){var n=node.tagName;return dojo.boxModel=="border-box"||n=="TABLE"||n=="BUTTON";};dojo._setContentSize=function(node,_281,_282,_283){var bb=dojo._usesBorderBox(node);if(bb){var pb=dojo._getPadBorderExtents(node,_283);if(_281>=0){_281+=pb.w;}if(_282>=0){_282+=pb.h;}}dojo._setBox(node,NaN,NaN,_281,_282);};dojo._setMarginBox=function(node,_287,_288,_289,_28a,_28b){var s=_28b||dojo.getComputedStyle(node);var bb=dojo._usesBorderBox(node),pb=bb?_28f:dojo._getPadBorderExtents(node,s),mb=dojo._getMarginExtents(node,s);if(_289>=0){_289=Math.max(_289-pb.w-mb.w,0);}if(_28a>=0){_28a=Math.max(_28a-pb.h-mb.h,0);}dojo._setBox(node,_287,_288,_289,_28a);};var _28f={l:0,t:0,w:0,h:0};dojo.marginBox=function(node,box){var n=dojo.byId(node),s=gcs(n),b=box;return !b?dojo._getMarginBox(n,s):dojo._setMarginBox(n,b.l,b.t,b.w,b.h,s);};dojo.contentBox=function(node,box){var n=dojo.byId(node),s=gcs(n),b=box;return !b?dojo._getContentBox(n,s):dojo._setContentSize(n,b.w,b.h,s);};var _29b=function(node,prop){if(!(node=(node||0).parentNode)){return 0;}var val,_29f=0,_b=dojo.body();while(node&&node.style){if(gcs(node).position=="fixed"){return 0;}val=node[prop];if(val){_29f+=val-0;if(node==_b){break;}}node=node.parentNode;}return _29f;};dojo._docScroll=function(){var _b=dojo.body();var _w=dojo.global;var de=dojo.doc.documentElement;return {y:(_w.pageYOffset||de.scrollTop||_b.scrollTop||0),x:(_w.pageXOffset||dojo._fixIeBiDiScrollLeft(de.scrollLeft)||_b.scrollLeft||0)};};dojo._isBodyLtr=function(){return !("_bodyLtr" in dojo)?dojo._bodyLtr=dojo.getComputedStyle(dojo.body()).direction=="ltr":dojo._bodyLtr;};dojo._getIeDocumentElementOffset=function(){var de=dojo.doc.documentElement;if(dojo.isIE>=7){return {x:de.getBoundingClientRect().left,y:de.getBoundingClientRect().top};}else{return {x:dojo._isBodyLtr()||window.parent==window?de.clientLeft:de.offsetWidth-de.clientWidth-de.clientLeft,y:de.clientTop};}};dojo._fixIeBiDiScrollLeft=function(_2a5){if(dojo.isIE&&!dojo._isBodyLtr()){var de=dojo.doc.documentElement;return _2a5+de.clientWidth-de.scrollWidth;}return _2a5;};dojo._abs=function(node,_2a8){var _2a9=node.ownerDocument;var ret={x:0,y:0};var _2ab=false;var db=dojo.body();if(dojo.isIE){var _2ad=node.getBoundingClientRect();var _2ae=dojo._getIeDocumentElementOffset();ret.x=_2ad.left-_2ae.x;ret.y=_2ad.top-_2ae.y;}else{if(_2a9["getBoxObjectFor"]){var bo=_2a9.getBoxObjectFor(node);ret.x=bo.x-_29b(node,"scrollLeft");ret.y=bo.y-_29b(node,"scrollTop");}else{if(node["offsetParent"]){_2ab=true;var _2b0;if(dojo.isSafari&&(gcs(node).position=="absolute")&&(node.parentNode==db)){_2b0=db;}else{_2b0=db.parentNode;}if(node.parentNode!=db){var nd=node;if(dojo.isOpera){nd=db;}ret.x-=_29b(nd,"scrollLeft");ret.y-=_29b(nd,"scrollTop");}var _2b2=node;do{var n=_2b2["offsetLeft"];if(!dojo.isOpera||n>0){ret.x+=isNaN(n)?0:n;}var m=_2b2["offsetTop"];ret.y+=isNaN(m)?0:m;_2b2=_2b2.offsetParent;}while((_2b2!=_2b0)&&_2b2);}else{if(node["x"]&&node["y"]){ret.x+=isNaN(node.x)?0:node.x;ret.y+=isNaN(node.y)?0:node.y;}}}}if(_2ab||_2a8){var _2b5=dojo._docScroll();var m=_2ab?(!_2a8?-1:0):1;ret.y+=m*_2b5.y;ret.x+=m*_2b5.x;}return ret;};dojo.coords=function(node,_2b7){var n=dojo.byId(node),s=gcs(n),mb=dojo._getMarginBox(n,s);var abs=dojo._abs(n,_2b7);mb.x=abs.x;mb.y=abs.y;return mb;};})();dojo.hasClass=function(node,_2bd){return ((" "+node.className+" ").indexOf(" "+_2bd+" ")>=0);};dojo.addClass=function(node,_2bf){var cls=node.className;if((" "+cls+" ").indexOf(" "+_2bf+" ")<0){node.className=cls+(cls?" ":"")+_2bf;}};dojo.removeClass=function(node,_2c2){var t=dojo.trim((" "+node.className+" ").replace(" "+_2c2+" "," "));if(node.className!=t){node.className=t;}};dojo.toggleClass=function(node,_2c5,_2c6){if(_2c6===undefined){_2c6=!dojo.hasClass(node,_2c5);}dojo[_2c6?"addClass":"removeClass"](node,_2c5);};}if(!dojo._hasResource["dojo._base.NodeList"]){dojo._hasResource["dojo._base.NodeList"]=true;dojo.provide("dojo._base.NodeList");(function(){var d=dojo;dojo.NodeList=function(){var args=arguments;if((args.length==1)&&(typeof args[0]=="number")){this.length=parseInt(args[0]);}else{if(args.length){d.forEach(args,function(i){this.push(i);},this);}}};dojo.NodeList.prototype=new Array;if(d.isIE){var _2ca=function(_2cb){return ("var a2 = parent."+_2cb+"; "+"var ap = Array.prototype; "+"var a2p = a2.prototype; "+"for(var x in a2p){ ap[x] = a2p[x]; } "+"parent."+_2cb+" = Array; ");};var scs=_2ca("dojo.NodeList");var _2cd=window.createPopup();_2cd.document.write("<script>"+scs+"</script>");_2cd.show(1,1,1,1);}dojo.extend(dojo.NodeList,{indexOf:function(_2ce,_2cf){return d.indexOf(this,_2ce,_2cf);},lastIndexOf:function(_2d0,_2d1){var aa=d._toArray(arguments);aa.unshift(this);return d.lastIndexOf.apply(d,aa);},every:function(_2d3,_2d4){return d.every(this,_2d3,_2d4);},some:function(_2d5,_2d6){return d.some(this,_2d5,_2d6);},forEach:function(_2d7,_2d8){d.forEach(this,_2d7,_2d8);return this;},map:function(func,obj){return d.map(this,func,obj,d.NodeList);},coords:function(){return d.map(this,d.coords);},style:function(_2db,_2dc){var aa=d._toArray(arguments);aa.unshift(this[0]);var s=d.style.apply(d,aa);return (arguments.length>1)?this:s;},styles:function(_2df,_2e0){var aa=d._toArray(arguments);aa.unshift(null);var s=this.map(function(i){aa[0]=i;return d.style.apply(d,aa);});return (arguments.length>1)?this:s;},addClass:function(_2e4){this.forEach(function(i){dojo.addClass(i,_2e4);});return this;},removeClass:function(_2e6){this.forEach(function(i){dojo.removeClass(i,_2e6);});return this;},place:function(_2e8,_2e9){var item=d.query(_2e8)[0];_2e9=_2e9||"last";for(var x=0;x<this.length;x++){d.place(this[x],item,_2e9);}return this;},connect:function(_2ec,_2ed,_2ee){this.forEach(function(item){d.connect(item,_2ec,_2ed,_2ee);});return this;},orphan:function(_2f0){var _2f1=(_2f0)?d._filterQueryResult(this,_2f0):this;_2f1.forEach(function(item){if(item["parentNode"]){item.parentNode.removeChild(item);}});return _2f1;},adopt:function(_2f3,_2f4){var item=this[0];return d.query(_2f3).forEach(function(ai){d.place(ai,item,(_2f4||"last"));});},query:function(_2f7){_2f7=_2f7||"";var ret=new d.NodeList();this.forEach(function(item){d.query(_2f7,item).forEach(function(_2fa){if(typeof _2fa!="undefined"){ret.push(_2fa);}});});return ret;},filter:function(_2fb){var _2fc=this;var _a=arguments;var r=new d.NodeList();var rp=function(t){if(typeof t!="undefined"){r.push(t);}};if(d.isString(_2fb)){_2fc=d._filterQueryResult(this,_a[0]);if(_a.length==1){return _2fc;}d.forEach(d.filter(_2fc,_a[1],_a[2]),rp);return r;}d.forEach(d.filter(_2fc,_a[0],_a[1]),rp);return r;},addContent:function(_301,_302){var ta=d.doc.createElement("span");if(d.isString(_301)){ta.innerHTML=_301;}else{ta.appendChild(_301);}var ct=((_302=="first")||(_302=="after"))?"lastChild":"firstChild";this.forEach(function(item){var tn=ta.cloneNode(true);while(tn[ct]){d.place(tn[ct],item,_302);}});return this;},_anim:function(_307,args){var _309=[];args=args||{};this.forEach(function(item){var _30b={node:item};d.mixin(_30b,args);_309.push(d[_307](_30b));});return d.fx.combine(_309);},fadeIn:function(args){return this._anim("fadeIn",args);},fadeOut:function(args){return this._anim("fadeOut",args);},animateProperty:function(args){return this._anim("animateProperty",args);}});dojo.forEach(["mouseover","click","mouseout","mousemove","blur","mousedown","mouseup","mousemove","keydown","keyup","keypress","mouseenter","mouseleave"],function(evt){var _oe="on"+evt;dojo.NodeList.prototype[_oe]=function(a,b){return this.connect(_oe,a,b);};});})();}if(!dojo._hasResource["dojo._base.query"]){dojo._hasResource["dojo._base.query"]=true;dojo.provide("dojo._base.query");(function(){var d=dojo;var _314=function(q){return [q.indexOf("#"),q.indexOf("."),q.indexOf("["),q.indexOf(":")];};var _316=function(_317,_318){var ql=_317.length;var i=_314(_317);var end=ql;for(var x=_318;x<i.length;x++){if(i[x]>=0){if(i[x]<end){end=i[x];}}}return (end<0)?ql:end;};var _31d=function(_31e){var i=_314(_31e);if(i[0]!=-1){return _31e.substring(i[0]+1,_316(_31e,1));}else{return "";}};var _320=function(_321){var _322;var i=_314(_321);if((i[0]==0)||(i[1]==0)){_322=0;}else{_322=_316(_321,0);}return ((_322>0)?_321.substr(0,_322).toLowerCase():"*");};var _324=function(arr){var ret=-1;for(var x=0;x<arr.length;x++){var ta=arr[x];if(ta>=0){if((ta>ret)||(ret==-1)){ret=ta;}}}return ret;};var _329=function(_32a){var i=_314(_32a);if(-1==i[1]){return "";}var di=i[1]+1;var _32d=_324(i.slice(2));if(di<_32d){return _32a.substring(di,_32d);}else{if(-1==_32d){return _32a.substr(di);}else{return "";}}};var _32e=[{key:"|=",match:function(attr,_330){return "[contains(concat(' ',@"+attr+",' '), ' "+_330+"-')]";}},{key:"~=",match:function(attr,_332){return "[contains(concat(' ',@"+attr+",' '), ' "+_332+" ')]";}},{key:"^=",match:function(attr,_334){return "[starts-with(@"+attr+", '"+_334+"')]";}},{key:"*=",match:function(attr,_336){return "[contains(@"+attr+", '"+_336+"')]";}},{key:"$=",match:function(attr,_338){return "[substring(@"+attr+", string-length(@"+attr+")-"+(_338.length-1)+")='"+_338+"']";}},{key:"!=",match:function(attr,_33a){return "[not(@"+attr+"='"+_33a+"')]";}},{key:"=",match:function(attr,_33c){return "[@"+attr+"='"+_33c+"']";}}];var _33d=function(_33e,_33f,_340,_341){var _342;var i=_314(_33f);if(i[2]>=0){var _344=_33f.indexOf("]",i[2]);var _345=_33f.substring(i[2]+1,_344);while(_345&&_345.length){if(_345.charAt(0)=="@"){_345=_345.slice(1);}_342=null;for(var x=0;x<_33e.length;x++){var ta=_33e[x];var tci=_345.indexOf(ta.key);if(tci>=0){var attr=_345.substring(0,tci);var _34a=_345.substring(tci+ta.key.length);if((_34a.charAt(0)=="\"")||(_34a.charAt(0)=="'")){_34a=_34a.substring(1,_34a.length-1);}_342=ta.match(d.trim(attr),d.trim(_34a));break;}}if((!_342)&&(_345.length)){_342=_340(_345);}if(_342){_341(_342);}_345=null;var _34b=_33f.indexOf("[",_344);if(0<=_34b){_344=_33f.indexOf("]",_34b);if(0<=_344){_345=_33f.substring(_34b+1,_344);}}}}};var _34c=function(_34d){var _34e=".";var _34f=_34d.split(" ");while(_34f.length){var tqp=_34f.shift();var _351;if(tqp==">"){_351="/";tqp=_34f.shift();}else{_351="//";}var _352=_320(tqp);_34e+=_351+_352;var id=_31d(tqp);if(id.length){_34e+="[@id='"+id+"'][1]";}var cn=_329(tqp);if(cn.length){var _355=" ";if(cn.charAt(cn.length-1)=="*"){_355="";cn=cn.substr(0,cn.length-1);}_34e+="[contains(concat(' ',@class,' '), ' "+cn+_355+"')]";}_33d(_32e,tqp,function(_356){return "[@"+_356+"]";},function(_357){_34e+=_357;});}return _34e;};var _358={};var _359=function(path){if(_358[path]){return _358[path];}var doc=d.doc;var _35c=_34c(path);var tf=function(_35e){var ret=[];var _360;try{_360=doc.evaluate(_35c,_35e,null,XPathResult.ANY_TYPE,null);}catch(e){console.debug("failure in exprssion:",_35c,"under:",_35e);console.debug(e);}var _361=_360.iterateNext();while(_361){ret.push(_361);_361=_360.iterateNext();}return ret;};return _358[path]=tf;};var _362={};var _363={};var _364=function(_365,_366){if(!_365){return _366;}if(!_366){return _365;}return function(){return _365.apply(window,arguments)&&_366.apply(window,arguments);};};var _367=function(_368,_369,_36a,idx){var nidx=idx+1;var _36d=(_369.length==nidx);var tqp=_369[idx];if(tqp==">"){var ecn=_368.childNodes;if(!ecn.length){return;}nidx++;_36d=(_369.length==nidx);var tf=_371(_369[idx+1]);for(var x=0,te;x<ecn.length,te=ecn[x];x++){if(tf(te)){if(_36d){_36a.push(te);}else{_367(te,_369,_36a,nidx);}}}}var _374=_375(tqp)(_368);if(_36d){while(_374.length){_36a.push(_374.shift());}}else{while(_374.length){_367(_374.shift(),_369,_36a,nidx);}}};var _376=function(_377,_378){var ret=[];var x=_377.length-1,te;while(te=_377[x--]){_367(te,_378,ret,0);}return ret;};var _371=function(_37c){if(_362[_37c]){return _362[_37c];}var ff=null;var _37e=_320(_37c);if(_37e!="*"){ff=_364(ff,function(elem){return ((elem.nodeType==1)&&(_37e==elem.tagName.toLowerCase()));});}var _380=_31d(_37c);if(_380.length){ff=_364(ff,function(elem){return ((elem.nodeType==1)&&(elem.id==_380));});}if(Math.max.apply(this,_314(_37c).slice(1))>=0){ff=_364(ff,_382(_37c));}return _362[_37c]=ff;};var _383=function(node){var pn=node.parentNode;var pnc=pn.childNodes;var nidx=-1;var _388=pn.firstChild;if(!_388){return nidx;}var ci=node["__cachedIndex"];var cl=pn["__cachedLength"];if(((typeof cl=="number")&&(cl!=pnc.length))||(typeof ci!="number")){pn["__cachedLength"]=pnc.length;var idx=1;do{if(_388===node){nidx=idx;}if(_388.nodeType==1){_388["__cachedIndex"]=idx;idx++;}_388=_388.nextSibling;}while(_388);}else{nidx=ci;}return nidx;};var _38c=0;var _38d=function(elem,attr){var _390="";if(attr=="class"){return elem.className||_390;}if(attr=="for"){return elem.htmlFor||_390;}return elem.getAttribute(attr,2)||_390;};var _391=[{key:"|=",match:function(attr,_393){var _394=" "+_393+"-";return function(elem){var ea=" "+(elem.getAttribute(attr,2)||"");return ((ea==_393)||(ea.indexOf(_394)==0));};}},{key:"^=",match:function(attr,_398){return function(elem){return (_38d(elem,attr).indexOf(_398)==0);};}},{key:"*=",match:function(attr,_39b){return function(elem){return (_38d(elem,attr).indexOf(_39b)>=0);};}},{key:"~=",match:function(attr,_39e){var tval=" "+_39e+" ";return function(elem){var ea=" "+_38d(elem,attr)+" ";return (ea.indexOf(tval)>=0);};}},{key:"$=",match:function(attr,_3a3){var tval=" "+_3a3;return function(elem){var ea=" "+_38d(elem,attr);return (ea.lastIndexOf(_3a3)==(ea.length-_3a3.length));};}},{key:"!=",match:function(attr,_3a8){return function(elem){return (_38d(elem,attr)!=_3a8);};}},{key:"=",match:function(attr,_3ab){return function(elem){return (_38d(elem,attr)==_3ab);};}}];var _3ad=[{key:"first-child",match:function(name,_3af){return function(elem){if(elem.nodeType!=1){return false;}var fc=elem.previousSibling;while(fc&&(fc.nodeType!=1)){fc=fc.previousSibling;}return (!fc);};}},{key:"last-child",match:function(name,_3b3){return function(elem){if(elem.nodeType!=1){return false;}var nc=elem.nextSibling;while(nc&&(nc.nodeType!=1)){nc=nc.nextSibling;}return (!nc);};}},{key:"empty",match:function(name,_3b7){return function(elem){var cn=elem.childNodes;var cnl=elem.childNodes.length;for(var x=cnl-1;x>=0;x--){var nt=cn[x].nodeType;if((nt==1)||(nt==3)){return false;}}return true;};}},{key:"contains",match:function(name,_3be){return function(elem){return (elem.innerHTML.indexOf(_3be)>=0);};}},{key:"not",match:function(name,_3c1){var ntf=_371(_3c1);return function(elem){return (!ntf(elem));};}},{key:"nth-child",match:function(name,_3c5){var pi=parseInt;if(_3c5=="odd"){return function(elem){return (((_383(elem))%2)==1);};}else{if((_3c5=="2n")||(_3c5=="even")){return function(elem){return ((_383(elem)%2)==0);};}else{if(_3c5.indexOf("0n+")==0){var _3c9=pi(_3c5.substr(3));return function(elem){return (elem.parentNode.childNodes[_3c9-1]===elem);};}else{if((_3c5.indexOf("n+")>0)&&(_3c5.length>3)){var _3cb=_3c5.split("n+",2);var pred=pi(_3cb[0]);var idx=pi(_3cb[1]);return function(elem){return ((_383(elem)%pred)==idx);};}else{if(_3c5.indexOf("n")==-1){var _3c9=pi(_3c5);return function(elem){return (_383(elem)==_3c9);};}}}}}}}];var _382=function(_3d0){var _3d1=(_363[_3d0]||_362[_3d0]);if(_3d1){return _3d1;}var ff=null;var i=_314(_3d0);if(i[0]>=0){var tn=_320(_3d0);if(tn!="*"){ff=_364(ff,function(elem){return (elem.tagName.toLowerCase()==tn);});}}var _3d6;var _3d7=_329(_3d0);if(_3d7.length){var _3d8=_3d7.charAt(_3d7.length-1)=="*";if(_3d8){_3d7=_3d7.substr(0,_3d7.length-1);}var re=new RegExp("(?:^|\\s)"+_3d7+(_3d8?".*":"")+"(?:\\s|$)");ff=_364(ff,function(elem){return re.test(elem.className);});}if(i[3]>=0){var _3db=_3d0.substr(i[3]+1);var _3dc="";var obi=_3db.indexOf("(");var cbi=_3db.lastIndexOf(")");if((0<=obi)&&(0<=cbi)&&(cbi>obi)){_3dc=_3db.substring(obi+1,cbi);_3db=_3db.substr(0,obi);}_3d6=null;for(var x=0;x<_3ad.length;x++){var ta=_3ad[x];if(ta.key==_3db){_3d6=ta.match(_3db,_3dc);break;}}if(_3d6){ff=_364(ff,_3d6);}}var _3e1=(d.isIE)?function(cond){var clc=cond.toLowerCase();return function(elem){return elem[cond]||elem[clc];};}:function(cond){return function(elem){return (elem&&elem.getAttribute&&elem.hasAttribute(cond));};};_33d(_391,_3d0,_3e1,function(_3e7){ff=_364(ff,_3e7);});if(!ff){ff=function(){return true;};}return _363[_3d0]=ff;};var _3e8={};var _375=function(_3e9,root){var fHit=_3e8[_3e9];if(fHit){return fHit;}var i=_314(_3e9);var id=_31d(_3e9);if(i[0]==0){return _3e8[_3e9]=function(root){return [d.byId(id)];};}var _3ef=_382(_3e9);var _3f0;if(i[0]>=0){_3f0=function(root){var te=d.byId(id);if(_3ef(te)){return [te];}};}else{var tret;var tn=_320(_3e9);if(Math.max.apply(this,_314(_3e9))==-1){_3f0=function(root){var ret=[];var te,x=0,tret=root.getElementsByTagName(tn);while(te=tret[x++]){ret.push(te);}return ret;};}else{_3f0=function(root){var ret=[];var te,x=0,tret=root.getElementsByTagName(tn);while(te=tret[x++]){if(_3ef(te)){ret.push(te);}}return ret;};}}return _3e8[_3e9]=_3f0;};var _3fd={};var _3fe={">":function(root){var ret=[];var te,x=0,tret=root.childNodes;while(te=tret[x++]){if(te.nodeType==1){ret.push(te);}}return ret;}};var _404=function(_405){if(0>_405.indexOf(" ")){return _375(_405);}var sqf=function(root){var _408=_405.split(" ");var _409;if(_408[0]==">"){_409=[root];}else{_409=_375(_408.shift())(root);}return _376(_409,_408);};return sqf;};var _40a=((document["evaluate"]&&!d.isSafari)?function(_40b){var _40c=_40b.split(" ");if((document["evaluate"])&&(_40b.indexOf(":")==-1)&&((true))){if(((_40c.length>2)&&(_40b.indexOf(">")==-1))||(_40c.length>3)||(_40b.indexOf("[")>=0)||((1==_40c.length)&&(0<=_40b.indexOf(".")))){return _359(_40b);}}return _404(_40b);}:_404);var _40d=function(_40e){if(_3fe[_40e]){return _3fe[_40e];}if(0>_40e.indexOf(",")){return _3fe[_40e]=_40a(_40e);}else{var _40f=_40e.split(/\s*,\s*/);var tf=function(root){var _412=0;var ret=[];var tp;while(tp=_40f[_412++]){ret=ret.concat(_40a(tp,tp.indexOf(" "))(root));}return ret;};return _3fe[_40e]=tf;}};var _415=0;var _zip=function(arr){var ret=new d.NodeList();if(!arr){return ret;}if(arr[0]){ret.push(arr[0]);}if(arr.length<2){return ret;}_415++;arr[0]["_zipIdx"]=_415;for(var x=1,te;te=arr[x];x++){if(arr[x]["_zipIdx"]!=_415){ret.push(te);}te["_zipIdx"]=_415;}return ret;};d.query=function(_41b,root){if(typeof _41b!="string"){return new d.NodeList(_41b);}if(typeof root=="string"){root=d.byId(root);}return _zip(_40d(_41b)(root||d.doc));};d._filterQueryResult=function(_41d,_41e){var tnl=new d.NodeList();var ff=(_41e)?_371(_41e):function(){return true;};for(var x=0,te;te=_41d[x];x++){if(ff(te)){tnl.push(te);}}return tnl;};})();}if(!dojo._hasResource["dojo._base.xhr"]){dojo._hasResource["dojo._base.xhr"]=true;dojo.provide("dojo._base.xhr");(function(){function setValue(obj,name,_425){var val=obj[name];if(dojo.isString(val)){obj[name]=[val,_425];}else{if(dojo.isArray(val)){val.push(_425);}else{obj[name]=_425;}}};dojo.formToObject=function(_427){var ret={};var iq="input[type!=file][type!=submit][type!=image][type!=reset][type!=button], select, textarea";dojo.query(iq,_427).filter(function(node){return (!node.disabled);}).forEach(function(item){var _in=item.name;var type=(item.type||"").toLowerCase();if(type=="radio"||type=="checkbox"){if(item.checked){setValue(ret,_in,item.value);}}else{if(item.multiple){ret[_in]=[];dojo.query("option",item).forEach(function(opt){if(opt.selected){setValue(ret,_in,opt.value);}});}else{setValue(ret,_in,item.value);if(type=="image"){ret[_in+".x"]=ret[_in+".y"]=ret[_in].x=ret[_in].y=0;}}}});return ret;};})();dojo.objectToQuery=function(map){var ec=encodeURIComponent;var ret="";var _432={};for(var x in map){if(map[x]!=_432[x]){if(dojo.isArray(map[x])){for(var y=0;y<map[x].length;y++){ret+=ec(x)+"="+ec(map[x][y])+"&";}}else{ret+=ec(x)+"="+ec(map[x])+"&";}}}if(ret.length&&ret.charAt(ret.length-1)=="&"){ret=ret.substr(0,ret.length-1);}return ret;};dojo.formToQuery=function(_435){return dojo.objectToQuery(dojo.formToObject(_435));};dojo.formToJson=function(_436){return dojo.toJson(dojo.formToObject(_436));};dojo.queryToObject=function(str){var ret={};var qp=str.split("&");var dc=decodeURIComponent;dojo.forEach(qp,function(item){if(item.length){var _43c=item.split("=");var name=dc(_43c.shift());var val=dc(_43c.join("="));if(dojo.isString(ret[name])){ret[name]=[ret[name]];}if(dojo.isArray(ret[name])){ret[name].push(val);}else{ret[name]=val;}}});return ret;};dojo._blockAsync=false;dojo._contentHandlers={"text":function(xhr){return xhr.responseText;},"json":function(xhr){if(!djConfig.usePlainJson){console.debug("consider using a mimetype of text/json-comment-filtered"+" to avoid potential security issues with JSON endpoints"+" (use djConfig.usePlainJson=true to turn off this message)");}return dojo.fromJson(xhr.responseText);},"json-comment-filtered":function(xhr){var _442=xhr.responseText.match(/\/\*(.*)\*\//);if(!_442){throw new Error("your JSON wasn't comment filtered!");}return dojo.fromJson(_442[1]);},"javascript":function(xhr){return dojo.eval(xhr.responseText);},"xml":function(xhr){if(dojo.isIE&&!xhr.responseXML){dojo.forEach(["MSXML2","Microsoft","MSXML","MSXML3"],function(i){try{var doc=new ActiveXObject(prefixes[i]+".XMLDOM");doc.async=false;doc.loadXML(xhr.responseText);return doc;}catch(e){}});}else{return xhr.responseXML;}}};dojo._contentHandlers["json-comment-optional"]=function(xhr){var _448=dojo._contentHandlers;try{return _448["json-comment-filtered"](xhr);}catch(e){return _448["json"](xhr);}};(function(){dojo._ioSetArgs=function(args,_44a,_44b,_44c){var _44d={args:args,url:args.url};var _44e=null;if(args.form){var form=dojo.byId(args.form);var _450=form.getAttributeNode("action");_44d.url=_44d.url||(_450?_450.value:null);_44e=dojo.formToObject(form);}var _451=[{}];if(_44e){_451.push(_44e);}if(args.content){_451.push(args.content);}if(args.preventCache){_451.push({"dojo.preventCache":new Date().valueOf()});}_44d.query=dojo.objectToQuery(dojo.mixin.apply(null,_451));_44d.handleAs=args.handleAs||"text";var d=new dojo.Deferred(_44a);d.addCallbacks(_44b,function(_453){return _44c(_453,d);});var ld=args.load;if(ld&&dojo.isFunction(ld)){d.addCallback(function(_455){return ld.call(args,_455,_44d);});}var err=args.error;if(err&&dojo.isFunction(err)){d.addErrback(function(_457){return err.call(args,_457,_44d);});}var _458=args.handle;if(_458&&dojo.isFunction(_458)){d.addBoth(function(_459){return _458.call(args,_459,_44d);});}d.ioArgs=_44d;return d;};var _45a=function(dfd){dfd.canceled=true;var xhr=dfd.ioArgs.xhr;var _at=(typeof xhr.abort);if((_at=="function")||(_at=="unknown")){xhr.abort();}var err=new Error("xhr cancelled");err.dojoType="cancel";return err;};var _45f=function(dfd){return dojo._contentHandlers[dfd.ioArgs.handleAs](dfd.ioArgs.xhr);};var _461=function(_462,dfd){console.debug(_462);return _462;};var _464=function(args){var dfd=dojo._ioSetArgs(args,_45a,_45f,_461);dfd.ioArgs.xhr=dojo._xhrObj(dfd.ioArgs.args);return dfd;};var _467=null;var _468=[];var _469=function(){var now=(new Date()).getTime();if(!dojo._blockAsync){for(var i=0,tif;(i<_468.length)&&(tif=_468[i]);i++){var dfd=tif.dfd;try{if(!dfd||dfd.canceled||!tif.validCheck(dfd)){_468.splice(i--,1);}else{if(tif.ioCheck(dfd)){_468.splice(i--,1);tif.resHandle(dfd);}else{if(dfd.startTime){if(dfd.startTime+(dfd.ioArgs.args.timeout||0)<now){_468.splice(i--,1);var err=new Error("timeout exceeded");err.dojoType="timeout";dfd.errback(err);dfd.cancel();}}}}}catch(e){console.debug(e);dfd.errback(new Error("_watchInFlightError!"));}}}if(!_468.length){clearInterval(_467);_467=null;return;}};dojo._ioCancelAll=function(){try{dojo.forEach(_468,function(i){i.dfd.cancel();});}catch(e){}};if(dojo.isIE){dojo.addOnUnload(dojo._ioCancelAll);}dojo._ioWatch=function(dfd,_471,_472,_473){if(dfd.ioArgs.args.timeout){dfd.startTime=(new Date()).getTime();}_468.push({dfd:dfd,validCheck:_471,ioCheck:_472,resHandle:_473});if(!_467){_467=setInterval(_469,50);}_469();};var _474="application/x-www-form-urlencoded";var _475=function(dfd){return dfd.ioArgs.xhr.readyState;};var _477=function(dfd){return 4==dfd.ioArgs.xhr.readyState;};var _479=function(dfd){if(dojo._isDocumentOk(dfd.ioArgs.xhr)){dfd.callback(dfd);}else{dfd.errback(new Error("bad http response code:"+dfd.ioArgs.xhr.status));}};var _47b=function(type,dfd){var _47e=dfd.ioArgs;var args=_47e.args;_47e.xhr.open(type,_47e.url,args.sync!==true,args.user||undefined,args.password||undefined);if(args.headers){for(var hdr in args.headers){if(hdr.toLowerCase()==="content-type"&&!args.contentType){args.contentType=args.headers[hdr];}else{_47e.xhr.setRequestHeader(hdr,args.headers[hdr]);}}}_47e.xhr.setRequestHeader("Content-Type",(args.contentType||_474));try{_47e.xhr.send(_47e.query);}catch(e){dfd.cancel();}dojo._ioWatch(dfd,_475,_477,_479);return dfd;};dojo._ioAddQueryToUrl=function(_481){if(_481.query.length){_481.url+=(_481.url.indexOf("?")==-1?"?":"&")+_481.query;_481.query=null;}};dojo.xhrGet=function(args){var dfd=_464(args);dojo._ioAddQueryToUrl(dfd.ioArgs);return _47b("GET",dfd);};dojo.xhrPost=function(args){return _47b("POST",_464(args));};dojo.rawXhrPost=function(args){var dfd=_464(args);dfd.ioArgs.query=args.postData;return _47b("POST",dfd);};dojo.xhrPut=function(args){return _47b("PUT",_464(args));};dojo.rawXhrPut=function(args){var dfd=_464(args);var _48a=dfd.ioArgs;if(args["putData"]){_48a.query=args.putData;args.putData=null;}return _47b("PUT",dfd);};dojo.xhrDelete=function(args){var dfd=_464(args);dojo._ioAddQueryToUrl(dfd.ioArgs);return _47b("DELETE",dfd);};dojo.wrapForm=function(_48d){throw new Error("dojo.wrapForm not yet implemented");};})();}if(!dojo._hasResource["dojo._base.fx"]){dojo._hasResource["dojo._base.fx"]=true;dojo.provide("dojo._base.fx");dojo._Line=function(_48e,end){this.start=_48e;this.end=end;this.getValue=function(n){return ((this.end-this.start)*n)+this.start;};};dojo.declare("dojo._Animation",null,{constructor:function(args){dojo.mixin(this,args);if(dojo.isArray(this.curve)){this.curve=new dojo._Line(this.curve[0],this.curve[1]);}},duration:1000,repeat:0,rate:10,_percent:0,_startRepeatCount:0,fire:function(evt,args){if(this[evt]){this[evt].apply(this,args||[]);}return this;},play:function(_494,_495){if(_495){clearTimeout(this._timer);this._active=this._paused=false;this._percent=0;}else{if(this._active&&!this._paused){return this;}}this.fire("beforeBegin");var d=_494||this.delay;if(d>0){this.delay=0;setTimeout(dojo.hitch(this,function(){this.play(null,_495);}),d);return this;}this._startTime=new Date().valueOf();if(this._paused){this._startTime-=this.duration*this._percent;}this._endTime=this._startTime+this.duration;this._active=true;this._paused=false;var _497=this.curve.getValue(this._percent);if(!this._percent){if(!this._startRepeatCount){this._startRepeatCount=this.repeat;}this.fire("onBegin",[_497]);}this.fire("onPlay",[_497]);this._cycle();return this;},pause:function(){clearTimeout(this._timer);if(!this._active){return this;}this._paused=true;this.fire("onPause",[this.curve.getValue(this._percent)]);return this;},gotoPercent:function(_498,_499){clearTimeout(this._timer);this._active=this._paused=true;this._percent=_498*100;if(_499){this.play();}return this;},stop:function(_49a){if(!this._timer){return;}clearTimeout(this._timer);if(_49a){this._percent=1;}this.fire("onStop",[this.curve.getValue(this._percent)]);this._active=this._paused=false;return this;},status:function(){if(this._active){return this._paused?"paused":"playing";}return "stopped";},_cycle:function(){clearTimeout(this._timer);if(this._active){var curr=new Date().valueOf();var step=(curr-this._startTime)/(this._endTime-this._startTime);if(step>=1){step=1;}this._percent=step;if(this.easing){step=this.easing(step);}this.fire("onAnimate",[this.curve.getValue(step)]);if(step<1){this._timer=setTimeout(dojo.hitch(this,"_cycle"),this.rate);}else{this._active=false;if(this.repeat>0){this.repeat--;this.play(null,true);}else{if(this.repeat==-1){this.play(null,true);}else{if(this._startRepeatCount){this.repeat=this._startRepeatCount;this._startRepeatCount=0;}}}this._percent=0;this.fire("onEnd");}}return this;}});(function(){var _49d=function(node){if(dojo.isIE){var ns=node.style;if(!ns.zoom.length&&dojo.style(node,"zoom")=="normal"){ns.zoom="1";}if(!ns.width.length&&dojo.style(node,"width")=="auto"){ns.width="auto";}}};dojo._fade=function(args){args.node=dojo.byId(args.node);var _4a1=dojo.mixin({properties:{}},args);var _4a2=(_4a1.properties.opacity={});_4a2.start=!("start" in _4a1)?function(){return Number(dojo.style(_4a1.node,"opacity"));}:_4a1.start;_4a2.end=_4a1.end;var anim=dojo.animateProperty(_4a1);dojo.connect(anim,"beforeBegin",null,function(){_49d(_4a1.node);});return anim;};dojo.fadeIn=function(args){return dojo._fade(dojo.mixin({end:1},args));};dojo.fadeOut=function(args){return dojo._fade(dojo.mixin({end:0},args));};dojo._defaultEasing=function(n){return 0.5+((Math.sin((n+1.5)*Math.PI))/2);};var _4a7=function(_4a8){this._properties=_4a8;for(var p in _4a8){var prop=_4a8[p];if(prop.start instanceof dojo.Color){prop.tempColor=new dojo.Color();}}this.getValue=function(r){var ret={};for(var p in this._properties){var prop=this._properties[p];var _4af=prop.start;if(_4af instanceof dojo.Color){ret[p]=dojo.blendColors(_4af,prop.end,r,prop.tempColor).toCss();}else{if(!dojo.isArray(_4af)){ret[p]=((prop.end-_4af)*r)+_4af+(p!="opacity"?prop.units||"px":"");}}}return ret;};};dojo.animateProperty=function(args){args.node=dojo.byId(args.node);if(!args.easing){args.easing=dojo._defaultEasing;}var anim=new dojo._Animation(args);dojo.connect(anim,"beforeBegin",anim,function(){var pm={};for(var p in this.properties){var prop=(pm[p]=dojo.mixin({},this.properties[p]));if(dojo.isFunction(prop.start)){prop.start=prop.start();}if(dojo.isFunction(prop.end)){prop.end=prop.end();}var _4b5=(p.toLowerCase().indexOf("color")>=0);function getStyle(node,p){var v=({height:node.offsetHeight,width:node.offsetWidth})[p];if(v!==undefined){return v;}v=dojo.style(node,p);return (p=="opacity")?Number(v):parseFloat(v);};if(!("end" in prop)){prop.end=getStyle(this.node,p);}else{if(!("start" in prop)){prop.start=getStyle(this.node,p);}}if(_4b5){prop.start=new dojo.Color(prop.start);prop.end=new dojo.Color(prop.end);}else{prop.start=(p=="opacity")?Number(prop.start):parseFloat(prop.start);}}this.curve=new _4a7(pm);});dojo.connect(anim,"onAnimate",anim,function(_4b9){for(var s in _4b9){dojo.style(this.node,s,_4b9[s]);}});return anim;};})();}

if(!dojo._hasResource["dojo.back"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code.
dojo._hasResource["dojo.back"] = true;
dojo.provide("dojo.back");

(function() { 
	
	var back = dojo.back;
	function getHash(){ 
		var h = window.location.hash;
		if(h.charAt(0) == "#") { h = h.substring(1); }
		return dojo.isMozilla ? h : decodeURIComponent(h); 
	}
	
	function setHash(h){
		if(!h) { h = "" };
		window.location.hash = encodeURIComponent(h);
		historyCounter = history.length;
	}
	if(dojo.exists("tests.back-hash")){
		back.getHash = getHash;
		back.setHash = setHash;		
	}
	
	var initialHref = (typeof(window) !== "undefined") ? window.location.href : "";
	var initialHash = (typeof(window) !== "undefined") ? getHash() : "";
	var initialState = null;

	var locationTimer = null;
	var bookmarkAnchor = null;
	var historyIframe = null;
	var forwardStack = [];
	var historyStack = [];
	var moveForward = false;
	var changingUrl = false;
	var historyCounter;

	function handleBackButton(){
		var current = historyStack.pop();
		if(!current){ return; }
		var last = historyStack[historyStack.length-1];
		if(!last && historyStack.length == 0){
			last = initialState;
		}
		if(last){
			if(last.kwArgs["back"]){
				last.kwArgs["back"]();
			}else if(last.kwArgs["backButton"]){
				last.kwArgs["backButton"]();
			}else if(last.kwArgs["handle"]){
				last.kwArgs.handle("back");
			}
		}
		forwardStack.push(current);
	}

	back.goBack = handleBackButton;

	function handleForwardButton(){
		var last = forwardStack.pop();
		if(!last){ return; }
		if(last.kwArgs["forward"]){
			last.kwArgs.forward();
		}else if(last.kwArgs["forwardButton"]){
			last.kwArgs.forwardButton();
		}else if(last.kwArgs["handle"]){
			last.kwArgs.handle("forward");
		}
		historyStack.push(last);
	}

	back.goForward = handleForwardButton;

	function createState(url, args, hash){
		return {"url": url, "kwArgs": args, "urlHash": hash};	//Object
	}

	function getUrlQuery(url){
		var segments = url.split("?");
		if (segments.length < 2){
			return null; //null
		}
		else{
			return segments[1]; //String
		}
	}
	
	function loadIframeHistory(){
		var url = (djConfig["dojoIframeHistoryUrl"] || dojo.moduleUrl("dojo", "resources/iframe_history.html")) + "?" + (new Date()).getTime();
		moveForward = true;
        if (historyIframe) {
		    (dojo.isSafari) ? historyIframe.location = url : window.frames[historyIframe.name].location = url;
        } else {
        }
		return url; //String
	}

	function checkLocation(){
		if(!changingUrl){
			var hsl = historyStack.length;
			
			var hash = getHash();

			if((hash === initialHash||window.location.href == initialHref)&&(hsl == 1)){
				// FIXME: could this ever be a forward button?
				// we can't clear it because we still need to check for forwards. Ugg.
				// clearInterval(this.locationTimer);
				handleBackButton();
				return;
			}
			
			// first check to see if we could have gone forward. We always halt on
			// a no-hash item.
			if(forwardStack.length > 0){
				if(forwardStack[forwardStack.length-1].urlHash === hash){
					handleForwardButton();
					return;
				}
			}
	
			// ok, that didn't work, try someplace back in the history stack
			if((hsl >= 2)&&(historyStack[hsl-2])){
				if(historyStack[hsl-2].urlHash === hash){
					handleBackButton();
					return;
				}
			}
			
			if(dojo.isSafari && dojo.isSafari < 3){
				var hisLen = history.length;
				if(hisLen > historyCounter) handleForwardButton();
				else if(hisLen < historyCounter) handleBackButton();
			  historyCounter = hisLen;
			}
		}
		//console.debug("done checking");
	};
	
	back.init = function(){
		//summary: Initializes the undo stack. This must be called from a <script> 
		//         block that lives inside the <body> tag to prevent bugs on IE.

		// FIXME: should this function prevent re-init?
		var src = djConfig["dojoIframeHistoryUrl"] || dojo.moduleUrl("dojo", "resources/iframe_history.html");
		document.write('<iframe style="border:0;width:1px;height:1px;position:absolute;visibility:hidden;bottom:0;right:0;" name="dj_history" id="dj_history" src="' + src + '"></iframe>');
	};

	back.setInitialState = function(/*Object*/args){
		initialState = createState(initialHref, args, initialHash);
	};
	back.addToHistory = function(/*Object*/ args){
		//summary: adds a state object (args) to the history list. You must set
		//djConfig.preventBackButtonFix = false to use dojo.undo.browser.

		//args: Object
		//		args can have the following properties:
		//		To support getting back button notifications, the object argument should implement a
		//		function called either "back", "backButton", or "handle". The string "back" will be
		//		passed as the first and only argument to this callback.
		//		- To support getting forward button notifications, the object argument should implement a
		//		function called either "forward", "forwardButton", or "handle". The string "forward" will be
		//		passed as the first and only argument to this callback.
		//		- If you want the browser location string to change, define "changeUrl" on the object. If the
		//		value of "changeUrl" is true, then a unique number will be appended to the URL as a fragment
		//		identifier (http://some.domain.com/path#uniquenumber). If it is any other value that does
		//		not evaluate to false, that value will be used as the fragment identifier. For example,
		//		if changeUrl: 'page1', then the URL will look like: http://some.domain.com/path#page1
	 	//		Full example:
		//			dojo.undo.browser.addToHistory({
		//				back: function() { alert('back pressed'); },
		//				forward: function() { alert('forward pressed'); },
		//				changeUrl: true
		//			});
		//
		//	BROWSER NOTES:
		//  Safari 1.2: 
		//	back button "works" fine, however it's not possible to actually
		//	DETECT that you've moved backwards by inspecting window.location.
		//	Unless there is some other means of locating.
		//	FIXME: perhaps we can poll on history.length?
		//	Safari 2.0.3+ (and probably 1.3.2+):
		//	works fine, except when changeUrl is used. When changeUrl is used,
		//	Safari jumps all the way back to whatever page was shown before
		//	the page that uses dojo.undo.browser support.
		//	IE 5.5 SP2:
		//	back button behavior is macro. It does not move back to the
		//	previous hash value, but to the last full page load. This suggests
		//	that the iframe is the correct way to capture the back button in
		//	these cases.
		//	Don't test this page using local disk for MSIE. MSIE will not create 
		//	a history list for iframe_history.html if served from a file: URL. 
		//	The XML served back from the XHR tests will also not be properly 
		//	created if served from local disk. Serve the test pages from a web 
		//	server to test in that browser.
		//	IE 6.0:
		//	same behavior as IE 5.5 SP2
		//	Firefox 1.0+:
		//	the back button will return us to the previous hash on the same
		//	page, thereby not requiring an iframe hack, although we do then
		//	need to run a timer to detect inter-page movement.

		//If addToHistory is called, then that means we prune the
		//forward stack -- the user went back, then wanted to
		//start a new forward path.
		forwardStack = []; 

		var hash = null;
		var url = null;
		if(!historyIframe){
			if(djConfig["useXDomain"] && !djConfig["dojoIframeHistoryUrl"]){
				console.debug("dojo.back: When using cross-domain Dojo builds,"
					+ " please save iframe_history.html to your domain and set djConfig.dojoIframeHistoryUrl"
					+ " to the path on your domain to iframe_history.html");
			}
			historyIframe = window.frames["dj_history"];
		}
		if(!bookmarkAnchor){
			bookmarkAnchor = document.createElement("a");
			dojo.body().appendChild(bookmarkAnchor);
			bookmarkAnchor.style.display = "none";
		}
		if(args["changeUrl"]){
			hash = ""+ ((args["changeUrl"]!==true) ? args["changeUrl"] : (new Date()).getTime());
			
			//If the current hash matches the new one, just replace the history object with
			//this new one. It doesn't make sense to track different state objects for the same
			//logical URL. This matches the browser behavior of only putting in one history
			//item no matter how many times you click on the same #hash link, at least in Firefox
			//and Safari, and there is no reliable way in those browsers to know if a #hash link
			//has been clicked on multiple times. So making this the standard behavior in all browsers
			//so that dojo.back's behavior is the same in all browsers.
			if(historyStack.length == 0 && initialState.urlHash == hash){
				initialState = createState(url, args, hash);
				return;
			}else if(historyStack.length > 0 && historyStack[historyStack.length - 1].urlHash == hash){
				historyStack[historyStack.length - 1] = createState(url, args, hash);
				return;
			}

			changingUrl = true;
			setTimeout(function() { 
					setHash(hash); 
					changingUrl = false; 					
				}, 1);
			bookmarkAnchor.href = hash;
			
			if(dojo.isIE){
				url = loadIframeHistory();

				var oldCB = args["back"]||args["backButton"]||args["handle"];

				//The function takes handleName as a parameter, in case the
				//callback we are overriding was "handle". In that case,
				//we will need to pass the handle name to handle.
				var tcb = function(handleName){
					if(getHash() != ""){
						setTimeout(function() { setHash(hash); }, 1);
					}
					//Use apply to set "this" to args, and to try to avoid memory leaks.
					oldCB.apply(this, [handleName]);
				};
		
				//Set interceptor function in the right place.
				if(args["back"]){
					args.back = tcb;
				}else if(args["backButton"]){
					args.backButton = tcb;
				}else if(args["handle"]){
					args.handle = tcb;
				}
		
				var oldFW = args["forward"]||args["forwardButton"]||args["handle"];
		
				//The function takes handleName as a parameter, in case the
				//callback we are overriding was "handle". In that case,
				//we will need to pass the handle name to handle.
				var tfw = function(handleName){
					if(getHash() != ""){
						setHash(hash);
					}
					if(oldFW){ // we might not actually have one
						//Use apply to set "this" to args, and to try to avoid memory leaks.
						oldFW.apply(this, [handleName]);
					}
				};

				//Set interceptor function in the right place.
				if(args["forward"]){
					args.forward = tfw;
				}else if(args["forwardButton"]){
					args.forwardButton = tfw;
				}else if(args["handle"]){
					args.handle = tfw;
				}

			}else if(!dojo.isIE){
				// start the timer
				if(!locationTimer){
					locationTimer = setInterval(checkLocation, 200);
				}
				
			}
		}else{
			url = loadIframeHistory();
		}

		historyStack.push(createState(url, args, hash));
	};


	back.iframeLoaded = function(evt, ifrLoc){
		//summary: private method. Do not call this directly.
		var query = getUrlQuery(ifrLoc.href);
		if(query == null){ 
			// alert("iframeLoaded");
			// we hit the end of the history, so we should go back
			if(historyStack.length == 1){
				handleBackButton();
			}
			return;
		}
		if(moveForward){
			// we were expecting it, so it's not either a forward or backward movement
			moveForward = false;
			return;
		}
	
		//Check the back stack first, since it is more likely.
		//Note that only one step back or forward is supported.
		if(historyStack.length >= 2 && query == getUrlQuery(historyStack[historyStack.length-2].url)){
			handleBackButton();
		}
		else if(forwardStack.length > 0 && query == getUrlQuery(forwardStack[forwardStack.length-1].url)){
			handleForwardButton();
		}
	};
 })();

}

