/**
  * cross-browser function to get an object's style object given its id
  */
function getElementById(objectId) {
  if (document.getElementById && document.getElementById(objectId)) {
    // W3C DOM
    return document.getElementById(objectId);
  } else if (document.all && document.all(objectId)) {
    // MSIE 4 DOM
    return document.all(objectId);
  } else if (document.layers && document.layers[objectId]) {
    // NN 4 DOM.. note: this won't find nested layers
    return document.layers[objectId];
  } else {
    return false;
  }
}

/**
 * function to get all elements of given class.
 */
function getElementsByClass(classname){
  var inc=0;
  var elements=new Array();
  var alltags=document.all? document.all : document.getElementsByTagName("*")

  for (i=0; i<alltags.length; i++){
    if (alltags[i].className==classname) {
      elements[inc++]=alltags[i];
    }
  }

  return elements;
}

function showInline(element) {
  s=element.style;

  if (element.nodeName=="DIV") {
    s.height="auto";
    s.display="block";
  } else if (element.nodeName=="TR") {
    s.display='table-row';
  } else {
    s.display='inline';
  }

  s.visibility='visible';
  return false;
}

function hideInline(element) {
  s=element.style;

  if (element.nodeName=="DIV") {
    s.height="0px";
  }

  s.display="none";
  s.visibility='hidden';
  return false;
}

/**
 * shows one of a number of elements, while hiding the others. The elements must
 * have names in this form... "prefix0", "prefix1", "prefix2" etc.
 * @param prefix - the id's name prefix
 * @param max - the highest id Number
 * @param selection - the id to show
 */
function showOne(prefix, max, selection) {
  for (i=0; i<=max; i++) {
    if (i==selection) {
      showInline(getElementById(prefix+i));
    } else {
      hideInline(getElementById(prefix+i));
    }
  }
  return false;
}