/*
Copyright (c) 2004-2006, 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/community/licensing.shtml
*/

/*
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"){
  var dj_global=this;
  var dj_currentContext=this;
  function dj_undef(_1,_2){
    return (typeof (_2||dj_currentContext)[_1]=="undefined");
  }
  if(dj_undef("djConfig",this)){
    var djConfig={};
  }
  if(dj_undef("dojo",this)){
    var dojo={};
  }
  dojo.global=function(){
    return dj_currentContext;
  };
  dojo.locale=djConfig.locale;
  dojo.version={major:0,minor:0,patch:0,flag:"dev",revision:Number("$Rev: 5779 $".match(/[0-9]+/)[0]),toString:function(){
    with(dojo.version){
      return major+"."+minor+"."+patch+flag+" ("+revision+")";
    }
  }};
  dojo.evalProp=function(_3,_4,_5){
    if((!_4)||(!_3)){
      return undefined;
    }
    if(!dj_undef(_3,_4)){
      return _4[_3];
    }
    return (_5?(_4[_3]={}):undefined);
  };
  dojo.parseObjPath=function(_6,_7,_8){
    var _9=(_7||dojo.global());
    var _a=_6.split(".");
    var _b=_a.pop();
    for(var i=0,l=_a.length;i<l&&_9;i++){
      _9=dojo.evalProp(_a[i],_9,_8);
    }
    return {obj:_9,prop:_b};
  };
  dojo.evalObjPath=function(_e,_f){
    if(typeof _e!="string"){
      return dojo.global();
    }
    if(_e.indexOf(".")==-1){
      return dojo.evalProp(_e,dojo.global(),_f);
    }
    var ref=dojo.parseObjPath(_e,dojo.global(),_f);
    if(ref){
      return dojo.evalProp(ref.prop,ref.obj,_f);
    }
    return null;
  };
  dojo.errorToString=function(_11){
    if(!dj_undef("message",_11)){
      return _11.message;
    }else{
      if(!dj_undef("description",_11)){
        return _11.description;
      }else{
        return _11;
      }
    }
  };
  dojo.raise=function(_12,_13){
    if(_13){
      _12=_12+": "+dojo.errorToString(_13);
    }
    try{
      if(djConfig.isDebug){
        dojo.hostenv.println("FATAL exception raised: "+_12);
      }
    }
    catch(e){
    }
    throw _13||Error(_12);
  };
  dojo.debug=function(){
  };
  dojo.debugShallow=function(obj){
  };
  dojo.profile={start:function(){
  },end:function(){
  },stop:function(){
  },dump:function(){
  }};
  function dj_eval(_15){
    return dj_global.eval?dj_global.eval(_15):eval(_15);
  }
  dojo.unimplemented=function(_16,_17){
    var _18="'"+_16+"' not implemented";
    if(_17!=null){
      _18+=" "+_17;
    }
    dojo.raise(_18);
  };
  dojo.deprecated=function(_19,_1a,_1b){
    var _1c="DEPRECATED: "+_19;
    if(_1a){
      _1c+=" "+_1a;
    }
    if(_1b){
      _1c+=" -- will be removed in version: "+_1b;
    }
    dojo.debug(_1c);
  };
  dojo.render=(function(){
    function vscaffold(_1d,_1e){
      var tmp={capable:false,support:{builtin:false,plugin:false},prefixes:_1d};
      for(var i=0;i<_1e.length;i++){
        tmp[_1e[i]]=false;
      }
      return tmp;
    }
    return {name:"",ver:dojo.version,os:{win:false,linux:false,osx:false},html:vscaffold(["html"],["ie","opera","khtml","safari","moz"]),svg:vscaffold(["svg"],["corel","adobe","batik"]),vml:vscaffold(["vml"],["ie"]),swf:vscaffold(["Swf","Flash","Mm"],["mm"]),swt:vscaffold(["Swt"],["ibm"])};
  })();
  dojo.hostenv=(function(){
    var _21={isDebug:false,allowQueryConfig:false,baseScriptUri:"",baseRelativePath:"",libraryScriptUri:"",iePreventClobber:false,ieClobberMinimal:true,preventBackButtonFix:true,searchIds:[],parseWidgets:true};
    if(typeof djConfig=="undefined"){
      djConfig=_21;
    }else{
      for(var _22 in _21){
        if(typeof djConfig[_22]=="undefined"){
          djConfig[_22]=_21[_22];
        }
      }
    }
    return {name_:"(unset)",version_:"(unset)",getName:function(){
      return this.name_;
    },getVersion:function(){
      return this.version_;
    },getText:function(uri){
      dojo.unimplemented("getText","uri="+uri);
    }};
  })();
  dojo.hostenv.getBaseScriptUri=function(){
    if(djConfig.baseScriptUri.length){
      return djConfig.baseScriptUri;
    }
    var uri=new String(djConfig.libraryScriptUri||djConfig.baseRelativePath);
    if(!uri){
      dojo.raise("Nothing returned by getLibraryScriptUri(): "+uri);
    }
    var _25=uri.lastIndexOf("/");
    djConfig.baseScriptUri=djConfig.baseRelativePath;
    return djConfig.baseScriptUri;
  };
  (function(){
    var _26={pkgFileName:"__package__",loading_modules_:{},loaded_modules_:{},addedToLoadingCount:[],removedFromLoadingCount:[],inFlightCount:0,modulePrefixes_:{dojo:{name:"dojo",value:"src"}},setModulePrefix:function(_27,_28){
      this.modulePrefixes_[_27]={name:_27,value:_28};
    },moduleHasPrefix:function(_29){
      var mp=this.modulePrefixes_;
      return Boolean(mp[_29]&&mp[_29].value);
    },getModulePrefix:function(_2b){
      if(this.moduleHasPrefix(_2b)){
        return this.modulePrefixes_[_2b].value;
      }
      return _2b;
    },getTextStack:[],loadUriStack:[],loadedUris:[],post_load_:false,modulesLoadedListeners:[],unloadListeners:[],loadNotifying:false};
    for(var _2c in _26){
      dojo.hostenv[_2c]=_26[_2c];
    }
  })();
  dojo.hostenv.loadPath=function(_2d,_2e,cb){
    var uri;
    if(_2d.charAt(0)=="/"||_2d.match(/^\w+:/)){
    uri=_2d;
  }else{
    uri=this.getBaseScriptUri()+_2d;
  }
  if(djConfig.cacheBust&&dojo.render.html.capable){
    uri+="?"+String(djConfig.cacheBust).replace(/\W+/g,"");
  }
  try{
    return !_2e?this.loadUri(uri,cb):this.loadUriAndCheck(uri,_2e,cb);
  }
  catch(e){
    dojo.debug(e);
    return false;
  }
};
dojo.hostenv.loadUri=function(uri,cb){
  if(this.loadedUris[uri]){
    return true;
  }
  var _33=this.getText(uri,null,true);
  if(!_33){
    return false;
  }
  this.loadedUris[uri]=true;
  if(cb){
    _33="("+_33+")";
  }
  var _34=dj_eval(_33);
  if(cb){
    cb(_34);
  }
  return true;
};
dojo.hostenv.loadUriAndCheck=function(uri,_36,cb){
  var ok=true;
  try{
    ok=this.loadUri(uri,cb);
  }
  catch(e){
    dojo.debug("failed loading ",uri," with error: ",e);
  }
  return Boolean(ok&&this.findModule(_36,false));
};
dojo.loaded=function(){
};
dojo.unloaded=function(){
};
dojo.hostenv.loaded=function(){
  this.loadNotifying=true;
  this.post_load_=true;
  var mll=this.modulesLoadedListeners;
  for(var x=0;x<mll.length;x++){
    mll[x]();
  }
  this.modulesLoadedListeners=[];
  this.loadNotifying=false;
  dojo.loaded();
};
dojo.hostenv.unloaded=function(){
  var mll=this.unloadListeners;
  while(mll.length){
  (mll.pop())();
  }
  dojo.unloaded();
};
dojo.addOnLoad=function(obj,_3d){
  var dh=dojo.hostenv;
  if(arguments.length==1){
    dh.modulesLoadedListeners.push(obj);
  }else{
    if(arguments.length>1){
      dh.modulesLoadedListeners.push(function(){
        obj[_3d]();
      });
    }
  }
  if(dh.post_load_&&dh.inFlightCount==0&&!dh.loadNotifying){
    dh.callLoaded();
  }
};
dojo.addOnUnload=function(obj,_40){
  var dh=dojo.hostenv;
  if(arguments.length==1){
    dh.unloadListeners.push(obj);
  }else{
    if(arguments.length>1){
      dh.unloadListeners.push(function(){
        obj[_40]();
      });
    }
  }
};
dojo.hostenv.modulesLoaded=function(){
  if(this.post_load_){
    return;
  }
  if(this.loadUriStack.length==0&&this.getTextStack.length==0){
    if(this.inFlightCount>0){
      dojo.debug("files still in flight!");
      return;
    }
    dojo.hostenv.callLoaded();
  }
};
dojo.hostenv.callLoaded=function(){
  if(typeof setTimeout=="object"){
    setTimeout("dojo.hostenv.loaded();",0);
  }else{
    dojo.hostenv.loaded();
  }
};
dojo.hostenv.getModuleSymbols=function(_42){
  var _43=_42.split(".");
  for(var i=_43.length;i>0;i--){
    var _45=_43.slice(0,i).join(".");
    if((i==1)&&!this.moduleHasPrefix(_45)){
      _43[0]="../"+_43[0];
    }else{
      var _46=this.getModulePrefix(_45);
      if(_46!=_45){
        _43.splice(0,i,_46);
        break;
      }
    }
  }
  return _43;
};
dojo.hostenv._global_omit_module_check=false;
dojo.hostenv.loadModule=function(_47,_48,_49){
  if(!_47){
    return;
  }
  _49=this._global_omit_module_check||_49;
  var _4a=this.findModule(_47,false);
  if(_4a){
    return _4a;
  }
  if(dj_undef(_47,this.loading_modules_)){
    this.addedToLoadingCount.push(_47);
  }
  this.loading_modules_[_47]=1;
  var _4b=_47.replace(/\./g,"/")+".js";
  var _4c=_47.split(".");
  var _4d=this.getModuleSymbols(_47);
  var _4e=((_4d[0].charAt(0)!="/")&&!_4d[0].match(/^\w+:/));
  var _4f=_4d[_4d.length-1];
  var ok;
  if(_4f=="*"){
    _47=_4c.slice(0,-1).join(".");
    while(_4d.length){
      _4d.pop();
      _4d.push(this.pkgFileName);
      _4b=_4d.join("/")+".js";
      if(_4e&&_4b.charAt(0)=="/"){
        _4b=_4b.slice(1);
      }
      ok=this.loadPath(_4b,!_49?_47:null);
      if(ok){
        break;
      }
      _4d.pop();
    }
  }else{
    _4b=_4d.join("/")+".js";
    _47=_4c.join(".");
    var _51=!_49?_47:null;
    ok=this.loadPath(_4b,_51);
    if(!ok&&!_48){
      _4d.pop();
      while(_4d.length){
        _4b=_4d.join("/")+".js";
        ok=this.loadPath(_4b,_51);
        if(ok){
          break;
        }
        _4d.pop();
        _4b=_4d.join("/")+"/"+this.pkgFileName+".js";
        if(_4e&&_4b.charAt(0)=="/"){
          _4b=_4b.slice(1);
        }
        ok=this.loadPath(_4b,_51);
        if(ok){
          break;
        }
      }
    }
    if(!ok&&!_49){
      dojo.raise("Could not load '"+_47+"'; last tried '"+_4b+"'");
    }
  }
  if(!_49&&!this["isXDomain"]){
    _4a=this.findModule(_47,false);
    if(!_4a){
      dojo.raise("symbol '"+_47+"' is not defined after loading '"+_4b+"'");
    }
  }
  return _4a;
};
dojo.hostenv.startPackage=function(_52){
  var _53=String(_52);
  var _54=_53;
  var _55=_52.split(/\./);
  if(_55[_55.length-1]=="*"){
    _55.pop();
    _54=_55.join(".");
  }
  var _56=dojo.evalObjPath(_54,true);
  this.loaded_modules_[_53]=_56;
  this.loaded_modules_[_54]=_56;
  return _56;
};
dojo.hostenv.findModule=function(_57,_58){
  var lmn=String(_57);
  if(this.loaded_modules_[lmn]){
    return this.loaded_modules_[lmn];
  }
  if(_58){
    dojo.raise("no loaded module named '"+_57+"'");
  }
  return null;
};
dojo.kwCompoundRequire=function(_5a){
  var _5b=_5a["common"]||[];
  var _5c=_5a[dojo.hostenv.name_]?_5b.concat(_5a[dojo.hostenv.name_]||[]):_5b.concat(_5a["default"]||[]);
  for(var x=0;x<_5c.length;x++){
    var _5e=_5c[x];
    if(_5e.constructor==Array){
      dojo.hostenv.loadModule.apply(dojo.hostenv,_5e);
    }else{
      dojo.hostenv.loadModule(_5e);
    }
  }
};
dojo.require=function(_5f){
  dojo.hostenv.loadModule.apply(dojo.hostenv,arguments);
};
dojo.requireIf=function(_60,_61){
  var _62=arguments[0];
  if((_62===true)||(_62=="common")||(_62&&dojo.render[_62].capable)){
    var _63=[];
    for(var i=1;i<arguments.length;i++){
      _63.push(arguments[i]);
    }
    dojo.require.apply(dojo,_63);
  }
};
dojo.requireAfterIf=dojo.requireIf;
dojo.provide=function(_65){
  return dojo.hostenv.startPackage.apply(dojo.hostenv,arguments);
};
dojo.registerModulePath=function(_66,_67){
  return dojo.hostenv.setModulePrefix(_66,_67);
};
dojo.setModulePrefix=function(_68,_69){
  dojo.deprecated("dojo.setModulePrefix(\""+_68+"\", \""+_69+"\")","replaced by dojo.registerModulePath","0.5");
  return dojo.registerModulePath(_68,_69);
};
dojo.exists=function(obj,_6b){
  var p=_6b.split(".");
  for(var i=0;i<p.length;i++){
    if(!obj[p[i]]){
      return false;
    }
    obj=obj[p[i]];
  }
  return true;
};
dojo.hostenv.normalizeLocale=function(_6e){
  return _6e?_6e.toLowerCase():dojo.locale;
};
dojo.hostenv.searchLocalePath=function(_6f,_70,_71){
  _6f=dojo.hostenv.normalizeLocale(_6f);
  var _72=_6f.split("-");
  var _73=[];
  for(var i=_72.length;i>0;i--){
    _73.push(_72.slice(0,i).join("-"));
  }
  _73.push(false);
  if(_70){
    _73.reverse();
  }
  for(var j=_73.length-1;j>=0;j--){
    var loc=_73[j]||"ROOT";
    var _77=_71(loc);
    if(_77){
      break;
    }
  }
};
dojo.hostenv.localesGenerated;
dojo.hostenv.registerNlsPrefix=function(){
  dojo.registerModulePath("nls","nls");
};
dojo.hostenv.preloadLocalizations=function(){
  if(dojo.hostenv.localesGenerated){
    dojo.hostenv.registerNlsPrefix();
    function preload(_78){
      _78=dojo.hostenv.normalizeLocale(_78);
      dojo.hostenv.searchLocalePath(_78,true,function(loc){
        for(var i=0;i<dojo.hostenv.localesGenerated.length;i++){
          if(dojo.hostenv.localesGenerated[i]==loc){
            dojo["require"]("nls.dojo_"+loc);
            return true;
          }
        }
        return false;
      });
    }
    preload();
    var _7b=djConfig.extraLocale||[];
    for(var i=0;i<_7b.length;i++){
      preload(_7b[i]);
    }
  }
  dojo.hostenv.preloadLocalizations=function(){
  };
};
dojo.requireLocalization=function(_7d,_7e,_7f){
  dojo.hostenv.preloadLocalizations();
  var _80=[_7d,"nls",_7e].join(".");
  var _81=dojo.hostenv.findModule(_80);
  if(_81){
    if(djConfig.localizationComplete&&_81._built){
      return;
    }
    var _82=dojo.hostenv.normalizeLocale(_7f).replace("-","_");
    var _83=_80+"."+_82;
    if(dojo.hostenv.findModule(_83)){
      return;
    }
  }
  _81=dojo.hostenv.startPackage(_80);
  var _84=dojo.hostenv.getModuleSymbols(_7d);
  var _85=_84.concat("nls").join("/");
  var _86;
  dojo.hostenv.searchLocalePath(_7f,false,function(loc){
    var _88=loc.replace("-","_");
    var _89=_80+"."+_88;
    var _8a=false;
    if(!dojo.hostenv.findModule(_89)){
      dojo.hostenv.startPackage(_89);
      var _8b=[_85];
      if(loc!="ROOT"){
        _8b.push(loc);
      }
      _8b.push(_7e);
      var _8c=_8b.join("/")+".js";
      _8a=dojo.hostenv.loadPath(_8c,null,function(_8d){
        var _8e=function(){
        };
        _8e.prototype=_86;
        _81[_88]=new _8e();
        for(var j in _8d){
          _81[_88][j]=_8d[j];
        }
      });
    }else{
      _8a=true;
    }
    if(_8a&&_81[_88]){
      _86=_81[_88];
    }else{
      _81[_88]=_86;
    }
  });
};
(function(){
  var _90=djConfig.extraLocale;
  if(_90){
    if(!_90 instanceof Array){
      _90=[_90];
    }
    var req=dojo.requireLocalization;
    dojo.requireLocalization=function(m,b,_94){
      req(m,b,_94);
      if(_94){
        return;
      }
      for(var i=0;i<_90.length;i++){
        req(m,b,_90[i]);
      }
    };
  }
})();
}
if(typeof window!="undefined"){
(function(){
  if(djConfig.allowQueryConfig){
    var _96=document.location.toString();
    var _97=_96.split("?",2);
    if(_97.length>1){
      var _98=_97[1];
      var _99=_98.split("&");
      for(var x in _99){
        var sp=_99[x].split("=");
        if((sp[0].length>9)&&(sp[0].substr(0,9)=="djConfig.")){
          var opt=sp[0].substr(9);
          try{
            djConfig[opt]=eval(sp[1]);
          }
          catch(e){
            djConfig[opt]=sp[1];
          }
        }
      }
    }
  }
  if(((djConfig["baseScriptUri"]=="")||(djConfig["baseRelativePath"]==""))&&(document&&document.getElementsByTagName)){
    var _9d=document.getElementsByTagName("script");
    var _9e=/(__package__|dojo|bootstrap1)\.js([\?\.]|$)/i;
    for(var i=0;i<_9d.length;i++){
      var src=_9d[i].getAttribute("src");
      if(!src){
        continue;
      }
      var m=src.match(_9e);
      if(m){
        var _a2=src.substring(0,m.index);
        if(src.indexOf("bootstrap1")>-1){
          _a2+="../";
        }
        if(!this["djConfig"]){
          djConfig={};
        }
        if(djConfig["baseScriptUri"]==""){
          djConfig["baseScriptUri"]=_a2;
        }
        if(djConfig["baseRelativePath"]==""){
          djConfig["baseRelativePath"]=_a2;
        }
        break;
      }
    }
  }
  var dr=dojo.render;
  var drh=dojo.render.html;
  var drs=dojo.render.svg;
  var dua=(drh.UA=navigator.userAgent);
  var dav=(drh.AV=navigator.appVersion);
  var t=true;
  var f=false;
  drh.capable=t;
  drh.support.builtin=t;
  dr.ver=parseFloat(drh.AV);
  dr.os.mac=dav.indexOf("Macintosh")>=0;
  dr.os.win=dav.indexOf("Windows")>=0;
  dr.os.linux=dav.indexOf("X11")>=0;
  drh.opera=dua.indexOf("Opera")>=0;
  drh.khtml=(dav.indexOf("Konqueror")>=0)||(dav.indexOf("Safari")>=0);
  drh.safari=dav.indexOf("Safari")>=0;
  var _aa=dua.indexOf("Gecko");
  drh.mozilla=drh.moz=(_aa>=0)&&(!drh.khtml);
  if(drh.mozilla){
    drh.geckoVersion=dua.substring(_aa+6,_aa+14);
  }
  drh.ie=(document.all)&&(!drh.opera);
  drh.ie50=drh.ie&&dav.indexOf("MSIE 5.0")>=0;
  drh.ie55=drh.ie&&dav.indexOf("MSIE 5.5")>=0;
  drh.ie60=drh.ie&&dav.indexOf("MSIE 6.0")>=0;
  drh.ie70=drh.ie&&dav.indexOf("MSIE 7.0")>=0;
  var cm=document["compatMode"];
  drh.quirks=(cm=="BackCompat")||(cm=="QuirksMode")||drh.ie55||drh.ie50;
  dojo.locale=dojo.locale||(drh.ie?navigator.userLanguage:navigator.language).toLowerCase();
  dr.vml.capable=drh.ie;
  drs.capable=f;
  drs.support.plugin=f;
  drs.support.builtin=f;
  var _ac=window["document"];
  var tdi=_ac["implementation"];
  if((tdi)&&(tdi["hasFeature"])&&(tdi.hasFeature("org.w3c.dom.svg","1.0"))){
    drs.capable=t;
    drs.support.builtin=t;
    drs.support.plugin=f;
  }
  if(drh.safari){
    var tmp=dua.split("AppleWebKit/")[1];
    var ver=parseFloat(tmp.split(" ")[0]);
    if(ver>=420){
      drs.capable=t;
      drs.support.builtin=t;
      drs.support.plugin=f;
    }
  }
})();
dojo.hostenv.startPackage("dojo.hostenv");
dojo.render.name=dojo.hostenv.name_="browser";
dojo.hostenv.searchIds=[];
dojo.hostenv._XMLHTTP_PROGIDS=["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"];
dojo.hostenv.getXmlhttpObject=function(){
  var _b0=null;
  var _b1=null;
  try{
    _b0=new XMLHttpRequest();
  }
  catch(e){
  }
  if(!_b0){
    for(var i=0;i<3;++i){
      var _b3=dojo.hostenv._XMLHTTP_PROGIDS[i];
      try{
        _b0=new ActiveXObject(_b3);
      }
      catch(e){
        _b1=e;
      }
      if(_b0){
        dojo.hostenv._XMLHTTP_PROGIDS=[_b3];
        break;
      }
    }
  }
  if(!_b0){
    return dojo.raise("XMLHTTP not available",_b1);
  }
  return _b0;
};
dojo.hostenv._blockAsync=false;
dojo.hostenv.getText=function(uri,_b5,_b6){
  if(!_b5){
    this._blockAsync=true;
  }
  var _b7=this.getXmlhttpObject();
  function isDocumentOk(_b8){
    var _b9=_b8["status"];
    return Boolean((!_b9)||((200<=_b9)&&(300>_b9))||(_b9==304));
  }
  if(_b5){
    var _ba=this,_bb=null,gbl=dojo.global();
    var xhr=dojo.evalObjPath("dojo.io.XMLHTTPTransport");
    _b7.onreadystatechange=function(){
      if(_bb){
        gbl.clearTimeout(_bb);
        _bb=null;
      }
      if(_ba._blockAsync||(xhr&&xhr._blockAsync)){
        _bb=gbl.setTimeout(function(){
          _b7.onreadystatechange.apply(this);
        },10);
      }else{
        if(4==_b7.readyState){
          if(isDocumentOk(_b7)){
            _b5(_b7.responseText);
          }
        }
      }
    };
  }
  _b7.open("GET",uri,_b5?true:false);
  try{
    _b7.send(null);
    if(_b5){
      return null;
    }
    if(!isDocumentOk(_b7)){
      var err=Error("Unable to load "+uri+" status:"+_b7.status);
      err.status=_b7.status;
      err.responseText=_b7.responseText;
      throw err;
    }
  }
  catch(e){
    this._blockAsync=false;
    if((_b6)&&(!_b5)){
      return null;
    }else{
      throw e;
    }
  }
  this._blockAsync=false;
  return _b7.responseText;
};
dojo.hostenv.defaultDebugContainerId="dojoDebug";
dojo.hostenv._println_buffer=[];
dojo.hostenv._println_safe=false;
dojo.hostenv.println=function(_bf){
  if(!dojo.hostenv._println_safe){
    dojo.hostenv._println_buffer.push(_bf);
  }else{
    try{
      var _c0=document.getElementById(djConfig.debugContainerId?djConfig.debugContainerId:dojo.hostenv.defaultDebugContainerId);
      if(!_c0){
        _c0=dojo.body();
      }
      var div=document.createElement("div");
      div.appendChild(document.createTextNode(_bf));
      _c0.appendChild(div);
    }
    catch(e){
      try{
        document.write("<div>"+_bf+"</div>");
      }
      catch(e2){
        window.status=_bf;
      }
    }
  }
};
dojo.addOnLoad(function(){
  dojo.hostenv._println_safe=true;
  while(dojo.hostenv._println_buffer.length>0){
    dojo.hostenv.println(dojo.hostenv._println_buffer.shift());
  }
});
function dj_addNodeEvtHdlr(_c2,_c3,fp,_c5){
  var _c6=_c2["on"+_c3]||function(){
  };
  _c2["on"+_c3]=function(){
    fp.apply(_c2,arguments);
    _c6.apply(_c2,arguments);
  };
  return true;
}
function dj_load_init(e){
  var _c8=(e&&e.type)?e.type.toLowerCase():"load";
  if(arguments.callee.initialized||(_c8!="domcontentloaded"&&_c8!="load")){
    return;
  }
  arguments.callee.initialized=true;
  if(typeof (_timer)!="undefined"){
    clearInterval(_timer);
    delete _timer;
  }
  var _c9=function(){
    if(dojo.render.html.ie){
      dojo.hostenv.makeWidgets();
    }
  };
  if(dojo.hostenv.inFlightCount==0){
    _c9();
    dojo.hostenv.modulesLoaded();
  }else{
    dojo.addOnLoad(_c9);
  }
}
if(document.addEventListener){
  document.addEventListener("DOMContentLoaded",dj_load_init,null);
  document.addEventListener("load",dj_load_init,null);
}
if(dojo.render.html.ie&&dojo.render.os.win){
  document.attachEvent("onreadystatechange",function(e){
    if(document.readyState=="complete"){
      dj_load_init();
    }
  });
}
if(/(WebKit|khtml)/i.test(navigator.userAgent)){
  var _timer=setInterval(function(){
    if(/loaded|complete/.test(document.readyState)){
      dj_load_init();
    }
  },10);
}
if(dojo.render.html.ie){
  dj_addNodeEvtHdlr(window,"beforeunload",function(){
    dojo.hostenv._unloading=true;
    window.setTimeout(function(){
      dojo.hostenv._unloading=false;
    },0);
  });
}
dj_addNodeEvtHdlr(window,"unload",function(){
  dojo.hostenv.unloaded();
  if((!dojo.render.html.ie)||(dojo.render.html.ie&&dojo.hostenv._unloading)){
    dojo.hostenv.unloaded();
  }
});
dojo.hostenv.makeWidgets=function(){
  var _cb=[];
  if(djConfig.searchIds&&djConfig.searchIds.length>0){
    _cb=_cb.concat(djConfig.searchIds);
  }
  if(dojo.hostenv.searchIds&&dojo.hostenv.searchIds.length>0){
    _cb=_cb.concat(dojo.hostenv.searchIds);
  }
  if((djConfig.parseWidgets)||(_cb.length>0)){
    if(dojo.evalObjPath("dojo.widget.Parse")){
      var _cc=new dojo.xml.Parse();
      if(_cb.length>0){
        for(var x=0;x<_cb.length;x++){
          var _ce=document.getElementById(_cb[x]);
          if(!_ce){
            continue;
          }
          var _cf=_cc.parseElement(_ce,null,true);
          dojo.widget.getParser().createComponents(_cf);
        }
      }else{
        if(djConfig.parseWidgets){
          var _cf=_cc.parseElement(dojo.body(),null,true);
          dojo.widget.getParser().createComponents(_cf);
        }
      }
    }
  }
};
dojo.addOnLoad(function(){
  if(!dojo.render.html.ie){
    dojo.hostenv.makeWidgets();
  }
});
try{
  if(dojo.render.html.ie){
    document.namespaces.add("v","urn:schemas-microsoft-com:vml");
    document.createStyleSheet().addRule("v\\:*","behavior:url(#default#VML)");
  }
}
catch(e){
}
dojo.hostenv.writeIncludes=function(){
};
if(!dj_undef("document",this)){
  dj_currentDocument=this.document;
}
dojo.doc=function(){
  return dj_currentDocument;
};
dojo.body=function(){
  return dojo.doc().body||dojo.doc().getElementsByTagName("body")[0];
};
dojo.byId=function(id,doc){
  if((id)&&((typeof id=="string")||(id instanceof String))){
    if(!doc){
      doc=dj_currentDocument;
    }
    var ele=doc.getElementById(id);
    if(ele&&(ele.id!=id)&&doc.all){
      ele=null;
      eles=doc.all[id];
      if(eles){
        if(eles.length){
          for(var i=0;i<eles.length;i++){
            if(eles[i].id==id){
              ele=eles[i];
              break;
            }
          }
        }else{
          ele=eles;
        }
      }
    }
    return ele;
  }
  return id;
};
dojo.setContext=function(_d4,_d5){
  dj_currentContext=_d4;
  dj_currentDocument=_d5;
};
dojo._fireCallback=function(_d6,_d7,_d8){
  if((_d7)&&((typeof _d6=="string")||(_d6 instanceof String))){
    _d6=_d7[_d6];
  }
  return (_d7?_d6.apply(_d7,_d8||[]):_d6());
};
dojo.withGlobal=function(_d9,_da,_db,_dc){
  var _dd;
  var _de=dj_currentContext;
  var _df=dj_currentDocument;
  try{
    dojo.setContext(_d9,_d9.document);
    _dd=dojo._fireCallback(_da,_db,_dc);
  }
  finally{
    dojo.setContext(_de,_df);
  }
  return _dd;
};
dojo.withDoc=function(_e0,_e1,_e2,_e3){
  var _e4;
  var _e5=dj_currentDocument;
  try{
    dj_currentDocument=_e0;
    _e4=dojo._fireCallback(_e1,_e2,_e3);
  }
  finally{
    dj_currentDocument=_e5;
  }
  return _e4;
};
}
(function(){
  if(typeof dj_usingBootstrap!="undefined"){
    return;
  }
  var _e6=false;
  var _e7=false;
  var _e8=false;
  if((typeof this["load"]=="function")&&((typeof this["Packages"]=="function")||(typeof this["Packages"]=="object"))){
    _e6=true;
  }else{
    if(typeof this["load"]=="function"){
      _e7=true;
    }else{
      if(window.widget){
        _e8=true;
      }
    }
  }
  var _e9=[];
  if((this["djConfig"])&&((djConfig["isDebug"])||(djConfig["debugAtAllCosts"]))){
    _e9.push("debug.js");
  }
  if((this["djConfig"])&&(djConfig["debugAtAllCosts"])&&(!_e6)&&(!_e8)){
    _e9.push("browser_debug.js");
  }
  var _ea=djConfig["baseScriptUri"];
  if((this["djConfig"])&&(djConfig["baseLoaderUri"])){
    _ea=djConfig["baseLoaderUri"];
  }
  for(var x=0;x<_e9.length;x++){
    var _ec=_ea+"src/"+_e9[x];
    if(_e6||_e7){
      load(_ec);
    }else{
      try{
        document.write("<scr"+"ipt type='text/javascript' src='"+_ec+"'></scr"+"ipt>");
      }
      catch(e){
        var _ed=document.createElement("script");
        _ed.src=_ec;
        document.getElementsByTagName("head")[0].appendChild(_ed);
      }
    }
  }
})();
dojo.provide("dojo.string.common");
dojo.string.trim=function(str,wh){
  if(!str.replace){
    return str;
  }
  if(!str.length){
    return str;
  }
  var re=(wh>0)?(/^\s+/):(wh<0)?(/\s+$/):(/^\s+|\s+$/g);
  return str.replace(re,"");
};
dojo.string.trimStart=function(str){
  return dojo.string.trim(str,1);
};
dojo.string.trimEnd=function(str){
  return dojo.string.trim(str,-1);
};
dojo.string.repeat=function(str,_f4,_f5){
  var out="";
  for(var i=0;i<_f4;i++){
    out+=str;
    if(_f5&&i<_f4-1){
      out+=_f5;
    }
  }
  return out;
};
dojo.string.pad=function(str,len,c,dir){
  var out=String(str);
  if(!c){
    c="0";
  }
  if(!dir){
    dir=1;
  }
  while(out.length<len){
    if(dir>0){
      out=c+out;
    }else{
      out+=c;
    }
  }
  return out;
};
dojo.string.padLeft=function(str,len,c){
  return dojo.string.pad(str,len,c,1);
};
dojo.string.padRight=function(str,len,c){
  return dojo.string.pad(str,len,c,-1);
};
dojo.provide("dojo.string");
dojo.provide("dojo.lang.common");
dojo.lang.inherits=function(_103,_104){
  if(typeof _104!="function"){
    dojo.raise("dojo.inherits: superclass argument ["+_104+"] must be a function (subclass: ["+_103+"']");
  }
  _103.prototype=new _104();
  _103.prototype.constructor=_103;
  _103.superclass=_104.prototype;
  _103["super"]=_104.prototype;
};
dojo.lang._mixin=function(obj,_106){
  var tobj={};
  for(var x in _106){
    if((typeof tobj[x]=="undefined")||(tobj[x]!=_106[x])){
      obj[x]=_106[x];
    }
  }
  if(dojo.render.html.ie&&(typeof (_106["toString"])=="function")&&(_106["toString"]!=obj["toString"])&&(_106["toString"]!=tobj["toString"])){
    obj.toString=_106.toString;
  }
  return obj;
};
dojo.lang.mixin=function(obj,_10a){
  for(var i=1,l=arguments.length;i<l;i++){
    dojo.lang._mixin(obj,arguments[i]);
  }
  return obj;
};
dojo.lang.extend=function(_10d,_10e){
  for(var i=1,l=arguments.length;i<l;i++){
    dojo.lang._mixin(_10d.prototype,arguments[i]);
  }
  return _10d;
};
dojo.inherits=dojo.lang.inherits;
dojo.mixin=dojo.lang.mixin;
dojo.extend=dojo.lang.extend;
dojo.lang.find=function(_111,_112,_113,_114){
  if(!dojo.lang.isArrayLike(_111)&&dojo.lang.isArrayLike(_112)){
    dojo.deprecated("dojo.lang.find(value, array)","use dojo.lang.find(array, value) instead","0.5");
    var temp=_111;
    _111=_112;
    _112=temp;
  }
  var _116=dojo.lang.isString(_111);
  if(_116){
    _111=_111.split("");
  }
  if(_114){
    var step=-1;
    var i=_111.length-1;
    var end=-1;
  }else{
    var step=1;
    var i=0;
    var end=_111.length;
  }
  if(_113){
    while(i!=end){
      if(_111[i]===_112){
        return i;
      }
      i+=step;
    }
  }else{
    while(i!=end){
      if(_111[i]==_112){
        return i;
      }
      i+=step;
    }
  }
  return -1;
};
dojo.lang.indexOf=dojo.lang.find;
dojo.lang.findLast=function(_11a,_11b,_11c){
  return dojo.lang.find(_11a,_11b,_11c,true);
};
dojo.lang.lastIndexOf=dojo.lang.findLast;
dojo.lang.inArray=function(_11d,_11e){
  return dojo.lang.find(_11d,_11e)>-1;
};
dojo.lang.isObject=function(it){
  if(typeof it=="undefined"){
    return false;
  }
  return (typeof it=="object"||it===null||dojo.lang.isArray(it)||dojo.lang.isFunction(it));
};
dojo.lang.isArray=function(it){
  return (it&&it instanceof Array||typeof it=="array");
};
dojo.lang.isArrayLike=function(it){
  if((!it)||(dojo.lang.isUndefined(it))){
    return false;
  }
  if(dojo.lang.isString(it)){
    return false;
  }
  if(dojo.lang.isFunction(it)){
    return false;
  }
  if(dojo.lang.isArray(it)){
    return true;
  }
  if((it.tagName)&&(it.tagName.toLowerCase()=="form")){
    return false;
  }
  if(dojo.lang.isNumber(it.length)&&isFinite(it.length)){
    return true;
  }
  return false;
};
dojo.lang.isFunction=function(it){
  if(!it){
    return false;
  }
  if((typeof (it)=="function")&&(it=="[object NodeList]")){
    return false;
  }
  return (it instanceof Function||typeof it=="function");
};
dojo.lang.isString=function(it){
  return (typeof it=="string"||it instanceof String);
};
dojo.lang.isAlien=function(it){
  if(!it){
    return false;
  }
  return !dojo.lang.isFunction()&&/\{\s*\[native code\]\s*\}/.test(String(it));
};
dojo.lang.isBoolean=function(it){
  return (it instanceof Boolean||typeof it=="boolean");
};
dojo.lang.isNumber=function(it){
  return (it instanceof Number||typeof it=="number");
};
dojo.lang.isUndefined=function(it){
  return ((typeof (it)=="undefined")&&(it==undefined));
};
dojo.provide("dojo.lang.extras");
dojo.lang.setTimeout=function(func,_129){
  var _12a=window,_12b=2;
  if(!dojo.lang.isFunction(func)){
    _12a=func;
    func=_129;
    _129=arguments[2];
    _12b++;
  }
  if(dojo.lang.isString(func)){
    func=_12a[func];
  }
  var args=[];
  for(var i=_12b;i<arguments.length;i++){
    args.push(arguments[i]);
  }
  return dojo.global().setTimeout(function(){
    func.apply(_12a,args);
  },_129);
};
dojo.lang.clearTimeout=function(_12e){
  dojo.global().clearTimeout(_12e);
};
dojo.lang.getNameInObj=function(ns,item){
  if(!ns){
    ns=dj_global;
  }
  for(var x in ns){
    if(ns[x]===item){
      return new String(x);
    }
  }
  return null;
};
dojo.lang.shallowCopy=function(obj,deep){
  var i,ret;
  if(obj===null){
    return null;
  }
  if(dojo.lang.isObject(obj)){
    ret=new obj.constructor();
    for(i in obj){
      if(dojo.lang.isUndefined(ret[i])){
        ret[i]=deep?dojo.lang.shallowCopy(obj[i],deep):obj[i];
      }
    }
  }else{
    if(dojo.lang.isArray(obj)){
      ret=[];
      for(i=0;i<obj.length;i++){
        ret[i]=deep?dojo.lang.shallowCopy(obj[i],deep):obj[i];
      }
    }else{
      ret=obj;
    }
  }
  return ret;
};
dojo.lang.firstValued=function(){
  for(var i=0;i<arguments.length;i++){
    if(typeof arguments[i]!="undefined"){
      return arguments[i];
    }
  }
  return undefined;
};
dojo.lang.getObjPathValue=function(_137,_138,_139){
  with(dojo.parseObjPath(_137,_138,_139)){
    return dojo.evalProp(prop,obj,_139);
  }
};
dojo.lang.setObjPathValue=function(_13a,_13b,_13c,_13d){
  if(arguments.length<4){
    _13d=true;
  }
  with(dojo.parseObjPath(_13a,_13c,_13d)){
    if(obj&&(_13d||(prop in obj))){
      obj[prop]=_13b;
    }
  }
};
dojo.provide("dojo.io.common");
dojo.io.transports=[];
dojo.io.hdlrFuncNames=["load","error","timeout"];
dojo.io.Request=function(url,_13f,_140,_141){
  if((arguments.length==1)&&(arguments[0].constructor==Object)){
    this.fromKwArgs(arguments[0]);
  }else{
    this.url=url;
    if(_13f){
      this.mimetype=_13f;
    }
    if(_140){
      this.transport=_140;
    }
    if(arguments.length>=4){
      this.changeUrl=_141;
    }
  }
};
dojo.lang.extend(dojo.io.Request,{url:"",mimetype:"text/plain",method:"GET",content:undefined,transport:undefined,changeUrl:undefined,formNode:undefined,sync:false,bindSuccess:false,useCache:false,preventCache:false,load:function(type,data,_144,_145){
},error:function(type,_147,_148,_149){
},timeout:function(type,_14b,_14c,_14d){
},handle:function(type,data,_150,_151){
},timeoutSeconds:0,abort:function(){
},fromKwArgs:function(_152){
  if(_152["url"]){
    _152.url=_152.url.toString();
  }
  if(_152["formNode"]){
    _152.formNode=dojo.byId(_152.formNode);
  }
  if(!_152["method"]&&_152["formNode"]&&_152["formNode"].method){
    _152.method=_152["formNode"].method;
  }
  if(!_152["handle"]&&_152["handler"]){
    _152.handle=_152.handler;
  }
  if(!_152["load"]&&_152["loaded"]){
    _152.load=_152.loaded;
  }
  if(!_152["changeUrl"]&&_152["changeURL"]){
    _152.changeUrl=_152.changeURL;
  }
  _152.encoding=dojo.lang.firstValued(_152["encoding"],djConfig["bindEncoding"],"");
  _152.sendTransport=dojo.lang.firstValued(_152["sendTransport"],djConfig["ioSendTransport"],false);
  var _153=dojo.lang.isFunction;
  for(var x=0;x<dojo.io.hdlrFuncNames.length;x++){
    var fn=dojo.io.hdlrFuncNames[x];
    if(_152[fn]&&_153(_152[fn])){
      continue;
    }
    if(_152["handle"]&&_153(_152["handle"])){
      _152[fn]=_152.handle;
    }
  }
  dojo.lang.mixin(this,_152);
}});
dojo.io.Error=function(msg,type,num){
  this.message=msg;
  this.type=type||"unknown";
  this.number=num||0;
};
dojo.io.transports.addTransport=function(name){
  this.push(name);
  this[name]=dojo.io[name];
};
dojo.io.bind=function(_15a){
  if(!(_15a instanceof dojo.io.Request)){
    try{
      _15a=new dojo.io.Request(_15a);
    }
    catch(e){
      dojo.debug(e);
    }
  }
  var _15b="";
  if(_15a["transport"]){
    _15b=_15a["transport"];
    if(!this[_15b]){
      dojo.io.sendBindError(_15a,"No dojo.io.bind() transport with name '"+_15a["transport"]+"'.");
      return _15a;
    }
    if(!this[_15b].canHandle(_15a)){
      dojo.io.sendBindError(_15a,"dojo.io.bind() transport with name '"+_15a["transport"]+"' cannot handle this type of request.");
      return _15a;
    }
  }else{
    for(var x=0;x<dojo.io.transports.length;x++){
      var tmp=dojo.io.transports[x];
      if((this[tmp])&&(this[tmp].canHandle(_15a))){
        _15b=tmp;
        break;
      }
    }
    if(_15b==""){
      dojo.io.sendBindError(_15a,"None of the loaded transports for dojo.io.bind()"+" can handle the request.");
      return _15a;
    }
  }
  this[_15b].bind(_15a);
  _15a.bindSuccess=true;
  return _15a;
};
dojo.io.sendBindError=function(_15e,_15f){
  if((typeof _15e.error=="function"||typeof _15e.handle=="function")&&(typeof setTimeout=="function"||typeof setTimeout=="object")){
    var _160=new dojo.io.Error(_15f);
    setTimeout(function(){
      _15e[(typeof _15e.error=="function")?"error":"handle"]("error",_160,null,_15e);
    },50);
  }else{
    dojo.raise(_15f);
  }
};
dojo.io.queueBind=function(_161){
  if(!(_161 instanceof dojo.io.Request)){
    try{
      _161=new dojo.io.Request(_161);
    }
    catch(e){
      dojo.debug(e);
    }
  }
  var _162=_161.load;
  _161.load=function(){
    dojo.io._queueBindInFlight=false;
    var ret=_162.apply(this,arguments);
    dojo.io._dispatchNextQueueBind();
    return ret;
  };
  var _164=_161.error;
  _161.error=function(){
    dojo.io._queueBindInFlight=false;
    var ret=_164.apply(this,arguments);
    dojo.io._dispatchNextQueueBind();
    return ret;
  };
  dojo.io._bindQueue.push(_161);
  dojo.io._dispatchNextQueueBind();
  return _161;
};
dojo.io._dispatchNextQueueBind=function(){
  if(!dojo.io._queueBindInFlight){
    dojo.io._queueBindInFlight=true;
    if(dojo.io._bindQueue.length>0){
      dojo.io.bind(dojo.io._bindQueue.shift());
    }else{
      dojo.io._queueBindInFlight=false;
    }
  }
};
dojo.io._bindQueue=[];
dojo.io._queueBindInFlight=false;
dojo.io.argsFromMap=function(map,_167,last){
  var enc=/utf/i.test(_167||"")?encodeURIComponent:dojo.string.encodeAscii;
  var _16a=[];
  var _16b=new Object();
  for(var name in map){
    var _16d=function(elt){
      var val=enc(name)+"="+enc(elt);
      _16a[(last==name)?"push":"unshift"](val);
    };
    if(!_16b[name]){
      var _170=map[name];
      if(dojo.lang.isArray(_170)){
        dojo.lang.forEach(_170,_16d);
      }else{
        _16d(_170);
      }
    }
  }
  return _16a.join("&");
};
dojo.io.setIFrameSrc=function(_171,src,_173){
  try{
    var r=dojo.render.html;
    if(!_173){
      if(r.safari){
        _171.location=src;
      }else{
        frames[_171.name].location=src;
      }
    }else{
      var idoc;
      if(r.ie){
        idoc=_171.contentWindow.document;
      }else{
        if(r.safari){
          idoc=_171.document;
        }else{
          idoc=_171.contentWindow;
        }
      }
      if(!idoc){
        _171.location=src;
        return;
      }else{
        idoc.location.replace(src);
      }
    }
  }
  catch(e){
    dojo.debug(e);
    dojo.debug("setIFrameSrc: "+e);
  }
};
dojo.provide("dojo.lang.array");
dojo.lang.has=function(obj,name){
  try{
    return typeof obj[name]!="undefined";
  }
  catch(e){
    return false;
  }
};
dojo.lang.isEmpty=function(obj){
  if(dojo.lang.isObject(obj)){
    var tmp={};
    var _17a=0;
    for(var x in obj){
      if(obj[x]&&(!tmp[x])){
        _17a++;
        break;
      }
    }
    return _17a==0;
  }else{
    if(dojo.lang.isArrayLike(obj)||dojo.lang.isString(obj)){
      return obj.length==0;
    }
  }
};
dojo.lang.map=function(arr,obj,_17e){
  var _17f=dojo.lang.isString(arr);
  if(_17f){
    arr=arr.split("");
  }
  if(dojo.lang.isFunction(obj)&&(!_17e)){
    _17e=obj;
    obj=dj_global;
  }else{
    if(dojo.lang.isFunction(obj)&&_17e){
      var _180=obj;
      obj=_17e;
      _17e=_180;
    }
  }
  if(Array.map){
    var _181=Array.map(arr,_17e,obj);
  }else{
    var _181=[];
    for(var i=0;i<arr.length;++i){
      _181.push(_17e.call(obj,arr[i]));
    }
  }
  if(_17f){
    return _181.join("");
  }else{
    return _181;
  }
};
dojo.lang.reduce=function(arr,_184,obj,_186){
  var _187=_184;
  var ob=obj?obj:dj_global;
  dojo.lang.map(arr,function(val){
    _187=_186.call(ob,_187,val);
  });
  return _187;
};
dojo.lang.forEach=function(_18a,_18b,_18c){
  if(dojo.lang.isString(_18a)){
    _18a=_18a.split("");
  }
  if(Array.forEach){
    Array.forEach(_18a,_18b,_18c);
  }else{
    if(!_18c){
      _18c=dj_global;
    }
    for(var i=0,l=_18a.length;i<l;i++){
      _18b.call(_18c,_18a[i],i,_18a);
    }
  }
};
dojo.lang._everyOrSome=function(_18f,arr,_191,_192){
  if(dojo.lang.isString(arr)){
    arr=arr.split("");
  }
  if(Array.every){
    return Array[_18f?"every":"some"](arr,_191,_192);
  }else{
    if(!_192){
      _192=dj_global;
    }
    for(var i=0,l=arr.length;i<l;i++){
      var _195=_191.call(_192,arr[i],i,arr);
      if(_18f&&!_195){
        return false;
      }else{
        if((!_18f)&&(_195)){
          return true;
        }
      }
    }
    return Boolean(_18f);
  }
};
dojo.lang.every=function(arr,_197,_198){
  return this._everyOrSome(true,arr,_197,_198);
};
dojo.lang.some=function(arr,_19a,_19b){
  return this._everyOrSome(false,arr,_19a,_19b);
};
dojo.lang.filter=function(arr,_19d,_19e){
  var _19f=dojo.lang.isString(arr);
  if(_19f){
    arr=arr.split("");
  }
  var _1a0;
  if(Array.filter){
    _1a0=Array.filter(arr,_19d,_19e);
  }else{
    if(!_19e){
      if(arguments.length>=3){
        dojo.raise("thisObject doesn't exist!");
      }
      _19e=dj_global;
    }
    _1a0=[];
    for(var i=0;i<arr.length;i++){
      if(_19d.call(_19e,arr[i],i,arr)){
        _1a0.push(arr[i]);
      }
    }
  }
  if(_19f){
    return _1a0.join("");
  }else{
    return _1a0;
  }
};
dojo.lang.unnest=function(){
  var out=[];
  for(var i=0;i<arguments.length;i++){
    if(dojo.lang.isArrayLike(arguments[i])){
      var add=dojo.lang.unnest.apply(this,arguments[i]);
      out=out.concat(add);
    }else{
      out.push(arguments[i]);
    }
  }
  return out;
};
dojo.lang.toArray=function(_1a5,_1a6){
  var _1a7=[];
  for(var i=_1a6||0;i<_1a5.length;i++){
    _1a7.push(_1a5[i]);
  }
  return _1a7;
};
dojo.provide("dojo.lang.func");
dojo.lang.hitch=function(_1a9,_1aa){
  var fcn=(dojo.lang.isString(_1aa)?_1a9[_1aa]:_1aa)||function(){
  };
  return function(){
    return fcn.apply(_1a9,arguments);
  };
};
dojo.lang.anonCtr=0;
dojo.lang.anon={};
dojo.lang.nameAnonFunc=function(_1ac,_1ad,_1ae){
  var nso=(_1ad||dojo.lang.anon);
  if((_1ae)||((dj_global["djConfig"])&&(djConfig["slowAnonFuncLookups"]==true))){
    for(var x in nso){
      try{
        if(nso[x]===_1ac){
          return x;
        }
      }
      catch(e){
      }
    }
  }
  var ret="__"+dojo.lang.anonCtr++;
  while(typeof nso[ret]!="undefined"){
    ret="__"+dojo.lang.anonCtr++;
  }
  nso[ret]=_1ac;
  return ret;
};
dojo.lang.forward=function(_1b2){
  return function(){
    return this[_1b2].apply(this,arguments);
  };
};
dojo.lang.curry=function(ns,func){
  var _1b5=[];
  ns=ns||dj_global;
  if(dojo.lang.isString(func)){
    func=ns[func];
  }
  for(var x=2;x<arguments.length;x++){
    _1b5.push(arguments[x]);
  }
  var _1b7=(func["__preJoinArity"]||func.length)-_1b5.length;
  function gather(_1b8,_1b9,_1ba){
    var _1bb=_1ba;
    var _1bc=_1b9.slice(0);
    for(var x=0;x<_1b8.length;x++){
      _1bc.push(_1b8[x]);
    }
    _1ba=_1ba-_1b8.length;
    if(_1ba<=0){
      var res=func.apply(ns,_1bc);
      _1ba=_1bb;
      return res;
    }else{
      return function(){
        return gather(arguments,_1bc,_1ba);
      };
    }
  }
  return gather([],_1b5,_1b7);
};
dojo.lang.curryArguments=function(ns,func,args,_1c2){
  var _1c3=[];
  var x=_1c2||0;
  for(x=_1c2;x<args.length;x++){
    _1c3.push(args[x]);
  }
  return dojo.lang.curry.apply(dojo.lang,[ns,func].concat(_1c3));
};
dojo.lang.tryThese=function(){
  for(var x=0;x<arguments.length;x++){
    try{
      if(typeof arguments[x]=="function"){
        var ret=(arguments[x]());
        if(ret){
          return ret;
        }
      }
    }
    catch(e){
      dojo.debug(e);
    }
  }
};
dojo.lang.delayThese=function(farr,cb,_1c9,_1ca){
  if(!farr.length){
    if(typeof _1ca=="function"){
      _1ca();
    }
    return;
  }
  if((typeof _1c9=="undefined")&&(typeof cb=="number")){
    _1c9=cb;
    cb=function(){
    };
  }else{
    if(!cb){
      cb=function(){
      };
      if(!_1c9){
        _1c9=0;
      }
    }
  }
  setTimeout(function(){
  (farr.shift())();
  cb();
  dojo.lang.delayThese(farr,cb,_1c9,_1ca);
  },_1c9);
};
dojo.provide("dojo.string.extras");
dojo.string.substituteParams=function(_1cb,hash){
  var map=(typeof hash=="object")?hash:dojo.lang.toArray(arguments,1);
  return _1cb.replace(/\%\{(\w+)\}/g,function(_1ce,key){
  if(typeof (map[key])!="undefined"&&map[key]!=null){
    return map[key];
  }
  dojo.raise("Substitution not found: "+key);
});
};
dojo.string.capitalize=function(str){
  if(!dojo.lang.isString(str)){
    return "";
  }
  if(arguments.length==0){
    str=this;
  }
  var _1d1=str.split(" ");
  for(var i=0;i<_1d1.length;i++){
    _1d1[i]=_1d1[i].charAt(0).toUpperCase()+_1d1[i].substring(1);
  }
  return _1d1.join(" ");
};
dojo.string.isBlank=function(str){
  if(!dojo.lang.isString(str)){
    return true;
  }
  return (dojo.string.trim(str).length==0);
};
dojo.string.encodeAscii=function(str){
  if(!dojo.lang.isString(str)){
    return str;
  }
  var ret="";
  var _1d6=escape(str);
  var _1d7,re=/%u([0-9A-F]{4})/i;
  while((_1d7=_1d6.match(re))){
    var num=Number("0x"+_1d7[1]);
    var _1da=escape("&#"+num+";");
    ret+=_1d6.substring(0,_1d7.index)+_1da;
    _1d6=_1d6.substring(_1d7.index+_1d7[0].length);
  }
  ret+=_1d6.replace(/\+/g,"%2B");
  return ret;
};
dojo.string.escape=function(type,str){
  var args=dojo.lang.toArray(arguments,1);
  switch(type.toLowerCase()){
    case "xml":
    case "html":
    case "xhtml":
    return dojo.string.escapeXml.apply(this,args);
    case "sql":
    return dojo.string.escapeSql.apply(this,args);
    case "regexp":
    case "regex":
    return dojo.string.escapeRegExp.apply(this,args);
    case "javascript":
    case "jscript":
    case "js":
    return dojo.string.escapeJavaScript.apply(this,args);
    case "ascii":
    return dojo.string.encodeAscii.apply(this,args);
    default:
    return str;
  }
};
dojo.string.escapeXml=function(str,_1df){
  str=str.replace(/&/gm,"&amp;").replace(/</gm,"&lt;").replace(/>/gm,"&gt;").replace(/"/gm,"&quot;");
if(!_1df){
str=str.replace(/'/gm,"&#39;");
}
return str;
};
dojo.string.escapeSql=function(str){
  return str.replace(/'/gm,"''");
};
dojo.string.escapeRegExp=function(str){
return str.replace(/\\/gm,"\\\\").replace(/([\f\b\n\t\r[\^$|?*+(){}])/gm,"\\$1");
};
dojo.string.escapeJavaScript=function(str){
return str.replace(/(["'\f\b\n\t\r])/gm,"\\$1");
};
dojo.string.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.string.summary=function(str,len){
  if(!len||str.length<=len){
    return str;
  }
  return str.substring(0,len).replace(/\.+$/,"")+"...";
};
dojo.string.endsWith=function(str,end,_1e8){
  if(_1e8){
    str=str.toLowerCase();
    end=end.toLowerCase();
  }
  if((str.length-end.length)<0){
    return false;
  }
  return str.lastIndexOf(end)==str.length-end.length;
};
dojo.string.endsWithAny=function(str){
  for(var i=1;i<arguments.length;i++){
    if(dojo.string.endsWith(str,arguments[i])){
      return true;
    }
  }
  return false;
};
dojo.string.startsWith=function(str,_1ec,_1ed){
  if(_1ed){
    str=str.toLowerCase();
    _1ec=_1ec.toLowerCase();
  }
  return str.indexOf(_1ec)==0;
};
dojo.string.startsWithAny=function(str){
  for(var i=1;i<arguments.length;i++){
    if(dojo.string.startsWith(str,arguments[i])){
      return true;
    }
  }
  return false;
};
dojo.string.has=function(str){
  for(var i=1;i<arguments.length;i++){
    if(str.indexOf(arguments[i])>-1){
      return true;
    }
  }
  return false;
};
dojo.string.normalizeNewlines=function(text,_1f3){
  if(_1f3=="\n"){
    text=text.replace(/\r\n/g,"\n");
    text=text.replace(/\r/g,"\n");
  }else{
    if(_1f3=="\r"){
      text=text.replace(/\r\n/g,"\r");
      text=text.replace(/\n/g,"\r");
    }else{
      text=text.replace(/([^\r])\n/g,"$1\r\n").replace(/\r([^\n])/g,"\r\n$1");
    }
  }
  return text;
};
dojo.string.splitEscaped=function(str,_1f5){
  var _1f6=[];
  for(var i=0,_1f8=0;i<str.length;i++){
    if(str.charAt(i)=="\\"){
      i++;
      continue;
    }
    if(str.charAt(i)==_1f5){
      _1f6.push(str.substring(_1f8,i));
      _1f8=i+1;
    }
  }
  _1f6.push(str.substr(_1f8));
  return _1f6;
};
dojo.provide("dojo.dom");
dojo.dom.ELEMENT_NODE=1;
dojo.dom.ATTRIBUTE_NODE=2;
dojo.dom.TEXT_NODE=3;
dojo.dom.CDATA_SECTION_NODE=4;
dojo.dom.ENTITY_REFERENCE_NODE=5;
dojo.dom.ENTITY_NODE=6;
dojo.dom.PROCESSING_INSTRUCTION_NODE=7;
dojo.dom.COMMENT_NODE=8;
dojo.dom.DOCUMENT_NODE=9;
dojo.dom.DOCUMENT_TYPE_NODE=10;
dojo.dom.DOCUMENT_FRAGMENT_NODE=11;
dojo.dom.NOTATION_NODE=12;
dojo.dom.dojoml="http://www.dojotoolkit.org/2004/dojoml";
dojo.dom.xmlns={svg:"http://www.w3.org/2000/svg",smil:"http://www.w3.org/2001/SMIL20/",mml:"http://www.w3.org/1998/Math/MathML",cml:"http://www.xml-cml.org",xlink:"http://www.w3.org/1999/xlink",xhtml:"http://www.w3.org/1999/xhtml",xul:"http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul",xbl:"http://www.mozilla.org/xbl",fo:"http://www.w3.org/1999/XSL/Format",xsl:"http://www.w3.org/1999/XSL/Transform",xslt:"http://www.w3.org/1999/XSL/Transform",xi:"http://www.w3.org/2001/XInclude",xforms:"http://www.w3.org/2002/01/xforms",saxon:"http://icl.com/saxon",xalan:"http://xml.apache.org/xslt",xsd:"http://www.w3.org/2001/XMLSchema",dt:"http://www.w3.org/2001/XMLSchema-datatypes",xsi:"http://www.w3.org/2001/XMLSchema-instance",rdf:"http://www.w3.org/1999/02/22-rdf-syntax-ns#",rdfs:"http://www.w3.org/2000/01/rdf-schema#",dc:"http://purl.org/dc/elements/1.1/",dcq:"http://purl.org/dc/qualifiers/1.0","soap-env":"http://schemas.xmlsoap.org/soap/envelope/",wsdl:"http://schemas.xmlsoap.org/wsdl/",AdobeExtensions:"http://ns.adobe.com/AdobeSVGViewerExtensions/3.0/"};
dojo.dom.isNode=function(wh){
  if(typeof Element=="function"){
    try{
      return wh instanceof Element;
    }
    catch(E){
    }
  }else{
    return wh&&!isNaN(wh.nodeType);
  }
};
dojo.dom.getUniqueId=function(){
  var _1fa=dojo.doc();
  do{
    var id="dj_unique_"+(++arguments.callee._idIncrement);
  }while(_1fa.getElementById(id));
  return id;
};
dojo.dom.getUniqueId._idIncrement=0;
dojo.dom.firstElement=dojo.dom.getFirstChildElement=function(_1fc,_1fd){
  var node=_1fc.firstChild;
  while(node&&node.nodeType!=dojo.dom.ELEMENT_NODE){
    node=node.nextSibling;
  }
  if(_1fd&&node&&node.tagName&&node.tagName.toLowerCase()!=_1fd.toLowerCase()){
    node=dojo.dom.nextElement(node,_1fd);
  }
  return node;
};
dojo.dom.lastElement=dojo.dom.getLastChildElement=function(_1ff,_200){
  var node=_1ff.lastChild;
  while(node&&node.nodeType!=dojo.dom.ELEMENT_NODE){
    node=node.previousSibling;
  }
  if(_200&&node&&node.tagName&&node.tagName.toLowerCase()!=_200.toLowerCase()){
    node=dojo.dom.prevElement(node,_200);
  }
  return node;
};
dojo.dom.nextElement=dojo.dom.getNextSiblingElement=function(node,_203){
  if(!node){
    return null;
  }
  do{
    node=node.nextSibling;
  }while(node&&node.nodeType!=dojo.dom.ELEMENT_NODE);
  if(node&&_203&&_203.toLowerCase()!=node.tagName.toLowerCase()){
    return dojo.dom.nextElement(node,_203);
  }
  return node;
};
dojo.dom.prevElement=dojo.dom.getPreviousSiblingElement=function(node,_205){
  if(!node){
    return null;
  }
  if(_205){
    _205=_205.toLowerCase();
  }
  do{
    node=node.previousSibling;
  }while(node&&node.nodeType!=dojo.dom.ELEMENT_NODE);
  if(node&&_205&&_205.toLowerCase()!=node.tagName.toLowerCase()){
    return dojo.dom.prevElement(node,_205);
  }
  return node;
};
dojo.dom.moveChildren=function(_206,_207,trim){
  var _209=0;
  if(trim){
    while(_206.hasChildNodes()&&_206.firstChild.nodeType==dojo.dom.TEXT_NODE){
      _206.removeChild(_206.firstChild);
    }
    while(_206.hasChildNodes()&&_206.lastChild.nodeType==dojo.dom.TEXT_NODE){
      _206.removeChild(_206.lastChild);
    }
  }
  while(_206.hasChildNodes()){
    _207.appendChild(_206.firstChild);
    _209++;
  }
  return _209;
};
dojo.dom.copyChildren=function(_20a,_20b,trim){
  var _20d=_20a.cloneNode(true);
  return this.moveChildren(_20d,_20b,trim);
};
dojo.dom.removeChildren=function(node){
  var _20f=node.childNodes.length;
  while(node.hasChildNodes()){
    node.removeChild(node.firstChild);
  }
  return _20f;
};
dojo.dom.replaceChildren=function(node,_211){
  dojo.dom.removeChildren(node);
  node.appendChild(_211);
};
dojo.dom.removeNode=function(node){
  if(node&&node.parentNode){
    return node.parentNode.removeChild(node);
  }
};
dojo.dom.getAncestors=function(node,_214,_215){
  var _216=[];
  var _217=(_214&&(_214 instanceof Function||typeof _214=="function"));
  while(node){
    if(!_217||_214(node)){
      _216.push(node);
    }
    if(_215&&_216.length>0){
      return _216[0];
    }
    node=node.parentNode;
  }
  if(_215){
    return null;
  }
  return _216;
};
dojo.dom.getAncestorsByTag=function(node,tag,_21a){
  tag=tag.toLowerCase();
  return dojo.dom.getAncestors(node,function(el){
    return ((el.tagName)&&(el.tagName.toLowerCase()==tag));
  },_21a);
};
dojo.dom.getFirstAncestorByTag=function(node,tag){
  return dojo.dom.getAncestorsByTag(node,tag,true);
};
dojo.dom.isDescendantOf=function(node,_21f,_220){
  if(_220&&node){
    node=node.parentNode;
  }
  while(node){
    if(node==_21f){
      return true;
    }
    node=node.parentNode;
  }
  return false;
};
dojo.dom.innerXML=function(node){
  if(node.innerXML){
    return node.innerXML;
  }else{
    if(node.xml){
      return node.xml;
    }else{
      if(typeof XMLSerializer!="undefined"){
        return (new XMLSerializer()).serializeToString(node);
      }
    }
  }
};
dojo.dom.createDocument=function(){
  var doc=null;
  var _223=dojo.doc();
  if(!dj_undef("ActiveXObject")){
    var _224=["MSXML2","Microsoft","MSXML","MSXML3"];
    for(var i=0;i<_224.length;i++){
      try{
        doc=new ActiveXObject(_224[i]+".XMLDOM");
      }
      catch(e){
      }
      if(doc){
        break;
      }
    }
  }else{
    if((_223.implementation)&&(_223.implementation.createDocument)){
      doc=_223.implementation.createDocument("","",null);
    }
  }
  return doc;
};
dojo.dom.createDocumentFromText=function(str,_227){
  if(!_227){
    _227="text/xml";
  }
  if(!dj_undef("DOMParser")){
    var _228=new DOMParser();
    return _228.parseFromString(str,_227);
  }else{
    if(!dj_undef("ActiveXObject")){
      var _229=dojo.dom.createDocument();
      if(_229){
        _229.async=false;
        _229.loadXML(str);
        return _229;
      }else{
        dojo.debug("toXml didn't work?");
      }
    }else{
      var _22a=dojo.doc();
      if(_22a.createElement){
        var tmp=_22a.createElement("xml");
        tmp.innerHTML=str;
        if(_22a.implementation&&_22a.implementation.createDocument){
          var _22c=_22a.implementation.createDocument("foo","",null);
          for(var i=0;i<tmp.childNodes.length;i++){
            _22c.importNode(tmp.childNodes.item(i),true);
          }
          return _22c;
        }
        return ((tmp.document)&&(tmp.document.firstChild?tmp.document.firstChild:tmp));
      }
    }
  }
  return null;
};
dojo.dom.prependChild=function(node,_22f){
  if(_22f.firstChild){
    _22f.insertBefore(node,_22f.firstChild);
  }else{
    _22f.appendChild(node);
  }
  return true;
};
dojo.dom.insertBefore=function(node,ref,_232){
  if(_232!=true&&(node===ref||node.nextSibling===ref)){
    return false;
  }
  var _233=ref.parentNode;
  _233.insertBefore(node,ref);
  return true;
};
dojo.dom.insertAfter=function(node,ref,_236){
  var pn=ref.parentNode;
  if(ref==pn.lastChild){
    if((_236!=true)&&(node===ref)){
      return false;
    }
    pn.appendChild(node);
  }else{
    return this.insertBefore(node,ref.nextSibling,_236);
  }
  return true;
};
dojo.dom.insertAtPosition=function(node,ref,_23a){
  if((!node)||(!ref)||(!_23a)){
    return false;
  }
  switch(_23a.toLowerCase()){
    case "before":
    return dojo.dom.insertBefore(node,ref);
    case "after":
    return dojo.dom.insertAfter(node,ref);
    case "first":
    if(ref.firstChild){
      return dojo.dom.insertBefore(node,ref.firstChild);
    }else{
      ref.appendChild(node);
      return true;
    }
    break;
    default:
    ref.appendChild(node);
    return true;
  }
};
dojo.dom.insertAtIndex=function(node,_23c,_23d){
  var _23e=_23c.childNodes;
  if(!_23e.length){
    _23c.appendChild(node);
    return true;
  }
  var _23f=null;
  for(var i=0;i<_23e.length;i++){
    var _241=_23e.item(i)["getAttribute"]?parseInt(_23e.item(i).getAttribute("dojoinsertionindex")):-1;
    if(_241<_23d){
      _23f=_23e.item(i);
    }
  }
  if(_23f){
    return dojo.dom.insertAfter(node,_23f);
  }else{
    return dojo.dom.insertBefore(node,_23e.item(0));
  }
};
dojo.dom.textContent=function(node,text){
  if(arguments.length>1){
    var _244=dojo.doc();
    dojo.dom.replaceChildren(node,_244.createTextNode(text));
    return text;
  }else{
    if(node.textContent!=undefined){
      return node.textContent;
    }
    var _245="";
    if(node==null){
      return _245;
    }
    for(var i=0;i<node.childNodes.length;i++){
      switch(node.childNodes[i].nodeType){
        case 1:
        case 5:
        _245+=dojo.dom.textContent(node.childNodes[i]);
        break;
        case 3:
        case 2:
        case 4:
        _245+=node.childNodes[i].nodeValue;
        break;
        default:
        break;
      }
    }
    return _245;
  }
};
dojo.dom.hasParent=function(node){
  return node&&node.parentNode&&dojo.dom.isNode(node.parentNode);
};
dojo.dom.isTag=function(node){
  if(node&&node.tagName){
    for(var i=1;i<arguments.length;i++){
      if(node.tagName==String(arguments[i])){
        return String(arguments[i]);
      }
    }
  }
  return "";
};
dojo.dom.setAttributeNS=function(elem,_24b,_24c,_24d){
  if(elem==null||((elem==undefined)&&(typeof elem=="undefined"))){
    dojo.raise("No element given to dojo.dom.setAttributeNS");
  }
  if(!((elem.setAttributeNS==undefined)&&(typeof elem.setAttributeNS=="undefined"))){
    elem.setAttributeNS(_24b,_24c,_24d);
  }else{
    var _24e=elem.ownerDocument;
    var _24f=_24e.createNode(2,_24c,_24b);
    _24f.nodeValue=_24d;
    elem.setAttributeNode(_24f);
  }
};
dojo.provide("dojo.undo.browser");
try{
  if((!djConfig["preventBackButtonFix"])&&(!dojo.hostenv.post_load_)){
    document.write("<iframe style='border: 0px; width: 1px; height: 1px; position: absolute; bottom: 0px; right: 0px; visibility: visible;' name='djhistory' id='djhistory' src='"+(dojo.hostenv.getBaseScriptUri()+"iframe_history.html")+"'></iframe>");
  }
}
catch(e){
}
if(dojo.render.html.opera){
  dojo.debug("Opera is not supported with dojo.undo.browser, so back/forward detection will not work.");
}
dojo.undo.browser={initialHref:window.location.href,initialHash:window.location.hash,moveForward:false,historyStack:[],forwardStack:[],historyIframe:null,bookmarkAnchor:null,locationTimer:null,setInitialState:function(args){
  this.initialState=this._createState(this.initialHref,args,this.initialHash);
},addToHistory:function(args){
  this.forwardStack=[];
  var hash=null;
  var url=null;
  if(!this.historyIframe){
    this.historyIframe=window.frames["djhistory"];
  }
  if(!this.bookmarkAnchor){
    this.bookmarkAnchor=document.createElement("a");
    dojo.body().appendChild(this.bookmarkAnchor);
    this.bookmarkAnchor.style.display="none";
  }
  if(args["changeUrl"]){
    hash="#"+((args["changeUrl"]!==true)?args["changeUrl"]:(new Date()).getTime());
    if(this.historyStack.length==0&&this.initialState.urlHash==hash){
      this.initialState=this._createState(url,args,hash);
      return;
    }else{
      if(this.historyStack.length>0&&this.historyStack[this.historyStack.length-1].urlHash==hash){
        this.historyStack[this.historyStack.length-1]=this._createState(url,args,hash);
        return;
      }
    }
    this.changingUrl=true;
    setTimeout("window.location.href = '"+hash+"'; dojo.undo.browser.changingUrl = false;",1);
    this.bookmarkAnchor.href=hash;
    if(dojo.render.html.ie){
      url=this._loadIframeHistory();
      var _254=args["back"]||args["backButton"]||args["handle"];
      var tcb=function(_256){
        if(window.location.hash!=""){
          setTimeout("window.location.href = '"+hash+"';",1);
        }
        _254.apply(this,[_256]);
      };
      if(args["back"]){
        args.back=tcb;
      }else{
        if(args["backButton"]){
          args.backButton=tcb;
        }else{
          if(args["handle"]){
            args.handle=tcb;
          }
        }
      }
      var _257=args["forward"]||args["forwardButton"]||args["handle"];
      var tfw=function(_259){
        if(window.location.hash!=""){
          window.location.href=hash;
        }
        if(_257){
          _257.apply(this,[_259]);
        }
      };
      if(args["forward"]){
        args.forward=tfw;
      }else{
        if(args["forwardButton"]){
          args.forwardButton=tfw;
        }else{
          if(args["handle"]){
            args.handle=tfw;
          }
        }
      }
    }else{
      if(dojo.render.html.moz){
        if(!this.locationTimer){
          this.locationTimer=setInterval("dojo.undo.browser.checkLocation();",200);
        }
      }
    }
  }else{
    url=this._loadIframeHistory();
  }
  this.historyStack.push(this._createState(url,args,hash));
},checkLocation:function(){
  if(!this.changingUrl){
    var hsl=this.historyStack.length;
    if((window.location.hash==this.initialHash||window.location.href==this.initialHref)&&(hsl==1)){
      this.handleBackButton();
      return;
    }
    if(this.forwardStack.length>0){
      if(this.forwardStack[this.forwardStack.length-1].urlHash==window.location.hash){
        this.handleForwardButton();
        return;
      }
    }
    if((hsl>=2)&&(this.historyStack[hsl-2])){
      if(this.historyStack[hsl-2].urlHash==window.location.hash){
        this.handleBackButton();
        return;
      }
    }
  }
},iframeLoaded:function(evt,_25c){
  if(!dojo.render.html.opera){
    var _25d=this._getUrlQuery(_25c.href);
    if(_25d==null){
      if(this.historyStack.length==1){
        this.handleBackButton();
      }
      return;
    }
    if(this.moveForward){
      this.moveForward=false;
      return;
    }
    if(this.historyStack.length>=2&&_25d==this._getUrlQuery(this.historyStack[this.historyStack.length-2].url)){
      this.handleBackButton();
    }else{
      if(this.forwardStack.length>0&&_25d==this._getUrlQuery(this.forwardStack[this.forwardStack.length-1].url)){
        this.handleForwardButton();
      }
    }
  }
},handleBackButton:function(){
  var _25e=this.historyStack.pop();
  if(!_25e){
    return;
  }
  var last=this.historyStack[this.historyStack.length-1];
  if(!last&&this.historyStack.length==0){
    last=this.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");
        }
      }
    }
  }
  this.forwardStack.push(_25e);
},handleForwardButton:function(){
  var last=this.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");
      }
    }
  }
  this.historyStack.push(last);
},_createState:function(url,args,hash){
  return {"url":url,"kwArgs":args,"urlHash":hash};
},_getUrlQuery:function(url){
  var _265=url.split("?");
  if(_265.length<2){
    return null;
  }else{
    return _265[1];
  }
},_loadIframeHistory:function(){
  var url=dojo.hostenv.getBaseScriptUri()+"iframe_history.html?"+(new Date()).getTime();
  this.moveForward=true;
  dojo.io.setIFrameSrc(this.historyIframe,url,false);
  return url;
}};
dojo.provide("dojo.io.BrowserIO");
dojo.io.checkChildrenForFile=function(node){
  var _268=false;
  var _269=node.getElementsByTagName("input");
  dojo.lang.forEach(_269,function(_26a){
    if(_268){
      return;
    }
    if(_26a.getAttribute("type")=="file"){
      _268=true;
    }
  });
  return _268;
};
dojo.io.formHasFile=function(_26b){
  return dojo.io.checkChildrenForFile(_26b);
};
dojo.io.updateNode=function(node,_26d){
  node=dojo.byId(node);
  var args=_26d;
  if(dojo.lang.isString(_26d)){
    args={url:_26d};
  }
  args.mimetype="text/html";
  args.load=function(t,d,e){
    while(node.firstChild){
      if(dojo["event"]){
        try{
          dojo.event.browser.clean(node.firstChild);
        }
        catch(e){
        }
      }
      node.removeChild(node.firstChild);
    }
    node.innerHTML=d;
  };
  dojo.io.bind(args);
};
dojo.io.formFilter=function(node){
  var type=(node.type||"").toLowerCase();
  return !node.disabled&&node.name&&!dojo.lang.inArray(["file","submit","image","reset","button"],type);
};
dojo.io.encodeForm=function(_274,_275,_276){
  if((!_274)||(!_274.tagName)||(!_274.tagName.toLowerCase()=="form")){
    dojo.raise("Attempted to encode a non-form element.");
  }
  if(!_276){
    _276=dojo.io.formFilter;
  }
  var enc=/utf/i.test(_275||"")?encodeURIComponent:dojo.string.encodeAscii;
  var _278=[];
  for(var i=0;i<_274.elements.length;i++){
    var elm=_274.elements[i];
    if(!elm||elm.tagName.toLowerCase()=="fieldset"||!_276(elm)){
      continue;
    }
    var name=enc(elm.name);
    var type=elm.type.toLowerCase();
    if(type=="select-multiple"){
      for(var j=0;j<elm.options.length;j++){
        if(elm.options[j].selected){
          _278.push(name+"="+enc(elm.options[j].value));
        }
      }
    }else{
      if(dojo.lang.inArray(["radio","checkbox"],type)){
        if(elm.checked){
          _278.push(name+"="+enc(elm.value));
        }
      }else{
        _278.push(name+"="+enc(elm.value));
      }
    }
  }
  var _27e=_274.getElementsByTagName("input");
  for(var i=0;i<_27e.length;i++){
    var _27f=_27e[i];
    if(_27f.type.toLowerCase()=="image"&&_27f.form==_274&&_276(_27f)){
      var name=enc(_27f.name);
      _278.push(name+"="+enc(_27f.value));
      _278.push(name+".x=0");
      _278.push(name+".y=0");
    }
  }
  return _278.join("&")+"&";
};
dojo.io.FormBind=function(args){
  this.bindArgs={};
  if(args&&args.formNode){
    this.init(args);
  }else{
    if(args){
      this.init({formNode:args});
    }
  }
};
dojo.lang.extend(dojo.io.FormBind,{form:null,bindArgs:null,clickedButton:null,init:function(args){
  var form=dojo.byId(args.formNode);
  if(!form||!form.tagName||form.tagName.toLowerCase()!="form"){
    throw new Error("FormBind: Couldn't apply, invalid form");
  }else{
    if(this.form==form){
      return;
    }else{
      if(this.form){
        throw new Error("FormBind: Already applied to a form");
      }
    }
  }
  dojo.lang.mixin(this.bindArgs,args);
  this.form=form;
  this.connect(form,"onsubmit","submit");
  for(var i=0;i<form.elements.length;i++){
    var node=form.elements[i];
    if(node&&node.type&&dojo.lang.inArray(["submit","button"],node.type.toLowerCase())){
      this.connect(node,"onclick","click");
    }
  }
  var _285=form.getElementsByTagName("input");
  for(var i=0;i<_285.length;i++){
    var _286=_285[i];
    if(_286.type.toLowerCase()=="image"&&_286.form==form){
      this.connect(_286,"onclick","click");
    }
  }
},onSubmit:function(form){
  return true;
},submit:function(e){
  e.preventDefault();
  if(this.onSubmit(this.form)){
    dojo.io.bind(dojo.lang.mixin(this.bindArgs,{formFilter:dojo.lang.hitch(this,"formFilter")}));
  }
},click:function(e){
  var node=e.currentTarget;
  if(node.disabled){
    return;
  }
  this.clickedButton=node;
},formFilter:function(node){
  var type=(node.type||"").toLowerCase();
  var _28d=false;
  if(node.disabled||!node.name){
    _28d=false;
  }else{
    if(dojo.lang.inArray(["submit","button","image"],type)){
      if(!this.clickedButton){
        this.clickedButton=node;
      }
      _28d=node==this.clickedButton;
    }else{
      _28d=!dojo.lang.inArray(["file","submit","reset","button"],type);
    }
  }
  return _28d;
},connect:function(_28e,_28f,_290){
  if(dojo.evalObjPath("dojo.event.connect")){
    dojo.event.connect(_28e,_28f,this,_290);
  }else{
    var fcn=dojo.lang.hitch(this,_290);
    _28e[_28f]=function(e){
      if(!e){
        e=window.event;
      }
      if(!e.currentTarget){
        e.currentTarget=e.srcElement;
      }
      if(!e.preventDefault){
        e.preventDefault=function(){
          window.event.returnValue=false;
        };
      }
      fcn(e);
    };
  }
}});
dojo.io.XMLHTTPTransport=new function(){
  var _293=this;
  var _294={};
  this.useCache=false;
  this.preventCache=false;
  function getCacheKey(url,_296,_297){
    return url+"|"+_296+"|"+_297.toLowerCase();
  }
  function addToCache(url,_299,_29a,http){
    _294[getCacheKey(url,_299,_29a)]=http;
  }
  function getFromCache(url,_29d,_29e){
    return _294[getCacheKey(url,_29d,_29e)];
  }
  this.clearCache=function(){
    _294={};
  };
  function doLoad(_29f,http,url,_2a2,_2a3){
    if(((http.status>=200)&&(http.status<300))||(http.status==304)||(location.protocol=="file:"&&(http.status==0||http.status==undefined))||(location.protocol=="chrome:"&&(http.status==0||http.status==undefined))){
      var ret;
      if(_29f.method.toLowerCase()=="head"){
        var _2a5=http.getAllResponseHeaders();
        ret={};
        ret.toString=function(){
          return _2a5;
        };
        var _2a6=_2a5.split(/[\r\n]+/g);
        for(var i=0;i<_2a6.length;i++){
          var pair=_2a6[i].match(/^([^:]+)\s*:\s*(.+)$/i);
          if(pair){
            ret[pair[1]]=pair[2];
          }
        }
      }else{
        if(_29f.mimetype=="text/javascript"){
          try{
            ret=dj_eval(http.responseText);
          }
          catch(e){
            dojo.debug(e);
            dojo.debug(http.responseText);
            ret=null;
          }
        }else{
          if(_29f.mimetype=="text/json"||_29f.mimetype=="application/json"){
            try{
              ret=dj_eval("("+http.responseText+")");
            }
            catch(e){
              dojo.debug(e);
              dojo.debug(http.responseText);
              ret=false;
            }
          }else{
            if((_29f.mimetype=="application/xml")||(_29f.mimetype=="text/xml")){
              ret=http.responseXML;
              if(!ret||typeof ret=="string"||!http.getResponseHeader("Content-Type")){
                ret=dojo.dom.createDocumentFromText(http.responseText);
              }
            }else{
              ret=http.responseText;
            }
          }
        }
      }
      if(_2a3){
        addToCache(url,_2a2,_29f.method,http);
      }
      _29f[(typeof _29f.load=="function")?"load":"handle"]("load",ret,http,_29f);
    }else{
      var _2a9=new dojo.io.Error("XMLHttpTransport Error: "+http.status+" "+http.statusText);
      _29f[(typeof _29f.error=="function")?"error":"handle"]("error",_2a9,http,_29f);
    }
  }
  function setHeaders(http,_2ab){
    if(_2ab["headers"]){
      for(var _2ac in _2ab["headers"]){
        if(_2ac.toLowerCase()=="content-type"&&!_2ab["contentType"]){
          _2ab["contentType"]=_2ab["headers"][_2ac];
        }else{
          http.setRequestHeader(_2ac,_2ab["headers"][_2ac]);
        }
      }
    }
  }
  this.inFlight=[];
  this.inFlightTimer=null;
  this.startWatchingInFlight=function(){
    if(!this.inFlightTimer){
      this.inFlightTimer=setTimeout("dojo.io.XMLHTTPTransport.watchInFlight();",10);
    }
  };
  this.watchInFlight=function(){
    var now=null;
    if(!dojo.hostenv._blockAsync&&!_293._blockAsync){
      for(var x=this.inFlight.length-1;x>=0;x--){
        try{
          var tif=this.inFlight[x];
          if(!tif||tif.http._aborted||!tif.http.readyState){
            this.inFlight.splice(x,1);
            continue;
          }
          if(4==tif.http.readyState){
            this.inFlight.splice(x,1);
            doLoad(tif.req,tif.http,tif.url,tif.query,tif.useCache);
          }else{
            if(tif.startTime){
              if(!now){
                now=(new Date()).getTime();
              }
              if(tif.startTime+(tif.req.timeoutSeconds*1000)<now){
                if(typeof tif.http.abort=="function"){
                  tif.http.abort();
                }
                this.inFlight.splice(x,1);
                tif.req[(typeof tif.req.timeout=="function")?"timeout":"handle"]("timeout",null,tif.http,tif.req);
              }
            }
          }
        }
        catch(e){
          try{
            var _2b0=new dojo.io.Error("XMLHttpTransport.watchInFlight Error: "+e);
            tif.req[(typeof tif.req.error=="function")?"error":"handle"]("error",_2b0,tif.http,tif.req);
          }
          catch(e2){
            dojo.debug("XMLHttpTransport error callback failed: "+e2);
          }
        }
      }
    }
    clearTimeout(this.inFlightTimer);
    if(this.inFlight.length==0){
      this.inFlightTimer=null;
      return;
    }
    this.inFlightTimer=setTimeout("dojo.io.XMLHTTPTransport.watchInFlight();",10);
  };
  var _2b1=dojo.hostenv.getXmlhttpObject()?true:false;
  this.canHandle=function(_2b2){
    return _2b1&&dojo.lang.inArray(["text/plain","text/html","application/xml","text/xml","text/javascript","text/json","application/json"],(_2b2["mimetype"].toLowerCase()||""))&&!(_2b2["formNode"]&&dojo.io.formHasFile(_2b2["formNode"]));
  };
  this.multipartBoundary="45309FFF-BD65-4d50-99C9-36986896A96F";
  this.bind=function(_2b3){
    if(!_2b3["url"]){
      if(!_2b3["formNode"]&&(_2b3["backButton"]||_2b3["back"]||_2b3["changeUrl"]||_2b3["watchForURL"])&&(!djConfig.preventBackButtonFix)){
        dojo.deprecated("Using dojo.io.XMLHTTPTransport.bind() to add to browser history without doing an IO request","Use dojo.undo.browser.addToHistory() instead.","0.4");
        dojo.undo.browser.addToHistory(_2b3);
        return true;
      }
    }
    var url=_2b3.url;
    var _2b5="";
    if(_2b3["formNode"]){
      var ta=_2b3.formNode.getAttribute("action");
      if((ta)&&(!_2b3["url"])){
        url=ta;
      }
      var tp=_2b3.formNode.getAttribute("method");
      if((tp)&&(!_2b3["method"])){
        _2b3.method=tp;
      }
      _2b5+=dojo.io.encodeForm(_2b3.formNode,_2b3.encoding,_2b3["formFilter"]);
    }
    if(url.indexOf("#")>-1){
      dojo.debug("Warning: dojo.io.bind: stripping hash values from url:",url);
      url=url.split("#")[0];
    }
    if(_2b3["file"]){
      _2b3.method="post";
    }
    if(!_2b3["method"]){
      _2b3.method="get";
    }
    if(_2b3.method.toLowerCase()=="get"){
      _2b3.multipart=false;
    }else{
      if(_2b3["file"]){
        _2b3.multipart=true;
      }else{
        if(!_2b3["multipart"]){
          _2b3.multipart=false;
        }
      }
    }
    if(_2b3["backButton"]||_2b3["back"]||_2b3["changeUrl"]){
      dojo.undo.browser.addToHistory(_2b3);
    }
    var _2b8=_2b3["content"]||{};
    if(_2b3.sendTransport){
      _2b8["dojo.transport"]="xmlhttp";
    }
    do{
      if(_2b3.postContent){
        _2b5=_2b3.postContent;
        break;
      }
      if(_2b8){
        _2b5+=dojo.io.argsFromMap(_2b8,_2b3.encoding);
      }
      if(_2b3.method.toLowerCase()=="get"||!_2b3.multipart){
        break;
      }
      var t=[];
      if(_2b5.length){
        var q=_2b5.split("&");
        for(var i=0;i<q.length;++i){
          if(q[i].length){
            var p=q[i].split("=");
            t.push("--"+this.multipartBoundary,"Content-Disposition: form-data; name=\""+p[0]+"\"","",p[1]);
          }
        }
      }
      if(_2b3.file){
        if(dojo.lang.isArray(_2b3.file)){
          for(var i=0;i<_2b3.file.length;++i){
            var o=_2b3.file[i];
            t.push("--"+this.multipartBoundary,"Content-Disposition: form-data; name=\""+o.name+"\"; filename=\""+("fileName" in o?o.fileName:o.name)+"\"","Content-Type: "+("contentType" in o?o.contentType:"application/octet-stream"),"",o.content);
          }
        }else{
          var o=_2b3.file;
          t.push("--"+this.multipartBoundary,"Content-Disposition: form-data; name=\""+o.name+"\"; filename=\""+("fileName" in o?o.fileName:o.name)+"\"","Content-Type: "+("contentType" in o?o.contentType:"application/octet-stream"),"",o.content);
        }
      }
      if(t.length){
        t.push("--"+this.multipartBoundary+"--","");
        _2b5=t.join("\r\n");
      }
    }while(false);
    var _2be=_2b3["sync"]?false:true;
    var _2bf=_2b3["preventCache"]||(this.preventCache==true&&_2b3["preventCache"]!=false);
    var _2c0=_2b3["useCache"]==true||(this.useCache==true&&_2b3["useCache"]!=false);
    if(!_2bf&&_2c0){
      var _2c1=getFromCache(url,_2b5,_2b3.method);
      if(_2c1){
        doLoad(_2b3,_2c1,url,_2b5,false);
        return;
      }
    }
    var http=dojo.hostenv.getXmlhttpObject(_2b3);
    var _2c3=false;
    if(_2be){
      var _2c4=this.inFlight.push({"req":_2b3,"http":http,"url":url,"query":_2b5,"useCache":_2c0,"startTime":_2b3.timeoutSeconds?(new Date()).getTime():0});
      this.startWatchingInFlight();
    }else{
      _293._blockAsync=true;
    }
    if(_2b3.method.toLowerCase()=="post"){
      if(!_2b3.user){
        http.open("POST",url,_2be);
      }else{
        http.open("POST",url,_2be,_2b3.user,_2b3.password);
      }
      setHeaders(http,_2b3);
      http.setRequestHeader("Content-Type",_2b3.multipart?("multipart/form-data; boundary="+this.multipartBoundary):(_2b3.contentType||"application/x-www-form-urlencoded"));
      try{
        http.send(_2b5);
      }
      catch(e){
        if(typeof http.abort=="function"){
          http.abort();
        }
        doLoad(_2b3,{status:404},url,_2b5,_2c0);
      }
    }else{
      var _2c5=url;
      if(_2b5!=""){
        _2c5+=(_2c5.indexOf("?")>-1?"&":"?")+_2b5;
      }
      if(_2bf){
        _2c5+=(dojo.string.endsWithAny(_2c5,"?","&")?"":(_2c5.indexOf("?")>-1?"&":"?"))+"dojo.preventCache="+new Date().valueOf();
      }
      if(!_2b3.user){
        http.open(_2b3.method.toUpperCase(),_2c5,_2be);
      }else{
        http.open(_2b3.method.toUpperCase(),_2c5,_2be,_2b3.user,_2b3.password);
      }
      setHeaders(http,_2b3);
      try{
        http.send(null);
      }
      catch(e){
        if(typeof http.abort=="function"){
          http.abort();
        }
        doLoad(_2b3,{status:404},url,_2b5,_2c0);
      }
    }
    if(!_2be){
      doLoad(_2b3,http,url,_2b5,_2c0);
      _293._blockAsync=false;
    }
    _2b3.abort=function(){
      try{
        http._aborted=true;
      }
      catch(e){
      }
      return http.abort();
    };
    return;
  };
  dojo.io.transports.addTransport("XMLHTTPTransport");
};
dojo.provide("dojo.io.cookie");
dojo.io.cookie.setCookie=function(name,_2c7,days,path,_2ca,_2cb){
  var _2cc=-1;
  if(typeof days=="number"&&days>=0){
    var d=new Date();
    d.setTime(d.getTime()+(days*24*60*60*1000));
    _2cc=d.toGMTString();
  }
  _2c7=escape(_2c7);
  document.cookie=name+"="+_2c7+";"+(_2cc!=-1?" expires="+_2cc+";":"")+(path?"path="+path:"")+(_2ca?"; domain="+_2ca:"")+(_2cb?"; secure":"");
};
dojo.io.cookie.set=dojo.io.cookie.setCookie;
dojo.io.cookie.getCookie=function(name){
  var idx=document.cookie.lastIndexOf(name+"=");
  if(idx==-1){
    return null;
  }
  var _2d0=document.cookie.substring(idx+name.length+1);
  var end=_2d0.indexOf(";");
  if(end==-1){
    end=_2d0.length;
  }
  _2d0=_2d0.substring(0,end);
  _2d0=unescape(_2d0);
  return _2d0;
};
dojo.io.cookie.get=dojo.io.cookie.getCookie;
dojo.io.cookie.deleteCookie=function(name){
  dojo.io.cookie.setCookie(name,"-",0);
};
dojo.io.cookie.setObjectCookie=function(name,obj,days,path,_2d7,_2d8,_2d9){
  if(arguments.length==5){
    _2d9=_2d7;
    _2d7=null;
    _2d8=null;
  }
  var _2da=[],_2db,_2dc="";
  if(!_2d9){
    _2db=dojo.io.cookie.getObjectCookie(name);
  }
  if(days>=0){
    if(!_2db){
      _2db={};
    }
    for(var prop in obj){
      if(prop==null){
        delete _2db[prop];
      }else{
        if(typeof obj[prop]=="string"||typeof obj[prop]=="number"){
          _2db[prop]=obj[prop];
        }
      }
    }
    prop=null;
    for(var prop in _2db){
      _2da.push(escape(prop)+"="+escape(_2db[prop]));
    }
    _2dc=_2da.join("&");
  }
  dojo.io.cookie.setCookie(name,_2dc,days,path,_2d7,_2d8);
};
dojo.io.cookie.getObjectCookie=function(name){
  var _2df=null,_2e0=dojo.io.cookie.getCookie(name);
  if(_2e0){
    _2df={};
    var _2e1=_2e0.split("&");
    for(var i=0;i<_2e1.length;i++){
      var pair=_2e1[i].split("=");
      var _2e4=pair[1];
      if(isNaN(_2e4)){
        _2e4=unescape(pair[1]);
      }
      _2df[unescape(pair[0])]=_2e4;
    }
  }
  return _2df;
};
dojo.io.cookie.isSupported=function(){
  if(typeof navigator.cookieEnabled!="boolean"){
    dojo.io.cookie.setCookie("__TestingYourBrowserForCookieSupport__","CookiesAllowed",90,null);
    var _2e5=dojo.io.cookie.getCookie("__TestingYourBrowserForCookieSupport__");
    navigator.cookieEnabled=(_2e5=="CookiesAllowed");
    if(navigator.cookieEnabled){
      this.deleteCookie("__TestingYourBrowserForCookieSupport__");
    }
  }
  return navigator.cookieEnabled;
};
if(!dojo.io.cookies){
  dojo.io.cookies=dojo.io.cookie;
}
dojo.provide("dojo.io.*");
dojo.provide("dojo.io");
dojo.deprecated("dojo.io","replaced by dojo.io.*","0.5");
dojo.provide("dojo.event.common");
dojo.event=new function(){
  this._canTimeout=dojo.lang.isFunction(dj_global["setTimeout"])||dojo.lang.isAlien(dj_global["setTimeout"]);
  function interpolateArgs(args,_2e7){
    var dl=dojo.lang;
    var ao={srcObj:dj_global,srcFunc:null,adviceObj:dj_global,adviceFunc:null,aroundObj:null,aroundFunc:null,adviceType:(args.length>2)?args[0]:"after",precedence:"last",once:false,delay:null,rate:0,adviceMsg:false};
    switch(args.length){
      case 0:
      return;
      case 1:
      return;
      case 2:
      ao.srcFunc=args[0];
      ao.adviceFunc=args[1];
      break;
      case 3:
      if((dl.isObject(args[0]))&&(dl.isString(args[1]))&&(dl.isString(args[2]))){
        ao.adviceType="after";
        ao.srcObj=args[0];
        ao.srcFunc=args[1];
        ao.adviceFunc=args[2];
      }else{
        if((dl.isString(args[1]))&&(dl.isString(args[2]))){
          ao.srcFunc=args[1];
          ao.adviceFunc=args[2];
        }else{
          if((dl.isObject(args[0]))&&(dl.isString(args[1]))&&(dl.isFunction(args[2]))){
            ao.adviceType="after";
            ao.srcObj=args[0];
            ao.srcFunc=args[1];
            var _2ea=dl.nameAnonFunc(args[2],ao.adviceObj,_2e7);
            ao.adviceFunc=_2ea;
          }else{
            if((dl.isFunction(args[0]))&&(dl.isObject(args[1]))&&(dl.isString(args[2]))){
              ao.adviceType="after";
              ao.srcObj=dj_global;
              var _2ea=dl.nameAnonFunc(args[0],ao.srcObj,_2e7);
              ao.srcFunc=_2ea;
              ao.adviceObj=args[1];
              ao.adviceFunc=args[2];
            }
          }
        }
      }
      break;
      case 4:
      if((dl.isObject(args[0]))&&(dl.isObject(args[2]))){
        ao.adviceType="after";
        ao.srcObj=args[0];
        ao.srcFunc=args[1];
        ao.adviceObj=args[2];
        ao.adviceFunc=args[3];
      }else{
        if((dl.isString(args[0]))&&(dl.isString(args[1]))&&(dl.isObject(args[2]))){
          ao.adviceType=args[0];
          ao.srcObj=dj_global;
          ao.srcFunc=args[1];
          ao.adviceObj=args[2];
          ao.adviceFunc=args[3];
        }else{
          if((dl.isString(args[0]))&&(dl.isFunction(args[1]))&&(dl.isObject(args[2]))){
            ao.adviceType=args[0];
            ao.srcObj=dj_global;
            var _2ea=dl.nameAnonFunc(args[1],dj_global,_2e7);
            ao.srcFunc=_2ea;
            ao.adviceObj=args[2];
            ao.adviceFunc=args[3];
          }else{
            if((dl.isString(args[0]))&&(dl.isObject(args[1]))&&(dl.isString(args[2]))&&(dl.isFunction(args[3]))){
              ao.srcObj=args[1];
              ao.srcFunc=args[2];
              var _2ea=dl.nameAnonFunc(args[3],dj_global,_2e7);
              ao.adviceObj=dj_global;
              ao.adviceFunc=_2ea;
            }else{
              if(dl.isObject(args[1])){
                ao.srcObj=args[1];
                ao.srcFunc=args[2];
                ao.adviceObj=dj_global;
                ao.adviceFunc=args[3];
              }else{
                if(dl.isObject(args[2])){
                  ao.srcObj=dj_global;
                  ao.srcFunc=args[1];
                  ao.adviceObj=args[2];
                  ao.adviceFunc=args[3];
                }else{
                  ao.srcObj=ao.adviceObj=ao.aroundObj=dj_global;
                  ao.srcFunc=args[1];
                  ao.adviceFunc=args[2];
                  ao.aroundFunc=args[3];
                }
              }
            }
          }
        }
      }
      break;
      case 6:
      ao.srcObj=args[1];
      ao.srcFunc=args[2];
      ao.adviceObj=args[3];
      ao.adviceFunc=args[4];
      ao.aroundFunc=args[5];
      ao.aroundObj=dj_global;
      break;
      default:
      ao.srcObj=args[1];
      ao.srcFunc=args[2];
      ao.adviceObj=args[3];
      ao.adviceFunc=args[4];
      ao.aroundObj=args[5];
      ao.aroundFunc=args[6];
      ao.once=args[7];
      ao.delay=args[8];
      ao.rate=args[9];
      ao.adviceMsg=args[10];
      break;
    }
    if(dl.isFunction(ao.aroundFunc)){
      var _2ea=dl.nameAnonFunc(ao.aroundFunc,ao.aroundObj,_2e7);
      ao.aroundFunc=_2ea;
    }
    if(dl.isFunction(ao.srcFunc)){
      ao.srcFunc=dl.getNameInObj(ao.srcObj,ao.srcFunc);
    }
    if(dl.isFunction(ao.adviceFunc)){
      ao.adviceFunc=dl.getNameInObj(ao.adviceObj,ao.adviceFunc);
    }
    if((ao.aroundObj)&&(dl.isFunction(ao.aroundFunc))){
      ao.aroundFunc=dl.getNameInObj(ao.aroundObj,ao.aroundFunc);
    }
    if(!ao.srcObj){
      dojo.raise("bad srcObj for srcFunc: "+ao.srcFunc);
    }
    if(!ao.adviceObj){
      dojo.raise("bad adviceObj for adviceFunc: "+ao.adviceFunc);
    }
    if(!ao.adviceFunc){
      dojo.debug("bad adviceFunc for srcFunc: "+ao.srcFunc);
      dojo.debugShallow(ao);
    }
    return ao;
  }
  this.connect=function(){
    if(arguments.length==1){
      var ao=arguments[0];
    }else{
      var ao=interpolateArgs(arguments,true);
    }
    if(dojo.lang.isString(ao.srcFunc)&&(ao.srcFunc.toLowerCase()=="onkey")){
      if(dojo.render.html.ie){
        ao.srcFunc="onkeydown";
        this.connect(ao);
      }
      ao.srcFunc="onkeypress";
    }
    if(dojo.lang.isArray(ao.srcObj)&&ao.srcObj!=""){
      var _2ec={};
      for(var x in ao){
        _2ec[x]=ao[x];
      }
      var mjps=[];
      dojo.lang.forEach(ao.srcObj,function(src){
        if((dojo.render.html.capable)&&(dojo.lang.isString(src))){
          src=dojo.byId(src);
        }
        _2ec.srcObj=src;
        mjps.push(dojo.event.connect.call(dojo.event,_2ec));
      });
      return mjps;
    }
    var mjp=dojo.event.MethodJoinPoint.getForMethod(ao.srcObj,ao.srcFunc);
    if(ao.adviceFunc){
      var mjp2=dojo.event.MethodJoinPoint.getForMethod(ao.adviceObj,ao.adviceFunc);
    }
    mjp.kwAddAdvice(ao);
    return mjp;
  };
  this.log=function(a1,a2){
    var _2f4;
    if((arguments.length==1)&&(typeof a1=="object")){
      _2f4=a1;
    }else{
      _2f4={srcObj:a1,srcFunc:a2};
    }
    _2f4.adviceFunc=function(){
      var _2f5=[];
      for(var x=0;x<arguments.length;x++){
        _2f5.push(arguments[x]);
      }
      dojo.debug("("+_2f4.srcObj+")."+_2f4.srcFunc,":",_2f5.join(", "));
    };
    this.kwConnect(_2f4);
  };
  this.connectBefore=function(){
    var args=["before"];
    for(var i=0;i<arguments.length;i++){
      args.push(arguments[i]);
    }
    return this.connect.apply(this,args);
  };
  this.connectAround=function(){
    var args=["around"];
    for(var i=0;i<arguments.length;i++){
      args.push(arguments[i]);
    }
    return this.connect.apply(this,args);
  };
  this.connectOnce=function(){
    var ao=interpolateArgs(arguments,true);
    ao.once=true;
    return this.connect(ao);
  };
  this._kwConnectImpl=function(_2fc,_2fd){
    var fn=(_2fd)?"disconnect":"connect";
    if(typeof _2fc["srcFunc"]=="function"){
      _2fc.srcObj=_2fc["srcObj"]||dj_global;
      var _2ff=dojo.lang.nameAnonFunc(_2fc.srcFunc,_2fc.srcObj,true);
      _2fc.srcFunc=_2ff;
    }
    if(typeof _2fc["adviceFunc"]=="function"){
      _2fc.adviceObj=_2fc["adviceObj"]||dj_global;
      var _2ff=dojo.lang.nameAnonFunc(_2fc.adviceFunc,_2fc.adviceObj,true);
      _2fc.adviceFunc=_2ff;
    }
    _2fc.srcObj=_2fc["srcObj"]||dj_global;
    _2fc.adviceObj=_2fc["adviceObj"]||_2fc["targetObj"]||dj_global;
    _2fc.adviceFunc=_2fc["adviceFunc"]||_2fc["targetFunc"];
    return dojo.event[fn](_2fc);
  };
  this.kwConnect=function(_300){
    return this._kwConnectImpl(_300,false);
  };
  this.disconnect=function(){
    if(arguments.length==1){
      var ao=arguments[0];
    }else{
      var ao=interpolateArgs(arguments,true);
    }
    if(!ao.adviceFunc){
      return;
    }
    if(dojo.lang.isString(ao.srcFunc)&&(ao.srcFunc.toLowerCase()=="onkey")){
      if(dojo.render.html.ie){
        ao.srcFunc="onkeydown";
        this.disconnect(ao);
      }
      ao.srcFunc="onkeypress";
    }
    var mjp=dojo.event.MethodJoinPoint.getForMethod(ao.srcObj,ao.srcFunc);
    return mjp.removeAdvice(ao.adviceObj,ao.adviceFunc,ao.adviceType,ao.once);
  };
  this.kwDisconnect=function(_303){
    return this._kwConnectImpl(_303,true);
  };
};
dojo.event.MethodInvocation=function(_304,obj,args){
  this.jp_=_304;
  this.object=obj;
  this.args=[];
  for(var x=0;x<args.length;x++){
    this.args[x]=args[x];
  }
  this.around_index=-1;
};
dojo.event.MethodInvocation.prototype.proceed=function(){
  this.around_index++;
  if(this.around_index>=this.jp_.around.length){
    return this.jp_.object[this.jp_.methodname].apply(this.jp_.object,this.args);
  }else{
    var ti=this.jp_.around[this.around_index];
    var mobj=ti[0]||dj_global;
    var meth=ti[1];
    return mobj[meth].call(mobj,this);
  }
};
dojo.event.MethodJoinPoint=function(obj,_30c){
  this.object=obj||dj_global;
  this.methodname=_30c;
  this.methodfunc=this.object[_30c];
  this.squelch=false;
};
dojo.event.MethodJoinPoint.getForMethod=function(obj,_30e){
  if(!obj){
    obj=dj_global;
  }
  if(!obj[_30e]){
    obj[_30e]=function(){
    };
    if(!obj[_30e]){
      dojo.raise("Cannot set do-nothing method on that object "+_30e);
    }
  }else{
    if((!dojo.lang.isFunction(obj[_30e]))&&(!dojo.lang.isAlien(obj[_30e]))){
      return null;
    }
  }
  var _30f=_30e+"$joinpoint";
  var _310=_30e+"$joinpoint$method";
  var _311=obj[_30f];
  if(!_311){
    var _312=false;
    if(dojo.event["browser"]){
      if((obj["attachEvent"])||(obj["nodeType"])||(obj["addEventListener"])){
        _312=true;
        dojo.event.browser.addClobberNodeAttrs(obj,[_30f,_310,_30e]);
      }
    }
    var _313=obj[_30e].length;
    obj[_310]=obj[_30e];
    _311=obj[_30f]=new dojo.event.MethodJoinPoint(obj,_310);
    obj[_30e]=function(){
      var args=[];
      if((_312)&&(!arguments.length)){
        var evt=null;
        try{
          if(obj.ownerDocument){
            evt=obj.ownerDocument.parentWindow.event;
          }else{
            if(obj.documentElement){
              evt=obj.documentElement.ownerDocument.parentWindow.event;
            }else{
              if(obj.event){
                evt=obj.event;
              }else{
                evt=window.event;
              }
            }
          }
        }
        catch(e){
          evt=window.event;
        }
        if(evt){
          args.push(dojo.event.browser.fixEvent(evt,this));
        }
      }else{
        for(var x=0;x<arguments.length;x++){
          if((x==0)&&(_312)&&(dojo.event.browser.isEvent(arguments[x]))){
            args.push(dojo.event.browser.fixEvent(arguments[x],this));
          }else{
            args.push(arguments[x]);
          }
        }
      }
      return _311.run.apply(_311,args);
    };
    obj[_30e].__preJoinArity=_313;
  }
  return _311;
};
dojo.lang.extend(dojo.event.MethodJoinPoint,{unintercept:function(){
  this.object[this.methodname]=this.methodfunc;
  this.before=[];
  this.after=[];
  this.around=[];
},disconnect:dojo.lang.forward("unintercept"),run:function(){
  var obj=this.object||dj_global;
  var args=arguments;
  var _319=[];
  for(var x=0;x<args.length;x++){
    _319[x]=args[x];
  }
  var _31b=function(marr){
    if(!marr){
      dojo.debug("Null argument to unrollAdvice()");
      return;
    }
    var _31d=marr[0]||dj_global;
    var _31e=marr[1];
    if(!_31d[_31e]){
      dojo.raise("function \""+_31e+"\" does not exist on \""+_31d+"\"");
    }
    var _31f=marr[2]||dj_global;
    var _320=marr[3];
    var msg=marr[6];
    var _322;
    var to={args:[],jp_:this,object:obj,proceed:function(){
      return _31d[_31e].apply(_31d,to.args);
    }};
    to.args=_319;
    var _324=parseInt(marr[4]);
    var _325=((!isNaN(_324))&&(marr[4]!==null)&&(typeof marr[4]!="undefined"));
    if(marr[5]){
      var rate=parseInt(marr[5]);
      var cur=new Date();
      var _328=false;
      if((marr["last"])&&((cur-marr.last)<=rate)){
        if(dojo.event._canTimeout){
          if(marr["delayTimer"]){
            clearTimeout(marr.delayTimer);
          }
          var tod=parseInt(rate*2);
          var mcpy=dojo.lang.shallowCopy(marr);
          marr.delayTimer=setTimeout(function(){
            mcpy[5]=0;
            _31b(mcpy);
          },tod);
        }
        return;
      }else{
        marr.last=cur;
      }
    }
    if(_320){
      _31f[_320].call(_31f,to);
    }else{
      if((_325)&&((dojo.render.html)||(dojo.render.svg))){
        dj_global["setTimeout"](function(){
          if(msg){
            _31d[_31e].call(_31d,to);
          }else{
            _31d[_31e].apply(_31d,args);
          }
        },_324);
      }else{
        if(msg){
          _31d[_31e].call(_31d,to);
        }else{
          _31d[_31e].apply(_31d,args);
        }
      }
    }
  };
  var _32b=function(){
    if(this.squelch){
      try{
        return _31b.apply(this,arguments);
      }
      catch(e){
        dojo.debug(e);
      }
    }else{
      return _31b.apply(this,arguments);
    }
  };
  if((this["before"])&&(this.before.length>0)){
    dojo.lang.forEach(this.before.concat(new Array()),_32b);
  }
  var _32c;
  try{
    if((this["around"])&&(this.around.length>0)){
      var mi=new dojo.event.MethodInvocation(this,obj,args);
      _32c=mi.proceed();
    }else{
      if(this.methodfunc){
        _32c=this.object[this.methodname].apply(this.object,args);
      }
    }
  }
  catch(e){
    if(!this.squelch){
      dojo.raise(e);
    }
  }
  if((this["after"])&&(this.after.length>0)){
    dojo.lang.forEach(this.after.concat(new Array()),_32b);
  }
  return (this.methodfunc)?_32c:null;
},getArr:function(kind){
  var type="after";
  if((typeof kind=="string")&&(kind.indexOf("before")!=-1)){
    type="before";
  }else{
    if(kind=="around"){
      type="around";
    }
  }
  if(!this[type]){
    this[type]=[];
  }
  return this[type];
},kwAddAdvice:function(args){
  this.addAdvice(args["adviceObj"],args["adviceFunc"],args["aroundObj"],args["aroundFunc"],args["adviceType"],args["precedence"],args["once"],args["delay"],args["rate"],args["adviceMsg"]);
},addAdvice:function(_331,_332,_333,_334,_335,_336,once,_338,rate,_33a){
  var arr=this.getArr(_335);
  if(!arr){
    dojo.raise("bad this: "+this);
  }
  var ao=[_331,_332,_333,_334,_338,rate,_33a];
  if(once){
    if(this.hasAdvice(_331,_332,_335,arr)>=0){
      return;
    }
  }
  if(_336=="first"){
    arr.unshift(ao);
  }else{
    arr.push(ao);
  }
},hasAdvice:function(_33d,_33e,_33f,arr){
  if(!arr){
    arr=this.getArr(_33f);
  }
  var ind=-1;
  for(var x=0;x<arr.length;x++){
    var aao=(typeof _33e=="object")?(new String(_33e)).toString():_33e;
    var a1o=(typeof arr[x][1]=="object")?(new String(arr[x][1])).toString():arr[x][1];
    if((arr[x][0]==_33d)&&(a1o==aao)){
      ind=x;
    }
  }
  return ind;
},removeAdvice:function(_345,_346,_347,once){
  var arr=this.getArr(_347);
  var ind=this.hasAdvice(_345,_346,_347,arr);
  if(ind==-1){
    return false;
  }
  while(ind!=-1){
    arr.splice(ind,1);
    if(once){
      break;
    }
    ind=this.hasAdvice(_345,_346,_347,arr);
  }
  return true;
}});
dojo.provide("dojo.event.topic");
dojo.event.topic=new function(){
  this.topics={};
  this.getTopic=function(_34b){
    if(!this.topics[_34b]){
      this.topics[_34b]=new this.TopicImpl(_34b);
    }
    return this.topics[_34b];
  };
  this.registerPublisher=function(_34c,obj,_34e){
    var _34c=this.getTopic(_34c);
    _34c.registerPublisher(obj,_34e);
  };
  this.subscribe=function(_34f,obj,_351){
    var _34f=this.getTopic(_34f);
    _34f.subscribe(obj,_351);
  };
  this.unsubscribe=function(_352,obj,_354){
    var _352=this.getTopic(_352);
    _352.unsubscribe(obj,_354);
  };
  this.destroy=function(_355){
    this.getTopic(_355).destroy();
    delete this.topics[_355];
  };
  this.publishApply=function(_356,args){
    var _356=this.getTopic(_356);
    _356.sendMessage.apply(_356,args);
  };
  this.publish=function(_358,_359){
    var _358=this.getTopic(_358);
    var args=[];
    for(var x=1;x<arguments.length;x++){
      args.push(arguments[x]);
    }
    _358.sendMessage.apply(_358,args);
  };
};
dojo.event.topic.TopicImpl=function(_35c){
  this.topicName=_35c;
  this.subscribe=function(_35d,_35e){
    var tf=_35e||_35d;
    var to=(!_35e)?dj_global:_35d;
    return dojo.event.kwConnect({srcObj:this,srcFunc:"sendMessage",adviceObj:to,adviceFunc:tf});
  };
  this.unsubscribe=function(_361,_362){
    var tf=(!_362)?_361:_362;
    var to=(!_362)?null:_361;
    return dojo.event.kwDisconnect({srcObj:this,srcFunc:"sendMessage",adviceObj:to,adviceFunc:tf});
  };
  this._getJoinPoint=function(){
    return dojo.event.MethodJoinPoint.getForMethod(this,"sendMessage");
  };
  this.setSquelch=function(_365){
    this._getJoinPoint().squelch=_365;
  };
  this.destroy=function(){
    this._getJoinPoint().disconnect();
  };
  this.registerPublisher=function(_366,_367){
    dojo.event.connect(_366,_367,this,"sendMessage");
  };
  this.sendMessage=function(_368){
  };
};
dojo.provide("dojo.event.browser");
dojo._ie_clobber=new function(){
  this.clobberNodes=[];
  function nukeProp(node,prop){
    try{
      node[prop]=null;
    }
    catch(e){
    }
    try{
      delete node[prop];
    }
    catch(e){
    }
    try{
      node.removeAttribute(prop);
    }
    catch(e){
    }
  }
  this.clobber=function(_36b){
    var na;
    var tna;
    if(_36b){
      tna=_36b.all||_36b.getElementsByTagName("*");
      na=[_36b];
      for(var x=0;x<tna.length;x++){
        if(tna[x]["__doClobber__"]){
          na.push(tna[x]);
        }
      }
    }else{
      try{
        window.onload=null;
      }
      catch(e){
      }
      na=(this.clobberNodes.length)?this.clobberNodes:document.all;
    }
    tna=null;
    var _36f={};
    for(var i=na.length-1;i>=0;i=i-1){
      var el=na[i];
      try{
        if(el&&el["__clobberAttrs__"]){
          for(var j=0;j<el.__clobberAttrs__.length;j++){
            nukeProp(el,el.__clobberAttrs__[j]);
          }
          nukeProp(el,"__clobberAttrs__");
          nukeProp(el,"__doClobber__");
        }
      }
      catch(e){
      }
    }
    na=null;
  };
};
if(dojo.render.html.ie){
  dojo.addOnUnload(function(){
    dojo._ie_clobber.clobber();
    try{
      if((dojo["widget"])&&(dojo.widget["manager"])){
        dojo.widget.manager.destroyAll();
      }
    }
    catch(e){
    }
    try{
      window.onload=null;
    }
    catch(e){
    }
    try{
      window.onunload=null;
    }
    catch(e){
    }
    dojo._ie_clobber.clobberNodes=[];
  });
}
dojo.event.browser=new function(){
  var _373=0;
  this.normalizedEventName=function(_374){
    switch(_374){
      case "CheckboxStateChange":
      case "DOMAttrModified":
      case "DOMMenuItemActive":
      case "DOMMenuItemInactive":
      case "DOMMouseScroll":
      case "DOMNodeInserted":
      case "DOMNodeRemoved":
      case "RadioStateChange":
      return _374;
      break;
      default:
      return _374.toLowerCase();
      break;
    }
  };
  this.clean=function(node){
    if(dojo.render.html.ie){
      dojo._ie_clobber.clobber(node);
    }
  };
  this.addClobberNode=function(node){
    if(!dojo.render.html.ie){
      return;
    }
    if(!node["__doClobber__"]){
      node.__doClobber__=true;
      dojo._ie_clobber.clobberNodes.push(node);
      node.__clobberAttrs__=[];
    }
  };
  this.addClobberNodeAttrs=function(node,_378){
    if(!dojo.render.html.ie){
      return;
    }
    this.addClobberNode(node);
    for(var x=0;x<_378.length;x++){
      node.__clobberAttrs__.push(_378[x]);
    }
  };
  this.removeListener=function(node,_37b,fp,_37d){
    if(!_37d){
      var _37d=false;
    }
    _37b=dojo.event.browser.normalizedEventName(_37b);
    if((_37b=="onkey")||(_37b=="key")){
      if(dojo.render.html.ie){
        this.removeListener(node,"onkeydown",fp,_37d);
      }
      _37b="onkeypress";
    }
    if(_37b.substr(0,2)=="on"){
      _37b=_37b.substr(2);
    }
    if(node.removeEventListener){
      node.removeEventListener(_37b,fp,_37d);
    }
  };
  this.addListener=function(node,_37f,fp,_381,_382){
    if(!node){
      return;
    }
    if(!_381){
      var _381=false;
    }
    _37f=dojo.event.browser.normalizedEventName(_37f);
    if((_37f=="onkey")||(_37f=="key")){
      if(dojo.render.html.ie){
        this.addListener(node,"onkeydown",fp,_381,_382);
      }
      _37f="onkeypress";
    }
    if(_37f.substr(0,2)!="on"){
      _37f="on"+_37f;
    }
    if(!_382){
      var _383=function(evt){
        if(!evt){
          evt=window.event;
        }
        var ret=fp(dojo.event.browser.fixEvent(evt,this));
        if(_381){
          dojo.event.browser.stopEvent(evt);
        }
        return ret;
      };
    }else{
      _383=fp;
    }
    if(node.addEventListener){
      node.addEventListener(_37f.substr(2),_383,_381);
      return _383;
    }else{
      if(typeof node[_37f]=="function"){
        var _386=node[_37f];
        node[_37f]=function(e){
          _386(e);
          return _383(e);
        };
      }else{
        node[_37f]=_383;
      }
      if(dojo.render.html.ie){
        this.addClobberNodeAttrs(node,[_37f]);
      }
      return _383;
    }
  };
  this.isEvent=function(obj){
    return (typeof obj!="undefined")&&(typeof Event!="undefined")&&(obj.eventPhase);
  };
  this.currentEvent=null;
  this.callListener=function(_389,_38a){
    if(typeof _389!="function"){
      dojo.raise("listener not a function: "+_389);
    }
    dojo.event.browser.currentEvent.currentTarget=_38a;
    return _389.call(_38a,dojo.event.browser.currentEvent);
  };
  this._stopPropagation=function(){
    dojo.event.browser.currentEvent.cancelBubble=true;
  };
  this._preventDefault=function(){
    dojo.event.browser.currentEvent.returnValue=false;
  };
  this.keys={KEY_BACKSPACE:8,KEY_TAB:9,KEY_CLEAR:12,KEY_ENTER:13,KEY_SHIFT:16,KEY_CTRL:17,KEY_ALT:18,KEY_PAUSE:19,KEY_CAPS_LOCK:20,KEY_ESCAPE:27,KEY_SPACE:32,KEY_PAGE_UP:33,KEY_PAGE_DOWN:34,KEY_END:35,KEY_HOME:36,KEY_LEFT_ARROW:37,KEY_UP_ARROW:38,KEY_RIGHT_ARROW:39,KEY_DOWN_ARROW:40,KEY_INSERT:45,KEY_DELETE:46,KEY_HELP:47,KEY_LEFT_WINDOW:91,KEY_RIGHT_WINDOW:92,KEY_SELECT:93,KEY_NUMPAD_0:96,KEY_NUMPAD_1:97,KEY_NUMPAD_2:98,KEY_NUMPAD_3:99,KEY_NUMPAD_4:100,KEY_NUMPAD_5:101,KEY_NUMPAD_6:102,KEY_NUMPAD_7:103,KEY_NUMPAD_8:104,KEY_NUMPAD_9:105,KEY_NUMPAD_MULTIPLY:106,KEY_NUMPAD_PLUS:107,KEY_NUMPAD_ENTER:108,KEY_NUMPAD_MINUS:109,KEY_NUMPAD_PERIOD:110,KEY_NUMPAD_DIVIDE:111,KEY_F1:112,KEY_F2:113,KEY_F3:114,KEY_F4:115,KEY_F5:116,KEY_F6:117,KEY_F7:118,KEY_F8:119,KEY_F9:120,KEY_F10:121,KEY_F11:122,KEY_F12:123,KEY_F13:124,KEY_F14:125,KEY_F15:126,KEY_NUM_LOCK:144,KEY_SCROLL_LOCK:145};
  this.revKeys=[];
  for(var key in this.keys){
    this.revKeys[this.keys[key]]=key;
  }
  this.fixEvent=function(evt,_38d){
    if(!evt){
      if(window["event"]){
        evt=window.event;
      }
    }
    if((evt["type"])&&(evt["type"].indexOf("key")==0)){
      evt.keys=this.revKeys;
      for(var key in this.keys){
        evt[key]=this.keys[key];
      }
      if(evt["type"]=="keydown"&&dojo.render.html.ie){
        switch(evt.keyCode){
          case evt.KEY_SHIFT:
          case evt.KEY_CTRL:
          case evt.KEY_ALT:
          case evt.KEY_CAPS_LOCK:
          case evt.KEY_LEFT_WINDOW:
          case evt.KEY_RIGHT_WINDOW:
          case evt.KEY_SELECT:
          case evt.KEY_NUM_LOCK:
          case evt.KEY_SCROLL_LOCK:
          case evt.KEY_NUMPAD_0:
          case evt.KEY_NUMPAD_1:
          case evt.KEY_NUMPAD_2:
          case evt.KEY_NUMPAD_3:
          case evt.KEY_NUMPAD_4:
          case evt.KEY_NUMPAD_5:
          case evt.KEY_NUMPAD_6:
          case evt.KEY_NUMPAD_7:
          case evt.KEY_NUMPAD_8:
          case evt.KEY_NUMPAD_9:
          case evt.KEY_NUMPAD_PERIOD:
          break;
          case evt.KEY_NUMPAD_MULTIPLY:
          case evt.KEY_NUMPAD_PLUS:
          case evt.KEY_NUMPAD_ENTER:
          case evt.KEY_NUMPAD_MINUS:
          case evt.KEY_NUMPAD_DIVIDE:
          break;
          case evt.KEY_PAUSE:
          case evt.KEY_TAB:
          case evt.KEY_BACKSPACE:
          case evt.KEY_ENTER:
          case evt.KEY_ESCAPE:
          case evt.KEY_PAGE_UP:
          case evt.KEY_PAGE_DOWN:
          case evt.KEY_END:
          case evt.KEY_HOME:
          case evt.KEY_LEFT_ARROW:
          case evt.KEY_UP_ARROW:
          case evt.KEY_RIGHT_ARROW:
          case evt.KEY_DOWN_ARROW:
          case evt.KEY_INSERT:
          case evt.KEY_DELETE:
          case evt.KEY_F1:
          case evt.KEY_F2:
          case evt.KEY_F3:
          case evt.KEY_F4:
          case evt.KEY_F5:
          case evt.KEY_F6:
          case evt.KEY_F7:
          case evt.KEY_F8:
          case evt.KEY_F9:
          case evt.KEY_F10:
          case evt.KEY_F11:
          case evt.KEY_F12:
          case evt.KEY_F12:
          case evt.KEY_F13:
          case evt.KEY_F14:
          case evt.KEY_F15:
          case evt.KEY_CLEAR:
          case evt.KEY_HELP:
          evt.key=evt.keyCode;
          break;
          default:
          if(evt.ctrlKey||evt.altKey){
            var _38f=evt.keyCode;
            if(_38f>=65&&_38f<=90&&evt.shiftKey==false){
              _38f+=32;
            }
            if(_38f>=1&&_38f<=26&&evt.ctrlKey){
              _38f+=96;
            }
            evt.key=String.fromCharCode(_38f);
          }
        }
      }else{
        if(evt["type"]=="keypress"){
          if(dojo.render.html.opera){
            if(evt.which==0){
              evt.key=evt.keyCode;
            }else{
              if(evt.which>0){
                switch(evt.which){
                  case evt.KEY_SHIFT:
                  case evt.KEY_CTRL:
                  case evt.KEY_ALT:
                  case evt.KEY_CAPS_LOCK:
                  case evt.KEY_NUM_LOCK:
                  case evt.KEY_SCROLL_LOCK:
                  break;
                  case evt.KEY_PAUSE:
                  case evt.KEY_TAB:
                  case evt.KEY_BACKSPACE:
                  case evt.KEY_ENTER:
                  case evt.KEY_ESCAPE:
                  evt.key=evt.which;
                  break;
                  default:
                  var _38f=evt.which;
                  if((evt.ctrlKey||evt.altKey||evt.metaKey)&&(evt.which>=65&&evt.which<=90&&evt.shiftKey==false)){
                    _38f+=32;
                  }
                  evt.key=String.fromCharCode(_38f);
                }
              }
            }
          }else{
            if(dojo.render.html.ie){
              if(!evt.ctrlKey&&!evt.altKey&&evt.keyCode>=evt.KEY_SPACE){
                evt.key=String.fromCharCode(evt.keyCode);
              }
            }else{
              if(dojo.render.html.safari){
                switch(evt.keyCode){
                  case 63232:
                  evt.key=evt.KEY_UP_ARROW;
                  break;
                  case 63233:
                  evt.key=evt.KEY_DOWN_ARROW;
                  break;
                  case 63234:
                  evt.key=evt.KEY_LEFT_ARROW;
                  break;
                  case 63235:
                  evt.key=evt.KEY_RIGHT_ARROW;
                  break;
                  default:
                  evt.key=evt.charCode>0?String.fromCharCode(evt.charCode):evt.keyCode;
                }
              }else{
                evt.key=evt.charCode>0?String.fromCharCode(evt.charCode):evt.keyCode;
              }
            }
          }
        }
      }
    }
    if(dojo.render.html.ie){
      if(!evt.target){
        evt.target=evt.srcElement;
      }
      if(!evt.currentTarget){
        evt.currentTarget=(_38d?_38d:evt.srcElement);
      }
      if(!evt.layerX){
        evt.layerX=evt.offsetX;
      }
      if(!evt.layerY){
        evt.layerY=evt.offsetY;
      }
      var doc=(evt.srcElement&&evt.srcElement.ownerDocument)?evt.srcElement.ownerDocument:document;
      var _391=((dojo.render.html.ie55)||(doc["compatMode"]=="BackCompat"))?doc.body:doc.documentElement;
      if(!evt.pageX){
        evt.pageX=evt.clientX+(_391.scrollLeft||0);
      }
      if(!evt.pageY){
        evt.pageY=evt.clientY+(_391.scrollTop||0);
      }
      if(evt.type=="mouseover"){
        evt.relatedTarget=evt.fromElement;
      }
      if(evt.type=="mouseout"){
        evt.relatedTarget=evt.toElement;
      }
      this.currentEvent=evt;
      evt.callListener=this.callListener;
      evt.stopPropagation=this._stopPropagation;
      evt.preventDefault=this._preventDefault;
    }
    return evt;
  };
  this.stopEvent=function(evt){
    if(window.event){
      evt.returnValue=false;
      evt.cancelBubble=true;
    }else{
      evt.preventDefault();
      evt.stopPropagation();
    }
  };
};
dojo.provide("dojo.event.*");


