Code

added website to trunk
[rrdtool-all.git] / website / inc / IE7 / ie7-dhtml.js
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