Code

Fixed IE problem
[gosa.git] / html / include / layersmenu-library.js
1 // PHP Layers Menu 3.2.0-rc (C) 2001-2004 Marco Pratesi - http://www.marcopratesi.it/
3 layerLeft = new Array();
4 layerTop = new Array();
7 function setVisibility(layer, on)
8 {
9         if (on) {
10                 if (DOM) {
11                         document.getElementById(layer).style.visibility = 'visible';
12                 } else if (NS4) {
13                         document.layers[layer].visibility = 'show';
14                 } else {
15                         document.all[layer].style.visibility = 'visible';
16                 }
17         } else {
18                 if (DOM) {
19                         document.getElementById(layer).style.visibility = 'hidden';
20                 } else if (NS4) {
21                         document.layers[layer].visibility = 'hide';
22                 } else {
23                         document.all[layer].style.visibility = 'hidden';
24                 }
25         }
26 }
28 function isVisible(layer)
29 {
30         if (DOM) {
31                 return (document.getElementById(layer).style.visibility == 'visible');
32         } else if (NS4) {
33                 return (document.layers[layer].visibility == 'show');
34         } else {
35                 return (document.all[layer].style.visibility == 'visible');
36         }
37 }
39 function setLeft(layer, x)
40 {
41 layerLeft[layer] = x;
42         if (DOM && !Opera5) {
43                 document.getElementById(layer).style.left = x + 'px';
44         } else if (Opera5) {
45                 document.getElementById(layer).style.left = x;
46         } else if (NS4) {
47                 document.layers[layer].left = x;
48         } else {
49                 document.all[layer].style.pixelLeft = x;
50         }
51 }
53 function getOffsetLeft(layer)
54 {
55         var value = 0;
56         if (DOM) {      // Mozilla, Konqueror >= 2.2, Opera >= 5, IE
57                 object = document.getElementById(layer);
58                 value = object.offsetLeft;
59 //alert (object.tagName + ' --- ' + object.offsetLeft);
60                 while (object.tagName != 'BODY' && object.offsetParent) {
61                         object = object.offsetParent;
62 //alert (object.tagName + ' --- ' + object.offsetLeft);
63                         value += object.offsetLeft;
64                 }
65         } else if (NS4) {
66                 value = document.layers[layer].pageX;
67         } else {        // IE4 IS SIMPLY A BASTARD !!!
68                 if (document.all['IE4' + layer]) {
69                         layer = 'IE4' + layer;
70                 }
71                 object = document.all[layer];
72                 value = object.offsetLeft;
73                 while (object.tagName != 'BODY') {
74                         object = object.offsetParent;
75                         value += object.offsetLeft;
76                 }
77         }
78         return (value);
79 }
81 function setTop(layer, y)
82 {
83 layerTop[layer] = y;
84         if (DOM && !Opera5) {
85                 document.getElementById(layer).style.top = y + 'px';
86         } else if (Opera5) {
87                 document.getElementById(layer).style.top = y;
88         } else if (NS4) {
89                 document.layers[layer].top = y;
90         } else {
91                 document.all[layer].style.pixelTop = y;
92         }
93 }
95 function getOffsetTop(layer)
96 {
97 // IE 5.5 and 6.0 behaviour with this function is really strange:
98 // in some cases, they return a really too large value...
99 // ... after all, IE is buggy, nothing new
100         var value = 0;
101         if (DOM) {
102                 object = document.getElementById(layer);
103                 value = object.offsetTop;
104                 while (object.tagName != 'BODY' && object.offsetParent) {
105                         object = object.offsetParent;
106                         value += object.offsetTop;
107                 }
108         } else if (NS4) {
109                 value = document.layers[layer].pageY;
110         } else {        // IE4 IS SIMPLY A BASTARD !!!
111                 if (document.all['IE4' + layer]) {
112                         layer = 'IE4' + layer;
113                 }
114                 object = document.all[layer];
115                 value = object.offsetTop;
116                 while (object.tagName != 'BODY') {
117                         object = object.offsetParent;
118                         value += object.offsetTop;
119                 }
120         }
121         return (value);
124 function setWidth(layer, w)
126         if (DOM) {
127                 document.getElementById(layer).style.width = w;
128         } else if (NS4) {
129 //              document.layers[layer].width = w;
130         } else {
131                 document.all[layer].style.pixelWidth = w;
132         }
135 function getOffsetWidth(layer)
137         var value = 0;
138         if (DOM && !Opera56) {
139                 value = document.getElementById(layer).offsetWidth;
140         } else if (NS4) {
141                 value = document.layers[layer].document.width;
142         } else if (Opera56) {
143                 value = document.getElementById(layer).style.pixelWidth;
144         } else {        // IE4 IS SIMPLY A BASTARD !!!
145                 if (document.all['IE4' + layer]) {
146                         layer = 'IE4' + layer;
147                 }
148                 value = document.all[layer].offsetWidth;
149         }
150         return (value);
153 function setHeight(layer, h)    // unused, not tested
155         if (DOM) {
156                 document.getElementById(layer).style.height = h;
157         } else if (NS4) {
158 //              document.layers[layer].height = h;
159         } else {
160                 document.all[layer].style.pixelHeight = h;
161         }
164 function getOffsetHeight(layer)
166         var value = 0;
167         if (DOM && !Opera56) {
168                 value = document.getElementById(layer).offsetHeight;
169         } else if (NS4) {
170                 value = document.layers[layer].document.height;
171         } else if (Opera56) {
172                 value = document.getElementById(layer).style.pixelHeight;
173         } else {        // IE4 IS SIMPLY A BASTARD !!!
174                 if (document.all['IE4' + layer]) {
175                         layer = 'IE4' + layer;
176                 }
177                 value = document.all[layer].offsetHeight;
178         }
179         return (value);
182 function getWindowWidth()
184         var value = 0;
185         if ((DOM && !IE) || NS4 || Konqueror || Opera) {
186                 value = window.innerWidth;
187 //      } else if (NS4) {
188 //              value = document.width;
189         } else {        // IE
190                 if (document.documentElement && document.documentElement.clientWidth) {
191                         value = document.documentElement.clientWidth;
192                 } else if (document.body) {
193                         value = document.body.clientWidth;
194                 }
195         }
196         if (isNaN(value)) {
197                 value = window.innerWidth;
198         }
199         return (value);
202 function getWindowXOffset()
204         var value = 0;
205         if ((DOM && !IE) || NS4 || Konqueror || Opera) {
206                 value = window.pageXOffset;
207         } else {        // IE
208                 if (document.documentElement && document.documentElement.scrollLeft) {
209                         value = document.documentElement.scrollLeft;
210                 } else if (document.body) {
211                         value = document.body.scrollLeft;
212                 }
213         }
214         return (value);
217 function getWindowHeight()
219         var value = 0;
220         if ((DOM && !IE) || NS4 || Konqueror || Opera) {
221                 value = window.innerHeight;
222         } else {        // IE
223                 if (document.documentElement && document.documentElement.clientHeight) {
224                         value = document.documentElement.clientHeight;
225                 } else if (document.body) {
226                         value = document.body.clientHeight;
227                 }
228         }
229         if (isNaN(value)) {
230                 value = window.innerHeight;
231         }
232         return (value);
235 function getWindowYOffset()
237         var value = 0;
238         if ((DOM && !IE) || NS4 || Konqueror || Opera) {
239                 value = window.pageYOffset;
240         } else {        // IE
241                 if (document.documentElement && document.documentElement.scrollTop) {
242                         value = document.documentElement.scrollTop;
243                 } else if (document.body) {
244                         value = document.body.scrollTop;
245                 }
246         }
247         return (value);