function CheckEmail_(str) {
  // must have @ and it should not be 1st or last
  if (str.search(/.+@.+/)==-1)      return false;
  // must have only one @
  if (str.search(/@.+@/)!=-1)       return false;
  // must not have .. after @
  if (str.search(/@.*\.\./)!=-1)    return false;
  // must have at least one. after @
  if (str.search(/@.+\..+/)==-1)    return false;
  // must not have . at the end
  if (str.search(/\.$/)!=-1)    return false;

  // must consist of the following chars: (?)
  var re = /\-|[A-Z]|[0-9]|_|@|&|\~|\/|\$|=|!|\"|\%|\.|\'/ig;
  if (str.replace(re,'')!='') return false;

  return true;
}


function do_subscribe() {

  name="salutation"; if (!$(name).value) { alert("Please enter " + name); $(name).focus();  return false; }
  name="first_name"; if (!$(name).value) { alert("Please enter " + name); $(name).focus();  return false; }
  name="surname"   ; if (!$(name).value) { alert("Please enter " + name); $(name).focus();  return false; }
  name="address"   ; if (!$(name).value) { alert("Please enter " + name); $(name).focus();  return false; }
  name="town"      ; if (!$(name).value) { alert("Please enter " + name); $(name).focus();  return false; }
  name="county"    ; if (!$(name).value) { alert("Please enter " + name); $(name).focus();  return false; }
  name="country"   ; if (!$(name).value) { alert("Please enter " + name); $(name).focus();  return false; }
  name="email"     ; if (!$(name).value) { alert("Please enter " + name); $(name).focus();  return false; }

  if (!CheckEmail_($(name).value))      { alert("Please enter valid " + name); $(name).focus();  return false; }

  name="phone"     ; if (!$(name).value) { alert("Please enter " + name); $(name).focus();  return false; }
  name="where"     ; if (!$(name).value) { alert("Please enter Where did you hear"); $(name).focus();  return false; }

  ajax_signups('index.php?action=ajax&func=newssignup&email='+encodeURIComponent($('email').value)
                                                   +"&first_name="+encodeURIComponent($('first_name').value)
                                                   +"&surname="+encodeURIComponent($('surname').value)
                                                   +"&salutation="+encodeURIComponent($('salutation').value)
                                                   +"&address="+encodeURIComponent($('address').value)
                                                   +"&address2="+encodeURIComponent($('address2').value)
                                                   +"&town="+encodeURIComponent($('town').value)
                                                   +"&county="+encodeURIComponent($('county').value)
                                                   +"&country="+encodeURIComponent($('country').value)
                                                   +"&where="+encodeURIComponent($('where').value)
                                                   +"&happy1="+encodeURIComponent($('happy1').checked)
                                                   +"&happy2="+encodeURIComponent($('happy2').checked)
                                                   +"&happy3="+encodeURIComponent($('happy3').checked)
    ,$('first_name').value)

}


function ajax_signups(request,your_name) {
  new Ajax.Request(request,
  {
    method:'get',
    onSuccess: function(transport){
      var txt = transport.responseText;

      alert('Thank you, '+your_name)

    },
    onFailure: function(){ alert('Something went wrong...') }
  }
  );
}

