function SetMailState (msg, isOK)
{
  GetObjectByRef ('EmailRequested').innerHTML = msg;
  if (isOK)
    GetObjectByRef ('DoSend').style.display = 'inline';
  else
    GetObjectByRef ('DoSend').style.display = 'none';
}

var urlCheck = null;
var checkMailTimeout=0;

function IsValidMail ()
{
  try
  {
    if (urlCheck)
    {
      if (urlCheck.request.readyState == 4  && urlCheck.request.status == 200)
      {
        if (urlCheck && urlCheck.request.responseText == "<Result>Valid</Result>")
          SetMailState ('' ,true);
        else
          SetMailState ('Dit <b>lijkt</b> een ongeldig e-mail adres. Gelieve het te verifiëren.', true);
        if (checkMailTimeout > 0)
        {
          window.clearTimeout (checkMailTimeout);
          checkMailTimeout = 0;
       }
        return;
      }
    }
  }
  catch (e)
  {
    if (e.description.indexOf ("Unspecified error") < 0)
      alert('Caught Exceptiond: ' + d);
  }
}

function allowMail ()
{
  checkMailTimeout = 0;
  window.clearTimeout (checkMailTimeout);
  SetMailState ('Dit e-mail adres konden we niet verifiëren. Controleer of het juist is.', true);
}

function checkEmail (o)
{
  var e = o.value;
  if (checkMailTimeout > 0)
  {
    window.clearTimeout (checkMailTimeout);
    checkMailTimeout = 0;
  }
  if (e.length == 0)
    SetMailState ('Een e-mail adres is vereist', false);
  else
  {
    var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+$/;
    if(reg.test(e)) 
    {
      SetMailState ('Nakijken e-mail adres', false);
      urlCheck = new CAjax ();
      urlCheck.Get (IsValidMail, 'Include/isValidMail.php?Mail=' + e);
      checkMailTimeout = window.setTimeout ('allowMail', 5000);
    }
    else
      SetMailState ('Dit is geen geldig e-mail adres', false);
  }
}


