/************************************************
 * Formulier controle
  ************************************************/

function checkField(veldnaam) {
	if (document.getElementById(veldnaam)) { 
		if  (document.getElementById(veldnaam).value == "")   {
			document.getElementById(veldnaam).style.backgroundColor = '#FCE0E0'; 
			document.getElementById(veldnaam).style.border = '1px solid #AAAAAA'; 
			correctField = false;
		} else {
			document.getElementById(veldnaam).style.backgroundColor = '#FFFFFF'; 
			document.getElementById(veldnaam).style.border = '1px solid #AAAAAA'; 
			correctField = true;
		}
	} else {
		correctField = true;
	}
	return correctField;
}


function checkForm(form,land) {
	correct = true;
	if (form.name=="contactformulier") {
		correct = checkField('voorletters') && correct;
		correct = checkField('naam') && correct;
		mailgoed = EMail(document.getElementById('email').value);
		if (mailgoed) {
			document.getElementById('email').style.backgroundColor = '#FFFFFF'; 
			document.getElementById('email').style.border = '1px solid #AAAAAA'; 
		} else {
			document.getElementById('email').style.backgroundColor = '#FCE0E0'; 
			document.getElementById('email').style.border = '1px solid #AAAAAA'; 
		}
		correct = mailgoed && correct;
		correct = checkField('telefoon') && correct;
		
	} else if (form.name = 'makeoverformulier') {
		if(document.getElementById('kassabon').value != '') {
			kassabongoed = Afbeelding(document.getElementById('kassabon').value);
			if (kassabongoed) {
				document.getElementById('kassabon').style.backgroundColor = '#FFFFFF'; 
				document.getElementById('kassabon').style.border = '1px solid #AAAAAA'; 
			} else {
				document.getElementById('kassabon').style.backgroundColor = '#FCE0E0'; 
				document.getElementById('kassabon').style.border = '1px solid #AAAAAA'; 
				alert('Uw kassabon dient geupload te worden als BMP, GIF, JPG of PNG-afbeelding.');
			}
			correct = kassabongoed && correct;
		} else {
			document.getElementById('kassabon').style.backgroundColor = '#FCE0E0'; 
			document.getElementById('kassabon').style.border = '1px solid #AAAAAA'; 
			alert('U dient een kassabon mee te sturen.');
			correct = false;
		}
		correct = checkField('naam') && correct;
		var email = document.getElementById('email').value;
		if(email != '') {
			mailgoed = EMail(email);
			if (mailgoed) {
				document.getElementById('email').style.backgroundColor = '#FFFFFF'; 
				document.getElementById('email').style.border = '1px solid #AAAAAA'; 
			} else {
				document.getElementById('email').style.backgroundColor = '#FCE0E0'; 
				document.getElementById('email').style.border = '1px solid #AAAAAA'; 
			}
			correct = mailgoed && correct;
		}
		correct = checkField('adres') && correct;
		correct = checkField('postcode') && correct;
		postcodegoed = Postcode(document.getElementById('postcode').value, 'nl');
		if (postcodegoed) {
			document.getElementById('postcode').style.backgroundColor = '#FFFFFF'; 
			document.getElementById('postcode').style.border = '1px solid #AAAAAA'; 
		} else {
			document.getElementById('postcode').style.backgroundColor = '#FCE0E0'; 
			document.getElementById('postcode').style.border = '1px solid #AAAAAA'; 
		}
		correct = postcodegoed && correct;
		correct = checkField('plaats') && correct;
	}
	if (!correct) {
		if(land=="nl")
			alert('U hebt het formulier niet volledig of juist ingevuld.\nVul de rode velden alsnog in.');
		if(land=="fr")
			alert('Vous avez compl\u00E9ter le formulaire incompl\u00E8te ou incorrecte.\nRemplissez les champs rouges tout de m\u00EAme.');
	}
	return correct;
}


function EMail(s)
{
 var a = false;
 var res = false;
 if(typeof(RegExp) == 'function')
 {
  var b = new RegExp('abc');
  if(b.test('abc') == true){a = true;}
  }

 if(a == true)
 {
  reg = new RegExp('^([a-zA-Z0-9\\-\\.\\_]+)'+
                   '(\\@)([a-zA-Z0-9\\-\\.]+)'+
                   '(\\.)([a-zA-Z]{2,4})$');
  res = (reg.test(s));
 }
 else
 {
  res = (s.search('@') >= 1 &&
         s.lastIndexOf('.') > s.search('@') &&
         s.lastIndexOf('.') >= s.length-5)
 }
 return(res);
}

