// $Id: functions.js,v 1.5 2009-09-17 18:39:20 joop Exp $

function validate_aanmelden_form(form){
	var error_text = "";

	if(form["field[0]"].value == "" || !validateName(form["field[0]"].value)){
		error_text = error_text + "U heeft uw voornaam niet ingevuld\n\n";
	}

	if(form["field[1]"].value == "" || !validateName(form["field[1]"].value)){
		error_text = error_text + "U heeft uw achternaam niet ingevuld\n\n";
	}

	if(form["field[2]"].value == "" || !validateEmail(form["field[2]"].value)){
		error_text = error_text + "U heeft uw e-mail adres niet ingevuld\n\n";
	}

	if(form["field[3]"].value != "" && !validateName(form["field[3]"].value)){
		error_text = error_text + "U heeft uw woonplaats niet ingevuld\n\n";
	}

	if(form["field[5]"].value != "" && !validatePhone(form["field[5]"].value)){
		error_text = error_text + "U heeft uw telefoonnummer niet ingevuld\n\n";
	}

	if(form["field[4]"].value != "" && !validateDate(form["field[4]"].value)){
		error_text = error_text + "U heeft de geboortedatum niet ingevuld\n\n";
	}

	if(form["gender_name"][0].checked == false && form["gender_name"][1].checked == false){
		error_text = error_text + "U heeft uw geslacht niet ingevuld\n\n";
	}

  var numCategories = 0;
  for (var i = 0, element; element = form.elements[i]; i++)
    if (element.name == "cateId[]" && element.checked) numCategories++;
  if (numCategories == 0) error_text += "U heeft geen categorie geselecteerd\n\n";

	if (error_text != "") {
		alert(error_text);
	}
  else {
    $("#fmform :submit").attr("disabled", "disabled");
    $.post(
      "/captcha/ajax_test.php"
    , { captcha_code: $("#captchaCode").val() }
    , function(response){
        if (response.match(/^OK/) != null) { document.forms["fmform"].submit(); }
        else { alert("Captcha-code is incorrect"); }
      }
    , "text"
    );
    $("#fmform :submit").removeAttr("disabled");
	}
	return false;
}


function validate_aanmelden_form_backend(){
	var error_text = "";

	var	form = document.getElementById('aanmelden_form_be');

	if(form["Voornaam"].value == "" || !validateName(form["Voornaam"].value)){
		error_text = error_text + "U heeft uw voornaam niet ingevuld\n\n";
	}

	if(form["Achternaam"].value == "" || !validateName(form["Achternaam"].value)){
		error_text = error_text + "U heeft uw achternaam niet ingevuld\n\n";
	}

	if(form["email"].value == "" || !validateEmail(form["email"].value)){
		error_text = error_text + "U heeft uw e-mail adres niet ingevuld\n\n";
	}

	if(form["Woonplaats"].value != "" && !validateName(form["Woonplaats"].value)){
		error_text = error_text + "U heeft uw woonplaats niet ingevuld\n\n";
	}

	if(form["Telefoon"].value != "" && !validatePhone(form["Telefoon"].value)){
		error_text = error_text + "U heeft uw telefoonnummer niet ingevuld\n\n";
	}

	if(form["birth_date"].value != "" && !validateDate(form["birth_date"].value)){
		error_text = error_text + "U heeft de geboortedatum niet ingevuld\n\n";
	}

	if(form["gender_name"][0].checked == false && form["gender_name"][1].checked == false){
		error_text = error_text + "U heeft uw geslacht niet ingevuld\n\n";
	}


	if (error_text != ""){
		alert(error_text);
		return false;
	}else{
		return true;
	}
}

function validate_afmelden_form(form){
	var error_text = "";

	if(form["field[2]"].value == "" ||  !validateEmail(form["field[2]"].value)){
		error_text = error_text + "U heeft uw e-mail adres niet ingevuld\n\n";
	}

	if (error_text != ""){
		alert(error_text);
		return false;
	}else{
		return true;
	}
}


function validate_unsubscribe_confirm_form(form)
{
	var error_text = "";

  var numCategories = 0;
  for (var i = 0, element; element = form.elements[i]; i++)
  {
    if (element.name == "cateId[]" && element.checked) numCategories++;
  }
  if (numCategories == 0) error_text += "U heeft geen categorie geselecteerd.\n\n";

	if (error_text != "")
  {
		alert(error_text);
		return false;
	}
  else
  {
		return true;
	}
} // validate_unsubscribe_confirm_form


function testRegExp(teststring, re) {
	return new RegExp(re).test(teststring);
}

function validateName(string)
{
	var reg = /^[a-z\'\- ]+$/i
	return reg.test(string)
}

function validatePhone(string)
{
	var reg = /^[\d\-]+$/
	return reg.test(string)
}

function validateDate(string)
{
	var reg = /^\d\d?[\-\.\/]\d\d?[\-\.\/]\d\d\d\d$/
	if(reg.test(string))
	{
		date = string.split('-');
		if((date[0]<1)||(date[0]>31)) // date
		{
			return false;
		}
		else if((date[1]<1)||(date[1]>12)) // month
		{
			return false;
		}
		else if((date[2]<1900)||(date[2]>2003)) // year
		{
			return false;
		}
		else
		{
			return true;
		}
	}
	else
	{
		return false;
	}
}

function validateEmail(teststring) {
	var reg = /^[0-9a-z]([-.]?[_0-9a-z])*@[0-9a-z]([-.]?[0-9a-z])*\.[a-z]{2,4}$/i
	return reg.test(teststring)
	// return testRegExp(teststring, '^[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+@[-!#$%&\'*+\\/0-9=?A-Z^_`a-z{|}~]+\.[-!#$%&\'*+\\./0-9=?A-Z^_`a-z{|}~]+$');
}

function validatePostcode(teststring) {
	return testRegExp(teststring, '^\\d\\d\\d\\d\\w\\w$');
}

function validatePhone(teststring) {
	return testRegExp(teststring, '^\\d\\d(?:\\s?-?\\d|\\d\\s?-?)\\d{7}$');
}
