/**
 * @author: Roberto Gorjão (www.castelosnoar.com)
 */
function validateForm()
{
  var oAchtErrorMark = document.getElementById("achternaam_errorMark");
  var oAchternaam = document.getElementById("achternaam");
  var oAdressErrorMark = document.getElementById("adres_errorMark");
  var oAdress = document.getElementById("adres");
  var oPostErrorMark = document.getElementById("postcode_errorMark");
  var oPost = document.getElementById("postcode");
  var oWoonErrorMark = document.getElementById("woonplaats_errorMark");
  var oWoon = document.getElementById("woonplaats");
  var oTelErrorMark = document.getElementById("telefoon_errorMark");
  var oTel = document.getElementById("telefoon");
  var oEmailErrorMark = document.getElementById("e_mail_errorMark");
  var oEmail = document.getElementById("e_mail");
  var oBankErrorMark = document.getElementById("banknaam_errorMark");
  var oBank = document.getElementById("banknaam");
  var oDatum = document.getElementById("geboortedatum");
  var oDatumErrorMark = document.getElementById("geboortedatum_errorMark");

  var bError = 0;
  var oErrorReportContainer = document.getElementById("errorReportContainer");
  var oErrorReport = document.getElementById("errorReport");

  var reEmailPattern = /^[\w\.\-]+@([\w\-]+\.)+[a-zA-Z]+$/;
  var bEmailTest = reEmailPattern.test(oEmail.value);
  var reDatumPattern = /^\d{2}-\d{2}-\d{4}$/;
  var bDatumTest = reDatumPattern.test(oDatum.value);

  if (oAchternaam.value == "")
  {
    oAchtErrorMark.style.display = "inline";
    bError = 1;
  }
  if (oAdress.value == "")
  {
    oAdressErrorMark.style.display = "inline";
    bError = 1;
  }
  if (oPost.value == "")
  {
    oPostErrorMark.style.display = "inline";
    bError = 1;
  }
  if (oWoon.value == "")
  {
    oWoonErrorMark.style.display = "inline";
    bError = 1;
  }
  if (oTel.value == "")
  {
    oTelErrorMark.style.display = "inline";
    bError = 1;
  }
  if (oEmail.value == "" || oEmail.value == "     @    .nl" || bEmailTest == false)
  {
    oEmailErrorMark.style.display = "inline";
    bError = 1;
  }
  if (oBank.value == "")
  {
    oBankErrorMark.style.display = "inline";
    bError = 1;
  }
  if (oDatum.value == "" || oDatum.value == "dd-mm-yyyy" || bDatumTest == false)
  {
    oDatumErrorMark.style.display = "inline";
    bError = 1;
  }
  if (bError == 1)
  {
    var nPageHeight = document.getElementById("wrapper").offsetHeight;
    oErrorReportContainer.style.height = nPageHeight + "px";
    oErrorReportContainer.style.display = "block";
    var aOffset = getScrollingPosition();
    var nOffsetTop = aOffset[1];
    var nErrorReportHeight = oErrorReport.offsetHeight;
    var nErrorReportMarginTop = (nPageHeight - nOffsetTop - nErrorReportHeight)/2 + nOffsetTop;
    oErrorReport.style.marginTop = nErrorReportMarginTop + "px";
    return false;
  }
  else
  {
    oErrorReportContainer.style.display = "none";
    return true;
  }
}

function clearErrorReport()
{
  var oErrorReportContainer = document.getElementById("errorReportContainer");
  oErrorReportContainer.style.display = "none";
}

function hideAlert(elem)
{
  var oElem = elem;
  var sElemId = elem.id;
  var sElemErrorMarkId = sElemId + "_errorMark";
  var oElemerrorMark = document.getElementById(sElemErrorMarkId);
  oElemerrorMark.style.display = "none";
  switch (sElemId)
  {
    case "e_mail":
    oElem.value = "     @    .  ";
    break;
    case "geboortedatum":
    oElem.value = "dd-mm-yyyy";
    break;
  }
}

function getScrollingPosition()
{
  //by James Edwards and Cameron Adams
  //in "The JavaScript Anthology"
  var position = [0, 0];

  if (typeof window.pageYOffset != 'undefined')
  {
    position =
    [
      window.pageXOffset,
      window.pageYOffset
    ];
  }
  else if (typeof document.documentElement.scrollTop != 'undefined' && document.documentElement.scrollTop > 0)
  {
    position =
    [
      document.documentElement.scrollLeft,
      document.documentElement.scrollTop
    ];
  }
  else if (typeof document.body.scrollTop != 'undefined')
  {
    position =
    [
      document.body.scrollLeft,
      document.body.scrollTop
    ];
  }
  return position;
}