function generic_validations(frm)
{
  result = true;
  for (x = 0; x < frm.length; x++)
  {
    el = frm.elements[x];
    switch (el.nodeName)
    {
      case "SELECT" :
            // Check for required field.
//          alert('The id is '+el.id+', the index is '+el.selectedIndex+' and the class is '+el.className);
          if (el.className.indexOf('required')!=-1)
          {
            if ((el.selectedIndex < 0) || (el.options[el.selectedIndex].value.length <= 0))
            {
                writeError(el.title+" requires a selection.");
                result = false;
            }
          }
          break;
      case "INPUT" :
          if ((el.className.indexOf('required')!=-1) && (el.value.length <= 1))
          {
              writeError(el.title+" requires a value.");
              result = false;
          }
          break;
      case "TEXTAREA" :
          if ((el.className.indexOf('required')!=-1) && (el.value.length <= 1))
          {
              writeError(el.title+" requires a value.");
              result = false;
          }
          if (el.value.length > el.maxlength) // undefined
          {
              writeError(el.title+" is too long.");
              result = false;
          }
          break;
      default :
//          if (el.className.indexOf('FP')>=0) alert('FP Class found');
    }
  }
  return result;
}

function writeError(msgText)
{
  var tbody = document.getElementById("messages");
  var tr=document.createElement('tr');
  var td=document.createElement('td');
  var span=document.createElement('span');
  span.setAttribute('class', 'error');
  var msg = document.createTextNode(msgText);
  span.appendChild(msg);
  td.appendChild(span);
  tr.appendChild(td);
  tbody.appendChild(tr);
}



