/*
	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:4,patch:3,flag:"",revision:Number("$Rev: 8617 $".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);
        } else {
            _12 = dojo.errorToString(_12);
        }
        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,delayMozLoadingFix:false,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" || (djConfig["useXDomain"] && dojo.render.html.opera)) {
            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);
    };
    if (djConfig["modulePaths"]) {
        for (var param in djConfig["modulePaths"]) {
            dojo.registerModulePath(param, djConfig["modulePaths"][param]);
        }
    }
    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) {
        var _6f = _6e ? _6e.toLowerCase() : dojo.locale;
        if (_6f == "root") {
            _6f = "ROOT";
        }
        return _6f;
    };
    dojo.hostenv.searchLocalePath = function(_70, _71, _72) {
        _70 = dojo.hostenv.normalizeLocale(_70);
        var _73 = _70.split("-");
        var _74 = [];
        for (var i = _73.length; i > 0; i--) {
            _74.push(_73.slice(0, i).join("-"));
        }
        _74.push(false);
        if (_71) {
            _74.reverse();
        }
        for (var j = _74.length - 1; j >= 0; j--) {
            var loc = _74[j] || "ROOT";
            var _78 = _72(loc);
            if (_78) {
                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(_79) {
                _79 = dojo.hostenv.normalizeLocale(_79);
                dojo.hostenv.searchLocalePath(_79, 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 _7c = djConfig.extraLocale || [];
            for (var i = 0; i < _7c.length; i++) {
                preload(_7c[i]);
            }
        }
        dojo.hostenv.preloadLocalizations = function() {
        };
    };
    dojo.requireLocalization = function(_7e, _7f, _80, _81) {
        dojo.hostenv.preloadLocalizations();
        var _82 = dojo.hostenv.normalizeLocale(_80);
        var _83 = [_7e,"nls",_7f].join(".");
        var _84 = "";
        if (_81) {
            var _85 = _81.split(",");
            for (var i = 0; i < _85.length; i++) {
                if (_82.indexOf(_85[i]) == 0) {
                    if (_85[i].length > _84.length) {
                        _84 = _85[i];
                    }
                }
            }
            if (!_84) {
                _84 = "ROOT";
            }
        }
        var _87 = _81 ? _84 : _82;
        var _88 = dojo.hostenv.findModule(_83);
        var _89 = null;
        if (_88) {
            if (djConfig.localizationComplete && _88._built) {
                return;
            }
            var _8a = _87.replace("-", "_");
            var _8b = _83 + "." + _8a;
            _89 = dojo.hostenv.findModule(_8b);
        }
        if (!_89) {
            _88 = dojo.hostenv.startPackage(_83);
            var _8c = dojo.hostenv.getModuleSymbols(_7e);
            var _8d = _8c.concat("nls").join("/");
            var _8e;
            dojo.hostenv.searchLocalePath(_87, _81, function(loc) {
                var _90 = loc.replace("-", "_");
                var _91 = _83 + "." + _90;
                var _92 = false;
                if (!dojo.hostenv.findModule(_91)) {
                    dojo.hostenv.startPackage(_91);
                    var _93 = [_8d];
                    if (loc != "ROOT") {
                        _93.push(loc);
                    }
                    _93.push(_7f);
                    var _94 = _93.join("/") + ".js";
                    _92 = dojo.hostenv.loadPath(_94, null, function(_95) {
                        var _96 = function() {
                        };
                        _96.prototype = _8e;
                        _88[_90] = new _96();
                        for (var j in _95) {
                            _88[_90][j] = _95[j];
                        }
                    });
                } else {
                    _92 = true;
                }
                if (_92 && _88[_90]) {
                    _8e = _88[_90];
                } else {
                    _88[_90] = _8e;
                }
                if (_81) {
                    return true;
                }
            });
        }
        if (_81 && _82 != _84) {
            _88[_82.replace("-", "_")] = _88[_84.replace("-", "_")];
        }
    };
    (function() {
        var _98 = djConfig.extraLocale;
        if (_98) {
            if (!_98 instanceof Array) {
                _98 = [_98];
            }
            var req = dojo.requireLocalization;
            dojo.requireLocalization = function(m, b, _9c, _9d) {
                req(m, b, _9c, _9d);
                if (_9c) {
                    return;
                }
                for (var i = 0; i < _98.length; i++) {
                    req(m, b, _98[i], _9d);
                }
            };
        }
    })();
}
if (typeof window != "undefined") {
    (function() {
        if (djConfig.allowQueryConfig) {
            var _9f = document.location.toString();
            var _a0 = _9f.split("?", 2);
            if (_a0.length > 1) {
                var _a1 = _a0[1];
                var _a2 = _a1.split("&");
                for (var x in _a2) {
                    var sp = _a2[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 _a6 = document.getElementsByTagName("script");
            var _a7 = /(__package__|dojo|bootstrap1)\.js([\?\.]|$)/i;
            for (var i = 0; i < _a6.length; i++) {
                var src = _a6[i].getAttribute("src");
                if (!src) {
                    continue;
                }
                var m = src.match(_a7);
                if (m) {
                    var _ab = src.substring(0, m.index);
                    if (src.indexOf("bootstrap1") > -1) {
                        _ab += "../";
                    }
                    if (!this["djConfig"]) {
                        djConfig = {};
                    }
                    if (djConfig["baseScriptUri"] == "") {
                        djConfig["baseScriptUri"] = _ab;
                    }
                    if (djConfig["baseRelativePath"] == "") {
                        djConfig["baseRelativePath"] = _ab;
                    }
                    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 _b3 = dua.indexOf("Gecko");
        drh.mozilla = drh.moz = (_b3 >= 0) && (!drh.khtml);
        if (drh.mozilla) {
            drh.geckoVersion = dua.substring(_b3 + 6, _b3 + 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 _b5 = window["document"];
        var tdi = _b5["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;
            }
        } else {
        }
    })();
    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 _b9 = null;
        var _ba = null;
        try {
            _b9 = new XMLHttpRequest();
        }
        catch(e) {
        }
        if (!_b9) {
            for (var i = 0; i < 3; ++i) {
                var _bc = dojo.hostenv._XMLHTTP_PROGIDS[i];
                try {
                    _b9 = new ActiveXObject(_bc);
                }
                catch(e) {
                    _ba = e;
                }
                if (_b9) {
                    dojo.hostenv._XMLHTTP_PROGIDS = [_bc];
                    break;
                }
            }
        }
        if (!_b9) {
            return dojo.raise("XMLHTTP not available", _ba);
        }
        return _b9;
    };
    dojo.hostenv._blockAsync = false;
    dojo.hostenv.getText = function(uri, _be, _bf) {
        if (!_be) {
            this._blockAsync = true;
        }
        var _c0 = this.getXmlhttpObject();
        function isDocumentOk(_c1) {
            var _c2 = _c1["status"];
            return Boolean((!_c2) || ((200 <= _c2) && (300 > _c2)) || (_c2 == 304));
        }
        if (_be) {
            var _c3 = this,_c4 = null,gbl = dojo.global();
            var xhr = dojo.evalObjPath("dojo.io.XMLHTTPTransport");
            _c0.onreadystatechange = function() {
                if (_c4) {
                    gbl.clearTimeout(_c4);
                    _c4 = null;
                }
                if (_c3._blockAsync || (xhr && xhr._blockAsync)) {
                    _c4 = gbl.setTimeout(function() {
                        _c0.onreadystatechange.apply(this);
                    }, 10);
                } else {
                    if (4 == _c0.readyState) {
                        if (isDocumentOk(_c0)) {
                            _be(_c0.responseText);
                        }
                    }
                }
            };
        }
        _c0.open("GET", uri, _be ? true : false);
        try {
            _c0.send(null);
            if (_be) {
                return null;
            }
            if (!isDocumentOk(_c0)) {
                var err = Error("Unable to load " + uri + " status:" + _c0.status);
                err.status = _c0.status;
                err.responseText = _c0.responseText;
                throw err;
            }
        }
        catch(e) {
            this._blockAsync = false;
            if ((_bf) && (!_be)) {
                return null;
            } else {
                throw e;
            }
        }
        this._blockAsync = false;
        return _c0.responseText;
    };
    dojo.hostenv.defaultDebugContainerId = "dojoDebug";
    dojo.hostenv._println_buffer = [];
    dojo.hostenv._println_safe = false;
    dojo.hostenv.println = function(_c8) {
        if (!dojo.hostenv._println_safe) {
            dojo.hostenv._println_buffer.push(_c8);
        } else {
            try {
                var _c9 = document.getElementById(djConfig.debugContainerId ? djConfig.debugContainerId : dojo.hostenv.defaultDebugContainerId);
                if (!_c9) {
                    _c9 = dojo.body();
                }
                var div = document.createElement("div");
                div.appendChild(document.createTextNode(_c8));
                _c9.appendChild(div);
            }
            catch(e) {
                try {
                    document.write("<div>" + _c8 + "</div>");
                }
                catch(e2) {
                    window.status = _c8;
                }
            }
        }
    };
    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(_cb, _cc, fp) {
        var _ce = _cb["on" + _cc] || function() {
        };
        _cb["on" + _cc] = function() {
            fp.apply(_cb, arguments);
            _ce.apply(_cb, arguments);
        };
        return true;
    }
    dojo.hostenv._djInitFired = false;
    function dj_load_init(e) {
        dojo.hostenv._djInitFired = true;
        var _d0 = (e && e.type) ? e.type.toLowerCase() : "load";
        if (arguments.callee.initialized || (_d0 != "domcontentloaded" && _d0 != "load")) {
            return;
        }
        arguments.callee.initialized = true;
        if (typeof (_timer) != "undefined") {
            clearInterval(_timer);
            delete _timer;
        }
        var _d1 = function() {
            if (dojo.render.html.ie) {
                dojo.hostenv.makeWidgets();
            }
        };
        if (dojo.hostenv.inFlightCount == 0) {
            _d1();
            dojo.hostenv.modulesLoaded();
        } else {
            dojo.hostenv.modulesLoadedListeners.unshift(_d1);
        }
    }
    if (document.addEventListener) {
        if (dojo.render.html.opera || (dojo.render.html.moz && (djConfig["enableMozDomContentLoaded"] === true))) {
            document.addEventListener("DOMContentLoaded", dj_load_init, null);
        }
        window.addEventListener("load", dj_load_init, null);
    }
    if (dojo.render.html.ie && dojo.render.os.win) {
        document.attachEvent("onreadystatechange", function(e) {
            if (document.readyState == "autoCompleteWord") {
                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 _d3 = [];
        if (djConfig.searchIds && djConfig.searchIds.length > 0) {
            _d3 = _d3.concat(djConfig.searchIds);
        }
        if (dojo.hostenv.searchIds && dojo.hostenv.searchIds.length > 0) {
            _d3 = _d3.concat(dojo.hostenv.searchIds);
        }
        if ((djConfig.parseWidgets) || (_d3.length > 0)) {
            if (dojo.evalObjPath("dojo.widget.Parse")) {
                var _d4 = new dojo.xml.Parse();
                if (_d3.length > 0) {
                    for (var x = 0; x < _d3.length; x++) {
                        var _d6 = document.getElementById(_d3[x]);
                        if (!_d6) {
                            continue;
                        }
                        var _d7 = _d4.parseElement(_d6, null, true);
                        dojo.widget.getParser().createComponents(_d7);
                    }
                } else {
                    if (djConfig.parseWidgets) {
                        var _d7 = _d4.parseElement(dojo.body(), null, true);
                        dojo.widget.getParser().createComponents(_d7);
                    }
                }
            }
        }
    };
    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(_dc, _dd) {
        dj_currentContext = _dc;
        dj_currentDocument = _dd;
    };
    dojo._fireCallback = function(_de, _df, _e0) {
        if ((_df) && ((typeof _de == "string") || (_de instanceof String))) {
            _de = _df[_de];
        }
        return (_df ? _de.apply(_df, _e0 || []) : _de());
    };
    dojo.withGlobal = function(_e1, _e2, _e3, _e4) {
        var _e5;
        var _e6 = dj_currentContext;
        var _e7 = dj_currentDocument;
        try {
            dojo.setContext(_e1, _e1.document);
            _e5 = dojo._fireCallback(_e2, _e3, _e4);
        }
        finally {
            dojo.setContext(_e6, _e7);
        }
        return _e5;
    };
    dojo.withDoc = function(_e8, _e9, _ea, _eb) {
        var _ec;
        var _ed = dj_currentDocument;
        try {
            dj_currentDocument = _e8;
            _ec = dojo._fireCallback(_e9, _ea, _eb);
        }
        finally {
            dj_currentDocument = _ed;
        }
        return _ec;
    };
}
dojo.requireIf((djConfig["isDebug"] || djConfig["debugAtAllCosts"]), "dojo.debug");
dojo.requireIf(djConfig["debugAtAllCosts"] && !window.widget && !djConfig["useXDomain"], "dojo.browser_debug");
dojo.requireIf(djConfig["debugAtAllCosts"] && !window.widget && djConfig["useXDomain"], "dojo.browser_debug_xd");
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 (!dojo.lang.isFunction(_104)) {
        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) {
    return (it instanceof Function || typeof it == "function");
};
(function() {
    if ((dojo.render.html.capable) && (dojo.render.html["safari"])) {
        dojo.lang.isFunction = function(it) {
            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(it) && /\{\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, _12a) {
    var _12b = window,_12c = 2;
    if (!dojo.lang.isFunction(func)) {
        _12b = func;
        func = _12a;
        _12a = arguments[2];
        _12c++;
    }
    if (dojo.lang.isString(func)) {
        func = _12b[func];
    }
    var args = [];
    for (var i = _12c; i < arguments.length; i++) {
        args.push(arguments[i]);
    }
    return dojo.global().setTimeout(function() {
        func.apply(_12b, args);
    }, _12a);
};
dojo.lang.clearTimeout = function(_12f) {
    dojo.global().clearTimeout(_12f);
};
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(_138, _139, _13a) {
    with (dojo.parseObjPath(_138, _139, _13a)) {
        return dojo.evalProp(prop, obj, _13a);
    }
};
dojo.lang.setObjPathValue = function(_13b, _13c, _13d, _13e) {
    dojo.deprecated("dojo.lang.setObjPathValue", "use dojo.parseObjPath and the '=' operator", "0.6");
    if (arguments.length < 4) {
        _13e = true;
    }
    with (dojo.parseObjPath(_13b, _13d, _13e)) {
        if (obj && (_13e || (prop in obj))) {
            obj[prop] = _13c;
        }
    }
};
dojo.provide("dojo.io.common");
dojo.io.transports = [];
dojo.io.hdlrFuncNames = ["load","error","timeout"];
dojo.io.Request = function(url, _140, _141, _142) {
    if ((arguments.length == 1) && (arguments[0].constructor == Object)) {
        this.fromKwArgs(arguments[0]);
    } else {
        this.url = url;
        if (_140) {
            this.mimetype = _140;
        }
        if (_141) {
            this.transport = _141;
        }
        if (arguments.length >= 4) {
            this.changeUrl = _142;
        }
    }
};
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,jsonFilter:function(_143) {
    if ((this.mimetype == "text/json-comment-filtered") || (this.mimetype == "application/json-comment-filtered")) {
        var _144 = _143.indexOf("/*");
        var _145 = _143.lastIndexOf("*/");
        if ((_144 == -1) || (_145 == -1)) {
            dojo.debug("your JSON wasn't comment filtered!");
            return "";
        }
        return _143.substring(_144 + 2, _145);
    }
    dojo.debug("please consider using a mimetype of text/json-comment-filtered to avoid potential security issues with JSON endpoints");
    return _143;
},load:function(type, data, _148, _149) {
},error:function(type, _14b, _14c, _14d) {
},timeout:function(type, _14f, _150, _151) {
},handle:function(type, data, _154, _155) {
},timeoutSeconds:0,abort:function() {
},fromKwArgs:function(_156) {
    if (_156["url"]) {
        _156.url = _156.url.toString();
    }
    if (_156["formNode"]) {
        _156.formNode = dojo.byId(_156.formNode);
    }
    if (!_156["method"] && _156["formNode"] && _156["formNode"].method) {
        _156.method = _156["formNode"].method;
    }
    if (!_156["handle"] && _156["handler"]) {
        _156.handle = _156.handler;
    }
    if (!_156["load"] && _156["loaded"]) {
        _156.load = _156.loaded;
    }
    if (!_156["changeUrl"] && _156["changeURL"]) {
        _156.changeUrl = _156.changeURL;
    }
    _156.encoding = dojo.lang.firstValued(_156["encoding"], djConfig["bindEncoding"], "");
    _156.sendTransport = dojo.lang.firstValued(_156["sendTransport"], djConfig["ioSendTransport"], false);
    var _157 = dojo.lang.isFunction;
    for (var x = 0; x < dojo.io.hdlrFuncNames.length; x++) {
        var fn = dojo.io.hdlrFuncNames[x];
        if (_156[fn] && _157(_156[fn])) {
            continue;
        }
        if (_156["handle"] && _157(_156["handle"])) {
            _156[fn] = _156.handle;
        }
    }
    dojo.lang.mixin(this, _156);
}});
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(_15e) {
    if (!(_15e instanceof dojo.io.Request)) {
        try {
            _15e = new dojo.io.Request(_15e);
        }
        catch(e) {
            dojo.debug(e);
        }
    }
    var _15f = "";
    if (_15e["transport"]) {
        _15f = _15e["transport"];
        if (!this[_15f]) {
            dojo.io.sendBindError(_15e, "No dojo.io.bind() transport with name '" + _15e["transport"] + "'.");
            return _15e;
        }
        if (!this[_15f].canHandle(_15e)) {
            dojo.io.sendBindError(_15e, "dojo.io.bind() transport with name '" + _15e["transport"] + "' cannot handle this type of request.");
            return _15e;
        }
    } else {
        for (var x = 0; x < dojo.io.transports.length; x++) {
            var tmp = dojo.io.transports[x];
            if ((this[tmp]) && (this[tmp].canHandle(_15e))) {
                _15f = tmp;
                break;
            }
        }
        if (_15f == "") {
            dojo.io.sendBindError(_15e, "None of the loaded transports for dojo.io.bind()" + " can handle the request.");
            return _15e;
        }
    }
    this[_15f].bind(_15e);
    _15e.bindSuccess = true;
    return _15e;
};
dojo.io.sendBindError = function(_162, _163) {
    if ((typeof _162.error == "function" || typeof _162.handle == "function") && (typeof setTimeout == "function" || typeof setTimeout == "object")) {
        var _164 = new dojo.io.Error(_163);
        setTimeout(function() {
            _162[(typeof _162.error == "function") ? "error" : "handle"]("error", _164, null, _162);
        }, 50);
    } else {
        dojo.raise(_163);
    }
};
dojo.io.queueBind = function(_165) {
    if (!(_165 instanceof dojo.io.Request)) {
        try {
            _165 = new dojo.io.Request(_165);
        }
        catch(e) {
            dojo.debug(e);
        }
    }
    var _166 = _165.load;
    _165.load = function() {
        dojo.io._queueBindInFlight = false;
        var ret = _166.apply(this, arguments);
        dojo.io._dispatchNextQueueBind();
        return ret;
    };
    var _168 = _165.error;
    _165.error = function() {
        dojo.io._queueBindInFlight = false;
        var ret = _168.apply(this, arguments);
        dojo.io._dispatchNextQueueBind();
        return ret;
    };
    dojo.io._bindQueue.push(_165);
    dojo.io._dispatchNextQueueBind();
    return _165;
};
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, _16b, last) {
    var enc = /utf/i.test(_16b || "") ? encodeURIComponent : dojo.string.encodeAscii;
    var _16e = [];
    var _16f = new Object();
    for (var name in map) {
        var _171 = function(elt) {
            var val = enc(name) + "=" + enc(elt);
            _16e[(last == name) ? "push" : "unshift"](val);
        };
        if (!_16f[name]) {
            var _174 = map[name];
            if (dojo.lang.isArray(_174)) {
                dojo.lang.forEach(_174, _171);
            } else {
                _171(_174);
            }
        }
    }
    return _16e.join("&");
};
dojo.io.setIFrameSrc = function(_175, src, _177) {
    try {
        var r = dojo.render.html;
        if (!_177) {
            if (r.safari) {
                _175.location = src;
            } else {
                frames[_175.name].location = src;
            }
        } else {
            var idoc;
            if (r.ie) {
                idoc = _175.contentWindow.document;
            } else {
                if (r.safari) {
                    idoc = _175.document;
                } else {
                    idoc = _175.contentWindow;
                }
            }
            if (!idoc) {
                _175.location = src;
                return;
            } else {
                idoc.location.replace(src);
            }
        }
    }
    catch(e) {
        dojo.debug(e);
        dojo.debug("setIFrameSrc: " + e);
    }
};
dojo.provide("dojo.lang.array");
dojo.lang.mixin(dojo.lang, {has:function(obj, name) {
    try {
        return typeof obj[name] != "undefined";
    }
    catch(e) {
        return false;
    }
},isEmpty:function(obj) {
    if (dojo.lang.isObject(obj)) {
        var tmp = {};
        var _17e = 0;
        for (var x in obj) {
            if (obj[x] && (!tmp[x])) {
                _17e++;
                break;
            }
        }
        return _17e == 0;
    } else {
        if (dojo.lang.isArrayLike(obj) || dojo.lang.isString(obj)) {
            return obj.length == 0;
        }
    }
},map:function(arr, obj, _182) {
    var _183 = dojo.lang.isString(arr);
    if (_183) {
        arr = arr.split("");
    }
    if (dojo.lang.isFunction(obj) && (!_182)) {
        _182 = obj;
        obj = dj_global;
    } else {
        if (dojo.lang.isFunction(obj) && _182) {
            var _184 = obj;
            obj = _182;
            _182 = _184;
        }
    }
    if (Array.map) {
        var _185 = Array.map(arr, _182, obj);
    } else {
        var _185 = [];
        for (var i = 0; i < arr.length; ++i) {
            _185.push(_182.call(obj, arr[i]));
        }
    }
    if (_183) {
        return _185.join("");
    } else {
        return _185;
    }
},reduce:function(arr, _188, obj, _18a) {
    var _18b = _188;
    if (arguments.length == 2) {
        _18a = _188;
        _18b = arr[0];
        arr = arr.slice(1);
    } else {
        if (arguments.length == 3) {
            if (dojo.lang.isFunction(obj)) {
                _18a = obj;
                obj = null;
            }
        } else {
            if (dojo.lang.isFunction(obj)) {
                var tmp = _18a;
                _18a = obj;
                obj = tmp;
            }
        }
    }
    var ob = obj || dj_global;
    dojo.lang.map(arr, function(val) {
        _18b = _18a.call(ob, _18b, val);
    });
    return _18b;
},forEach:function(_18f, _190, _191) {
    if (dojo.lang.isString(_18f)) {
        _18f = _18f.split("");
    }
    if (Array.forEach) {
        Array.forEach(_18f, _190, _191);
    } else {
        if (!_191) {
            _191 = dj_global;
        }
        for (var i = 0,l = _18f.length; i < l; i++) {
            _190.call(_191, _18f[i], i, _18f);
        }
    }
},_everyOrSome:function(_194, arr, _196, _197) {
    if (dojo.lang.isString(arr)) {
        arr = arr.split("");
    }
    if (Array.every) {
        return Array[_194 ? "every" : "some"](arr, _196, _197);
    } else {
        if (!_197) {
            _197 = dj_global;
        }
        for (var i = 0,l = arr.length; i < l; i++) {
            var _19a = _196.call(_197, arr[i], i, arr);
            if (_194 && !_19a) {
                return false;
            } else {
                if ((!_194) && (_19a)) {
                    return true;
                }
            }
        }
        return Boolean(_194);
    }
},every:function(arr, _19c, _19d) {
    return this._everyOrSome(true, arr, _19c, _19d);
},some:function(arr, _19f, _1a0) {
    return this._everyOrSome(false, arr, _19f, _1a0);
},filter:function(arr, _1a2, _1a3) {
    var _1a4 = dojo.lang.isString(arr);
    if (_1a4) {
        arr = arr.split("");
    }
    var _1a5;
    if (Array.filter) {
        _1a5 = Array.filter(arr, _1a2, _1a3);
    } else {
        if (!_1a3) {
            if (arguments.length >= 3) {
                dojo.raise("thisObject doesn't exist!");
            }
            _1a3 = dj_global;
        }
        _1a5 = [];
        for (var i = 0; i < arr.length; i++) {
            if (_1a2.call(_1a3, arr[i], i, arr)) {
                _1a5.push(arr[i]);
            }
        }
    }
    if (_1a4) {
        return _1a5.join("");
    } else {
        return _1a5;
    }
},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;
},toArray:function(_1aa, _1ab) {
    var _1ac = [];
    for (var i = _1ab || 0; i < _1aa.length; i++) {
        _1ac.push(_1aa[i]);
    }
    return _1ac;
}});
dojo.provide("dojo.lang.func");
dojo.lang.hitch = function(_1ae, _1af) {
    var args = [];
    for (var x = 2; x < arguments.length; x++) {
        args.push(arguments[x]);
    }
    var fcn = (dojo.lang.isString(_1af) ? _1ae[_1af] : _1af) || function() {
    };
    return function() {
        var ta = args.concat([]);
        for (var x = 0; x < arguments.length; x++) {
            ta.push(arguments[x]);
        }
        return fcn.apply(_1ae, ta);
    };
};
dojo.lang.anonCtr = 0;
dojo.lang.anon = {};
dojo.lang.nameAnonFunc = function(_1b5, _1b6, _1b7) {
    var nso = (_1b6 || dojo.lang.anon);
    if ((_1b7) || ((dj_global["djConfig"]) && (djConfig["slowAnonFuncLookups"] == true))) {
        for (var x in nso) {
            try {
                if (nso[x] === _1b5) {
                    return x;
                }
            }
            catch(e) {
            }
        }
    }
    var ret = "__" + dojo.lang.anonCtr++;
    while (typeof nso[ret] != "undefined") {
        ret = "__" + dojo.lang.anonCtr++;
    }
    nso[ret] = _1b5;
    return ret;
};
dojo.lang.forward = function(_1bb) {
    return function() {
        return this[_1bb].apply(this, arguments);
    };
};
dojo.lang.curry = function(_1bc, func) {
    var _1be = [];
    _1bc = _1bc || dj_global;
    if (dojo.lang.isString(func)) {
        func = _1bc[func];
    }
    for (var x = 2; x < arguments.length; x++) {
        _1be.push(arguments[x]);
    }
    var _1c0 = (func["__preJoinArity"] || func.length) - _1be.length;
    function gather(_1c1, _1c2, _1c3) {
        var _1c4 = _1c3;
        var _1c5 = _1c2.slice(0);
        for (var x = 0; x < _1c1.length; x++) {
            _1c5.push(_1c1[x]);
        }
        _1c3 = _1c3 - _1c1.length;
        if (_1c3 <= 0) {
            var res = func.apply(_1bc, _1c5);
            _1c3 = _1c4;
            return res;
        } else {
            return function() {
                return gather(arguments, _1c5, _1c3);
            };
        }
    }
    return gather([], _1be, _1c0);
};
dojo.lang.curryArguments = function(_1c8, func, args, _1cb) {
    var _1cc = [];
    var x = _1cb || 0;
    for (x = _1cb; x < args.length; x++) {
        _1cc.push(args[x]);
    }
    return dojo.lang.curry.apply(dojo.lang, [_1c8,func].concat(_1cc));
};
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, _1d2, _1d3) {
    if (!farr.length) {
        if (typeof _1d3 == "function") {
            _1d3();
        }
        return;
    }
    if ((typeof _1d2 == "undefined") && (typeof cb == "number")) {
        _1d2 = cb;
        cb = function() {
        };
    } else {
        if (!cb) {
            cb = function() {
            };
            if (!_1d2) {
                _1d2 = 0;
            }
        }
    }
    setTimeout(function() {
        (farr.shift())();
        cb();
        dojo.lang.delayThese(farr, cb, _1d2, _1d3);
    }, _1d2);
};
dojo.provide("dojo.string.extras");
dojo.string.substituteParams = function(_1d4, hash) {
    var map = (typeof hash == "object") ? hash : dojo.lang.toArray(arguments, 1);
    return _1d4.replace(/\%\{(\w+)\}/g, function(_1d7, 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 _1da = str.split(" ");
    for (var i = 0; i < _1da.length; i++) {
        _1da[i] = _1da[i].charAt(0).toUpperCase() + _1da[i].substring(1);
    }
    return _1da.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 _1df = escape(str);
    var _1e0,re = /%u([0-9A-F]{4})/i;
    while ((_1e0 = _1df.match(re))) {
        var num = Number("0x" + _1e0[1]);
        var _1e3 = escape("&#" + num + ";");
        ret += _1df.substring(0, _1e0.index) + _1e3;
        _1df = _1df.substring(_1e0.index + _1e0[0].length);
    }
    ret += _1df.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, _1e8) {
    str = str.replace(/&/gm, "&amp;").replace(/</gm, "&lt;").replace(/>/gm, "&gt;").replace(/"/gm, "&quot;");
    if (!_1e8) {
        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, _1f1) {
    if (_1f1) {
        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, _1f5, _1f6) {
    if (_1f6) {
        str = str.toLowerCase();
        _1f5 = _1f5.toLowerCase();
    }
    return str.indexOf(_1f5) == 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, _1fc) {
    if (_1fc == "\n") {
        text = text.replace(/\r\n/g, "\n");
        text = text.replace(/\r/g, "\n");
    } else {
        if (_1fc == "\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, _1fe) {
    var _1ff = [];
    for (var i = 0,_201 = 0; i < str.length; i++) {
        if (str.charAt(i) == "\\") {
            i++;
            continue;
        }
        if (str.charAt(i) == _1fe) {
            _1ff.push(str.substring(_201, i));
            _201 = i + 1;
        }
    }
    _1ff.push(str.substr(_201));
    return _1ff;
};
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 _203 = dojo.doc();
    do{
        var id = "dj_unique_" + (++arguments.callee._idIncrement);
    } while (_203.getElementById(id));
    return id;
};
dojo.dom.getUniqueId._idIncrement = 0;
dojo.dom.firstElement = dojo.dom.getFirstChildElement = function(_205, _206) {
    var node = _205.firstChild;
    while (node && node.nodeType != dojo.dom.ELEMENT_NODE) {
        node = node.nextSibling;
    }
    if (_206 && node && node.tagName && node.tagName.toLowerCase() != _206.toLowerCase()) {
        node = dojo.dom.nextElement(node, _206);
    }
    return node;
};
dojo.dom.lastElement = dojo.dom.getLastChildElement = function(_208, _209) {
    var node = _208.lastChild;
    while (node && node.nodeType != dojo.dom.ELEMENT_NODE) {
        node = node.previousSibling;
    }
    if (_209 && node && node.tagName && node.tagName.toLowerCase() != _209.toLowerCase()) {
        node = dojo.dom.prevElement(node, _209);
    }
    return node;
};
dojo.dom.nextElement = dojo.dom.getNextSiblingElement = function(node, _20c) {
    if (!node) {
        return null;
    }
    do{
        node = node.nextSibling;
    } while (node && node.nodeType != dojo.dom.ELEMENT_NODE);
    if (node && _20c && _20c.toLowerCase() != node.tagName.toLowerCase()) {
        return dojo.dom.nextElement(node, _20c);
    }
    return node;
};
dojo.dom.prevElement = dojo.dom.getPreviousSiblingElement = function(node, _20e) {
    if (!node) {
        return null;
    }
    if (_20e) {
        _20e = _20e.toLowerCase();
    }
    do{
        node = node.previousSibling;
    } while (node && node.nodeType != dojo.dom.ELEMENT_NODE);
    if (node && _20e && _20e.toLowerCase() != node.tagName.toLowerCase()) {
        return dojo.dom.prevElement(node, _20e);
    }
    return node;
};
dojo.dom.moveChildren = function(_20f, _210, trim) {
    var _212 = 0;
    if (trim) {
        while (_20f.hasChildNodes() && _20f.firstChild.nodeType == dojo.dom.TEXT_NODE) {
            _20f.removeChild(_20f.firstChild);
        }
        while (_20f.hasChildNodes() && _20f.lastChild.nodeType == dojo.dom.TEXT_NODE) {
            _20f.removeChild(_20f.lastChild);
        }
    }
    while (_20f.hasChildNodes()) {
        _210.appendChild(_20f.firstChild);
        _212++;
    }
    return _212;
};
dojo.dom.copyChildren = function(_213, _214, trim) {
    var _216 = _213.cloneNode(true);
    return this.moveChildren(_216, _214, trim);
};
dojo.dom.replaceChildren = function(node, _218) {
    var _219 = [];
    if (dojo.render.html.ie) {
        for (var i = 0; i < node.childNodes.length; i++) {
            _219.push(node.childNodes[i]);
        }
    }
    dojo.dom.removeChildren(node);
    node.appendChild(_218);
    for (var i = 0; i < _219.length; i++) {
        dojo.dom.destroyNode(_219[i]);
    }
};
dojo.dom.removeChildren = function(node) {
    var _21c = node.childNodes.length;
    while (node.hasChildNodes()) {
        dojo.dom.removeNode(node.firstChild);
    }
    return _21c;
};
dojo.dom.replaceNode = function(node, _21e) {
    return node.parentNode.replaceChild(_21e, node);
};
dojo.dom.destroyNode = function(node) {
    if (node.parentNode) {
        node = dojo.dom.removeNode(node);
    }
    if (node.nodeType != 3) {
        if (dojo.evalObjPath("dojo.event.browser.clean", false)) {
            dojo.event.browser.clean(node);
        }
        if (dojo.render.html.ie) {
            node.outerHTML = "";
        }
    }
};
dojo.dom.removeNode = function(node) {
    if (node && node.parentNode) {
        return node.parentNode.removeChild(node);
    }
};
dojo.dom.getAncestors = function(node, _222, _223) {
    var _224 = [];
    var _225 = (_222 && (_222 instanceof Function || typeof _222 == "function"));
    while (node) {
        if (!_225 || _222(node)) {
            _224.push(node);
        }
        if (_223 && _224.length > 0) {
            return _224[0];
        }
        node = node.parentNode;
    }
    if (_223) {
        return null;
    }
    return _224;
};
dojo.dom.getAncestorsByTag = function(node, tag, _228) {
    tag = tag.toLowerCase();
    return dojo.dom.getAncestors(node, function(el) {
        return ((el.tagName) && (el.tagName.toLowerCase() == tag));
    }, _228);
};
dojo.dom.getFirstAncestorByTag = function(node, tag) {
    return dojo.dom.getAncestorsByTag(node, tag, true);
};
dojo.dom.isDescendantOf = function(node, _22d, _22e) {
    if (_22e && node) {
        node = node.parentNode;
    }
    while (node) {
        if (node == _22d) {
            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 _231 = dojo.doc();
    if (!dj_undef("ActiveXObject")) {
        var _232 = ["MSXML2","Microsoft","MSXML","MSXML3"];
        for (var i = 0; i < _232.length; i++) {
            try {
                doc = new ActiveXObject(_232[i] + ".XMLDOM");
            }
            catch(e) {
            }
            if (doc) {
                break;
            }
        }
    } else {
        if ((_231.implementation) && (_231.implementation.createDocument)) {
            doc = _231.implementation.createDocument("", "", null);
        }
    }
    return doc;
};
dojo.dom.createDocumentFromText = function(str, _235) {
    if (!_235) {
        _235 = "text/xml";
    }
    if (!dj_undef("DOMParser")) {
        var _236 = new DOMParser();
        return _236.parseFromString(str, _235);
    } else {
        if (!dj_undef("ActiveXObject")) {
            var _237 = dojo.dom.createDocument();
            if (_237) {
                _237.async = false;
                _237.loadXML(str);
                return _237;
            } else {
                dojo.debug("toXml didn't work?");
            }
        } else {
            var _238 = dojo.doc();
            if (_238.createElement) {
                var tmp = _238.createElement("xml");
                tmp.innerHTML = str;
                if (_238.implementation && _238.implementation.createDocument) {
                    var _23a = _238.implementation.createDocument("foo", "", null);
                    for (var i = 0; i < tmp.childNodes.length; i++) {
                        _23a.importNode(tmp.childNodes.item(i), true);
                    }
                    return _23a;
                }
                return ((tmp.document) && (tmp.document.firstChild ? tmp.document.firstChild : tmp));
            }
        }
    }
    return null;
};
dojo.dom.prependChild = function(node, _23d) {
    if (_23d.firstChild) {
        _23d.insertBefore(node, _23d.firstChild);
    } else {
        _23d.appendChild(node);
    }
    return true;
};
dojo.dom.insertBefore = function(node, ref, _240) {
    if ((_240 != true) && (node === ref || node.nextSibling === ref)) {
        return false;
    }
    var _241 = ref.parentNode;
    _241.insertBefore(node, ref);
    return true;
};
dojo.dom.insertAfter = function(node, ref, _244) {
    var pn = ref.parentNode;
    if (ref == pn.lastChild) {
        if ((_244 != true) && (node === ref)) {
            return false;
        }
        pn.appendChild(node);
    } else {
        return this.insertBefore(node, ref.nextSibling, _244);
    }
    return true;
};
dojo.dom.insertAtPosition = function(node, ref, _248) {
    if ((!node) || (!ref) || (!_248)) {
        return false;
    }
    switch (_248.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, _24a, _24b) {
    var _24c = _24a.childNodes;
    if (!_24c.length || _24c.length == _24b) {
        _24a.appendChild(node);
        return true;
    }
    if (_24b == 0) {
        return dojo.dom.prependChild(node, _24a);
    }
    return dojo.dom.insertAfter(node, _24c[_24b - 1]);
};
dojo.dom.textContent = function(node, text) {
    if (arguments.length > 1) {
        var _24f = dojo.doc();
        dojo.dom.replaceChildren(node, _24f.createTextNode(text));
        return text;
    } else {
        if (node.textContent != undefined) {
            return node.textContent;
        }
        var _250 = "";
        if (node == null) {
            return _250;
        }
        for (var i = 0; i < node.childNodes.length; i++) {
            switch (node.childNodes[i].nodeType) {
                case 1:
                case 5:
                    _250 += dojo.dom.textContent(node.childNodes[i]);
                    break;
                case 3:
                case 2:
                case 4:
                    _250 += node.childNodes[i].nodeValue;
                    break;
                default:
                    break;
            }
        }
        return _250;
    }
};
dojo.dom.hasParent = function(node) {
    return Boolean(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, _256, _257, _258) {
    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(_256, _257, _258);
    } else {
        var _259 = elem.ownerDocument;
        var _25a = _259.createNode(2, _257, _256);
        _25a.nodeValue = _258;
        elem.setAttributeNode(_25a);
    }
};
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='" + (djConfig["dojoIframeHistoryUrl"] || 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:(!dj_undef("window")) ? window.location.href : "",initialHash:(!dj_undef("window")) ? 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) {
        if (djConfig["useXDomain"] && !djConfig["dojoIframeHistoryUrl"]) {
            dojo.debug("dojo.undo.browser: When using cross-domain Dojo builds," + " please save iframe_history.html to your domain and set djConfig.dojoIframeHistoryUrl" + " to the path on your domain to iframe_history.html");
        }
        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 _25f = args["back"] || args["backButton"] || args["handle"];
            var tcb = function(_261) {
                if (window.location.hash != "") {
                    setTimeout("window.location.href = '" + hash + "';", 1);
                }
                _25f.apply(this, [_261]);
            };
            if (args["back"]) {
                args.back = tcb;
            } else {
                if (args["backButton"]) {
                    args.backButton = tcb;
                } else {
                    if (args["handle"]) {
                        args.handle = tcb;
                    }
                }
            }
            var _262 = args["forward"] || args["forwardButton"] || args["handle"];
            var tfw = function(_264) {
                if (window.location.hash != "") {
                    window.location.href = hash;
                }
                if (_262) {
                    _262.apply(this, [_264]);
                }
            };
            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, _267) {
    if (!dojo.render.html.opera) {
        var _268 = this._getUrlQuery(_267.href);
        if (_268 == null) {
            if (this.historyStack.length == 1) {
                this.handleBackButton();
            }
            return;
        }
        if (this.moveForward) {
            this.moveForward = false;
            return;
        }
        if (this.historyStack.length >= 2 && _268 == this._getUrlQuery(this.historyStack[this.historyStack.length - 2].url)) {
            this.handleBackButton();
        } else {
            if (this.forwardStack.length > 0 && _268 == this._getUrlQuery(this.forwardStack[this.forwardStack.length - 1].url)) {
                this.handleForwardButton();
            }
        }
    }
},handleBackButton:function() {
    var _269 = this.historyStack.pop();
    if (!_269) {
        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(_269);
},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 _270 = url.split("?");
    if (_270.length < 2) {
        return null;
    } else {
        return _270[1];
    }
},_loadIframeHistory:function() {
    var url = (djConfig["dojoIframeHistoryUrl"] || 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");
if (!dj_undef("window")) {
    dojo.io.checkChildrenForFile = function(node) {
        var _273 = false;
        var _274 = node.getElementsByTagName("input");
        dojo.lang.forEach(_274, function(_275) {
            if (_273) {
                return;
            }
            if (_275.getAttribute("type") == "file") {
                _273 = true;
            }
        });
        return _273;
    };
    dojo.io.formHasFile = function(_276) {
        return dojo.io.checkChildrenForFile(_276);
    };
    dojo.io.updateNode = function(node, _278) {
        node = dojo.byId(node);
        var args = _278;
        if (dojo.lang.isString(_278)) {
            args = {url:_278};
        }
        args.mimetype = "text/html";
        args.load = function(t, d, e) {
            while (node.firstChild) {
                dojo.dom.destroyNode(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(_27f, _280, _281) {
        if ((!_27f) || (!_27f.tagName) || (!_27f.tagName.toLowerCase() == "form")) {
            dojo.raise("Attempted to encode a non-form element.");
        }
        if (!_281) {
            _281 = dojo.io.formFilter;
        }
        var enc = /utf/i.test(_280 || "") ? encodeURIComponent : dojo.string.encodeAscii;
        var _283 = [];
        for (var i = 0; i < _27f.elements.length; i++) {
            var elm = _27f.elements[i];
            if (!elm || elm.tagName.toLowerCase() == "fieldset" || !_281(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) {
                        _283.push(name + "=" + enc(elm.options[j].value));
                    }
                }
            } else {
                if (dojo.lang.inArray(["radio","checkbox"], type)) {
                    if (elm.checked) {
                        _283.push(name + "=" + enc(elm.value));
                    }
                } else {
                    _283.push(name + "=" + enc(elm.value));
                }
            }
        }
        var _289 = _27f.getElementsByTagName("input");
        for (var i = 0; i < _289.length; i++) {
            var _28a = _289[i];
            if (_28a.type.toLowerCase() == "image" && _28a.form == _27f && _281(_28a)) {
                var name = enc(_28a.name);
                _283.push(name + "=" + enc(_28a.value));
                _283.push(name + ".x=0");
                _283.push(name + ".y=0");
            }
        }
        return _283.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 _290 = form.getElementsByTagName("input");
        for (var i = 0; i < _290.length; i++) {
            var _291 = _290[i];
            if (_291.type.toLowerCase() == "image" && _291.form == form) {
                this.connect(_291, "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 _298 = false;
        if (node.disabled || !node.name) {
            _298 = false;
        } else {
            if (dojo.lang.inArray(["submit","button","image"], type)) {
                if (!this.clickedButton) {
                    this.clickedButton = node;
                }
                _298 = node == this.clickedButton;
            } else {
                _298 = !dojo.lang.inArray(["file","submit","reset","button"], type);
            }
        }
        return _298;
    },connect:function(_299, _29a, _29b) {
        if (dojo.evalObjPath("dojo.event.connect")) {
            dojo.event.connect(_299, _29a, this, _29b);
        } else {
            var fcn = dojo.lang.hitch(this, _29b);
            _299[_29a] = 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 _29e = this;
        var _29f = {};
        this.useCache = false;
        this.preventCache = false;
        function getCacheKey(url, _2a1, _2a2) {
            return url + "|" + _2a1 + "|" + _2a2.toLowerCase();
        }
        function addToCache(url, _2a4, _2a5, http) {
            _29f[getCacheKey(url, _2a4, _2a5)] = http;
        }
        function getFromCache(url, _2a8, _2a9) {
            return _29f[getCacheKey(url, _2a8, _2a9)];
        }
        this.clearCache = function() {
            _29f = {};
        };
        function doLoad(_2aa, http, url, _2ad, _2ae) {
            if (((http.status >= 200) && (http.status < 300)) || (http.status == 304) || (http.status == 1223) || (location.protocol == "file:" && (http.status == 0 || http.status == undefined)) || (location.protocol == "chrome:" && (http.status == 0 || http.status == undefined))) {
                var ret;
                if (_2aa.method.toLowerCase() == "head") {
                    var _2b0 = http.getAllResponseHeaders();
                    ret = {};
                    ret.toString = function() {
                        return _2b0;
                    };
                    var _2b1 = _2b0.split(/[\r\n]+/g);
                    for (var i = 0; i < _2b1.length; i++) {
                        var pair = _2b1[i].match(/^([^:]+)\s*:\s*(.+)$/i);
                        if (pair) {
                            ret[pair[1]] = pair[2];
                        }
                    }
                } else {
                    if (_2aa.mimetype == "text/javascript") {
                        try {
                            ret = dj_eval(http.responseText);
                        }
                        catch(e) {
                            dojo.debug(e);
                            dojo.debug(http.responseText);
                            ret = null;
                        }
                    } else {
                        if (_2aa.mimetype.substr(0, 9) == "text/json" || _2aa.mimetype.substr(0, 16) == "application/json") {
                            try {
                                ret = dj_eval("(" + _2aa.jsonFilter(http.responseText) + ")");
                            }
                            catch(e) {
                                dojo.debug(e);
                                dojo.debug(http.responseText);
                                ret = false;
                            }
                        } else {
                            if ((_2aa.mimetype == "application/xml") || (_2aa.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 (_2ae) {
                    addToCache(url, _2ad, _2aa.method, http);
                }
                _2aa[(typeof _2aa.load == "function") ? "load" : "handle"]("load", ret, http, _2aa);
            } else {
                var _2b4 = new dojo.io.Error("XMLHttpTransport Error: " + http.status + " " + http.statusText);
                _2aa[(typeof _2aa.error == "function") ? "error" : "handle"]("error", _2b4, http, _2aa);
            }
        }
        function setHeaders(http, _2b6) {
            if (_2b6["headers"]) {
                for (var _2b7 in _2b6["headers"]) {
                    if (_2b7.toLowerCase() == "content-type" && !_2b6["contentType"]) {
                        _2b6["contentType"] = _2b6["headers"][_2b7];
                    } else {
                        http.setRequestHeader(_2b7, _2b6["headers"][_2b7]);
                    }
                }
            }
        }
        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 && !_29e._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 _2bb = new dojo.io.Error("XMLHttpTransport.watchInFlight Error: " + e);
                            tif.req[(typeof tif.req.error == "function") ? "error" : "handle"]("error", _2bb, 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 _2bc = dojo.hostenv.getXmlhttpObject() ? true : false;
        this.canHandle = function(_2bd) {
            var mlc = _2bd["mimetype"].toLowerCase() || "";
            return _2bc && ((dojo.lang.inArray(["text/plain","text/html","application/xml","text/xml","text/javascript"], mlc)) || (mlc.substr(0, 9) == "text/json" || mlc.substr(0, 16) == "application/json")) && !(_2bd["formNode"] && dojo.io.formHasFile(_2bd["formNode"]));
        };
        this.multipartBoundary = "45309FFF-BD65-4d50-99C9-36986896A96F";
        this.bind = function(_2bf) {
            if (!_2bf["url"]) {
                if (!_2bf["formNode"] && (_2bf["backButton"] || _2bf["back"] || _2bf["changeUrl"] || _2bf["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(_2bf);
                    return true;
                }
            }
            var url = _2bf.url;
            var _2c1 = "";
            if (_2bf["formNode"]) {
                var ta = _2bf.formNode.getAttribute("action");
                if ((ta) && (!_2bf["url"])) {
                    url = ta;
                }
                var tp = _2bf.formNode.getAttribute("method");
                if ((tp) && (!_2bf["method"])) {
                    _2bf.method = tp;
                }
                _2c1 += dojo.io.encodeForm(_2bf.formNode, _2bf.encoding, _2bf["formFilter"]);
            }
            if (url.indexOf("#") > -1) {
                dojo.debug("Warning: dojo.io.bind: stripping hash values from url:", url);
                url = url.split("#")[0];
            }
            if (_2bf["file"]) {
                _2bf.method = "post";
            }
            if (!_2bf["method"]) {
                _2bf.method = "get";
            }
            if (_2bf.method.toLowerCase() == "get") {
                _2bf.multipart = false;
            } else {
                if (_2bf["file"]) {
                    _2bf.multipart = true;
                } else {
                    if (!_2bf["multipart"]) {
                        _2bf.multipart = false;
                    }
                }
            }
            if (_2bf["backButton"] || _2bf["back"] || _2bf["changeUrl"]) {
                dojo.undo.browser.addToHistory(_2bf);
            }
            var _2c4 = _2bf["content"] || {};
            if (_2bf.sendTransport) {
                _2c4["dojo.transport"] = "xmlhttp";
            }
            do{
                if (_2bf.postContent) {
                    _2c1 = _2bf.postContent;
                    break;
                }
                if (_2c4) {
                    _2c1 += dojo.io.argsFromMap(_2c4, _2bf.encoding);
                }
                if (_2bf.method.toLowerCase() == "get" || !_2bf.multipart) {
                    break;
                }
                var t = [];
                if (_2c1.length) {
                    var q = _2c1.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 (_2bf.file) {
                    if (dojo.lang.isArray(_2bf.file)) {
                        for (var i = 0; i < _2bf.file.length; ++i) {
                            var o = _2bf.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 = _2bf.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 + "--", "");
                    _2c1 = t.join("\r\n");
                }
            } while (false);
            var _2ca = _2bf["sync"] ? false : true;
            var _2cb = _2bf["preventCache"] || (this.preventCache == true && _2bf["preventCache"] != false);
            var _2cc = _2bf["useCache"] == true || (this.useCache == true && _2bf["useCache"] != false);
            if (!_2cb && _2cc) {
                var _2cd = getFromCache(url, _2c1, _2bf.method);
                if (_2cd) {
                    doLoad(_2bf, _2cd, url, _2c1, false);
                    return;
                }
            }
            var http = dojo.hostenv.getXmlhttpObject(_2bf);
            var _2cf = false;
            if (_2ca) {
                var _2d0 = this.inFlight.push({"req":_2bf,"http":http,"url":url,"query":_2c1,"useCache":_2cc,"startTime":_2bf.timeoutSeconds ? (new Date()).getTime() : 0});
                this.startWatchingInFlight();
            } else {
                _29e._blockAsync = true;
            }
            if (_2bf.method.toLowerCase() == "post") {
                if (!_2bf.user) {
                    http.open("POST", url, _2ca);
                } else {
                    http.open("POST", url, _2ca, _2bf.user, _2bf.password);
                }
                setHeaders(http, _2bf);
                http.setRequestHeader("Content-Type", _2bf.multipart ? ("multipart/form-data; boundary=" + this.multipartBoundary) : (_2bf.contentType || "application/x-www-form-urlencoded"));
                try {
                    http.send(_2c1);
                }
                catch(e) {
                    if (typeof http.abort == "function") {
                        http.abort();
                    }
                    doLoad(_2bf, {status:404}, url, _2c1, _2cc);
                }
            } else {
                var _2d1 = url;
                if (_2c1 != "") {
                    _2d1 += (_2d1.indexOf("?") > -1 ? "&" : "?") + _2c1;
                }
                if (_2cb) {
                    _2d1 += (dojo.string.endsWithAny(_2d1, "?", "&") ? "" : (_2d1.indexOf("?") > -1 ? "&" : "?")) + "dojo.preventCache=" + new Date().valueOf();
                }
                if (!_2bf.user) {
                    http.open(_2bf.method.toUpperCase(), _2d1, _2ca);
                } else {
                    http.open(_2bf.method.toUpperCase(), _2d1, _2ca, _2bf.user, _2bf.password);
                }
                setHeaders(http, _2bf);
                try {
                    http.send(null);
                }
                catch(e) {
                    if (typeof http.abort == "function") {
                        http.abort();
                    }
                    doLoad(_2bf, {status:404}, url, _2c1, _2cc);
                }
            }
            if (!_2ca) {
                doLoad(_2bf, http, url, _2c1, _2cc);
                _29e._blockAsync = false;
            }
            _2bf.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, _2d3, days, path, _2d6, _2d7) {
    var _2d8 = -1;
    if ((typeof days == "number") && (days >= 0)) {
        var d = new Date();
        d.setTime(d.getTime() + (days * 24 * 60 * 60 * 1000));
        _2d8 = d.toGMTString();
    }
    _2d3 = escape(_2d3);
    document.cookie = name + "=" + _2d3 + ";" + (_2d8 != -1 ? " expires=" + _2d8 + ";" : "") + (path ? "path=" + path : "") + (_2d6 ? "; domain=" + _2d6 : "") + (_2d7 ? "; 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 _2dc = document.cookie.substring(idx + name.length + 1);
    var end = _2dc.indexOf(";");
    if (end == -1) {
        end = _2dc.length;
    }
    _2dc = _2dc.substring(0, end);
    _2dc = unescape(_2dc);
    return _2dc;
};
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, _2e3, _2e4, _2e5) {
    if (arguments.length == 5) {
        _2e5 = _2e3;
        _2e3 = null;
        _2e4 = null;
    }
    var _2e6 = [],_2e7,_2e8 = "";
    if (!_2e5) {
        _2e7 = dojo.io.cookie.getObjectCookie(name);
    }
    if (days >= 0) {
        if (!_2e7) {
            _2e7 = {};
        }
        for (var prop in obj) {
            if (obj[prop] == null) {
                delete _2e7[prop];
            } else {
                if ((typeof obj[prop] == "string") || (typeof obj[prop] == "number")) {
                    _2e7[prop] = obj[prop];
                }
            }
        }
        prop = null;
        for (var prop in _2e7) {
            _2e6.push(escape(prop) + "=" + escape(_2e7[prop]));
        }
        _2e8 = _2e6.join("&");
    }
    dojo.io.cookie.setCookie(name, _2e8, days, path, _2e3, _2e4);
};
dojo.io.cookie.getObjectCookie = function(name) {
    var _2eb = null,_2ec = dojo.io.cookie.getCookie(name);
    if (_2ec) {
        _2eb = {};
        var _2ed = _2ec.split("&");
        for (var i = 0; i < _2ed.length; i++) {
            var pair = _2ed[i].split("=");
            var _2f0 = pair[1];
            if (isNaN(_2f0)) {
                _2f0 = unescape(pair[1]);
            }
            _2eb[unescape(pair[0])] = _2f0;
        }
    }
    return _2eb;
};
dojo.io.cookie.isSupported = function() {
    if (typeof navigator.cookieEnabled != "boolean") {
        dojo.io.cookie.setCookie("__TestingYourBrowserForCookieSupport__", "CookiesAllowed", 90, null);
        var _2f1 = dojo.io.cookie.getCookie("__TestingYourBrowserForCookieSupport__");
        navigator.cookieEnabled = (_2f1 == "CookiesAllowed");
        if (navigator.cookieEnabled) {
            this.deleteCookie("__TestingYourBrowserForCookieSupport__");
        }
    }
    return navigator.cookieEnabled;
};
if (!dojo.io.cookies) {
    dojo.io.cookies = dojo.io.cookie;
}
dojo.kwCompoundRequire({common:["dojo.io.common"],rhino:["dojo.io.RhinoIO"],browser:["dojo.io.BrowserIO","dojo.io.cookie"],dashboard:["dojo.io.BrowserIO","dojo.io.cookie"]});
dojo.provide("dojo.io.*");
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, _2f3) {
        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,maxCalls:-1};
        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 _2f6 = dl.nameAnonFunc(args[2], ao.adviceObj, _2f3);
                            ao.adviceFunc = _2f6;
                        } else {
                            if ((dl.isFunction(args[0])) && (dl.isObject(args[1])) && (dl.isString(args[2]))) {
                                ao.adviceType = "after";
                                ao.srcObj = dj_global;
                                var _2f6 = dl.nameAnonFunc(args[0], ao.srcObj, _2f3);
                                ao.srcFunc = _2f6;
                                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 _2f6 = dl.nameAnonFunc(args[1], dj_global, _2f3);
                            ao.srcFunc = _2f6;
                            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 _2f6 = dl.nameAnonFunc(args[3], dj_global, _2f3);
                                ao.adviceObj = dj_global;
                                ao.adviceFunc = _2f6;
                            } 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];
                ao.maxCalls = (!isNaN(parseInt(args[11]))) ? args[11] : -1;
                break;
        }
        if (dl.isFunction(ao.aroundFunc)) {
            var _2f6 = dl.nameAnonFunc(ao.aroundFunc, ao.aroundObj, _2f3);
            ao.aroundFunc = _2f6;
        }
        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 _2f8 = {};
            for (var x in ao) {
                _2f8[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);
                }
                _2f8.srcObj = src;
                mjps.push(dojo.event.connect.call(dojo.event, _2f8));
            });
            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 _300;
        if ((arguments.length == 1) && (typeof a1 == "object")) {
            _300 = a1;
        } else {
            _300 = {srcObj:a1,srcFunc:a2};
        }
        _300.adviceFunc = function() {
            var _301 = [];
            for (var x = 0; x < arguments.length; x++) {
                _301.push(arguments[x]);
            }
            dojo.debug("(" + _300.srcObj + ")." + _300.srcFunc, ":", _301.join(", "));
        };
        this.kwConnect(_300);
    };
    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.connectRunOnce = function() {
        var ao = interpolateArgs(arguments, true);
        ao.maxCalls = 1;
        return this.connect(ao);
    };
    this._kwConnectImpl = function(_309, _30a) {
        var fn = (_30a) ? "disconnect" : "connect";
        if (typeof _309["srcFunc"] == "function") {
            _309.srcObj = _309["srcObj"] || dj_global;
            var _30c = dojo.lang.nameAnonFunc(_309.srcFunc, _309.srcObj, true);
            _309.srcFunc = _30c;
        }
        if (typeof _309["adviceFunc"] == "function") {
            _309.adviceObj = _309["adviceObj"] || dj_global;
            var _30c = dojo.lang.nameAnonFunc(_309.adviceFunc, _309.adviceObj, true);
            _309.adviceFunc = _30c;
        }
        _309.srcObj = _309["srcObj"] || dj_global;
        _309.adviceObj = _309["adviceObj"] || _309["targetObj"] || dj_global;
        _309.adviceFunc = _309["adviceFunc"] || _309["targetFunc"];
        return dojo.event[fn](_309);
    };
    this.kwConnect = function(_30d) {
        return this._kwConnectImpl(_30d, 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";
        }
        if (!ao.srcObj[ao.srcFunc]) {
            return null;
        }
        var mjp = dojo.event.MethodJoinPoint.getForMethod(ao.srcObj, ao.srcFunc, true);
        mjp.removeAdvice(ao.adviceObj, ao.adviceFunc, ao.adviceType, ao.once);
        return mjp;
    };
    this.kwDisconnect = function(_310) {
        return this._kwConnectImpl(_310, true);
    };
};
dojo.event.MethodInvocation = function(_311, obj, args) {
    this.jp_ = _311;
    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, _319) {
    this.object = obj || dj_global;
    this.methodname = _319;
    this.methodfunc = this.object[_319];
    this.squelch = false;
};
dojo.event.MethodJoinPoint.getForMethod = function(obj, _31b) {
    if (!obj) {
        obj = dj_global;
    }
    var ofn = obj[_31b];
    if (!ofn) {
        ofn = obj[_31b] = function() {
        };
        if (!obj[_31b]) {
            dojo.raise("Cannot set do-nothing method on that object " + _31b);
        }
    } else {
        if ((typeof ofn != "function") && (!dojo.lang.isFunction(ofn)) && (!dojo.lang.isAlien(ofn))) {
            return null;
        }
    }
    var _31d = _31b + "$joinpoint";
    var _31e = _31b + "$joinpoint$method";
    var _31f = obj[_31d];
    if (!_31f) {
        var _320 = false;
        if (dojo.event["browser"]) {
            if ((obj["attachEvent"]) || (obj["nodeType"]) || (obj["addEventListener"])) {
                _320 = true;
                dojo.event.browser.addClobberNodeAttrs(obj, [_31d,_31e,_31b]);
            }
        }
        var _321 = ofn.length;
        obj[_31e] = ofn;
        _31f = obj[_31d] = new dojo.event.MethodJoinPoint(obj, _31e);
        if (!_320) {
            obj[_31b] = function() {
                return _31f.run.apply(_31f, arguments);
            };
        } else {
            obj[_31b] = function() {
                var args = [];
                if (!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) && (dojo.event.browser.isEvent(arguments[x]))) {
                            args.push(dojo.event.browser.fixEvent(arguments[x], this));
                        } else {
                            args.push(arguments[x]);
                        }
                    }
                }
                return _31f.run.apply(_31f, args);
            };
        }
        obj[_31b].__preJoinArity = _321;
    }
    return _31f;
};
dojo.lang.extend(dojo.event.MethodJoinPoint, {squelch:false,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 _327 = [];
    for (var x = 0; x < args.length; x++) {
        _327[x] = args[x];
    }
    var _329 = function(marr) {
        if (!marr) {
            dojo.debug("Null argument to unrollAdvice()");
            return;
        }
        var _32b = marr[0] || dj_global;
        var _32c = marr[1];
        if (!_32b[_32c]) {
            dojo.raise("function \"" + _32c + "\" does not exist on \"" + _32b + "\"");
        }
        var _32d = marr[2] || dj_global;
        var _32e = marr[3];
        var msg = marr[6];
        var _330 = marr[7];
        if (_330 > -1) {
            if (_330 == 0) {
                return;
            }
            marr[7]--;
        }
        var _331;
        var to = {args:[],jp_:this,object:obj,proceed:function() {
            return _32b[_32c].apply(_32b, to.args);
        }};
        to.args = _327;
        var _333 = parseInt(marr[4]);
        var _334 = ((!isNaN(_333)) && (marr[4] !== null) && (typeof marr[4] != "undefined"));
        if (marr[5]) {
            var rate = parseInt(marr[5]);
            var cur = new Date();
            var _337 = 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;
                        _329(mcpy);
                    }, tod);
                }
                return;
            } else {
                marr.last = cur;
            }
        }
        if (_32e) {
            _32d[_32e].call(_32d, to);
        } else {
            if ((_334) && ((dojo.render.html) || (dojo.render.svg))) {
                dj_global["setTimeout"](function() {
                    if (msg) {
                        _32b[_32c].call(_32b, to);
                    } else {
                        _32b[_32c].apply(_32b, args);
                    }
                }, _333);
            } else {
                if (msg) {
                    _32b[_32c].call(_32b, to);
                } else {
                    _32b[_32c].apply(_32b, args);
                }
            }
        }
    };
    var _33a = function() {
        if (this.squelch) {
            try {
                return _329.apply(this, arguments);
            }
            catch(e) {
                dojo.debug(e);
            }
        } else {
            return _329.apply(this, arguments);
        }
    };
    if ((this["before"]) && (this.before.length > 0)) {
        dojo.lang.forEach(this.before.concat(new Array()), _33a);
    }
    var _33b;
    try {
        if ((this["around"]) && (this.around.length > 0)) {
            var mi = new dojo.event.MethodInvocation(this, obj, args);
            _33b = mi.proceed();
        } else {
            if (this.methodfunc) {
                _33b = this.object[this.methodname].apply(this.object, args);
            }
        }
    }
    catch(e) {
        if (!this.squelch) {
            dojo.debug(e, "when calling", this.methodname, "on", this.object, "with arguments", args);
            dojo.raise(e);
        }
    }
    if ((this["after"]) && (this.after.length > 0)) {
        dojo.lang.forEach(this.after.concat(new Array()), _33a);
    }
    return (this.methodfunc) ? _33b : 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"], args["maxCalls"]);
},addAdvice:function(_340, _341, _342, _343, _344, _345, once, _347, rate, _349, _34a) {
    var arr = this.getArr(_344);
    if (!arr) {
        dojo.raise("bad this: " + this);
    }
    var ao = [_340,_341,_342,_343,_347,rate,_349,_34a];
    if (once) {
        if (this.hasAdvice(_340, _341, _344, arr) >= 0) {
            return;
        }
    }
    if (_345 == "first") {
        arr.unshift(ao);
    } else {
        arr.push(ao);
    }
},hasAdvice:function(_34d, _34e, _34f, arr) {
    if (!arr) {
        arr = this.getArr(_34f);
    }
    var ind = -1;
    for (var x = 0; x < arr.length; x++) {
        var aao = (typeof _34e == "object") ? (new String(_34e)).toString() : _34e;
        var a1o = (typeof arr[x][1] == "object") ? (new String(arr[x][1])).toString() : arr[x][1];
        if ((arr[x][0] == _34d) && (a1o == aao)) {
            ind = x;
        }
    }
    return ind;
},removeAdvice:function(_355, _356, _357, once) {
    var arr = this.getArr(_357);
    var ind = this.hasAdvice(_355, _356, _357, arr);
    if (ind == -1) {
        return false;
    }
    while (ind != -1) {
        arr.splice(ind, 1);
        if (once) {
            break;
        }
        ind = this.hasAdvice(_355, _356, _357, arr);
    }
    return true;
}});
dojo.provide("dojo.event.topic");
dojo.event.topic = new function() {
    this.topics = {};
    this.getTopic = function(_35b) {
        if (!this.topics[_35b]) {
            this.topics[_35b] = new this.TopicImpl(_35b);
        }
        return this.topics[_35b];
    };
    this.registerPublisher = function(_35c, obj, _35e) {
        var _35c = this.getTopic(_35c);
        _35c.registerPublisher(obj, _35e);
    };
    this.subscribe = function(_35f, obj, _361) {
        var _35f = this.getTopic(_35f);
        _35f.subscribe(obj, _361);
    };
    this.unsubscribe = function(_362, obj, _364) {
        var _362 = this.getTopic(_362);
        _362.unsubscribe(obj, _364);
    };
    this.destroy = function(_365) {
        this.getTopic(_365).destroy();
        delete this.topics[_365];
    };
    this.publishApply = function(_366, args) {
        var _366 = this.getTopic(_366);
        _366.sendMessage.apply(_366, args);
    };
    this.publish = function(_368, _369) {
        var _368 = this.getTopic(_368);
        var args = [];
        for (var x = 1; x < arguments.length; x++) {
            args.push(arguments[x]);
        }
        _368.sendMessage.apply(_368, args);
    };
};
dojo.event.topic.TopicImpl = function(_36c) {
    this.topicName = _36c;
    this.subscribe = function(_36d, _36e) {
        var tf = _36e || _36d;
        var to = (!_36e) ? dj_global : _36d;
        return dojo.event.kwConnect({srcObj:this,srcFunc:"sendMessage",adviceObj:to,adviceFunc:tf});
    };
    this.unsubscribe = function(_371, _372) {
        var tf = (!_372) ? _371 : _372;
        var to = (!_372) ? null : _371;
        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(_375) {
        this._getJoinPoint().squelch = _375;
    };
    this.destroy = function() {
        this._getJoinPoint().disconnect();
    };
    this.registerPublisher = function(_376, _377) {
        dojo.event.connect(_376, _377, this, "sendMessage");
    };
    this.sendMessage = function(_378) {
    };
};
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(_37b) {
        var na;
        var tna;
        if (_37b) {
            tna = _37b.all || _37b.getElementsByTagName("*");
            na = [_37b];
            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 _37f = {};
        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) {
        }
        if (dojo.widget) {
            for (var name in dojo.widget._templateCache) {
                if (dojo.widget._templateCache[name].node) {
                    dojo.dom.destroyNode(dojo.widget._templateCache[name].node);
                    dojo.widget._templateCache[name].node = null;
                    delete dojo.widget._templateCache[name].node;
                }
            }
        }
        try {
            window.onload = null;
        }
        catch(e) {
        }
        try {
            window.onunload = null;
        }
        catch(e) {
        }
        dojo._ie_clobber.clobberNodes = [];
    });
}
dojo.event.browser = new function() {
    var _384 = 0;
    this.normalizedEventName = function(_385) {
        switch (_385) {
            case "CheckboxStateChange":
            case "DOMAttrModified":
            case "DOMMenuItemActive":
            case "DOMMenuItemInactive":
            case "DOMMouseScroll":
            case "DOMNodeInserted":
            case "DOMNodeRemoved":
            case "RadioStateChange":
                return _385;
                break;
            default:
                var lcn = _385.toLowerCase();
                return (lcn.indexOf("on") == 0) ? lcn.substr(2) : lcn;
                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, _38a) {
        if (!dojo.render.html.ie) {
            return;
        }
        this.addClobberNode(node);
        for (var x = 0; x < _38a.length; x++) {
            node.__clobberAttrs__.push(_38a[x]);
        }
    };
    this.removeListener = function(node, _38d, fp, _38f) {
        if (!_38f) {
            var _38f = false;
        }
        _38d = dojo.event.browser.normalizedEventName(_38d);
        if (_38d == "key") {
            if (dojo.render.html.ie) {
                this.removeListener(node, "onkeydown", fp, _38f);
            }
            _38d = "keypress";
        }
        if (node.removeEventListener) {
            node.removeEventListener(_38d, fp, _38f);
        }
    };
    this.addListener = function(node, _391, fp, _393, _394) {
        if (!node) {
            return;
        }
        if (!_393) {
            var _393 = false;
        }
        _391 = dojo.event.browser.normalizedEventName(_391);
        if (_391 == "key") {
            if (dojo.render.html.ie) {
                this.addListener(node, "onkeydown", fp, _393, _394);
            }
            _391 = "keypress";
        }
        if (!_394) {
            var _395 = function(evt) {
                if (!evt) {
                    evt = window.event;
                }
                var ret = fp(dojo.event.browser.fixEvent(evt, this));
                if (_393) {
                    dojo.event.browser.stopEvent(evt);
                }
                return ret;
            };
        } else {
            _395 = fp;
        }
        if (node.addEventListener) {
            node.addEventListener(_391, _395, _393);
            return _395;
        } else {
            _391 = "on" + _391;
            if (typeof node[_391] == "function") {
                var _398 = node[_391];
                node[_391] = function(e) {
                    _398(e);
                    return _395(e);
                };
            } else {
                node[_391] = _395;
            }
            if (dojo.render.html.ie) {
                this.addClobberNodeAttrs(node, [_391]);
            }
            return _395;
        }
    };
    this.isEvent = function(obj) {
        return (typeof obj != "undefined") && (obj) && (typeof Event != "undefined") && (obj.eventPhase);
    };
    this.currentEvent = null;
    this.callListener = function(_39b, _39c) {
        if (typeof _39b != "function") {
            dojo.raise("listener not a function: " + _39b);
        }
        dojo.event.browser.currentEvent.currentTarget = _39c;
        return _39b.call(_39c, 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, _39f) {
        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 _3a1 = evt.keyCode;
                            if (_3a1 >= 65 && _3a1 <= 90 && evt.shiftKey == false) {
                                _3a1 += 32;
                            }
                            if (_3a1 >= 1 && _3a1 <= 26 && evt.ctrlKey) {
                                _3a1 += 96;
                            }
                            evt.key = String.fromCharCode(_3a1);
                        }
                }
            } 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 _3a1 = evt.which;
                                        if ((evt.ctrlKey || evt.altKey || evt.metaKey) && (evt.which >= 65 && evt.which <= 90 && evt.shiftKey == false)) {
                                            _3a1 += 32;
                                        }
                                        evt.key = String.fromCharCode(_3a1);
                                }
                            }
                        }
                    } 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 25:
                                        evt.key = evt.KEY_TAB;
                                        evt.shift = true;
                                        break;
                                    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;
                                    case 63236:
                                        evt.key = evt.KEY_F1;
                                        break;
                                    case 63237:
                                        evt.key = evt.KEY_F2;
                                        break;
                                    case 63238:
                                        evt.key = evt.KEY_F3;
                                        break;
                                    case 63239:
                                        evt.key = evt.KEY_F4;
                                        break;
                                    case 63240:
                                        evt.key = evt.KEY_F5;
                                        break;
                                    case 63241:
                                        evt.key = evt.KEY_F6;
                                        break;
                                    case 63242:
                                        evt.key = evt.KEY_F7;
                                        break;
                                    case 63243:
                                        evt.key = evt.KEY_F8;
                                        break;
                                    case 63244:
                                        evt.key = evt.KEY_F9;
                                        break;
                                    case 63245:
                                        evt.key = evt.KEY_F10;
                                        break;
                                    case 63246:
                                        evt.key = evt.KEY_F11;
                                        break;
                                    case 63247:
                                        evt.key = evt.KEY_F12;
                                        break;
                                    case 63250:
                                        evt.key = evt.KEY_PAUSE;
                                        break;
                                    case 63272:
                                        evt.key = evt.KEY_DELETE;
                                        break;
                                    case 63273:
                                        evt.key = evt.KEY_HOME;
                                        break;
                                    case 63275:
                                        evt.key = evt.KEY_END;
                                        break;
                                    case 63276:
                                        evt.key = evt.KEY_PAGE_UP;
                                        break;
                                    case 63277:
                                        evt.key = evt.KEY_PAGE_DOWN;
                                        break;
                                    case 63302:
                                        evt.key = evt.KEY_INSERT;
                                        break;
                                    case 63248:
                                    case 63249:
                                    case 63289:
                                        break;
                                    default:
                                        evt.key = evt.charCode >= evt.KEY_SPACE ? 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 = (_39f ? _39f : 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 _3a3 = ((dojo.render.html.ie55) || (doc["compatMode"] == "BackCompat")) ? doc.body : doc.documentElement;
            if (!evt.pageX) {
                evt.pageX = evt.clientX + (_3a3.scrollLeft || 0);
            }
            if (!evt.pageY) {
                evt.pageY = evt.clientY + (_3a3.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.cancelBubble = true;
            evt.returnValue = false;
        } else {
            evt.preventDefault();
            evt.stopPropagation();
        }
    };
};
dojo.kwCompoundRequire({common:["dojo.event.common","dojo.event.topic"],browser:["dojo.event.browser"],dashboard:["dojo.event.browser"]});
dojo.provide("dojo.event.*");
dojo.provide("dojo.gfx.color");
dojo.gfx.color.Color = function(r, g, b, a) {
    if (dojo.lang.isArray(r)) {
        this.r = r[0];
        this.g = r[1];
        this.b = r[2];
        this.a = r[3] || 1;
    } else {
        if (dojo.lang.isString(r)) {
            var rgb = dojo.gfx.color.extractRGB(r);
            this.r = rgb[0];
            this.g = rgb[1];
            this.b = rgb[2];
            this.a = g || 1;
        } else {
            if (r instanceof dojo.gfx.color.Color) {
                this.r = r.r;
                this.b = r.b;
                this.g = r.g;
                this.a = r.a;
            } else {
                this.r = r;
                this.g = g;
                this.b = b;
                this.a = a;
            }
        }
    }
};
dojo.gfx.color.Color.fromArray = function(arr) {
    return new dojo.gfx.color.Color(arr[0], arr[1], arr[2], arr[3]);
};
dojo.extend(dojo.gfx.color.Color, {toRgb:function(_3ab) {
    if (_3ab) {
        return this.toRgba();
    } else {
        return [this.r,this.g,this.b];
    }
},toRgba:function() {
    return [this.r,this.g,this.b,this.a];
},toHex:function() {
    return dojo.gfx.color.rgb2hex(this.toRgb());
},toCss:function() {
    return "rgb(" + this.toRgb().join() + ")";
},toString:function() {
    return this.toHex();
},blend:function(_3ac, _3ad) {
    var rgb = null;
    if (dojo.lang.isArray(_3ac)) {
        rgb = _3ac;
    } else {
        if (_3ac instanceof dojo.gfx.color.Color) {
            rgb = _3ac.toRgb();
        } else {
            rgb = new dojo.gfx.color.Color(_3ac).toRgb();
        }
    }
    return dojo.gfx.color.blend(this.toRgb(), rgb, _3ad);
}});
dojo.gfx.color.named = {white:[255,255,255],black:[0,0,0],red:[255,0,0],green:[0,255,0],lime:[0,255,0],blue:[0,0,255],navy:[0,0,128],gray:[128,128,128],silver:[192,192,192]};
dojo.gfx.color.blend = function(a, b, _3b1) {
    if (typeof a == "string") {
        return dojo.gfx.color.blendHex(a, b, _3b1);
    }
    if (!_3b1) {
        _3b1 = 0;
    }
    _3b1 = Math.min(Math.max(-1, _3b1), 1);
    _3b1 = ((_3b1 + 1) / 2);
    var c = [];
    for (var x = 0; x < 3; x++) {
        c[x] = parseInt(b[x] + ((a[x] - b[x]) * _3b1));
    }
    return c;
};
dojo.gfx.color.blendHex = function(a, b, _3b6) {
    return dojo.gfx.color.rgb2hex(dojo.gfx.color.blend(dojo.gfx.color.hex2rgb(a), dojo.gfx.color.hex2rgb(b), _3b6));
};
dojo.gfx.color.extractRGB = function(_3b7) {
    var hex = "0123456789abcdef";
    _3b7 = _3b7.toLowerCase();
    if (_3b7.indexOf("rgb") == 0) {
        var _3b9 = _3b7.match(/rgba*\((\d+), *(\d+), *(\d+)/i);
        var ret = _3b9.splice(1, 3);
        return ret;
    } else {
        var _3bb = dojo.gfx.color.hex2rgb(_3b7);
        if (_3bb) {
            return _3bb;
        } else {
            return dojo.gfx.color.named[_3b7] || [255,255,255];
        }
    }
};
dojo.gfx.color.hex2rgb = function(hex) {
    var _3bd = "0123456789ABCDEF";
    var rgb = new Array(3);
    if (hex.indexOf("#") == 0) {
        hex = hex.substring(1);
    }
    hex = hex.toUpperCase();
    if (hex.replace(new RegExp("[" + _3bd + "]", "g"), "") != "") {
        return null;
    }
    if (hex.length == 3) {
        rgb[0] = hex.charAt(0) + hex.charAt(0);
        rgb[1] = hex.charAt(1) + hex.charAt(1);
        rgb[2] = hex.charAt(2) + hex.charAt(2);
    } else {
        rgb[0] = hex.substring(0, 2);
        rgb[1] = hex.substring(2, 4);
        rgb[2] = hex.substring(4);
    }
    for (var i = 0; i < rgb.length; i++) {
        rgb[i] = _3bd.indexOf(rgb[i].charAt(0)) * 16 + _3bd.indexOf(rgb[i].charAt(1));
    }
    return rgb;
};
dojo.gfx.color.rgb2hex = function(r, g, b) {
    if (dojo.lang.isArray(r)) {
        g = r[1] || 0;
        b = r[2] || 0;
        r = r[0] || 0;
    }
    var ret = dojo.lang.map([r,g,b], function(x) {
        x = new Number(x);
        var s = x.toString(16);
        while (s.length < 2) {
            s = "0" + s;
        }
        return s;
    });
    ret.unshift("#");
    return ret.join("");
};
dojo.provide("dojo.lfx.Animation");
dojo.lfx.Line = function(_3c6, end) {
    this.start = _3c6;
    this.end = end;
    if (dojo.lang.isArray(_3c6)) {
        var diff = [];
        dojo.lang.forEach(this.start, function(s, i) {
            diff[i] = this.end[i] - s;
        }, this);
        this.getValue = function(n) {
            var res = [];
            dojo.lang.forEach(this.start, function(s, i) {
                res[i] = (diff[i] * n) + s;
            }, this);
            return res;
        };
    } else {
        var diff = end - _3c6;
        this.getValue = function(n) {
            return (diff * n) + this.start;
        };
    }
};
if ((dojo.render.html.khtml) && (!dojo.render.html.safari)) {
    dojo.lfx.easeDefault = function(n) {
        return (parseFloat("0.5") + ((Math.sin((n + parseFloat("1.5")) * Math.PI)) / 2));
    };
} else {
    dojo.lfx.easeDefault = function(n) {
        return (0.5 + ((Math.sin((n + 1.5) * Math.PI)) / 2));
    };
}
dojo.lfx.easeIn = function(n) {
    return Math.pow(n, 3);
};
dojo.lfx.easeOut = function(n) {
    return (1 - Math.pow(1 - n, 3));
};
dojo.lfx.easeInOut = function(n) {
    return ((3 * Math.pow(n, 2)) - (2 * Math.pow(n, 3)));
};
dojo.lfx.IAnimation = function() {
};
dojo.lang.extend(dojo.lfx.IAnimation, {curve:null,duration:1000,easing:null,repeatCount:0,rate:10,handler:null,beforeBegin:null,onBegin:null,onAnimate:null,onEnd:null,onPlay:null,onPause:null,onStop:null,play:null,pause:null,stop:null,connect:function(evt, _3d6, _3d7) {
    if (!_3d7) {
        _3d7 = _3d6;
        _3d6 = this;
    }
    _3d7 = dojo.lang.hitch(_3d6, _3d7);
    var _3d8 = this[evt] || function() {
    };
    this[evt] = function() {
        var ret = _3d8.apply(this, arguments);
        _3d7.apply(this, arguments);
        return ret;
    };
    return this;
},fire:function(evt, args) {
    if (this[evt]) {
        this[evt].apply(this, (args || []));
    }
    return this;
},repeat:function(_3dc) {
    this.repeatCount = _3dc;
    return this;
},_active:false,_paused:false});
dojo.lfx.Animation = function(_3dd, _3de, _3df, _3e0, _3e1, rate) {
    dojo.lfx.IAnimation.call(this);
    if (dojo.lang.isNumber(_3dd) || (!_3dd && _3de.getValue)) {
        rate = _3e1;
        _3e1 = _3e0;
        _3e0 = _3df;
        _3df = _3de;
        _3de = _3dd;
        _3dd = null;
    } else {
        if (_3dd.getValue || dojo.lang.isArray(_3dd)) {
            rate = _3e0;
            _3e1 = _3df;
            _3e0 = _3de;
            _3df = _3dd;
            _3de = null;
            _3dd = null;
        }
    }
    if (dojo.lang.isArray(_3df)) {
        this.curve = new dojo.lfx.Line(_3df[0], _3df[1]);
    } else {
        this.curve = _3df;
    }
    if (_3de != null && _3de > 0) {
        this.duration = _3de;
    }
    if (_3e1) {
        this.repeatCount = _3e1;
    }
    if (rate) {
        this.rate = rate;
    }
    if (_3dd) {
        dojo.lang.forEach(["handler","beforeBegin","onBegin","onEnd","onPlay","onStop","onAnimate"], function(item) {
            if (_3dd[item]) {
                this.connect(item, _3dd[item]);
            }
        }, this);
    }
    if (_3e0 && dojo.lang.isFunction(_3e0)) {
        this.easing = _3e0;
    }
};
dojo.inherits(dojo.lfx.Animation, dojo.lfx.IAnimation);
dojo.lang.extend(dojo.lfx.Animation, {_startTime:null,_endTime:null,_timer:null,_percent:0,_startRepeatCount:0,play:function(_3e4, _3e5) {
    if (_3e5) {
        clearTimeout(this._timer);
        this._active = false;
        this._paused = false;
        this._percent = 0;
    } else {
        if (this._active && !this._paused) {
            return this;
        }
    }
    this.fire("handler", ["beforeBegin"]);
    this.fire("beforeBegin");
    if (_3e4 > 0) {
        setTimeout(dojo.lang.hitch(this, function() {
            this.play(null, _3e5);
        }), _3e4);
        return this;
    }
    this._startTime = new Date().valueOf();
    if (this._paused) {
        this._startTime -= (this.duration * this._percent / 100);
    }
    this._endTime = this._startTime + this.duration;
    this._active = true;
    this._paused = false;
    var step = this._percent / 100;
    var _3e7 = this.curve.getValue(step);
    if (this._percent == 0) {
        if (!this._startRepeatCount) {
            this._startRepeatCount = this.repeatCount;
        }
        this.fire("handler", ["begin",_3e7]);
        this.fire("onBegin", [_3e7]);
    }
    this.fire("handler", ["play",_3e7]);
    this.fire("onPlay", [_3e7]);
    this._cycle();
    return this;
},pause:function() {
    clearTimeout(this._timer);
    if (!this._active) {
        return this;
    }
    this._paused = true;
    var _3e8 = this.curve.getValue(this._percent / 100);
    this.fire("handler", ["pause",_3e8]);
    this.fire("onPause", [_3e8]);
    return this;
},gotoPercent:function(pct, _3ea) {
    clearTimeout(this._timer);
    this._active = true;
    this._paused = true;
    this._percent = pct;
    if (_3ea) {
        this.play();
    }
    return this;
},stop:function(_3eb) {
    clearTimeout(this._timer);
    var step = this._percent / 100;
    if (_3eb) {
        step = 1;
    }
    var _3ed = this.curve.getValue(step);
    this.fire("handler", ["stop",_3ed]);
    this.fire("onStop", [_3ed]);
    this._active = false;
    this._paused = false;
    return this;
},status:function() {
    if (this._active) {
        return this._paused ? "paused" : "playing";
    } else {
        return "stopped";
    }
    return this;
},_cycle:function() {
    clearTimeout(this._timer);
    if (this._active) {
        var curr = new Date().valueOf();
        var step = (curr - this._startTime) / (this._endTime - this._startTime);
        if (step >= 1) {
            step = 1;
            this._percent = 100;
        } else {
            this._percent = step * 100;
        }
        if ((this.easing) && (dojo.lang.isFunction(this.easing))) {
            step = this.easing(step);
        }
        var _3f0 = this.curve.getValue(step);
        this.fire("handler", ["animate",_3f0]);
        this.fire("onAnimate", [_3f0]);
        if (step < 1) {
            this._timer = setTimeout(dojo.lang.hitch(this, "_cycle"), this.rate);
        } else {
            this._active = false;
            this.fire("handler", ["end"]);
            this.fire("onEnd");
            if (this.repeatCount > 0) {
                this.repeatCount--;
                this.play(null, true);
            } else {
                if (this.repeatCount == -1) {
                    this.play(null, true);
                } else {
                    if (this._startRepeatCount) {
                        this.repeatCount = this._startRepeatCount;
                        this._startRepeatCount = 0;
                    }
                }
            }
        }
    }
    return this;
}});
dojo.lfx.Combine = function(_3f1) {
    dojo.lfx.IAnimation.call(this);
    this._anims = [];
    this._animsEnded = 0;
    var _3f2 = arguments;
    if (_3f2.length == 1 && (dojo.lang.isArray(_3f2[0]) || dojo.lang.isArrayLike(_3f2[0]))) {
        _3f2 = _3f2[0];
    }
    dojo.lang.forEach(_3f2, function(anim) {
        this._anims.push(anim);
        anim.connect("onEnd", dojo.lang.hitch(this, "_onAnimsEnded"));
    }, this);
};
dojo.inherits(dojo.lfx.Combine, dojo.lfx.IAnimation);
dojo.lang.extend(dojo.lfx.Combine, {_animsEnded:0,play:function(_3f4, _3f5) {
    if (!this._anims.length) {
        return this;
    }
    this.fire("beforeBegin");
    if (_3f4 > 0) {
        setTimeout(dojo.lang.hitch(this, function() {
            this.play(null, _3f5);
        }), _3f4);
        return this;
    }
    if (_3f5 || this._anims[0].percent == 0) {
        this.fire("onBegin");
    }
    this.fire("onPlay");
    this._animsCall("play", null, _3f5);
    return this;
},pause:function() {
    this.fire("onPause");
    this._animsCall("pause");
    return this;
},stop:function(_3f6) {
    this.fire("onStop");
    this._animsCall("stop", _3f6);
    return this;
},_onAnimsEnded:function() {
    this._animsEnded++;
    if (this._animsEnded >= this._anims.length) {
        this.fire("onEnd");
    }
    return this;
},_animsCall:function(_3f7) {
    var args = [];
    if (arguments.length > 1) {
        for (var i = 1; i < arguments.length; i++) {
            args.push(arguments[i]);
        }
    }
    var _3fa = this;
    dojo.lang.forEach(this._anims, function(anim) {
        anim[_3f7](args);
    }, _3fa);
    return this;
}});
dojo.lfx.Chain = function(_3fc) {
    dojo.lfx.IAnimation.call(this);
    this._anims = [];
    this._currAnim = -1;
    var _3fd = arguments;
    if (_3fd.length == 1 && (dojo.lang.isArray(_3fd[0]) || dojo.lang.isArrayLike(_3fd[0]))) {
        _3fd = _3fd[0];
    }
    var _3fe = this;
    dojo.lang.forEach(_3fd, function(anim, i, _401) {
        this._anims.push(anim);
        if (i < _401.length - 1) {
            anim.connect("onEnd", dojo.lang.hitch(this, "_playNext"));
        } else {
            anim.connect("onEnd", dojo.lang.hitch(this, function() {
                this.fire("onEnd");
            }));
        }
    }, this);
};
dojo.inherits(dojo.lfx.Chain, dojo.lfx.IAnimation);
dojo.lang.extend(dojo.lfx.Chain, {_currAnim:-1,play:function(_402, _403) {
    if (!this._anims.length) {
        return this;
    }
    if (_403 || !this._anims[this._currAnim]) {
        this._currAnim = 0;
    }
    var _404 = this._anims[this._currAnim];
    this.fire("beforeBegin");
    if (_402 > 0) {
        setTimeout(dojo.lang.hitch(this, function() {
            this.play(null, _403);
        }), _402);
        return this;
    }
    if (_404) {
        if (this._currAnim == 0) {
            this.fire("handler", ["begin",this._currAnim]);
            this.fire("onBegin", [this._currAnim]);
        }
        this.fire("onPlay", [this._currAnim]);
        _404.play(null, _403);
    }
    return this;
},pause:function() {
    if (this._anims[this._currAnim]) {
        this._anims[this._currAnim].pause();
        this.fire("onPause", [this._currAnim]);
    }
    return this;
},playPause:function() {
    if (this._anims.length == 0) {
        return this;
    }
    if (this._currAnim == -1) {
        this._currAnim = 0;
    }
    var _405 = this._anims[this._currAnim];
    if (_405) {
        if (!_405._active || _405._paused) {
            this.play();
        } else {
            this.pause();
        }
    }
    return this;
},stop:function() {
    var _406 = this._anims[this._currAnim];
    if (_406) {
        _406.stop();
        this.fire("onStop", [this._currAnim]);
    }
    return _406;
},_playNext:function() {
    if (this._currAnim == -1 || this._anims.length == 0) {
        return this;
    }
    this._currAnim++;
    if (this._anims[this._currAnim]) {
        this._anims[this._currAnim].play(null, true);
    }
    return this;
}});
dojo.lfx.combine = function(_407) {
    var _408 = arguments;
    if (dojo.lang.isArray(arguments[0])) {
        _408 = arguments[0];
    }
    if (_408.length == 1) {
        return _408[0];
    }
    return new dojo.lfx.Combine(_408);
};
dojo.lfx.chain = function(_409) {
    var _40a = arguments;
    if (dojo.lang.isArray(arguments[0])) {
        _40a = arguments[0];
    }
    if (_40a.length == 1) {
        return _40a[0];
    }
    return new dojo.lfx.Chain(_40a);
};
dojo.provide("dojo.html.common");
dojo.lang.mixin(dojo.html, dojo.dom);
dojo.html.body = function() {
    dojo.deprecated("dojo.html.body() moved to dojo.body()", "0.5");
    return dojo.body();
};
dojo.html.getEventTarget = function(evt) {
    if (!evt) {
        evt = dojo.global().event || {};
    }
    var t = (evt.srcElement ? evt.srcElement : (evt.target ? evt.target : null));
    while ((t) && (t.nodeType != 1)) {
        t = t.parentNode;
    }
    return t;
};
dojo.html.getViewport = function() {
    var _40d = dojo.global();
    var _40e = dojo.doc();
    var w = 0;
    var h = 0;
    if (dojo.render.html.mozilla) {
        w = _40e.documentElement.clientWidth;
        h = _40d.innerHeight;
    } else {
        if (!dojo.render.html.opera && _40d.innerWidth) {
            w = _40d.innerWidth;
            h = _40d.innerHeight;
        } else {
            if (!dojo.render.html.opera && dojo.exists(_40e, "documentElement.clientWidth")) {
                var w2 = _40e.documentElement.clientWidth;
                if (!w || w2 && w2 < w) {
                    w = w2;
                }
                h = _40e.documentElement.clientHeight;
            } else {
                if (dojo.body().clientWidth) {
                    w = dojo.body().clientWidth;
                    h = dojo.body().clientHeight;
                }
            }
        }
    }
    return {width:w,height:h};
};
dojo.html.getScroll = function() {
    var _412 = dojo.global();
    var _413 = dojo.doc();
    var top = _412.pageYOffset || _413.documentElement.scrollTop || dojo.body().scrollTop || 0;
    var left = _412.pageXOffset || _413.documentElement.scrollLeft || dojo.body().scrollLeft || 0;
    return {top:top,left:left,offset:{x:left,y:top}};
};
dojo.html.getParentByType = function(node, type) {
    var _418 = dojo.doc();
    var _419 = dojo.byId(node);
    type = type.toLowerCase();
    while ((_419) && (_419.nodeName.toLowerCase() != type)) {
        if (_419 == (_418["body"] || _418["documentElement"])) {
            return null;
        }
        _419 = _419.parentNode;
    }
    return _419;
};
dojo.html.getAttribute = function(node, attr) {
    node = dojo.byId(node);
    if ((!node) || (!node.getAttribute)) {
        return null;
    }
    var ta = typeof attr == "string" ? attr : new String(attr);
    var v = node.getAttribute(ta.toUpperCase());
    if ((v) && (typeof v == "string") && (v != "")) {
        return v;
    }
    if (v && v.value) {
        return v.value;
    }
    if ((node.getAttributeNode) && (node.getAttributeNode(ta))) {
        return (node.getAttributeNode(ta)).value;
    } else {
        if (node.getAttribute(ta)) {
            return node.getAttribute(ta);
        } else {
            if (node.getAttribute(ta.toLowerCase())) {
                return node.getAttribute(ta.toLowerCase());
            }
        }
    }
    return null;
};
dojo.html.hasAttribute = function(node, attr) {
    return dojo.html.getAttribute(dojo.byId(node), attr) ? true : false;
};
dojo.html.getCursorPosition = function(e) {
    e = e || dojo.global().event;
    var _421 = {x:0,y:0};
    if (e.pageX || e.pageY) {
        _421.x = e.pageX;
        _421.y = e.pageY;
    } else {
        var de = dojo.doc().documentElement;
        var db = dojo.body();
        _421.x = e.clientX + ((de || db)["scrollLeft"]) - ((de || db)["clientLeft"]);
        _421.y = e.clientY + ((de || db)["scrollTop"]) - ((de || db)["clientTop"]);
    }
    return _421;
};
dojo.html.isTag = function(node) {
    node = dojo.byId(node);
    if (node && node.tagName) {
        for (var i = 1; i < arguments.length; i++) {
            if (node.tagName.toLowerCase() == String(arguments[i]).toLowerCase()) {
                return String(arguments[i]).toLowerCase();
            }
        }
    }
    return "";
};
if (dojo.render.html.ie && !dojo.render.html.ie70) {
    if (window.location.href.substr(0, 6).toLowerCase() != "https:") {
        (function() {
            var _426 = dojo.doc().createElement("script");
            _426.src = "javascript:'dojo.html.createExternalElement=function(doc, tag){ return doc.createElement(tag); }'";
            dojo.doc().getElementsByTagName("head")[0].appendChild(_426);
        })();
    }
} else {
    dojo.html.createExternalElement = function(doc, tag) {
        return doc.createElement(tag);
    };
}
dojo.html._callDeprecated = function(_429, _42a, args, _42c, _42d) {
    dojo.deprecated("dojo.html." + _429, "replaced by dojo.html." + _42a + "(" + (_42c ? "node, {" + _42c + ": " + _42c + "}" : "") + ")" + (_42d ? "." + _42d : ""), "0.5");
    var _42e = [];
    if (_42c) {
        var _42f = {};
        _42f[_42c] = args[1];
        _42e.push(args[0]);
        _42e.push(_42f);
    } else {
        _42e = args;
    }
    var ret = dojo.html[_42a].apply(dojo.html, args);
    if (_42d) {
        return ret[_42d];
    } else {
        return ret;
    }
};
dojo.html.getViewportWidth = function() {
    return dojo.html._callDeprecated("getViewportWidth", "getViewport", arguments, null, "width");
};
dojo.html.getViewportHeight = function() {
    return dojo.html._callDeprecated("getViewportHeight", "getViewport", arguments, null, "height");
};
dojo.html.getViewportSize = function() {
    return dojo.html._callDeprecated("getViewportSize", "getViewport", arguments);
};
dojo.html.getScrollTop = function() {
    return dojo.html._callDeprecated("getScrollTop", "getScroll", arguments, null, "top");
};
dojo.html.getScrollLeft = function() {
    return dojo.html._callDeprecated("getScrollLeft", "getScroll", arguments, null, "left");
};
dojo.html.getScrollOffset = function() {
    return dojo.html._callDeprecated("getScrollOffset", "getScroll", arguments, null, "offset");
};
dojo.provide("dojo.uri.Uri");
dojo.uri = new function() {
    this.dojoUri = function(uri) {
        return new dojo.uri.Uri(dojo.hostenv.getBaseScriptUri(), uri);
    };
    this.moduleUri = function(_432, uri) {
        var loc = dojo.hostenv.getModuleSymbols(_432).join("/");
        if (!loc) {
            return null;
        }
        if (loc.lastIndexOf("/") != loc.length - 1) {
            loc += "/";
        }
        var _435 = loc.indexOf(":");
        var _436 = loc.indexOf("/");
        if (loc.charAt(0) != "/" && (_435 == -1 || _435 > _436)) {
            loc = dojo.hostenv.getBaseScriptUri() + loc;
        }
        return new dojo.uri.Uri(loc, uri);
    };
    this.Uri = function() {
        var uri = arguments[0];
        for (var i = 1; i < arguments.length; i++) {
            if (!arguments[i]) {
                continue;
            }
            var _439 = new dojo.uri.Uri(arguments[i].toString());
            var _43a = new dojo.uri.Uri(uri.toString());
            if ((_439.path == "") && (_439.scheme == null) && (_439.authority == null) && (_439.query == null)) {
                if (_439.fragment != null) {
                    _43a.fragment = _439.fragment;
                }
                _439 = _43a;
            } else {
                if (_439.scheme == null) {
                    _439.scheme = _43a.scheme;
                    if (_439.authority == null) {
                        _439.authority = _43a.authority;
                        if (_439.path.charAt(0) != "/") {
                            var path = _43a.path.substring(0, _43a.path.lastIndexOf("/") + 1) + _439.path;
                            var segs = path.split("/");
                            for (var j = 0; j < segs.length; j++) {
                                if (segs[j] == ".") {
                                    if (j == segs.length - 1) {
                                        segs[j] = "";
                                    } else {
                                        segs.splice(j, 1);
                                        j--;
                                    }
                                } else {
                                    if (j > 0 && !(j == 1 && segs[0] == "") && segs[j] == ".." && segs[j - 1] != "..") {
                                        if (j == segs.length - 1) {
                                            segs.splice(j, 1);
                                            segs[j - 1] = "";
                                        } else {
                                            segs.splice(j - 1, 2);
                                            j -= 2;
                                        }
                                    }
                                }
                            }
                            _439.path = segs.join("/");
                        }
                    }
                }
            }
            uri = "";
            if (_439.scheme != null) {
                uri += _439.scheme + ":";
            }
            if (_439.authority != null) {
                uri += "//" + _439.authority;
            }
            uri += _439.path;
            if (_439.query != null) {
                uri += "?" + _439.query;
            }
            if (_439.fragment != null) {
                uri += "#" + _439.fragment;
            }
        }
        this.uri = uri.toString();
        var _43e = "^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$";
        var r = this.uri.match(new RegExp(_43e));
        this.scheme = r[2] || (r[1] ? "" : null);
        this.authority = r[4] || (r[3] ? "" : null);
        this.path = r[5];
        this.query = r[7] || (r[6] ? "" : null);
        this.fragment = r[9] || (r[8] ? "" : null);
        if (this.authority != null) {
            _43e = "^((([^:]+:)?([^@]+))@)?([^:]*)(:([0-9]+))?$";
            r = this.authority.match(new RegExp(_43e));
            this.user = r[3] || null;
            this.password = r[4] || null;
            this.host = r[5];
            this.port = r[7] || null;
        }
        this.toString = function() {
            return this.uri;
        };
    };
};
dojo.provide("dojo.html.style");
dojo.html.getClass = function(node) {
    node = dojo.byId(node);
    if (!node) {
        return "";
    }
    var cs = "";
    if (node.className) {
        cs = node.className;
    } else {
        if (dojo.html.hasAttribute(node, "class")) {
            cs = dojo.html.getAttribute(node, "class");
        }
    }
    return cs.replace(/^\s+|\s+$/g, "");
};
dojo.html.getClasses = function(node) {
    var c = dojo.html.getClass(node);
    return (c == "") ? [] : c.split(/\s+/g);
};
dojo.html.hasClass = function(node, _445) {
    return (new RegExp("(^|\\s+)" + _445 + "(\\s+|$)")).test(dojo.html.getClass(node));
};
dojo.html.prependClass = function(node, _447) {
    _447 += " " + dojo.html.getClass(node);
    return dojo.html.setClass(node, _447);
};
dojo.html.addClass = function(node, _449) {
    if (dojo.html.hasClass(node, _449)) {
        return false;
    }
    _449 = (dojo.html.getClass(node) + " " + _449).replace(/^\s+|\s+$/g, "");
    return dojo.html.setClass(node, _449);
};
dojo.html.setClass = function(node, _44b) {
    node = dojo.byId(node);
    var cs = new String(_44b);
    try {
        if (typeof node.className == "string") {
            node.className = cs;
        } else {
            if (node.setAttribute) {
                node.setAttribute("class", _44b);
                node.className = cs;
            } else {
                return false;
            }
        }
    }
    catch(e) {
        dojo.debug("dojo.html.setClass() failed", e);
    }
    return true;
};
dojo.html.removeClass = function(node, _44e, _44f) {
    try {
        if (!_44f) {
            var _450 = dojo.html.getClass(node).replace(new RegExp("(^|\\s+)" + _44e + "(\\s+|$)"), "$1$2");
        } else {
            var _450 = dojo.html.getClass(node).replace(_44e, "");
        }
        dojo.html.setClass(node, _450);
    }
    catch(e) {
        dojo.debug("dojo.html.removeClass() failed", e);
    }
    return true;
};
dojo.html.replaceClass = function(node, _452, _453) {
    dojo.html.removeClass(node, _453);
    dojo.html.addClass(node, _452);
};
dojo.html.classMatchType = {ContainsAll:0,ContainsAny:1,IsOnly:2};
dojo.html.getElementsByClass = function(_454, _455, _456, _457, _458) {
    _458 = false;
    var _459 = dojo.doc();
    _455 = dojo.byId(_455) || _459;
    var _45a = _454.split(/\s+/g);
    var _45b = [];
    if (_457 != 1 && _457 != 2) {
        _457 = 0;
    }
    var _45c = new RegExp("(\\s|^)((" + _45a.join(")|(") + "))(\\s|$)");
    var _45d = _45a.join(" ").length;
    var _45e = [];
    if (!_458 && _459.evaluate) {
        var _45f = ".//" + (_456 || "*") + "[contains(";
        if (_457 != dojo.html.classMatchType.ContainsAny) {
            _45f += "concat(' ',@class,' '), ' " + _45a.join(" ') and contains(concat(' ',@class,' '), ' ") + " ')";
            if (_457 == 2) {
                _45f += " and string-length(@class)=" + _45d + "]";
            } else {
                _45f += "]";
            }
        } else {
            _45f += "concat(' ',@class,' '), ' " + _45a.join(" ') or contains(concat(' ',@class,' '), ' ") + " ')]";
        }
        var _460 = _459.evaluate(_45f, _455, null, XPathResult.ANY_TYPE, null);
        var _461 = _460.iterateNext();
        while (_461) {
            try {
                _45e.push(_461);
                _461 = _460.iterateNext();
            }
            catch(e) {
                break;
            }
        }
        return _45e;
    } else {
        if (!_456) {
            _456 = "*";
        }
        _45e = _455.getElementsByTagName(_456);
        var node,i = 0;
        outer:
                while (node = _45e[i++]) {
                    var _464 = dojo.html.getClasses(node);
                    if (_464.length == 0) {
                        continue outer;
                    }
                    var _465 = 0;
                    for (var j = 0; j < _464.length; j++) {
                        if (_45c.test(_464[j])) {
                            if (_457 == dojo.html.classMatchType.ContainsAny) {
                                _45b.push(node);
                                continue outer;
                            } else {
                                _465++;
                            }
                        } else {
                            if (_457 == dojo.html.classMatchType.IsOnly) {
                                continue outer;
                            }
                        }
                    }
                    if (_465 == _45a.length) {
                        if ((_457 == dojo.html.classMatchType.IsOnly) && (_465 == _464.length)) {
                            _45b.push(node);
                        } else {
                            if (_457 == dojo.html.classMatchType.ContainsAll) {
                                _45b.push(node);
                            }
                        }
                    }
                }
        return _45b;
    }
};
dojo.html.getElementsByClassName = dojo.html.getElementsByClass;
dojo.html.toCamelCase = function(_467) {
    var arr = _467.split("-"),cc = arr[0];
    for (var i = 1; i < arr.length; i++) {
        cc += arr[i].charAt(0).toUpperCase() + arr[i].substring(1);
    }
    return cc;
};
dojo.html.toSelectorCase = function(_46b) {
    return _46b.replace(/([A-Z])/g, "-$1").toLowerCase();
};
if (dojo.render.html.ie) {
    dojo.html.getComputedStyle = function(node, _46d, _46e) {
        node = dojo.byId(node);
        if (!node || !node.currentStyle) {
            return _46e;
        }
        return node.currentStyle[dojo.html.toCamelCase(_46d)];
    };
    dojo.html.getComputedStyles = function(node) {
        return node.currentStyle;
    };
} else {
    dojo.html.getComputedStyle = function(node, _471, _472) {
        node = dojo.byId(node);
        if (!node || !node.style) {
            return _472;
        }
        var s = document.defaultView.getComputedStyle(node, null);
        return (s && s[dojo.html.toCamelCase(_471)]) || "";
    };
    dojo.html.getComputedStyles = function(node) {
        return document.defaultView.getComputedStyle(node, null);
    };
}
dojo.html.getStyleProperty = function(node, _476) {
    node = dojo.byId(node);
    return (node && node.style ? node.style[dojo.html.toCamelCase(_476)] : undefined);
};
dojo.html.getStyle = function(node, _478) {
    var _479 = dojo.html.getStyleProperty(node, _478);
    return (_479 ? _479 : dojo.html.getComputedStyle(node, _478));
};
dojo.html.setStyle = function(node, _47b, _47c) {
    node = dojo.byId(node);
    if (node && node.style) {
        var _47d = dojo.html.toCamelCase(_47b);
        node.style[_47d] = _47c;
    }
};
dojo.html.setStyleText = function(_47e, text) {
    try {
        _47e.style.cssText = text;
    }
    catch(e) {
        _47e.setAttribute("style", text);
    }
};
dojo.html.copyStyle = function(_480, _481) {
    if (!_481.style.cssText) {
        _480.setAttribute("style", _481.getAttribute("style"));
    } else {
        _480.style.cssText = _481.style.cssText;
    }
    dojo.html.addClass(_480, dojo.html.getClass(_481));
};
dojo.html.getUnitValue = function(node, _483, _484) {
    var s = dojo.html.getComputedStyle(node, _483);
    if ((!s) || ((s == "auto") && (_484))) {
        return {value:0,units:"px"};
    }
    var _486 = s.match(/(\-?[\d.]+)([a-z%]*)/i);
    if (!_486) {
        return dojo.html.getUnitValue.bad;
    }
    return {value:Number(_486[1]),units:_486[2].toLowerCase()};
};
dojo.html.getUnitValue.bad = {value:NaN,units:""};
if (dojo.render.html.ie) {
    dojo.html.toPixelValue = function(_487, _488) {
        if (!_488) {
            return 0;
        }
        if (_488.slice(-2) == "px") {
            return parseFloat(_488);
        }
        var _489 = 0;
        with (_487) {
            var _48a = style.left;
            var _48b = runtimeStyle.left;
            runtimeStyle.left = currentStyle.left;
            try {
                style.left = _488 || 0;
                _489 = style.pixelLeft;
                style.left = _48a;
                runtimeStyle.left = _48b;
            }
            catch(e) {
            }
        }
        return _489;
    };
} else {
    dojo.html.toPixelValue = function(_48c, _48d) {
        return (_48d && (_48d.slice(-2) == "px") ? parseFloat(_48d) : 0);
    };
}
dojo.html.getPixelValue = function(node, _48f, _490) {
    return dojo.html.toPixelValue(node, dojo.html.getComputedStyle(node, _48f));
};
dojo.html.setPositivePixelValue = function(node, _492, _493) {
    if (isNaN(_493)) {
        return false;
    }
    node.style[_492] = Math.max(0, _493) + "px";
    return true;
};
dojo.html.styleSheet = null;
dojo.html.insertCssRule = function(_494, _495, _496) {
    if (!dojo.html.styleSheet) {
        if (document.createStyleSheet) {
            dojo.html.styleSheet = document.createStyleSheet();
        } else {
            if (document.styleSheets[0]) {
                dojo.html.styleSheet = document.styleSheets[0];
            } else {
                return null;
            }
        }
    }
    if (arguments.length < 3) {
        if (dojo.html.styleSheet.cssRules) {
            _496 = dojo.html.styleSheet.cssRules.length;
        } else {
            if (dojo.html.styleSheet.rules) {
                _496 = dojo.html.styleSheet.rules.length;
            } else {
                return null;
            }
        }
    }
    if (dojo.html.styleSheet.insertRule) {
        var rule = _494 + " { " + _495 + " }";
        return dojo.html.styleSheet.insertRule(rule, _496);
    } else {
        if (dojo.html.styleSheet.addRule) {
            return dojo.html.styleSheet.addRule(_494, _495, _496);
        } else {
            return null;
        }
    }
};
dojo.html.removeCssRule = function(_498) {
    if (!dojo.html.styleSheet) {
        dojo.debug("no stylesheet defined for removing rules");
        return false;
    }
    if (dojo.render.html.ie) {
        if (!_498) {
            _498 = dojo.html.styleSheet.rules.length;
            dojo.html.styleSheet.removeRule(_498);
        }
    } else {
        if (document.styleSheets[0]) {
            if (!_498) {
                _498 = dojo.html.styleSheet.cssRules.length;
            }
            dojo.html.styleSheet.deleteRule(_498);
        }
    }
    return true;
};
dojo.html._insertedCssFiles = [];
dojo.html.insertCssFile = function(URI, doc, _49b, _49c) {
    if (!URI) {
        return;
    }
    if (!doc) {
        doc = document;
    }
    var _49d = dojo.hostenv.getText(URI, false, _49c);
    if (_49d === null) {
        return;
    }
    _49d = dojo.html.fixPathsInCssText(_49d, URI);
    if (_49b) {
        var idx = -1,node,ent = dojo.html._insertedCssFiles;
        for (var i = 0; i < ent.length; i++) {
            if ((ent[i].doc == doc) && (ent[i].cssText == _49d)) {
                idx = i;
                node = ent[i].nodeRef;
                break;
            }
        }
        if (node) {
            var _4a2 = doc.getElementsByTagName("style");
            for (var i = 0; i < _4a2.length; i++) {
                if (_4a2[i] == node) {
                    return;
                }
            }
            dojo.html._insertedCssFiles.shift(idx, 1);
        }
    }
    var _4a3 = dojo.html.insertCssText(_49d, doc);
    dojo.html._insertedCssFiles.push({"doc":doc,"cssText":_49d,"nodeRef":_4a3});
    if (_4a3 && djConfig.isDebug) {
        _4a3.setAttribute("dbgHref", URI);
    }
    return _4a3;
};
dojo.html.insertCssText = function(_4a4, doc, URI) {
    if (!_4a4) {
        return;
    }
    if (!doc) {
        doc = document;
    }
    if (URI) {
        _4a4 = dojo.html.fixPathsInCssText(_4a4, URI);
    }
    var _4a7 = doc.createElement("style");
    _4a7.setAttribute("type", "text/css");
    var head = doc.getElementsByTagName("head")[0];
    if (!head) {
        dojo.debug("No head tag in document, aborting styles");
        return;
    } else {
        head.appendChild(_4a7);
    }
    if (_4a7.styleSheet) {
        var _4a9 = function() {
            try {
                _4a7.styleSheet.cssText = _4a4;
            }
            catch(e) {
                dojo.debug(e);
            }
        };
        if (_4a7.styleSheet.disabled) {
            setTimeout(_4a9, 10);
        } else {
            _4a9();
        }
    } else {
        var _4aa = doc.createTextNode(_4a4);
        _4a7.appendChild(_4aa);
    }
    return _4a7;
};
dojo.html.fixPathsInCssText = function(_4ab, URI) {
    if (!_4ab || !URI) {
        return;
    }
    var _4ad,str = "",url = "",_4b0 = "[\\t\\s\\w\\(\\)\\/\\.\\\\'\"-:#=&?~]+";
    var _4b1 = new RegExp("url\\(\\s*(" + _4b0 + ")\\s*\\)");
    var _4b2 = /(file|https?|ftps?):\/\//;
    regexTrim = new RegExp("^[\\s]*(['\"]?)(" + _4b0 + ")\\1[\\s]*?$");
    if (dojo.render.html.ie55 || dojo.render.html.ie60) {
        var _4b3 = new RegExp("AlphaImageLoader\\((.*)src=['\"](" + _4b0 + ")['\"]");
        while (_4ad = _4b3.exec(_4ab)) {
            url = _4ad[2].replace(regexTrim, "$2");
            if (!_4b2.exec(url)) {
                url = (new dojo.uri.Uri(URI, url).toString());
            }
            str += _4ab.substring(0, _4ad.index) + "AlphaImageLoader(" + _4ad[1] + "src='" + url + "'";
            _4ab = _4ab.substr(_4ad.index + _4ad[0].length);
        }
        _4ab = str + _4ab;
        str = "";
    }
    while (_4ad = _4b1.exec(_4ab)) {
        url = _4ad[1].replace(regexTrim, "$2");
        if (!_4b2.exec(url)) {
            url = (new dojo.uri.Uri(URI, url).toString());
        }
        str += _4ab.substring(0, _4ad.index) + "url(" + url + ")";
        _4ab = _4ab.substr(_4ad.index + _4ad[0].length);
    }
    return str + _4ab;
};
dojo.html.setActiveStyleSheet = function(_4b4) {
    var i = 0,a,els = dojo.doc().getElementsByTagName("link");
    while (a = els[i++]) {
        if (a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
            a.disabled = true;
            if (a.getAttribute("title") == _4b4) {
                a.disabled = false;
            }
        }
    }
};
dojo.html.getActiveStyleSheet = function() {
    var i = 0,a,els = dojo.doc().getElementsByTagName("link");
    while (a = els[i++]) {
        if (a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) {
            return a.getAttribute("title");
        }
    }
    return null;
};
dojo.html.getPreferredStyleSheet = function() {
    var i = 0,a,els = dojo.doc().getElementsByTagName("link");
    while (a = els[i++]) {
        if (a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("rel").indexOf("alt") == -1 && a.getAttribute("title")) {
            return a.getAttribute("title");
        }
    }
    return null;
};
dojo.html.applyBrowserClass = function(node) {
    var drh = dojo.render.html;
    var _4c0 = {dj_ie:drh.ie,dj_ie55:drh.ie55,dj_ie6:drh.ie60,dj_ie7:drh.ie70,dj_iequirks:drh.ie && drh.quirks,dj_opera:drh.opera,dj_opera8:drh.opera && (Math.floor(dojo.render.version) == 8),dj_opera9:drh.opera && (Math.floor(dojo.render.version) == 9),dj_khtml:drh.khtml,dj_safari:drh.safari,dj_gecko:drh.mozilla};
    for (var p in _4c0) {
        if (_4c0[p]) {
            dojo.html.addClass(node, p);
        }
    }
};
dojo.provide("dojo.html.display");
dojo.html._toggle = function(node, _4c3, _4c4) {
    node = dojo.byId(node);
    _4c4(node, !_4c3(node));
    return _4c3(node);
};
dojo.html.show = function(node) {
    node = dojo.byId(node);
    if (dojo.html.getStyleProperty(node, "display") == "none") {
        dojo.html.setStyle(node, "display", (node.dojoDisplayCache || ""));
        node.dojoDisplayCache = undefined;
    }
};
dojo.html.hide = function(node) {
    node = dojo.byId(node);
    if (typeof node["dojoDisplayCache"] == "undefined") {
        var d = dojo.html.getStyleProperty(node, "display");
        if (d != "none") {
            node.dojoDisplayCache = d;
        }
    }
    dojo.html.setStyle(node, "display", "none");
};
dojo.html.setShowing = function(node, _4c9) {
    dojo.html[(_4c9 ? "show" : "hide")](node);
};
dojo.html.isShowing = function(node) {
    return (dojo.html.getStyleProperty(node, "display") != "none");
};
dojo.html.toggleShowing = function(node) {
    return dojo.html._toggle(node, dojo.html.isShowing, dojo.html.setShowing);
};
dojo.html.displayMap = {tr:"",td:"",th:"",img:"inline",span:"inline",input:"inline",button:"inline"};
dojo.html.suggestDisplayByTagName = function(node) {
    node = dojo.byId(node);
    if (node && node.tagName) {
        var tag = node.tagName.toLowerCase();
        return (tag in dojo.html.displayMap ? dojo.html.displayMap[tag] : "block");
    }
};
dojo.html.setDisplay = function(node, _4cf) {
    dojo.html.setStyle(node, "display", ((_4cf instanceof String || typeof _4cf == "string") ? _4cf : (_4cf ? dojo.html.suggestDisplayByTagName(node) : "none")));
};
dojo.html.isDisplayed = function(node) {
    return (dojo.html.getComputedStyle(node, "display") != "none");
};
dojo.html.toggleDisplay = function(node) {
    return dojo.html._toggle(node, dojo.html.isDisplayed, dojo.html.setDisplay);
};
dojo.html.setVisibility = function(node, _4d3) {
    dojo.html.setStyle(node, "visibility", ((_4d3 instanceof String || typeof _4d3 == "string") ? _4d3 : (_4d3 ? "visible" : "hidden")));
};
dojo.html.isVisible = function(node) {
    return (dojo.html.getComputedStyle(node, "visibility") != "hidden");
};
dojo.html.toggleVisibility = function(node) {
    return dojo.html._toggle(node, dojo.html.isVisible, dojo.html.setVisibility);
};
dojo.html.setOpacity = function(node, _4d7, _4d8) {
    node = dojo.byId(node);
    var h = dojo.render.html;
    if (!_4d8) {
        if (_4d7 >= 1) {
            if (h.ie) {
                dojo.html.clearOpacity(node);
                return;
            } else {
                _4d7 = 0.999999;
            }
        } else {
            if (_4d7 < 0) {
                _4d7 = 0;
            }
        }
    }
    if (h.ie) {
        if (node.nodeName.toLowerCase() == "tr") {
            var tds = node.getElementsByTagName("td");
            for (var x = 0; x < tds.length; x++) {
                tds[x].style.filter = "Alpha(Opacity=" + _4d7 * 100 + ")";
            }
        }
        node.style.filter = "Alpha(Opacity=" + _4d7 * 100 + ")";
    } else {
        if (h.moz) {
            node.style.opacity = _4d7;
            node.style.MozOpacity = _4d7;
        } else {
            if (h.safari) {
                node.style.opacity = _4d7;
                node.style.KhtmlOpacity = _4d7;
            } else {
                node.style.opacity = _4d7;
            }
        }
    }
};
dojo.html.clearOpacity = function(node) {
    node = dojo.byId(node);
    var ns = node.style;
    var h = dojo.render.html;
    if (h.ie) {
        try {
            if (node.filters && node.filters.alpha) {
                ns.filter = "";
            }
        }
        catch(e) {
        }
    } else {
        if (h.moz) {
            ns.opacity = 1;
            ns.MozOpacity = 1;
        } else {
            if (h.safari) {
                ns.opacity = 1;
                ns.KhtmlOpacity = 1;
            } else {
                ns.opacity = 1;
            }
        }
    }
};
dojo.html.getOpacity = function(node) {
    node = dojo.byId(node);
    var h = dojo.render.html;
    if (h.ie) {
        var opac = (node.filters && node.filters.alpha && typeof node.filters.alpha.opacity == "number" ? node.filters.alpha.opacity : 100) / 100;
    } else {
        var opac = node.style.opacity || node.style.MozOpacity || node.style.KhtmlOpacity || 1;
    }
    return opac >= 0.999999 ? 1 : Number(opac);
};
dojo.provide("dojo.html.color");
dojo.html.getBackgroundColor = function(node) {
    node = dojo.byId(node);
    var _4e3;
    do{
        _4e3 = dojo.html.getStyle(node, "background-color");
        if (_4e3.toLowerCase() == "rgba(0, 0, 0, 0)") {
            _4e3 = "transparent";
        }
        if (node == document.getElementsByTagName("body")[0]) {
            node = null;
            break;
        }
        node = node.parentNode;
    } while (node && dojo.lang.inArray(["transparent",""], _4e3));
    if (_4e3 == "transparent") {
        _4e3 = [255,255,255,0];
    } else {
        _4e3 = dojo.gfx.color.extractRGB(_4e3);
    }
    return _4e3;
};
dojo.provide("dojo.html.layout");
dojo.html.sumAncestorProperties = function(node, prop) {
    node = dojo.byId(node);
    if (!node) {
        return 0;
    }
    var _4e6 = 0;
    while (node) {
        if (dojo.html.getComputedStyle(node, "position") == "fixed") {
            return 0;
        }
        var val = node[prop];
        if (val) {
            _4e6 += val - 0;
            if (node == dojo.body()) {
                break;
            }
        }
        node = node.parentNode;
    }
    return _4e6;
};
dojo.html.setStyleAttributes = function(node, _4e9) {
    node = dojo.byId(node);
    var _4ea = _4e9.replace(/(;)?\s*$/, "").split(";");
    for (var i = 0; i < _4ea.length; i++) {
        var _4ec = _4ea[i].split(":");
        var name = _4ec[0].replace(/\s*$/, "").replace(/^\s*/, "").toLowerCase();
        var _4ee = _4ec[1].replace(/\s*$/, "").replace(/^\s*/, "");
        switch (name) {
            case "opacity":
                dojo.html.setOpacity(node, _4ee);
                break;
            case "content-height":
                dojo.html.setContentBox(node, {height:_4ee});
                break;
            case "content-width":
                dojo.html.setContentBox(node, {width:_4ee});
                break;
            case "outer-height":
                dojo.html.setMarginBox(node, {height:_4ee});
                break;
            case "outer-width":
                dojo.html.setMarginBox(node, {width:_4ee});
                break;
            default:
                node.style[dojo.html.toCamelCase(name)] = _4ee;
        }
    }
};
dojo.html.boxSizing = {MARGIN_BOX:"margin-box",BORDER_BOX:"border-box",PADDING_BOX:"padding-box",CONTENT_BOX:"content-box"};
dojo.html.getAbsolutePosition = dojo.html.abs = function(node, _4f0, _4f1) {
    node = dojo.byId(node, node.ownerDocument);
    var ret = {x:0,y:0};
    var bs = dojo.html.boxSizing;
    if (!_4f1) {
        _4f1 = bs.CONTENT_BOX;
    }
    var _4f4 = 2;
    var _4f5;
    switch (_4f1) {
        case bs.MARGIN_BOX:
            _4f5 = 3;
            break;
        case bs.BORDER_BOX:
            _4f5 = 2;
            break;
        case bs.PADDING_BOX:
        default:
            _4f5 = 1;
            break;
        case bs.CONTENT_BOX:
            _4f5 = 0;
            break;
    }
    var h = dojo.render.html;
    var db = document["body"] || document["documentElement"];
    if (h.ie) {
        with (node.getBoundingClientRect()) {
            ret.x = left - 2;
            ret.y = top - 2;
        }
    } else {
        if (document.getBoxObjectFor) {
            _4f4 = 1;
            try {
                var bo = document.getBoxObjectFor(node);
                ret.x = bo.x - dojo.html.sumAncestorProperties(node, "scrollLeft");
                ret.y = bo.y - dojo.html.sumAncestorProperties(node, "scrollTop");
            }
            catch(e) {
            }
        } else {
            if (node["offsetParent"]) {
                var _4f9;
                if ((h.safari) && (node.style.getPropertyValue("position") == "absolute") && (node.parentNode == db)) {
                    _4f9 = db;
                } else {
                    _4f9 = db.parentNode;
                }
                if (node.parentNode != db) {
                    var nd = node;
                    if (dojo.render.html.opera) {
                        nd = db;
                    }
                    ret.x -= dojo.html.sumAncestorProperties(nd, "scrollLeft");
                    ret.y -= dojo.html.sumAncestorProperties(nd, "scrollTop");
                }
                var _4fb = node;
                do{
                    var n = _4fb["offsetLeft"];
                    if (!h.opera || n > 0) {
                        ret.x += isNaN(n) ? 0 : n;
                    }
                    var m = _4fb["offsetTop"];
                    ret.y += isNaN(m) ? 0 : m;
                    _4fb = _4fb.offsetParent;
                } while ((_4fb != _4f9) && (_4fb != null));
            } else {
                if (node["x"] && node["y"]) {
                    ret.x += isNaN(node.x) ? 0 : node.x;
                    ret.y += isNaN(node.y) ? 0 : node.y;
                }
            }
        }
    }
    if (_4f0) {
        var _4fe = dojo.html.getScroll();
        ret.y += _4fe.top;
        ret.x += _4fe.left;
    }
    var _4ff = [dojo.html.getPaddingExtent,dojo.html.getBorderExtent,dojo.html.getMarginExtent];
    if (_4f4 > _4f5) {
        for (var i = _4f5; i < _4f4; ++i) {
            ret.y += _4ff[i](node, "top");
            ret.x += _4ff[i](node, "left");
        }
    } else {
        if (_4f4 < _4f5) {
            for (var i = _4f5; i > _4f4; --i) {
                ret.y -= _4ff[i - 1](node, "top");
                ret.x -= _4ff[i - 1](node, "left");
            }
        }
    }
    ret.top = ret.y;
    ret.left = ret.x;
    return ret;
};
dojo.html.isPositionAbsolute = function(node) {
    return (dojo.html.getComputedStyle(node, "position") == "absolute");
};
dojo.html._sumPixelValues = function(node, _503, _504) {
    var _505 = 0;
    for (var x = 0; x < _503.length; x++) {
        _505 += dojo.html.getPixelValue(node, _503[x], _504);
    }
    return _505;
};
dojo.html.getMargin = function(node) {
    return {width:dojo.html._sumPixelValues(node, ["margin-left","margin-right"], (dojo.html.getComputedStyle(node, "position") == "absolute")),height:dojo.html._sumPixelValues(node, ["margin-top","margin-bottom"], (dojo.html.getComputedStyle(node, "position") == "absolute"))};
};
dojo.html.getBorder = function(node) {
    return {width:dojo.html.getBorderExtent(node, "left") + dojo.html.getBorderExtent(node, "right"),height:dojo.html.getBorderExtent(node, "top") + dojo.html.getBorderExtent(node, "bottom")};
};
dojo.html.getBorderExtent = function(node, side) {
    return (dojo.html.getStyle(node, "border-" + side + "-style") == "none" ? 0 : dojo.html.getPixelValue(node, "border-" + side + "-width"));
};
dojo.html.getMarginExtent = function(node, side) {
    return dojo.html._sumPixelValues(node, ["margin-" + side], dojo.html.isPositionAbsolute(node));
};
dojo.html.getPaddingExtent = function(node, side) {
    return dojo.html._sumPixelValues(node, ["padding-" + side], true);
};
dojo.html.getPadding = function(node) {
    return {width:dojo.html._sumPixelValues(node, ["padding-left","padding-right"], true),height:dojo.html._sumPixelValues(node, ["padding-top","padding-bottom"], true)};
};
dojo.html.getPadBorder = function(node) {
    var pad = dojo.html.getPadding(node);
    var _512 = dojo.html.getBorder(node);
    return {width:pad.width + _512.width,height:pad.height + _512.height};
};
dojo.html.getBoxSizing = function(node) {
    var h = dojo.render.html;
    var bs = dojo.html.boxSizing;
    if (((h.ie) || (h.opera)) && node.nodeName.toLowerCase() != "img") {
        var cm = document["compatMode"];
        if ((cm == "BackCompat") || (cm == "QuirksMode")) {
            return bs.BORDER_BOX;
        } else {
            return bs.CONTENT_BOX;
        }
    } else {
        if (arguments.length == 0) {
            node = document.documentElement;
        }
        var _517;
        if (!h.ie) {
            _517 = dojo.html.getStyle(node, "-moz-box-sizing");
            if (!_517) {
                _517 = dojo.html.getStyle(node, "box-sizing");
            }
        }
        return (_517 ? _517 : bs.CONTENT_BOX);
    }
};
dojo.html.isBorderBox = function(node) {
    return (dojo.html.getBoxSizing(node) == dojo.html.boxSizing.BORDER_BOX);
};
dojo.html.getBorderBox = function(node) {
    node = dojo.byId(node);
    return {width:node.offsetWidth,height:node.offsetHeight};
};
dojo.html.getPaddingBox = function(node) {
    var box = dojo.html.getBorderBox(node);
    var _51c = dojo.html.getBorder(node);
    return {width:box.width - _51c.width,height:box.height - _51c.height};
};
dojo.html.getContentBox = function(node) {
    node = dojo.byId(node);
    var _51e = dojo.html.getPadBorder(node);
    return {width:node.offsetWidth - _51e.width,height:node.offsetHeight - _51e.height};
};
dojo.html.setContentBox = function(node, args) {
    node = dojo.byId(node);
    var _521 = 0;
    var _522 = 0;
    var isbb = dojo.html.isBorderBox(node);
    var _524 = (isbb ? dojo.html.getPadBorder(node) : {width:0,height:0});
    var ret = {};
    if (typeof args.width != "undefined") {
        _521 = args.width + _524.width;
        ret.width = dojo.html.setPositivePixelValue(node, "width", _521);
    }
    if (typeof args.height != "undefined") {
        _522 = args.height + _524.height;
        ret.height = dojo.html.setPositivePixelValue(node, "height", _522);
    }
    return ret;
};
dojo.html.getMarginBox = function(node) {
    var _527 = dojo.html.getBorderBox(node);
    var _528 = dojo.html.getMargin(node);
    return {width:_527.width + _528.width,height:_527.height + _528.height};
};
dojo.html.setMarginBox = function(node, args) {
    node = dojo.byId(node);
    var _52b = 0;
    var _52c = 0;
    var isbb = dojo.html.isBorderBox(node);
    var _52e = (!isbb ? dojo.html.getPadBorder(node) : {width:0,height:0});
    var _52f = dojo.html.getMargin(node);
    var ret = {};
    if (typeof args.width != "undefined") {
        _52b = args.width - _52e.width;
        _52b -= _52f.width;
        ret.width = dojo.html.setPositivePixelValue(node, "width", _52b);
    }
    if (typeof args.height != "undefined") {
        _52c = args.height - _52e.height;
        _52c -= _52f.height;
        ret.height = dojo.html.setPositivePixelValue(node, "height", _52c);
    }
    return ret;
};
dojo.html.getElementBox = function(node, type) {
    var bs = dojo.html.boxSizing;
    switch (type) {
        case bs.MARGIN_BOX:
            return dojo.html.getMarginBox(node);
        case bs.BORDER_BOX:
            return dojo.html.getBorderBox(node);
        case bs.PADDING_BOX:
            return dojo.html.getPaddingBox(node);
        case bs.CONTENT_BOX:
        default:
            return dojo.html.getContentBox(node);
    }
};
dojo.html.toCoordinateObject = dojo.html.toCoordinateArray = function(_534, _535, _536) {
    if (_534 instanceof Array || typeof _534 == "array") {
        dojo.deprecated("dojo.html.toCoordinateArray", "use dojo.html.toCoordinateObject({left: , top: , width: , height: }) instead", "0.5");
        while (_534.length < 4) {
            _534.push(0);
        }
        while (_534.length > 4) {
            _534.pop();
        }
        var ret = {left:_534[0],top:_534[1],width:_534[2],height:_534[3]};
    } else {
        if (!_534.nodeType && !(_534 instanceof String || typeof _534 == "string") && ("width" in _534 || "height" in _534 || "left" in _534 || "x" in _534 || "top" in _534 || "y" in _534)) {
            var ret = {left:_534.left || _534.x || 0,top:_534.top || _534.y || 0,width:_534.width || 0,height:_534.height || 0};
        } else {
            var node = dojo.byId(_534);
            var pos = dojo.html.abs(node, _535, _536);
            var _53a = dojo.html.getMarginBox(node);
            var ret = {left:pos.left,top:pos.top,width:_53a.width,height:_53a.height};
        }
    }
    ret.x = ret.left;
    ret.y = ret.top;
    return ret;
};
dojo.html.setMarginBoxWidth = dojo.html.setOuterWidth = function(node, _53c) {
    return dojo.html._callDeprecated("setMarginBoxWidth", "setMarginBox", arguments, "width");
};
dojo.html.setMarginBoxHeight = dojo.html.setOuterHeight = function() {
    return dojo.html._callDeprecated("setMarginBoxHeight", "setMarginBox", arguments, "height");
};
dojo.html.getMarginBoxWidth = dojo.html.getOuterWidth = function() {
    return dojo.html._callDeprecated("getMarginBoxWidth", "getMarginBox", arguments, null, "width");
};
dojo.html.getMarginBoxHeight = dojo.html.getOuterHeight = function() {
    return dojo.html._callDeprecated("getMarginBoxHeight", "getMarginBox", arguments, null, "height");
};
dojo.html.getTotalOffset = function(node, type, _53f) {
    return dojo.html._callDeprecated("getTotalOffset", "getAbsolutePosition", arguments, null, type);
};
dojo.html.getAbsoluteX = function(node, _541) {
    return dojo.html._callDeprecated("getAbsoluteX", "getAbsolutePosition", arguments, null, "x");
};
dojo.html.getAbsoluteY = function(node, _543) {
    return dojo.html._callDeprecated("getAbsoluteY", "getAbsolutePosition", arguments, null, "y");
};
dojo.html.totalOffsetLeft = function(node, _545) {
    return dojo.html._callDeprecated("totalOffsetLeft", "getAbsolutePosition", arguments, null, "left");
};
dojo.html.totalOffsetTop = function(node, _547) {
    return dojo.html._callDeprecated("totalOffsetTop", "getAbsolutePosition", arguments, null, "top");
};
dojo.html.getMarginWidth = function(node) {
    return dojo.html._callDeprecated("getMarginWidth", "getMargin", arguments, null, "width");
};
dojo.html.getMarginHeight = function(node) {
    return dojo.html._callDeprecated("getMarginHeight", "getMargin", arguments, null, "height");
};
dojo.html.getBorderWidth = function(node) {
    return dojo.html._callDeprecated("getBorderWidth", "getBorder", arguments, null, "width");
};
dojo.html.getBorderHeight = function(node) {
    return dojo.html._callDeprecated("getBorderHeight", "getBorder", arguments, null, "height");
};
dojo.html.getPaddingWidth = function(node) {
    return dojo.html._callDeprecated("getPaddingWidth", "getPadding", arguments, null, "width");
};
dojo.html.getPaddingHeight = function(node) {
    return dojo.html._callDeprecated("getPaddingHeight", "getPadding", arguments, null, "height");
};
dojo.html.getPadBorderWidth = function(node) {
    return dojo.html._callDeprecated("getPadBorderWidth", "getPadBorder", arguments, null, "width");
};
dojo.html.getPadBorderHeight = function(node) {
    return dojo.html._callDeprecated("getPadBorderHeight", "getPadBorder", arguments, null, "height");
};
dojo.html.getBorderBoxWidth = dojo.html.getInnerWidth = function() {
    return dojo.html._callDeprecated("getBorderBoxWidth", "getBorderBox", arguments, null, "width");
};
dojo.html.getBorderBoxHeight = dojo.html.getInnerHeight = function() {
    return dojo.html._callDeprecated("getBorderBoxHeight", "getBorderBox", arguments, null, "height");
};
dojo.html.getContentBoxWidth = dojo.html.getContentWidth = function() {
    return dojo.html._callDeprecated("getContentBoxWidth", "getContentBox", arguments, null, "width");
};
dojo.html.getContentBoxHeight = dojo.html.getContentHeight = function() {
    return dojo.html._callDeprecated("getContentBoxHeight", "getContentBox", arguments, null, "height");
};
dojo.html.setContentBoxWidth = dojo.html.setContentWidth = function(node, _551) {
    return dojo.html._callDeprecated("setContentBoxWidth", "setContentBox", arguments, "width");
};
dojo.html.setContentBoxHeight = dojo.html.setContentHeight = function(node, _553) {
    return dojo.html._callDeprecated("setContentBoxHeight", "setContentBox", arguments, "height");
};
dojo.provide("dojo.lfx.html");
dojo.lfx.html._byId = function(_554) {
    if (!_554) {
        return [];
    }
    if (dojo.lang.isArrayLike(_554)) {
        if (!_554.alreadyChecked) {
            var n = [];
            dojo.lang.forEach(_554, function(node) {
                n.push(dojo.byId(node));
            });
            n.alreadyChecked = true;
            return n;
        } else {
            return _554;
        }
    } else {
        var n = [];
        n.push(dojo.byId(_554));
        n.alreadyChecked = true;
        return n;
    }
};
dojo.lfx.html.propertyAnimation = function(_557, _558, _559, _55a, _55b) {
    _557 = dojo.lfx.html._byId(_557);
    var _55c = {"propertyMap":_558,"nodes":_557,"duration":_559,"easing":_55a || dojo.lfx.easeDefault};
    var _55d = function(args) {
        if (args.nodes.length == 1) {
            var pm = args.propertyMap;
            if (!dojo.lang.isArray(args.propertyMap)) {
                var parr = [];
                for (var _561 in pm) {
                    pm[_561].property = _561;
                    parr.push(pm[_561]);
                }
                pm = args.propertyMap = parr;
            }
            dojo.lang.forEach(pm, function(prop) {
                if (dj_undef("start", prop)) {
                    if (prop.property != "opacity") {
                        prop.start = parseInt(dojo.html.getComputedStyle(args.nodes[0], prop.property));
                    } else {
                        prop.start = dojo.html.getOpacity(args.nodes[0]);
                    }
                }
            });
        }
    };
    var _563 = function(_564) {
        var _565 = [];
        dojo.lang.forEach(_564, function(c) {
            _565.push(Math.round(c));
        });
        return _565;
    };
    var _567 = function(n, _569) {
        n = dojo.byId(n);
        if (!n || !n.style) {
            return;
        }
        for (var s in _569) {
            try {
                if (s == "opacity") {
                    dojo.html.setOpacity(n, _569[s]);
                } else {
                    n.style[s] = _569[s];
                }
            }
            catch(e) {
                dojo.debug(e);
            }
        }
    };
    var _56b = function(_56c) {
        this._properties = _56c;
        this.diffs = new Array(_56c.length);
        dojo.lang.forEach(_56c, function(prop, i) {
            if (dojo.lang.isFunction(prop.start)) {
                prop.start = prop.start(prop, i);
            }
            if (dojo.lang.isFunction(prop.end)) {
                prop.end = prop.end(prop, i);
            }
            if (dojo.lang.isArray(prop.start)) {
                this.diffs[i] = null;
            } else {
                if (prop.start instanceof dojo.gfx.color.Color) {
                    prop.startRgb = prop.start.toRgb();
                    prop.endRgb = prop.end.toRgb();
                } else {
                    this.diffs[i] = prop.end - prop.start;
                }
            }
        }, this);
        this.getValue = function(n) {
            var ret = {};
            dojo.lang.forEach(this._properties, function(prop, i) {
                var _573 = null;
                if (dojo.lang.isArray(prop.start)) {
                } else {
                    if (prop.start instanceof dojo.gfx.color.Color) {
                        _573 = (prop.units || "rgb") + "(";
                        for (var j = 0; j < prop.startRgb.length; j++) {
                            _573 += Math.round(((prop.endRgb[j] - prop.startRgb[j]) * n) + prop.startRgb[j]) + (j < prop.startRgb.length - 1 ? "," : "");
                        }
                        _573 += ")";
                    } else {
                        _573 = ((this.diffs[i]) * n) + prop.start + (prop.property != "opacity" ? prop.units || "px" : "");
                    }
                }
                ret[dojo.html.toCamelCase(prop.property)] = _573;
            }, this);
            return ret;
        };
    };
    var anim = new dojo.lfx.Animation({beforeBegin:function() {
        _55d(_55c);
        anim.curve = new _56b(_55c.propertyMap);
    },onAnimate:function(_576) {
        dojo.lang.forEach(_55c.nodes, function(node) {
            _567(node, _576);
        });
    }}, _55c.duration, null, _55c.easing);
    if (_55b) {
        for (var x in _55b) {
            if (dojo.lang.isFunction(_55b[x])) {
                anim.connect(x, anim, _55b[x]);
            }
        }
    }
    return anim;
};
dojo.lfx.html._makeFadeable = function(_579) {
    var _57a = function(node) {
        if (dojo.render.html.ie) {
            if ((node.style.zoom.length == 0) && (dojo.html.getStyle(node, "zoom") == "normal")) {
                node.style.zoom = "1";
            }
            if ((node.style.width.length == 0) && (dojo.html.getStyle(node, "width") == "auto")) {
                node.style.width = "auto";
            }
        }
    };
    if (dojo.lang.isArrayLike(_579)) {
        dojo.lang.forEach(_579, _57a);
    } else {
        _57a(_579);
    }
};
dojo.lfx.html.fade = function(_57c, _57d, _57e, _57f, _580) {
    _57c = dojo.lfx.html._byId(_57c);
    var _581 = {property:"opacity"};
    if (!dj_undef("start", _57d)) {
        _581.start = _57d.start;
    } else {
        _581.start = function() {
            return dojo.html.getOpacity(_57c[0]);
        };
    }
    if (!dj_undef("end", _57d)) {
        _581.end = _57d.end;
    } else {
        dojo.raise("dojo.lfx.html.fade needs an end value");
    }
    var anim = dojo.lfx.propertyAnimation(_57c, [_581], _57e, _57f);
    anim.connect("beforeBegin", function() {
        dojo.lfx.html._makeFadeable(_57c);
    });
    if (_580) {
        anim.connect("onEnd", function() {
            _580(_57c, anim);
        });
    }
    return anim;
};
dojo.lfx.html.fadeIn = function(_583, _584, _585, _586) {
    return dojo.lfx.html.fade(_583, {end:1}, _584, _585, _586);
};
dojo.lfx.html.fadeOut = function(_587, _588, _589, _58a) {
    return dojo.lfx.html.fade(_587, {end:0}, _588, _589, _58a);
};
dojo.lfx.html.fadeShow = function(_58b, _58c, _58d, _58e) {
    _58b = dojo.lfx.html._byId(_58b);
    dojo.lang.forEach(_58b, function(node) {
        dojo.html.setOpacity(node, 0);
    });
    var anim = dojo.lfx.html.fadeIn(_58b, _58c, _58d, _58e);
    anim.connect("beforeBegin", function() {
        if (dojo.lang.isArrayLike(_58b)) {
            dojo.lang.forEach(_58b, dojo.html.show);
        } else {
            dojo.html.show(_58b);
        }
    });
    return anim;
};
dojo.lfx.html.fadeHide = function(_591, _592, _593, _594) {
    var anim = dojo.lfx.html.fadeOut(_591, _592, _593, function() {
        if (dojo.lang.isArrayLike(_591)) {
            dojo.lang.forEach(_591, dojo.html.hide);
        } else {
            dojo.html.hide(_591);
        }
        if (_594) {
            _594(_591, anim);
        }
    });
    return anim;
};
dojo.lfx.html.wipeIn = function(_596, _597, _598, _599) {
    _596 = dojo.lfx.html._byId(_596);
    var _59a = [];
    dojo.lang.forEach(_596, function(node) {
        var _59c = {};
        var _59d,_59e,_59f;
        with (node.style) {
            _59d = top;
            _59e = left;
            _59f = position;
            top = "-9999px";
            left = "-9999px";
            position = "absolute";
            display = "";
        }
        var _5a0 = dojo.html.getBorderBox(node).height;
        with (node.style) {
            top = _59d;
            left = _59e;
            position = _59f;
            display = "none";
        }
        var anim = dojo.lfx.propertyAnimation(node, {"height":{start:1,end:function() {
            return _5a0;
        }}}, _597, _598);
        anim.connect("beforeBegin", function() {
            _59c.overflow = node.style.overflow;
            _59c.height = node.style.height;
            with (node.style) {
                overflow = "hidden";
                height = "1px";
            }
            dojo.html.show(node);
        });
        anim.connect("onEnd", function() {
            with (node.style) {
                overflow = _59c.overflow;
                height = _59c.height;
            }
            if (_599) {
                _599(node, anim);
            }
        });
        _59a.push(anim);
    });
    return dojo.lfx.combine(_59a);
};
dojo.lfx.html.wipeOut = function(_5a2, _5a3, _5a4, _5a5) {
    _5a2 = dojo.lfx.html._byId(_5a2);
    var _5a6 = [];
    dojo.lang.forEach(_5a2, function(node) {
        var _5a8 = {};
        var anim = dojo.lfx.propertyAnimation(node, {"height":{start:function() {
            return dojo.html.getContentBox(node).height;
        },end:1}}, _5a3, _5a4, {"beforeBegin":function() {
            _5a8.overflow = node.style.overflow;
            _5a8.height = node.style.height;
            with (node.style) {
                overflow = "hidden";
            }
            dojo.html.show(node);
        },"onEnd":function() {
            dojo.html.hide(node);
            with (node.style) {
                overflow = _5a8.overflow;
                height = _5a8.height;
            }
            if (_5a5) {
                _5a5(node, anim);
            }
        }});
        _5a6.push(anim);
    });
    return dojo.lfx.combine(_5a6);
};
dojo.lfx.html.slideTo = function(_5aa, _5ab, _5ac, _5ad, _5ae) {
    _5aa = dojo.lfx.html._byId(_5aa);
    var _5af = [];
    var _5b0 = dojo.html.getComputedStyle;
    if (dojo.lang.isArray(_5ab)) {
        dojo.deprecated("dojo.lfx.html.slideTo(node, array)", "use dojo.lfx.html.slideTo(node, {top: value, left: value});", "0.5");
        _5ab = {top:_5ab[0],left:_5ab[1]};
    }
    dojo.lang.forEach(_5aa, function(node) {
        var top = null;
        var left = null;
        var init = (function() {
            var _5b5 = node;
            return function() {
                var pos = _5b0(_5b5, "position");
                top = (pos == "absolute" ? node.offsetTop : parseInt(_5b0(node, "top")) || 0);
                left = (pos == "absolute" ? node.offsetLeft : parseInt(_5b0(node, "left")) || 0);
                if (!dojo.lang.inArray(["absolute","relative"], pos)) {
                    var ret = dojo.html.abs(_5b5, true);
                    dojo.html.setStyleAttributes(_5b5, "position:absolute;top:" + ret.y + "px;left:" + ret.x + "px;");
                    top = ret.y;
                    left = ret.x;
                }
            };
        })();
        init();
        var anim = dojo.lfx.propertyAnimation(node, {"top":{start:top,end:(_5ab.top || 0)},"left":{start:left,end:(_5ab.left || 0)}}, _5ac, _5ad, {"beforeBegin":init});
        if (_5ae) {
            anim.connect("onEnd", function() {
                _5ae(_5aa, anim);
            });
        }
        _5af.push(anim);
    });
    return dojo.lfx.combine(_5af);
};
dojo.lfx.html.slideBy = function(_5b9, _5ba, _5bb, _5bc, _5bd) {
    _5b9 = dojo.lfx.html._byId(_5b9);
    var _5be = [];
    var _5bf = dojo.html.getComputedStyle;
    if (dojo.lang.isArray(_5ba)) {
        dojo.deprecated("dojo.lfx.html.slideBy(node, array)", "use dojo.lfx.html.slideBy(node, {top: value, left: value});", "0.5");
        _5ba = {top:_5ba[0],left:_5ba[1]};
    }
    dojo.lang.forEach(_5b9, function(node) {
        var top = null;
        var left = null;
        var init = (function() {
            var _5c4 = node;
            return function() {
                var pos = _5bf(_5c4, "position");
                top = (pos == "absolute" ? node.offsetTop : parseInt(_5bf(node, "top")) || 0);
                left = (pos == "absolute" ? node.offsetLeft : parseInt(_5bf(node, "left")) || 0);
                if (!dojo.lang.inArray(["absolute","relative"], pos)) {
                    var ret = dojo.html.abs(_5c4, true);
                    dojo.html.setStyleAttributes(_5c4, "position:absolute;top:" + ret.y + "px;left:" + ret.x + "px;");
                    top = ret.y;
                    left = ret.x;
                }
            };
        })();
        init();
        var anim = dojo.lfx.propertyAnimation(node, {"top":{start:top,end:top + (_5ba.top || 0)},"left":{start:left,end:left + (_5ba.left || 0)}}, _5bb, _5bc).connect("beforeBegin", init);
        if (_5bd) {
            anim.connect("onEnd", function() {
                _5bd(_5b9, anim);
            });
        }
        _5be.push(anim);
    });
    return dojo.lfx.combine(_5be);
};
dojo.lfx.html.explode = function(_5c8, _5c9, _5ca, _5cb, _5cc) {
    var h = dojo.html;
    _5c8 = dojo.byId(_5c8);
    _5c9 = dojo.byId(_5c9);
    var _5ce = h.toCoordinateObject(_5c8, true);
    var _5cf = document.createElement("div");
    h.copyStyle(_5cf, _5c9);
    if (_5c9.explodeClassName) {
        _5cf.className = _5c9.explodeClassName;
    }
    with (_5cf.style) {
        position = "absolute";
        display = "none";
        var _5d0 = h.getStyle(_5c8, "background-color");
        backgroundColor = _5d0 ? _5d0.toLowerCase() : "transparent";
        backgroundColor = (backgroundColor == "transparent") ? "rgb(221, 221, 221)" : backgroundColor;
    }
    dojo.body().appendChild(_5cf);
    with (_5c9.style) {
        visibility = "hidden";
        display = "block";
    }
    var _5d1 = h.toCoordinateObject(_5c9, true);
    with (_5c9.style) {
        display = "none";
        visibility = "visible";
    }
    var _5d2 = {opacity:{start:0.5,end:1}};
    dojo.lang.forEach(["height","width","top","left"], function(type) {
        _5d2[type] = {start:_5ce[type],end:_5d1[type]};
    });
    var anim = new dojo.lfx.propertyAnimation(_5cf, _5d2, _5ca, _5cb, {"beforeBegin":function() {
        h.setDisplay(_5cf, "block");
    },"onEnd":function() {
        h.setDisplay(_5c9, "block");
        _5cf.parentNode.removeChild(_5cf);
    }});
    if (_5cc) {
        anim.connect("onEnd", function() {
            _5cc(_5c9, anim);
        });
    }
    return anim;
};
dojo.lfx.html.implode = function(_5d5, end, _5d7, _5d8, _5d9) {
    var h = dojo.html;
    _5d5 = dojo.byId(_5d5);
    end = dojo.byId(end);
    var _5db = dojo.html.toCoordinateObject(_5d5, true);
    var _5dc = dojo.html.toCoordinateObject(end, true);
    var _5dd = document.createElement("div");
    dojo.html.copyStyle(_5dd, _5d5);
    if (_5d5.explodeClassName) {
        _5dd.className = _5d5.explodeClassName;
    }
    dojo.html.setOpacity(_5dd, 0.3);
    with (_5dd.style) {
        position = "absolute";
        display = "none";
        backgroundColor = h.getStyle(_5d5, "background-color").toLowerCase();
    }
    dojo.body().appendChild(_5dd);
    var _5de = {opacity:{start:1,end:0.5}};
    dojo.lang.forEach(["height","width","top","left"], function(type) {
        _5de[type] = {start:_5db[type],end:_5dc[type]};
    });
    var anim = new dojo.lfx.propertyAnimation(_5dd, _5de, _5d7, _5d8, {"beforeBegin":function() {
        dojo.html.hide(_5d5);
        dojo.html.show(_5dd);
    },"onEnd":function() {
        _5dd.parentNode.removeChild(_5dd);
    }});
    if (_5d9) {
        anim.connect("onEnd", function() {
            _5d9(_5d5, anim);
        });
    }
    return anim;
};
dojo.lfx.html.highlight = function(_5e1, _5e2, _5e3, _5e4, _5e5) {
    _5e1 = dojo.lfx.html._byId(_5e1);
    var _5e6 = [];
    dojo.lang.forEach(_5e1, function(node) {
        var _5e8 = dojo.html.getBackgroundColor(node);
        var bg = dojo.html.getStyle(node, "background-color").toLowerCase();
        var _5ea = dojo.html.getStyle(node, "background-image");
        var _5eb = (bg == "transparent" || bg == "rgba(0, 0, 0, 0)");
        while (_5e8.length > 3) {
            _5e8.pop();
        }
        var rgb = new dojo.gfx.color.Color(_5e2);
        var _5ed = new dojo.gfx.color.Color(_5e8);
        var anim = dojo.lfx.propertyAnimation(node, {"background-color":{start:rgb,end:_5ed}}, _5e3, _5e4, {"beforeBegin":function() {
            if (_5ea) {
                node.style.backgroundImage = "none";
            }
            node.style.backgroundColor = "rgb(" + rgb.toRgb().join(",") + ")";
        },"onEnd":function() {
            if (_5ea) {
                node.style.backgroundImage = _5ea;
            }
            if (_5eb) {
                node.style.backgroundColor = "transparent";
            }
            if (_5e5) {
                _5e5(node, anim);
            }
        }});
        _5e6.push(anim);
    });
    return dojo.lfx.combine(_5e6);
};
dojo.lfx.html.unhighlight = function(_5ef, _5f0, _5f1, _5f2, _5f3) {
    _5ef = dojo.lfx.html._byId(_5ef);
    var _5f4 = [];
    dojo.lang.forEach(_5ef, function(node) {
        var _5f6 = new dojo.gfx.color.Color(dojo.html.getBackgroundColor(node));
        var rgb = new dojo.gfx.color.Color(_5f0);
        var _5f8 = dojo.html.getStyle(node, "background-image");
        var anim = dojo.lfx.propertyAnimation(node, {"background-color":{start:_5f6,end:rgb}}, _5f1, _5f2, {"beforeBegin":function() {
            if (_5f8) {
                node.style.backgroundImage = "none";
            }
            node.style.backgroundColor = "rgb(" + _5f6.toRgb().join(",") + ")";
        },"onEnd":function() {
            if (_5f3) {
                _5f3(node, anim);
            }
        }});
        _5f4.push(anim);
    });
    return dojo.lfx.combine(_5f4);
};
dojo.lang.mixin(dojo.lfx, dojo.lfx.html);
dojo.kwCompoundRequire({browser:["dojo.lfx.html"],dashboard:["dojo.lfx.html"]});
dojo.provide("dojo.lfx.*");

