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

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

 http://dojotoolkit.org/community/licensing.shtml
 */

if (typeof dojo == "undefined") {
    (function() {
        if (typeof this["djConfig"] == "undefined") {
            this.djConfig = {};
        }
        if ((!this["console"]) || (!console["firebug"])) {
            this.console = {};
        }
        var cn = ["assert","count","debug","dir","dirxml","error","group","groupEnd","info","log","profile","profileEnd","time","timeEnd","trace","warn"];
        var i = 0,tn;
        while (tn = cn[i++]) {
            if (!console[tn]) {
                console[tn] = function() {
                };
            }
        }
        if (typeof this["dojo"] == "undefined") {
            this.dojo = {};
        }
        dojo.global = this;
        var _4 = {isDebug:false,allowQueryConfig:false,baseScriptUri:"",baseRelativePath:"",libraryScriptUri:"",preventBackButtonFix:true,delayMozLoadingFix:false};
        for (var _5 in _4) {
            if (typeof djConfig[_5] == "undefined") {
                djConfig[_5] = _4[_5];
            }
        }
        var _6 = ["Browser","Rhino","Spidermonkey","Mobile"];
        var t;
        while (t = _6.shift()) {
            dojo["is" + t] = false;
        }
    })();
    dojo.locale = djConfig.locale;
    dojo.version = {major:0,minor:0,patch:0,flag:"dev",revision:Number("$Rev: 10315 $".match(/[0-9]+/)[0]),toString:function() {
        with (dojo.version) {
            return major + "." + minor + "." + patch + flag + " (" + revision + ")";
        }
    }};
    dojo._getProp = function(_8, _9, _a) {
        var _b = _a || dojo.global;
        for (var i = 0,p; _b && (p = _8[i]); i++) {
            _b = (p in _b ? _b[p] : (_9 ? _b[p] = {} : undefined));
        }
        return _b;
    };
    dojo.setObject = function(_e, _f, _10) {
        var _11 = _e.split("."),p = _11.pop(),obj = dojo._getProp(_11, true, _10);
        return (obj && p ? (obj[p] = _f) : undefined);
    };
    dojo.getObject = function(_14, _15, _16) {
        return dojo._getProp(_14.split("."), _15, _16);
    };
    dojo.exists = function(_17, obj) {
        return !!dojo.getObject(_17, false, obj);
    };
    dojo["eval"] = function(_19) {
        return dojo.global.eval ? dojo.global.eval(_19) : eval(_19);
    };
    dojo.deprecated = function(_1a, _1b, _1c) {
        var _1d = "DEPRECATED: " + _1a;
        if (_1b) {
            _1d += " " + _1b;
        }
        if (_1c) {
            _1d += " -- will be removed in version: " + _1c;
        }
        console.debug(_1d);
    };
    dojo.experimental = function(_1e, _1f) {
        var _20 = "EXPERIMENTAL: " + _1e + " -- APIs subject to change without notice.";
        if (_1f) {
            _20 += " " + _1f;
        }
        console.debug(_20);
    };
    (function() {
        var _21 = {_loadedModules:{},_inFlightCount:0,_hasResource:{},_modulePrefixes:{dojo:{name:"dojo",value:"."},doh:{name:"doh",value:"../util/doh"},tests:{name:"tests",value:"tests"}},_moduleHasPrefix:function(_22) {
            var mp = this._modulePrefixes;
            return Boolean(mp[_22] && mp[_22].value);
        },_getModulePrefix:function(_24) {
            var mp = this._modulePrefixes;
            if (this._moduleHasPrefix(_24)) {
                return mp[_24].value;
            }
            return _24;
        },_loadedUrls:[],_postLoad:false,_loaders:[],_unloaders:[],_loadNotifying:false};
        for (var _26 in _21) {
            dojo[_26] = _21[_26];
        }
    })();
    dojo._loadPath = function(_27, _28, cb) {
        var uri = (((_27.charAt(0) == "/" || _27.match(/^\w+:/))) ? "" : this.baseUrl) + _27;
        if (djConfig.cacheBust && dojo.isBrowser) {
            uri += "?" + String(djConfig.cacheBust).replace(/\W+/g, "");
        }
        try {
            return !_28 ? this._loadUri(uri, cb) : this._loadUriAndCheck(uri, _28, cb);
        } catch(e) {
            console.debug(e);
            return false;
        }
    };
    dojo._loadUri = function(uri, cb) {
        if (this._loadedUrls[uri]) {
            return true;
        }
        var _2d = this._getText(uri, true);
        if (!_2d) {
            return false;
        }
        this._loadedUrls[uri] = true;
        this._loadedUrls.push(uri);
        if (cb) {
            _2d = "(" + _2d + ")";
        }
        var _2e = dojo["eval"](_2d + "\r\n//@ sourceURL=" + uri);
        if (cb) {
            cb(_2e);
        }
        return true;
    };
    dojo._loadUriAndCheck = function(uri, _30, cb) {
        var ok = false;
        try {
            ok = this._loadUri(uri, cb);
        } catch(e) {
            console.debug("failed loading ", uri, " with error: ", e);
        }
        return Boolean(ok && this._loadedModules[_30]);
    };
    dojo.loaded = function() {
        this._loadNotifying = true;
        this._postLoad = true;
        var mll = this._loaders;
        this._loaders = [];
        for (var x = 0; x < mll.length; x++) {
            mll[x]();
        }
        this._loadNotifying = false;
        if (dojo._postLoad && dojo._inFlightCount == 0 && this._loaders.length > 0) {
            dojo._callLoaded();
        }
    };
    dojo.unloaded = function() {
        var mll = this._unloaders;
        while (mll.length) {
            (mll.pop())();
        }
    };
    dojo.addOnLoad = function(obj, _37) {
        var d = dojo;
        if (arguments.length == 1) {
            d._loaders.push(obj);
        } else {
            if (arguments.length > 1) {
                d._loaders.push(function() {
                    obj[_37]();
                });
            }
        }
        if (d._postLoad && d._inFlightCount == 0 && !d._loadNotifying) {
            d._callLoaded();
        }
    };
    dojo.addOnUnload = function(obj, _3a) {
        var d = dojo;
        if (arguments.length == 1) {
            d._unloaders.push(obj);
        } else {
            if (arguments.length > 1) {
                d._unloaders.push(function() {
                    obj[_3a]();
                });
            }
        }
    };
    dojo._modulesLoaded = function() {
        if (this._postLoad) {
            return;
        }
        if (this._inFlightCount > 0) {
            console.debug("files still in flight!");
            return;
        }
        dojo._callLoaded();
    };
    dojo._callLoaded = function() {
        if (typeof setTimeout == "object" || (djConfig["useXDomain"] && dojo.isOpera)) {
            setTimeout("dojo.loaded();", 0);
        } else {
            dojo.loaded();
        }
    };
    dojo._getModuleSymbols = function(_3c) {
        var _3d = _3c.split(".");
        for (var i = _3d.length; i > 0; i--) {
            var _3f = _3d.slice(0, i).join(".");
            if ((i == 1) && !this._moduleHasPrefix(_3f)) {
                _3d[0] = "../" + _3d[0];
            } else {
                var _40 = this._getModulePrefix(_3f);
                if (_40 != _3f) {
                    _3d.splice(0, i, _40);
                    break;
                }
            }
        }
        return _3d;
    };
    dojo._global_omit_module_check = false;
    dojo._loadModule = function(_41, _42, _43) {
        _43 = this._global_omit_module_check || _43;
        var _44 = this._loadedModules[_41];
        if (_44) {
            return _44;
        }
        var _45 = _41.split(".");
        var _46 = this._getModuleSymbols(_41);
        var _47 = ((_46[0].charAt(0) != "/") && !_46[0].match(/^\w+:/));
        var _48 = _46[_46.length - 1];
        var _49;
        if (_48 == "*") {
            _41 = _45.slice(0, -1).join(".");
            _46.pop();
            _49 = _46.join("/") + "/" + (djConfig["packageFileName"] || "__package__") + ".js";
            if (_47 && _49.charAt(0) == "/") {
                _49 = _49.slice(1);
            }
        } else {
            _49 = _46.join("/") + ".js";
            _41 = _45.join(".");
        }
        var _4a = (!_43) ? _41 : null;
        var ok = this._loadPath(_49, _4a);
        if ((!ok) && (!_43)) {
            throw new Error("Could not load '" + _41 + "'; last tried '" + _49 + "'");
        }
        if ((!_43) && (!this["_isXDomain"])) {
            _44 = this._loadedModules[_41];
            if (!_44) {
                throw new Error("symbol '" + _41 + "' is not defined after loading '" + _49 + "'");
            }
        }
        return _44;
    };
    dojo.require = dojo._loadModule;
    dojo.provide = function(_4c) {
        var _4d = _4c + "";
        var _4e = _4d;
        var _4f = _4c.split(/\./);
        if (_4f[_4f.length - 1] == "*") {
            _4f.pop();
            _4e = _4f.join(".");
        }
        var _50 = dojo.getObject(_4e, true);
        this._loadedModules[_4d] = _50;
        this._loadedModules[_4e] = _50;
        return _50;
    };
    dojo.platformRequire = function(_51) {
        var _52 = _51["common"] || [];
        var _53 = _52.concat(_51[dojo._name] || _51["default"] || []);
        for (var x = 0; x < _53.length; x++) {
            var _55 = _53[x];
            if (_55.constructor == Array) {
                dojo._loadModule.apply(dojo, _55);
            } else {
                dojo._loadModule(_55);
            }
        }
    };
    dojo.requireIf = function(_56, _57) {
        if (_56 === true) {
            var _58 = [];
            for (var i = 1; i < arguments.length; i++) {
                _58.push(arguments[i]);
            }
            dojo.require.apply(dojo, _58);
        }
    };
    dojo.requireAfterIf = dojo.requireIf;
    dojo.registerModulePath = function(_5a, _5b) {
        this._modulePrefixes[_5a] = {name:_5a,value:_5b};
    };
    dojo.requireLocalization = function(_5c, _5d, _5e, _5f) {
        dojo.require("dojo.i18n");
        dojo.i18n._requireLocalization.apply(dojo.hostenv, arguments);
    };
    (function() {
        var ore = new RegExp("^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\\?([^#]*))?(#(.*))?$");
        var ire = new RegExp("^((([^:]+:)?([^@]+))@)?([^:]*)(:([0-9]+))?$");
        dojo._Url = function() {
            var n = null;
            var _a = arguments;
            var uri = _a[0];
            for (var i = 1; i < _a.length; i++) {
                if (!_a[i]) {
                    continue;
                }
                var _66 = new dojo._Url(_a[i] + "");
                var _67 = new dojo._Url(uri + "");
                if ((_66.path == "") && (!_66.scheme) && (!_66.authority) && (!_66.query)) {
                    if (_66.fragment != n) {
                        _67.fragment = _66.fragment;
                    }
                    _66 = _67;
                } else {
                    if (!_66.scheme) {
                        _66.scheme = _67.scheme;
                        if (!_66.authority) {
                            _66.authority = _67.authority;
                            if (_66.path.charAt(0) != "/") {
                                var _68 = _67.path.substring(0, _67.path.lastIndexOf("/") + 1) + _66.path;
                                var _69 = _68.split("/");
                                for (var j = 0; j < _69.length; j++) {
                                    if (_69[j] == ".") {
                                        if (j == _69.length - 1) {
                                            _69[j] = "";
                                        } else {
                                            _69.splice(j, 1);
                                            j--;
                                        }
                                    } else {
                                        if (j > 0 && !(j == 1 && _69[0] == "") && _69[j] == ".." && _69[j - 1] != "..") {
                                            if (j == (_69.length - 1)) {
                                                _69.splice(j, 1);
                                                _69[j - 1] = "";
                                            } else {
                                                _69.splice(j - 1, 2);
                                                j -= 2;
                                            }
                                        }
                                    }
                                }
                                _66.path = _69.join("/");
                            }
                        }
                    }
                }
                uri = "";
                if (_66.scheme) {
                    uri += _66.scheme + ":";
                }
                if (_66.authority) {
                    uri += "//" + _66.authority;
                }
                uri += _66.path;
                if (_66.query) {
                    uri += "?" + _66.query;
                }
                if (_66.fragment) {
                    uri += "#" + _66.fragment;
                }
            }
            this.uri = uri.toString();
            var r = this.uri.match(ore);
            this.scheme = r[2] || (r[1] ? "" : n);
            this.authority = r[4] || (r[3] ? "" : n);
            this.path = r[5];
            this.query = r[7] || (r[6] ? "" : n);
            this.fragment = r[9] || (r[8] ? "" : n);
            if (this.authority != n) {
                r = this.authority.match(ire);
                this.user = r[3] || n;
                this.password = r[4] || n;
                this.host = r[5];
                this.port = r[7] || n;
            }
        };
        dojo._Url.prototype.toString = function() {
            return this.uri;
        };
    })();
    dojo.moduleUrl = function(_6c, url) {
        var loc = dojo._getModuleSymbols(_6c).join("/");
        if (!loc) {
            return null;
        }
        if (loc.lastIndexOf("/") != loc.length - 1) {
            loc += "/";
        }
        var _6f = loc.indexOf(":");
        if (loc.charAt(0) != "/" && (_6f == -1 || _6f > loc.indexOf("/"))) {
            loc = dojo.baseUrl + loc;
        }
        return new dojo._Url(loc, url);
    };
    if (typeof window != "undefined") {
        dojo.isBrowser = true;
        dojo._name = "browser";
        (function() {
            var d = dojo;
            if (document && document.getElementsByTagName) {
                var _71 = document.getElementsByTagName("script");
                var _72 = /dojo(\.xd)?\.js([\?\.]|$)/i;
                for (var i = 0; i < _71.length; i++) {
                    var src = _71[i].getAttribute("src");
                    if (!src) {
                        continue;
                    }
                    var m = src.match(_72);
                    if (m) {
                        if (!djConfig["baseUrl"]) {
                            djConfig["baseUrl"] = src.substring(0, m.index);
                        }
                        var cfg = _71[i].getAttribute("djConfig");
                        if (cfg) {
                            var _77 = eval("({ " + cfg + " })");
                            for (var x in _77) {
                                djConfig[x] = _77[x];
                            }
                        }
                        break;
                    }
                }
            }
            d.baseUrl = djConfig["baseUrl"];
            var n = navigator;
            var dua = n.userAgent;
            var dav = n.appVersion;
            var tv = parseFloat(dav);
            d.isOpera = (dua.indexOf("Opera") >= 0) ? tv : 0;
            d.isKhtml = (dav.indexOf("Konqueror") >= 0) || (dav.indexOf("Safari") >= 0) ? tv : 0;
            d.isSafari = (dav.indexOf("Safari") >= 0) ? tv : 0;
            var _7d = dua.indexOf("Gecko");
            d.isMozilla = d.isMoz = ((_7d >= 0) && (!d.isKhtml)) ? tv : 0;
            d.isFF = 0;
            d.isIE = 0;
            d.isGears = 0;
            try {
                if (d.isMoz) {
                    d.isFF = parseFloat(dua.split("Firefox/")[1].split(" ")[0]);
                }
                if ((document.all) && (!d.isOpera)) {
                    d.isIE = parseFloat(dav.split("MSIE ")[1].split(";")[0]);
                }
            } catch(e) {
            }
            if (dojo.isIE && (window.location.protocol === "file:")) {
                djConfig.ieForceActiveXXhr = true;
            }
            d._gearsObject = function() {
                var _7e;
                var _7f;
                var _80 = d.getObject("google.gears");
                if (_80) {
                    return _80;
                }
                if (typeof GearsFactory != "undefined") {
                    _7e = new GearsFactory();
                } else {
                    if (d.isIE) {
                        try {
                            _7e = new ActiveXObject("Gears.Factory");
                        } catch(e) {
                        }
                    } else {
                        if (navigator.mimeTypes["application/x-googlegears"]) {
                            _7e = document.createElement("object");
                            _7e.setAttribute("type", "application/x-googlegears");
                            _7e.setAttribute("width", 0);
                            _7e.setAttribute("height", 0);
                            _7e.style.display = "none";
                            document.documentElement.appendChild(_7e);
                        }
                    }
                }
                if (!_7e) {
                    return null;
                }
                dojo.setObject("google.gears.factory", _7e);
                return dojo.getObject("google.gears");
            };
            var _81 = d._gearsObject();
            if (_81) {
                d.isGears = true;
            }
            var cm = document["compatMode"];
            d.isQuirks = (cm == "BackCompat") || (cm == "QuirksMode") || (d.isIE < 6);
            d.locale = djConfig.locale || (d.isIE ? n.userLanguage : n.language).toLowerCase();
            d._println = console.debug;
            d._XMLHTTP_PROGIDS = ["Msxml2.XMLHTTP","Microsoft.XMLHTTP","Msxml2.XMLHTTP.4.0"];
            d._xhrObj = function() {
                var _83 = null;
                var _84 = null;
                if (!dojo.isIE || !djConfig.ieForceActiveXXhr) {
                    try {
                        _83 = new XMLHttpRequest();
                    } catch(e) {
                    }
                }
                if (!_83) {
                    for (var i = 0; i < 3; ++i) {
                        var _86 = dojo._XMLHTTP_PROGIDS[i];
                        try {
                            _83 = new ActiveXObject(_86);
                        } catch(e) {
                            _84 = e;
                        }
                        if (_83) {
                            dojo._XMLHTTP_PROGIDS = [_86];
                            break;
                        }
                    }
                }
                if (!_83) {
                    throw new Error("XMLHTTP not available: " + _84);
                }
                return _83;
            };
            d._isDocumentOk = function(_87) {
                var _88 = _87.status || 0;
                return ((_88 >= 200) && (_88 < 300)) || (_88 == 304) || (_88 == 1223) || (!_88 && (location.protocol == "file:" || location.protocol == "chrome:"));
            };
            var _89 = document.getElementsByTagName("base");
            var _8a = (_89 && _89.length > 0);
            d._getText = function(uri, _8c) {
                var _8d = this._xhrObj();
                if (!_8a && dojo._Url) {
                    uri = (new dojo._Url(window.location, uri)).toString();
                }
                _8d.open("GET", uri, false);
                try {
                    _8d.send(null);
                    if (!d._isDocumentOk(_8d)) {
                        var err = Error("Unable to load " + uri + " status:" + _8d.status);
                        err.status = _8d.status;
                        err.responseText = _8d.responseText;
                        throw err;
                    }
                } catch(e) {
                    if (_8c) {
                        return null;
                    }
                    throw e;
                }
                return _8d.responseText;
            };
        })();
        dojo._initFired = false;
        dojo._loadInit = function(e) {
            dojo._initFired = true;
            var _90 = (e && e.type) ? e.type.toLowerCase() : "load";
            if (arguments.callee.initialized || (_90 != "domcontentloaded" && _90 != "load")) {
                return;
            }
            arguments.callee.initialized = true;
            if (typeof dojo["_khtmlTimer"] != "undefined") {
                clearInterval(dojo._khtmlTimer);
                delete dojo._khtmlTimer;
            }
            if (dojo._inFlightCount == 0) {
                dojo._modulesLoaded();
            }
        };
        if (document.addEventListener) {
            if (dojo.isOpera || (dojo.isMoz && (djConfig["enableMozDomContentLoaded"] === true))) {
                document.addEventListener("DOMContentLoaded", dojo._loadInit, null);
            }
            window.addEventListener("load", dojo._loadInit, null);
        }
        if (/(WebKit|khtml)/i.test(navigator.userAgent)) {
            dojo._khtmlTimer = setInterval(function() {
                if (/loaded|complete/.test(document.readyState)) {
                    dojo._loadInit();
                }
            }, 10);
        }
        (function() {
            var _w = window;
            var _92 = function(_93, fp) {
                var _95 = _w[_93] || function() {
                };
                _w[_93] = function() {
                    fp.apply(_w, arguments);
                    _95.apply(_w, arguments);
                };
            };
            if (dojo.isIE) {
                document.write("<scr" + "ipt defer src=\"//:\" " + "onreadystatechange=\"if(this.readyState=='complete'){dojo._loadInit();}\">" + "</scr" + "ipt>");
                var _96 = true;
                _92("onbeforeunload", function() {
                    _w.setTimeout(function() {
                        _96 = false;
                    }, 0);
                });
                _92("onunload", function() {
                    if (_96) {
                        dojo.unloaded();
                    }
                });
                try {
                    document.namespaces.add("v", "urn:schemas-microsoft-com:vml");
                    document.createStyleSheet().addRule("v\\:*", "behavior:url(#default#VML)");
                } catch(e) {
                }
            } else {
                _92("onbeforeunload", function() {
                    dojo.unloaded();
                });
            }
        })();
        dojo._writeIncludes = function() {
        };
        dojo.doc = window["document"] || null;
        dojo.body = function() {
            return dojo.doc.body || dojo.doc.getElementsByTagName("body")[0];
        };
        dojo.setContext = function(_97, _98) {
            dojo.global = _97;
            dojo.doc = _98;
        };
        dojo._fireCallback = function(_99, _9a, _9b) {
            if ((_9a) && ((typeof _99 == "string") || (_99 instanceof String))) {
                _99 = _9a[_99];
            }
            return (_9a ? _99.apply(_9a, _9b || []) : _99());
        };
        dojo.withGlobal = function(_9c, _9d, _9e, _9f) {
            var _a0;
            var _a1 = dojo.global;
            var _a2 = dojo.doc;
            try {
                dojo.setContext(_9c, _9c.document);
                _a0 = dojo._fireCallback(_9d, _9e, _9f);
            } finally {
                dojo.setContext(_a1, _a2);
            }
            return _a0;
        };
        dojo.withDoc = function(_a3, _a4, _a5, _a6) {
            var _a7;
            var _a8 = dojo.doc;
            try {
                dojo.doc = _a3;
                _a7 = dojo._fireCallback(_a4, _a5, _a6);
            } finally {
                dojo.doc = _a8;
            }
            return _a7;
        };
        if (djConfig["modulePaths"]) {
            for (var param in djConfig["modulePaths"]) {
                dojo.registerModulePath(param, djConfig["modulePaths"][param]);
            }
        }
    }
    if (djConfig.isDebug) {
        if (!console.firebug) {
            dojo.require("dojo._firebug.firebug");
        }
    }
}
if (!dojo._hasResource["dojo._base.lang"]) {
    dojo._hasResource["dojo._base.lang"] = true;
    dojo.provide("dojo._base.lang");
    dojo.isString = function(it) {
        return (typeof it == "string" || it instanceof String);
    };
    dojo.isArray = function(it) {
        return (it && it instanceof Array || typeof it == "array" || ((typeof dojo["NodeList"] != "undefined") && (it instanceof dojo.NodeList)));
    };
    if (dojo.isBrowser && dojo.isSafari) {
        dojo.isFunction = function(it) {
            if ((typeof (it) == "function") && (it == "[object NodeList]")) {
                return false;
            }
            return (typeof it == "function" || it instanceof Function);
        };
    } else {
        dojo.isFunction = function(it) {
            return (typeof it == "function" || it instanceof Function);
        };
    }
    dojo.isObject = function(it) {
        if (typeof it == "undefined") {
            return false;
        }
        return (it === null || typeof it == "object" || dojo.isArray(it) || dojo.isFunction(it));
    };
    dojo.isArrayLike = function(it) {
        var d = dojo;
        if ((!it) || (typeof it == "undefined")) {
            return false;
        }
        if (d.isString(it)) {
            return false;
        }
        if (d.isFunction(it)) {
            return false;
        }
        if (d.isArray(it)) {
            return true;
        }
        if ((it.tagName) && (it.tagName.toLowerCase() == "form")) {
            return false;
        }
        if (isFinite(it.length)) {
            return true;
        }
        return false;
    };
    dojo.isAlien = function(it) {
        if (!it) {
            return false;
        }
        return !dojo.isFunction(it) && /\{\s*\[native code\]\s*\}/.test(String(it));
    };
    dojo._mixin = function(obj, _b2) {
        var _b3 = {};
        for (var x in _b2) {
            if ((typeof _b3[x] == "undefined") || (_b3[x] != _b2[x])) {
                obj[x] = _b2[x];
            }
        }
        if (dojo.isIE) {
            var p = _b2.toString;
            if ((typeof (p) == "function") && (p != obj.toString) && (p != _b3.toString) && (p != "\nfunction toString() {\n    [native code]\n}\n")) {
                obj.toString = _b2.toString;
            }
        }
        return obj;
    };
    dojo.mixin = function(obj, _b7) {
        for (var i = 1,l = arguments.length; i < l; i++) {
            dojo._mixin(obj, arguments[i]);
        }
        return obj;
    };
    dojo.extend = function(_ba, _bb) {
        for (var i = 1,l = arguments.length; i < l; i++) {
            dojo._mixin(_ba.prototype, arguments[i]);
        }
        return _ba;
    };
    dojo._hitchArgs = function(_be, _bf) {
        var pre = dojo._toArray(arguments, 2);
        var _c1 = dojo.isString(_bf);
        return function() {
            var _c2 = dojo._toArray(arguments);
            var f = (_c1 ? (_be || dojo.global)[_bf] : _bf);
            return (f) && (f.apply(_be || this, pre.concat(_c2)));
        };
    };
    dojo.hitch = function(_c4, _c5) {
        if (arguments.length > 2) {
            return dojo._hitchArgs.apply(dojo, arguments);
        }
        if (!_c5) {
            _c5 = _c4;
            _c4 = null;
        }
        if (dojo.isString(_c5)) {
            _c4 = _c4 || dojo.global;
            if (!_c4[_c5]) {
                throw (["dojo.hitch: scope[\"",_c5,"\"] is null (scope=\"",_c4,"\")"].join(""));
            }
            return function() {
                return _c4[_c5].apply(_c4, arguments || []);
            };
        } else {
            return (!_c4 ? _c5 : function() {
                return _c5.apply(_c4, arguments || []);
            });
        }
    };
    dojo._delegate = function(obj, _c7) {
        function TMP() {
        }

        ;
        TMP.prototype = obj;
        var tmp = new TMP();
        if (_c7) {
            dojo.mixin(tmp, _c7);
        }
        return tmp;
    };
    dojo.partial = function(_c9) {
        var arr = [null];
        return dojo.hitch.apply(dojo, arr.concat(dojo._toArray(arguments)));
    };
    dojo._toArray = function(obj, _cc) {
        var arr = [];
        for (var x = _cc || 0; x < obj.length; x++) {
            arr.push(obj[x]);
        }
        return arr;
    };
    dojo.clone = function(o) {
        if (!o) {
            return o;
        }
        if (dojo.isArray(o)) {
            var r = [];
            for (var i = 0; i < o.length; ++i) {
                r.push(dojo.clone(o[i]));
            }
            return r;
        } else {
            if (dojo.isObject(o)) {
                if (o.nodeType && o.cloneNode) {
                    return o.cloneNode(true);
                } else {
                    var r = new o.constructor();
                    for (var i in o) {
                        if (!(i in r) || r[i] != o[i]) {
                            r[i] = dojo.clone(o[i]);
                        }
                    }
                    return r;
                }
            }
        }
        return o;
    };
    dojo.trim = function(str) {
        return str.replace(/^\s\s*/, "").replace(/\s\s*$/, "");
    };
}
if (!dojo._hasResource["dojo._base.declare"]) {
    dojo._hasResource["dojo._base.declare"] = true;
    dojo.provide("dojo._base.declare");
    dojo.declare = function(_d3, _d4, _d5) {
        if (dojo.isFunction(_d5) || (arguments.length > 3)) {
            dojo.deprecated("dojo.declare: for class '" + _d3 + "' pass initializer function as 'constructor' property instead of as a separate argument.", "", "1.0");
            var c = _d5;
            _d5 = arguments[3] || {};
            _d5.constructor = c;
        }
        var dd = arguments.callee,_d8 = null;
        if (dojo.isArray(_d4)) {
            _d8 = _d4;
            _d4 = _d8.shift();
        }
        if (_d8) {
            for (var i = 0,m; i < _d8.length; i++) {
                m = _d8[i];
                if (!m) {
                    throw ("Mixin #" + i + " to declaration of " + _d3 + " is null. It's likely a required module is not loaded.");
                }
                _d4 = dd._delegate(_d4, m);
            }
        }
        var _db = (_d5 || 0).constructor,_dc = dd._delegate(_d4),fn;
        for (var i in _d5) {
            if (dojo.isFunction(fn = _d5[i]) && (!0[i])) {
                fn.nom = i;
            }
        }
        dojo.extend(_dc, {declaredClass:_d3,_constructor:_db,preamble:null}, _d5 || 0);
        _dc.prototype.constructor = _dc;
        return dojo.setObject(_d3, _dc);
    };
    dojo.mixin(dojo.declare, {_delegate:function(_de, _df) {
        var bp = (_de || 0).prototype,mp = (_df || 0).prototype;
        var _e2 = dojo.declare._makeCtor();
        dojo.mixin(_e2, {superclass:bp,mixin:mp});
        if (_de) {
            _e2.prototype = dojo._delegate(bp);
        }
        dojo.extend(_e2, dojo.declare._core, mp || 0, {_constructor:null});
        _e2.prototype.constructor = _e2;
        _e2.prototype.declaredClass = (bp || 0).declaredClass + "_" + (mp || 0).declaredClass;
        dojo.setObject(_e2.prototype.declaredClass, _e2);
        return _e2;
    },_makeCtor:function() {
        return function() {
            this._construct(arguments);
        };
    },_core:{_construct:function(_e3) {
        var c = _e3.callee,s = c.superclass,ct = s && s.constructor,m = c.mixin,mct = m && m.constructor,a = _e3,ii,fn;
        if (a[0]) {
            if ((fn = a[0]["preamble"])) {
                a = fn.apply(this, a) || a;
            }
        }
        if (fn = c.prototype.preamble) {
            a = fn.apply(this, a) || a;
        }
        if (ct && ct.apply) {
            ct.apply(this, a);
        }
        if (mct && mct.apply) {
            mct.apply(this, a);
        }
        if (ii = c.prototype._constructor) {
            ii.apply(this, _e3);
        }
    },_findMixin:function(_ec) {
        var c = this.constructor,p,m;
        while (c) {
            p = c.superclass;
            m = c.mixin;
            if (m == _ec || (m instanceof _ec.constructor)) {
                return p;
            }
            if (m && (m = m._findMixin(_ec))) {
                return m;
            }
            c = p && p.constructor;
        }
    },_findMethod:function(_f0, _f1, _f2, has) {
        var p = _f2,c,m,f;
        do{
            c = p.constructor;
            m = c.mixin;
            if (m && (m = this._findMethod(_f0, _f1, m, has))) {
                return m;
            }
            if ((f = p[_f0]) && (has == (f == _f1))) {
                return p;
            }
            p = c.superclass;
        } while (p);
        return !has && (p = this._findMixin(_f2)) && this._findMethod(_f0, _f1, p, has);
    },inherited:function(_f8, _f9, _fa) {
        var a = arguments;
        if (!dojo.isString(a[0])) {
            _fa = _f9;
            _f9 = _f8;
            _f8 = _f9.callee.nom;
        }
        var c = _f9.callee,p = this.constructor.prototype,a = _fa || _f9,fn,mp;
        if (this[_f8] != c || p[_f8] == c) {
            mp = this._findMethod(_f8, c, p, true);
            if (!mp) {
                throw (this.declaredClass + ": name argument (\"" + _f8 + "\") to inherited must match callee (declare.js)");
            }
            p = this._findMethod(_f8, c, mp, false);
        }
        fn = p && p[_f8];
        if (!fn) {
            console.debug(mp.declaredClass + ": no inherited \"" + _f8 + "\" was found (declare.js)");
            return;
        }
        return fn.apply(this, a);
    }}});
}
if (!dojo._hasResource["dojo._base.connect"]) {
    dojo._hasResource["dojo._base.connect"] = true;
    dojo.provide("dojo._base.connect");
    dojo._listener = {getDispatcher:function() {
        return function() {
            var ap = Array.prototype,c = arguments.callee,ls = c._listeners,t = c.target;
            var r = t && t.apply(this, arguments);
            for (var i in ls) {
                if (!(i in ap)) {
                    ls[i].apply(this, arguments);
                }
            }
            return r;
        };
    },add:function(_106, _107, _108) {
        _106 = _106 || dojo.global;
        var f = _106[_107];
        if (!f || !f._listeners) {
            var d = dojo._listener.getDispatcher();
            d.target = f;
            d._listeners = [];
            f = _106[_107] = d;
        }
        return f._listeners.push(_108);
    },remove:function(_10b, _10c, _10d) {
        var f = (_10b || dojo.global)[_10c];
        if (f && f._listeners && _10d--) {
            delete f._listeners[_10d];
        }
    }};
    dojo.connect = function(obj, _110, _111, _112, _113) {
        var a = arguments,args = [],i = 0;
        args.push(dojo.isString(a[0]) ? null : a[i++], a[i++]);
        var a1 = a[i + 1];
        args.push(dojo.isString(a1) || dojo.isFunction(a1) ? a[i++] : null, a[i++]);
        for (var l = a.length; i < l; i++) {
            args.push(a[i]);
        }
        return dojo._connect.apply(this, args);
    };
    dojo._connect = function(obj, _11a, _11b, _11c) {
        var l = dojo._listener,h = l.add(obj, _11a, dojo.hitch(_11b, _11c));
        return [obj,_11a,h,l];
    };
    dojo.disconnect = function(_11f) {
        if (_11f && _11f[0] !== undefined) {
            dojo._disconnect.apply(this, _11f);
            delete _11f[0];
        }
    };
    dojo._disconnect = function(obj, _121, _122, _123) {
        _123.remove(obj, _121, _122);
    };
    dojo._topics = {};
    dojo.subscribe = function(_124, _125, _126) {
        return [_124,dojo._listener.add(dojo._topics, _124, dojo.hitch(_125, _126))];
    };
    dojo.unsubscribe = function(_127) {
        if (_127) {
            dojo._listener.remove(dojo._topics, _127[0], _127[1]);
        }
    };
    dojo.publish = function(_128, args) {
        var f = dojo._topics[_128];
        (f) && (f.apply(this, args || []));
    };
    dojo.connectPublisher = function(_12b, obj, _12d) {
        var pf = function() {
            dojo.publish(_12b, arguments);
        };
        return (_12d) ? dojo.connect(obj, _12d, pf) : dojo.connect(obj, pf);
    };
}
if (!dojo._hasResource["dojo._base.Deferred"]) {
    dojo._hasResource["dojo._base.Deferred"] = true;
    dojo.provide("dojo._base.Deferred");
    dojo.Deferred = function(_12f) {
        this.chain = [];
        this.id = this._nextId();
        this.fired = -1;
        this.paused = 0;
        this.results = [null,null];
        this.canceller = _12f;
        this.silentlyCancelled = false;
    };
    dojo.extend(dojo.Deferred, {_nextId:(function() {
        var n = 1;
        return function() {
            return n++;
        };
    })(),cancel:function() {
        if (this.fired == -1) {
            if (this.canceller) {
                this.canceller(this);
            } else {
                this.silentlyCancelled = true;
            }
            if (this.fired == -1) {
                var err = new Error("Deferred Cancelled");
                err.dojoType = "cancel";
                this.errback(err);
            }
        } else {
            if ((this.fired == 0) && (this.results[0] instanceof dojo.Deferred)) {
                this.results[0].cancel();
            }
        }
    },_resback:function(res) {
        this.fired = ((res instanceof Error) ? 1 : 0);
        this.results[this.fired] = res;
        this._fire();
    },_check:function() {
        if (this.fired != -1) {
            if (!this.silentlyCancelled) {
                throw new Error("already called!");
            }
            this.silentlyCancelled = false;
            return;
        }
    },callback:function(res) {
        this._check();
        this._resback(res);
    },errback:function(res) {
        this._check();
        if (!(res instanceof Error)) {
            res = new Error(res);
        }
        this._resback(res);
    },addBoth:function(cb, cbfn) {
        var _137 = dojo.hitch(cb, cbfn);
        if (arguments.length > 2) {
            _137 = dojo.partial(_137, arguments, 2);
        }
        return this.addCallbacks(_137, _137);
    },addCallback:function(cb, cbfn) {
        var _13a = dojo.hitch(cb, cbfn);
        if (arguments.length > 2) {
            _13a = dojo.partial(_13a, arguments, 2);
        }
        return this.addCallbacks(_13a, null);
    },addErrback:function(cb, cbfn) {
        var _13d = dojo.hitch(cb, cbfn);
        if (arguments.length > 2) {
            _13d = dojo.partial(_13d, arguments, 2);
        }
        return this.addCallbacks(null, _13d);
    },addCallbacks:function(cb, eb) {
        this.chain.push([cb,eb]);
        if (this.fired >= 0) {
            this._fire();
        }
        return this;
    },_fire:function() {
        var _140 = this.chain;
        var _141 = this.fired;
        var res = this.results[_141];
        var self = this;
        var cb = null;
        while ((_140.length > 0) && (this.paused == 0)) {
            var f = _140.shift()[_141];
            if (!f) {
                continue;
            }
            try {
                res = f(res);
                _141 = ((res instanceof Error) ? 1 : 0);
                if (res instanceof dojo.Deferred) {
                    cb = function(res) {
                        self._resback(res);
                        self.paused--;
                        if ((self.paused == 0) && (self.fired >= 0)) {
                            self._fire();
                        }
                    };
                    this.paused++;
                }
            } catch(err) {
                console.debug(err);
                _141 = 1;
                res = err;
            }
        }
        this.fired = _141;
        this.results[_141] = res;
        if ((cb) && (this.paused)) {
            res.addBoth(cb);
        }
    }});
}
if (!dojo._hasResource["dojo._base.json"]) {
    dojo._hasResource["dojo._base.json"] = true;
    dojo.provide("dojo._base.json");
    dojo.fromJson = function(json) {
        try {
            return eval("(" + json + ")");
        } catch(e) {
            console.debug(e);
            return json;
        }
    };
    dojo._escapeString = function(str) {
        return ("\"" + str.replace(/(["\\])/g, "\\$1") + "\"").replace(/[\f]/g, "\\f").replace(/[\b]/g, "\\b").replace(/[\n]/g, "\\n").replace(/[\t]/g, "\\t").replace(/[\r]/g, "\\r");
    };
    dojo.toJsonIndentStr = "\t";
    dojo.toJson = function(it, _14a, _14b) {
        _14b = _14b || "";
        var _14c = (_14a ? _14b + dojo.toJsonIndentStr : "");
        var _14d = (_14a ? "\n" : "");
        var _14e = typeof (it);
        if (_14e == "undefined") {
            return "undefined";
        } else {
            if ((_14e == "number") || (_14e == "boolean")) {
                return it + "";
            } else {
                if (it === null) {
                    return "null";
                }
            }
        }
        if (_14e == "string") {
            return dojo._escapeString(it);
        }
        var _14f = arguments.callee;
        var _150;
        if (typeof it.__json__ == "function") {
            _150 = it.__json__();
            if (it !== _150) {
                return _14f(_150, _14a, _14c);
            }
        }
        if (typeof it.json == "function") {
            _150 = it.json();
            if (it !== _150) {
                return _14f(_150, _14a, _14c);
            }
        }
        if (dojo.isArray(it)) {
            var res = [];
            for (var i = 0; i < it.length; i++) {
                var val = _14f(it[i], _14a, _14c);
                if (typeof (val) != "string") {
                    val = "undefined";
                }
                res.push(_14d + _14c + val);
            }
            return "[" + res.join(", ") + _14d + _14b + "]";
        }
        if (_14e == "function") {
            return null;
        }
        var _154 = [];
        for (var key in it) {
            var _156;
            if (typeof (key) == "number") {
                _156 = "\"" + key + "\"";
            } else {
                if (typeof (key) == "string") {
                    _156 = dojo._escapeString(key);
                } else {
                    continue;
                }
            }
            val = _14f(it[key], _14a, _14c);
            if (typeof (val) != "string") {
                continue;
            }
            _154.push(_14d + _14c + _156 + ": " + val);
        }
        return "{" + _154.join(", ") + _14d + _14b + "}";
    };
}
if (!dojo._hasResource["dojo._base.array"]) {
    dojo._hasResource["dojo._base.array"] = true;
    dojo.provide("dojo._base.array");
    (function() {
        var _157 = function(arr, obj, cb) {
            return [(dojo.isString(arr) ? arr.split("") : arr),(obj || dojo.global),(dojo.isString(cb) ? (new Function("item", "index", "array", cb)) : cb)];
        };
        dojo.mixin(dojo, {indexOf:function(_15b, _15c, _15d, _15e) {
            var i = 0,step = 1,end = _15b.length;
            if (_15e) {
                i = end - 1;
                step = end = -1;
            }
            for (i = _15d || i; i != end; i += step) {
                if (_15b[i] == _15c) {
                    return i;
                }
            }
            return -1;
        },lastIndexOf:function(_162, _163, _164) {
            return dojo.indexOf(_162, _163, _164, true);
        },forEach:function(arr, _166, obj) {
            if (!arr || !arr.length) {
                return;
            }
            var _p = _157(arr, obj, _166);
            arr = _p[0];
            for (var i = 0,l = _p[0].length; i < l; i++) {
                _p[2].call(_p[1], arr[i], i, arr);
            }
        },_everyOrSome:function(_16b, arr, _16d, obj) {
            var _p = _157(arr, obj, _16d);
            arr = _p[0];
            for (var i = 0,l = arr.length; i < l; i++) {
                var _172 = !!_p[2].call(_p[1], arr[i], i, arr);
                if (_16b ^ _172) {
                    return _172;
                }
            }
            return _16b;
        },every:function(arr, _174, _175) {
            return this._everyOrSome(true, arr, _174, _175);
        },some:function(arr, _177, _178) {
            return this._everyOrSome(false, arr, _177, _178);
        },map:function(arr, func, obj) {
            var _p = _157(arr, obj, func);
            arr = _p[0];
            var _17d = ((arguments[3]) ? (new arguments[3]()) : []);
            for (var i = 0; i < arr.length; ++i) {
                _17d.push(_p[2].call(_p[1], arr[i], i, arr));
            }
            return _17d;
        },filter:function(arr, _180, obj) {
            var _p = _157(arr, obj, _180);
            arr = _p[0];
            var _183 = [];
            for (var i = 0; i < arr.length; i++) {
                if (_p[2].call(_p[1], arr[i], i, arr)) {
                    _183.push(arr[i]);
                }
            }
            return _183;
        }});
    })();
}
if (!dojo._hasResource["dojo._base.Color"]) {
    dojo._hasResource["dojo._base.Color"] = true;
    dojo.provide("dojo._base.Color");
    dojo.Color = function(_185) {
        if (_185) {
            this.setColor(_185);
        }
    };
    dojo.Color.named = {black:[0,0,0],silver:[192,192,192],gray:[128,128,128],white:[255,255,255],maroon:[128,0,0],red:[255,0,0],purple:[128,0,128],fuchsia:[255,0,255],green:[0,128,0],lime:[0,255,0],olive:[128,128,0],yellow:[255,255,0],navy:[0,0,128],blue:[0,0,255],teal:[0,128,128],aqua:[0,255,255]};
    dojo.extend(dojo.Color, {r:255,g:255,b:255,a:1,_set:function(r, g, b, a) {
        var t = this;
        t.r = r;
        t.g = g;
        t.b = b;
        t.a = a;
    },setColor:function(_18b) {
        var d = dojo;
        if (d.isString(_18b)) {
            d.colorFromString(_18b, this);
        } else {
            if (d.isArray(_18b)) {
                d.colorFromArray(_18b, this);
            } else {
                this._set(_18b.r, _18b.g, _18b.b, _18b.a);
                if (!(_18b instanceof d.Color)) {
                    this.sanitize();
                }
            }
        }
        return this;
    },sanitize:function() {
        return this;
    },toRgb:function() {
        var t = this;
        return [t.r,t.g,t.b];
    },toRgba:function() {
        var t = this;
        return [t.r,t.g,t.b,t.a];
    },toHex:function() {
        var arr = dojo.map(["r","g","b"], function(x) {
            var s = this[x].toString(16);
            return s.length < 2 ? "0" + s : s;
        }, this);
        return "#" + arr.join("");
    },toCss:function(_192) {
        var t = this,rgb = t.r + ", " + t.g + ", " + t.b;
        return (_192 ? "rgba(" + rgb + ", " + t.a : "rgb(" + rgb) + ")";
    },toString:function() {
        return this.toCss(true);
    }});
    dojo.blendColors = function(_195, end, _197, obj) {
        var d = dojo,t = obj || new dojo.Color();
        d.forEach(["r","g","b","a"], function(x) {
            t[x] = _195[x] + (end[x] - _195[x]) * _197;
            if (x != "a") {
                t[x] = Math.round(t[x]);
            }
        });
        return t.sanitize();
    };
    dojo.colorFromRgb = function(_19c, obj) {
        var m = _19c.toLowerCase().match(/^rgba?\(([\s\.,0-9]+)\)/);
        return m && dojo.colorFromArray(m[1].split(/\s*,\s*/), obj);
    };
    dojo.colorFromHex = function(_19f, obj) {
        var d = dojo,t = obj || new d.Color(),bits = (_19f.length == 4) ? 4 : 8,mask = (1 << bits) - 1;
        _19f = Number("0x" + _19f.substr(1));
        if (isNaN(_19f)) {
            return null;
        }
        d.forEach(["b","g","r"], function(x) {
            var c = _19f & mask;
            _19f >>= bits;
            t[x] = bits == 4 ? 17 * c : c;
        });
        t.a = 1;
        return t;
    };
    dojo.colorFromArray = function(a, obj) {
        var t = obj || new dojo.Color();
        t._set(Number(a[0]), Number(a[1]), Number(a[2]), Number(a[3]));
        if (isNaN(t.a)) {
            t.a = 1;
        }
        return t.sanitize();
    };
    dojo.colorFromString = function(str, obj) {
        var a = dojo.Color.named[str];
        return a && dojo.colorFromArray(a, obj) || dojo.colorFromRgb(str, obj) || dojo.colorFromHex(str, obj);
    };
}
if (!dojo._hasResource["dojo._base"]) {
    dojo._hasResource["dojo._base"] = true;
    dojo.provide("dojo._base");
}
if (!dojo._hasResource["dojo._base.event"]) {
    dojo._hasResource["dojo._base.event"] = true;
    dojo.provide("dojo._base.event");
    (function() {
        var del = dojo._event_listener = {add:function(node, _1af, fp) {
            if (!node) {
                return;
            }
            _1af = del._normalizeEventName(_1af);
            fp = del._fixCallback(_1af, fp);
            node.addEventListener(_1af, fp, false);
            return fp;
        },remove:function(node, _1b2, _1b3) {
            (node) && (node.removeEventListener(del._normalizeEventName(_1b2), _1b3, false));
        },_normalizeEventName:function(name) {
            return (name.slice(0, 2) == "on" ? name.slice(2) : name);
        },_fixCallback:function(name, fp) {
            return (name != "keypress" ? fp : function(e) {
                return fp.call(this, del._fixEvent(e, this));
            });
        },_fixEvent:function(evt, _1b9) {
            switch (evt.type) {case "keypress":del._setKeyChar(evt);break;}
            return evt;
        },_setKeyChar:function(evt) {
            evt.keyChar = (evt.charCode ? String.fromCharCode(evt.charCode) : "");
        }};
        dojo.fixEvent = function(evt, _1bc) {
            return del._fixEvent(evt, _1bc);
        };
        dojo.stopEvent = function(evt) {
            evt.preventDefault();
            evt.stopPropagation();
        };
        var _1be = dojo._listener;
        dojo._connect = function(obj, _1c0, _1c1, _1c2, _1c3) {
            var _1c4 = obj && (obj.nodeType || obj.attachEvent || obj.addEventListener);
            var lid = !_1c4 ? 0 : (!_1c3 ? 1 : 2),l = [dojo._listener,del,_1be][lid];
            var h = l.add(obj, _1c0, dojo.hitch(_1c1, _1c2));
            return [obj,_1c0,h,lid];
        };
        dojo._disconnect = function(obj, _1c9, _1ca, _1cb) {
            ([dojo._listener,del,_1be][_1cb]).remove(obj, _1c9, _1ca);
        };
        dojo.keys = {BACKSPACE:8,TAB:9,CLEAR:12,ENTER:13,SHIFT:16,CTRL:17,ALT:18,PAUSE:19,CAPS_LOCK:20,ESCAPE:27,SPACE:32,PAGE_UP:33,PAGE_DOWN:34,END:35,HOME:36,LEFT_ARROW:37,UP_ARROW:38,RIGHT_ARROW:39,DOWN_ARROW:40,INSERT:45,DELETE:46,HELP:47,LEFT_WINDOW:91,RIGHT_WINDOW:92,SELECT:93,NUMPAD_0:96,NUMPAD_1:97,NUMPAD_2:98,NUMPAD_3:99,NUMPAD_4:100,NUMPAD_5:101,NUMPAD_6:102,NUMPAD_7:103,NUMPAD_8:104,NUMPAD_9:105,NUMPAD_MULTIPLY:106,NUMPAD_PLUS:107,NUMPAD_ENTER:108,NUMPAD_MINUS:109,NUMPAD_PERIOD:110,NUMPAD_DIVIDE:111,F1:112,F2:113,F3:114,F4:115,F5:116,F6:117,F7:118,F8:119,F9:120,F10:121,F11:122,F12:123,F13:124,F14:125,F15:126,NUM_LOCK:144,SCROLL_LOCK:145};
        if (dojo.isIE) {
            _trySetKeyCode = function(e, code) {
                try {
                    return (e.keyCode = code);
                } catch(e) {
                    return 0;
                }
            };
            var iel = dojo._listener;
            if (!djConfig._allow_leaks) {
                _1be = iel = dojo._ie_listener = {handlers:[],add:function(_1cf, _1d0, _1d1) {
                    _1cf = _1cf || dojo.global;
                    var f = _1cf[_1d0];
                    if (!f || !f._listeners) {
                        var d = dojo._getIeDispatcher();
                        d.target = f && (ieh.push(f) - 1);
                        d._listeners = [];
                        f = _1cf[_1d0] = d;
                    }
                    return f._listeners.push(ieh.push(_1d1) - 1);
                },remove:function(_1d5, _1d6, _1d7) {
                    var f = (_1d5 || dojo.global)[_1d6],l = f && f._listeners;
                    if (f && l && _1d7--) {
                        delete ieh[l[_1d7]];
                        delete l[_1d7];
                    }
                }};
                var ieh = iel.handlers;
            }
            dojo.mixin(del, {add:function(node, _1db, fp) {
                if (!node) {
                    return;
                }
                _1db = del._normalizeEventName(_1db);
                if (_1db == "onkeypress") {
                    var kd = node.onkeydown;
                    if (!kd || !kd._listeners || !kd._stealthKeydown) {
                        del.add(node, "onkeydown", del._stealthKeyDown);
                        node.onkeydown._stealthKeydown = true;
                    }
                }
                return iel.add(node, _1db, del._fixCallback(fp));
            },remove:function(node, _1df, _1e0) {
                iel.remove(node, del._normalizeEventName(_1df), _1e0);
            },_normalizeEventName:function(_1e1) {
                return (_1e1.slice(0, 2) != "on" ? "on" + _1e1 : _1e1);
            },_nop:function() {
            },_fixEvent:function(evt, _1e3) {
                if (!evt) {
                    var w = (_1e3) && ((_1e3.ownerDocument || _1e3.document || _1e3).parentWindow) || window;
                    evt = w.event;
                }
                if (!evt) {
                    return (evt);
                }
                evt.target = evt.srcElement;
                evt.currentTarget = (_1e3 || evt.srcElement);
                evt.layerX = evt.offsetX;
                evt.layerY = evt.offsetY;
                var se = evt.srcElement,doc = (se && se.ownerDocument) || document;
                var _1e7 = ((dojo.isIE < 6) || (doc["compatMode"] == "BackCompat")) ? doc.body : doc.documentElement;
                var _1e8 = dojo._getIeDocumentElementOffset();
                evt.pageX = evt.clientX + dojo._fixIeBiDiScrollLeft(_1e7.scrollLeft || 0) - _1e8.x;
                evt.pageY = evt.clientY + (_1e7.scrollTop || 0) - _1e8.y;
                if (evt.type == "mouseover") {
                    evt.relatedTarget = evt.fromElement;
                }
                if (evt.type == "mouseout") {
                    evt.relatedTarget = evt.toElement;
                }
                evt.stopPropagation = del._stopPropagation;
                evt.preventDefault = del._preventDefault;
                return del._fixKeys(evt);
            },_fixKeys:function(evt) {
                switch (evt.type) {case "keypress":var c = ("charCode" in evt ? evt.charCode : evt.keyCode);if (c == 10) {
                    c = 0;
                    evt.keyCode = 13;
                } else {
                    if (c == 13 || c == 27) {
                        c = 0;
                    } else {
                        if (c == 3) {
                            c = 99;
                        }
                    }
                }evt.charCode = c;del._setKeyChar(evt);break;}
                return evt;
            },_punctMap:{106:42,111:47,186:59,187:43,188:44,189:45,190:46,191:47,192:96,219:91,220:92,221:93,222:39},_stealthKeyDown:function(evt) {
                var kp = evt.currentTarget.onkeypress;
                if (!kp || !kp._listeners) {
                    return;
                }
                var k = evt.keyCode;
                var _1ee = (k != 13) && (k != 32) && (k != 27) && (k < 48 || k > 90) && (k < 96 || k > 111) && (k < 186 || k > 192) && (k < 219 || k > 222);
                if (_1ee || evt.ctrlKey) {
                    var c = (_1ee ? 0 : k);
                    if (evt.ctrlKey) {
                        if (k == 3 || k == 13) {
                            return;
                        } else {
                            if (c > 95 && c < 106) {
                                c -= 48;
                            } else {
                                if ((!evt.shiftKey) && (c >= 65 && c <= 90)) {
                                    c += 32;
                                } else {
                                    c = del._punctMap[c] || c;
                                }
                            }
                        }
                    }
                    var faux = del._synthesizeEvent(evt, {type:"keypress",faux:true,charCode:c});
                    kp.call(evt.currentTarget, faux);
                    evt.cancelBubble = faux.cancelBubble;
                    evt.returnValue = faux.returnValue;
                    _trySetKeyCode(evt, faux.keyCode);
                }
            },_stopPropagation:function() {
                this.cancelBubble = true;
            },_preventDefault:function() {
                this.bubbledKeyCode = this.keyCode;
                if (this.ctrlKey) {
                    _trySetKeyCode(this, 0);
                }
                this.returnValue = false;
            }});
            dojo.stopEvent = function(evt) {
                evt = evt || window.event;
                del._stopPropagation.call(evt);
                del._preventDefault.call(evt);
            };
        }
        del._synthesizeEvent = function(evt, _1f3) {
            var faux = dojo.mixin({}, evt, _1f3);
            del._setKeyChar(faux);
            faux.preventDefault = function() {
                evt.preventDefault();
            };
            faux.stopPropagation = function() {
                evt.stopPropagation();
            };
            return faux;
        };
        if (dojo.isOpera) {
            dojo.mixin(del, {_fixEvent:function(evt, _1f6) {
                switch (evt.type) {case "keypress":var c = evt.which;if (c == 3) {
                    c = 99;
                }c = ((c < 41) && (!evt.shiftKey) ? 0 : c);if ((evt.ctrlKey) && (!evt.shiftKey) && (c >= 65) && (c <= 90)) {
                    c += 32;
                }return del._synthesizeEvent(evt, {charCode:c});}
                return evt;
            }});
        }
        if (dojo.isSafari) {
            dojo.mixin(del, {_fixEvent:function(evt, _1f9) {
                switch (evt.type) {case "keypress":var c = evt.charCode,s = evt.shiftKey,k = evt.keyCode;k = k || _1fd[evt.keyIdentifier] || 0;if (evt.keyIdentifier == "Enter") {
                    c = 0;
                } else {
                    if ((evt.ctrlKey) && (c > 0) && (c < 27)) {
                        c += 96;
                    } else {
                        if (c == dojo.keys.SHIFT_TAB) {
                            c = dojo.keys.TAB;
                            s = true;
                        } else {
                            c = (c >= 32 && c < 63232 ? c : 0);
                        }
                    }
                }return del._synthesizeEvent(evt, {charCode:c,shiftKey:s,keyCode:k});}
                return evt;
            }});
            dojo.mixin(dojo.keys, {SHIFT_TAB:25,UP_ARROW:63232,DOWN_ARROW:63233,LEFT_ARROW:63234,RIGHT_ARROW:63235,F1:63236,F2:63237,F3:63238,F4:63239,F5:63240,F6:63241,F7:63242,F8:63243,F9:63244,F10:63245,F11:63246,F12:63247,PAUSE:63250,DELETE:63272,HOME:63273,END:63275,PAGE_UP:63276,PAGE_DOWN:63277,INSERT:63302,PRINT_SCREEN:63248,SCROLL_LOCK:63249,NUM_LOCK:63289});
            var dk = dojo.keys,_1fd = {"Up":dk.UP_ARROW,"Down":dk.DOWN_ARROW,"Left":dk.LEFT_ARROW,"Right":dk.RIGHT_ARROW,"PageUp":dk.PAGE_UP,"PageDown":dk.PAGE_DOWN};
        }
    })();
    if (dojo.isIE) {
        dojo._getIeDispatcher = function() {
            return function() {
                var ap = Array.prototype,h = dojo._ie_listener.handlers,c = arguments.callee,ls = c._listeners,t = h[c.target];
                var r = t && t.apply(this, arguments);
                for (var i in ls) {
                    if (!(i in ap)) {
                        h[ls[i]].apply(this, arguments);
                    }
                }
                return r;
            };
        };
        dojo._event_listener._fixCallback = function(fp) {
            var f = dojo._event_listener._fixEvent;
            return function(e) {
                return fp.call(this, f(e, this));
            };
        };
    }
}
if (!dojo._hasResource["dojo._base.html"]) {
    dojo._hasResource["dojo._base.html"] = true;
    dojo.provide("dojo._base.html");
    try {
        document.execCommand("BackgroundImageCache", false, true);
    } catch(e) {
    }
    if (dojo.isIE || dojo.isOpera) {
        dojo.byId = function(id, doc) {
            if (dojo.isString(id)) {
                var _d = (doc || dojo.doc);
                var te = _d.getElementById(id);
                if ((te) && (te.attributes.id.value == id)) {
                    return te;
                } else {
                    var eles = _d.all[id];
                    if (!eles) {
                        return;
                    }
                    if (!eles.length) {
                        return eles;
                    }
                    var i = 0;
                    while (te = eles[i++]) {
                        if (te.attributes.id.value == id) {
                            return te;
                        }
                    }
                }
            } else {
                return id;
            }
        };
    } else {
        dojo.byId = function(id, doc) {
            if (dojo.isString(id)) {
                return (doc || dojo.doc).getElementById(id);
            } else {
                return id;
            }
        };
    }
    (function() {
        var _211 = null;
        dojo._destroyElement = function(node) {
            node = dojo.byId(node);
            try {
                if (!_211) {
                    _211 = document.createElement("div");
                }
                _211.appendChild(node.parentNode ? node.parentNode.removeChild(node) : node);
                _211.innerHTML = "";
            } catch(e) {
            }
        };
        dojo.isDescendant = function(node, _214) {
            try {
                node = dojo.byId(node);
                _214 = dojo.byId(_214);
                while (node) {
                    if (node === _214) {
                        return true;
                    }
                    node = node.parentNode;
                }
            } catch(e) {
            }
            return false;
        };
        dojo.setSelectable = function(node, _216) {
            node = dojo.byId(node);
            if (dojo.isMozilla) {
                node.style.MozUserSelect = (_216) ? "normal" : "none";
            } else {
                if (dojo.isKhtml) {
                    node.style.KhtmlUserSelect = (_216) ? "auto" : "none";
                } else {
                    if (dojo.isIE) {
                        node.unselectable = (_216) ? "" : "on";
                        dojo.query("*", node).forEach(function(_217) {
                            _217.unselectable = (_216) ? "" : "on";
                        });
                    }
                }
            }
        };
        var _218 = function(node, ref) {
            ref.parentNode.insertBefore(node, ref);
            return true;
        };
        var _21b = function(node, ref) {
            var pn = ref.parentNode;
            if (ref == pn.lastChild) {
                pn.appendChild(node);
            } else {
                return _218(node, ref.nextSibling);
            }
            return true;
        };
        dojo.place = function(node, _220, _221) {
            if ((!node) || (!_220) || (typeof _221 == "undefined")) {
                return false;
            }
            node = dojo.byId(node);
            _220 = dojo.byId(_220);
            if (typeof _221 == "number") {
                var cn = _220.childNodes;
                if (((_221 == 0) && (cn.length == 0)) || (cn.length == _221)) {
                    _220.appendChild(node);
                    return true;
                }
                if (_221 == 0) {
                    return _218(node, _220.firstChild);
                }
                return _21b(node, cn[_221 - 1]);
            }
            switch (_221.toLowerCase()) {case "before":return _218(node, _220);case "after":return _21b(node, _220);case "first":if (_220.firstChild) {
                return _218(node, _220.firstChild);
            } else {
                _220.appendChild(node);
                return true;
            }break;default:_220.appendChild(node);return true;}
        };
        dojo.boxModel = "content-box";
        if (dojo.isIE) {
            var _dcm = document.compatMode;
            dojo.boxModel = (_dcm == "BackCompat") || (_dcm == "QuirksMode") || (dojo.isIE < 6) ? "border-box" : "content-box";
        }
        var gcs,dv = document.defaultView;
        if (dojo.isSafari) {
            gcs = function(node) {
                var s = dv.getComputedStyle(node, null);
                if (!s && node.style) {
                    node.style.display = "";
                    s = dv.getComputedStyle(node, null);
                }
                return s || {};
            };
        } else {
            if (dojo.isIE) {
                gcs = function(node) {
                    return node.currentStyle;
                };
            } else {
                gcs = function(node) {
                    return dv.getComputedStyle(node, null);
                };
            }
        }
        dojo.getComputedStyle = gcs;
        if (!dojo.isIE) {
            dojo._toPixelValue = function(_22a, _22b) {
                return parseFloat(_22b) || 0;
            };
        } else {
            dojo._toPixelValue = function(_22c, _22d) {
                if (!_22d) {
                    return 0;
                }
                if (_22d == "medium") {
                    return 4;
                }
                if (_22d.slice && (_22d.slice(-2) == "px")) {
                    return parseFloat(_22d);
                }
                with (_22c) {
                    var _22e = style.left;
                    var _22f = runtimeStyle.left;
                    runtimeStyle.left = currentStyle.left;
                    try {
                        style.left = _22d;
                        _22d = style.pixelLeft;
                    } catch(e) {
                        _22d = 0;
                    }
                    style.left = _22e;
                    runtimeStyle.left = _22f;
                }
                return _22d;
            };
        }
        dojo._getOpacity = (dojo.isIE ? function(node) {
            try {
                return (node.filters.alpha.opacity / 100);
            } catch(e) {
                return 1;
            }
        } : function(node) {
            return dojo.getComputedStyle(node).opacity;
        });
        dojo._setOpacity = (dojo.isIE ? function(node, _233) {
            if (_233 == 1) {
                node.style.cssText = node.style.cssText.replace(/FILTER:[^;]*;/i, "");
                if (node.nodeName.toLowerCase() == "tr") {
                    dojo.query("> td", node).forEach(function(i) {
                        i.style.cssText = i.style.cssText.replace(/FILTER:[^;]*;/i, "");
                    });
                }
            } else {
                var o = "Alpha(Opacity=" + (_233 * 100) + ")";
                node.style.filter = o;
            }
            if (node.nodeName.toLowerCase() == "tr") {
                dojo.query("> td", node).forEach(function(i) {
                    i.style.filter = o;
                });
            }
            return _233;
        } : function(node, _238) {
            return node.style.opacity = _238;
        });
        var _239 = {width:true,height:true,left:true,top:true};
        var _23a = function(node, type, _23d) {
            type = type.toLowerCase();
            if (_239[type] === true) {
                return dojo._toPixelValue(node, _23d);
            } else {
                if (_239[type] === false) {
                    return _23d;
                } else {
                    if ((type.indexOf("margin") >= 0) || (type.indexOf("padding") >= 0) || (type.indexOf("width") >= 0) || (type.indexOf("height") >= 0) || (type.indexOf("max") >= 0) || (type.indexOf("min") >= 0) || (type.indexOf("offset") >= 0)) {
                        _239[type] = true;
                        return dojo._toPixelValue(node, _23d);
                    } else {
                        _239[type] = false;
                        return _23d;
                    }
                }
            }
        };
        dojo.style = function(node, _23f, _240) {
            var n = dojo.byId(node),args = arguments.length,op = (_23f == "opacity");
            if (args == 3) {
                return op ? dojo._setOpacity(n, _240) : n.style[_23f] = _240;
            }
            if (args == 2 && op) {
                return dojo._getOpacity(n);
            }
            var s = dojo.getComputedStyle(n);
            return (args == 1) ? s : _23a(n, _23f, s[_23f]);
        };
        dojo._getPadExtents = function(n, _246) {
            var s = _246 || gcs(n),px = dojo._toPixelValue,l = px(n, s.paddingLeft),t = px(n, s.paddingTop);
            return {l:l,t:t,w:l + px(n, s.paddingRight),h:t + px(n, s.paddingBottom)};
        };
        dojo._getBorderExtents = function(n, _24c) {
            var ne = "none",px = dojo._toPixelValue,s = _24c || gcs(n),bl = (s.borderLeftStyle != ne ? px(n, s.borderLeftWidth) : 0),bt = (s.borderTopStyle != ne ? px(n, s.borderTopWidth) : 0);
            return {l:bl,t:bt,w:bl + (s.borderRightStyle != ne ? px(n, s.borderRightWidth) : 0),h:bt + (s.borderBottomStyle != ne ? px(n, s.borderBottomWidth) : 0)};
        };
        dojo._getPadBorderExtents = function(n, _253) {
            var s = _253 || gcs(n),p = dojo._getPadExtents(n, s),b = dojo._getBorderExtents(n, s);
            return {l:p.l + b.l,t:p.t + b.t,w:p.w + b.w,h:p.h + b.h};
        };
        dojo._getMarginExtents = function(n, _258) {
            var s = _258 || gcs(n),px = dojo._toPixelValue,l = px(n, s.marginLeft),t = px(n, s.marginTop),r = px(n, s.marginRight),b = px(n, s.marginBottom);
            if (dojo.isSafari && (s.position != "absolute")) {
                r = l;
            }
            return {l:l,t:t,w:l + r,h:t + b};
        };
        dojo._getMarginBox = function(node, _260) {
            var s = _260 || gcs(node),me = dojo._getMarginExtents(node, s);
            var l = node.offsetLeft - me.l,t = node.offsetTop - me.t;
            if (dojo.isMoz) {
                var sl = parseFloat(s.left),st = parseFloat(s.top);
                if (!isNaN(sl) && !isNaN(st)) {
                    l = sl,t = st;
                } else {
                    var p = node.parentNode;
                    if (p && p.style) {
                        var pcs = gcs(p);
                        if (pcs.overflow != "visible") {
                            var be = dojo._getBorderExtents(p, pcs);
                            l += be.l,t += be.t;
                        }
                    }
                }
            } else {
                if (dojo.isOpera) {
                    var p = node.parentNode;
                    if (p) {
                        var be = dojo._getBorderExtents(p);
                        l -= be.l,t -= be.t;
                    }
                }
            }
            return {l:l,t:t,w:node.offsetWidth + me.w,h:node.offsetHeight + me.h};
        };
        dojo._getContentBox = function(node, _26b) {
            var s = _26b || gcs(node),pe = dojo._getPadExtents(node, s),be = dojo._getBorderExtents(node, s),w = node.clientWidth,h;
            if (!w) {
                w = node.offsetWidth,h = node.offsetHeight;
            } else {
                h = node.clientHeight,be.w = be.h = 0;
            }
            if (dojo.isOpera) {
                pe.l += be.l;
                pe.t += be.t;
            }
            return {l:pe.l,t:pe.t,w:w - pe.w - be.w,h:h - pe.h - be.h};
        };
        dojo._getBorderBox = function(node, _272) {
            var s = _272 || gcs(node),pe = dojo._getPadExtents(node, s),cb = dojo._getContentBox(node, s);
            return {l:cb.l - pe.l,t:cb.t - pe.t,w:cb.w + pe.w,h:cb.h + pe.h};
        };
        dojo._setBox = function(node, l, t, w, h, u) {
            u = u || "px";
            with (node.style) {
                if (!isNaN(l)) {
                    left = l + u;
                }
                if (!isNaN(t)) {
                    top = t + u;
                }
                if (w >= 0) {
                    width = w + u;
                }
                if (h >= 0) {
                    height = h + u;
                }
            }
        };
        dojo._usesBorderBox = function(node) {
            var n = node.tagName;
            return (dojo.boxModel == "border-box") || (n == "TABLE") || (n == "BUTTON");
        };
        dojo._setContentSize = function(node, _27f, _280, _281) {
            var bb = dojo._usesBorderBox(node);
            if (bb) {
                var pb = dojo._getPadBorderExtents(node, _281);
                if (_27f >= 0) {
                    _27f += pb.w;
                }
                if (_280 >= 0) {
                    _280 += pb.h;
                }
            }
            dojo._setBox(node, NaN, NaN, _27f, _280);
        };
        dojo._setMarginBox = function(node, _285, _286, _287, _288, _289) {
            var s = _289 || dojo.getComputedStyle(node);
            var bb = dojo._usesBorderBox(node),pb = bb ? _28d : dojo._getPadBorderExtents(node, s),mb = dojo._getMarginExtents(node, s);
            if (_287 >= 0) {
                _287 = Math.max(_287 - pb.w - mb.w, 0);
            }
            if (_288 >= 0) {
                _288 = Math.max(_288 - pb.h - mb.h, 0);
            }
            dojo._setBox(node, _285, _286, _287, _288);
        };
        var _28d = {l:0,t:0,w:0,h:0};
        dojo.marginBox = function(node, box) {
            var n = dojo.byId(node),s = gcs(n),b = box;
            return !b ? dojo._getMarginBox(n, s) : dojo._setMarginBox(n, b.l, b.t, b.w, b.h, s);
        };
        dojo.contentBox = function(node, box) {
            var n = dojo.byId(node),s = gcs(n),b = box;
            return !b ? dojo._getContentBox(n, s) : dojo._setContentSize(n, b.w, b.h, s);
        };
        var _299 = function(node, prop) {
            if (!(node = (node || 0).parentNode)) {
                return 0;
            }
            var val,_29d = 0,_b = dojo.body();
            while (node && node.style) {
                if (gcs(node).position == "fixed") {
                    return 0;
                }
                val = node[prop];
                if (val) {
                    _29d += val - 0;
                    if (node == _b) {
                        break;
                    }
                }
                node = node.parentNode;
            }
            return _29d;
        };
        dojo._docScroll = function() {
            var _b = dojo.body();
            var _w = dojo.global;
            var de = dojo.doc.documentElement;
            return {y:(_w.pageYOffset || de.scrollTop || _b.scrollTop || 0),x:(_w.pageXOffset || dojo._fixIeBiDiScrollLeft(de.scrollLeft) || _b.scrollLeft || 0)};
        };
        dojo._isBodyLtr = function() {
            return typeof dojo._bodyLtr == "undefined" ? (dojo._bodyLtr = dojo.getComputedStyle(dojo.body()).direction == "ltr") : dojo._bodyLtr;
        };
        dojo._getIeDocumentElementOffset = function() {
            var de = dojo.doc.documentElement;
            if (dojo.isIE >= 7) {
                return {x:de.getBoundingClientRect().left,y:de.getBoundingClientRect().top};
            } else {
                return {x:dojo._isBodyLtr() || window.parent == window ? de.clientLeft : de.offsetWidth - de.clientWidth - de.clientLeft,y:de.clientTop};
            }
        };
        dojo._fixIeBiDiScrollLeft = function(_2a3) {
            if (dojo.isIE && !dojo._isBodyLtr()) {
                var de = dojo.doc.documentElement;
                return _2a3 + de.clientWidth - de.scrollWidth;
            }
            return _2a3;
        };
        dojo._abs = function(node, _2a6) {
            var _2a7 = node.ownerDocument;
            var ret = {x:0,y:0};
            var _2a9 = false;
            var db = dojo.body();
            if (dojo.isIE) {
                var _2ab = node.getBoundingClientRect();
                var _2ac = dojo._getIeDocumentElementOffset();
                ret.x = _2ab.left - _2ac.x;
                ret.y = _2ab.top - _2ac.y;
            } else {
                if (_2a7["getBoxObjectFor"]) {
                    var bo = _2a7.getBoxObjectFor(node);
                    ret.x = bo.x - _299(node, "scrollLeft");
                    ret.y = bo.y - _299(node, "scrollTop");
                } else {
                    if (node["offsetParent"]) {
                        _2a9 = true;
                        var _2ae;
                        if (dojo.isSafari && (gcs(node).position == "absolute") && (node.parentNode == db)) {
                            _2ae = db;
                        } else {
                            _2ae = db.parentNode;
                        }
                        if (node.parentNode != db) {
                            var nd = node;
                            if (dojo.isOpera) {
                                nd = db;
                            }
                            ret.x -= _299(nd, "scrollLeft");
                            ret.y -= _299(nd, "scrollTop");
                        }
                        var _2b0 = node;
                        do{
                            var n = _2b0["offsetLeft"];
                            if (!dojo.isOpera || n > 0) {
                                ret.x += isNaN(n) ? 0 : n;
                            }
                            var m = _2b0["offsetTop"];
                            ret.y += isNaN(m) ? 0 : m;
                            _2b0 = _2b0.offsetParent;
                        } while ((_2b0 != _2ae) && _2b0);
                    } else {
                        if (node["x"] && node["y"]) {
                            ret.x += isNaN(node.x) ? 0 : node.x;
                            ret.y += isNaN(node.y) ? 0 : node.y;
                        }
                    }
                }
            }
            if (_2a9 || _2a6) {
                var _2b3 = dojo._docScroll();
                var m = _2a9 ? (!_2a6 ? -1 : 0) : 1;
                ret.y += m * _2b3.y;
                ret.x += m * _2b3.x;
            }
            return ret;
        };
        dojo.coords = function(node, _2b5) {
            var n = dojo.byId(node),s = gcs(n),mb = dojo._getMarginBox(n, s);
            var abs = dojo._abs(n, _2b5);
            mb.x = abs.x;
            mb.y = abs.y;
            return mb;
        };
    })();
    dojo.hasClass = function(node, _2bb) {
        return ((" " + node.className + " ").indexOf(" " + _2bb + " ") >= 0);
    };
    dojo.addClass = function(node, _2bd) {
        var cls = node.className;
        if ((" " + cls + " ").indexOf(" " + _2bd + " ") < 0) {
            node.className = cls + (cls ? " " : "") + _2bd;
        }
    };
    dojo.removeClass = function(node, _2c0) {
        var t = dojo.trim((" " + node.className + " ").replace(" " + _2c0 + " ", " "));
        if (node.className != t) {
            node.className = t;
        }
    };
    dojo.toggleClass = function(node, _2c3, _2c4) {
        if (typeof _2c4 == "undefined") {
            _2c4 = !dojo.hasClass(node, _2c3);
        }
        dojo[_2c4 ? "addClass" : "removeClass"](node, _2c3);
    };
}
if (!dojo._hasResource["dojo._base.NodeList"]) {
    dojo._hasResource["dojo._base.NodeList"] = true;
    dojo.provide("dojo._base.NodeList");
    (function() {
        var d = dojo;
        dojo.NodeList = function() {
            var args = arguments;
            if ((args.length == 1) && (typeof args[0] == "number")) {
                this.length = parseInt(args[0]);
            } else {
                if (args.length) {
                    d.forEach(args, function(i) {
                        this.push(i);
                    }, this);
                }
            }
        };
        dojo.NodeList.prototype = new Array;
        if (d.isIE) {
            var _2c8 = function(_2c9) {
                return ("var a2 = parent." + _2c9 + "; " + "var ap = Array.prototype; " + "var a2p = a2.prototype; " + "for(var x in a2p){ ap[x] = a2p[x]; } " + "parent." + _2c9 + " = Array; ");
            };
            var scs = _2c8("dojo.NodeList");
            var _2cb = window.createPopup();
            _2cb.document.write("<script>" + scs + "</script>");
            _2cb.show(1, 1, 1, 1);
        }
        dojo.extend(dojo.NodeList, {indexOf:function(_2cc, _2cd) {
            return d.indexOf(this, _2cc, _2cd);
        },lastIndexOf:function(_2ce, _2cf) {
            var aa = d._toArray(arguments);
            aa.unshift(this);
            return d.lastIndexOf.apply(d, aa);
        },every:function(_2d1, _2d2) {
            return d.every(this, _2d1, _2d2);
        },some:function(_2d3, _2d4) {
            return d.some(this, _2d3, _2d4);
        },forEach:function(_2d5, _2d6) {
            d.forEach(this, _2d5, _2d6);
            return this;
        },map:function(func, obj) {
            return d.map(this, func, obj, d.NodeList);
        },coords:function() {
            return d.map(this, d.coords);
        },style:function(_2d9, _2da) {
            var aa = d._toArray(arguments);
            aa.unshift(this[0]);
            var s = d.style.apply(d, aa);
            return (arguments.length > 1) ? this : s;
        },styles:function(_2dd, _2de) {
            var aa = d._toArray(arguments);
            aa.unshift(null);
            var s = this.map(function(i) {
                aa[0] = i;
                return d.style.apply(d, aa);
            });
            return (arguments.length > 1) ? this : s;
        },addClass:function(_2e2) {
            return this.forEach(function(i) {
                dojo.addClass(i, _2e2);
            });
        },removeClass:function(_2e4) {
            return this.forEach(function(i) {
                dojo.removeClass(i, _2e4);
            });
        },place:function(_2e6, _2e7) {
            var item = d.query(_2e6)[0];
            _2e7 = _2e7 || "last";
            for (var x = 0; x < this.length; x++) {
                d.place(this[x], item, _2e7);
            }
            return this;
        },connect:function(_2ea, _2eb, _2ec) {
            this.forEach(function(item) {
                d.connect(item, _2ea, _2eb, _2ec);
            });
            return this;
        },orphan:function(_2ee) {
            var _2ef = (_2ee) ? d._filterQueryResult(this, _2ee) : this;
            _2ef.forEach(function(item) {
                if (item["parentNode"]) {
                    item.parentNode.removeChild(item);
                }
            });
            return _2ef;
        },adopt:function(_2f1, _2f2) {
            var item = this[0];
            return d.query(_2f1).forEach(function(ai) {
                d.place(ai, item, (_2f2 || "last"));
            });
        },query:function(_2f5) {
            _2f5 = _2f5 || "";
            var ret = new d.NodeList();
            this.forEach(function(item) {
                d.query(_2f5, item).forEach(function(_2f8) {
                    if (typeof _2f8 != "undefined") {
                        ret.push(_2f8);
                    }
                });
            });
            return ret;
        },filter:function(_2f9) {
            var _2fa = this;
            var _a = arguments;
            var r = new d.NodeList();
            var rp = function(t) {
                if (typeof t != "undefined") {
                    r.push(t);
                }
            };
            if (d.isString(_2f9)) {
                _2fa = d._filterQueryResult(this, _a[0]);
                if (_a.length == 1) {
                    return _2fa;
                }
                d.forEach(d.filter(_2fa, _a[1], _a[2]), rp);
                return r;
            }
            d.forEach(d.filter(_2fa, _a[0], _a[1]), rp);
            return r;
        },addContent:function(_2ff, _300) {
            var ta = d.doc.createElement("span");
            if (d.isString(_2ff)) {
                ta.innerHTML = _2ff;
            } else {
                ta.appendChild(_2ff);
            }
            var ct = ((_300 == "first") || (_300 == "after")) ? "lastChild" : "firstChild";
            this.forEach(function(item) {
                var tn = ta.cloneNode(true);
                while (tn[ct]) {
                    d.place(tn[ct], item, _300);
                }
            });
            return this;
        },_anim:function(_305, args) {
            var _307 = [];
            args = args || {};
            this.forEach(function(item) {
                var _309 = {node:item};
                d.mixin(_309, args);
                _307.push(d[_305](_309));
            });
            return d.fx.combine(_307);
        },fadeIn:function(args) {
            return this._anim("fadeIn", args);
        },fadeOut:function(args) {
            return this._anim("fadeOut", args);
        },animateProperty:function(args) {
            return this._anim("animateProperty", args);
        }});
        dojo.forEach(["mouseover","click","mouseout","mousemove","blur","mousedown","mouseup","mousemove","keydown","keyup","keypress"], function(evt) {
            var _oe = "on" + evt;
            dojo.NodeList.prototype[_oe] = function(a, b) {
                return this.connect(_oe, a, b);
            };
        });
    })();
}
if (!dojo._hasResource["dojo._base.query"]) {
    dojo._hasResource["dojo._base.query"] = true;
    dojo.provide("dojo._base.query");
    (function() {
        var d = dojo;
        var _312 = function(q) {
            return [q.indexOf("#"),q.indexOf("."),q.indexOf("["),q.indexOf(":")];
        };
        var _314 = function(_315, _316) {
            var ql = _315.length;
            var i = _312(_315);
            var end = ql;
            for (var x = _316; x < i.length; x++) {
                if (i[x] >= 0) {
                    if (i[x] < end) {
                        end = i[x];
                    }
                }
            }
            return (end < 0) ? ql : end;
        };
        var _31b = function(_31c) {
            var i = _312(_31c);
            if (i[0] != -1) {
                return _31c.substring(i[0] + 1, _314(_31c, 1));
            } else {
                return "";
            }
        };
        var _31e = function(_31f) {
            var _320;
            var i = _312(_31f);
            if ((i[0] == 0) || (i[1] == 0)) {
                _320 = 0;
            } else {
                _320 = _314(_31f, 0);
            }
            return ((_320 > 0) ? _31f.substr(0, _320).toLowerCase() : "*");
        };
        var _322 = function(arr) {
            var ret = -1;
            for (var x = 0; x < arr.length; x++) {
                var ta = arr[x];
                if (ta >= 0) {
                    if ((ta > ret) || (ret == -1)) {
                        ret = ta;
                    }
                }
            }
            return ret;
        };
        var _327 = function(_328) {
            var i = _312(_328);
            if (-1 == i[1]) {
                return "";
            }
            var di = i[1] + 1;
            var _32b = _322(i.slice(2));
            if (di < _32b) {
                return _328.substring(di, _32b);
            } else {
                if (-1 == _32b) {
                    return _328.substr(di);
                } else {
                    return "";
                }
            }
        };
        var _32c = [
            {
                key:"|=",
                match:function(attr, _32e) {
                    return "[contains(concat(' ',@" + attr + ",' '), ' " + _32e + "-')]";
                }
            },
            {
                key:"~=",
                match:function(attr, _330) {
                    return "[contains(concat(' ',@" + attr + ",' '), ' " + _330 + " ')]";
                }
            },
            {
                key:"^=",
                match:function(attr, _332) {
                    return "[starts-with(@" + attr + ", '" + _332 + "')]";
                }
            },
            {
                key:"*=",
                match:function(attr, _334) {
                    return "[contains(@" + attr + ", '" + _334 + "')]";
                }
            },
            {
                key:"$=",
                match:function(attr, _336) {
                    return "[substring(@" + attr + ", string-length(@" + attr + ")-" + (_336.length - 1) + ")='" + _336 + "']";
                }
            },
            {
                key:"!=",
                match:function(attr, _338) {
                    return "[not(@" + attr + "='" + _338 + "')]";
                }
            },
            {
                key:"=",
                match:function(attr, _33a) {
                    return "[@" + attr + "='" + _33a + "']";
                }
            }
        ];
        var _33b = function(_33c, _33d, _33e, _33f) {
            var _340;
            var i = _312(_33d);
            if (i[2] >= 0) {
                var _342 = _33d.indexOf("]", i[2]);
                var _343 = _33d.substring(i[2] + 1, _342);
                while (_343 && _343.length) {
                    if (_343.charAt(0) == "@") {
                        _343 = _343.slice(1);
                    }
                    _340 = null;
                    for (var x = 0; x < _33c.length; x++) {
                        var ta = _33c[x];
                        var tci = _343.indexOf(ta.key);
                        if (tci >= 0) {
                            var attr = _343.substring(0, tci);
                            var _348 = _343.substring(tci + ta.key.length);
                            if ((_348.charAt(0) == "\"") || (_348.charAt(0) == "'")) {
                                _348 = _348.substring(1, _348.length - 1);
                            }
                            _340 = ta.match(d.trim(attr), d.trim(_348));
                            break;
                        }
                    }
                    if ((!_340) && (_343.length)) {
                        _340 = _33e(_343);
                    }
                    if (_340) {
                        _33f(_340);
                    }
                    _343 = null;
                    var _349 = _33d.indexOf("[", _342);
                    if (0 <= _349) {
                        _342 = _33d.indexOf("]", _349);
                        if (0 <= _342) {
                            _343 = _33d.substring(_349 + 1, _342);
                        }
                    }
                }
            }
        };
        var _34a = function(_34b) {
            var _34c = ".";
            var _34d = _34b.split(" ");
            while (_34d.length) {
                var tqp = _34d.shift();
                var _34f;
                if (tqp == ">") {
                    _34f = "/";
                    tqp = _34d.shift();
                } else {
                    _34f = "//";
                }
                var _350 = _31e(tqp);
                _34c += _34f + _350;
                var id = _31b(tqp);
                if (id.length) {
                    _34c += "[@id='" + id + "'][1]";
                }
                var cn = _327(tqp);
                if (cn.length) {
                    var _353 = " ";
                    if (cn.charAt(cn.length - 1) == "*") {
                        _353 = "";
                        cn = cn.substr(0, cn.length - 1);
                    }
                    _34c += "[contains(concat(' ',@class,' '), ' " + cn + _353 + "')]";
                }
                _33b(_32c, tqp, function(_354) {
                    return "[@" + _354 + "]";
                }, function(_355) {
                    _34c += _355;
                });
            }
            return _34c;
        };
        var _356 = {};
        var _357 = function(path) {
            if (_356[path]) {
                return _356[path];
            }
            var doc = d.doc;
            var _35a = _34a(path);
            var tf = function(_35c) {
                var ret = [];
                var _35e;
                try {
                    _35e = doc.evaluate(_35a, _35c, null, XPathResult.ANY_TYPE, null);
                } catch(e) {
                    console.debug("failure in exprssion:", _35a, "under:", _35c);
                    console.debug(e);
                }
                var _35f = _35e.iterateNext();
                while (_35f) {
                    ret.push(_35f);
                    _35f = _35e.iterateNext();
                }
                return ret;
            };
            return _356[path] = tf;
        };
        var _360 = {};
        var _361 = {};
        var _362 = function(_363, _364) {
            if (!_363) {
                return _364;
            }
            if (!_364) {
                return _363;
            }
            return function() {
                return _363.apply(window, arguments) && _364.apply(window, arguments);
            };
        };
        var _365 = function(_366, _367, _368, idx) {
            var nidx = idx + 1;
            var _36b = (_367.length == nidx);
            var tqp = _367[idx];
            if (tqp == ">") {
                var ecn = _366.childNodes;
                if (!ecn.length) {
                    return;
                }
                nidx++;
                _36b = (_367.length == nidx);
                var tf = _36f(_367[idx + 1]);
                for (var x = 0,te; x < ecn.length,te = ecn[x]; x++) {
                    if (tf(te)) {
                        if (_36b) {
                            _368.push(te);
                        } else {
                            _365(te, _367, _368, nidx);
                        }
                    }
                }
            }
            var _372 = _373(tqp)(_366);
            if (_36b) {
                while (_372.length) {
                    _368.push(_372.shift());
                }
            } else {
                while (_372.length) {
                    _365(_372.shift(), _367, _368, nidx);
                }
            }
        };
        var _374 = function(_375, _376) {
            var ret = [];
            var x = _375.length - 1,te;
            while (te = _375[x--]) {
                _365(te, _376, ret, 0);
            }
            return ret;
        };
        var _36f = function(_37a) {
            if (_360[_37a]) {
                return _360[_37a];
            }
            var ff = null;
            var _37c = _31e(_37a);
            if (_37c != "*") {
                ff = _362(ff, function(elem) {
                    return ((elem.nodeType == 1) && (_37c == elem.tagName.toLowerCase()));
                });
            }
            var _37e = _31b(_37a);
            if (_37e.length) {
                ff = _362(ff, function(elem) {
                    return ((elem.nodeType == 1) && (elem.id == _37e));
                });
            }
            if (Math.max.apply(this, _312(_37a).slice(1)) >= 0) {
                ff = _362(ff, _380(_37a));
            }
            return _360[_37a] = ff;
        };
        var _381 = function(node) {
            var pn = node.parentNode;
            var pnc = pn.childNodes;
            var nidx = -1;
            var _386 = pn.firstChild;
            if (!_386) {
                return nidx;
            }
            var ci = node["__cachedIndex"];
            var cl = pn["__cachedLength"];
            if (((typeof cl == "number") && (cl != pnc.length)) || (typeof ci != "number")) {
                pn["__cachedLength"] = pnc.length;
                var idx = 1;
                do{
                    if (_386 === node) {
                        nidx = idx;
                    }
                    if (_386.nodeType == 1) {
                        _386["__cachedIndex"] = idx;
                        idx++;
                    }
                    _386 = _386.nextSibling;
                } while (_386);
            } else {
                nidx = ci;
            }
            return nidx;
        };
        var _38a = 0;
        var _38b = function(elem, attr) {
            var _38e = "";
            if (attr == "class") {
                return elem.className || _38e;
            }
            if (attr == "for") {
                return elem.htmlFor || _38e;
            }
            return elem.getAttribute(attr, 2) || _38e;
        };
        var _38f = [
            {
                key:"|=",
                match:function(attr, _391) {
                    var _392 = " " + _391 + "-";
                    return function(elem) {
                        var ea = " " + (elem.getAttribute(attr, 2) || "");
                        return ((ea == _391) || (ea.indexOf(_392) == 0));
                    };
                }
            },
            {
                key:"^=",
                match:function(attr, _396) {
                    return function(elem) {
                        return (_38b(elem, attr).indexOf(_396) == 0);
                    };
                }
            },
            {
                key:"*=",
                match:function(attr, _399) {
                    return function(elem) {
                        return (_38b(elem, attr).indexOf(_399) >= 0);
                    };
                }
            },
            {
                key:"~=",
                match:function(attr, _39c) {
                    var tval = " " + _39c + " ";
                    return function(elem) {
                        var ea = " " + _38b(elem, attr) + " ";
                        return (ea.indexOf(tval) >= 0);
                    };
                }
            },
            {
                key:"$=",
                match:function(attr, _3a1) {
                    var tval = " " + _3a1;
                    return function(elem) {
                        var ea = " " + _38b(elem, attr);
                        return (ea.lastIndexOf(_3a1) == (ea.length - _3a1.length));
                    };
                }
            },
            {
                key:"!=",
                match:function(attr, _3a6) {
                    return function(elem) {
                        return (_38b(elem, attr) != _3a6);
                    };
                }
            },
            {
                key:"=",
                match:function(attr, _3a9) {
                    return function(elem) {
                        return (_38b(elem, attr) == _3a9);
                    };
                }
            }
        ];
        var _3ab = [
            {
                key:"first-child",
                match:function(name, _3ad) {
                    return function(elem) {
                        if (elem.nodeType != 1) {
                            return false;
                        }
                        var fc = elem.previousSibling;
                        while (fc && (fc.nodeType != 1)) {
                            fc = fc.previousSibling;
                        }
                        return (!fc);
                    };
                }
            },
            {
                key:"last-child",
                match:function(name, _3b1) {
                    return function(elem) {
                        if (elem.nodeType != 1) {
                            return false;
                        }
                        var nc = elem.nextSibling;
                        while (nc && (nc.nodeType != 1)) {
                            nc = nc.nextSibling;
                        }
                        return (!nc);
                    };
                }
            },
            {
                key:"empty",
                match:function(name, _3b5) {
                    return function(elem) {
                        var cn = elem.childNodes;
                        var cnl = elem.childNodes.length;
                        for (var x = cnl - 1; x >= 0; x--) {
                            var nt = cn[x].nodeType;
                            if ((nt == 1) || (nt == 3)) {
                                return false;
                            }
                        }
                        return true;
                    };
                }
            },
            {
                key:"contains",
                match:function(name, _3bc) {
                    return function(elem) {
                        return (elem.innerHTML.indexOf(_3bc) >= 0);
                    };
                }
            },
            {
                key:"not",
                match:function(name, _3bf) {
                    var ntf = _36f(_3bf);
                    return function(elem) {
                        return (!ntf(elem));
                    };
                }
            },
            {
                key:"nth-child",
                match:function(name, _3c3) {
                    var pi = parseInt;
                    if (_3c3 == "odd") {
                        return function(elem) {
                            return (((_381(elem)) % 2) == 1);
                        };
                    } else {
                        if ((_3c3 == "2n") || (_3c3 == "even")) {
                            return function(elem) {
                                return ((_381(elem) % 2) == 0);
                            };
                        } else {
                            if (_3c3.indexOf("0n+") == 0) {
                                var _3c7 = pi(_3c3.substr(3));
                                return function(elem) {
                                    return (elem.parentNode.childNodes[_3c7 - 1] === elem);
                                };
                            } else {
                                if ((_3c3.indexOf("n+") > 0) && (_3c3.length > 3)) {
                                    var _3c9 = _3c3.split("n+", 2);
                                    var pred = pi(_3c9[0]);
                                    var idx = pi(_3c9[1]);
                                    return function(elem) {
                                        return ((_381(elem) % pred) == idx);
                                    };
                                } else {
                                    if (_3c3.indexOf("n") == -1) {
                                        var _3c7 = pi(_3c3);
                                        return function(elem) {
                                            return (_381(elem) == _3c7);
                                        };
                                    }
                                }
                            }
                        }
                    }
                }
            }
        ];
        var _380 = function(_3ce) {
            var _3cf = (_361[_3ce] || _360[_3ce]);
            if (_3cf) {
                return _3cf;
            }
            var ff = null;
            var i = _312(_3ce);
            if (i[0] >= 0) {
                var tn = _31e(_3ce);
                if (tn != "*") {
                    ff = _362(ff, function(elem) {
                        return (elem.tagName.toLowerCase() == tn);
                    });
                }
            }
            var _3d4;
            var _3d5 = _327(_3ce);
            if (_3d5.length) {
                var _3d6 = _3d5.charAt(_3d5.length - 1) == "*";
                if (_3d6) {
                    _3d5 = _3d5.substr(0, _3d5.length - 1);
                }
                var re = new RegExp("(?:^|\\s)" + _3d5 + (_3d6 ? ".*" : "") + "(?:\\s|$)");
                ff = _362(ff, function(elem) {
                    return re.test(elem.className);
                });
            }
            if (i[3] >= 0) {
                var _3d9 = _3ce.substr(i[3] + 1);
                var _3da = "";
                var obi = _3d9.indexOf("(");
                var cbi = _3d9.lastIndexOf(")");
                if ((0 <= obi) && (0 <= cbi) && (cbi > obi)) {
                    _3da = _3d9.substring(obi + 1, cbi);
                    _3d9 = _3d9.substr(0, obi);
                }
                _3d4 = null;
                for (var x = 0; x < _3ab.length; x++) {
                    var ta = _3ab[x];
                    if (ta.key == _3d9) {
                        _3d4 = ta.match(_3d9, _3da);
                        break;
                    }
                }
                if (_3d4) {
                    ff = _362(ff, _3d4);
                }
            }
            var _3df = (d.isIE) ? function(cond) {
                var clc = cond.toLowerCase();
                return function(elem) {
                    return elem[cond] || elem[clc];
                };
            } : function(cond) {
                return function(elem) {
                    return (elem && elem.getAttribute && elem.hasAttribute(cond));
                };
            };
            _33b(_38f, _3ce, _3df, function(_3e5) {
                ff = _362(ff, _3e5);
            });
            if (!ff) {
                ff = function() {
                    return true;
                };
            }
            return _361[_3ce] = ff;
        };
        var _3e6 = {};
        var _373 = function(_3e7, root) {
            var fHit = _3e6[_3e7];
            if (fHit) {
                return fHit;
            }
            var i = _312(_3e7);
            var id = _31b(_3e7);
            if (i[0] == 0) {
                return _3e6[_3e7] = function(root) {
                    return [d.byId(id)];
                };
            }
            var _3ed = _380(_3e7);
            var _3ee;
            if (i[0] >= 0) {
                _3ee = function(root) {
                    var te = d.byId(id);
                    if (_3ed(te)) {
                        return [te];
                    }
                };
            } else {
                var tret;
                var tn = _31e(_3e7);
                if (Math.max.apply(this, _312(_3e7)) == -1) {
                    _3ee = function(root) {
                        var ret = [];
                        var te,x = 0,tret = root.getElementsByTagName(tn);
                        while (te = tret[x++]) {
                            ret.push(te);
                        }
                        return ret;
                    };
                } else {
                    _3ee = function(root) {
                        var ret = [];
                        var te,x = 0,tret = root.getElementsByTagName(tn);
                        while (te = tret[x++]) {
                            if (_3ed(te)) {
                                ret.push(te);
                            }
                        }
                        return ret;
                    };
                }
            }
            return _3e6[_3e7] = _3ee;
        };
        var _3fb = {};
        var _3fc = {">":function(root) {
            var ret = [];
            var te,x = 0,tret = root.childNodes;
            while (te = tret[x++]) {
                if (te.nodeType == 1) {
                    ret.push(te);
                }
            }
            return ret;
        }};
        var _402 = function(_403) {
            if (0 > _403.indexOf(" ")) {
                return _373(_403);
            }
            var sqf = function(root) {
                var _406 = _403.split(" ");
                var _407;
                if (_406[0] == ">") {
                    _407 = [root];
                } else {
                    _407 = _373(_406.shift())(root);
                }
                return _374(_407, _406);
            };
            return sqf;
        };
        var _408 = ((document["evaluate"] && !d.isSafari) ? function(_409) {
            var _40a = _409.split(" ");
            if ((document["evaluate"]) && (_409.indexOf(":") == -1) && ((true))) {
                if (((_40a.length > 2) && (_409.indexOf(">") == -1)) || (_40a.length > 3) || (_409.indexOf("[") >= 0) || ((1 == _40a.length) && (0 <= _409.indexOf(".")))) {
                    return _357(_409);
                }
            }
            return _402(_409);
        } : _402);
        var _40b = function(_40c) {
            if (_3fc[_40c]) {
                return _3fc[_40c];
            }
            if (0 > _40c.indexOf(",")) {
                return _3fc[_40c] = _408(_40c);
            } else {
                var _40d = _40c.split(/\s*,\s*/);
                var tf = function(root) {
                    var _410 = 0;
                    var ret = [];
                    var tp;
                    while (tp = _40d[_410++]) {
                        ret = ret.concat(_408(tp, tp.indexOf(" "))(root));
                    }
                    return ret;
                };
                return _3fc[_40c] = tf;
            }
        };
        var _413 = 0;
        var _zip = function(arr) {
            var ret = new d.NodeList();
            if (!arr) {
                return ret;
            }
            if (arr[0]) {
                ret.push(arr[0]);
            }
            if (arr.length < 2) {
                return ret;
            }
            _413++;
            arr[0]["_zipIdx"] = _413;
            for (var x = 1,te; te = arr[x]; x++) {
                if (arr[x]["_zipIdx"] != _413) {
                    ret.push(te);
                }
                te["_zipIdx"] = _413;
            }
            return ret;
        };
        d.query = function(_419, root) {
            if (typeof _419 != "string") {
                return new d.NodeList(_419);
            }
            if (typeof root == "string") {
                root = d.byId(root);
            }
            return _zip(_40b(_419)(root || d.doc));
        };
        d._filterQueryResult = function(_41b, _41c) {
            var tnl = new d.NodeList();
            var ff = (_41c) ? _36f(_41c) : function() {
                return true;
            };
            for (var x = 0,te; te = _41b[x]; x++) {
                if (ff(te)) {
                    tnl.push(te);
                }
            }
            return tnl;
        };
    })();
}
if (!dojo._hasResource["dojo._base.xhr"]) {
    dojo._hasResource["dojo._base.xhr"] = true;
    dojo.provide("dojo._base.xhr");
    dojo.formToObject = function(_421) {
        var ret = {};
        var iq = "input[type!=file][type!=submit][type!=image][type!=reset][type!=button], select, textarea";
        dojo.query(iq, _421).filter(function(node) {
            return (!node.disabled);
        }).forEach(function(item) {
            var _in = item.name;
            var type = (item.type || "").toLowerCase();
            if ((type == "radio") || (type == "checkbox")) {
                if (item.checked) {
                    ret[_in] = item.value;
                }
            } else {
                if (item.multiple) {
                    var ria = ret[_in] = [];
                    dojo.query("option[selected]", item).forEach(function(opt) {
                        ria.push(opt.value);
                    });
                } else {
                    ret[_in] = item.value;
                    if (type == "image") {
                        ret[_in + ".x"] = ret[_in + ".y"] = ret[_in].x = ret[_in].y = 0;
                    }
                }
            }
        });
        return ret;
    };
    dojo.objectToQuery = function(map) {
        var ec = encodeURIComponent;
        var ret = "";
        var _42d = {};
        for (var x in map) {
            if (map[x] != _42d[x]) {
                if (dojo.isArray(map[x])) {
                    for (var y = 0; y < map[x].length; y++) {
                        ret += ec(x) + "=" + ec(map[x][y]) + "&";
                    }
                } else {
                    ret += ec(x) + "=" + ec(map[x]) + "&";
                }
            }
        }
        if ((ret.length) && (ret.charAt(ret.length - 1) == "&")) {
            ret = ret.substr(0, ret.length - 1);
        }
        return ret;
    };
    dojo.formToQuery = function(_430) {
        return dojo.objectToQuery(dojo.formToObject(_430));
    };
    dojo.formToJson = function(_431) {
        return dojo.toJson(dojo.formToObject(_431));
    };
    dojo.queryToObject = function(str) {
        var ret = {};
        var qp = str.split("&");
        var dc = decodeURIComponent;
        dojo.forEach(qp, function(item) {
            if (item.length) {
                var _437 = item.split("=");
                var name = dc(_437.shift());
                var val = dc(_437.join("="));
                if (dojo.isString(ret[name])) {
                    ret[name] = [ret[name]];
                }
                if (dojo.isArray(ret[name])) {
                    ret[name].push(val);
                } else {
                    ret[name] = val;
                }
            }
        });
        return ret;
    };
    dojo._blockAsync = false;
    dojo._contentHandlers = {"text":function(xhr) {
        return xhr.responseText;
    },"json":function(xhr) {
        if (!djConfig.usePlainJson) {
            console.debug("please consider using a mimetype of text/json-comment-filtered" + " to avoid potential security issues with JSON endpoints" + " (use djConfig.usePlainJson=true to turn off this message)");
        }
        return dojo.fromJson(xhr.responseText);
    },"json-comment-optional":function(xhr) {
        var _43d = xhr.responseText;
        var _43e = _43d.indexOf("/*");
        var _43f = _43d.lastIndexOf("*/");
        if ((_43e == -1) || (_43f == -1)) {
            return dojo.fromJson(xhr.responseText);
        }
        return dojo.fromJson(_43d.substring(_43e + 2, _43f));
    },"json-comment-filtered":function(xhr) {
        var _441 = xhr.responseText;
        var _442 = _441.indexOf("/*");
        var _443 = _441.lastIndexOf("*/");
        if ((_442 == -1) || (_443 == -1)) {
            console.debug("your JSON wasn't comment filtered!");
            return "";
        }
        return dojo.fromJson(_441.substring(_442 + 2, _443));
    },"javascript":function(xhr) {
        return dojo.eval(xhr.responseText);
    },"xml":function(xhr) {
        if (dojo.isIE && !xhr.responseXML) {
            dojo.forEach(["MSXML2","Microsoft","MSXML","MSXML3"], function(i) {
                try {
                    var doc = new ActiveXObject(prefixes[i] + ".XMLDOM");
                    doc.async = false;
                    doc.loadXML(xhr.responseText);
                    return doc;
                } catch(e) {
                }
            });
        } else {
            return xhr.responseXML;
        }
    }};
    (function() {
        dojo._ioSetArgs = function(args, _449, _44a, _44b) {
            var _44c = {};
            _44c.args = args;
            var _44d = null;
            if (args.form) {
                var form = dojo.byId(args.form);
                var _44f = form.getAttributeNode("action");
                _44c.url = args.url || (_44f ? _44f.value : null);
                _44d = dojo.formToObject(form);
            } else {
                _44c.url = args.url;
            }
            var _450 = [
                {}
            ];
            if (_44d) {
                _450.push(_44d);
            }
            if (args.content) {
                _450.push(args.content);
            }
            if (args.preventCache) {
                _450.push({"dojo.preventCache":new Date().valueOf()});
            }
            _44c.query = dojo.objectToQuery(dojo.mixin.apply(null, _450));
            _44c.handleAs = args.handleAs || "text";
            var d = new dojo.Deferred(_449);
            d.addCallbacks(_44a, function(_452) {
                return _44b(_452, d);
            });
            var ld = args.load;
            if (ld && dojo.isFunction(ld)) {
                d.addCallback(function(_454) {
                    return ld.call(args, _454, _44c);
                });
            }
            var err = args.error;
            if (err && dojo.isFunction(err)) {
                d.addErrback(function(_456) {
                    return err.call(args, _456, _44c);
                });
            }
            var _457 = args.handle;
            if (_457 && dojo.isFunction(_457)) {
                d.addBoth(function(_458) {
                    return _457.call(args, _458, _44c);
                });
            }
            d.ioArgs = _44c;
            return d;
        };
        var _459 = function(dfd) {
            dfd.canceled = true;
            var xhr = dfd.ioArgs.xhr;
            if (typeof xhr.abort == "function") {
                xhr.abort();
            }
        };
        var _45c = function(dfd) {
            return dojo._contentHandlers[dfd.ioArgs.handleAs](dfd.ioArgs.xhr);
        };
        var _45e = function(_45f, dfd) {
            console.debug(_45f);
            return _45f;
        };
        var _461 = function(args) {
            var dfd = dojo._ioSetArgs(args, _459, _45c, _45e);
            dfd.ioArgs.xhr = dojo._xhrObj(dfd.ioArgs.args);
            return dfd;
        };
        var _464 = null;
        var _465 = [];
        var _466 = function() {
            var now = (new Date()).getTime();
            if (!dojo._blockAsync) {
                dojo.forEach(_465, function(tif, _469) {
                    if (!tif) {
                        return;
                    }
                    var dfd = tif.dfd;
                    try {
                        if (!dfd || dfd.canceled || !tif.validCheck(dfd)) {
                            _465.splice(_469, 1);
                            return;
                        }
                        if (tif.ioCheck(dfd)) {
                            _465.splice(_469, 1);
                            tif.resHandle(dfd);
                        } else {
                            if (dfd.startTime) {
                                if (dfd.startTime + (dfd.ioArgs.args.timeout || 0) < now) {
                                    _465.splice(_469, 1);
                                    var err = new Error("timeout exceeded");
                                    err.dojoType = "timeout";
                                    dfd.errback(err);
                                    dfd.cancel();
                                }
                            }
                        }
                    } catch(e) {
                        console.debug(e);
                        dfd.errback(new Error("_watchInFlightError!"));
                    }
                });
            }
            if (!_465.length) {
                clearInterval(_464);
                _464 = null;
                return;
            }
        };
        dojo._ioCancelAll = function() {
            try {
                dojo.forEach(_465, function(i) {
                    i.dfd.cancel();
                });
            } catch(e) {
            }
        };
        if (dojo.isIE) {
            dojo.addOnUnload(dojo._ioCancelAll);
        }
        dojo._ioWatch = function(dfd, _46e, _46f, _470) {
            if (dfd.ioArgs.args.timeout) {
                dfd.startTime = (new Date()).getTime();
            }
            _465.push({dfd:dfd,validCheck:_46e,ioCheck:_46f,resHandle:_470});
            if (!_464) {
                _464 = setInterval(_466, 50);
            }
            _466();
        };
        var _471 = "application/x-www-form-urlencoded";
        var _472 = function(dfd) {
            return dfd.ioArgs.xhr.readyState;
        };
        var _474 = function(dfd) {
            return 4 == dfd.ioArgs.xhr.readyState;
        };
        var _476 = function(dfd) {
            if (dojo._isDocumentOk(dfd.ioArgs.xhr)) {
                dfd.callback(dfd);
            } else {
                dfd.errback(new Error("bad http response code:" + dfd.ioArgs.xhr.status));
            }
        };
        var _478 = function(type, dfd) {
            var _47b = dfd.ioArgs;
            var args = _47b.args;
            _47b.xhr.open(type, _47b.url, (args.sync !== true), (args.user ? args.user : undefined), (args.password ? args.password : undefined));
            if (args.headers) {
                for (var hdr in args.headers) {
                    if (hdr.toLowerCase() === "content-type" && !args.contentType) {
                        args.contentType = args.headers[hdr];
                    } else {
                        _47b.xhr.setRequestHeader(hdr, args.headers[hdr]);
                    }
                }
            }
            _47b.xhr.setRequestHeader("Content-Type", (args.contentType || _471));
            try {
                _47b.xhr.send(_47b.query);
            } catch(e) {
                dfd.cancel();
            }
            dojo._ioWatch(dfd, _472, _474, _476);
            return dfd;
        };
        dojo._ioAddQueryToUrl = function(_47e) {
            if (_47e.query.length) {
                _47e.url += (_47e.url.indexOf("?") == -1 ? "?" : "&") + _47e.query;
                _47e.query = null;
            }
        };
        dojo.xhrGet = function(args) {
            var dfd = _461(args);
            dojo._ioAddQueryToUrl(dfd.ioArgs);
            return _478("GET", dfd);
        };
        dojo.xhrPost = function(args) {
            return _478("POST", _461(args));
        };
        dojo.rawXhrPost = function(args) {
            var dfd = _461(args);
            dfd.ioArgs.query = args.postData;
            return _478("POST", dfd);
        };
        dojo.xhrPut = function(args) {
            return _478("PUT", _461(args));
        };
        dojo.rawXhrPut = function(args) {
            var dfd = _461(args);
            var _487 = dfd.ioArgs;
            if (args["putData"]) {
                _487.query = args.putData;
                args.putData = null;
            }
            return _478("PUT", dfd);
        };
        dojo.xhrDelete = function(args) {
            var dfd = _461(args);
            dojo._ioAddQueryToUrl(dfd.ioArgs);
            return _478("DELETE", dfd);
        };
        dojo.wrapForm = function(_48a) {
            throw new Error("dojo.wrapForm not yet implemented");
        };
    })();
}
if (!dojo._hasResource["dojo._base.fx"]) {
    dojo._hasResource["dojo._base.fx"] = true;
    dojo.provide("dojo._base.fx");
    dojo._Line = function(_48b, end) {
        this.start = _48b;
        this.end = end;
        this.getValue = function(n) {
            return ((this.end - this.start) * n) + this.start;
        };
    };
    dojo.declare("dojo._Animation", null, {constructor:function(args) {
        dojo.mixin(this, args);
        if (dojo.isArray(this.curve)) {
            this.curve = new dojo._Line(this.curve[0], this.curve[1]);
        }
    },curve:null,duration:1000,easing:null,repeat:0,rate:10,delay:null,beforeBegin:null,onBegin:null,onAnimate:null,onEnd:null,onPlay:null,onPause:null,onStop:null,_active:false,_paused:false,_startTime:null,_endTime:null,_timer:null,_percent:0,_startRepeatCount:0,fire:function(evt, args) {
        if (this[evt]) {
            this[evt].apply(this, args || []);
        }
        return this;
    },play:function(_491, _492) {
        if (_492) {
            clearTimeout(this._timer);
            this._active = this._paused = false;
            this._percent = 0;
        } else {
            if (this._active && !this._paused) {
                return this;
            }
        }
        this.fire("beforeBegin");
        var d = _491 || this.delay;
        if (d > 0) {
            setTimeout(dojo.hitch(this, function() {
                this.play(null, _492);
            }), d);
            return this;
        }
        this._startTime = new Date().valueOf();
        if (this._paused) {
            this._startTime -= this.duration * this._percent;
        }
        this._endTime = this._startTime + this.duration;
        this._active = true;
        this._paused = false;
        var _494 = this.curve.getValue(this._percent);
        if (!this._percent) {
            if (!this._startRepeatCount) {
                this._startRepeatCount = this.repeat;
            }
            this.fire("onBegin", [_494]);
        }
        this.fire("onPlay", [_494]);
        this._cycle();
        return this;
    },pause:function() {
        clearTimeout(this._timer);
        if (!this._active) {
            return this;
        }
        this._paused = true;
        this.fire("onPause", [this.curve.getValue(this._percent)]);
        return this;
    },gotoPercent:function(pct, _496) {
        clearTimeout(this._timer);
        this._active = this._paused = true;
        this._percent = pct * 100;
        if (_496) {
            this.play();
        }
        return this;
    },stop:function(_497) {
        if (!this._timer) {
            return;
        }
        clearTimeout(this._timer);
        if (_497) {
            this._percent = 1;
        }
        this.fire("onStop", [this.curve.getValue(this._percent)]);
        this._active = this._paused = false;
        return this;
    },status:function() {
        if (this._active) {
            return this._paused ? "paused" : "playing";
        }
        return "stopped";
    },_cycle:function() {
        clearTimeout(this._timer);
        if (this._active) {
            var curr = new Date().valueOf();
            var step = (curr - this._startTime) / (this._endTime - this._startTime);
            if (step >= 1) {
                step = 1;
            }
            this._percent = step;
            if (this.easing) {
                step = this.easing(step);
            }
            this.fire("onAnimate", [this.curve.getValue(step)]);
            if (step < 1) {
                this._timer = setTimeout(dojo.hitch(this, "_cycle"), this.rate);
            } else {
                this._active = false;
                if (this.repeat > 0) {
                    this.repeat--;
                    this.play(null, true);
                } else {
                    if (this.repeat == -1) {
                        this.play(null, true);
                    } else {
                        if (this._startRepeatCount) {
                            this.repeat = this._startRepeatCount;
                            this._startRepeatCount = 0;
                        }
                    }
                }
                this._percent = 0;
                this.fire("onEnd");
            }
        }
        return this;
    }});
    (function() {
        var _49a = function(node) {
            if (dojo.isIE) {
                var ns = node.style;
                if (!ns.zoom.length && dojo.style(node, "zoom") == "normal") {
                    ns.zoom = "1";
                }
                if (!ns.width.length && dojo.style(node, "width") == "auto") {
                    ns.width = "auto";
                }
            }
        };
        dojo._fade = function(args) {
            if (typeof args.end == "undefined") {
                throw new Error("dojo._fade needs an end value");
            }
            args.node = dojo.byId(args.node);
            var _49e = dojo.mixin({properties:{}}, args);
            var _49f = (_49e.properties.opacity = {});
            _49f.start = (typeof _49e.start == "undefined") ? function() {
                return Number(dojo.style(_49e.node, "opacity"));
            } : _49e.start;
            _49f.end = _49e.end;
            var anim = dojo.animateProperty(_49e);
            dojo.connect(anim, "beforeBegin", null, function() {
                _49a(_49e.node);
            });
            return anim;
        };
        dojo.fadeIn = function(args) {
            return dojo._fade(dojo.mixin({end:1}, args));
        };
        dojo.fadeOut = function(args) {
            return dojo._fade(dojo.mixin({end:0}, args));
        };
        if (dojo.isKhtml && !dojo.isSafari) {
            dojo._defaultEasing = function(n) {
                return parseFloat("0.5") + ((Math.sin((n + parseFloat("1.5")) * Math.PI)) / 2);
            };
        } else {
            dojo._defaultEasing = function(n) {
                return 0.5 + ((Math.sin((n + 1.5) * Math.PI)) / 2);
            };
        }
        var _4a5 = function(_4a6) {
            this._properties = _4a6;
            for (var p in _4a6) {
                var prop = _4a6[p];
                if (prop.start instanceof dojo.Color) {
                    prop.tempColor = new dojo.Color();
                }
            }
            this.getValue = function(r) {
                var ret = {};
                for (var p in this._properties) {
                    var prop = this._properties[p];
                    var _4ad = null;
                    if (prop.start instanceof dojo.Color) {
                        _4ad = dojo.blendColors(prop.start, prop.end, r, prop.tempColor).toCss();
                    } else {
                        if (!dojo.isArray(prop.start)) {
                            _4ad = ((prop.end - prop.start) * r) + prop.start + (p != "opacity" ? prop.units || "px" : "");
                        }
                    }
                    ret[p] = _4ad;
                }
                return ret;
            };
        };
        dojo.animateProperty = function(args) {
            args.node = dojo.byId(args.node);
            if (!args.easing) {
                args.easing = dojo._defaultEasing;
            }
            var anim = new dojo._Animation(args);
            dojo.connect(anim, "beforeBegin", anim, function() {
                var pm = {};
                for (var p in this.properties) {
                    var prop = pm[p] = dojo.mixin({}, this.properties[p]);
                    if (dojo.isFunction(prop.start)) {
                        prop.start = prop.start();
                    }
                    if (dojo.isFunction(prop.end)) {
                        prop.end = prop.end();
                    }
                    var _4b3 = (p.toLowerCase().indexOf("color") >= 0);

                    function getStyle(node, p) {
                        switch (p) {case "height":return node.offsetHeight;case "width":return node.offsetWidth;}
                        var v = dojo.style(node, p);
                        return (p == "opacity") ? Number(v) : parseFloat(v);
                    }

                    ;
                    if (typeof prop.end == "undefined") {
                        prop.end = getStyle(this.node, p);
                    } else {
                        if (typeof prop.start == "undefined") {
                            prop.start = getStyle(this.node, p);
                        }
                    }
                    if (_4b3) {
                        prop.start = new dojo.Color(prop.start);
                        prop.end = new dojo.Color(prop.end);
                    } else {
                        prop.start = (p == "opacity") ? Number(prop.start) : parseFloat(prop.start);
                    }
                }
                this.curve = new _4a5(pm);
            });
            dojo.connect(anim, "onAnimate", anim, function(_4b7) {
                for (var s in _4b7) {
                    dojo.style(this.node, s, _4b7[s]);
                }
            });
            return anim;
        };
    })();
}
