| /* |
| Copyright (c) 2004-2006, The Dojo Foundation |
| All Rights Reserved. |
| |
| Licensed under the Academic Free License version 2.1 or above OR the |
| modified BSD license. For more information on Dojo licensing, see: |
| |
| http://dojotoolkit.org/community/licensing.shtml |
| */ |
| |
| |
| |
| dojo.provide("dojo.lang.extras"); |
| dojo.require("dojo.lang.common"); |
| dojo.lang.setTimeout = function (func, delay) { |
| var context = window, argsStart = 2; |
| if (!dojo.lang.isFunction(func)) { |
| context = func; |
| func = delay; |
| delay = arguments[2]; |
| argsStart++; |
| } |
| if (dojo.lang.isString(func)) { |
| func = context[func]; |
| } |
| var args = []; |
| for (var i = argsStart; i < arguments.length; i++) { |
| args.push(arguments[i]); |
| } |
| return dojo.global().setTimeout(function () { |
| func.apply(context, args); |
| }, delay); |
| }; |
| dojo.lang.clearTimeout = function (timer) { |
| dojo.global().clearTimeout(timer); |
| }; |
| dojo.lang.getNameInObj = function (ns, item) { |
| if (!ns) { |
| ns = dj_global; |
| } |
| for (var x in ns) { |
| if (ns[x] === item) { |
| return new String(x); |
| } |
| } |
| return null; |
| }; |
| dojo.lang.shallowCopy = function (obj, deep) { |
| var i, ret; |
| if (obj === null) { |
| return null; |
| } |
| if (dojo.lang.isObject(obj)) { |
| ret = new obj.constructor(); |
| for (i in obj) { |
| if (dojo.lang.isUndefined(ret[i])) { |
| ret[i] = deep ? dojo.lang.shallowCopy(obj[i], deep) : obj[i]; |
| } |
| } |
| } else { |
| if (dojo.lang.isArray(obj)) { |
| ret = []; |
| for (i = 0; i < obj.length; i++) { |
| ret[i] = deep ? dojo.lang.shallowCopy(obj[i], deep) : obj[i]; |
| } |
| } else { |
| ret = obj; |
| } |
| } |
| return ret; |
| }; |
| dojo.lang.firstValued = function () { |
| for (var i = 0; i < arguments.length; i++) { |
| if (typeof arguments[i] != "undefined") { |
| return arguments[i]; |
| } |
| } |
| return undefined; |
| }; |
| dojo.lang.getObjPathValue = function (objpath, context, create) { |
| with (dojo.parseObjPath(objpath, context, create)) { |
| return dojo.evalProp(prop, obj, create); |
| } |
| }; |
| dojo.lang.setObjPathValue = function (objpath, value, context, create) { |
| dojo.deprecated("dojo.lang.setObjPathValue", "use dojo.parseObjPath and the '=' operator", "0.6"); |
| if (arguments.length < 4) { |
| create = true; |
| } |
| with (dojo.parseObjPath(objpath, context, create)) { |
| if (obj && (create || (prop in obj))) { |
| obj[prop] = value; |
| } |
| } |
| }; |
| |