$(
  function() {
    $('#contact_form').submit(
      function() {
          if(validate($(this))) {
            submit_form($(this));
          }
          return false;
      }
    );
  }
);

function validate(the_form) {
  var error = false;
  the_form.find('.required').each(
    function() {
      if(error) { return false; }
      if($(this).val() == '') {
        alert($(this).attr('title') + ' is required.');
        $(this).focus();
        error = true;
        return false;
      }
    }
  );
  the_form.find('.email').each(
    function() {
      if(error) { return false; }
      if(!validate_email($(this).val())) {
        $(this).focus();        
        error = true;
        return false;
      }
    }
  );
  return !error;
}

function submit_form(the_form) {
  $.post(the_form.attr('action') + '?ajax=true', 
    the_form.serialize(),
    function() {
      alert('Thanks for the submission.');
    }
  );
}

function validate_email(str) {
  var at="@"
  var dot="."
  var lat=str.indexOf(at)
  var lstr=str.length
  var ldot=str.indexOf(dot)
  if (str.indexOf(at)==-1){
     alert("Invalid E-mail ID")
     return false
  }

  if (str.indexOf(at)==-1 || str.indexOf(at)==0 || str.indexOf(at)==lstr){
     alert("Invalid E-mail ID")
     return false
  }

  if (str.indexOf(dot)==-1 || str.indexOf(dot)==0 || str.indexOf(dot)==lstr){
      alert("Invalid E-mail ID")
      return false
  }

   if (str.indexOf(at,(lat+1))!=-1){
      alert("Invalid E-mail ID")
      return false
   }

   if (str.substring(lat-1,lat)==dot || str.substring(lat+1,lat+2)==dot){
      alert("Invalid E-mail ID")
      return false
   }

   if (str.indexOf(dot,(lat+2))==-1){
      alert("Invalid E-mail ID")
      return false
   }
  
   if (str.indexOf(" ")!=-1){
      alert("Invalid E-mail ID")
      return false
   }
   return true					
}
