Subversion Repositories Applications.papyrus

Rev

Rev 1372 | 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
 
1422 alexandre_ 11
 
12
 
1318 alexandre_ 13
dojo.provide("dojo.lang.common");
14
dojo.lang.inherits = function (subclass, superclass) {
15
	if (!dojo.lang.isFunction(superclass)) {
16
		dojo.raise("dojo.inherits: superclass argument [" + superclass + "] must be a function (subclass: [" + subclass + "']");
17
	}
18
	subclass.prototype = new superclass();
19
	subclass.prototype.constructor = subclass;
20
	subclass.superclass = superclass.prototype;
21
	subclass["super"] = superclass.prototype;
22
};
23
dojo.lang._mixin = function (obj, props) {
24
	var tobj = {};
25
	for (var x in props) {
26
		if ((typeof tobj[x] == "undefined") || (tobj[x] != props[x])) {
27
			obj[x] = props[x];
28
		}
29
	}
30
	if (dojo.render.html.ie && (typeof (props["toString"]) == "function") && (props["toString"] != obj["toString"]) && (props["toString"] != tobj["toString"])) {
31
		obj.toString = props.toString;
32
	}
33
	return obj;
34
};
35
dojo.lang.mixin = function (obj, props) {
36
	for (var i = 1, l = arguments.length; i < l; i++) {
37
		dojo.lang._mixin(obj, arguments[i]);
38
	}
39
	return obj;
40
};
41
dojo.lang.extend = function (constructor, props) {
42
	for (var i = 1, l = arguments.length; i < l; i++) {
43
		dojo.lang._mixin(constructor.prototype, arguments[i]);
44
	}
45
	return constructor;
46
};
47
dojo.inherits = dojo.lang.inherits;
48
dojo.mixin = dojo.lang.mixin;
49
dojo.extend = dojo.lang.extend;
50
dojo.lang.find = function (array, value, identity, findLast) {
51
	if (!dojo.lang.isArrayLike(array) && dojo.lang.isArrayLike(value)) {
52
		dojo.deprecated("dojo.lang.find(value, array)", "use dojo.lang.find(array, value) instead", "0.5");
53
		var temp = array;
54
		array = value;
55
		value = temp;
56
	}
57
	var isString = dojo.lang.isString(array);
58
	if (isString) {
59
		array = array.split("");
60
	}
61
	if (findLast) {
62
		var step = -1;
63
		var i = array.length - 1;
64
		var end = -1;
65
	} else {
66
		var step = 1;
67
		var i = 0;
68
		var end = array.length;
69
	}
70
	if (identity) {
71
		while (i != end) {
72
			if (array[i] === value) {
73
				return i;
74
			}
75
			i += step;
76
		}
77
	} else {
78
		while (i != end) {
79
			if (array[i] == value) {
80
				return i;
81
			}
82
			i += step;
83
		}
84
	}
85
	return -1;
86
};
87
dojo.lang.indexOf = dojo.lang.find;
88
dojo.lang.findLast = function (array, value, identity) {
89
	return dojo.lang.find(array, value, identity, true);
90
};
91
dojo.lang.lastIndexOf = dojo.lang.findLast;
92
dojo.lang.inArray = function (array, value) {
93
	return dojo.lang.find(array, value) > -1;
94
};
95
dojo.lang.isObject = function (it) {
96
	if (typeof it == "undefined") {
97
		return false;
98
	}
99
	return (typeof it == "object" || it === null || dojo.lang.isArray(it) || dojo.lang.isFunction(it));
100
};
101
dojo.lang.isArray = function (it) {
102
	return (it && it instanceof Array || typeof it == "array");
103
};
104
dojo.lang.isArrayLike = function (it) {
105
	if ((!it) || (dojo.lang.isUndefined(it))) {
106
		return false;
107
	}
108
	if (dojo.lang.isString(it)) {
109
		return false;
110
	}
111
	if (dojo.lang.isFunction(it)) {
112
		return false;
113
	}
114
	if (dojo.lang.isArray(it)) {
115
		return true;
116
	}
117
	if ((it.tagName) && (it.tagName.toLowerCase() == "form")) {
118
		return false;
119
	}
120
	if (dojo.lang.isNumber(it.length) && isFinite(it.length)) {
121
		return true;
122
	}
123
	return false;
124
};
125
dojo.lang.isFunction = function (it) {
126
	return (it instanceof Function || typeof it == "function");
127
};
128
(function () {
129
	if ((dojo.render.html.capable) && (dojo.render.html["safari"])) {
130
		dojo.lang.isFunction = function (it) {
131
			if ((typeof (it) == "function") && (it == "[object NodeList]")) {
132
				return false;
133
			}
134
			return (it instanceof Function || typeof it == "function");
135
		};
136
	}
137
})();
138
dojo.lang.isString = function (it) {
139
	return (typeof it == "string" || it instanceof String);
140
};
141
dojo.lang.isAlien = function (it) {
142
	if (!it) {
143
		return false;
144
	}
145
	return !dojo.lang.isFunction(it) && /\{\s*\[native code\]\s*\}/.test(String(it));
146
};
147
dojo.lang.isBoolean = function (it) {
148
	return (it instanceof Boolean || typeof it == "boolean");
149
};
150
dojo.lang.isNumber = function (it) {
151
	return (it instanceof Number || typeof it == "number");
152
};
153
dojo.lang.isUndefined = function (it) {
154
	return ((typeof (it) == "undefined") && (it == undefined));
155
};
156