//todo
//
//valid text
//valid number
//valid length
//
//flaky radio check and groups

function formCheck(formobj, fieldRequired, fieldDescription, alertMsg){
	var l_Msg = alertMsg.length;
	var extraChecks = Array("Het door u opgegeven e-mail adres bestaat niet.", "De door u opgegeven e-mail adressen zijn niet gelijk.","Vul uw volledige 10 cijferige telefoonnr in.","De opgegeven postcode is niet juist, bijv: 1234AB","Er moeten 4 postcode nummers opgegeven worden","Er moeten 2 postcode letters opgegeven worden");
	var hetForm = formobj;
	var emailAdress = null;  
	for (var i = 0; i < fieldRequired.length; i++){
	    var obj = formobj.elements[fieldRequired[i]];
	    //var regexpEMail = /^[a-z][a-z_0-9\.]+@[a-z_0-9\.]+/i; //only sadf@safd no number at start and no -
	    //var regexpEMail = /^(.+)@(.+)$/;
	    //var regexpEMail = /^\S+@\S+\.\W$/;
	    //var regexpEMail = /^[\w\-][\w\-\.]+@[\w\-]+\.[a-zA-Z]{2,4}$/; no bob.smith@ubc.bc.ca
	    var regexpEMail = /^\S+@\S{2,}\.[a-zA-Z]{2,5}$/; //seems to be ok     
		
	    if (obj){
		switch(obj.type){
		    case "select-one":
			if (obj.name == "stad") {
			    if (obj.options[obj.selectedIndex].value == "---") alertMsg += " - " + fieldDescription[i] + "\n";
                        } else if (obj.selectedIndex == -1 || obj.selectedIndex == 0 || obj.options[obj.selectedIndex].text == "") {
			       alertMsg += " - " + fieldDescription[i] + "\n";
			}
		    break;
		    case "select-multiple":
			if (obj.selectedIndex == -1){
			    alertMsg += " - " + fieldDescription[i] + "\n";
			}
		    break;
		    case "checkbox":
			if(!obj.checked){
			    alertMsg += " - " + fieldDescription[i] + "\n";
			}
		    break;
		    case "textarea":
			if (obj.value == "" || obj.value == null){
			    alertMsg += " - " + fieldDescription[i] + "\n";
			}
		    break;
		    case "text":
			//alert( obj.name.indexOf("email") );
		        if (obj.value == "" || obj.value == null){
			    alertMsg += " - " + fieldDescription[i] + "\n";
			} else if ( obj.name.indexOf("email") > -1 ){
			    emailAdress = obj.value;     
			    //alert(i+"-"+emailAdress+" = "+obj.name);  
			    if (!regexpEMail.test(obj.value)){
				alertMsg += " - " + extraChecks[0] + "\n";
			    }
			} else if ( obj.name.indexOf("telefoon") > -1 ){                   
			    var pattern = /^[\d\s-()+]{10,15}$/;
			    var found = obj.value.search(pattern);
			    if(found<0){
				alertMsg += " - " + extraChecks[2] + "\n";
			    }
			} else if ( obj.name.indexOf("postcode") > -1 ){                   
			    var pattern = /^[0-9]{4}[a-zA-Z]{2}$/;
			    var found = obj.value.search(pattern);
			    if(found<0){
				alertMsg += " - " + extraChecks[3] + "\n";
			    }
			} else if (obj.name == "pc"){                        
			    var pattern = /^[0-9]{4}[a-zA-Z]{2}$/;
			    var found = obj.value.search(pattern);
			    if(found<0){
				alertMsg += " - " + extraChecks[3] + "\n";
			    }
			} else if (obj.name == "ZipNumbers"){                        
			    var pattern = /^[0-9]{4}$/;
			    var found = obj.value.search(pattern);
			    if(found<0){
				alertMsg += " - " + extraChecks[4] + "\n";
			    }
			} else if (obj.name == "ZipLetters"){                        
			    var pattern = /^[a-zA-Z]{2}$/;
			    var found = obj.value.search(pattern);
			    if(found<0){
				alertMsg += " - " + extraChecks[5] + "\n";
			    }
			}              
		    break;
 		    default:
		        //groups give for object.type undefine, so we have a group => radio ?
			//alert(obj.name+"="+obj.type+"="+obj.length);
		        var isChecked = false;
		        for ( n = 0; n < obj.length; n++ ) {
			    if(obj[n].checked) isChecked = true;
			}
		        if (!isChecked){
			    alertMsg += " - " + fieldDescription[i] + "\n";
			}
		}
	    }
	}

	if (alertMsg.length == l_Msg){
	    //alert("Just between the two of us,\nthis form has been submitted!")
	    //don't do submit, it gives you errors!!!
	    //formobj.submit();
	    return true;
	}else{
	    alert(alertMsg);
            //nog focussen?
            //obj.focus();
	    return false;
	}
}


// Checkt of alle eigenschappen wel ingevuld zijn als een VIP een nieuwe pfs aanmaakt op het service gedeelte van Nieuw.nl
function pfs_cat_check(cats) {
   var catsArray = cats.split(/,/);
   for (i=0; i<catsArray.length; i++) {
      if (inputbox[catsArray[i]].value.match(/^\s*$/)) {
         alert("Nog niet alle velden zijn ingevuld!");
         return false;
      }
   }

   counter++;
   if(counter > 1) { 
      alert('U heeft al geklikt. Even geduld A.U.B.');
      return false; 
   }

   return true;
}

//check of er wel een pfs geselecteerd is om aan te koppelen
function pfs_art_check() {
   if (document.selectForm.arts.selectedIndex == -1) { 
      alert("U heeft nog geen type geselecteerd waaraan uw product gekoppeld moet worden!");
      return false; 
   } else { 
      return true;
   }
}
