var fileExt = new Array ('doc','docx','pdf','zip')


function postcodeCheck(invoer) {
  re = /^[1-9][0-9]{3} ?[a-zA-Z]{2}$/
  OK = re.exec(invoer.value);
  if (OK) 
     invoer.value = invoer.value.substr(0,4) + " " + invoer.value.substr(invoer.value.length - 2,2).toUpperCase();
  else
     alert (invoer.value + " is geen geldige Nederlandse postcode!");
}

function emailCheck(invoer) { 
   if (invoer.value == '') return true;
	re = /^[A-Za-z0-9_\-]+([.][A-Za-z0-9_\-]+)*[@][A-Za-z0-9_\-]+([.][A-Za-z0-9_\-]+)+$/
   OK = re.exec(invoer.value);
   if (OK) 
    	return true;
   else {
		if (msgemail != '') {
			alert(msgemail)
		} else {
			alert('Foutief emailadres');
		}	
	   return false;
	}
} 

function testverplicht(invoer) {
   var mnd = new Array (31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
   fout = -1;
	datum = 0;
   for (var i=0; i < invoer.elements.length; i++){
	  invoer.elements[i].className = '' 
	  if (invoer.elements[i].name.substr(0,5) == 'field') {
	     j = parseInt(invoer.elements[i].name.slice(5),10);
		  if (invoer.elements[i].name.lastIndexOf('Day') > 0){
		     dag = parseInt(invoer.elements[i].value,10);
			  datum = 1
		  }
		  if (invoer.elements[i].name.lastIndexOf('Month') > 0){
		     maand = invoer.elements[i].selectedIndex;
			  datum = 2
		  }
		  if (invoer.elements[i].name.lastIndexOf('Year') > 0){
		     jaar = parseInt(invoer.elements[i].value,10);
			  datum = 3
		  }
 		  	  	
		  if (datum == 3 && (!isNaN(dag) || !isNaN(jaar))){
		     if (isNaN(dag) || isNaN(jaar) || dag < 1) datum = 4;
			  if (jaar < 1901) datum = 4;
			  if (maand != 1 && dag > mnd[maand]) datum = 4;

			  if (datum == 3 && maand == 1 && dag > 28){
   			  if ((jaar % 4) != 0) datum = 4;
			  }
		  }

		  if (datum == 4) {
    	  	  invoer.elements[i - 2].className = 'markeer';
    	  	  invoer.elements[i - 1].className = 'markeer';
    	  	  invoer.elements[i].className = 'markeer';
			  if (fout < 0) fout = i;
		  }
		  else {
		     if (invoer.elements[i].id == 'file') {
			    if (invoer.elements[i].value != '') {
					if (!fileCheck(invoer.elements[i])) {
					  invoer.elements[i].className = 'markeer';
					  if (fout < 0) fout = i
					}
				 }
			  }
		  	  if (invoer.elements[i].id == 'email') {
			    if (invoer.elements[i].value != '') {
					re = /^[A-Za-z0-9_\-]+([.][A-Za-z0-9_\-]+)*[@][A-Za-z0-9_\-]+([.][A-Za-z0-9_\-]+)+$/
					OK = re.exec(invoer.elements[i].value);
					if (!OK) {
					  alert('Foutief emailadres');
    	  	        invoer.elements[i].className = 'markeer';
					  if (fout < 0) fout = i;
				   }
				 }
			  }
		  	  if (invoer.elements[i].id == 'postcode') {
			    if (invoer.elements[i].value != '') {
			  		  re = /^[1-9][0-9]{3} ?[a-zA-Z]{2}$/
  					  OK = re.exec(invoer.elements[i].value);
                 if (OK) 
                   invoer.elements[i].value = invoer.elements[i].value.substr(0,4) + " " + invoer.elements[i].value.substr(invoer.elements[i].value.length - 2,2).toUpperCase();
                 else
                   alert (invoer.elements[i].value + " is geen geldige Nederlandse postcode!");
				     }
			    }
           if (testfield.charAt(j-1) == 'J') {
	           if (invoer.elements[i].value == '') {
    	  	        invoer.elements[i].className = 'markeer';
		   	     if (fout < 0) fout = i;
				  }
		     }
		     else {
    	        invoer.elements[i].className = '';
			  }
   	  }
	  }
	}

	if (fout > -1){
		alert ('De gemarkeerde velden zijn niet (correct) ingevuld');
	   invoer.elements[fout].focus();
	   return false;
	} else { 
      document.getElementById('yck').value = getCookieData('cyc');
		if (document.getElementById('captchacode')) {
			if (document.getElementById('captchacode').value == '') {
				alert('Geen beveiligingscode opgegeven');
				return false;
			} else {
				return true;
			}
		} else {

			if (document.getElementById('pwdcode')) {
				var uitregel = document.getElementById('pwdcode').value
				for (var i=0; i < invoer.elements.length; i++){
					 if (invoer.elements[i].type != 'file' ) {
					  invoer.elements[i].className = '' 
					  if (invoer.elements[i].name.substr(0,5) == 'field') {
						   uitregel += invoer.elements[i].value
					  }
					  }
				}
				document.getElementById('pwdcode').value = SHA1(uitregel)
			}
			return true;
		}
	}
}

function herstel(invoer){
   for (var i=0; i < invoer.elements.length; i++) invoer.elements[i].className = '';
}


function openWindow(naam) {
	if (naam != '') {
		docwin = window.open(naam,'','height=450, width=650, resizable=yes')
		if (!docwin) {
			alert('Geen popup voor routeplanner mogelijk, controleer browserinstelling.')
		}
	}
}

function getCookieData(labelName) {
   var labelLen = labelName.length
	var cookieData = document.cookie
	var cLen = cookieData.length
	var i = 0
	var cEnd
	while (i < cLen) {
	   var j = i + labelLen
		if (cookieData.substring(i,j) == labelName) {
		   cEnd = cookieData.indexOf(";",j)
			if (cEnd == -1) {
			    cEnd = cookieData.length
			}
			return unescape(cookieData.substring(j+1, cEnd))
		}
		i++
	}
	return ""
}

function getExt(filename) {
	var dot_pos = filename.lastIndexOf(".")
	if (dot_pos == -1) {
		return ""
	} else {
		return filename.substr(dot_pos+1).toLowerCase();
	}
}

function fileCheck(invoer) {
	fileOK = false
	var ext = getExt(invoer.value)
	for (i=0; i<fileExt.length; i++) {
		if (fileExt[i] == ext) {
			fileOK = true
		}
	}
	if (!fileOK) {
	   foutregel = 'Bestand ' + invoer.value + ' heeft een verkeerd formaat.\r\nToegestaan zijn: '
		for (i=0; i<fileExt.length; i++) {
			foutregel = foutregel + '*.' + fileExt[i]
			if (i  < (fileExt.length - 1)) {foutregel = foutregel + ', '}
		}
		alert(foutregel)
	}
	return fileOK
} 

function RefreshImage(valImageId) {
	var objImage = document.images[valImageId];
	if (objImage == undefined) {
		return;
	}
	var now = new Date();
	objImage.src = objImage.src.split('?')[0] + '?x=' + now.toUTCString();
}



