aboutsummaryrefslogtreecommitdiff
path: root/includes/js/dojo/_base/_loader/hostenv_browser.js
diff options
context:
space:
mode:
Diffstat (limited to 'includes/js/dojo/_base/_loader/hostenv_browser.js')
-rw-r--r--includes/js/dojo/_base/_loader/hostenv_browser.js379
1 files changed, 0 insertions, 379 deletions
diff --git a/includes/js/dojo/_base/_loader/hostenv_browser.js b/includes/js/dojo/_base/_loader/hostenv_browser.js
deleted file mode 100644
index f508830..0000000
--- a/includes/js/dojo/_base/_loader/hostenv_browser.js
+++ /dev/null
@@ -1,379 +0,0 @@
-/*=====
-dojo.isBrowser = {
- // example:
- // | if(dojo.isBrowser){ ... }
-};
-
-dojo.isFF = {
- // example:
- // | if(dojo.isFF > 1){ ... }
-};
-
-dojo.isIE = {
- // example:
- // | if(dojo.isIE > 6){
- // | // we are IE7
- // | }
-};
-
-dojo.isSafari = {
- // example:
- // | if(dojo.isSafari){ ... }
- // example:
- // Detect iPhone:
- // | if(dojo.isSafari && (navigator.userAgent.indexOf("iPhone") < 0)){
- // | // we are iPhone. iPod touch reports "iPod" above
- // | }
-};
-
-dojo = {
- // isBrowser: Boolean
- // True if the client is a web-browser
- isBrowser: true,
- // isFF: Number
- // Greater than zero if client is FireFox. 0 otherwise. Corresponds to
- // major detected FireFox version (1.5, 2, 3, etc.)
- isFF: 2,
- // isIE: Number
- // Greater than zero if client is MSIE(PC). 0 otherwise. Corresponds to
- // major detected IE version (6, 7, 8, etc.)
- isIE: 6,
- // isKhtml: Number
- // Greater than zero if client is a KTHML-derived browser (Konqueror,
- // Safari, etc.). 0 otherwise. Corresponds to major detected version.
- isKhtml: 0,
- // isMozilla: Number
- // Greater than zero if client is a Mozilla-based browser (Firefox,
- // SeaMonkey). 0 otherwise. Corresponds to major detected version.
- isMozilla: 0,
- // isOpera: Number
- // Greater than zero if client is Opera. 0 otherwise. Corresponds to
- // major detected version.
- isOpera: 0,
- // isSafari: Number
- // Greater than zero if client is Safari or iPhone. 0 otherwise.
- isSafari: 0
-}
-=====*/
-
-if(typeof window != 'undefined'){
- dojo.isBrowser = true;
- dojo._name = "browser";
-
-
- // attempt to figure out the path to dojo if it isn't set in the config
- (function(){
- var d = dojo;
- // this is a scope protection closure. We set browser versions and grab
- // the URL we were loaded from here.
-
- // grab the node we were loaded from
- if(document && document.getElementsByTagName){
- var scripts = document.getElementsByTagName("script");
- var rePkg = /dojo(\.xd)?\.js(\W|$)/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){
- // find out where we came from
- if(!d.config.baseUrl){
- d.config.baseUrl = src.substring(0, m.index);
- }
- // and find out if we need to modify our behavior
- var cfg = scripts[i].getAttribute("djConfig");
- if(cfg){
- var cfgo = eval("({ "+cfg+" })");
- for(var x in cfgo){
- dojo.config[x] = cfgo[x];
- }
- }
- break; // "first Dojo wins"
- }
- }
- }
- d.baseUrl = d.config.baseUrl;
-
- // fill in the rendering support information in dojo.render.*
- var n = navigator;
- var dua = n.userAgent;
- var dav = n.appVersion;
- var tv = parseFloat(dav);
-
- d.isOpera = (dua.indexOf("Opera") >= 0) ? tv : 0;
- // safari detection derived from:
- // http://developer.apple.com/internet/safari/faq.html#anchor2
- // http://developer.apple.com/internet/safari/uamatrix.html
- var idx = Math.max(dav.indexOf("WebKit"), dav.indexOf("Safari"), 0);
- if(idx){
- // try to grab the explicit Safari version first. If we don't get
- // one, look for 419.3+ as the indication that we're on something
- // "Safari 3-ish". Lastly, default to "Safari 2" handling.
- d.isSafari = parseFloat(dav.split("Version/")[1]) || ( ( parseFloat(dav.substr(idx+7)) >= 419.3 ) ? 3 : 2 ) || 2;
- }
- d.isAIR = (dua.indexOf("AdobeAIR") >= 0) ? 1 : 0;
- d.isKhtml = (dav.indexOf("Konqueror") >= 0 || d.isSafari) ? tv : 0;
- d.isMozilla = d.isMoz = (dua.indexOf("Gecko") >= 0 && !d.isKhtml) ? tv : 0;
- d.isFF = d.isIE = 0;
- if(d.isMoz){
- d.isFF = parseFloat(dua.split("Firefox/")[1]) || 0;
- }
- if(document.all && !d.isOpera){
- d.isIE = parseFloat(dav.split("MSIE ")[1]) || 0;
- }
-
- //Workaround to get local file loads of dojo to work on IE 7
- //by forcing to not use native xhr.
- if(dojo.isIE && window.location.protocol === "file:"){
- dojo.config.ieForceActiveXXhr=true;
- }
-
- var cm = document.compatMode;
- d.isQuirks = cm == "BackCompat" || cm == "QuirksMode" || d.isIE < 6;
-
- // TODO: is the HTML LANG attribute relevant?
- d.locale = dojo.config.locale || (d.isIE ? n.userLanguage : n.language).toLowerCase();
-
- // These are in order of decreasing likelihood; this will change in time.
- d._XMLHTTP_PROGIDS = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'];
-
- d._xhrObj = function(){
- // summary:
- // does the work of portably generating a new XMLHTTPRequest
- // object.
- var http = null;
- var last_e = null;
- if(!dojo.isIE || !dojo.config.ieForceActiveXXhr){
- try{ http = new XMLHttpRequest(); }catch(e){}
- }
- if(!http){
- for(var i=0; i<3; ++i){
- var progid = d._XMLHTTP_PROGIDS[i];
- try{
- http = new ActiveXObject(progid);
- }catch(e){
- last_e = e;
- }
-
- if(http){
- d._XMLHTTP_PROGIDS = [progid]; // so faster next time
- break;
- }
- }
- }
-
- if(!http){
- throw new Error("XMLHTTP not available: "+last_e);
- }
-
- return http; // XMLHTTPRequest instance
- }
-
- d._isDocumentOk = function(http){
- var stat = http.status || 0;
- return (stat >= 200 && stat < 300) || // Boolean
- stat == 304 || // allow any 2XX response code
- stat == 1223 || // get it out of the cache
- (!stat && (location.protocol=="file:" || location.protocol=="chrome:") ); // Internet Explorer mangled the status code
- }
-
- //See if base tag is in use.
- //This is to fix http://trac.dojotoolkit.org/ticket/3973,
- //but really, we need to find out how to get rid of the dojo._Url reference
- //below and still have DOH work with the dojo.i18n test following some other
- //test that uses the test frame to load a document (trac #2757).
- //Opera still has problems, but perhaps a larger issue of base tag support
- //with XHR requests (hasBase is true, but the request is still made to document
- //path, not base path).
- var owloc = window.location+"";
- var base = document.getElementsByTagName("base");
- var hasBase = (base && base.length > 0);
-
- d._getText = function(/*URI*/ uri, /*Boolean*/ fail_ok){
- // summary: Read the contents of the specified uri and return those contents.
- // uri:
- // A relative or absolute uri. If absolute, it still must be in
- // the same "domain" as we are.
- // fail_ok:
- // Default false. If fail_ok and loading fails, return null
- // instead of throwing.
- // returns: The response text. null is returned when there is a
- // failure and failure is okay (an exception otherwise)
-
- // alert("_getText: " + uri);
-
- // NOTE: must be declared before scope switches ie. this._xhrObj()
- var http = this._xhrObj();
-
- if(!hasBase && dojo._Url){
- uri = (new dojo._Url(owloc, uri)).toString();
- }
- /*
- console.debug("_getText:", uri);
- console.debug(window.location+"");
- alert(uri);
- */
-
- if(d.config.cacheBust){
- uri += (uri.indexOf("?") == -1 ? "?" : "&") + String(d.config.cacheBust).replace(/\W+/g,"");
- }
-
- http.open('GET', uri, false);
- try{
- http.send(null);
- // alert(http);
- if(!d._isDocumentOk(http)){
- var err = Error("Unable to load "+uri+" status:"+ http.status);
- err.status = http.status;
- err.responseText = http.responseText;
- throw err;
- }
- }catch(e){
- if(fail_ok){ return null; } // null
- // rethrow the exception
- throw e;
- }
- return http.responseText; // String
- }
- })();
-
- dojo._initFired = false;
- // BEGIN DOMContentLoaded, from Dean Edwards (http://dean.edwards.name/weblog/2006/06/again/)
- dojo._loadInit = function(e){
- dojo._initFired = true;
- // allow multiple calls, only first one will take effect
- // A bug in khtml calls events callbacks for document for event which isnt supported
- // for example a created contextmenu event calls DOMContentLoaded, workaround
- var type = (e && e.type) ? e.type.toLowerCase() : "load";
- if(arguments.callee.initialized || (type != "domcontentloaded" && type != "load")){ return; }
- arguments.callee.initialized = true;
- if("_khtmlTimer" in dojo){
- clearInterval(dojo._khtmlTimer);
- delete dojo._khtmlTimer;
- }
-
- if(dojo._inFlightCount == 0){
- dojo._modulesLoaded();
- }
- }
-
- dojo._fakeLoadInit = function(){
- dojo._loadInit({type: "load"});
- }
-
- if(!dojo.config.afterOnLoad){
- // START DOMContentLoaded
- // Mozilla and Opera 9 expose the event we could use
- if(document.addEventListener){
- // NOTE:
- // due to a threading issue in Firefox 2.0, we can't enable
- // DOMContentLoaded on that platform. For more information, see:
- // http://trac.dojotoolkit.org/ticket/1704
- if(dojo.isOpera || dojo.isFF >= 3 || (dojo.isMoz && dojo.config.enableMozDomContentLoaded === true)){
- document.addEventListener("DOMContentLoaded", dojo._loadInit, null);
- }
-
- // mainly for Opera 8.5, won't be fired if DOMContentLoaded fired already.
- // also used for Mozilla because of trac #1640
- window.addEventListener("load", dojo._loadInit, null);
- }
-
- if(dojo.isAIR){
- window.addEventListener("load", dojo._loadInit, null);
- }else if(/(WebKit|khtml)/i.test(navigator.userAgent)){ // sniff
- dojo._khtmlTimer = setInterval(function(){
- if(/loaded|complete/.test(document.readyState)){
- dojo._loadInit(); // call the onload handler
- }
- }, 10);
- }
- // END DOMContentLoaded
- }
-
- (function(){
- var _w = window;
- var _handleNodeEvent = function(/*String*/evtName, /*Function*/fp){
- // summary:
- // non-destructively adds the specified function to the node's
- // evtName handler.
- // evtName: should be in the form "onclick" for "onclick" handlers.
- // Make sure you pass in the "on" part.
- var oldHandler = _w[evtName] || function(){};
- _w[evtName] = function(){
- fp.apply(_w, arguments);
- oldHandler.apply(_w, arguments);
- };
- };
-
- if(dojo.isIE){
- // for Internet Explorer. readyState will not be achieved on init
- // call, but dojo doesn't need it however, we'll include it
- // because we don't know if there are other functions added that
- // might. Note that this has changed because the build process
- // strips all comments -- including conditional ones.
- if(!dojo.config.afterOnLoad){
- document.write('<scr'+'ipt defer src="//:" '
- + 'onreadystatechange="if(this.readyState==\'complete\'){' + dojo._scopeName + '._loadInit();}">'
- + '</scr'+'ipt>'
- );
- }
-
- // IE WebControl hosted in an application can fire "beforeunload" and "unload"
- // events when control visibility changes, causing Dojo to unload too soon. The
- // following code fixes the problem
- // Reference: http://support.microsoft.com/default.aspx?scid=kb;en-us;199155
- var _unloading = true;
- _handleNodeEvent("onbeforeunload", function(){
- _w.setTimeout(function(){ _unloading = false; }, 0);
- });
- _handleNodeEvent("onunload", function(){
- if(_unloading){ dojo.unloaded(); }
- });
-
- try{
- document.namespaces.add("v","urn:schemas-microsoft-com:vml");
- document.createStyleSheet().addRule("v\\:*", "behavior:url(#default#VML)");
- }catch(e){}
- }else{
- // FIXME: dojo.unloaded requires dojo scope, so using anon function wrapper.
- _handleNodeEvent("onbeforeunload", function() { dojo.unloaded(); });
- }
-
- })();
-
- /*
- OpenAjax.subscribe("OpenAjax", "onload", function(){
- if(dojo._inFlightCount == 0){
- dojo._modulesLoaded();
- }
- });
-
- OpenAjax.subscribe("OpenAjax", "onunload", function(){
- dojo.unloaded();
- });
- */
-} //if (typeof window != 'undefined')
-
-//Register any module paths set up in djConfig. Need to do this
-//in the hostenvs since hostenv_browser can read djConfig from a
-//script tag's attribute.
-(function(){
- var mp = dojo.config["modulePaths"];
- if(mp){
- for(var param in mp){
- dojo.registerModulePath(param, mp[param]);
- }
- }
-})();
-
-//Load debug code if necessary.
-if(dojo.config.isDebug){
- dojo.require("dojo._firebug.firebug");
-}
-
-if(dojo.config.debugAtAllCosts){
- dojo.config.useXDomain = true;
- dojo.require("dojo._base._loader.loader_xd");
- dojo.require("dojo._base._loader.loader_debug");
- dojo.require("dojo.i18n");
-}