Subversion Repositories Applications.papyrus

Rev

Rev 1318 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
1318 alexandre_ 1
/*
2
	Copyright (c) 2004-2006, The Dojo Foundation
3
	All Rights Reserved.
4
 
5
	Licensed under the Academic Free License version 2.1 or above OR the
6
	modified BSD license. For more information on Dojo licensing, see:
7
 
8
		http://dojotoolkit.org/community/licensing.shtml
9
*/
10
 
11
if (typeof window != "undefined") {
12
	(function () {
13
		if (djConfig.allowQueryConfig) {
14
			var baseUrl = document.location.toString();
15
			var params = baseUrl.split("?", 2);
16
			if (params.length > 1) {
17
				var paramStr = params[1];
18
				var pairs = paramStr.split("&");
19
				for (var x in pairs) {
20
					var sp = pairs[x].split("=");
21
					if ((sp[0].length > 9) && (sp[0].substr(0, 9) == "djConfig.")) {
22
						var opt = sp[0].substr(9);
23
						try {
24
							djConfig[opt] = eval(sp[1]);
25
						}
26
						catch (e) {
27
							djConfig[opt] = sp[1];
28
						}
29
					}
30
				}
31
			}
32
		}
33
		if (((djConfig["baseScriptUri"] == "") || (djConfig["baseRelativePath"] == "")) && (document && document.getElementsByTagName)) {
34
			var scripts = document.getElementsByTagName("script");
35
			var rePkg = /(__package__|dojo|bootstrap1)\.js([\?\.]|$)/i;
36
			for (var i = 0; i < scripts.length; i++) {
37
				var src = scripts[i].getAttribute("src");
38
				if (!src) {
39
					continue;
40
				}
41
				var m = src.match(rePkg);
42
				if (m) {
43
					var root = src.substring(0, m.index);
44
					if (src.indexOf("bootstrap1") > -1) {
45
						root += "../";
46
					}
47
					if (!this["djConfig"]) {
48
						djConfig = {};
49
					}
50
					if (djConfig["baseScriptUri"] == "") {
51
						djConfig["baseScriptUri"] = root;
52
					}
53
					if (djConfig["baseRelativePath"] == "") {
54
						djConfig["baseRelativePath"] = root;
55
					}
56
					break;
57
				}
58
			}
59
		}
60
		var dr = dojo.render;
61
		var drh = dojo.render.html;
62
		var drs = dojo.render.svg;
63
		var dua = (drh.UA = navigator.userAgent);
64
		var dav = (drh.AV = navigator.appVersion);
65
		var t = true;
66
		var f = false;
67
		drh.capable = t;
68
		drh.support.builtin = t;
69
		dr.ver = parseFloat(drh.AV);
70
		dr.os.mac = dav.indexOf("Macintosh") >= 0;
71
		dr.os.win = dav.indexOf("Windows") >= 0;
72
		dr.os.linux = dav.indexOf("X11") >= 0;
73
		drh.opera = dua.indexOf("Opera") >= 0;
74
		drh.khtml = (dav.indexOf("Konqueror") >= 0) || (dav.indexOf("Safari") >= 0);
75
		drh.safari = dav.indexOf("Safari") >= 0;
76
		var geckoPos = dua.indexOf("Gecko");
77
		drh.mozilla = drh.moz = (geckoPos >= 0) && (!drh.khtml);
78
		if (drh.mozilla) {
79
			drh.geckoVersion = dua.substring(geckoPos + 6, geckoPos + 14);
80
		}
81
		drh.ie = (document.all) && (!drh.opera);
82
		drh.ie50 = drh.ie && dav.indexOf("MSIE 5.0") >= 0;
83
		drh.ie55 = drh.ie && dav.indexOf("MSIE 5.5") >= 0;
84
		drh.ie60 = drh.ie && dav.indexOf("MSIE 6.0") >= 0;
85
		drh.ie70 = drh.ie && dav.indexOf("MSIE 7.0") >= 0;
86
		var cm = document["compatMode"];
87
		drh.quirks = (cm == "BackCompat") || (cm == "QuirksMode") || drh.ie55 || drh.ie50;
88
		dojo.locale = dojo.locale || (drh.ie ? navigator.userLanguage : navigator.language).toLowerCase();
89
		dr.vml.capable = drh.ie;
90
		drs.capable = f;
91
		drs.support.plugin = f;
92
		drs.support.builtin = f;
93
		var tdoc = window["document"];
94
		var tdi = tdoc["implementation"];
95
		if ((tdi) && (tdi["hasFeature"]) && (tdi.hasFeature("org.w3c.dom.svg", "1.0"))) {
96
			drs.capable = t;
97
			drs.support.builtin = t;
98
			drs.support.plugin = f;
99
		}
100
		if (drh.safari) {
101
			var tmp = dua.split("AppleWebKit/")[1];
102
			var ver = parseFloat(tmp.split(" ")[0]);
103
			if (ver >= 420) {
104
				drs.capable = t;
105
				drs.support.builtin = t;
106
				drs.support.plugin = f;
107
			}
108
		} else {
109
		}
110
	})();
111
	dojo.hostenv.startPackage("dojo.hostenv");
112
	dojo.render.name = dojo.hostenv.name_ = "browser";
113
	dojo.hostenv.searchIds = [];
114
	dojo.hostenv._XMLHTTP_PROGIDS = ["Msxml2.XMLHTTP", "Microsoft.XMLHTTP", "Msxml2.XMLHTTP.4.0"];
115
	dojo.hostenv.getXmlhttpObject = function () {
116
		var http = null;
117
		var last_e = null;
118
		try {
119
			http = new XMLHttpRequest();
120
		}
121
		catch (e) {
122
		}
123
		if (!http) {
124
			for (var i = 0; i < 3; ++i) {
125
				var progid = dojo.hostenv._XMLHTTP_PROGIDS[i];
126
				try {
127
					http = new ActiveXObject(progid);
128
				}
129
				catch (e) {
130
					last_e = e;
131
				}
132
				if (http) {
133
					dojo.hostenv._XMLHTTP_PROGIDS = [progid];
134
					break;
135
				}
136
			}
137
		}
138
		if (!http) {
139
			return dojo.raise("XMLHTTP not available", last_e);
140
		}
141
		return http;
142
	};
143
	dojo.hostenv._blockAsync = false;
144
	dojo.hostenv.getText = function (uri, async_cb, fail_ok) {
145
		if (!async_cb) {
146
			this._blockAsync = true;
147
		}
148
		var http = this.getXmlhttpObject();
149
		function isDocumentOk(http) {
150
			var stat = http["status"];
151
			return Boolean((!stat) || ((200 <= stat) && (300 > stat)) || (stat == 304));
152
		}
153
		if (async_cb) {
154
			var _this = this, timer = null, gbl = dojo.global();
155
			var xhr = dojo.evalObjPath("dojo.io.XMLHTTPTransport");
156
			http.onreadystatechange = function () {
157
				if (timer) {
158
					gbl.clearTimeout(timer);
159
					timer = null;
160
				}
161
				if (_this._blockAsync || (xhr && xhr._blockAsync)) {
162
					timer = gbl.setTimeout(function () {
163
						http.onreadystatechange.apply(this);
164
					}, 10);
165
				} else {
166
					if (4 == http.readyState) {
167
						if (isDocumentOk(http)) {
168
							async_cb(http.responseText);
169
						}
170
					}
171
				}
172
			};
173
		}
174
		http.open("GET", uri, async_cb ? true : false);
175
		try {
176
			http.send(null);
177
			if (async_cb) {
178
				return null;
179
			}
180
			if (!isDocumentOk(http)) {
181
				var err = Error("Unable to load " + uri + " status:" + http.status);
182
				err.status = http.status;
183
				err.responseText = http.responseText;
184
				throw err;
185
			}
186
		}
187
		catch (e) {
188
			this._blockAsync = false;
189
			if ((fail_ok) && (!async_cb)) {
190
				return null;
191
			} else {
192
				throw e;
193
			}
194
		}
195
		this._blockAsync = false;
196
		return http.responseText;
197
	};
198
	dojo.hostenv.defaultDebugContainerId = "dojoDebug";
199
	dojo.hostenv._println_buffer = [];
200
	dojo.hostenv._println_safe = false;
201
	dojo.hostenv.println = function (line) {
202
		if (!dojo.hostenv._println_safe) {
203
			dojo.hostenv._println_buffer.push(line);
204
		} else {
205
			try {
206
				var console = document.getElementById(djConfig.debugContainerId ? djConfig.debugContainerId : dojo.hostenv.defaultDebugContainerId);
207
				if (!console) {
208
					console = dojo.body();
209
				}
210
				var div = document.createElement("div");
211
				div.appendChild(document.createTextNode(line));
212
				console.appendChild(div);
213
			}
214
			catch (e) {
215
				try {
216
					document.write("<div>" + line + "</div>");
217
				}
218
				catch (e2) {
219
					window.status = line;
220
				}
221
			}
222
		}
223
	};
224
	dojo.addOnLoad(function () {
225
		dojo.hostenv._println_safe = true;
226
		while (dojo.hostenv._println_buffer.length > 0) {
227
			dojo.hostenv.println(dojo.hostenv._println_buffer.shift());
228
		}
229
	});
230
	function dj_addNodeEvtHdlr(node, evtName, fp) {
231
		var oldHandler = node["on" + evtName] || function () {
232
		};
233
		node["on" + evtName] = function () {
234
			fp.apply(node, arguments);
235
			oldHandler.apply(node, arguments);
236
		};
237
		return true;
238
	}
239
	function dj_load_init(e) {
240
		var type = (e && e.type) ? e.type.toLowerCase() : "load";
241
		if (arguments.callee.initialized || (type != "domcontentloaded" && type != "load")) {
242
			return;
243
		}
244
		arguments.callee.initialized = true;
245
		if (typeof (_timer) != "undefined") {
246
			clearInterval(_timer);
247
			delete _timer;
248
		}
249
		var initFunc = function () {
250
			if (dojo.render.html.ie) {
251
				dojo.hostenv.makeWidgets();
252
			}
253
		};
254
		if (dojo.hostenv.inFlightCount == 0) {
255
			initFunc();
256
			dojo.hostenv.modulesLoaded();
257
		} else {
258
			dojo.hostenv.modulesLoadedListeners.unshift(initFunc);
259
		}
260
	}
261
	if (document.addEventListener) {
262
		if (dojo.render.html.opera || (dojo.render.html.moz && (djConfig["enableMozDomContentLoaded"] === true))) {
263
			document.addEventListener("DOMContentLoaded", dj_load_init, null);
264
		}
265
		window.addEventListener("load", dj_load_init, null);
266
	}
267
	if (dojo.render.html.ie && dojo.render.os.win) {
268
		document.attachEvent("onreadystatechange", function (e) {
269
			if (document.readyState == "complete") {
270
				dj_load_init();
271
			}
272
		});
273
	}
274
	if (/(WebKit|khtml)/i.test(navigator.userAgent)) {
275
		var _timer = setInterval(function () {
276
			if (/loaded|complete/.test(document.readyState)) {
277
				dj_load_init();
278
			}
279
		}, 10);
280
	}
281
	if (dojo.render.html.ie) {
282
		dj_addNodeEvtHdlr(window, "beforeunload", function () {
283
			dojo.hostenv._unloading = true;
284
			window.setTimeout(function () {
285
				dojo.hostenv._unloading = false;
286
			}, 0);
287
		});
288
	}
289
	dj_addNodeEvtHdlr(window, "unload", function () {
290
		dojo.hostenv.unloaded();
291
		if ((!dojo.render.html.ie) || (dojo.render.html.ie && dojo.hostenv._unloading)) {
292
			dojo.hostenv.unloaded();
293
		}
294
	});
295
	dojo.hostenv.makeWidgets = function () {
296
		var sids = [];
297
		if (djConfig.searchIds && djConfig.searchIds.length > 0) {
298
			sids = sids.concat(djConfig.searchIds);
299
		}
300
		if (dojo.hostenv.searchIds && dojo.hostenv.searchIds.length > 0) {
301
			sids = sids.concat(dojo.hostenv.searchIds);
302
		}
303
		if ((djConfig.parseWidgets) || (sids.length > 0)) {
304
			if (dojo.evalObjPath("dojo.widget.Parse")) {
305
				var parser = new dojo.xml.Parse();
306
				if (sids.length > 0) {
307
					for (var x = 0; x < sids.length; x++) {
308
						var tmpNode = document.getElementById(sids[x]);
309
						if (!tmpNode) {
310
							continue;
311
						}
312
						var frag = parser.parseElement(tmpNode, null, true);
313
						dojo.widget.getParser().createComponents(frag);
314
					}
315
				} else {
316
					if (djConfig.parseWidgets) {
317
						var frag = parser.parseElement(dojo.body(), null, true);
318
						dojo.widget.getParser().createComponents(frag);
319
					}
320
				}
321
			}
322
		}
323
	};
324
	dojo.addOnLoad(function () {
325
		if (!dojo.render.html.ie) {
326
			dojo.hostenv.makeWidgets();
327
		}
328
	});
329
	try {
330
		if (dojo.render.html.ie) {
331
			document.namespaces.add("v", "urn:schemas-microsoft-com:vml");
332
			document.createStyleSheet().addRule("v\\:*", "behavior:url(#default#VML)");
333
		}
334
	}
335
	catch (e) {
336
	}
337
	dojo.hostenv.writeIncludes = function () {
338
	};
339
	if (!dj_undef("document", this)) {
340
		dj_currentDocument = this.document;
341
	}
342
	dojo.doc = function () {
343
		return dj_currentDocument;
344
	};
345
	dojo.body = function () {
346
		return dojo.doc().body || dojo.doc().getElementsByTagName("body")[0];
347
	};
348
	dojo.byId = function (id, doc) {
349
		if ((id) && ((typeof id == "string") || (id instanceof String))) {
350
			if (!doc) {
351
				doc = dj_currentDocument;
352
			}
353
			var ele = doc.getElementById(id);
354
			if (ele && (ele.id != id) && doc.all) {
355
				ele = null;
356
				eles = doc.all[id];
357
				if (eles) {
358
					if (eles.length) {
359
						for (var i = 0; i < eles.length; i++) {
360
							if (eles[i].id == id) {
361
								ele = eles[i];
362
								break;
363
							}
364
						}
365
					} else {
366
						ele = eles;
367
					}
368
				}
369
			}
370
			return ele;
371
		}
372
		return id;
373
	};
374
	dojo.setContext = function (globalObject, globalDocument) {
375
		dj_currentContext = globalObject;
376
		dj_currentDocument = globalDocument;
377
	};
378
	dojo._fireCallback = function (callback, context, cbArguments) {
379
		if ((context) && ((typeof callback == "string") || (callback instanceof String))) {
380
			callback = context[callback];
381
		}
382
		return (context ? callback.apply(context, cbArguments || []) : callback());
383
	};
384
	dojo.withGlobal = function (globalObject, callback, thisObject, cbArguments) {
385
		var rval;
386
		var oldGlob = dj_currentContext;
387
		var oldDoc = dj_currentDocument;
388
		try {
389
			dojo.setContext(globalObject, globalObject.document);
390
			rval = dojo._fireCallback(callback, thisObject, cbArguments);
391
		}
392
		finally {
393
			dojo.setContext(oldGlob, oldDoc);
394
		}
395
		return rval;
396
	};
397
	dojo.withDoc = function (documentObject, callback, thisObject, cbArguments) {
398
		var rval;
399
		var oldDoc = dj_currentDocument;
400
		try {
401
			dj_currentDocument = documentObject;
402
			rval = dojo._fireCallback(callback, thisObject, cbArguments);
403
		}
404
		finally {
405
			dj_currentDocument = oldDoc;
406
		}
407
		return rval;
408
	};
409
}
410
dojo.requireIf((djConfig["isDebug"] || djConfig["debugAtAllCosts"]), "dojo.debug");
411
dojo.requireIf(djConfig["debugAtAllCosts"] && !window.widget && !djConfig["useXDomain"], "dojo.browser_debug");
412
dojo.requireIf(djConfig["debugAtAllCosts"] && !window.widget && djConfig["useXDomain"], "dojo.browser_debug_xd");
413