blob: 4b24d26768e97d18720b885b6265283e33d91464 [file] [log] [blame]
/*
Copyright (c) 2004-2006, The Dojo Foundation
All Rights Reserved.
Licensed under the Academic Free License version 2.1 or above OR the
modified BSD license. For more information on Dojo licensing, see:
http://dojotoolkit.org/community/licensing.shtml
*/
if (typeof window != "undefined") {
(function () {
if (djConfig.allowQueryConfig) {
var baseUrl = document.location.toString();
var params = baseUrl.split("?", 2);
if (params.length > 1) {
var paramStr = params[1];
var pairs = paramStr.split("&");
for (var x in pairs) {
var sp = pairs[x].split("=");
if ((sp[0].length > 9) && (sp[0].substr(0, 9) == "djConfig.")) {
var opt = sp[0].substr(9);
try {
djConfig[opt] = eval(sp[1]);
}
catch (e) {
djConfig[opt] = sp[1];
}
}
}
}
}
if (((djConfig["baseScriptUri"] == "") || (djConfig["baseRelativePath"] == "")) && (document && document.getElementsByTagName)) {
var scripts = document.getElementsByTagName("script");
var rePkg = /(__package__|dojo|bootstrap1)\.js([\?\.]|$)/i;
for (var i = 0; i < scripts.length; i++) {
var src = scripts[i].getAttribute("src");
if (!src) {
continue;
}
var m = src.match(rePkg);
if (m) {
var root = src.substring(0, m.index);
if (src.indexOf("bootstrap1") > -1) {
root += "../";
}
if (!this["djConfig"]) {
djConfig = {};
}
if (djConfig["baseScriptUri"] == "") {
djConfig["baseScriptUri"] = root;
}
if (djConfig["baseRelativePath"] == "") {
djConfig["baseRelativePath"] = root;
}
break;
}
}
}
var dr = dojo.render;
var drh = dojo.render.html;
var drs = dojo.render.svg;
var dua = (drh.UA = navigator.userAgent);
var dav = (drh.AV = navigator.appVersion);
var t = true;
var f = false;
drh.capable = t;
drh.support.builtin = t;
dr.ver = parseFloat(drh.AV);
dr.os.mac = dav.indexOf("Macintosh") >= 0;
dr.os.win = dav.indexOf("Windows") >= 0;
dr.os.linux = dav.indexOf("X11") >= 0;
drh.opera = dua.indexOf("Opera") >= 0;
drh.khtml = (dav.indexOf("Konqueror") >= 0) || (dav.indexOf("Safari") >= 0);
drh.safari = dav.indexOf("Safari") >= 0;
var geckoPos = dua.indexOf("Gecko");
drh.mozilla = drh.moz = (geckoPos >= 0) && (!drh.khtml);
if (drh.mozilla) {
drh.geckoVersion = dua.substring(geckoPos + 6, geckoPos + 14);
}
drh.ie = (document.all) && (!drh.opera);
drh.ie50 = drh.ie && dav.indexOf("MSIE 5.0") >= 0;
drh.ie55 = drh.ie && dav.indexOf("MSIE 5.5") >= 0;
drh.ie60 = drh.ie && dav.indexOf("MSIE 6.0") >= 0;
drh.ie70 = drh.ie && dav.indexOf("MSIE 7.0") >= 0;
var cm = document["compatMode"];
drh.quirks = (cm == "BackCompat") || (cm == "QuirksMode") || drh.ie55 || drh.ie50;
dojo.locale = dojo.locale || (drh.ie ? navigator.userLanguage : navigator.language).toLowerCase();
dr.vml.capable = drh.ie;
drs.capable = f;
drs.support.plugin = f;
drs.support.builtin = f;
var tdoc = window["document"];
var tdi = tdoc["implementation"];
if ((tdi) && (tdi["hasFeature"]) && (tdi.hasFeature("org.w3c.dom.svg", "1.0"))) {
drs.capable = t;
drs.support.builtin = t;
drs.support.plugin = f;
}
if (drh.safari) {
var tmp = dua.split("AppleWebKit/")[1];
var ver = parseFloat(tmp.split(" ")[0]);
if (ver >= 420) {
drs.capable = t;
drs.support.builtin = t;
drs.support.plugin = f;
}
} else {
}
})();
dojo.hostenv.startPackage("dojo.hostenv");
dojo.render.name = dojo.hostenv.name_ = "browser";
dojo.hostenv.searchIds = [];
dojo.hostenv._XMLHTTP_PROGIDS = ["Msxml2.XMLHTTP", "Microsoft.XMLHTTP", "Msxml2.XMLHTTP.4.0"];
dojo.hostenv.getXmlhttpObject = function () {
var http = null;
var last_e = null;
try {
http = new XMLHttpRequest();
}
catch (e) {
}
if (!http) {
for (var i = 0; i < 3; ++i) {
var progid = dojo.hostenv._XMLHTTP_PROGIDS[i];
try {
http = new ActiveXObject(progid);
}
catch (e) {
last_e = e;
}
if (http) {
dojo.hostenv._XMLHTTP_PROGIDS = [progid];
break;
}
}
}
if (!http) {
return dojo.raise("XMLHTTP not available", last_e);
}
return http;
};
dojo.hostenv._blockAsync = false;
dojo.hostenv.getText = function (uri, async_cb, fail_ok) {
if (!async_cb) {
this._blockAsync = true;
}
var http = this.getXmlhttpObject();
function isDocumentOk(http) {
var stat = http["status"];
return Boolean((!stat) || ((200 <= stat) && (300 > stat)) || (stat == 304));
}
if (async_cb) {
var _this = this, timer = null, gbl = dojo.global();
var xhr = dojo.evalObjPath("dojo.io.XMLHTTPTransport");
http.onreadystatechange = function () {
if (timer) {
gbl.clearTimeout(timer);
timer = null;
}
if (_this._blockAsync || (xhr && xhr._blockAsync)) {
timer = gbl.setTimeout(function () {
http.onreadystatechange.apply(this);
}, 10);
} else {
if (4 == http.readyState) {
if (isDocumentOk(http)) {
async_cb(http.responseText);
}
}
}
};
}
http.open("GET", uri, async_cb ? true : false);
try {
http.send(null);
if (async_cb) {
return null;
}
if (!isDocumentOk(http)) {
var err = Error("Unable to load " + uri + " status:" + http.status);
err.status = http.status;
err.responseText = http.responseText;
throw err;
}
}
catch (e) {
this._blockAsync = false;
if ((fail_ok) && (!async_cb)) {
return null;
} else {
throw e;
}
}
this._blockAsync = false;
return http.responseText;
};
dojo.hostenv.defaultDebugContainerId = "dojoDebug";
dojo.hostenv._println_buffer = [];
dojo.hostenv._println_safe = false;
dojo.hostenv.println = function (line) {
if (!dojo.hostenv._println_safe) {
dojo.hostenv._println_buffer.push(line);
} else {
try {
var console = document.getElementById(djConfig.debugContainerId ? djConfig.debugContainerId : dojo.hostenv.defaultDebugContainerId);
if (!console) {
console = dojo.body();
}
var div = document.createElement("div");
div.appendChild(document.createTextNode(line));
console.appendChild(div);
}
catch (e) {
try {
document.write("<div>" + line + "</div>");
}
catch (e2) {
window.status = line;
}
}
}
};
dojo.addOnLoad(function () {
dojo.hostenv._println_safe = true;
while (dojo.hostenv._println_buffer.length > 0) {
dojo.hostenv.println(dojo.hostenv._println_buffer.shift());
}
});
function dj_addNodeEvtHdlr(node, evtName, fp) {
var oldHandler = node["on" + evtName] || function () {
};
node["on" + evtName] = function () {
fp.apply(node, arguments);
oldHandler.apply(node, arguments);
};
return true;
}
dojo.hostenv._djInitFired = false;
function dj_load_init(e) {
dojo.hostenv._djInitFired = true;
var type = (e && e.type) ? e.type.toLowerCase() : "load";
if (arguments.callee.initialized || (type != "domcontentloaded" && type != "load")) {
return;
}
arguments.callee.initialized = true;
if (typeof (_timer) != "undefined") {
clearInterval(_timer);
delete _timer;
}
var initFunc = function () {
if (dojo.render.html.ie) {
dojo.hostenv.makeWidgets();
}
};
if (dojo.hostenv.inFlightCount == 0) {
initFunc();
dojo.hostenv.modulesLoaded();
} else {
dojo.hostenv.modulesLoadedListeners.unshift(initFunc);
}
}
if (document.addEventListener) {
if (dojo.render.html.opera || (dojo.render.html.moz && (djConfig["enableMozDomContentLoaded"] === true))) {
document.addEventListener("DOMContentLoaded", dj_load_init, null);
}
window.addEventListener("load", dj_load_init, null);
}
if (dojo.render.html.ie && dojo.render.os.win) {
document.attachEvent("onreadystatechange", function (e) {
if (document.readyState == "complete") {
dj_load_init();
}
});
}
if (/(WebKit|khtml)/i.test(navigator.userAgent)) {
var _timer = setInterval(function () {
if (/loaded|complete/.test(document.readyState)) {
dj_load_init();
}
}, 10);
}
if (dojo.render.html.ie) {
dj_addNodeEvtHdlr(window, "beforeunload", function () {
dojo.hostenv._unloading = true;
window.setTimeout(function () {
dojo.hostenv._unloading = false;
}, 0);
});
}
dj_addNodeEvtHdlr(window, "unload", function () {
dojo.hostenv.unloaded();
if ((!dojo.render.html.ie) || (dojo.render.html.ie && dojo.hostenv._unloading)) {
dojo.hostenv.unloaded();
}
});
dojo.hostenv.makeWidgets = function () {
var sids = [];
if (djConfig.searchIds && djConfig.searchIds.length > 0) {
sids = sids.concat(djConfig.searchIds);
}
if (dojo.hostenv.searchIds && dojo.hostenv.searchIds.length > 0) {
sids = sids.concat(dojo.hostenv.searchIds);
}
if ((djConfig.parseWidgets) || (sids.length > 0)) {
if (dojo.evalObjPath("dojo.widget.Parse")) {
var parser = new dojo.xml.Parse();
if (sids.length > 0) {
for (var x = 0; x < sids.length; x++) {
var tmpNode = document.getElementById(sids[x]);
if (!tmpNode) {
continue;
}
var frag = parser.parseElement(tmpNode, null, true);
dojo.widget.getParser().createComponents(frag);
}
} else {
if (djConfig.parseWidgets) {
var frag = parser.parseElement(dojo.body(), null, true);
dojo.widget.getParser().createComponents(frag);
}
}
}
}
};
dojo.addOnLoad(function () {
if (!dojo.render.html.ie) {
dojo.hostenv.makeWidgets();
}
});
try {
if (dojo.render.html.ie) {
document.namespaces.add("v", "urn:schemas-microsoft-com:vml");
document.createStyleSheet().addRule("v\\:*", "behavior:url(#default#VML)");
}
}
catch (e) {
}
dojo.hostenv.writeIncludes = function () {
};
if (!dj_undef("document", this)) {
dj_currentDocument = this.document;
}
dojo.doc = function () {
return dj_currentDocument;
};
dojo.body = function () {
return dojo.doc().body || dojo.doc().getElementsByTagName("body")[0];
};
dojo.byId = function (id, doc) {
if ((id) && ((typeof id == "string") || (id instanceof String))) {
if (!doc) {
doc = dj_currentDocument;
}
var ele = doc.getElementById(id);
if (ele && (ele.id != id) && doc.all) {
ele = null;
eles = doc.all[id];
if (eles) {
if (eles.length) {
for (var i = 0; i < eles.length; i++) {
if (eles[i].id == id) {
ele = eles[i];
break;
}
}
} else {
ele = eles;
}
}
}
return ele;
}
return id;
};
dojo.setContext = function (globalObject, globalDocument) {
dj_currentContext = globalObject;
dj_currentDocument = globalDocument;
};
dojo._fireCallback = function (callback, context, cbArguments) {
if ((context) && ((typeof callback == "string") || (callback instanceof String))) {
callback = context[callback];
}
return (context ? callback.apply(context, cbArguments || []) : callback());
};
dojo.withGlobal = function (globalObject, callback, thisObject, cbArguments) {
var rval;
var oldGlob = dj_currentContext;
var oldDoc = dj_currentDocument;
try {
dojo.setContext(globalObject, globalObject.document);
rval = dojo._fireCallback(callback, thisObject, cbArguments);
}
finally {
dojo.setContext(oldGlob, oldDoc);
}
return rval;
};
dojo.withDoc = function (documentObject, callback, thisObject, cbArguments) {
var rval;
var oldDoc = dj_currentDocument;
try {
dj_currentDocument = documentObject;
rval = dojo._fireCallback(callback, thisObject, cbArguments);
}
finally {
dj_currentDocument = oldDoc;
}
return rval;
};
}
dojo.requireIf((djConfig["isDebug"] || djConfig["debugAtAllCosts"]), "dojo.debug");
dojo.requireIf(djConfig["debugAtAllCosts"] && !window.widget && !djConfig["useXDomain"], "dojo.browser_debug");
dojo.requireIf(djConfig["debugAtAllCosts"] && !window.widget && djConfig["useXDomain"], "dojo.browser_debug_xd");