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++) {
			try
			{
				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();
				}

			} catch(e){
			}
		}
		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;
		}

	}
}
