| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926 |
- /***
- MochiKit.DOM 1.4
- See <http://mochikit.com/> for documentation, downloads, license, etc.
- (c) 2005 Bob Ippolito. All rights Reserved.
- ***/
- if (typeof(dojo) != 'undefined') {
- dojo.provide("MochiKit.DOM");
- dojo.require("MochiKit.Base");
- }
- if (typeof(JSAN) != 'undefined') {
- JSAN.use("MochiKit.Base", []);
- }
- try {
- if (typeof(MochiKit.Base) == 'undefined') {
- throw "";
- }
- } catch (e) {
- throw "MochiKit.DOM depends on MochiKit.Base!";
- }
- if (typeof(MochiKit.DOM) == 'undefined') {
- MochiKit.DOM = {};
- }
- MochiKit.DOM.NAME = "MochiKit.DOM";
- MochiKit.DOM.VERSION = "1.4";
- MochiKit.DOM.__repr__ = function () {
- return "[" + this.NAME + " " + this.VERSION + "]";
- };
- MochiKit.DOM.toString = function () {
- return this.__repr__();
- };
- MochiKit.DOM.EXPORT = [
- "removeEmptyTextNodes",
- "formContents",
- "currentWindow",
- "currentDocument",
- "withWindow",
- "withDocument",
- "registerDOMConverter",
- "coerceToDOM",
- "createDOM",
- "createDOMFunc",
- "getNodeAttribute",
- "setNodeAttribute",
- "updateNodeAttributes",
- "appendChildNodes",
- "replaceChildNodes",
- "removeElement",
- "swapDOM",
- "BUTTON",
- "TT",
- "PRE",
- "H1",
- "H2",
- "H3",
- "BR",
- "CANVAS",
- "HR",
- "LABEL",
- "TEXTAREA",
- "FORM",
- "STRONG",
- "SELECT",
- "OPTION",
- "OPTGROUP",
- "LEGEND",
- "FIELDSET",
- "P",
- "UL",
- "OL",
- "LI",
- "TD",
- "TR",
- "THEAD",
- "TBODY",
- "TFOOT",
- "TABLE",
- "TH",
- "INPUT",
- "SPAN",
- "A",
- "DIV",
- "IMG",
- "getElement",
- "$",
- "getElementsByTagAndClassName",
- "addToCallStack",
- "addLoadEvent",
- "focusOnLoad",
- "setElementClass",
- "toggleElementClass",
- "addElementClass",
- "removeElementClass",
- "swapElementClass",
- "hasElementClass",
- "escapeHTML",
- "toHTML",
- "emitHTML",
- "scrapeText"
- ];
- MochiKit.DOM.EXPORT_OK = [
- "domConverters"
- ];
- MochiKit.DOM.DEPRECATED = [
- ['computedStyle', 'MochiKit.Style.computedStyle', '1.4'],
- ['elementDimensions', 'MochiKit.Style.getElementDimensions', '1.4'],
- ['elementPosition', 'MochiKit.Style.getElementPosition', '1.4'],
- ['hideElement', 'MochiKit.Style.hideElement', '1.4'],
- ['setElementDimensions', 'MochiKit.Style.setElementDimensions', '1.4'],
- ['setElementPosition', 'MochiKit.Style.setElementPosition', '1.4'],
- ['setDisplayForElement', 'MochiKit.Style.setDisplayForElement', '1.4'],
- ['setOpacity', 'MochiKit.Style.setOpacity', '1.4'],
- ['showElement', 'MochiKit.Style.showElement', '1.4'],
- ['Coordinates', 'MochiKit.Style.Coordinates', '1.4'], // FIXME: broken
- ['Dimensions', 'MochiKit.Style.Dimensions', '1.4'] // FIXME: broken
- ];
- MochiKit.DOM.getViewportDimensions = new Function('' +
- 'if (!MochiKit["Style"]) {' +
- ' throw new Error("This function has been deprecated and depends on MochiKit.Style.");' +
- '}' +
- 'return MochiKit.Style.getViewportDimensions.apply(this, arguments);');
- MochiKit.Base.update(MochiKit.DOM, {
- currentWindow: function () {
- return MochiKit.DOM._window;
- },
- currentDocument: function () {
- return MochiKit.DOM._document;
- },
- withWindow: function (win, func) {
- var self = MochiKit.DOM;
- var oldDoc = self._document;
- var oldWin = self._win;
- var rval;
- try {
- self._window = win;
- self._document = win.document;
- rval = func();
- } catch (e) {
- self._window = oldWin;
- self._document = oldDoc;
- throw e;
- }
- self._window = oldWin;
- self._document = oldDoc;
- return rval;
- },
- formContents: function (elem/* = document */) {
- var names = [];
- var values = [];
- var m = MochiKit.Base;
- var self = MochiKit.DOM;
- if (typeof(elem) == "undefined" || elem === null) {
- elem = self._document;
- } else {
- elem = self.getElement(elem);
- }
- m.nodeWalk(elem, function (elem) {
- var name = elem.name;
- if (m.isNotEmpty(name)) {
- var tagName = elem.nodeName;
- if (tagName == "INPUT"
- && (elem.type == "radio" || elem.type == "checkbox")
- && !elem.checked
- ) {
- return null;
- }
- if (tagName == "SELECT") {
- if (elem.type == "select-one") {
- if (elem.selectedIndex >= 0) {
- var opt = elem.options[elem.selectedIndex];
- names.push(name);
- values.push((opt.value) ? opt.value : opt.text);
- return null;
- }
- // no form elements?
- names.push(name);
- values.push("");
- return null;
- } else {
- var opts = elem.options;
- if (!opts.length) {
- names.push(name);
- values.push("");
- return null;
- }
- for (var i = 0; i < opts.length; i++) {
- var opt = opts[i];
- if (!opt.selected) {
- continue;
- }
- names.push(name);
- values.push((opt.value) ? opt.value : opt.text);
- }
- return null;
- }
- }
- if (tagName == "FORM" || tagName == "P" || tagName == "SPAN"
- || tagName == "DIV"
- ) {
- return elem.childNodes;
- }
- names.push(name);
- values.push(elem.value || '');
- return null;
- }
- return elem.childNodes;
- });
- return [names, values];
- },
- withDocument: function (doc, func) {
- var self = MochiKit.DOM;
- var oldDoc = self._document;
- var rval;
- try {
- self._document = doc;
- rval = func();
- } catch (e) {
- self._document = oldDoc;
- throw e;
- }
- self._document = oldDoc;
- return rval;
- },
- registerDOMConverter: function (name, check, wrap, /* optional */override) {
- MochiKit.DOM.domConverters.register(name, check, wrap, override);
- },
- coerceToDOM: function (node, ctx) {
- var m = MochiKit.Base;
- var im = MochiKit.Iter;
- var self = MochiKit.DOM;
- if (im) {
- var iter = im.iter;
- var repeat = im.repeat;
- var map = m.map;
- }
- var domConverters = self.domConverters;
- var coerceToDOM = arguments.callee;
- var NotFound = m.NotFound;
- while (true) {
- if (typeof(node) == 'undefined' || node === null) {
- return null;
- }
- if (typeof(node.nodeType) != 'undefined' && node.nodeType > 0) {
- return node;
- }
- if (typeof(node) == 'number' || typeof(node) == 'boolean') {
- node = node.toString();
- // FALL THROUGH
- }
- if (typeof(node) == 'string') {
- return self._document.createTextNode(node);
- }
- if (typeof(node.__dom__) == 'function') {
- node = node.__dom__(ctx);
- continue;
- }
- if (typeof(node.dom) == 'function') {
- node = node.dom(ctx);
- continue;
- }
- if (typeof(node) == 'function') {
- node = node.apply(ctx, [ctx]);
- continue;
- }
- if (im) {
- // iterable
- var iterNodes = null;
- try {
- iterNodes = iter(node);
- } catch (e) {
- // pass
- }
- if (iterNodes) {
- return map(coerceToDOM, iterNodes, repeat(ctx));
- }
- }
- // adapter
- try {
- node = domConverters.match(node, ctx);
- continue;
- } catch (e) {
- if (e != NotFound) {
- throw e;
- }
- }
- // fallback
- return self._document.createTextNode(node.toString());
- }
- // mozilla warnings aren't too bright
- return undefined;
- },
-
- setNodeAttribute: function (node, attr, value) {
- var o = {};
- o[attr] = value;
- try {
- return MochiKit.DOM.updateNodeAttributes(node, o);
- } catch (e) {
- // pass
- }
- return null;
- },
- getNodeAttribute: function (node, attr) {
- var self = MochiKit.DOM;
- var rename = self.attributeArray.renames[attr];
- node = self.getElement(node);
- try {
- if (rename) {
- return node[rename];
- }
- return node.getAttribute(attr);
- } catch (e) {
- // pass
- }
- return null;
- },
- updateNodeAttributes: function (node, attrs) {
- var elem = node;
- var self = MochiKit.DOM;
- if (typeof(node) == 'string') {
- elem = self.getElement(node);
- }
- if (attrs) {
- var updatetree = MochiKit.Base.updatetree;
- if (self.attributeArray.compliant) {
- // not IE, good.
- for (var k in attrs) {
- var v = attrs[k];
- if (typeof(v) == 'object' && typeof(elem[k]) == 'object') {
- updatetree(elem[k], v);
- } else if (k.substring(0, 2) == "on") {
- if (typeof(v) == "string") {
- v = new Function(v);
- }
- elem[k] = v;
- } else {
- elem.setAttribute(k, v);
- }
- }
- } else {
- // IE is insane in the membrane
- var renames = self.attributeArray.renames;
- for (k in attrs) {
- v = attrs[k];
- var renamed = renames[k];
- if (k == "style" && typeof(v) == "string") {
- elem.style.cssText = v;
- } else if (typeof(renamed) == "string") {
- elem[renamed] = v;
- } else if (typeof(elem[k]) == 'object'
- && typeof(v) == 'object') {
- updatetree(elem[k], v);
- } else if (k.substring(0, 2) == "on") {
- if (typeof(v) == "string") {
- v = new Function(v);
- }
- elem[k] = v;
- } else {
- elem.setAttribute(k, v);
- }
- }
- }
- }
- return elem;
- },
- appendChildNodes: function (node/*, nodes...*/) {
- var elem = node;
- var self = MochiKit.DOM;
- if (typeof(node) == 'string') {
- elem = self.getElement(node);
- }
- var nodeStack = [
- self.coerceToDOM(
- MochiKit.Base.extend(null, arguments, 1),
- elem
- )
- ];
- var concat = MochiKit.Base.concat;
- while (nodeStack.length) {
- var n = nodeStack.shift();
- if (typeof(n) == 'undefined' || n === null) {
- // pass
- } else if (typeof(n.nodeType) == 'number') {
- elem.appendChild(n);
- } else {
- nodeStack = concat(n, nodeStack);
- }
- }
- return elem;
- },
- replaceChildNodes: function (node/*, nodes...*/) {
- var elem = node;
- var self = MochiKit.DOM;
- if (typeof(node) == 'string') {
- elem = self.getElement(node);
- arguments[0] = elem;
- }
- var child;
- while ((child = elem.firstChild)) {
- elem.removeChild(child);
- }
- if (arguments.length < 2) {
- return elem;
- } else {
- return self.appendChildNodes.apply(this, arguments);
- }
- },
- createDOM: function (name, attrs/*, nodes... */) {
- var elem;
- var self = MochiKit.DOM;
- var m = MochiKit.Base;
- if (typeof(attrs) == "string" || typeof(attrs) == "number") {
- var args = m.extend([name, null], arguments, 1);
- return arguments.callee.apply(this, args);
- }
- if (typeof(name) == 'string') {
- // Internet Explorer is dumb
- if (attrs && !self.attributeArray.compliant) {
- // http://msdn.microsoft.com/workshop/author/dhtml/reference/properties/name_2.asp
- var contents = "";
- if ('name' in attrs) {
- contents += ' name="' + self.escapeHTML(attrs.name) + '"';
- }
- if (name == 'input' && 'type' in attrs) {
- contents += ' type="' + self.escapeHTML(attrs.type) + '"';
- }
- if (contents) {
- name = "<" + name + contents + ">";
- }
- }
- elem = self._document.createElement(name);
- } else {
- elem = name;
- }
- if (attrs) {
- self.updateNodeAttributes(elem, attrs);
- }
- if (arguments.length <= 2) {
- return elem;
- } else {
- var args = m.extend([elem], arguments, 2);
- return self.appendChildNodes.apply(this, args);
- }
- },
- createDOMFunc: function (/* tag, attrs, *nodes */) {
- var m = MochiKit.Base;
- return m.partial.apply(
- this,
- m.extend([MochiKit.DOM.createDOM], arguments)
- );
- },
- removeElement: function (elem) {
- var e = MochiKit.DOM.getElement(elem);
- e.parentNode.removeChild(e);
- return e;
- },
- swapDOM: function (dest, src) {
- var self = MochiKit.DOM;
- dest = self.getElement(dest);
- var parent = dest.parentNode;
- if (src) {
- src = self.getElement(src);
- parent.replaceChild(src, dest);
- } else {
- parent.removeChild(dest);
- }
- return src;
- },
- getElement: function (id) {
- var self = MochiKit.DOM;
- if (arguments.length == 1) {
- return ((typeof(id) == "string") ?
- self._document.getElementById(id) : id);
- } else {
- return MochiKit.Base.map(self.getElement, arguments);
- }
- },
- getElementsByTagAndClassName: function (tagName, className,
- /* optional */parent) {
- var self = MochiKit.DOM;
- if (typeof(tagName) == 'undefined' || tagName === null) {
- tagName = '*';
- }
- if (typeof(parent) == 'undefined' || parent === null) {
- parent = self._document;
- }
- parent = self.getElement(parent);
- var children = (parent.getElementsByTagName(tagName)
- || self._document.all);
- if (typeof(className) == 'undefined' || className === null) {
- return MochiKit.Base.extend(null, children);
- }
- var elements = [];
- for (var i = 0; i < children.length; i++) {
- var child = children[i];
- var classNames = child.className.split(' ');
- for (var j = 0; j < classNames.length; j++) {
- if (classNames[j] == className) {
- elements.push(child);
- break;
- }
- }
- }
- return elements;
- },
- _newCallStack: function (path, once) {
- var rval = function () {
- var callStack = arguments.callee.callStack;
- for (var i = 0; i < callStack.length; i++) {
- if (callStack[i].apply(this, arguments) === false) {
- break;
- }
- }
- if (once) {
- try {
- this[path] = null;
- } catch (e) {
- // pass
- }
- }
- };
- rval.callStack = [];
- return rval;
- },
- addToCallStack: function (target, path, func, once) {
- var self = MochiKit.DOM;
- var existing = target[path];
- var regfunc = existing;
- if (!(typeof(existing) == 'function'
- && typeof(existing.callStack) == "object"
- && existing.callStack !== null)) {
- regfunc = self._newCallStack(path, once);
- if (typeof(existing) == 'function') {
- regfunc.callStack.push(existing);
- }
- target[path] = regfunc;
- }
- regfunc.callStack.push(func);
- },
- addLoadEvent: function (func) {
- var self = MochiKit.DOM;
- self.addToCallStack(self._window, "onload", func, true);
-
- },
- focusOnLoad: function (element) {
- var self = MochiKit.DOM;
- self.addLoadEvent(function () {
- element = self.getElement(element);
- if (element) {
- element.focus();
- }
- });
- },
-
- setElementClass: function (element, className) {
- var self = MochiKit.DOM;
- var obj = self.getElement(element);
- if (self.attributeArray.compliant) {
- obj.setAttribute("class", className);
- } else {
- obj.setAttribute("className", className);
- }
- },
-
- toggleElementClass: function (className/*, element... */) {
- var self = MochiKit.DOM;
- for (var i = 1; i < arguments.length; i++) {
- var obj = self.getElement(arguments[i]);
- if (!self.addElementClass(obj, className)) {
- self.removeElementClass(obj, className);
- }
- }
- },
- addElementClass: function (element, className) {
- var self = MochiKit.DOM;
- var obj = self.getElement(element);
- var cls = obj.className;
- // trivial case, no className yet
- if (cls.length === 0) {
- self.setElementClass(obj, className);
- return true;
- }
- // the other trivial case, already set as the only class
- if (cls == className) {
- return false;
- }
- var classes = obj.className.split(" ");
- for (var i = 0; i < classes.length; i++) {
- // already present
- if (classes[i] == className) {
- return false;
- }
- }
- // append class
- self.setElementClass(obj, cls + " " + className);
- return true;
- },
- removeElementClass: function (element, className) {
- var self = MochiKit.DOM;
- var obj = self.getElement(element);
- var cls = obj.className;
- // trivial case, no className yet
- if (cls.length === 0) {
- return false;
- }
- // other trivial case, set only to className
- if (cls == className) {
- self.setElementClass(obj, "");
- return true;
- }
- var classes = obj.className.split(" ");
- for (var i = 0; i < classes.length; i++) {
- // already present
- if (classes[i] == className) {
- // only check sane case where the class is used once
- classes.splice(i, 1);
- self.setElementClass(obj, classes.join(" "));
- return true;
- }
- }
- // not found
- return false;
- },
- swapElementClass: function (element, fromClass, toClass) {
- var obj = MochiKit.DOM.getElement(element);
- var res = MochiKit.DOM.removeElementClass(obj, fromClass);
- if (res) {
- MochiKit.DOM.addElementClass(obj, toClass);
- }
- return res;
- },
- hasElementClass: function (element, className/*...*/) {
- var obj = MochiKit.DOM.getElement(element);
- var classes = obj.className.split(" ");
- for (var i = 1; i < arguments.length; i++) {
- var good = false;
- for (var j = 0; j < classes.length; j++) {
- if (classes[j] == arguments[i]) {
- good = true;
- break;
- }
- }
- if (!good) {
- return false;
- }
- }
- return true;
- },
- escapeHTML: function (s) {
- return s.replace(/&/g, "&"
- ).replace(/"/g, """
- ).replace(/</g, "<"
- ).replace(/>/g, ">");
- },
- toHTML: function (dom) {
- return MochiKit.DOM.emitHTML(dom).join("");
- },
- emitHTML: function (dom, /* optional */lst) {
- if (typeof(lst) == 'undefined' || lst === null) {
- lst = [];
- }
- // queue is the call stack, we're doing this non-recursively
- var queue = [dom];
- var self = MochiKit.DOM;
- var escapeHTML = self.escapeHTML;
- var attributeArray = self.attributeArray;
- while (queue.length) {
- dom = queue.pop();
- if (typeof(dom) == 'string') {
- lst.push(dom);
- } else if (dom.nodeType == 1) {
- // we're not using higher order stuff here
- // because safari has heisenbugs.. argh.
- //
- // I think it might have something to do with
- // garbage collection and function calls.
- lst.push('<' + dom.nodeName.toLowerCase());
- var attributes = [];
- var domAttr = attributeArray(dom);
- for (var i = 0; i < domAttr.length; i++) {
- var a = domAttr[i];
- attributes.push([
- " ",
- a.name,
- '="',
- escapeHTML(a.value),
- '"'
- ]);
- }
- attributes.sort();
- for (i = 0; i < attributes.length; i++) {
- var attrs = attributes[i];
- for (var j = 0; j < attrs.length; j++) {
- lst.push(attrs[j]);
- }
- }
- if (dom.hasChildNodes()) {
- lst.push(">");
- // queue is the FILO call stack, so we put the close tag
- // on first
- queue.push("</" + dom.nodeName.toLowerCase() + ">");
- var cnodes = dom.childNodes;
- for (i = cnodes.length - 1; i >= 0; i--) {
- queue.push(cnodes[i]);
- }
- } else {
- lst.push('/>');
- }
- } else if (dom.nodeType == 3) {
- lst.push(escapeHTML(dom.nodeValue));
- }
- }
- return lst;
- },
- scrapeText: function (node, /* optional */asArray) {
- var rval = [];
- (function (node) {
- var cn = node.childNodes;
- if (cn) {
- for (var i = 0; i < cn.length; i++) {
- arguments.callee.call(this, cn[i]);
- }
- }
- var nodeValue = node.nodeValue;
- if (typeof(nodeValue) == 'string') {
- rval.push(nodeValue);
- }
- })(MochiKit.DOM.getElement(node));
- if (asArray) {
- return rval;
- } else {
- return rval.join("");
- }
- },
- removeEmptyTextNodes: function (element) {
- element = MochiKit.DOM.getElement(element);
- for (var i = 0; i < element.childNodes.length; i++) {
- var node = element.childNodes[i];
- if (node.nodeType == 3 && !/\S/.test(node.nodeValue)) {
- node.parentNode.removeChild(node);
- }
- }
- },
- __new__: function (win) {
- var m = MochiKit.Base;
- if (typeof(document) != "undefined") {
- this._document = document;
- } else if (MochiKit.MockDOM) {
- this._document = MochiKit.MockDOM.document;
- }
- this._window = win;
- this.domConverters = new m.AdapterRegistry();
-
- var __tmpElement = this._document.createElement("span");
- var attributeArray;
- if (__tmpElement && __tmpElement.attributes &&
- __tmpElement.attributes.length > 0) {
- // for braindead browsers (IE) that insert extra junk
- var filter = m.filter;
- attributeArray = function (node) {
- return filter(attributeArray.ignoreAttrFilter, node.attributes);
- };
- attributeArray.ignoreAttr = {};
- var attrs = __tmpElement.attributes;
- var ignoreAttr = attributeArray.ignoreAttr;
- for (var i = 0; i < attrs.length; i++) {
- var a = attrs[i];
- ignoreAttr[a.name] = a.value;
- }
- attributeArray.ignoreAttrFilter = function (a) {
- return (attributeArray.ignoreAttr[a.name] != a.value);
- };
- attributeArray.compliant = false;
- attributeArray.renames = {
- "class": "className",
- "checked": "defaultChecked",
- "usemap": "useMap",
- "for": "htmlFor",
- "readonly": "readOnly"
- };
- } else {
- attributeArray = function (node) {
- /***
-
- Return an array of attributes for a given node,
- filtering out attributes that don't belong for
- that are inserted by "Certain Browsers".
- ***/
- return node.attributes;
- };
- attributeArray.compliant = true;
- attributeArray.renames = {};
- }
- this.attributeArray = attributeArray;
- // FIXME: this really belongs in Base, and could probably be cleaner
- var _deprecated = function(fromModule, arr) {
- var modules = arr[1].split('.');
- var str = '';
- var obj = {};
-
- str += 'if (!MochiKit.' + modules[1] + ') { throw new Error("';
- str += 'This function has been deprecated and depends on MochiKit.';
- str += modules[1] + '.");}';
- str += 'return MochiKit.' + modules[1] + '.' + arr[0];
- str += '.apply(this, arguments);';
-
- obj[modules[2]] = new Function(str);
- MochiKit.Base.update(MochiKit[fromModule], obj);
- }
- for (var i; i < MochiKit.DOM.DEPRECATED.length; i++) {
- _deprecated('DOM', MochiKit.DOM.DEPRECATED[i]);
- }
- // shorthand for createDOM syntax
- var createDOMFunc = this.createDOMFunc;
- this.UL = createDOMFunc("ul");
- this.OL = createDOMFunc("ol");
- this.LI = createDOMFunc("li");
- this.TD = createDOMFunc("td");
- this.TR = createDOMFunc("tr");
- this.TBODY = createDOMFunc("tbody");
- this.THEAD = createDOMFunc("thead");
- this.TFOOT = createDOMFunc("tfoot");
- this.TABLE = createDOMFunc("table");
- this.TH = createDOMFunc("th");
- this.INPUT = createDOMFunc("input");
- this.SPAN = createDOMFunc("span");
- this.A = createDOMFunc("a");
- this.DIV = createDOMFunc("div");
- this.IMG = createDOMFunc("img");
- this.BUTTON = createDOMFunc("button");
- this.TT = createDOMFunc("tt");
- this.PRE = createDOMFunc("pre");
- this.H1 = createDOMFunc("h1");
- this.H2 = createDOMFunc("h2");
- this.H3 = createDOMFunc("h3");
- this.BR = createDOMFunc("br");
- this.HR = createDOMFunc("hr");
- this.LABEL = createDOMFunc("label");
- this.TEXTAREA = createDOMFunc("textarea");
- this.FORM = createDOMFunc("form");
- this.P = createDOMFunc("p");
- this.SELECT = createDOMFunc("select");
- this.OPTION = createDOMFunc("option");
- this.OPTGROUP = createDOMFunc("optgroup");
- this.LEGEND = createDOMFunc("legend");
- this.FIELDSET = createDOMFunc("fieldset");
- this.STRONG = createDOMFunc("strong");
- this.CANVAS = createDOMFunc("canvas");
- this.$ = this.getElement;
- this.EXPORT_TAGS = {
- ":common": this.EXPORT,
- ":all": m.concat(this.EXPORT, this.EXPORT_OK)
- };
- m.nameFunctions(this);
- }
- });
- MochiKit.DOM.__new__(((typeof(window) == "undefined") ? this : window));
- //
- // XXX: Internet Explorer blows
- //
- if (MochiKit.__export__) {
- withWindow = MochiKit.DOM.withWindow;
- withDocument = MochiKit.DOM.withDocument;
- }
- MochiKit.Base._exportSymbols(this, MochiKit.DOM);
|