1.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 1.2 +++ b/testing/mochitest/tests/MochiKit-1.4.2/MochiKit/Style.js Wed Dec 31 06:09:35 2014 +0100 1.3 @@ -0,0 +1,594 @@ 1.4 +/*** 1.5 + 1.6 +MochiKit.Style 1.4.2 1.7 + 1.8 +See <http://mochikit.com/> for documentation, downloads, license, etc. 1.9 + 1.10 +(c) 2005-2006 Bob Ippolito, Beau Hartshorne. All rights Reserved. 1.11 + 1.12 +***/ 1.13 + 1.14 +MochiKit.Base._deps('Style', ['Base', 'DOM']); 1.15 + 1.16 +MochiKit.Style.NAME = 'MochiKit.Style'; 1.17 +MochiKit.Style.VERSION = '1.4.2'; 1.18 +MochiKit.Style.__repr__ = function () { 1.19 + return '[' + this.NAME + ' ' + this.VERSION + ']'; 1.20 +}; 1.21 +MochiKit.Style.toString = function () { 1.22 + return this.__repr__(); 1.23 +}; 1.24 + 1.25 +MochiKit.Style.EXPORT_OK = []; 1.26 + 1.27 +MochiKit.Style.EXPORT = [ 1.28 + 'setStyle', 1.29 + 'setOpacity', 1.30 + 'getStyle', 1.31 + 'getElementDimensions', 1.32 + 'elementDimensions', // deprecated 1.33 + 'setElementDimensions', 1.34 + 'getElementPosition', 1.35 + 'elementPosition', // deprecated 1.36 + 'setElementPosition', 1.37 + "makePositioned", 1.38 + "undoPositioned", 1.39 + "makeClipping", 1.40 + "undoClipping", 1.41 + 'setDisplayForElement', 1.42 + 'hideElement', 1.43 + 'showElement', 1.44 + 'getViewportDimensions', 1.45 + 'getViewportPosition', 1.46 + 'Dimensions', 1.47 + 'Coordinates' 1.48 +]; 1.49 + 1.50 + 1.51 +/* 1.52 + 1.53 + Dimensions 1.54 + 1.55 +*/ 1.56 +/** @id MochiKit.Style.Dimensions */ 1.57 +MochiKit.Style.Dimensions = function (w, h) { 1.58 + this.w = w; 1.59 + this.h = h; 1.60 +}; 1.61 + 1.62 +MochiKit.Style.Dimensions.prototype.__repr__ = function () { 1.63 + var repr = MochiKit.Base.repr; 1.64 + return '{w: ' + repr(this.w) + ', h: ' + repr(this.h) + '}'; 1.65 +}; 1.66 + 1.67 +MochiKit.Style.Dimensions.prototype.toString = function () { 1.68 + return this.__repr__(); 1.69 +}; 1.70 + 1.71 + 1.72 +/* 1.73 + 1.74 + Coordinates 1.75 + 1.76 +*/ 1.77 +/** @id MochiKit.Style.Coordinates */ 1.78 +MochiKit.Style.Coordinates = function (x, y) { 1.79 + this.x = x; 1.80 + this.y = y; 1.81 +}; 1.82 + 1.83 +MochiKit.Style.Coordinates.prototype.__repr__ = function () { 1.84 + var repr = MochiKit.Base.repr; 1.85 + return '{x: ' + repr(this.x) + ', y: ' + repr(this.y) + '}'; 1.86 +}; 1.87 + 1.88 +MochiKit.Style.Coordinates.prototype.toString = function () { 1.89 + return this.__repr__(); 1.90 +}; 1.91 + 1.92 + 1.93 +MochiKit.Base.update(MochiKit.Style, { 1.94 + 1.95 + /** @id MochiKit.Style.getStyle */ 1.96 + getStyle: function (elem, cssProperty) { 1.97 + var dom = MochiKit.DOM; 1.98 + var d = dom._document; 1.99 + 1.100 + elem = dom.getElement(elem); 1.101 + cssProperty = MochiKit.Base.camelize(cssProperty); 1.102 + 1.103 + if (!elem || elem == d) { 1.104 + return undefined; 1.105 + } 1.106 + if (cssProperty == 'opacity' && typeof(elem.filters) != 'undefined') { 1.107 + var opacity = (MochiKit.Style.getStyle(elem, 'filter') || '').match(/alpha\(opacity=(.*)\)/); 1.108 + if (opacity && opacity[1]) { 1.109 + return parseFloat(opacity[1]) / 100; 1.110 + } 1.111 + return 1.0; 1.112 + } 1.113 + if (cssProperty == 'float' || cssProperty == 'cssFloat' || cssProperty == 'styleFloat') { 1.114 + if (elem.style["float"]) { 1.115 + return elem.style["float"]; 1.116 + } else if (elem.style.cssFloat) { 1.117 + return elem.style.cssFloat; 1.118 + } else if (elem.style.styleFloat) { 1.119 + return elem.style.styleFloat; 1.120 + } else { 1.121 + return "none"; 1.122 + } 1.123 + } 1.124 + var value = elem.style ? elem.style[cssProperty] : null; 1.125 + if (!value) { 1.126 + if (d.defaultView && d.defaultView.getComputedStyle) { 1.127 + var css = d.defaultView.getComputedStyle(elem, null); 1.128 + cssProperty = cssProperty.replace(/([A-Z])/g, '-$1' 1.129 + ).toLowerCase(); // from dojo.style.toSelectorCase 1.130 + value = css ? css.getPropertyValue(cssProperty) : null; 1.131 + } else if (elem.currentStyle) { 1.132 + value = elem.currentStyle[cssProperty]; 1.133 + if (/^\d/.test(value) && !/px$/.test(value) && cssProperty != 'fontWeight') { 1.134 + /* Convert to px using an hack from Dean Edwards */ 1.135 + var left = elem.style.left; 1.136 + var rsLeft = elem.runtimeStyle.left; 1.137 + elem.runtimeStyle.left = elem.currentStyle.left; 1.138 + elem.style.left = value || 0; 1.139 + value = elem.style.pixelLeft + "px"; 1.140 + elem.style.left = left; 1.141 + elem.runtimeStyle.left = rsLeft; 1.142 + } 1.143 + } 1.144 + } 1.145 + if (cssProperty == 'opacity') { 1.146 + value = parseFloat(value); 1.147 + } 1.148 + 1.149 + if (/Opera/.test(navigator.userAgent) && (MochiKit.Base.findValue(['left', 'top', 'right', 'bottom'], cssProperty) != -1)) { 1.150 + if (MochiKit.Style.getStyle(elem, 'position') == 'static') { 1.151 + value = 'auto'; 1.152 + } 1.153 + } 1.154 + 1.155 + return value == 'auto' ? null : value; 1.156 + }, 1.157 + 1.158 + /** @id MochiKit.Style.setStyle */ 1.159 + setStyle: function (elem, style) { 1.160 + elem = MochiKit.DOM.getElement(elem); 1.161 + for (var name in style) { 1.162 + switch (name) { 1.163 + case 'opacity': 1.164 + MochiKit.Style.setOpacity(elem, style[name]); 1.165 + break; 1.166 + case 'float': 1.167 + case 'cssFloat': 1.168 + case 'styleFloat': 1.169 + if (typeof(elem.style["float"]) != "undefined") { 1.170 + elem.style["float"] = style[name]; 1.171 + } else if (typeof(elem.style.cssFloat) != "undefined") { 1.172 + elem.style.cssFloat = style[name]; 1.173 + } else { 1.174 + elem.style.styleFloat = style[name]; 1.175 + } 1.176 + break; 1.177 + default: 1.178 + elem.style[MochiKit.Base.camelize(name)] = style[name]; 1.179 + } 1.180 + } 1.181 + }, 1.182 + 1.183 + /** @id MochiKit.Style.setOpacity */ 1.184 + setOpacity: function (elem, o) { 1.185 + elem = MochiKit.DOM.getElement(elem); 1.186 + var self = MochiKit.Style; 1.187 + if (o == 1) { 1.188 + var toSet = /Gecko/.test(navigator.userAgent) && !(/Konqueror|AppleWebKit|KHTML/.test(navigator.userAgent)); 1.189 + elem.style["opacity"] = toSet ? 0.999999 : 1.0; 1.190 + if (/MSIE/.test(navigator.userAgent)) { 1.191 + elem.style['filter'] = 1.192 + self.getStyle(elem, 'filter').replace(/alpha\([^\)]*\)/gi, ''); 1.193 + } 1.194 + } else { 1.195 + if (o < 0.00001) { 1.196 + o = 0; 1.197 + } 1.198 + elem.style["opacity"] = o; 1.199 + if (/MSIE/.test(navigator.userAgent)) { 1.200 + elem.style['filter'] = 1.201 + self.getStyle(elem, 'filter').replace(/alpha\([^\)]*\)/gi, '') + 'alpha(opacity=' + o * 100 + ')'; 1.202 + } 1.203 + } 1.204 + }, 1.205 + 1.206 + /* 1.207 + 1.208 + getElementPosition is adapted from YAHOO.util.Dom.getXY v0.9.0. 1.209 + Copyright: Copyright (c) 2006, Yahoo! Inc. All rights reserved. 1.210 + License: BSD, http://developer.yahoo.net/yui/license.txt 1.211 + 1.212 + */ 1.213 + 1.214 + /** @id MochiKit.Style.getElementPosition */ 1.215 + getElementPosition: function (elem, /* optional */relativeTo) { 1.216 + var self = MochiKit.Style; 1.217 + var dom = MochiKit.DOM; 1.218 + elem = dom.getElement(elem); 1.219 + 1.220 + if (!elem || 1.221 + (!(elem.x && elem.y) && 1.222 + (!elem.parentNode === null || 1.223 + self.getStyle(elem, 'display') == 'none'))) { 1.224 + return undefined; 1.225 + } 1.226 + 1.227 + var c = new self.Coordinates(0, 0); 1.228 + var box = null; 1.229 + var parent = null; 1.230 + 1.231 + var d = MochiKit.DOM._document; 1.232 + var de = d.documentElement; 1.233 + var b = d.body; 1.234 + 1.235 + if (!elem.parentNode && elem.x && elem.y) { 1.236 + /* it's just a MochiKit.Style.Coordinates object */ 1.237 + c.x += elem.x || 0; 1.238 + c.y += elem.y || 0; 1.239 + } else if (elem.getBoundingClientRect) { // IE shortcut 1.240 + /* 1.241 + 1.242 + The IE shortcut can be off by two. We fix it. See: 1.243 + http://msdn.microsoft.com/workshop/author/dhtml/reference/methods/getboundingclientrect.asp 1.244 + 1.245 + This is similar to the method used in 1.246 + MochiKit.Signal.Event.mouse(). 1.247 + 1.248 + */ 1.249 + box = elem.getBoundingClientRect(); 1.250 + 1.251 + c.x += box.left + 1.252 + (de.scrollLeft || b.scrollLeft) - 1.253 + (de.clientLeft || 0); 1.254 + 1.255 + c.y += box.top + 1.256 + (de.scrollTop || b.scrollTop) - 1.257 + (de.clientTop || 0); 1.258 + 1.259 + } else if (elem.offsetParent) { 1.260 + c.x += elem.offsetLeft; 1.261 + c.y += elem.offsetTop; 1.262 + parent = elem.offsetParent; 1.263 + 1.264 + if (parent != elem) { 1.265 + while (parent) { 1.266 + c.x += parseInt(parent.style.borderLeftWidth) || 0; 1.267 + c.y += parseInt(parent.style.borderTopWidth) || 0; 1.268 + c.x += parent.offsetLeft; 1.269 + c.y += parent.offsetTop; 1.270 + parent = parent.offsetParent; 1.271 + } 1.272 + } 1.273 + 1.274 + /* 1.275 + 1.276 + Opera < 9 and old Safari (absolute) incorrectly account for 1.277 + body offsetTop and offsetLeft. 1.278 + 1.279 + */ 1.280 + var ua = navigator.userAgent.toLowerCase(); 1.281 + if ((typeof(opera) != 'undefined' && 1.282 + parseFloat(opera.version()) < 9) || 1.283 + (ua.indexOf('AppleWebKit') != -1 && 1.284 + self.getStyle(elem, 'position') == 'absolute')) { 1.285 + 1.286 + c.x -= b.offsetLeft; 1.287 + c.y -= b.offsetTop; 1.288 + 1.289 + } 1.290 + 1.291 + // Adjust position for strange Opera scroll bug 1.292 + if (elem.parentNode) { 1.293 + parent = elem.parentNode; 1.294 + } else { 1.295 + parent = null; 1.296 + } 1.297 + while (parent) { 1.298 + var tagName = parent.tagName.toUpperCase(); 1.299 + if (tagName === 'BODY' || tagName === 'HTML') { 1.300 + break; 1.301 + } 1.302 + var disp = self.getStyle(parent, 'display'); 1.303 + // Handle strange Opera bug for some display 1.304 + if (disp.search(/^inline|table-row.*$/i)) { 1.305 + c.x -= parent.scrollLeft; 1.306 + c.y -= parent.scrollTop; 1.307 + } 1.308 + if (parent.parentNode) { 1.309 + parent = parent.parentNode; 1.310 + } else { 1.311 + parent = null; 1.312 + } 1.313 + } 1.314 + } 1.315 + 1.316 + if (typeof(relativeTo) != 'undefined') { 1.317 + relativeTo = arguments.callee(relativeTo); 1.318 + if (relativeTo) { 1.319 + c.x -= (relativeTo.x || 0); 1.320 + c.y -= (relativeTo.y || 0); 1.321 + } 1.322 + } 1.323 + 1.324 + return c; 1.325 + }, 1.326 + 1.327 + /** @id MochiKit.Style.setElementPosition */ 1.328 + setElementPosition: function (elem, newPos/* optional */, units) { 1.329 + elem = MochiKit.DOM.getElement(elem); 1.330 + if (typeof(units) == 'undefined') { 1.331 + units = 'px'; 1.332 + } 1.333 + var newStyle = {}; 1.334 + var isUndefNull = MochiKit.Base.isUndefinedOrNull; 1.335 + if (!isUndefNull(newPos.x)) { 1.336 + newStyle['left'] = newPos.x + units; 1.337 + } 1.338 + if (!isUndefNull(newPos.y)) { 1.339 + newStyle['top'] = newPos.y + units; 1.340 + } 1.341 + MochiKit.DOM.updateNodeAttributes(elem, {'style': newStyle}); 1.342 + }, 1.343 + 1.344 + /** @id MochiKit.Style.makePositioned */ 1.345 + makePositioned: function (element) { 1.346 + element = MochiKit.DOM.getElement(element); 1.347 + var pos = MochiKit.Style.getStyle(element, 'position'); 1.348 + if (pos == 'static' || !pos) { 1.349 + element.style.position = 'relative'; 1.350 + // Opera returns the offset relative to the positioning context, 1.351 + // when an element is position relative but top and left have 1.352 + // not been defined 1.353 + if (/Opera/.test(navigator.userAgent)) { 1.354 + element.style.top = 0; 1.355 + element.style.left = 0; 1.356 + } 1.357 + } 1.358 + }, 1.359 + 1.360 + /** @id MochiKit.Style.undoPositioned */ 1.361 + undoPositioned: function (element) { 1.362 + element = MochiKit.DOM.getElement(element); 1.363 + if (element.style.position == 'relative') { 1.364 + element.style.position = element.style.top = element.style.left = element.style.bottom = element.style.right = ''; 1.365 + } 1.366 + }, 1.367 + 1.368 + /** @id MochiKit.Style.makeClipping */ 1.369 + makeClipping: function (element) { 1.370 + element = MochiKit.DOM.getElement(element); 1.371 + var s = element.style; 1.372 + var oldOverflow = { 'overflow': s.overflow, 1.373 + 'overflow-x': s.overflowX, 1.374 + 'overflow-y': s.overflowY }; 1.375 + if ((MochiKit.Style.getStyle(element, 'overflow') || 'visible') != 'hidden') { 1.376 + element.style.overflow = 'hidden'; 1.377 + element.style.overflowX = 'hidden'; 1.378 + element.style.overflowY = 'hidden'; 1.379 + } 1.380 + return oldOverflow; 1.381 + }, 1.382 + 1.383 + /** @id MochiKit.Style.undoClipping */ 1.384 + undoClipping: function (element, overflow) { 1.385 + element = MochiKit.DOM.getElement(element); 1.386 + if (typeof(overflow) == 'string') { 1.387 + element.style.overflow = overflow; 1.388 + } else if (overflow != null) { 1.389 + element.style.overflow = overflow['overflow']; 1.390 + element.style.overflowX = overflow['overflow-x']; 1.391 + element.style.overflowY = overflow['overflow-y']; 1.392 + } 1.393 + }, 1.394 + 1.395 + /** @id MochiKit.Style.getElementDimensions */ 1.396 + getElementDimensions: function (elem, contentSize/*optional*/) { 1.397 + var self = MochiKit.Style; 1.398 + var dom = MochiKit.DOM; 1.399 + if (typeof(elem.w) == 'number' || typeof(elem.h) == 'number') { 1.400 + return new self.Dimensions(elem.w || 0, elem.h || 0); 1.401 + } 1.402 + elem = dom.getElement(elem); 1.403 + if (!elem) { 1.404 + return undefined; 1.405 + } 1.406 + var disp = self.getStyle(elem, 'display'); 1.407 + // display can be empty/undefined on WebKit/KHTML 1.408 + if (disp == 'none' || disp == '' || typeof(disp) == 'undefined') { 1.409 + var s = elem.style; 1.410 + var originalVisibility = s.visibility; 1.411 + var originalPosition = s.position; 1.412 + var originalDisplay = s.display; 1.413 + s.visibility = 'hidden'; 1.414 + s.position = 'absolute'; 1.415 + s.display = self._getDefaultDisplay(elem); 1.416 + var originalWidth = elem.offsetWidth; 1.417 + var originalHeight = elem.offsetHeight; 1.418 + s.display = originalDisplay; 1.419 + s.position = originalPosition; 1.420 + s.visibility = originalVisibility; 1.421 + } else { 1.422 + originalWidth = elem.offsetWidth || 0; 1.423 + originalHeight = elem.offsetHeight || 0; 1.424 + } 1.425 + if (contentSize) { 1.426 + var tableCell = 'colSpan' in elem && 'rowSpan' in elem; 1.427 + var collapse = (tableCell && elem.parentNode && self.getStyle( 1.428 + elem.parentNode, 'borderCollapse') == 'collapse') 1.429 + if (collapse) { 1.430 + if (/MSIE/.test(navigator.userAgent)) { 1.431 + var borderLeftQuota = elem.previousSibling? 0.5 : 1; 1.432 + var borderRightQuota = elem.nextSibling? 0.5 : 1; 1.433 + } 1.434 + else { 1.435 + var borderLeftQuota = 0.5; 1.436 + var borderRightQuota = 0.5; 1.437 + } 1.438 + } else { 1.439 + var borderLeftQuota = 1; 1.440 + var borderRightQuota = 1; 1.441 + } 1.442 + originalWidth -= Math.round( 1.443 + (parseFloat(self.getStyle(elem, 'paddingLeft')) || 0) 1.444 + + (parseFloat(self.getStyle(elem, 'paddingRight')) || 0) 1.445 + + borderLeftQuota * 1.446 + (parseFloat(self.getStyle(elem, 'borderLeftWidth')) || 0) 1.447 + + borderRightQuota * 1.448 + (parseFloat(self.getStyle(elem, 'borderRightWidth')) || 0) 1.449 + ); 1.450 + if (tableCell) { 1.451 + if (/Opera/.test(navigator.userAgent) 1.452 + && !/Konqueror|AppleWebKit|KHTML/.test(navigator.userAgent)) { 1.453 + var borderHeightQuota = 0; 1.454 + } else if (/MSIE/.test(navigator.userAgent)) { 1.455 + var borderHeightQuota = 1; 1.456 + } else { 1.457 + var borderHeightQuota = collapse? 0.5 : 1; 1.458 + } 1.459 + } else { 1.460 + var borderHeightQuota = 1; 1.461 + } 1.462 + originalHeight -= Math.round( 1.463 + (parseFloat(self.getStyle(elem, 'paddingTop')) || 0) 1.464 + + (parseFloat(self.getStyle(elem, 'paddingBottom')) || 0) 1.465 + + borderHeightQuota * ( 1.466 + (parseFloat(self.getStyle(elem, 'borderTopWidth')) || 0) 1.467 + + (parseFloat(self.getStyle(elem, 'borderBottomWidth')) || 0)) 1.468 + ); 1.469 + } 1.470 + return new self.Dimensions(originalWidth, originalHeight); 1.471 + }, 1.472 + 1.473 + /** @id MochiKit.Style.setElementDimensions */ 1.474 + setElementDimensions: function (elem, newSize/* optional */, units) { 1.475 + elem = MochiKit.DOM.getElement(elem); 1.476 + if (typeof(units) == 'undefined') { 1.477 + units = 'px'; 1.478 + } 1.479 + var newStyle = {}; 1.480 + var isUndefNull = MochiKit.Base.isUndefinedOrNull; 1.481 + if (!isUndefNull(newSize.w)) { 1.482 + newStyle['width'] = newSize.w + units; 1.483 + } 1.484 + if (!isUndefNull(newSize.h)) { 1.485 + newStyle['height'] = newSize.h + units; 1.486 + } 1.487 + MochiKit.DOM.updateNodeAttributes(elem, {'style': newStyle}); 1.488 + }, 1.489 + 1.490 + _getDefaultDisplay: function (elem) { 1.491 + var self = MochiKit.Style; 1.492 + var dom = MochiKit.DOM; 1.493 + elem = dom.getElement(elem); 1.494 + if (!elem) { 1.495 + return undefined; 1.496 + } 1.497 + var tagName = elem.tagName.toUpperCase(); 1.498 + return self._defaultDisplay[tagName] || 'block'; 1.499 + }, 1.500 + 1.501 + /** @id MochiKit.Style.setDisplayForElement */ 1.502 + setDisplayForElement: function (display, element/*, ...*/) { 1.503 + var elements = MochiKit.Base.extend(null, arguments, 1); 1.504 + var getElement = MochiKit.DOM.getElement; 1.505 + for (var i = 0; i < elements.length; i++) { 1.506 + element = getElement(elements[i]); 1.507 + if (element) { 1.508 + element.style.display = display; 1.509 + } 1.510 + } 1.511 + }, 1.512 + 1.513 + /** @id MochiKit.Style.getViewportDimensions */ 1.514 + getViewportDimensions: function () { 1.515 + var d = new MochiKit.Style.Dimensions(); 1.516 + var w = MochiKit.DOM._window; 1.517 + var b = MochiKit.DOM._document.body; 1.518 + if (w.innerWidth) { 1.519 + d.w = w.innerWidth; 1.520 + d.h = w.innerHeight; 1.521 + } else if (b && b.parentElement && b.parentElement.clientWidth) { 1.522 + d.w = b.parentElement.clientWidth; 1.523 + d.h = b.parentElement.clientHeight; 1.524 + } else if (b && b.clientWidth) { 1.525 + d.w = b.clientWidth; 1.526 + d.h = b.clientHeight; 1.527 + } 1.528 + return d; 1.529 + }, 1.530 + 1.531 + /** @id MochiKit.Style.getViewportPosition */ 1.532 + getViewportPosition: function () { 1.533 + var c = new MochiKit.Style.Coordinates(0, 0); 1.534 + var d = MochiKit.DOM._document; 1.535 + var de = d.documentElement; 1.536 + var db = d.body; 1.537 + if (de && (de.scrollTop || de.scrollLeft)) { 1.538 + c.x = de.scrollLeft; 1.539 + c.y = de.scrollTop; 1.540 + } else if (db) { 1.541 + c.x = db.scrollLeft; 1.542 + c.y = db.scrollTop; 1.543 + } 1.544 + return c; 1.545 + }, 1.546 + 1.547 + __new__: function () { 1.548 + var m = MochiKit.Base; 1.549 + 1.550 + var inlines = ['A','ABBR','ACRONYM','B','BASEFONT','BDO','BIG','BR', 1.551 + 'CITE','CODE','DFN','EM','FONT','I','IMG','KBD','LABEL', 1.552 + 'Q','S','SAMP','SMALL','SPAN','STRIKE','STRONG','SUB', 1.553 + 'SUP','TEXTAREA','TT','U','VAR']; 1.554 + this._defaultDisplay = { 'TABLE': 'table', 1.555 + 'THEAD': 'table-header-group', 1.556 + 'TBODY': 'table-row-group', 1.557 + 'TFOOT': 'table-footer-group', 1.558 + 'COLGROUP': 'table-column-group', 1.559 + 'COL': 'table-column', 1.560 + 'TR': 'table-row', 1.561 + 'TD': 'table-cell', 1.562 + 'TH': 'table-cell', 1.563 + 'CAPTION': 'table-caption', 1.564 + 'LI': 'list-item', 1.565 + 'INPUT': 'inline-block', 1.566 + 'SELECT': 'inline-block' }; 1.567 + // CSS 'display' support in IE6/7 is just broken... 1.568 + if (/MSIE/.test(navigator.userAgent)) { 1.569 + for (var k in this._defaultDisplay) { 1.570 + var v = this._defaultDisplay[k]; 1.571 + if (v.indexOf('table') == 0) { 1.572 + this._defaultDisplay[k] = 'block'; 1.573 + } 1.574 + } 1.575 + } 1.576 + for (var i = 0; i < inlines.length; i++) { 1.577 + this._defaultDisplay[inlines[i]] = 'inline'; 1.578 + } 1.579 + 1.580 + this.elementPosition = this.getElementPosition; 1.581 + this.elementDimensions = this.getElementDimensions; 1.582 + 1.583 + this.hideElement = m.partial(this.setDisplayForElement, 'none'); 1.584 + // TODO: showElement could be improved by using getDefaultDisplay. 1.585 + this.showElement = m.partial(this.setDisplayForElement, 'block'); 1.586 + 1.587 + this.EXPORT_TAGS = { 1.588 + ':common': this.EXPORT, 1.589 + ':all': m.concat(this.EXPORT, this.EXPORT_OK) 1.590 + }; 1.591 + 1.592 + m.nameFunctions(this); 1.593 + } 1.594 +}); 1.595 + 1.596 +MochiKit.Style.__new__(); 1.597 +MochiKit.Base._exportSymbols(this, MochiKit.Style);