addLoadEvent(validate_form);

function validate_form() {
  if (document.getElementById("firstname")) {
  document.getElementById("firstname").onblur = validate_field;
  }
   else {
    return false;
  }

  if (document.getElementById("lastname")) {
  document.getElementById("lastname").onblur = validate_field;
  }
   else {
    return false;
  }

  if (document.getElementById("email")) {
  document.getElementById("email").onblur = validate_email_field;
  }
   else {
    return false;
  }
  if (document.getElementById("tex14_area")) {
  document.getElementById("tex14_area").onblur = validate_field;
  }

 else {
    return false;
  }

}

function ErrorDecorateElem(elem,borderStyle) {
  if (borderStyle == true) {
      elem.style.border = "1px solid red";
      elem.style.backgroundColor = "#F4D7D7";
      }
      else {
        elem.style.border = "1px solid #BCBCBC";
        elem.style.backgroundColor = "#ffffff";
        var elemimg = document.getElementById(elem.id+"img");
        elemimg.parentNode.removeChild(elemimg);
      }
}

function appendErrorMessage(elem) {
  var error_div = document.createElement("div");
  var warning = document.createElement("img");
  warning.src = "http://www.crewandhowell.com/images/warning.png";
  warning.id = elem.id+"img";
  error_div.style.position = "absolute";
  error_div.style.width = "21px";
  error_div.style.height = "16px";
  error_div.style.left = pageX(elem)+ (elem.offsetWidth+10) + "px";
  error_div.style.top = pageY(elem)+ "px";
  error_div.appendChild(warning);
  document.body.appendChild(error_div);


}

function validate_field () {
  if (this.value == "" || this.value == null) {
     ErrorDecorateElem(this,true);
     appendErrorMessage(this);

  }
  else {
     ErrorDecorateElem(this,false);
  }
}

function validate_email_field () {
  if (this.value == '' || /^[a-zA-Z0-9\.\-\_]+@[\w\_\-\.]+\.[a-zA-Z]{2,3}$/i.test(this.value)!= true) {
     ErrorDecorateElem(this,true);
     appendErrorMessage(this);

  }
  else {
     ErrorDecorateElem(this,false);
  }
}

// Find the X (Horizontal, Left) position of an element
function pageX(elem) {
    var p = 0;
    // We need to add up all of the offsets for every parent
    while ( elem.offsetParent ) {
        // Add the offset to the current count
        p += elem.offsetLeft;
        // and continue on to the next parent
        elem = elem.offsetParent;
    }
    return p;
}

// Find the Y (Vertical, Top) position of an element
function pageY(elem) {
    var p = 0;
    // We need to add up all the offsets for every parent
    while ( elem.offsetParent ) {
        // Add the offset to the current count
        p += elem.offsetTop;
        // and continue on to the next parent
        elem = elem.offsetParent;
    }
    return p;
}

