// layerhandler.js
// Functions to handle layers in an HTML page
//
// Function MM_findObject based on Macromedia supplied code.
//
function MM_findObj(r, d) { //v4.0  special CourseBuilder version of findObj
  var p,n,i,x;
  if (!d) {
    d=document;
  }
  n=r.substring(r.lastIndexOf(".")+1);
  if (n.indexOf("layers[")==0) {
    n=n.substring(8,n.length-2);
  }
  if (parent.frames.length) {
    if (r.indexOf(".frames[")==6) {
      d=eval(r.substring(0,r.indexOf("]")+10));
    }
    if ((p=r.indexOf("?"))!=-1) {
      n=r.substring(0,p);
      d=parent.frames[r.substring(p+1)].document;
    }
  }
  if (!(x=d[n])&&d.all) {
    x=d.all[n];
  }
  for (i=0;!x&&i<d.forms.length;i++) {
    x=d.forms[i][n];
  }
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) {
    x=MM_findObj(n,d.layers[i].document);
  }
  if(!x && document.getElementById) {
    x=document.getElementById(n);
  }
  return x;
}

// Function getVisibility returns 'show' if layer is visible
// or 'hide' if hidden.
//
function getVisibility(arg) {
  var v,obj = arg;
  if (obj.style) {
    obj = obj.style;
  v = (obj.visibility == 'visible')?'show':'hide';
  } else {
    v = obj.visibility;
  }
  return (v);
}

// Function MM_showHideLayers based on Macromedia code
// modified to accept 3rd parameter value 'toggle' in addition
// to 'show' and 'hide'
//
function MM_showHideLayers() { //modified by KB for toggle function
  var i,p,v,viz,obj,args=MM_showHideLayers.arguments;
  for (i=0; i<(args.length-2); i+=3) {
    if ((obj=MM_findObj(args[i]))!=null) {
      v=args[i+2];
    viz = getVisibility(obj);
    if (v == 'toggle') {
        v = (viz == 'show')?'hide':'show';
      }
      if (obj.style) {
        obj = obj.style;
        v = (v == 'show')?'visible':(v == 'hide')?'hidden':v;
      }
      obj.visibility=v;
    }
  }
}

// Function hideAllLayers sets visibility of all layers
// in a document to hidden.
//
function hideAllLayers() {
  var layers,obj;
  if (document.layers) {
    layers = document.layers;
  } else if (document.all) {
    layers = document.all.tags('DIV');
  } else {
    layers = document.getElementsByTagName('DIV');
  }
  for (i=0; i<layers.length; i++) {
    obj = layers[i];
    MM_showHideLayers(obj.id,'','hide');
  }
}