diff --git a/activemq-camel/pom.xml b/activemq-camel/pom.xml index 95c41d6c3e..9386298e63 100755 --- a/activemq-camel/pom.xml +++ b/activemq-camel/pom.xml @@ -66,6 +66,12 @@ org.apache.camel camel-jms + + org.apache.camel + camel-web + classes + ${camel-version} + ${pom.groupId} activemq-core diff --git a/activemq-camel/src/main/java/org/apache/camel/web/resources/RoutesResource.java b/activemq-camel/src/main/java/org/apache/camel/web/resources/RoutesResource.java new file mode 100644 index 0000000000..fdd37c7eba --- /dev/null +++ b/activemq-camel/src/main/java/org/apache/camel/web/resources/RoutesResource.java @@ -0,0 +1,110 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.camel.web.resources; + +import java.io.IOException; +import java.util.List; + +import javax.ws.rs.GET; +import javax.ws.rs.Path; +import javax.ws.rs.PathParam; +import javax.ws.rs.Produces; +import javax.ws.rs.core.MediaType; + +import org.apache.camel.CamelContext; +import org.apache.camel.model.RouteDefinition; +import org.apache.camel.model.RoutesDefinition; +import org.apache.camel.view.RouteDotGenerator; + +/** + * The active routes in Camel which are used to implement one or more Enterprise Integration Paterns + * + * @version $Revision: 795901 $ + */ +public class RoutesResource extends CamelChildResourceSupport { + + public RoutesResource(CamelContextResource contextResource) { + super(contextResource); + } + + /** + * Returns the routes currently active within this context + */ + @GET + @Produces({MediaType.TEXT_XML, MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON}) + public RoutesDefinition getRouteDefinitions() { + RoutesDefinition answer = new RoutesDefinition(); + CamelContext camelContext = getCamelContext(); + if (camelContext != null) { + List list = camelContext.getRouteDefinitions(); + answer.setRoutes(list); + } + return answer; + } + + /** + * Returns the Graphviz DOT Visualisation of + * the current Camel routes + */ + @GET + @Produces(Constants.DOT_MIMETYPE) + public String getDot() throws IOException { + RouteDotGenerator generator = new RouteDotGenerator("/tmp/camel"); + return generator.getRoutesText(getCamelContext()); + } + + /** + * Looks up an individual route + */ + @Path("{id}") + public RouteResource getRoute(@PathParam("id") String id) { + List list = getRoutes(); + for (RouteDefinition routeType : list) { + if (routeType.getId().equals(id)) { + return new RouteResource(this, routeType); + } + } + return null; + } + + /** + * Looks up an individual route with specified language + */ + @Path("{id}/{language}") + public RouteResource getRoute(@PathParam("id") String id, @PathParam("language") String language) { + RouteResource routeResource = getRoute(id); + if (routeResource != null) { + routeResource.setLanguage(language); + } + return routeResource; + } + + @Path("{id}/status") + public RouteStatusResource getRouteStatus(@PathParam("id") String id) { + RouteResource routeResource = getRoute(id); + return routeResource.getRouteStatus(); + } + + // Properties + // ------------------------------------------------------------------------- + public List getRoutes() { + return getRouteDefinitions().getRoutes(); + } +} diff --git a/assembly/src/main/descriptors/common-bin.xml b/assembly/src/main/descriptors/common-bin.xml index d4346dca0f..1d52638c5d 100644 --- a/assembly/src/main/descriptors/common-bin.xml +++ b/assembly/src/main/descriptors/common-bin.xml @@ -79,7 +79,15 @@ **/*.class - + + + ../activemq-camel/target/classes + /webapps/camel/WEB-INF/classes + + org/apache/camel/web/resources/RoutesResource.class + + + @@ -99,7 +107,8 @@ **/applicationContext.xml - + + **/RoutesResource.class **/act*.jar **/ant*.jar diff --git a/assembly/src/release/webapps/camel/js/dojo/dojo.js b/assembly/src/release/webapps/camel/js/dojo/dojo.js new file mode 100644 index 0000000000..dff19dde32 --- /dev/null +++ b/assembly/src/release/webapps/camel/js/dojo/dojo.js @@ -0,0 +1,16 @@ +/* + Copyright (c) 2004-2009, The Dojo Foundation All Rights Reserved. + Available via Academic Free License >= 2.1 OR the modified BSD license. + see: http://dojotoolkit.org/license for details +*/ + +/* + 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. +*/ + +(function(){var _1=null;if((_1||(typeof djConfig!="undefined"&&djConfig.scopeMap))&&(typeof window!="undefined")){var _2="",_3="",_4="",_5={},_6={};_1=_1||djConfig.scopeMap;for(var i=0;i<_1.length;i++){var _8=_1[i];_2+="var "+_8[0]+" = {}; "+_8[1]+" = "+_8[0]+";"+_8[1]+"._scopeName = '"+_8[1]+"';";_3+=(i==0?"":",")+_8[0];_4+=(i==0?"":",")+_8[1];_5[_8[0]]=_8[1];_6[_8[1]]=_8[0];}eval(_2+"dojo._scopeArgs = ["+_4+"];");dojo._scopePrefixArgs=_3;dojo._scopePrefix="(function("+_3+"){";dojo._scopeSuffix="})("+_4+")";dojo._scopeMap=_5;dojo._scopeMapRev=_6;}(function(){if(typeof this["loadFirebugConsole"]=="function"){this["loadFirebugConsole"]();}else{this.console=this.console||{};var cn=["assert","count","debug","dir","dirxml","error","group","groupEnd","info","profile","profileEnd","time","timeEnd","trace","warn","log"];var i=0,tn;while((tn=cn[i++])){if(!console[tn]){(function(){var _c=tn+"";console[_c]=("log" in console)?function(){var a=Array.apply({},arguments);a.unshift(_c+":");console["log"](a.join(" "));}:function(){};})();}}}if(typeof dojo=="undefined"){this.dojo={_scopeName:"dojo",_scopePrefix:"",_scopePrefixArgs:"",_scopeSuffix:"",_scopeMap:{},_scopeMapRev:{}};}var d=dojo;if(typeof dijit=="undefined"){this.dijit={_scopeName:"dijit"};}if(typeof dojox=="undefined"){this.dojox={_scopeName:"dojox"};}if(!d._scopeArgs){d._scopeArgs=[dojo,dijit,dojox];}d.global=this;d.config={isDebug:false,debugAtAllCosts:false};if(typeof djConfig!="undefined"){for(var _f in djConfig){d.config[_f]=djConfig[_f];}}dojo.locale=d.config.locale;var rev="$Rev: 16827 $".match(/\d+/);dojo.version={major:1,minor:3,patch:0,flag:"b2",revision:rev?+rev[0]:NaN,toString:function(){with(d.version){return major+"."+minor+"."+patch+flag+" ("+revision+")";}}};if(typeof OpenAjax!="undefined"){OpenAjax.hub.registerLibrary(dojo._scopeName,"http://dojotoolkit.org",d.version.toString());}var _11={};dojo._mixin=function(obj,_13){for(var x in _13){if(_11[x]===undefined||_11[x]!=_13[x]){obj[x]=_13[x];}}if(d.isIE&&_13){var p=_13.toString;if(typeof p=="function"&&p!=obj.toString&&p!=_11.toString&&p!="\nfunction toString() {\n [native code]\n}\n"){obj.toString=_13.toString;}}return obj;};dojo.mixin=function(obj,_17){if(!obj){obj={};}for(var i=1,l=arguments.length;i0){console.warn("files still in flight!");return;}d._callLoaded();};dojo._callLoaded=function(){if(typeof setTimeout=="object"||(dojo.config.useXDomain&&d.isOpera)){if(dojo.isAIR){setTimeout(function(){dojo.loaded();},0);}else{setTimeout(dojo._scopeName+".loaded();",0);}}else{d.loaded();}};dojo._getModuleSymbols=function(_47){var _48=_47.split(".");for(var i=_48.length;i>0;i--){var _4a=_48.slice(0,i).join(".");if((i==1)&&!this._moduleHasPrefix(_4a)){_48[0]="../"+_48[0];}else{var _4b=this._getModulePrefix(_4a);if(_4b!=_4a){_48.splice(0,i,_4b);break;}}}return _48;};dojo._global_omit_module_check=false;dojo.loadInit=function(_4c){_4c();};dojo._loadModule=dojo.require=function(_4d,_4e){_4e=this._global_omit_module_check||_4e;var _4f=this._loadedModules[_4d];if(_4f){return _4f;}var _50=this._getModuleSymbols(_4d).join("/")+".js";var _51=(!_4e)?_4d:null;var ok=this._loadPath(_50,_51);if(!ok&&!_4e){throw new Error("Could not load '"+_4d+"'; last tried '"+_50+"'");}if(!_4e&&!this._isXDomain){_4f=this._loadedModules[_4d];if(!_4f){throw new Error("symbol '"+_4d+"' is not defined after loading '"+_50+"'");}}return _4f;};dojo.provide=function(_53){_53=_53+"";return (d._loadedModules[_53]=d.getObject(_53,true));};dojo.platformRequire=function(_54){var _55=_54.common||[];var _56=_55.concat(_54[d._name]||_54["default"]||[]);for(var x=0;x<_56.length;x++){var _58=_56[x];if(_58.constructor==Array){d._loadModule.apply(d,_58);}else{d._loadModule(_58);}}};dojo.requireIf=function(_59,_5a){if(_59===true){var _5b=[];for(var i=1;i0&&!(j==1&&_6c[0]=="")&&_6c[j]==".."&&_6c[j-1]!=".."){if(j==(_6c.length-1)){_6c.splice(j,1);_6c[j-1]="";}else{_6c.splice(j-1,2);j-=2;}}}}_69.path=_6c.join("/");}}}}uri=[];if(_69.scheme){uri.push(_69.scheme,":");}if(_69.authority){uri.push("//",_69.authority);}uri.push(_69.path);if(_69.query){uri.push("?",_69.query);}if(_69.fragment){uri.push("#",_69.fragment);}}this.uri=uri.join("");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[6]||r[7];this.port=r[9]||n;}};dojo._Url.prototype.toString=function(){return this.uri;};dojo.moduleUrl=function(_6f,url){var loc=d._getModuleSymbols(_6f).join("/");if(!loc){return null;}if(loc.lastIndexOf("/")!=loc.length-1){loc+="/";}var _72=loc.indexOf(":");if(loc.charAt(0)!="/"&&(_72==-1||_72>loc.indexOf("/"))){loc=d.baseUrl+loc;}return new d._Url(loc,url);};})();if(typeof window!="undefined"){dojo.isBrowser=true;dojo._name="browser";(function(){var d=dojo;if(document&&document.getElementsByTagName){var _74=document.getElementsByTagName("script");var _75=/dojo(\.xd)?\.js(\W|$)/i;for(var i=0;i<_74.length;i++){var src=_74[i].getAttribute("src");if(!src){continue;}var m=src.match(_75);if(m){if(!d.config.baseUrl){d.config.baseUrl=src.substring(0,m.index);}var cfg=_74[i].getAttribute("djConfig");if(cfg){var _7a=eval("({ "+cfg+" })");for(var x in _7a){dojo.config[x]=_7a[x];}}break;}}}d.baseUrl=d.config.baseUrl;var n=navigator;var dua=n.userAgent,dav=n.appVersion,tv=parseFloat(dav);if(dua.indexOf("Opera")>=0){d.isOpera=tv;}if(dua.indexOf("AdobeAIR")>=0){d.isAIR=1;}d.isKhtml=(dav.indexOf("Konqueror")>=0)?tv:0;d.isWebKit=parseFloat(dua.split("WebKit/")[1])||undefined;d.isChrome=parseFloat(dua.split("Chrome/")[1])||undefined;var _80=Math.max(dav.indexOf("WebKit"),dav.indexOf("Safari"),0);if(_80&&!dojo.isChrome){d.isSafari=parseFloat(dav.split("Version/")[1]);if(!d.isSafari||parseFloat(dav.substr(_80+7))<=419.3){d.isSafari=2;}}if(dua.indexOf("Gecko")>=0&&!d.isKhtml&&!d.isWebKit){d.isMozilla=d.isMoz=tv;}if(d.isMoz){d.isFF=parseFloat(dua.split("Firefox/")[1])||undefined;}if(document.all&&!d.isOpera){d.isIE=parseFloat(dav.split("MSIE ")[1])||undefined;if(d.isIE>=8&&document.documentMode!=5){d.isIE=document.documentMode;}}if(dojo.isIE&&window.location.protocol==="file:"){dojo.config.ieForceActiveXXhr=true;}var cm=document.compatMode;d.isQuirks=cm=="BackCompat"||cm=="QuirksMode"||d.isIE<6;d.locale=dojo.config.locale||(d.isIE?n.userLanguage:n.language).toLowerCase();d._XMLHTTP_PROGIDS=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"];d._xhrObj=function(){var _82,_83;if(!dojo.isIE||!dojo.config.ieForceActiveXXhr){try{_82=new XMLHttpRequest();}catch(e){}}if(!_82){for(var i=0;i<3;++i){var _85=d._XMLHTTP_PROGIDS[i];try{_82=new ActiveXObject(_85);}catch(e){_83=e;}if(_82){d._XMLHTTP_PROGIDS=[_85];break;}}}if(!_82){throw new Error("XMLHTTP not available: "+_83);}return _82;};d._isDocumentOk=function(_86){var _87=_86.status||0;return (_87>=200&&_87<300)||_87==304||_87==1223||(!_87&&(location.protocol=="file:"||location.protocol=="chrome:"));};var _88=window.location+"";var _89=document.getElementsByTagName("base");var _8a=(_89&&_89.length>0);d._getText=function(uri,_8c){var _8d=this._xhrObj();if(!_8a&&dojo._Url){uri=(new dojo._Url(_88,uri)).toString();}if(d.config.cacheBust){uri+="";uri+=(uri.indexOf("?")==-1?"?":"&")+String(d.config.cacheBust).replace(/\W+/g,"");}_8d.open("GET",uri,false);try{_8d.send(null);if(!d._isDocumentOk(_8d)){var err=Error("Unable to load "+uri+" status:"+_8d.status);err.status=_8d.status;err.responseText=_8d.responseText;throw err;}}catch(e){if(_8c){return null;}throw e;}return _8d.responseText;};var _w=window;var _90=function(_91,fp){var _93=_w[_91]||function(){};_w[_91]=function(){fp.apply(_w,arguments);_93.apply(_w,arguments);};};d._windowUnloaders=[];d.windowUnloaded=function(){var mll=d._windowUnloaders;while(mll.length){(mll.pop())();}};var _95=0;d.addOnWindowUnload=function(obj,_97){d._onto(d._windowUnloaders,obj,_97);if(!_95){_95=1;_90("onunload",d.windowUnloaded);}};var _98=0;d.addOnUnload=function(obj,_9a){d._onto(d._unloaders,obj,_9a);if(!_98){_98=1;_90("onbeforeunload",dojo.unloaded);}};})();dojo._initFired=false;dojo._loadInit=function(e){dojo._initFired=true;var _9c=(e&&e.type)?e.type.toLowerCase():"load";if(arguments.callee.initialized||(_9c!="domcontentloaded"&&_9c!="load")){return;}arguments.callee.initialized=true;if("_khtmlTimer" in dojo){clearInterval(dojo._khtmlTimer);delete dojo._khtmlTimer;}if(dojo._inFlightCount==0){dojo._modulesLoaded();}};dojo._fakeLoadInit=function(){dojo._loadInit({type:"load"});};if(!dojo.config.afterOnLoad){if(document.addEventListener){if(dojo.isWebKit>525||dojo.isOpera||dojo.isFF>=3||(dojo.isMoz&&dojo.config.enableMozDomContentLoaded===true)){document.addEventListener("DOMContentLoaded",dojo._loadInit,null);}window.addEventListener("load",dojo._loadInit,null);}if(dojo.isAIR){window.addEventListener("load",dojo._loadInit,null);}else{if((dojo.isWebKit<525)||dojo.isKhtml){dojo._khtmlTimer=setInterval(function(){if(/loaded|complete/.test(document.readyState)){dojo._loadInit();}},10);}}}if(dojo.isIE){if(!dojo.config.afterOnLoad){document.write(""+"");}try{document.namespaces.add("v","urn:schemas-microsoft-com:vml");document.createStyleSheet().addRule("v\\:*","behavior:url(#default#VML); display:inline-block");}catch(e){}}}(function(){var mp=dojo.config["modulePaths"];if(mp){for(var _9e in mp){dojo.registerModulePath(_9e,mp[_9e]);}}})();if(dojo.config.isDebug){dojo.require("dojo._firebug.firebug");}if(dojo.config.debugAtAllCosts){dojo.config.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 !!arguments.length&&it!=null&&(typeof it=="string"||it instanceof String);};dojo.isArray=function(it){return it&&(it instanceof Array||typeof it=="array");};dojo.isFunction=(function(){var _a1=function(it){return it&&(typeof it=="function"||it instanceof Function);};return dojo.isSafari?function(it){if(typeof it=="function"&&it=="[object NodeList]"){return false;}return _a1(it);}:_a1;})();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.extend=function(_a8,_a9){for(var i=1,l=arguments.length;i2){return dojo._hitchArgs.apply(dojo,arguments);}if(!_b3){_b3=_b2;_b2=null;}if(dojo.isString(_b3)){_b2=_b2||dojo.global;if(!_b2[_b3]){throw (["dojo.hitch: scope[\"",_b3,"\"] is null (scope=\"",_b2,"\")"].join(""));}return function(){return _b2[_b3].apply(_b2,arguments||[]);};}return !_b2?_b3:function(){return _b3.apply(_b2,arguments||[]);};};dojo.delegate=dojo._delegate=(function(){function TMP(){};return function(obj,_b6){TMP.prototype=obj;var tmp=new TMP();if(_b6){dojo._mixin(tmp,_b6);}return tmp;};})();(function(){var _b8=function(obj,_ba,_bb){return (_bb||[]).concat(Array.prototype.slice.call(obj,_ba||0));};var _bc=function(obj,_be,_bf){var arr=_bf||[];for(var x=_be||0;x=0){this._fire();}return this;},_fire:function(){var _138=this.chain;var _139=this.fired;var res=this.results[_139];var self=this;var cb=null;while((_138.length>0)&&(this.paused==0)){var f=_138.shift()[_139];if(!f){continue;}var func=function(){var ret=f(res);if(typeof ret!="undefined"){res=ret;}_139=((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++;}};if(dojo.config.debugAtAllCosts){func.call(this);}else{try{func.call(this);}catch(err){_139=1;res=err;}}}this.fired=_139;this.results[_139]=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){return eval("("+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,_144,_145){if(it===undefined){return "undefined";}var _146=typeof it;if(_146=="number"||_146=="boolean"){return it+"";}if(it===null){return "null";}if(dojo.isString(it)){return dojo._escapeString(it);}var _147=arguments.callee;var _148;_145=_145||"";var _149=_144?_145+dojo.toJsonIndentStr:"";var tf=it.__json__||it.json;if(dojo.isFunction(tf)){_148=tf.call(it);if(it!==_148){return _147(_148,_144,_149);}}if(it.nodeType&&it.cloneNode){throw new Error("Can't serialize DOM nodes");}var sep=_144?" ":"";var _14c=_144?"\n":"";if(dojo.isArray(it)){var res=dojo.map(it,function(obj){var val=_147(obj,_144,_149);if(typeof val!="string"){val="undefined";}return _14c+_149+val;});return "["+res.join(","+sep)+_14c+_145+"]";}if(_146=="function"){return null;}var _150=[],key;for(key in it){var _152,val;if(typeof key=="number"){_152="\""+key+"\"";}else{if(typeof key=="string"){_152=dojo._escapeString(key);}else{continue;}}val=_147(it[key],_144,_149);if(typeof val!="string"){continue;}_150.push(_14c+_149+_152+":"+sep+val);}return "{"+_150.join(","+sep)+_14c+_145+"}";};}if(!dojo._hasResource["dojo._base.array"]){dojo._hasResource["dojo._base.array"]=true;dojo.provide("dojo._base.array");(function(){var _154=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(_158,_159,_15a,_15b){var step=1,end=_158.length||0,i=0;if(_15b){i=end-1;step=end=-1;}if(_15a!=undefined){i=_15a;}if((_15b&&i>end)||i>=bits;t[x]=bits==4?17*c:c;});t.a=1;return t;};dojo.colorFromArray=function(a,obj){var t=obj||new d.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=d.Color.named[str];return a&&d.colorFromArray(a,obj)||d.colorFromRgb(str,obj)||d.colorFromHex(str,obj);};})();}if(!dojo._hasResource["dojo._base"]){dojo._hasResource["dojo._base"]=true;dojo.provide("dojo._base");}if(!dojo._hasResource["dojo._base.window"]){dojo._hasResource["dojo._base.window"]=true;dojo.provide("dojo._base.window");dojo.doc=window["document"]||null;dojo.body=function(){return dojo.doc.body||dojo.doc.getElementsByTagName("body")[0];};dojo.setContext=function(_1a9,_1aa){dojo.global=_1a9;dojo.doc=_1aa;};dojo.withGlobal=function(_1ab,_1ac,_1ad,_1ae){var _1af=dojo.global;try{dojo.global=_1ab;return dojo.withDoc.call(null,_1ab.document,_1ac,_1ad,_1ae);}finally{dojo.global=_1af;}};dojo.withDoc=function(_1b0,_1b1,_1b2,_1b3){var _1b4=dojo.doc,_1b5=dojo._bodyLtr;try{dojo.doc=_1b0;delete dojo._bodyLtr;if(_1b2&&dojo.isString(_1b1)){_1b1=_1b2[_1b1];}return _1b1.apply(_1b2,_1b3||[]);}finally{dojo.doc=_1b4;if(_1b5!==undefined){dojo._bodyLtr=_1b5;}}};}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 _1ba=name;if(!dojo.isIE&&(name=="mouseenter"||name=="mouseleave")){var ofp=fp;name=(name=="mouseenter")?"mouseover":"mouseout";fp=function(e){if(dojo.isFF<=2){try{e.relatedTarget.tagName;}catch(e2){return;}}if(!dojo.isDescendant(e.relatedTarget,node)){return ofp.call(this,e);}};}node.addEventListener(name,fp,false);return fp;},remove:function(node,_1be,_1bf){if(node){_1be=del._normalizeEventName(_1be);if(!dojo.isIE&&(_1be=="mouseenter"||_1be=="mouseleave")){_1be=(_1be=="mouseenter")?"mouseover":"mouseout";}node.removeEventListener(_1be,_1bf,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,_1c5){switch(evt.type){case "keypress":del._setKeyChar(evt);break;}return evt;},_setKeyChar:function(evt){evt.keyChar=evt.charCode?String.fromCharCode(evt.charCode):"";evt.charOrCode=evt.keyChar||evt.keyCode;},_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}});dojo.fixEvent=function(evt,_1c8){return del._fixEvent(evt,_1c8);};dojo.stopEvent=function(evt){evt.preventDefault();evt.stopPropagation();};var _1ca=dojo._listener;dojo._connect=function(obj,_1cc,_1cd,_1ce,_1cf){var _1d0=obj&&(obj.nodeType||obj.attachEvent||obj.addEventListener);var lid=_1d0?(_1cf?2:1):0,l=[dojo._listener,del,_1ca][lid];var h=l.add(obj,_1cc,dojo.hitch(_1cd,_1ce));return [obj,_1cc,h,lid];};dojo._disconnect=function(obj,_1d5,_1d6,_1d7){([dojo._listener,del,_1ca][_1d7]).remove(obj,_1d5,_1d6);};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){var _1d8=function(e,code){try{return (e.keyCode=code);}catch(e){return 0;}};var iel=dojo._listener;var _1dc=(dojo._ieListenersName="_"+dojo._scopeName+"_listeners");if(!dojo.config._allow_leaks){_1ca=iel=dojo._ie_listener={handlers:[],add:function(_1dd,_1de,_1df){_1dd=_1dd||dojo.global;var f=_1dd[_1de];if(!f||!f[_1dc]){var d=dojo._getIeDispatcher();d.target=f&&(ieh.push(f)-1);d[_1dc]=[];f=_1dd[_1de]=d;}return f[_1dc].push(ieh.push(_1df)-1);},remove:function(_1e3,_1e4,_1e5){var f=(_1e3||dojo.global)[_1e4],l=f&&f[_1dc];if(f&&l&&_1e5--){delete ieh[l[_1e5]];delete l[_1e5];}}};var ieh=iel.handlers;}dojo.mixin(del,{add:function(node,_1e9,fp){if(!node){return;}_1e9=del._normalizeEventName(_1e9);if(_1e9=="onkeypress"){var kd=node.onkeydown;if(!kd||!kd[_1dc]||!kd._stealthKeydownHandle){var h=del.add(node,"onkeydown",del._stealthKeyDown);kd=node.onkeydown;kd._stealthKeydownHandle=h;kd._stealthKeydownRefs=1;}else{kd._stealthKeydownRefs++;}}return iel.add(node,_1e9,del._fixCallback(fp));},remove:function(node,_1ee,_1ef){_1ee=del._normalizeEventName(_1ee);iel.remove(node,_1ee,_1ef);if(_1ee=="onkeypress"){var kd=node.onkeydown;if(--kd._stealthKeydownRefs<=0){iel.remove(node,"onkeydown",kd._stealthKeydownHandle);delete kd._stealthKeydownHandle;}}},_normalizeEventName:function(_1f1){return _1f1.slice(0,2)!="on"?"on"+_1f1:_1f1;},_nop:function(){},_fixEvent:function(evt,_1f3){if(!evt){var w=_1f3&&(_1f3.ownerDocument||_1f3.document||_1f3).parentWindow||window;evt=w.event;}if(!evt){return (evt);}evt.target=evt.srcElement;evt.currentTarget=(_1f3||evt.srcElement);evt.layerX=evt.offsetX;evt.layerY=evt.offsetY;var se=evt.srcElement,doc=(se&&se.ownerDocument)||document;var _1f7=((dojo.isIE<6)||(doc["compatMode"]=="BackCompat"))?doc.body:doc.documentElement;var _1f8=dojo._getIeDocumentElementOffset();evt.pageX=evt.clientX+dojo._fixIeBiDiScrollLeft(_1f7.scrollLeft||0)-_1f8.x;evt.pageY=evt.clientY+(_1f7.scrollTop||0)-_1f8.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;},_stealthKeyDown:function(evt){var kp=evt.currentTarget.onkeypress;if(!kp||!kp[_1dc]){return;}var k=evt.keyCode;var _1fe=k!=13&&k!=32&&k!=27&&(k<48||k>90)&&(k<96||k>111)&&(k<186||k>192)&&(k<219||k>222);if(_1fe||evt.ctrlKey){var c=_1fe?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;_1d8(evt,faux.keyCode);}},_stopPropagation:function(){this.cancelBubble=true;},_preventDefault:function(){this.bubbledKeyCode=this.keyCode;if(this.ctrlKey){_1d8(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,_203){var faux=dojo.mixin({},evt,_203);del._setKeyChar(faux);faux.preventDefault=function(){evt.preventDefault();};faux.stopPropagation=function(){evt.stopPropagation();};return faux;};if(dojo.isOpera){dojo.mixin(del,{_fixEvent:function(evt,_206){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.isWebKit){del._add=del.add;del._remove=del.remove;dojo.mixin(del,{add:function(node,_209,fp){if(!node){return;}var _20b=del._add(node,_209,fp);if(del._normalizeEventName(_209)=="keypress"){_20b._stealthKeyDownHandle=del._add(node,"keydown",function(evt){var k=evt.keyCode;var _20e=k!=13&&k!=32&&k!=27&&(k<48||k>90)&&(k<96||k>111)&&(k<186||k>192)&&(k<219||k>222);if(_20e||evt.ctrlKey){var c=_20e?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});fp.call(evt.currentTarget,faux);}});}return _20b;},remove:function(node,_212,_213){if(node){if(_213._stealthKeyDownHandle){del._remove(node,"keydown",_213._stealthKeyDownHandle);}del._remove(node,_212,_213);}},_fixEvent:function(evt,_215){switch(evt.type){case "keypress":if(evt.faux){return evt;}var c=evt.charCode;c=c>=32?c:0;return del._synthesizeEvent(evt,{charCode:c,faux:true});}return evt;}});}})();if(dojo.isIE){dojo._ieDispatcher=function(args,_218){var ap=Array.prototype,h=dojo._ie_listener.handlers,c=args.callee,ls=c[dojo._ieListenersName],t=h[c.target];var r=t&&t.apply(_218,args);var lls=[].concat(ls);for(var i in lls){if(!(i in ap)){h[lls[i]].apply(_218,args);}}return r;};dojo._getIeDispatcher=function(){return new Function(dojo._scopeName+"._ieDispatcher(arguments, this)");};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||eles.nodeName){eles=[eles];}var i=0;while((te=eles[i++])){if(te.attributes&&te.attributes.id&&te.attributes.id.value==id){return te;}}}}else{return id;}};}else{dojo.byId=function(id,doc){return dojo.isString(id)?(doc||dojo.doc).getElementById(id):id;};}(function(){var d=dojo;var _22d=null;d.addOnWindowUnload(function(){_22d=null;});dojo._destroyElement=dojo.destroy=function(node){node=d.byId(node);try{if(!_22d||_22d.ownerDocument!=node.ownerDocument){_22d=node.ownerDocument.createElement("div");}_22d.appendChild(node.parentNode?node.parentNode.removeChild(node):node);_22d.innerHTML="";}catch(e){}};dojo.isDescendant=function(node,_230){try{node=d.byId(node);_230=d.byId(_230);while(node){if(node===_230){return true;}node=node.parentNode;}}catch(e){}return false;};dojo.setSelectable=function(node,_232){node=d.byId(node);if(d.isMozilla){node.style.MozUserSelect=_232?"":"none";}else{if(d.isKhtml||d.isWebKit){node.style.KhtmlUserSelect=_232?"auto":"none";}else{if(d.isIE){var v=(node.unselectable=_232?"":"on");d.query("*",node).forEach("item.unselectable = '"+v+"'");}}}};var _234=function(node,ref){var _237=ref.parentNode;if(_237){_237.insertBefore(node,ref);}};var _238=function(node,ref){var _23b=ref.parentNode;if(_23b){if(_23b.lastChild==ref){_23b.appendChild(node);}else{_23b.insertBefore(node,ref.nextSibling);}}};dojo.place=function(node,_23d,_23e){_23d=d.byId(_23d);if(d.isString(node)){node=node.charAt(0)=="<"?d._toDom(node,_23d.ownerDocument):d.byId(node);}if(typeof _23e=="number"){var cn=_23d.childNodes;if(!cn.length||cn.length<=_23e){_23d.appendChild(node);}else{_234(node,cn[_23e<0?0:_23e]);}}else{switch(_23e){case "before":_234(node,_23d);break;case "after":_238(node,_23d);break;case "replace":_23d.parentNode.replaceChild(node,_23d);break;case "only":d.empty(_23d);_23d.appendChild(node);break;case "first":if(_23d.firstChild){_234(node,_23d.firstChild);break;}default:_23d.appendChild(node);}}return node;};dojo.boxModel="content-box";if(d.isIE){var _dcm=document.compatMode;d.boxModel=_dcm=="BackCompat"||_dcm=="QuirksMode"||d.isIE<6?"border-box":"content-box";}var gcs;if(d.isWebKit){gcs=function(node){var s;if(node instanceof HTMLElement){var dv=node.ownerDocument.defaultView;s=dv.getComputedStyle(node,null);if(!s&&node.style){node.style.display="";s=dv.getComputedStyle(node,null);}}return s||{};};}else{if(d.isIE){gcs=function(node){return node.nodeType==1?node.currentStyle:{};};}else{gcs=function(node){return node instanceof HTMLElement?node.ownerDocument.defaultView.getComputedStyle(node,null):{};};}}dojo.getComputedStyle=gcs;if(!d.isIE){d._toPixelValue=function(_247,_248){return parseFloat(_248)||0;};}else{d._toPixelValue=function(_249,_24a){if(!_24a){return 0;}if(_24a=="medium"){return 4;}if(_24a.slice&&_24a.slice(-2)=="px"){return parseFloat(_24a);}with(_249){var _24b=style.left;var _24c=runtimeStyle.left;runtimeStyle.left=currentStyle.left;try{style.left=_24a;_24a=style.pixelLeft;}catch(e){_24a=0;}style.left=_24b;runtimeStyle.left=_24c;}return _24a;};}var px=d._toPixelValue;var astr="DXImageTransform.Microsoft.Alpha";var af=function(n,f){try{return n.filters.item(astr);}catch(e){return f?{}:null;}};dojo._getOpacity=d.isIE?function(node){try{return af(node).Opacity/100;}catch(e){return 1;}}:function(node){return gcs(node).opacity;};dojo._setOpacity=d.isIE?function(node,_255){var ov=_255*100;node.style.zoom=1;af(node,1).Enabled=!(_255==1);if(!af(node)){node.style.filter+=" progid:"+astr+"(Opacity="+ov+")";}else{af(node,1).Opacity=ov;}if(node.nodeName.toLowerCase()=="tr"){d.query("> td",node).forEach(function(i){d._setOpacity(i,_255);});}return _255;}:function(node,_259){return node.style.opacity=_259;};var _25a={left:true,top:true};var _25b=/margin|padding|width|height|max|min|offset/;var _25c=function(node,type,_25f){type=type.toLowerCase();if(d.isIE){if(_25f=="auto"){if(type=="height"){return node.offsetHeight;}if(type=="width"){return node.offsetWidth;}}if(type=="fontweight"){switch(_25f){case 700:return "bold";case 400:default:return "normal";}}}if(!(type in _25a)){_25a[type]=_25b.test(type);}return _25a[type]?px(node,_25f):_25f;};var _260=d.isIE?"styleFloat":"cssFloat",_261={"cssFloat":_260,"styleFloat":_260,"float":_260};dojo.style=function(node,_263,_264){var n=d.byId(node),args=arguments.length,op=(_263=="opacity");_263=_261[_263]||_263;if(args==3){return op?d._setOpacity(n,_264):n.style[_263]=_264;}if(args==2&&op){return d._getOpacity(n);}var s=gcs(n);if(args==2&&!d.isString(_263)){for(var x in _263){d.style(node,x,_263[x]);}return s;}return (args==1)?s:_25c(n,_263,s[_263]||n.style[_263]);};dojo._getPadExtents=function(n,_26b){var s=_26b||gcs(n),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,_270){var ne="none",s=_270||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,_276){var s=_276||gcs(n),p=d._getPadExtents(n,s),b=d._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,_27b){var s=_27b||gcs(n),l=px(n,s.marginLeft),t=px(n,s.marginTop),r=px(n,s.marginRight),b=px(n,s.marginBottom);if(d.isWebKit&&(s.position!="absolute")){r=l;}return {l:l,t:t,w:l+r,h:t+b};};dojo._getMarginBox=function(node,_282){var s=_282||gcs(node),me=d._getMarginExtents(node,s);var l=node.offsetLeft-me.l,t=node.offsetTop-me.t,p=node.parentNode;if(d.isMoz){var sl=parseFloat(s.left),st=parseFloat(s.top);if(!isNaN(sl)&&!isNaN(st)){l=sl,t=st;}else{if(p&&p.style){var pcs=gcs(p);if(pcs.overflow!="visible"){var be=d._getBorderExtents(p,pcs);l+=be.l,t+=be.t;}}}}else{if(d.isOpera){if(p){be=d._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,_28d){var s=_28d||gcs(node),pe=d._getPadExtents(node,s),be=d._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(d.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,_294){var s=_294||gcs(node),pe=d._getPadExtents(node,s),cb=d._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";var s=node.style;if(!isNaN(l)){s.left=l+u;}if(!isNaN(t)){s.top=t+u;}if(w>=0){s.width=w+u;}if(h>=0){s.height=h+u;}};dojo._isButtonTag=function(node){return node.tagName=="BUTTON"||node.tagName=="INPUT"&&node.getAttribute("type").toUpperCase()=="BUTTON";};dojo._usesBorderBox=function(node){var n=node.tagName;return d.boxModel=="border-box"||n=="TABLE"||d._isButtonTag(node);};dojo._setContentSize=function(node,_2a3,_2a4,_2a5){if(d._usesBorderBox(node)){var pb=d._getPadBorderExtents(node,_2a5);if(_2a3>=0){_2a3+=pb.w;}if(_2a4>=0){_2a4+=pb.h;}}d._setBox(node,NaN,NaN,_2a3,_2a4);};dojo._setMarginBox=function(node,_2a8,_2a9,_2aa,_2ab,_2ac){var s=_2ac||gcs(node),bb=d._usesBorderBox(node),pb=bb?_2b0:d._getPadBorderExtents(node,s);if(d.isWebKit){if(d._isButtonTag(node)){var ns=node.style;if(_2aa>=0&&!ns.width){ns.width="4px";}if(_2ab>=0&&!ns.height){ns.height="4px";}}}var mb=d._getMarginExtents(node,s);if(_2aa>=0){_2aa=Math.max(_2aa-pb.w-mb.w,0);}if(_2ab>=0){_2ab=Math.max(_2ab-pb.h-mb.h,0);}d._setBox(node,_2a8,_2a9,_2aa,_2ab);};var _2b0={l:0,t:0,w:0,h:0};dojo.marginBox=function(node,box){var n=d.byId(node),s=gcs(n),b=box;return !b?d._getMarginBox(n,s):d._setMarginBox(n,b.l,b.t,b.w,b.h,s);};dojo.contentBox=function(node,box){var n=d.byId(node),s=gcs(n),b=box;return !b?d._getContentBox(n,s):d._setContentSize(n,b.w,b.h,s);};var _2bd=function(node,prop){if(!(node=(node||0).parentNode)){return 0;}var val,_2c1=0,_b=d.body();while(node&&node.style){if(gcs(node).position=="fixed"){return 0;}val=node[prop];if(val){_2c1+=val-0;if(node==_b){break;}}node=node.parentNode;}return _2c1;};dojo._docScroll=function(){var _b=d.body(),_w=d.global,de=d.doc.documentElement;return {y:(_w.pageYOffset||de.scrollTop||_b.scrollTop||0),x:(_w.pageXOffset||d._fixIeBiDiScrollLeft(de.scrollLeft)||_b.scrollLeft||0)};};dojo._isBodyLtr=function(){return ("_bodyLtr" in d)?d._bodyLtr:d._bodyLtr=gcs(d.body()).direction=="ltr";};dojo._getIeDocumentElementOffset=function(){var de=d.doc.documentElement;if(d.isIE<7){return {x:d._isBodyLtr()||window.parent==window?de.clientLeft:de.offsetWidth-de.clientWidth-de.clientLeft,y:de.clientTop};}else{if(d.isIE<8){return {x:de.getBoundingClientRect().left,y:de.getBoundingClientRect().top};}else{return {x:0,y:0};}}};dojo._fixIeBiDiScrollLeft=function(_2c7){var dd=d.doc;if(d.isIE&&!d._isBodyLtr()){var de=dd.compatMode=="BackCompat"?dd.body:dd.documentElement;return _2c7+de.clientWidth-de.scrollWidth;}return _2c7;};dojo._abs=function(node,_2cb){var db=d.body(),dh=d.body().parentNode,ret;if(node["getBoundingClientRect"]){var _2cf=node.getBoundingClientRect();ret={x:_2cf.left,y:_2cf.top};if(d.isFF>=3){var cs=gcs(dh);ret.x-=px(dh,cs.marginLeft)+px(dh,cs.borderLeftWidth);ret.y-=px(dh,cs.marginTop)+px(dh,cs.borderTopWidth);}if(d.isIE){var _2d1=d._getIeDocumentElementOffset();ret.x-=_2d1.x+(d.isQuirks?db.clientLeft:0);ret.y-=_2d1.y+(d.isQuirks?db.clientTop:0);}}else{ret={x:0,y:0};if(node["offsetParent"]){ret.x-=_2bd(node,"scrollLeft");ret.y-=_2bd(node,"scrollTop");var _2d2=node;do{var n=_2d2.offsetLeft,t=_2d2.offsetTop;ret.x+=isNaN(n)?0:n;ret.y+=isNaN(t)?0:t;cs=gcs(_2d2);if(_2d2!=node){if(d.isFF){ret.x+=2*px(_2d2,cs.borderLeftWidth);ret.y+=2*px(_2d2,cs.borderTopWidth);}else{ret.x+=px(_2d2,cs.borderLeftWidth);ret.y+=px(_2d2,cs.borderTopWidth);}}if(d.isFF&&cs.position=="static"){var _2d5=_2d2.parentNode;while(_2d5!=_2d2.offsetParent){var pcs=gcs(_2d5);if(pcs.position=="static"){ret.x+=px(_2d2,pcs.borderLeftWidth);ret.y+=px(_2d2,pcs.borderTopWidth);}_2d5=_2d5.parentNode;}}_2d2=_2d2.offsetParent;}while((_2d2!=dh)&&_2d2);}else{if(node.x&&node.y){ret.x+=isNaN(node.x)?0:node.x;ret.y+=isNaN(node.y)?0:node.y;}}}if(_2cb){var _2d7=d._docScroll();ret.x+=_2d7.x;ret.y+=_2d7.y;}return ret;};dojo.coords=function(node,_2d9){var n=d.byId(node),s=gcs(n),mb=d._getMarginBox(n,s);var abs=d._abs(n,_2d9);mb.x=abs.x;mb.y=abs.y;return mb;};var _2de=d.isIE<8;var _2df=function(name){switch(name.toLowerCase()){case "tabindex":return _2de?"tabIndex":"tabindex";case "readonly":return "readOnly";case "class":return "className";case "for":case "htmlfor":return _2de?"htmlFor":"for";default:return name;}};var _2e1={colspan:"colSpan",enctype:"enctype",frameborder:"frameborder",method:"method",rowspan:"rowSpan",scrolling:"scrolling",shape:"shape",span:"span",type:"type",valuetype:"valueType",classname:"className",innerhtml:"innerHTML"};dojo.hasAttr=function(node,name){node=d.byId(node);var _2e4=_2df(name);_2e4=_2e4=="htmlFor"?"for":_2e4;var attr=node.getAttributeNode&&node.getAttributeNode(_2e4);return attr?attr.specified:false;};var _2e6={},_ctr=0,_2e8=dojo._scopeName+"attrid",_2e9={col:1,colgroup:1,table:1,tbody:1,tfoot:1,thead:1,tr:1,title:1};dojo.attr=function(node,name,_2ec){node=d.byId(node);var args=arguments.length;if(args==2&&!d.isString(name)){for(var x in name){d.attr(node,x,name[x]);}return;}name=_2df(name);if(args==3){if(d.isFunction(_2ec)){var _2ef=d.attr(node,_2e8);if(!_2ef){_2ef=_ctr++;d.attr(node,_2e8,_2ef);}if(!_2e6[_2ef]){_2e6[_2ef]={};}var h=_2e6[_2ef][name];if(h){d.disconnect(h);}else{try{delete node[name];}catch(e){}}_2e6[_2ef][name]=d.connect(node,name,_2ec);}else{if(typeof _2ec=="boolean"){node[name]=_2ec;}else{if(name==="style"&&!d.isString(_2ec)){d.style(node,_2ec);}else{if(name=="className"){node.className=_2ec;}else{if(name==="innerHTML"){if(d.isIE&&node.tagName.toLowerCase() in _2e9){d.empty(node);node.appendChild(d._toDom(_2ec,node.ownerDocument));}else{node[name]=_2ec;}}else{node.setAttribute(name,_2ec);}}}}}}else{var prop=_2e1[name.toLowerCase()];if(prop){return node[prop];}var _2f2=node[name];return (typeof _2f2=="boolean"||typeof _2f2=="function")?_2f2:(d.hasAttr(node,name)?node.getAttribute(name):null);}};dojo.removeAttr=function(node,name){d.byId(node).removeAttribute(_2df(name));};dojo.create=function(tag,_2f6,_2f7,pos){var doc=d.doc;if(_2f7){_2f7=d.byId(_2f7);doc=_2f7.ownerDocument;}if(d.isString(tag)){tag=doc.createElement(tag);}if(_2f6){d.attr(tag,_2f6);}if(_2f7){d.place(tag,_2f7,pos);}return tag;};d.empty=d.isIE?function(node){node=d.byId(node);for(var c;c=node.lastChild;){d.destroy(c);}}:function(node){d.byId(node).innerHTML="";};var _2fd={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"]},_2fe=/<\s*([\w\:]+)/,_2ff={},_300=0,_301="__"+d._scopeName+"ToDomId";for(var _302 in _2fd){var tw=_2fd[_302];tw.pre=_302=="option"?"