/* Copyright (c) 2010, Yahoo! Inc. All rights reserved. Code licensed under the BSD License: http://developer.yahoo.com/yui/license.html version: 3.3.0 build: 3167 */ YUI.add('compat', function(Y) { /*global YAHOO*/ /*global YUI*/ /*global YUI_config*/ var COMPAT_ARG = '~yui|2|compat~', o, L; if (window.YAHOO != YUI) { // get any existing YAHOO obj props o = (window.YAHOO) ? YUI.merge(window.YAHOO) : null; // Make the YUI global the YAHOO global window.YAHOO = YUI; // augment old YAHOO props if (o) { Y.mix(Y, o); } } // add old namespaces Y.namespace("util", "widget", "example"); // case/location change Y.env = (Y.env) ? Y.mix(Y.env, Y.Env) : Y.Env; Y.lang = (Y.lang) ? Y.mix(Y.lang, Y.Lang) : Y.Lang; Y.env.ua = Y.UA; // support Y.register Y.mix(Y.env, { modules: [], listeners: [], getVersion: function(name) { return this.Env.modules[name] || null; } }); L = Y.lang; // add old lang properties Y.mix(L, { augmentObject: function(r, s) { var a = arguments, wl = (a.length > 2) ? Y.Array(a, 2, true) : null, ov = (wl), args = [r, s, ov]; if (wl && wl[0] !== true) { args.push(wl); } return Y.mix.apply(Y, args); }, augmentProto: function(r, s) { var a = arguments, wl = (a.length > 2) ? Y.Array(a, 2, true) : null, ov = (wl), args = [r, s, ov]; return Y.augment.apply(Y, args); }, // extend: Y.bind(Y.extend, Y), extend: Y.extend, // merge: Y.bind(Y.merge, Y) merge: Y.merge }, true); L.augment = L.augmentProto; L.hasOwnProperty = function(o, k) { return (o.hasOwnProperty(k)); }; Y.augmentProto = L.augmentProto; // add register function Y.mix(Y, { register: function(name, mainClass, data) { var mods = Y.Env.modules; if (!mods[name]) { mods[name] = { versions:[], builds:[] }; } var m=mods[name],v=data.version,b=data.build,ls=Y.Env.listeners; m.name = name; m.version = v; m.build = b; m.versions.push(v); m.builds.push(b); m.mainClass = mainClass; // fire the module load listeners for (var i=0;i *', node, true); }, get: function(el) { if (el) { if (el.nodeType || el.item) { // Node, or NodeList return el; } if (typeof el === 'string') { // id return document.getElementById(el); } if ('length' in el) { // array-like var c = []; for (var i = 0, len = el.length; i < len; ++i) { c[c.length] = Dom.get(el[i]); } return c; } return el; // some other object, just pass it back } return null; }, isAncestor: function(haystack, needle) { return YUI.DOM.contains(Dom.get(haystack), Dom.get(needle)); }, inDocument: function(el) { return Dom.isAncestor(Y.config.doc.documentElement, el); }, batch: function(el, method, o, override, args) { el = (el && (el.tagName || el.item)) ? el : Dom.get(el); // skip get() when possible if (!el || !method) { return false; } if (args) { args = Y.Array(args); } var scope = (override) ? o : window; var apply = function(el) { if (args) { var tmp = slice.call(args); tmp.unshift(el); return method.apply(scope, tmp); } else { return method.call(scope, el, o); } }; if (el.tagName || el.length === undefined) { // element or not array-like return apply(el); } var collection = []; for (var i = 0, len = el.length; i < len; ++i) { collection[collection.length] = apply(el[i]); } return collection; }, // 2.x returns false if already present _addClass: function(el, className) { if ( YUI.DOM.hasClass(el, className) ) { return false; } YUI.DOM.addClass(el, className); return true; }, // 2.x returns false if not present _removeClass: function(el, className) { if ( !YUI.DOM.hasClass(el, className) ) { return false; } YUI.DOM.removeClass(el, className); return true; }, // 2.x returns false if no newClass or same as oldClass _replaceClass: function(el, oldClass, newClass) { if (!newClass || oldClass === newClass) { return false; } YUI.DOM.replaceClass(el, oldClass, newClass); return true; }, getElementsByClassName: function(className, tag, root) { tag = tag || '*'; root = (root) ? Dom.get(root) : Y.config.doc; var nodes = []; if (root) { nodes = Y.Selector.query(tag + '.' + className, root); } return nodes; }, getElementsBy: function(method, tag, root) { tag = tag || '*'; root = (root) ? Dom.get(root) : null || document; var nodes = Y.Selector.query(tag, root); return nodes; }, getViewportWidth: YUI.DOM.winWidth, getViewportHeight: YUI.DOM.winHeight, getDocumentWidth: YUI.DOM.docWidth, getDocumentHeight: YUI.DOM.docHeight, getDocumentScrollTop: YUI.DOM.docScrollY, getDocumentScrollLeft: YUI.DOM.docScrollX, _guid: function(el, prefix) { prefix = prefix || 'yui-gen'; Dom._id_counter = Dom._id_counter || 0; if (el && el.id) { // do not override existing ID return el.id; } var id = prefix + Dom._id_counter++; if (el) { el.id = id; } return id; }, _region: function(el) { if ( (el.parentNode === null || el.offsetParent === null || YUI.DOM.getStyle(el, 'display') == 'none') && el != el.ownerDocument.body) { return false; } return YUI.DOM.region(el); }, _ancestorByClass: function(element, className) { return YUI.DOM.ancestor(element, function(el) { return YUI.DOM.hasClass(el, className); }); }, _ancestorByTag: function(element, tag) { tag = tag.toUpperCase(); return YUI.DOM.ancestor(element, function(el) { return el.tagName.toUpperCase() === tag; }); } }; var wrap = function(fn, name) { Dom[name] = function() { var args = slice.call(arguments); args[0] = Dom.get(args[0]); return fn.apply(Dom, args); }; }; var wrapped = { getAncestorBy: YUI.DOM.ancestor, getAncestorByClassName: Dom._ancestorByClass, getAncestorByTagName: Dom._ancestorByTag, getPreviousSiblingBy: YUI.DOM.previous, getPreviousSibling: YUI.DOM.previous, getNextSiblingBy: YUI.DOM.next, getNextSibling: YUI.DOM.next, getFirstChildBy: Dom._firstChild, getFirstChild: Dom._firstChild, getLastChildBy: YUI.DOM.lastChild, getLastChild: YUI.DOM.lastChild, getChildrenBy: YUI.DOM.children, getChildren: YUI.DOM.children, insertBefore: function(newNode, refNode) { YUI.DOM.insertBefore(Dom.get(newNode), Dom.get(refNode)); }, insertAfter: function(newNode, refNode) { YUI.DOM.insertAfter(Dom.get(newNode), Dom.get(refNode)); } }; Y.each(wrapped, wrap); var batched = { getStyle: YUI.DOM.getStyle, setStyle: YUI.DOM.setStyle, getXY: YUI.DOM.getXY, setXY: YUI.DOM.setXY, getX: YUI.DOM.getX, getY: YUI.DOM.getY, setX: YUI.DOM.setX, setY: YUI.DOM.setY, getRegion: Dom._region, hasClass: YUI.DOM.hasClass, addClass: Dom._addClass, removeClass: Dom._removeClass, replaceClass: Dom._replaceClass, generateId: Dom._guid }; Y.each(batched, function(v, n) { Dom[n] = function(el) { var args = slice.call(arguments, 1); return Dom.batch(el, v, null, null, args); }; }); Y.util.Dom = Dom; YAHOO.util.Region = function(t, r, b, l) { this.top = t; this[1] = t; this.right = r; this.bottom = b; this.left = l; this[0] = l; }; YAHOO.util.Region.prototype.contains = function(region) { return ( region.left >= this.left && region.right <= this.right && region.top >= this.top && region.bottom <= this.bottom ); }; YAHOO.util.Region.prototype.getArea = function() { return ( (this.bottom - this.top) * (this.right - this.left) ); }; YAHOO.util.Region.prototype.intersect = function(region) { var t = Math.max( this.top, region.top ); var r = Math.min( this.right, region.right ); var b = Math.min( this.bottom, region.bottom ); var l = Math.max( this.left, region.left ); if (b >= t && r >= l) { return new YAHOO.util.Region(t, r, b, l); } else { return null; } }; YAHOO.util.Region.prototype.union = function(region) { var t = Math.min( this.top, region.top ); var r = Math.max( this.right, region.right ); var b = Math.max( this.bottom, region.bottom ); var l = Math.min( this.left, region.left ); return new YAHOO.util.Region(t, r, b, l); }; YAHOO.util.Region.prototype.toString = function() { return ( "Region {" + "top: " + this.top + ", right: " + this.right + ", bottom: " + this.bottom + ", left: " + this.left + "}" ); }; YAHOO.util.Region.getRegion = function(el) { return YUI.DOM.region(el); }; YAHOO.util.Point = function(x, y) { if (YAHOO.lang.isArray(x)) { // accept input from Dom.getXY, Event.getXY, etc. y = x[1]; // dont blow away x yet x = x[0]; } this.x = this.right = this.left = this[0] = x; this.y = this.top = this.bottom = this[1] = y; }; YAHOO.util.Point.prototype = new YAHOO.util.Region(); YAHOO.register("dom", YAHOO.util.Dom, {version: "3.3.0", build: "3167"}); }, '3.3.0' ,{requires:['dom','dom-style-ie','event-base','dump','substitute']}); YUI._setup(); YUI.use('compat');