d768063de2d4fcbdfd9c8fe78ddf027ba907283b
1 /*\r
2 IE7, version 0.9 (alpha) (2005-08-19)\r
3 Copyright: 2004-2005, Dean Edwards (http://dean.edwards.name/)\r
4 License: http://creativecommons.org/licenses/LGPL/2.1/\r
5 */\r
6 IE7.addModule("ie7-dhtml", function() {\r
7 \r
8 /* ---------------------------------------------------------------------\r
9 This module is still in development and should not be used.\r
10 --------------------------------------------------------------------- */\r
11 \r
12 ie7CSS.specialize("recalc", function() {\r
13 this.inherit();\r
14 for (var i = 0; i < this.recalcs.length; i++) {\r
15 var $recalc = this.recalcs[i];\r
16 for (var j = 0; i < $recalc[3].length; i++) {\r
17 _addPropertyChangeHandler($recalc[3][j], _getPropertyName($recalc[2]), $recalc[1]);\r
18 }\r
19 }\r
20 });\r
21 \r
22 // constants\r
23 var _PATTERNS = {\r
24 width: "(width|paddingLeft|paddingRight|borderLeftWidth|borderRightWidth|borderLeftStyle|borderRightStyle)",\r
25 height: "(height|paddingTop|paddingBottom|borderTopHeight|borderBottomHeight|borderTopStyle|borderBottomStyle)"\r
26 };\r
27 var _PROPERTY_NAMES = {\r
28 width: "fixedWidth",\r
29 height: "fixedHeight",\r
30 right: "width",\r
31 bottom: "height"\r
32 };\r
33 var _DASH_LETTER = /-(\w)/g;\r
34 var _PROPERTY_NAME = /\w+/;\r
35 \r
36 function _addPropertyChangeHandler($element, $propertyName, $fix) {\r
37 addEventHandler($element, "onpropertychange", function() {\r
38 if (_getPattern($propertyName).test(event.propertyName)) {\r
39 _reset($element, $propertyName);\r
40 $fix($element);\r
41 }\r
42 });\r
43 };\r
44 function _upper($match, $letter) {return $letter.toUpperCase()};\r
45 function _getPropertyName($pattern) {\r
46 return String(String($pattern).toLowerCase().replace(_DASH_LETTER, _upper).match(_PROPERTY_NAME));\r
47 };\r
48 function _getPattern($propertyName) {\r
49 return eval("/^style." + (_PATTERNS[$propertyName] || $propertyName) + "$/");\r
50 };\r
51 function _reset($element, $propertyName) {\r
52 $element.runtimeStyle[$propertyName] = "";\r
53 $propertyName = _PROPERTY_NAMES[$propertyName]\r
54 if ($propertyName) $element.runtimeStyle[$propertyName] = "";\r
55 };\r
56 \r
57 });\r