if(!dojo._hasResource["dojo._base.window"]){ //_hasResource checks added by build. Do not use _hasResource directly in your code. dojo._hasResource["dojo._base.window"] = true; dojo.provide("dojo._base.window"); dojo._gearsObject = function(){ // summary: // factory method to get a Google Gears plugin instance to // expose in the browser runtime environment, if present var factory; var results; var gearsObj = dojo.getObject("google.gears"); if(gearsObj){ return gearsObj; } // already defined elsewhere if(typeof GearsFactory != "undefined"){ // Firefox factory = new GearsFactory(); }else{ if(dojo.isIE){ // IE try{ factory = new ActiveXObject("Gears.Factory"); }catch(e){ // ok to squelch; there's no gears factory. move on. } }else if(navigator.mimeTypes["application/x-googlegears"]){ // Safari? factory = document.createElement("object"); factory.setAttribute("type", "application/x-googlegears"); factory.setAttribute("width", 0); factory.setAttribute("height", 0); factory.style.display = "none"; document.documentElement.appendChild(factory); } } // still nothing? if(!factory){ return null; } // define the global objects now; don't overwrite them though if they // were somehow set internally by the Gears plugin, which is on their // dev roadmap for the future dojo.setObject("google.gears.factory", factory); return dojo.getObject("google.gears"); }; /*===== dojo.isGears = { // summary: True if client is using Google Gears }; =====*/ // see if we have Google Gears installed, and if // so, make it available in the runtime environment // and in the Google standard 'google.gears' global object dojo.isGears = (!!dojo._gearsObject())||0; /*===== dojo.doc = { // summary: // Alias for the current document. 'dojo.doc' can be modified // for temporary context shifting. Also see dojo.withDoc(). // description: // Refer to dojo.doc rather // than referring to 'window.document' to ensure your code runs // correctly in managed contexts. // example: // | n.appendChild(dojo.doc.createElement('div')); } =====*/ dojo.doc = window["document"] || null; dojo.body = function(){ // summary: // Return the body element of the document // return the body object associated with dojo.doc // example: // | dojo.body().appendChild(dojo.doc.createElement('div')); // Note: document.body is not defined for a strict xhtml document // Would like to memoize this, but dojo.doc can change vi dojo.withDoc(). return dojo.doc.body || dojo.doc.getElementsByTagName("body")[0]; // Node } dojo.setContext = function(/*Object*/globalObject, /*DocumentElement*/globalDocument){ // summary: // changes the behavior of many core Dojo functions that deal with // namespace and DOM lookup, changing them to work in a new global // context (e.g., an iframe). The varibles dojo.global and dojo.doc // are modified as a result of calling this function and the result of // `dojo.body()` likewise differs. dojo.global = globalObject; dojo.doc = globalDocument; }; dojo._fireCallback = function(callback, context, cbArguments){ if(context && dojo.isString(callback)){ callback = context[callback]; } return callback.apply(context, cbArguments || [ ]); } dojo.withGlobal = function( /*Object*/globalObject, /*Function*/callback, /*Object?*/thisObject, /*Array?*/cbArguments){ // summary: // Call callback with globalObject as dojo.global and // globalObject.document as dojo.doc. If provided, globalObject // will be executed in the context of object thisObject // description: // When callback() returns or throws an error, the dojo.global // and dojo.doc will be restored to its previous state. var rval; var oldGlob = dojo.global; var oldDoc = dojo.doc; try{ dojo.setContext(globalObject, globalObject.document); rval = dojo._fireCallback(callback, thisObject, cbArguments); }finally{ dojo.setContext(oldGlob, oldDoc); } return rval; } dojo.withDoc = function( /*Object*/documentObject, /*Function*/callback, /*Object?*/thisObject, /*Array?*/cbArguments){ // summary: // Call callback with documentObject as dojo.doc. If provided, // callback will be executed in the context of object thisObject // description: // When callback() returns or throws an error, the dojo.doc will // be restored to its previous state. var rval; var oldDoc = dojo.doc; try{ dojo.doc = documentObject; rval = dojo._fireCallback(callback, thisObject, cbArguments); }finally{ dojo.doc = oldDoc; } return rval; }; }