// JavaScript Document
function prepareNewsForm()
{
  if(!document.getElementById) return false;
  if(!document.getElementsByTagName) return false;
  if(!document.getElementById("newsletter")) return false;
  
  var news = document.getElementById("newsletter");

  news.onsubmit = function()
  {
    return validateNewsForm();
  }
  return true;
}

function validateNewsForm()
{
  //alert("hello");
  if(!document.getElementById) return false;
  if(!document.getElementsByTagName) return false;
  if(!document.getElementById("newsletter")) return false;
  
  var news = document.getElementById("newsletter");
  
  /* reset error markers */
  resetErrors();
  
  /* validate the two input boxes */
  var error = true;
  var message = "The following inputs need to be filled:\n";
  var list = "";
  
  var inputs = news.getElementsByTagName("input");
  for(var i = 0; i<inputs.length; i++)
  {
    var input = inputs[i];
    //alert("oi " + input.id);
    if(input.value == "")
    {
      message += input.id + "\n";
      list += input.id + ",";
      error = false;
    }
  }
  
  if(list != "")
  {
    alert(message);
    highlightErrors(list);
  }
  
  return error;
}

function resetErrors()
{
  var labels = document.getElementsByTagName("label");
  var errorMessage = document.getElementById("errorMess")
  
  /*if(errorMessage.innerText.value != "&nbsp;")
  {
    errorMessage.innerText.value = "&nbsp;";
  }*/
  
  for(var i = 0; i<labels.length; i++)
  {
    var label = labels[i];
   
    if(label.className != "")
    {
      label.className = "";
    }
    //alert(label.className);
  }
}

function highlightErrors(errorList)
{
  //alert("highlight errors baby");
  if(!document.getElementById("errorMess")) {alert("no error message"); }
  
  var errorMessage = document.getElementById("errorMess");
  var childText = errorMessage.childNodes[0];
  errorMessage.removeChild(childText);
  var cellText = document.createTextNode("There are errors");  
  errorMessage.appendChild(cellText);
  
  errorList = errorList.substring(0, errorList.length -1);
  var list = errorList.split(",");
  
  //alert(list.length);
  var labels = document.getElementsByTagName("label");
  
  for(var i=0; i<labels.length; i++)
  {
    var label = labels[i];
    //alert(label.getAttribute("for"));
   for(var j =0; j<list.length; j++)
   {  
     //works for Firefox...
     /*if(label.getAttribute("for") == list[j])
     {
      //alert("Its the same!!");
      label.className="error";
     }*/
     
     //works for IE & Firefox
     //alert(label.firstChild.nodeValue);
     var name = label.firstChild.nodeValue.substring(0, label.firstChild.nodeValue.length -1).toLowerCase();
     //alert(name);
     if(name == list[j])
     {
      label.className = "error";
     }
     
   }
  }
}

addLoadEvent(prepareNewsForm);