home *** CD-ROM | disk | FTP | other *** search
/ PC World 2001 March / PCWorld_2001-03_cd.bin / Software / Topware / aspedit / _SETUP.1 / Dhtmllib.js < prev    next >
Text File  |  2000-02-27  |  8KB  |  408 lines

  1. var isMinNS4 = (navigator.appName.indexOf("Netscape") >= 0 &&
  2.                 parseFloat(navigator.appVersion) >= 4) ? 1 : 0;
  3. var isMinIE4 = (document.all) ? 1 : 0;
  4. var isMinIE5 = (isMinIE4 && navigator.appVersion.indexOf("5.")) >= 0 ? 1 : 0;
  5.  
  6. function hideLayer(layer) {
  7.  
  8.   if (isMinNS4)
  9.     layer.visibility = "hide";
  10.   if (isMinIE4)
  11.     layer.style.visibility = "hidden";
  12. }
  13.  
  14. function showLayer(layer) {
  15.  
  16.   if (isMinNS4)
  17.     layer.visibility = "show";
  18.   if (isMinIE4)
  19.     layer.style.visibility = "visible";
  20. }
  21.  
  22. function isVisible(layer) {
  23.  
  24.   if (isMinNS4 && layer.visibility == "show")
  25.     return(true);
  26.   if (isMinIE4 && layer.style.visibility == "visible")
  27.     return(true);
  28.  
  29.   return(false);
  30. }
  31.  
  32.  
  33. function moveLayerTo(layer, x, y) {
  34.  
  35.   if (isMinNS4)
  36.     layer.moveTo(x, y);
  37.   if (isMinIE4) {
  38.     layer.style.left = x;
  39.     layer.style.top  = y;
  40.   }
  41. }
  42.  
  43. function moveLayerBy(layer, dx, dy) {
  44.  
  45.   if (isMinNS4)
  46.     layer.moveBy(dx, dy);
  47.   if (isMinIE4) {
  48.     layer.style.pixelLeft += dx;
  49.     layer.style.pixelTop  += dy;
  50.   }
  51. }
  52.  
  53. function getLeft(layer) {
  54.  
  55.   if (isMinNS4)
  56.     return(layer.left);
  57.   if (isMinIE4)
  58.     return(layer.style.pixelLeft);
  59.   return(-1);
  60. }
  61.  
  62. function getTop(layer) {
  63.  
  64.   if (isMinNS4)
  65.     return(layer.top);
  66.   if (isMinIE4)
  67.     return(layer.style.pixelTop);
  68.   return(-1);
  69. }
  70.  
  71. function getRight(layer) {
  72.  
  73.   if (isMinNS4)
  74.     return(layer.left + getWidth(layer));
  75.   if (isMinIE4)
  76.     return(layer.style.pixelLeft + getWidth(layer));
  77.   return(-1);
  78. }
  79.  
  80. function getBottom(layer) {
  81.  
  82.   if (isMinNS4)
  83.     return(layer.top + getHeight(layer));
  84.   else if (isMinIE4)
  85.     return(layer.style.pixelTop + getHeight(layer));
  86.   return(-1);
  87. }
  88.  
  89. function getPageLeft(layer) {
  90.  
  91.   if (isMinNS4)
  92.     return(layer.pageX);
  93.   if (isMinIE4)
  94.     return(layer.offsetLeft);
  95.   return(-1);
  96. }
  97.  
  98. function getPageTop(layer) {
  99.  
  100.   if (isMinNS4)
  101.     return(layer.pageY);
  102.   if (isMinIE4)
  103.     return(layer.offsetTop);
  104.   return(-1);
  105. }
  106.  
  107. function getWidth(layer) {
  108.  
  109.   if (isMinNS4) {
  110.     if (layer.document.width)
  111.       return(layer.document.width);
  112.     else
  113.       return(layer.clip.right - layer.clip.left);
  114.   }
  115.   if (isMinIE4) {
  116.     if (layer.style.pixelWidth)
  117.       return(layer.style.pixelWidth);
  118.     else
  119.       return(layer.clientWidth);
  120.   }
  121.   return(-1);
  122. }
  123.  
  124. function getHeight(layer) {
  125.  
  126.   if (isMinNS4) {
  127.     if (layer.document.height)
  128.       return(layer.document.height);
  129.     else
  130.       return(layer.clip.bottom - layer.clip.top);
  131.   }
  132.   if (isMinIE4) {
  133.     if (false && layer.style.pixelHeight)
  134.       return(layer.style.pixelHeight);
  135.     else
  136.       return(layer.clientHeight);
  137.   }
  138.   return(-1);
  139. }
  140.  
  141. function getzIndex(layer) {
  142.  
  143.   if (isMinNS4)
  144.     return(layer.zIndex);
  145.   if (isMinIE4)
  146.     return(layer.style.zIndex);
  147.  
  148.   return(-1);
  149. }
  150.  
  151. function setzIndex(layer, z) {
  152.  
  153.   if (isMinNS4)
  154.     layer.zIndex = z;
  155.   if (isMinIE4)
  156.     layer.style.zIndex = z;
  157. }
  158.  
  159.  
  160. function clipLayer(layer, clipleft, cliptop, clipright, clipbottom) {
  161.  
  162.   if (isMinNS4) {
  163.     layer.clip.left   = clipleft;
  164.     layer.clip.top    = cliptop;
  165.     layer.clip.right  = clipright;
  166.     layer.clip.bottom = clipbottom;
  167.   }
  168.   if (isMinIE4)
  169.     layer.style.clip = 'rect(' + cliptop + ' ' +  clipright + ' ' + clipbottom + ' ' + clipleft +')';
  170. }
  171.  
  172. function getClipLeft(layer) {
  173.  
  174.   if (isMinNS4)
  175.     return(layer.clip.left);
  176.   if (isMinIE4) {
  177.     var str =  layer.style.clip;
  178.     if (!str)
  179.       return(0);
  180.     var clip = getIEClipValues(layer.style.clip);
  181.     return(clip[3]);
  182.   }
  183.   return(-1);
  184. }
  185.  
  186. function getClipTop(layer) {
  187.  
  188.   if (isMinNS4)
  189.     return(layer.clip.top);
  190.   if (isMinIE4) {
  191.     var str =  layer.style.clip;
  192.     if (!str)
  193.       return(0);
  194.     var clip = getIEClipValues(layer.style.clip);
  195.     return(clip[0]);
  196.   }
  197.   return(-1);
  198. }
  199.  
  200. function getClipRight(layer) {
  201.  
  202.   if (isMinNS4)
  203.     return(layer.clip.right);
  204.   if (isMinIE4) {
  205.     var str =  layer.style.clip;
  206.     if (!str)
  207.       return(layer.style.pixelWidth);
  208.     var clip = getIEClipValues(layer.style.clip);
  209.     return(clip[1]);
  210.   }
  211.   return(-1);
  212. }
  213.  
  214. function getClipBottom(layer) {
  215.  
  216.   if (isMinNS4)
  217.     return(layer.clip.bottom);
  218.   if (isMinIE4) {
  219.     var str =  layer.style.clip;
  220.     if (!str)
  221.       return(layer.style.pixelHeight);
  222.     var clip = getIEClipValues(layer.style.clip);
  223.     return(clip[2]);
  224.   }
  225.   return(-1);
  226. }
  227.  
  228. function getClipWidth(layer) {
  229.  
  230.   if (isMinNS4)
  231.     return(layer.clip.width);
  232.   if (isMinIE4) {
  233.     var str = layer.style.clip;
  234.     if (!str)
  235.       return(layer.style.pixelWidth);
  236.     var clip = getIEClipValues(layer.style.clip);
  237.     return(clip[1] - clip[3]);
  238.   }
  239.   return(-1);
  240. }
  241.  
  242. function getClipHeight(layer) {
  243.  
  244.   if (isMinNS4)
  245.     return(layer.clip.height);
  246.   if (isMinIE4) {
  247.     var str =  layer.style.clip;
  248.     if (!str)
  249.       return(layer.style.pixelHeight);
  250.     var clip = getIEClipValues(layer.style.clip);
  251.     return(clip[2] - clip[0]);
  252.   }
  253.   return(-1);
  254. }
  255.  
  256. function getIEClipValues(str) {
  257.  
  258.   var clip = new Array();
  259.   var i;
  260.  
  261.   // Parse out the clipping values for IE layers.
  262.  
  263.   i = str.indexOf("(");
  264.   clip[0] = parseInt(str.substring(i + 1, str.length), 10);
  265.   i = str.indexOf(" ", i + 1);
  266.   clip[1] = parseInt(str.substring(i + 1, str.length), 10);
  267.   i = str.indexOf(" ", i + 1);
  268.   clip[2] = parseInt(str.substring(i + 1, str.length), 10);
  269.   i = str.indexOf(" ", i + 1);
  270.   clip[3] = parseInt(str.substring(i + 1, str.length), 10);
  271.   return(clip);
  272. }
  273.  
  274. function scrollLayerTo(layer, x, y, bound) {
  275.  
  276.   var dx = getClipLeft(layer) - x;
  277.   var dy = getClipTop(layer) - y;
  278.  
  279.   scrollLayerBy(layer, -dx, -dy, bound);
  280. }
  281.  
  282. function scrollLayerBy(layer, dx, dy, bound) {
  283.  
  284.   var cl = getClipLeft(layer);
  285.   var ct = getClipTop(layer);
  286.   var cr = getClipRight(layer);
  287.   var cb = getClipBottom(layer);
  288.  
  289.   if (bound) {
  290.     if (cl + dx < 0)
  291.  
  292.       dx = -cl;
  293.  
  294.     else if (cr + dx > getWidth(layer))
  295.       dx = getWidth(layer) - cr;
  296.     if (ct + dy < 0)
  297.  
  298.       dy = -ct;
  299.  
  300.     else if (cb + dy > getHeight(layer))
  301.       dy = getHeight(layer) - cb;
  302.   }
  303.  
  304.   clipLayer(layer, cl + dx, ct + dy, cr + dx, cb + dy);
  305.   moveLayerBy(layer, -dx, -dy);
  306. }
  307.  
  308. function setBgColor(layer, color) {
  309.  
  310.   if (isMinNS4)
  311.     layer.bgColor = color;
  312.   if (isMinIE4)
  313.     layer.style.backgroundColor = color;
  314. }
  315.  
  316. function setBgImage(layer, src) {
  317.  
  318.   if (isMinNS4)
  319.     layer.background.src = src;
  320.   if (isMinIE4)
  321.     layer.style.backgroundImage = "url(" + src + ")";
  322. }
  323.  
  324.  
  325. function getLayer(name) {
  326.  
  327.   if (isMinNS4)
  328.     return findLayer(name, document);
  329.   if (isMinIE4)
  330.     return eval('document.all.' + name);
  331.  
  332.   return null;
  333. }
  334.  
  335. function findLayer(name, doc) {
  336.  
  337.   var i, layer;
  338.  
  339.   for (i = 0; i < doc.layers.length; i++) {
  340.     layer = doc.layers[i];
  341.     if (layer.name == name)
  342.       return layer;
  343.     if (layer.document.layers.length > 0) {
  344.       layer = findLayer(name, layer.document);
  345.       if (layer != null)
  346.         return layer;
  347.     }
  348.   }
  349.  
  350.   return null;
  351. }
  352.  
  353.  
  354.  
  355. function getWindowWidth() {
  356.  
  357.   if (isMinNS4)
  358.     return(window.innerWidth);
  359.   if (isMinIE4)
  360.     return(document.body.clientWidth);
  361.   return(-1);
  362. }
  363.  
  364. function getWindowHeight() {
  365.  
  366.   if (isMinNS4)
  367.     return(window.innerHeight);
  368.   if (isMinIE4)
  369.     return(document.body.clientHeight);
  370.   return(-1);
  371. }
  372.  
  373. function getPageWidth() {
  374.  
  375.   if (isMinNS4)
  376.     return(document.width);
  377.   if (isMinIE4)
  378.     return(document.body.scrollWidth);
  379.   return(-1);
  380. }
  381.  
  382. function getPageHeight() {
  383.  
  384.   if (isMinNS4)
  385.     return(document.height);
  386.   if (isMinIE4)
  387.     return(document.body.scrollHeight);
  388.   return(-1);
  389. }
  390.  
  391. function getPageScrollX() {
  392.  
  393.   if (isMinNS4)
  394.     return(window.pageXOffset);
  395.   if (isMinIE4)
  396.     return(document.body.scrollLeft);
  397.   return(-1);
  398. }
  399.  
  400. function getPageScrollY() {
  401.  
  402.   if (isMinNS4)
  403.     return(window.pageYOffset);
  404.   if (isMinIE4)
  405.     return(document.body.scrollTop);
  406.   return(-1);
  407. }
  408.