/********************************************************************
* cbdhtml.js                                                        *
* updated for drag events                                           *
*                                                                   *
* Lite version by Joe Cincotta 11.01.99                             *
********************************************************************/

var layerList = new Array();

function _debug(err)
{
	window.defaultStatus=err;
}

function createLayer(name, left, top, width, height, visible, content, m_over, m_out) {

  var z = layerList.length;
  var layer;
  var tmp_over=null;
  var tmp_out=null;  

  if(m_over)
  	tmp_over=m_over;
  if(m_out)
  	tmp_out=m_out;

  layerList[z] = name;

  if (document.layers) {
    document.writeln('<layer name="' + name + '" left=' + left + ' top=' + top + ' width=' + width + ' height=' + height +  ' visibility=' + (visible ? '"show"' : '"hide"') + ' z-index=' + z + ' onMouseover='+tmp_over+' onMouseout='+tmp_out+' >');
    document.writeln(content);
    document.writeln('</layer>');
    layer = getLayer(name);
    layer.width = width;
    layer.height = height;
  }

  if (document.all) {
    document.writeln('<div id="' + name + '" style="position:absolute; overflow:none; left:' + left + 'px; top:' + top + 'px; width:' + width + 'px; height:' + height + 'px;' + ' visibility:' + (visible ? 'visible;' : 'hidden;') + ' z-index:' + z + '" onMouseover='+tmp_over+' onMouseout='+tmp_out+' >');
    document.writeln(content);
    document.writeln('</div>');
  }

  clipLayer(name, 0, 0, width, height);
}

function hideLayer(name) {

  var layer = getLayer(name);

  if (document.layers)
    layer.visibility = "hide";
  if (document.all)
    layer.visibility = "hidden";
}

function showLayer(name) {

  var layer = getLayer(name);

  if (document.layers)
    layer.visibility = "show";
  if (document.all)
    layer.visibility = "visible";
}

function isVisible(name) {

  var layer = getLayer(name);

  if (document.layers && layer.visibility == "show")
    return(true);
  if (document.all && layer.visibility == "visible")
    return(true);
  return(false);
}

function moveLayer(name, x, y) {

  var layer = getLayer(name);

  if (document.layers)
    layer.moveTo(x, y);
  if (document.all) {
    layer.left = x;
    layer.top  = y;
  }
}

var animRate = 25;    // Basically sets the update rate for animations.

function clipLayer(name, clipleft, cliptop, clipright, clipbottom) {

  var layer = getLayer(name);

  if (document.layers) {
    layer.clip.left   = clipleft;
    layer.clip.top    = cliptop;
    layer.clip.right  = clipright;
    layer.clip.bottom = clipbottom;
  }
  if (document.all)
    layer.clip = 'rect(' + cliptop + ' ' +  clipright + ' ' + clipbottom + ' ' + clipleft +')';
}

function scrollLayer(name, dx, dy) {

  var cl = getClipLeft(name);
  var ct = getClipTop(name);
  var cr = getClipRight(name);
  var cb = getClipBottom(name);
  var l  = getLeft(name);
  var t  = getTop(name);

  // If scrolling the given amounts would move past the edges of the layer,
  // adjust the values so we stop right at the edge.

  if (cl + dx < 0)
    dx = -cl;
  else if (cr + dx > getWidth(name))
    dx = getWidth(name) - cr;
  if (ct + dy < 0)
    dy = -ct;
  else if (cb + dy > getHeight(name))
    dy = getHeight(name) - cb;

  // Move both the clipping region and the layer so that the contents move
  // but the viewable region of the layer appears fixed relative to the page.

  clipLayer(name, cl + dx, ct + dy, cr + dx, cb + dy);
  moveLayer(name, l - dx, t - dy);
}


function setBgColor(name, color) {

  var layer = getLayer(name);

  if (document.layers)
    layer.bgColor = color;
  else if (document.all)
    layer.backgroundColor = color;
}

function setBgImage(name, imagesrc) {

  var layer = getLayer(name);

  if (document.layers)
    layer.background.src = imagesrc;
  else if (document.all)
    layer.backgroundImage = "url(" + imagesrc + ")";
}

function replaceContent(name, content) {

  if (document.layers) {
    var layer = getLayer(name);
    layer.document.open();
    layer.document.writeln(content);
    layer.document.close();
  }
  else if (document.all) {
    var str = "document.all." + name + ".innerHTML = '" + content + "'";
    eval(str);
  }
}

function getLeft(name) {

  var layer = getLayer(name);

  if (document.layers)
    return(layer.left);
  else if (document.all)
    return(layer.pixelLeft);
  else
    return(null);
}

function getTop(name) {

  var layer = getLayer(name);

  if (document.layers)
    return(layer.top);
  else if (document.all)
    return(layer.pixelTop);
  else
    return(null);
}

function getRight(name) {

  var layer = getLayer(name);

  if (document.layers)
    return(layer.left + layer.width);
  else if (document.all)
    return(layer.pixelLeft + layer.pixelWidth);
  else
    return(null);
}

function getBottom(name) {

  var layer = getLayer(name);

  if (document.layers)
    return(layer.top + layer.height);
  else if (document.all)
    return(layer.pixelTop + layer.pixelHeight);
  else
    return(null);
}

function getWidth(name) {

  var layer = getLayer(name);

  if (document.layers)
    return(layer.width);
  else if (document.all)
    return(layer.pixelWidth);
  else
    return(null)
}

function getHeight(name) {

  var layer = getLayer(name);

  if (document.layers)
    return(layer.height);
  else if (document.all)
    return(layer.pixelHeight);
  else
    return(null);
}