function Postcode(s, l)
{
	reg = l == 'nl' ? /^[1-9]{1}[0-9]{3}\s?[a-z|A-Z]{2}$/ : /^([A-Z]{1}[0-9]{4})|([0-9]{5})$/
	return reg.test(s);
}

function Afbeelding(s) {
	if(s.lastIndexOf(".jpg") >= 0 || s.lastIndexOf(".bmp") >=0 || s.lastIndexOf(".gif") >= 0 || s.lastIndexOf(".png") >= 0) {
		return true;
	}
	return false;
}



/* controle voor donatieformulier */

function checkDonatieForm(soort) {

	// check of het om een donatie gaat, of eenmalig steunen
	
	// BEGIN DONATEURVASTBEDRAG VALIDATIE
	if (document.donateur.donateuranders.value == "") {
		if (document.donateur.donateurvastbedrag ) {
			if ((!document.donateur.donateurvastbedrag[0].checked) && (!document.donateur.donateurvastbedrag[1].checked) && (!document.donateur.donateurvastbedrag[2].checked)) {
				alert("Een bedrag per maand aangeven.");
				document.donateur.donateurvastbedrag[0].focus();
				return (false);
			}
		} else {
			alert("U dient een bedrag in te vullen.");
			document.donateur.donateuranders.focus();
			return (false);
		}
	}
	// EINDE DONATEURVASTBEDRAG VALIDATIE

	// BEGIN DONATEURANDERSBEDRAG VALIDATIE
	if (!document.donateur.donateuranders.value == "") {
		for (var i=0; i< document.donateur.donateuranders.value.length; i++) {
			var abc = document.donateur.donateuranders.value.substring (i, i + 1);
			if (( abc < "0" || "9" < abc) && abc != "."){
				alert("Dit veld accepteert alleen getallen eventueel\nmet een punt, bijvoorbeeld: 20.75.");
				document.donateur.donateuranders.focus();
				return false;
			}
		}
		//Nu weet je zeker dat het een bedrag is. Check of de waarde groter is dan 3 (het minimale bedrag)
		bedrag = document.donateur.donateuranders.value * 1; //typecast to number
		if(soort!="donateur"){
			if (bedrag < 100) {
				alert("Het minimale bedrag is € 100.");
				document.donateur.donateuranders.focus();
				return false;
			}
		} else {
			if (bedrag < 3) {
				alert("Het minimale bedrag is € 3.");
				document.donateur.donateuranders.focus();
				return false;
			}
		}
	} 
	// EINDE DONATEURANDERSBEDRAG VALIDATIE

	// BEGIN DONATEURGEBOORTEDAG VALIDATIE
	if (document.donateur.donateurgeboortedag.value == "dag") {
		alert("Vul uw geboortedag in.");
		document.donateur.donateurgeboortedag.focus();
		return (false);
	}
	// EINDE DONATEURGEBOORTEDAG VALIDATIE

	// BEGIN DONATEURGEBOORTEMAAND VALIDATIE
	if (document.donateur.donateurgeboortemaand.value == "maand") {
		alert("Vul uw geboortemaand in.");
		document.donateur.donateurgeboortemaand.focus();
		return (false);
	}
	// EINDE DONATEURGEBOORTEMAAND VALIDATIE


	// BEGIN DONATEURGEBOORTEJAAR VALIDATIE
	if (document.donateur.donateurgeboortejaar.value == "jaar") {
		alert("Vul uw geboortejaar in.");
		document.donateur.donateurgeboortejaar.focus();
		return (false);
	}
	// EINDE DONATEURGEBOORTEJAAR VALIDATIE


	// BEGIN DONATEURGESLACHT VALIDATIE
	if ((!document.donateur.donateurgeslacht[0].checked) && (!document.donateur.donateurgeslacht[1].checked)) {
		alert("Keuze man of vrouw aangeven.");
		document.donateur.donateurgeslacht[0].focus();
		return (false);
	}
	// EINDE DONATEURGESLACHT VALIDATIE


	// BEGIN DONATEURNAAM VALIDATIE
	if (document.donateur.donateurnaam.value == "") {
		alert("Vul uw voorletter en achternaam in.");
		document.donateur.donateurnaam.focus();
		return (false);
	}
	// EINDE DONATEURNAAM VALIDATIE


	// BEGIN DONATEURADRES VALIDATIE
	if (document.donateur.donateuradres.value == "") {
		alert("Vul uw adres incl. huisnummer in.");
		document.donateur.donateuradres.focus();
		return (false);
	}
	// EINDE DONATEURADRES VALIDATIE


	// BEGIN DONATEURSPOSTCODE VALIDATIE
	var test = document.donateur.donateurpostcode.value; size = test.length
	var test = test.toUpperCase();
	while (test.slice(0,1) == " ") { test = test.substr(1,size-1);size = test.length }
	while(test.slice(size-1,size)== " "){ test = test.substr(0,size-1);size = test.length }
	document.donateur.donateurpostcode.value = test;
	if (size == 0) {
		//alert(""+test + " is geen geldige postcode\n verkeerde invoer of geen invoer");
		alert("Vul uw postcode in (bijv. 1111 AA).");
		document.donateur.donateurpostcode.focus();
		return false;
	}
	if (size < 7 || size > 7) {
		//alert(""+test + " is geen geldige postcode\n verkeerde invoer of geen invoer");
		alert("Vul een geldige postcode in (bijv. 1111 AA).");
		document.donateur.donateurpostcode.focus();
		return false;
	}	
	if (!(test.charAt(0))) { // het eerste karakter mag nooit een letter zijn
		//alert(""+test + " is geen geldige postcode\n postcode begint nooit met een letter");
		alert("Vul een geldige postcode in (bijv. 1111 AA).");
		document.donateur.donateurpostcode.focus();
		return false;
	}
	if (!(isNaN(test.charAt(size-1)))) { // Laatste karakter moet een letter zijn
		//alert(""+test + " is geen geldige postcode\n laatste karakter moet een letter zijn.");
		alert("Vul een geldige postcode in (bijv. 1111 AA).");
		document.donateur.donateurpostcode.focus();
		return false;
	}
	if (!(isNaN(test.charAt(size-2)))){ // Een na laatste karakter moet een letter zijn
		//alert(""+test + " is geen geldige postcode\n één na laatste karakter moet een letter zijn");
		alert("Vul een geldige postcode in (bijv. 1111 AA).");
		document.donateur.donateurpostcode.focus();
		return false;
	}
	if ((isNaN(test.charAt(size-4)))){ // vierde karakter moet een cijfer zijn
		//alert(""+test + " is geen geldige postcode\n vierde karakter moet een cijfer zijn");
		alert("Vul een geldige postcode in (bijv. 1111 AA).");
		document.donateur.donateurpostcode.focus();
		return false;
	}
	if (!(test.charAt(size-3) == " ")) { // spatie op positie 5
		//alert(""+test + " is geen geldige postcode\n geen spatie of spatie op verkeerde positie");
		alert("Vul een geldige postcode in (bijv. 1111 AA).");
		document.donateur.donateurpostcode.focus();
		return false;
	}
	count1 = test.indexOf(" ");count2 = test.lastIndexOf(" ");
	if (count1 != count2) { // er mag maar 1 spatie in voorkomen
		//alert(test + " is geen geldige postcode - er is maar één spatie toegestaan");
		alert("Vul een geldige postcode in (bijv. 1111 AA).");
		document.donateur.donateurpostcode.focus();
		return false;
	}
	// EINDE DONATEURSPOSTCODE VALIDATIE


	// BEGIN DONATEURWOONPLAATS VALIDATIE
	if (document.donateur.donateurwoonplaats.value == "") {
	alert("Vul uw woonplaats in.");
	document.donateur.donateurwoonplaats.focus();
	return (false);
	}
	// EINDE DONATEURWOONPLAATS VALIDATIE


	// BEGIN DONATEURTELEFOON VALIDATIE
	if (document.donateur.donateurtelefoon.value == "") {
		//alert("Vul uw telefoonnummer in !\nGebruik een streepje tussen het net en abonneenummer.\nBV: 0123-123456");  
		alert("Vul uw telefoonnummer in (inclusief streepje tussen net- en abonneenummer).");  
		document.donateur.donateurtelefoon.focus();
		return false;
	}
	for (var i=0; i< document.donateur.donateurtelefoon.value.length; i++) {
		var abc = document.donateur.donateurtelefoon.value.substring (i, i + 1);
		if (( abc < "0" ||"9" < abc) && abc != "-"){
			//alert("Dit veld accepteert alleen getallen en een '-'. \nVoer uw telefoonnummer alstublieft correct in. \nBV: 0123-123456");
			alert("Vul uw telefoonnummer in (inclusief streepje tussen net- en abonneenummer).");
			document.donateur.donateurtelefoon.focus();
			return false;
		}
		if (document.donateur.donateurtelefoon.value.length !=11) {
			//alert("Er zijn 10 cijfers en een streepje tussen \nhet net- en abonneenummer nodig !");
			alert("Vul uw telefoonnummer in (inclusief streepje tussen net- en abonneenummer).");
			document.donateur.donateurtelefoon.focus();
			return false;
		}
	}
	// EINDE DONATEURTELEFOON VALIDATIE



  // BEGIN DONATEURTEMAILADRES VALIDATIE
  if (document.donateur.donateuremail.value == "") {
    alert("Vul uw emailadres in.");
    document.donateur.donateuremail.focus();
    return (false);
  }
  if (!document.donateur.donateuremail.value == "") {
    var emailStr = document.donateur.donateuremail.value;
    var emailPat=/^(.+)@(.+)$/
    var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"
    var validChars="\[^\\s" + specialChars + "\]"
    var quotedUser="(\"[^\"]*\")"
    var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/
    var atom=validChars + '+'
    var word="(" + atom + "|" + quotedUser + ")"
    var userPat=new RegExp("^" + word + "(\\." + word + ")*$")
    var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")

    var matchArray=emailStr.match(emailPat)
    if (matchArray==null) {
    	alert("Vul een geldig emailadres in.")
      document.donateur.donateuremail.focus();
      return (false);
    }

    var user=matchArray[1]
    var domain=matchArray[2]
    if (user.match(userPat)==null) {
      alert("Vul een geldig emailadres in.")
      document.donateur.donateuremail.focus();
      return (false);
    }

    var IPArray=domain.match(ipDomainPat)
    if (IPArray!=null) {
  	  for (var i=1;i<=4;i++) {
  	    if (IPArray[i]>255) {
	        alert("Het IP adres klopt niet!")
          document.donateur.donateuremail.focus();
          return (false);
  	    }
      }
      return (true);
    }

    var domainArray=domain.match(domainPat)
    if (domainArray==null) {
    	alert("Vul een geldig emailadres in.")
      document.donateur.donateuremail.focus();
      return (false);
    }

    var atomPat=new RegExp(atom,"g")
    var domArr=domain.match(atomPat)
    var len=domArr.length
    if (domArr[domArr.length-1].length<2 || domArr[domArr.length-1].length>3) {
      alert(" Het adres moet eindigen in een drie letter domein\n of een tweeletter landcode.")
      document.donateur.donateuremail.focus();
      return (false);
    }

    if (len<2) {
      var errStr="Vul een geldig emailadres in."
      alert(errStr)
      document.donateur.donateuremail.focus();
      return (false);
    }
  }
  // EINDE DONATEURTEMAILADRES VALIDATIE

 
//  if (document.donateur.donateurbankgiro[0].checked) {
    var rekening=document.donateur.donateurrekening.value;
    var resultaat=0;
    var i=0;
    var quot=9;
    var totaal=0;

	var anum=/(^\d+$)|(^\d+\.\d+$)/
	if (!anum.test(rekening)) {
		resultaat=1
	} else {
      if (rekening.length>9)
         {resultaat=2}
      if (rekening.length<9)
         {resultaat=3}
      }

    if (rekening.length==9) {
      for (i=0;i<rekening.length;i++) {
        totaal=totaal + parseInt(rekening.charAt(i))* quot;
        quot--;
      } 
      if ((totaal%11)!=0) {
        resultaat=5
      }
    }
	if (resultaat > 0) { 
		if (resultaat == 1) {
			//alert("Het banknummer moet alleen uit cijfers bestaan");
			alert("Vul uw rekeningnummer in.");
		} else if (resultaat ==2) {
			alert("Vul een correct rekeningnummer in.");
		} else if (resultaat ==3) {
			alert("Vul een correct rekeningnummer in.");
		} else if (resultaat ==5) {
			//alert("Het banknummer is niet juist (ongeldige 11-proef).");
			alert("Vul een correct rekeningnummer in.");
		}
		return false
	}
  //}
  // EINDE DONATEURBANKNUMMER VALIDATIE


  
  return (true);
}


