function allSpaces(v){
	regex = /^\s+$/;
	return regex.test(v);
}

function aform(tempNode, onSuccess, noAuto){
	
	while(tempNode.nodeName != "FORM"){
		tempNode = tempNode.parentNode;
	}
	
	tempNode.onsubmit = function(){
		aform(this);
	}
	
	for(var i = 0; i < tempNode.elements.length; i++){
		var element  = $(tempNode.elements[i]);
		
		if(element.type == "hidden"){continue;}
		
		var validateAs = element.getAttribute("validateAs");
		var maxlength  = element.getAttribute("maxlength");
		var required   = element.getAttribute("required");
		var value      = "";
		
		if(element.nodeName == "TEXTAREA"){
			value = element.innerHTML;
		}else{
			value = element.value;
		}
		
		if(required == "required" && (allSpaces(value) || value == "") ){
			if(lang == "nl"){
				alert("Veld \""+element.name+"\" is verplicht om in te vullen.");
			}else{
				alert("Field \""+element.name+"\" is required.");
			}
				
			element.focus();
			return;
		}
		
		if(required == "required" && element.type == "checkbox"){
			if(!element.checked){
				if(lang == "nl"){
					alert("Veld \""+element.name+"\" is niet aangevinkt.");
				}else{
					alert("Field \""+element.name+"\" is not checked.");
				}
				
				element.focus();
				return;
			}
		}
		
		if(validateAs){
			var regex = null;
			
			switch(validateAs){
				case "text":
					regex = /[a-zA-Z0-9]/;
				break;
				
				case "username":
					regex = /[a-zA-Z0-9]/;
				break;
				
				case "password":
					regex = /[a-zA-Z0-9]/;
				break;
				case "postal":
					regex = /[0-9]{4}\s*.*/;
				break;
				case "phone":
					regex = /^[-0-9+() ]*$/gi;
				break;
				
				case "email":
					regex = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
				break;
				default:
					regex = /[a-zA-Z0-9]/;
				break;
			}
			
			if(value != "" && !regex.test(value)){
				
				if(lang == "nl"){
					alert("Veld \""+element.name+"\" is niet correct ingevuld.");
				}else{
					alert("Field \""+element.name+"\" has a invalid value.");
				}
				
				element.focus();
				return;
			}
		}
	}
	
	if(typeof(onSuccess)=='function'){onSuccess();}
	if(noAuto == undefined){
		tempNode.submit();
	}
}
