var formError;

function checkform(ele){

	formError = false;
	formError2 = false;
	checkTree(ele);
	if(formError && !formError2) {
		alert('Vul de gemarkeerde velden correct in.');
	}

	return !formError;
}

function checkTree(ele) {
	var elements = ele.childNodes;
	for(var i=0; i<elements.length; i++) {
		if(elements[i].nodeType == 1) {
			if(elements[i].style.display != 'none') {
				if(elements[i].tagName == 'INPUT') {
					testCorrect(elements[i]);
				}
				checkTree(elements[i]);
			}
		}
	}
}

function testCorrect(ele) {
	var reEmail = /^.+\@.+\..+$/
	var reTel = /^(-|\+|\d|\s){10,30}$/;
	var rePC = /^(\d{4}\s{0,2}[A-Za-z]{2}|[A-Za-z]\s{0,2}\d{4})$/;
	var reSpace=/^\s+$/;

	if(ele.getAttribute('mandatory') != null && /*ele.type != 'checkbox' &&*/ ele.type!='radio') {
		ele.style.border = '1px solid #7F9DB9';

		switch(ele.getAttribute('mandatory')){
			case '1':
				if(reSpace.test(ele.value) || ele.value.length==0 || ele.value == ele.title){
					ele.style.border = '1px solid red';
					formError = true;
				}
			break; //algemeen
			case '2':
				if(!reEmail.test(ele.value) || ele.value == ele.title){
					ele.style.border = '1px solid red';
					formError = true;
				}
			break; //email
			case '3':
				if(!rePC.test(ele.value) || ele.value == ele.title){
					ele.style.border = '1px solid red';
					formError = true;
				}
			break; //pc
			case '4':
				if(!reTel.test(ele.value) || ele.value == ele.title){
					ele.style.border = '1px solid red';
					formError = true;
				}
			break; //tel
			case '5':
				if(!ele.checked && !formError){
					alert("U moet nog akkoord gaan met de algemene voorwaarden.");
					formError = true;
					formError2 = true;
				}
			break; //checkbox
		}
	}
}
