// (C) Copyright 2003 ASI Image Studios, Inc.  All Rights Reserved.

function doAction(actionText)
{
  var e;
  e = document.getElementById("action");
  e.value = actionText;
}

function doSubmit(formName)
{
  var e;
  e = document.getElementById(formName);
  e.submit();
}

function disableControl(controlName, controlState)
{
  var e;
  e = document.getElementById(controlName);
  e.disabled = controlState;
}

function collectText(nodeName)
{
  var src, text, j;

  src = document.getElementById(nodeName);
  if(!src || !src.childNodes)
    return("");

  for(j = 0, text = ""; j < src.childNodes.length; j++)
  {
    if(src.childNodes[j].nodeType == 3 /* TEXT_NODE */)
      text += src.childNodes[j].nodeValue;
  }
  return(text);
}

function displayNode(nodeName, displayStyle)
{
  var e;

  e = document.getElementById(nodeName);
  e.style.display = displayStyle;
}

function hide(nodeName)
{
  displayNode(nodeName, "none");
}

function unhide(nodeName)
{
  displayNode(nodeName, "block");
}

function copyImage(srcImageID, dstImageID)
{
  var src, dst;

  src = document.getElementById(srcImageID);
  dst = document.getElementById(dstImageID);
  dst.src = src.src;
  dst.style.width = src.style.width;
  dst.style.height = src.style.height;
  dst.style.padding = src.style.padding;
}

function alterObjectClass(object, postfix)
{
  if(object.className.lastIndexOf("-") != -1)
    object.className = object.className.substring(0, object.className.lastIndexOf("-")) + postfix;
  else
    object.className = object.className + postfix;
}

function popupHelpWindow(url, name)
{
  window.open(url, name, "width=400,height=300,location=no,menubar=no,scrollbars=yes,status=no,toolbar=no", false);
}

function replaceNodeText(theNode, theText)
{
  if(navigator.appName.indexOf("Microsoft") != -1)
    theNode.innerHTML = theText;
  else
  {
    while(theNode.hasChildNodes())
      theNode.removeChild(theNode.firstChild);
    theNode.appendChild(document.createTextNode(theText));
  }
}

function copyNodeText(destNode, srcNode)
{
  var i;

  if(navigator.appName.indexOf("Microsoft") != -1)
    destNode.innerHTML = srcNode.innerHTML;
  else
  {
    while(destNode.hasChildNodes())
      destNode.removeChild(destNode.firstChild);
    for(i = 0; i < srcNode.childNodes.length; i++)
      destNode.appendChild(srcNode.childNodes[i].cloneNode(true));
  }
}

function displayElement(node_id, displayStyle)
{
  var e;

  e = document.getElementById(node_id);
  if(e)
    e.style.display = displayStyle;
}

/* workaround for older browsers without a "toFixed" function in the
   Number class */
function numberToFixed(x, prec)
{
  var y, k, i, z;

  if(prec < 0)
    prec = 0;

  y = new Number(x);
  if(y.toFixed)
    return(y.toFixed(prec));

  for(i = 0, k = x; i < prec; i++)
    k *= 10;

  z = new String(k);
  if(z.length < prec)
  {
    while(z.length <= prec)
      z = "0" + z;
  }

  k = z.substr(0, z.length - prec) + "." + z.substr(z.length - prec);
  return(k);
}
