/***********************************************
* Validate the forms with 'validate' class
***********************************************/
listen('load', window, function() {
		mlisten( 'submit', getElementsByClass('validate', 'form'), formCheck );
  }
);

function trim(s) {
  while (s.substring(0,1) == ' ') {
    s = s.substring(1,s.length);
  }
  while (s.substring(s.length-1,s.length) == ' ') {
    s = s.substring(0,s.length-1);
  }
  return s;
}

/***********************************************
* Required field(s) validation v1.10- By NavSurf
* Visit Nav Surf at http://navsurf.com
* Visit http://www.dynamicdrive.com/ for full source code
***********************************************/

function formCheck(e) {
	formobj = e.currentTarget;
	// Enter name of mandatory fields
	var fieldRequired = getElementsByClass('required');
  var labels = document.getElementsByTagName('label');
	// dialog message
	var alertMsg = "De volgende velden dienen ingevuld te zijn:\n";
	var prevradio = false;
	var l_Msg = alertMsg.length;
	for (var i = 0; i < fieldRequired.length; i++){
		var obj = fieldRequired[i];
    // the first place to look for a label is the label ATTRIBUTE of the field
		var label = obj.getAttribute('label');
    // the second place to look for a label is the label ELEMENT of the field
    if (label == null) {
      labelelem = getElementByAttribute(labels, 'for', obj.getAttribute('id'));
      if (labelelem != null) label = labelelem.innerHTML;
    }
		if (label == null)
			label = obj.name;
		if (obj){
			switch(obj.type){
			case "select-one":
				if (obj.selectedIndex == -1 || trim(obj.options[obj.selectedIndex].text) == ""){
					alertMsg += " - " + label + "\n";
				}
				break;
			case "select-multiple":
				if (obj.selectedIndex == -1){
					alertMsg += " - " + label + "\n";
				}
				break;
			case "text":
			case "password":
			case "textarea":
				if (trim(obj.value) == "" || obj.value == null){
					alertMsg += " - " + label + "\n";
				}
				break;
			default:
			}
			if (obj.type == 'radio') {
				unchecked = false;
				if ((fieldRequired[i + 1] != undefined) && (fieldRequired[i + 1].name == obj.name)) {
 					if (!obj.checked && !fieldRequired[i + 1].checked) {
 						unchecked = true;
 					}
				}
				if (unchecked){
					alertMsg += " - " + label + "\n";
				}
			}
		}
	}

	if (alertMsg.length == l_Msg){
		//protect_form_buttons(formobj);
		return true;
	} else {
		e.preventDefault();
		alert(alertMsg);
		return false;
	}
}