function getClipLeft(name) {

  var layer = getLayer(name);

  if (document.layers)
    return(layer.clip.left);
  else if (document.all) {
    var str =  layer.clip;
    if (!str)
      return(0);
    var clip = getClipValues(layer.clip);
    return(clip[3]);
  }
  else
    return(null);
}

function getClipTop(name) {

  var layer = getLayer(name);

  if (document.layers)
    return(layer.clip.top);
  else if (document.all) {
    var str =  layer.clip;
    if (!str)
      return(0);
    var clip = getClipValues(layer.clip);
    return(clip[0]);
  }
  else
    return(null);
}

function getClipRight(name) {

  var layer = getLayer(name);

  if (document.layers)
    return(layer.clip.right);
  else if (document.all) {
    var str =  layer.clip;
    if (!str)
      return(layer.pixelWidth);
    var clip = getClipValues(layer.clip);
    return(clip[1]);
  }
  else
    return(null);
}

function getClipBottom(name) {

  var layer = getLayer(name);

  if (document.layers)
    return(layer.clip.bottom);
  else if (document.all) {
    var str =  layer.clip;
    if (!str)
      return(layer.pixelHeight);
    var clip = getClipValues(layer.clip);
    return(clip[2]);
  }
  else
    return(null);
}

function getClipWidth(name) {

  var layer = getLayer(name);

  if (document.layers)
    return(layer.clip.width);
  else if (document.all) {
    var str =  layer.clip;
    if (!str)
      return(layer.pixelWidth);
    var clip = getClipValues(layer.clip);
    return(clip[1] - clip[3]);
  }
  else
    return(null);
}

function getClipHeight(name) {

  var layer = getLayer(name);

  if (document.layers)
    return(layer.clip.height);
  else if (document.all) {
    var str =  layer.clip;
    if (!str)
      return(layer.pixelHeight);
    var clip = getClipValues(layer.clip);
    return(clip[2] - clip[0]);
  }
  else
    return(null);
}

function getWinWidth() {

  if (document.layers)
    return(window.innerWidth);
  else if (document.all)
    return(document.body.clientWidth);
  else
    return(null);
}

function getWinHeight() {

  if (document.layers)
    return(window.innerHeight);
  else if (document.all)
    return(document.body.clientHeight);
  else
    return(null);
}

function getzIndex(name) {

  var layer = getLayer(name);

  if (document.layers)
    return(layer.zIndex);
  else if (document.all)
    return(layer.zIndex);
  else
    return(null);
}

function setzIndex(name, z) {

  var layer = getLayer(name);

  if (document.layers)
    layer.zIndex = z;
  if (document.all)
    layer.zIndex = z;
}

function bringToFront(name) {

  var i, temp;

  layerList.sort(sortzIndex);

  i = layerList.length - 1;
  temp = getzIndex(layerList[i]);
  while (i > 0 && layerList[i] != name) {
    setzIndex(layerList[i], getzIndex(layerList[i - 1]));
    i--;
  }
  setzIndex(name, temp);
}

function sendToBack(name) {

  var i, temp;

  layerList.sort(sortzIndex);
  i = 0;
  temp = getzIndex(layerList[i]);
  while (i < layerList.length - 2 && layerList[i] != name) {
    setzIndex(layerList[i], getzIndex(layerList[i + 1]));
    i++;
  }
  setzIndex(name, temp);
}

function sortzIndex(a, b) {

  return(getzIndex(a) - getzIndex(b));
}

function getImgSrc(imagename) {

  var i, layer;

  // If the image exists in the document object, return the source.

  if (document.images[imagename])
    return document.images[imagename].src;

  // Otherwise, for Netscape, search through the layers for the named image.

  else if (document.layers)
    for (i = 0; i < layerList.length; i++) {
      layer = getLayer(layerList[i]);
      if (layer.document.images[imagename])
        return layer.document.images[imagename].src;
    }

  return(null);
}

function setImgSrc(imagename, imagesrc) {

  var i, layer;

  // If the image exists in the document object, change the source.

  if (document.images[imagename]) {
    document.images[imagename].src = imagesrc;
    return;
  }

  // Otherwise, for Netscape, search through the layers for the named image.

  else if (document.layers) {
    var found = false;
    for (i = 0; i < layerList.length && !found; i++) {
      layer = getLayer(layerList[i]);
      if (layer.document.images[imagename]) {
        layer.document.images[imagename].src = imagesrc;
        found = true;
      }
    }
  }
}

function getClipValues(str) {

  var clip = new Array();
  var i;

  // Parse out the clipping values for IE layers.

  i = str.indexOf("(");
  clip[0] = parseInt(str.substring(i + 1, str.length), 10);
  i = str.indexOf(" ", i + 1);
  clip[1] = parseInt(str.substring(i + 1, str.length), 10);
  i = str.indexOf(" ", i + 1);
  clip[2] = parseInt(str.substring(i + 1, str.length), 10);
  i = str.indexOf(" ", i + 1);
  clip[3] = parseInt(str.substring(i + 1, str.length), 10);
  return(clip);
}

function getLayer(name) {

  // Returns a handle to the named layer.

  if (document.layers)
    return(document.layers[name]);
  else if (document.all) {
    layer = eval('document.all.' + name + '.style');
    return(layer);
  }
  else
    return(null);
}

function makeArray(a) {

  var temp;

  if (!a.join) {
    temp = a;
    a = new Array();
    a[0] = temp;
  }
  return a;
}