Subversion Repositories Applications.papyrus

Rev

Rev 1318 | 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
 
1422 alexandre_ 11
 
12
 
1318 alexandre_ 13
dojo.provide("dojo.html.common");
14
dojo.require("dojo.lang.common");
15
dojo.require("dojo.dom");
16
dojo.lang.mixin(dojo.html, dojo.dom);
17
dojo.html.body = function () {
18
	dojo.deprecated("dojo.html.body() moved to dojo.body()", "0.5");
19
	return dojo.body();
20
};
21
dojo.html.getEventTarget = function (evt) {
22
	if (!evt) {
23
		evt = dojo.global().event || {};
24
	}
25
	var t = (evt.srcElement ? evt.srcElement : (evt.target ? evt.target : null));
26
	while ((t) && (t.nodeType != 1)) {
27
		t = t.parentNode;
28
	}
29
	return t;
30
};
31
dojo.html.getViewport = function () {
32
	var _window = dojo.global();
33
	var _document = dojo.doc();
34
	var w = 0;
35
	var h = 0;
36
	if (dojo.render.html.mozilla) {
37
		w = _document.documentElement.clientWidth;
38
		h = _window.innerHeight;
39
	} else {
40
		if (!dojo.render.html.opera && _window.innerWidth) {
41
			w = _window.innerWidth;
42
			h = _window.innerHeight;
43
		} else {
44
			if (!dojo.render.html.opera && dojo.exists(_document, "documentElement.clientWidth")) {
45
				var w2 = _document.documentElement.clientWidth;
46
				if (!w || w2 && w2 < w) {
47
					w = w2;
48
				}
49
				h = _document.documentElement.clientHeight;
50
			} else {
51
				if (dojo.body().clientWidth) {
52
					w = dojo.body().clientWidth;
53
					h = dojo.body().clientHeight;
54
				}
55
			}
56
		}
57
	}
58
	return {width:w, height:h};
59
};
60
dojo.html.getScroll = function () {
61
	var _window = dojo.global();
62
	var _document = dojo.doc();
63
	var top = _window.pageYOffset || _document.documentElement.scrollTop || dojo.body().scrollTop || 0;
64
	var left = _window.pageXOffset || _document.documentElement.scrollLeft || dojo.body().scrollLeft || 0;
65
	return {top:top, left:left, offset:{x:left, y:top}};
66
};
67
dojo.html.getParentByType = function (node, type) {
68
	var _document = dojo.doc();
69
	var parent = dojo.byId(node);
70
	type = type.toLowerCase();
71
	while ((parent) && (parent.nodeName.toLowerCase() != type)) {
72
		if (parent == (_document["body"] || _document["documentElement"])) {
73
			return null;
74
		}
75
		parent = parent.parentNode;
76
	}
77
	return parent;
78
};
79
dojo.html.getAttribute = function (node, attr) {
80
	node = dojo.byId(node);
81
	if ((!node) || (!node.getAttribute)) {
82
		return null;
83
	}
84
	var ta = typeof attr == "string" ? attr : new String(attr);
85
	var v = node.getAttribute(ta.toUpperCase());
86
	if ((v) && (typeof v == "string") && (v != "")) {
87
		return v;
88
	}
89
	if (v && v.value) {
90
		return v.value;
91
	}
92
	if ((node.getAttributeNode) && (node.getAttributeNode(ta))) {
93
		return (node.getAttributeNode(ta)).value;
94
	} else {
95
		if (node.getAttribute(ta)) {
96
			return node.getAttribute(ta);
97
		} else {
98
			if (node.getAttribute(ta.toLowerCase())) {
99
				return node.getAttribute(ta.toLowerCase());
100
			}
101
		}
102
	}
103
	return null;
104
};
105
dojo.html.hasAttribute = function (node, attr) {
106
	return dojo.html.getAttribute(dojo.byId(node), attr) ? true : false;
107
};
108
dojo.html.getCursorPosition = function (e) {
109
	e = e || dojo.global().event;
110
	var cursor = {x:0, y:0};
111
	if (e.pageX || e.pageY) {
112
		cursor.x = e.pageX;
113
		cursor.y = e.pageY;
114
	} else {
115
		var de = dojo.doc().documentElement;
116
		var db = dojo.body();
117
		cursor.x = e.clientX + ((de || db)["scrollLeft"]) - ((de || db)["clientLeft"]);
118
		cursor.y = e.clientY + ((de || db)["scrollTop"]) - ((de || db)["clientTop"]);
119
	}
120
	return cursor;
121
};
122
dojo.html.isTag = function (node) {
123
	node = dojo.byId(node);
124
	if (node && node.tagName) {
125
		for (var i = 1; i < arguments.length; i++) {
126
			if (node.tagName.toLowerCase() == String(arguments[i]).toLowerCase()) {
127
				return String(arguments[i]).toLowerCase();
128
			}
129
		}
130
	}
131
	return "";
132
};
133
if (dojo.render.html.ie && !dojo.render.html.ie70) {
134
	if (window.location.href.substr(0, 6).toLowerCase() != "https:") {
135
		(function () {
136
			var xscript = dojo.doc().createElement("script");
137
			xscript.src = "javascript:'dojo.html.createExternalElement=function(doc, tag){ return doc.createElement(tag); }'";
138
			dojo.doc().getElementsByTagName("head")[0].appendChild(xscript);
139
		})();
140
	}
141
} else {
142
	dojo.html.createExternalElement = function (doc, tag) {
143
		return doc.createElement(tag);
144
	};
145
}
146
dojo.html._callDeprecated = function (inFunc, replFunc, args, argName, retValue) {
147
	dojo.deprecated("dojo.html." + inFunc, "replaced by dojo.html." + replFunc + "(" + (argName ? "node, {" + argName + ": " + argName + "}" : "") + ")" + (retValue ? "." + retValue : ""), "0.5");
148
	var newArgs = [];
149
	if (argName) {
150
		var argsIn = {};
151
		argsIn[argName] = args[1];
152
		newArgs.push(args[0]);
153
		newArgs.push(argsIn);
154
	} else {
155
		newArgs = args;
156
	}
157
	var ret = dojo.html[replFunc].apply(dojo.html, args);
158
	if (retValue) {
159
		return ret[retValue];
160
	} else {
161
		return ret;
162
	}
163
};
164
dojo.html.getViewportWidth = function () {
165
	return dojo.html._callDeprecated("getViewportWidth", "getViewport", arguments, null, "width");
166
};
167
dojo.html.getViewportHeight = function () {
168
	return dojo.html._callDeprecated("getViewportHeight", "getViewport", arguments, null, "height");
169
};
170
dojo.html.getViewportSize = function () {
171
	return dojo.html._callDeprecated("getViewportSize", "getViewport", arguments);
172
};
173
dojo.html.getScrollTop = function () {
174
	return dojo.html._callDeprecated("getScrollTop", "getScroll", arguments, null, "top");
175
};
176
dojo.html.getScrollLeft = function () {
177
	return dojo.html._callDeprecated("getScrollLeft", "getScroll", arguments, null, "left");
178
};
179
dojo.html.getScrollOffset = function () {
180
	return dojo.html._callDeprecated("getScrollOffset", "getScroll", arguments, null, "offset");
181
};
182