function submitFormbuilderForm(formID,validators) {
  var f=document.forms['formbuilderForm'+formID];
  var s="";
  var errors=0;
  
  for (field in validators) {
  	//Check per veld wat de validator is, wat de ingevulde data is en of dit matcht met de validator 
  	var validator=validators[field];
		var val="";
		
		//Probeer het html-element te vinden
		var elID="form"+formID+"Element_"+field;
		if (document.getElementById(elID)) {
			val=$("#"+elID).val();
		} else {
			//het is een multi-item input: een set radio's of een set checkboxen
			var n=1;
			while (document.getElementById(elID+n.toString())) {
				var el=document.getElementById(elID+n.toString());
				if (el.type=="radio") {
					if (el.checked) {
						val=el.value;
						break;
					}
				} else if (el.type=="checkbox") {
					if (el.checked) {
						if (val!="") { val+=","; }
						val+=el.value
					}
				}
				n++;
				
				//Noodstop tijdens ontwikkelen				
				if (n > 100) { break;	}
			}
		}	
			
			
		if (validateFieldValue(val,validator)) {
			removeValidationError(field);
		} else {
			setValidationError(field);
			errors++;
		}

  }

	if (errors==0) {
		f.submit();
	}

}

function validateFieldValue(val,validator) {
  var pattern="";
  
  switch (validator) {
    case "empty_or_email":
      pattern="^$|^[0-9a-zA-Z][-_0-9a-zA-Z.]*@[-_0-9a-zA-Z.]+[.][a-zA-Z]+$";
      break;
  	case "notempty":
      pattern= "^.";
      break;
    case "email":
      pattern= "^[0-9a-zA-Z][-_0-9a-zA-Z.]*@[-_0-9a-zA-Z.]+[.][a-zA-Z]+$";
      break;
   	case "nldate":	//dd-mm-yyyy
      pattern= "^[0-3]?[0-9][-][01]?[0-9][-][12][0-9]{3}$";
      break;
   	case "date":		//yyyy-mm-dd
      pattern= "^[12][0-9]{3}[-][01]?[0-9]-[0-3]?[0-9]$";
      break;
  	case "integer":
      pattern= "^[-]?[0-9]+$";
      break;
		case "url":
      pattern= "^http://.{2,}";
      break;
  }
  
  if (pattern!="") {
	  var re = new RegExp(pattern);
	  return re.test(val);
  } else {
  	alert("Unknown validator assigned to field.");
  	return false;
  }
}

function removeValidationError(fieldName) {
	$("#xsforms_tr_"+fieldName).removeClass("error");
	$("#xsforms_errormsg_"+fieldName).hide(500);
}

function setValidationError(fieldName) {
	$("#xsforms_tr_"+fieldName).addClass("error");
	$("#xsforms_errormsg_"+fieldName).show(250);
}
