layersmenu-library.js 5.9 KB

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