(function() {var Y = YAHOO.util,     getStyle,           setStyle,           id_counter = 0,     propertyCache = {}; var ua = navigator.userAgent.toLowerCase(),isOpera = (ua.indexOf('opera') > -1),isSafari = (ua.indexOf('safari') > -1),isGecko = (!isOpera && !isSafari && ua.indexOf('gecko') > -1),isIE = (!isOpera && ua.indexOf('msie') > -1); var patterns = {HYPHEN: /(-[a-z])/i, ROOT_TAG: /body|html/i };var toCamel = function(property) {if ( !patterns.HYPHEN.test(property) ) {return property; }if (propertyCache[property]) { return propertyCache[property];}var converted = property;while( patterns.HYPHEN.exec(converted) ) {converted = converted.replace(RegExp.$1,RegExp.$1.substr(1).toUpperCase());}propertyCache[property] = converted;return converted;};if (document.defaultView && document.defaultView.getComputedStyle) { getStyle = function(el, property) {var value = null;if (property == 'float') { property = 'cssFloat';}var computed = document.defaultView.getComputedStyle(el, '');if (computed) { value = computed[toCamel(property)];}return el.style[property] || value;};} else if (document.documentElement.currentStyle && isIE) { getStyle = function(el, property) {                         switch( toCamel(property) ) {case 'opacity' :var val = 100;try { val = el.filters['DXImageTransform.Microsoft.Alpha'].opacity;} catch(e) {try { val = el.filters('alpha').opacity;} catch(e) {}}return val / 100;break;case 'float': property = 'styleFloat'; default: var value = el.currentStyle ? el.currentStyle[property] : null;return ( el.style[property] || value );}};} else { getStyle = function(el, property) { return el.style[property]; };}if (isIE) {setStyle = function(el, property, val) {switch (property) {case 'opacity':if ( YAHOO.lang.isString(el.style.filter) ) { el.style.filter = 'alpha(opacity=' + val * 100 + ')';if (!el.currentStyle || !el.currentStyle.hasLayout) {el.style.zoom = 1; }}break;case 'float':property = 'styleFloat';default:el.style[property] = val;}};} else {setStyle = function(el, property, val) {if (property == 'float') {property = 'cssFloat';}el.style[property] = val;};}YAHOO.util.Dom = {get: function(el) {if ( YAHOO.lang.isString(el) ) { return document.getElementById(el);}if ( YAHOO.lang.isArray(el) ) { var c = [];for (var i = 0, len = el.length; i < len; ++i) {c[c.length] = Y.Dom.get(el[i]);}return c;}if (el) { return el;}return null; },getStyle: function(el, property) {property = toCamel(property);var f = function(element) {return getStyle(element, property);};return Y.Dom.batch(el, f, Y.Dom, true);},setStyle: function(el, property, val) {property = toCamel(property);var f = function(element) {setStyle(element, property, val);};Y.Dom.batch(el, f, Y.Dom, true);},getXY: function(el) {var f = function(el) {if ( (el.parentNode === null || el.offsetParent === null ||this.getStyle(el, 'display') == 'none') && el != document.body) {return false;}var parentNode = null;var pos = [];var box;if (el.getBoundingClientRect) { box = el.getBoundingClientRect();var doc = document;if ( !this.inDocument(el) && parent.document != document) {doc = parent.document;if ( !this.isAncestor(doc.documentElement, el) ) {return false;                      }}var scrollTop = Math.max(doc.documentElement.scrollTop, doc.body.scrollTop);var scrollLeft = Math.max(doc.documentElement.scrollLeft, doc.body.scrollLeft);return [box.left + scrollLeft, box.top + scrollTop];}else { pos = [el.offsetLeft, el.offsetTop];parentNode = el.offsetParent;var hasAbs = this.getStyle(el, 'position') == 'absolute';if (parentNode != el) {while (parentNode) {pos[0] += parentNode.offsetLeft;pos[1] += parentNode.offsetTop;if (isSafari && !hasAbs && this.getStyle(parentNode,'position') == 'absolute' ) {hasAbs = true; }parentNode = parentNode.offsetParent;}}if (isSafari && hasAbs) { pos[0] -= document.body.offsetLeft;pos[1] -= document.body.offsetTop;} }parentNode = el.parentNode;while ( parentNode.tagName && !patterns.ROOT_TAG.test(parentNode.tagName) ) {if (Y.Dom.getStyle(parentNode, 'display') != 'inline') { pos[0] -= parentNode.scrollLeft;pos[1] -= parentNode.scrollTop;}parentNode = parentNode.parentNode; }return pos;};return Y.Dom.batch(el, f, Y.Dom, true);},getX: function(el) {var f = function(el) {return Y.Dom.getXY(el)[0];};return Y.Dom.batch(el, f, Y.Dom, true);},getY: function(el) {var f = function(el) {return Y.Dom.getXY(el)[1];};return Y.Dom.batch(el, f, Y.Dom, true);},setXY: function(el, pos, noRetry) {var f = function(el) {var style_pos = this.getStyle(el, 'position');if (style_pos == 'static') { this.setStyle(el, 'position', 'relative');style_pos = 'relative';}var pageXY = this.getXY(el);if (pageXY === false) { return false; }var delta = [ parseInt( this.getStyle(el, 'left'), 10 ),parseInt( this.getStyle(el, 'top'), 10 )];if ( isNaN(delta[0]) ) {delta[0] = (style_pos == 'relative') ? 0 : el.offsetLeft;} if ( isNaN(delta[1]) ) { delta[1] = (style_pos == 'relative') ? 0 : el.offsetTop;} if (pos[0] !== null) { el.style.left = pos[0] - pageXY[0] + delta[0] + 'px'; }if (pos[1] !== null) { el.style.top = pos[1] - pageXY[1] + delta[1] + 'px'; }if (!noRetry) {var newXY = this.getXY(el);if ( (pos[0] !== null && newXY[0] != pos[0]) || (pos[1] !== null && newXY[1] != pos[1]) ) {this.setXY(el, pos, true);}}        };Y.Dom.batch(el, f, Y.Dom, true);},setX: function(el, x) {Y.Dom.setXY(el, [x, null]);},setY: function(el, y) {Y.Dom.setXY(el, [null, y]);},getRegion: function(el) {var f = function(el) {var region = new Y.Region.getRegion(el);return region;};return Y.Dom.batch(el, f, Y.Dom, true);},getClientWidth: function() {return Y.Dom.getViewportWidth();},getClientHeight: function() {return Y.Dom.getViewportHeight();},getElementsByClassName: function(className, tag, root) {var method = function(el) { return Y.Dom.hasClass(el, className); };return Y.Dom.getElementsBy(method, tag, root);},hasClass: function(el, className) {var re = new RegExp('(?:^|\\s+)' + className + '(?:\\s+|$)');var f = function(el) {return re.test(el.className);};return Y.Dom.batch(el, f, Y.Dom, true);},addClass: function(el, className) {var f = function(el) {if (this.hasClass(el, className)) { return; } el.className = [el.className, className].join(' ');};Y.Dom.batch(el, f, Y.Dom, true);},removeClass: function(el, className) {var re = new RegExp('(?:^|\\s+)' + className + '(?:\\s+|$)', 'g');var f = function(el) {if (!this.hasClass(el, className)) {return; }                 var c = el.className;el.className = c.replace(re, ' ');if ( this.hasClass(el, className) ) { this.removeClass(el, className);}};Y.Dom.batch(el, f, Y.Dom, true);},replaceClass: function(el, oldClassName, newClassName) {if (oldClassName === newClassName) { return false;}var re = new RegExp('(?:^|\\s+)' + oldClassName + '(?:\\s+|$)', 'g');var f = function(el) {if ( !this.hasClass(el, oldClassName) ) {this.addClass(el, newClassName); return; }el.className = el.className.replace(re, ' ' + newClassName + ' ');if ( this.hasClass(el, oldClassName) ) { this.replaceClass(el, oldClassName, newClassName);}};Y.Dom.batch(el, f, Y.Dom, true);},generateId: function(el, prefix) {prefix = prefix || 'yui-gen';el = el || {};var f = function(el) {if (el) {el = Y.Dom.get(el);} else {el = {}; }if (!el.id) {el.id = prefix + id_counter++; } return el.id;};return Y.Dom.batch(el, f, Y.Dom, true);},isAncestor: function(haystack, needle) {haystack = Y.Dom.get(haystack);if (!haystack || !needle) { return false; }var f = function(needle) {if (haystack.contains && !isSafari) { return haystack.contains(needle);}else if ( haystack.compareDocumentPosition ) {return !!(haystack.compareDocumentPosition(needle) & 16);}else { var parent = needle.parentNode;while (parent) {if (parent == haystack) {return true;}else if (!parent.tagName || parent.tagName.toUpperCase() == 'HTML') {return false;}parent = parent.parentNode;}return false;}     };return Y.Dom.batch(needle, f, Y.Dom, true);      },inDocument: function(el) {var f = function(el) {return this.isAncestor(document.documentElement, el);};return Y.Dom.batch(el, f, Y.Dom, true);},getElementsBy: function(method, tag, root) {tag = tag || '*';var nodes = [];if (root) {root = Y.Dom.get(root);if (!root) { return nodes;}} else {root = document;}var elements = root.getElementsByTagName(tag);if ( !elements.length && (tag == '*' && root.all) ) {elements = root.all; }for (var i = 0, len = elements.length; i < len; ++i) {if ( method(elements[i]) ) { nodes[nodes.length] = elements[i]; }}return nodes;},batch: function(el, method, o, override) {var id = el;el = Y.Dom.get(el);var scope = (override) ? o : window;if (!el || el.tagName || !el.length) { if (!el) {return false;}return method.call(scope, el, o);} var collection = [];for (var i = 0, len = el.length; i < len; ++i) {if (!el[i]) {id = el[i];}collection[collection.length] = method.call(scope, el[i], o);}return collection;},getDocumentHeight: function() {var scrollHeight = (document.compatMode != 'CSS1Compat') ? document.body.scrollHeight : document.documentElement.scrollHeight;var h = Math.max(scrollHeight, Y.Dom.getViewportHeight());return h;},getDocumentWidth: function() {var scrollWidth = (document.compatMode != 'CSS1Compat') ? document.body.scrollWidth : document.documentElement.scrollWidth;var w = Math.max(scrollWidth, Y.Dom.getViewportWidth());return w;},getViewportHeight: function() {var height = self.innerHeight; var mode = document.compatMode;if ( (mode || isIE) && !isOpera ) { height = (mode == 'CSS1Compat') ?document.documentElement.clientHeight : document.body.clientHeight; }return height;},getViewportWidth: function() {var width = self.innerWidth;  var mode = document.compatMode;if (mode || isIE) { width = (mode == 'CSS1Compat') ?document.documentElement.clientWidth : document.body.clientWidth; }return width;}};})();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) {var p = YAHOO.util.Dom.getXY(el);var t = p[1];var r = p[0] + el.offsetWidth;var b = p[1] + el.offsetHeight;var l = p[0];return new YAHOO.util.Region(t, r, b, l);};YAHOO.util.Point = function(x, y) {if (x instanceof Array) { y = x[1];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: "2.2.2", build: "204"});