function addEvent(obj, evType, fn)
{
    if (obj.addEventListener)
    {
         obj.addEventListener(evType, fn, true);
         return true;
    }
    else if (obj.attachEvent)
    {
        var r = obj.attachEvent("on"+evType, fn);
        return r;
    } 
    else 
    {
        return false;
    }
}

function toggleDisplay(obj)
{
  var show = false;
  if ($(obj).style.display == 'none')
  {
    $(obj).style.display = '';
    show = true;
  }
  else
  {
    $(obj).style.display = 'none';
  }
   
  if (arguments[1])
  {
    $(arguments[1]).src = (show ? arguments[3] : arguments[2]);
  }
}

function disableNodeList(nodeList, disable)
{
  if (disable)
  {
	  $A(nodeList).each(function(node)
	  {
      if (!node.disabled)
      {
        if (node.parentNode.className != 'buttonrow') 
        {
          //node.className = 'readonly';
          node.disabled = true;
        }
      }
    });
  }
  else
  {
	  $A(nodeList).each(function(node)
	  {
      if (node.disabled)
      {
        node.className = (node.type == 'button') ? 'button' : '';
        node.disabled = false;
      }
    });
  }
}

function disableForm(formName, disable)
{
  var nodeList = $(formName).getElementsByTagName('INPUT');
  disableNodeList(nodeList, disable);
  nodeList = $(formName).getElementsByTagName('TEXTAREA');
  disableNodeList(nodeList, disable);
  nodeList = $(formName).getElementsByTagName('SELECT');
  disableNodeList(nodeList, disable);
}

function clearForm(formName)
{
  var nodeList = $(formName).getElementsByTagName('INPUT');
  $A(nodeList).each(function(node)
  {
    if (node.type == 'checkbox')
      node.checked = false;
    else if (node.type != 'button')
      node.value = '';
  });

  nodeList = $(formName).getElementsByTagName('TEXTAREA');
  $A(nodeList).each(function(node)
  {
    node.innerHTML = '';
  });
  
  nodeList = $(formName).getElementsByTagName('SELECT');
  $A(nodeList).each(function(node)
  {
    //TODO
  });
}

