// Adds event to window.onload without overwriting currently assigned onload functions.
function addLoadEvent(func)
{    
    var oldonload = window.onload;
    if (typeof window.onload != 'function')
    {
        window.onload = func;
    } 
    else 
    {
        window.onload = function()
        {
            oldonload();
            func();
        }
    }
}

function checkReplyForm() {
  // Get form elements
  var replyEmail = trim(document.getElementById("title").value);
  var replyName = trim(document.getElementById("author").value);
  var replyMessage = trim(document.getElementById("message").value);
  var replyForm = document.getElementsByName("postmsg");

  // Get div containers
  var emailContainer = document.getElementById("emailContainer");
  var authorContainer = document.getElementById("authorContainer");
  var messageContainer = document.getElementById("messageContainer");

  // Get error messages
  var emailContainerError = document.getElementById("emailContainerError");
  var validContainerError = document.getElementById("validContainerError");
  var authorContainerError = document.getElementById("authorContainerError");
  var messageContainerError = document.getElementById("messageContainerError");

  // If everything is ok, submit
  if(replyEmail != '' && replyName != '' && replyMessage != '' && isValidEmailAddress(replyEmail)) {
    replyForm[0].submit();
    return;
  }
  
  // Reset divs and errors
  emailContainer.className = "";
  authorContainer.className = "";
  messageContainer.className = "";
  
  emailContainerError.style.display = "none";
  validContainerError.style.display = "none";
  authorContainerError.style.display = "none";
  messageContainerError.style.display = "none";

  if(replyEmail == '') {
    emailContainer.className = "required-error";
    emailContainerError.style.display = "block";
  }

  if(replyName == '') {
    authorContainer.className = "required-error";
    authorContainerError.style.display = "block";
  }

  if(replyMessage == '') {
    messageContainer.className = "required-error";
    messageContainerError.style.display = "block";
  }
  
  if(!isValidEmailAddress(replyEmail)) {
    emailContainer.className = "required-error";
    validContainerError.style.display = "block";
  }
}

function trim(value) {
  value = value.replace(/^\s+/,'');
  value = value.replace(/\s+$/,'');
  return value;
}

function isValidEmailAddress(emailAddress) {
  var myExpression = /^[a-zA-Z][\w\.-]*[a-zA-Z0-9]@[a-zA-Z0-9][\w\.-]*[a-zA-Z0-9]\.[a-zA-Z][a-zA-Z\.]*[a-zA-Z]$/;

  if(emailAddress != null && emailAddress != '' && myExpression.test(emailAddress)) {
    return true;
  } else {
    return false;
  }
}

