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