function IsNumeric(value) {
	return typeof value != "boolean" && value !== null && !isNaN(+ value);
}


// Thinc1st Required Fields Script
function checkrequired(which) {
	//return true;

	try{
		var lng = which.reqLanguage.value;
	} catch(e){
		var lng = "NL";
		// no action the field doenst exists!.
	}

	if(lng == "NL"){
		sentince = "Het volgende veld in het formulier is niet ingevuld: ";
		pros = "...verwerken...";
	}

	if(lng == "EN"){
		sentince = "Please fill in the next field: ";
		pros = "...processing...";
	}

	if(lng == "DE"){
		sentince = "bitte füllen Sie folgendes Feld aus";
		pros = "...im Prozess...";
	}

	if(lng == "FR"){
		sentince = "Veuillez compléter le champ suivant de forme: ";
		pros = "...traitement...";
	}

	if(lng == "IT"){
		sentince = "Füllen Sie bitte innen die folgende Form auffangen";
		pros = "...Verarbeitung...";
	}

	if(lng == "NO"){
		sentince = "Fyll inn fřlgende informasjon: ";
		pros = "...behandler...";
	}

	if(lng == "ES"){
		sentince = "Por favor, rellena correctamente el siguiente campo: ";
		pros = "...procesando...";
	}

	var pass=true;
	if (document.images) {
		for (i=0;i<which.length;i++) {
			var tempobj=which.elements[i];

			// Standaard required field!
			if (tempobj.name.substring(0,2)=="psc-") {
				if(tempobj.value==''){
				} else {
					elementname = tempobj.value
					elementvalue = document.getElementById(elementname).value;
					if(elementvalue == ""){
						theName = elementname;
						pass=false;
						break;
					}
				}
			}

			// Standaard required field!
			if (tempobj.name.substring(0,2)=="r-") {
				if (((tempobj.type=="text"||tempobj.type=="textarea"||tempobj.type=="password") && tempobj.value=='')||(tempobj.type.toString().charAt(0)=="s" && tempobj.selectedIndex==0)) {
					theName = tempobj.name;
					pass=false;
					break;
				}
			}

			// Checken of het een e-mail field is.
			if (tempobj.name.substring(0,2)=="e-") {
				if (((tempobj.type=="text"||tempobj.type=="textarea"||tempobj.type=="password") && tempobj.value=='')||(tempobj.type.toString().charAt(0)=="s" && tempobj.selectedIndex==0)) {
					theName = tempobj.name;
					pass=false;
					break;
				}
				var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
				if(!filter.test(tempobj.value)){
					theName = tempobj.name;
					pass=false;
					break;
				}
			}

			// Checken of het een numeriek field is.
			if (tempobj.name.substring(0,2)=="n-") {
				if (((tempobj.type=="text"||tempobj.type=="textarea"||tempobj.type=="password") && tempobj.value=='')||(tempobj.type.toString().charAt(0)=="s" && tempobj.selectedIndex==0)) {
					theName = tempobj.name;
					pass=false;
					break;
				}
				if(IsNumeric(tempobj.value) == false){
					theName = tempobj.name;
					pass=false;
					break;
				}
			}

			// Checken of het een numeriek field is.
			if (tempobj.name.substring(0,2)=="N-") {
				if (((tempobj.type=="text"||tempobj.type=="textarea"||tempobj.type=="password") && tempobj.value=='')||(tempobj.type.toString().charAt(0)=="s" && tempobj.selectedIndex==0)) {
					theName = tempobj.name;
					pass=false;
					break;
				}
				if(IsNumeric(tempobj.value) == false){
					theName = tempobj.name;
					pass=false;
					break;
				}
				if(tempobj.value.indexOf(".") != -1){
					theName = tempobj.name;
					pass=false;
					break;
				}
			}

			// Checken of het een tekstueel field is.
			if (tempobj.name.substring(0,2)=="t-") {
				if (((tempobj.type=="text"||tempobj.type=="textarea"||tempobj.type=="password") && tempobj.value=='')||(tempobj.type.toString().charAt(0)=="s" && tempobj.selectedIndex==0)) {
					theName = tempobj.name;
					pass=false;
					break;
				}
				var filter  = /^([a-zA-Z])$/;
				if(!filter.test(tempobj.value)){
					theName = tempobj.name;
					pass=false;
					break;
				}
			}

			// Checken of het een numeriek field is.
			if (tempobj.name.substring(0,2) == "p-") {
				if (((tempobj.type=="text"||tempobj.type=="textarea"||tempobj.type=="password") && tempobj.value=='')||(tempobj.type.toString().charAt(0)=="s" && tempobj.selectedIndex==0)) {
					theName = tempobj.name;
					pass=false;
					break;
				}
				var numbersStr = tempobj.value.substring(0,4);
				if(IsNumeric(numbersStr) == false){
					theName = tempobj.name;
					pass=false;
					break;
				}
				var characterStr = tempobj.value.substring(4,6);
				var filter2  = /^([a-zA-Z])+$/;
				if(!filter2.test(characterStr)){
					theName = tempobj.name;
					pass=false;
					break;
				}
				var str = tempobj.value
				var lstr = str.length;
				if(lstr != 6){
					theName = tempobj.name;
					pass=false;
					break;
				}
				tempobj.value = numbersStr + characterStr.toUpperCase();
			}

		}
		if (!pass) {

			// De Alert is eerst niets.
			var theAlert = "";

			// We kijken nu of er een hidden bestaat waarvan de inhoud ervan als alert kan worden gebruikt!
			shortFieldName = tempobj.name.substring(2,30);
			theName = theName.replace("r-","a-");
			theName = theName.replace("e-","a-");
			theName = theName.replace("n-","a-");
			theName = theName.replace("N-","a-");
			theName = theName.replace("t-","a-");
			theName = theName.replace("p-","a-");
			theName = theName.replace("psc-","a-");

			for (i=0;i<which.length;i++) {
				var tempobj=which.elements[i];
				if (tempobj.name == theName) {
					tmpval = tempobj.value;
					tmpval = tmpval.split("[n]").join("\n");
					tmpval = tmpval.split("[t]").join("\t");
					tmpval = tmpval.split("[s]").join(" ");
					theAlert = tmpval;
					break;
				}
			}

			// Zo niet zet dan de alert op de standaard zin!.
			if(theAlert == ""){
				theAlert = sentince+shortFieldName
			}

			// Alert de inhoud van de variabele theAlert.
			window.alert(theAlert);

			// Focus op het object waar het fout gaat!
			return false;
		} else {

			// Lock
			try{
				if(which.LockedSubmit.value == pros){
					return false;
				} else {
					which.LockedSubmit.value = pros;
				}
			} catch(e) {
			}
			return true;
		}

	}
}
