function checkValue(format, waarde) {
	var i = 0;
	var lengte = format.length;
	var j = 0;
	var waarde_lengte = waarde.length;
	if (lengte%2 == 0) {										// Bestaat het formaat uit een even aantal karakters
		var correct_format = true;
		while (i < lengte) {
			if (format.substr(i, 1) == "*") {					// Als het karakter n keer voor mag komen
				var eindig = false;
				correct_format = correct_format && (j < waarde_lengte);
				while (j < waarde_lengte && !eindig) {
					if (checkChar(waarde.substr(j, 1), format.substr(i + 3, 1))) {
						eindig = true;
					} else {
						correct_format = correct_format && checkChar(waarde.substr(j, 1), format.substr(i + 1, 1));
						j++;
					}
				}
			} else if (!isNaN(format.substr(i, 1))) {			// Als het karakter 1..9 keer voor mag komen
				var k = j;
				var stop_lengte = parseInt(format.substr(i, 1));
				while (j < k + stop_lengte) {
					if (j >= waarde_lengte) {
						correct_format = false;
					}
					correct_format = correct_format && checkChar(waarde.substr(j, 1), format.substr(i + 1, 1));
					j++;
				}
			}
			i = i + 2;
		}
		if (j < waarde.length) {
			return false;
		} else {
			return correct_format;
		}
	} else {
		alert("ERROR: Ongeldig format");
	}		
}

function checkChar(karakter, set) {
	var sets = new Array();
	sets["C"] = "0123456789";
	sets["L"] = "qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM";
	sets["N"] = sets["L"] + "'.,;- " + '"';
	sets["A"] = sets["N"] + sets["C"];
	sets["M"] = sets["C"] + sets["L"] + ".";
	sets["E"] = "@";
	sets["P"] = ".";
	sets["T"] = sets["C"] + ".,;- ";
	sets["S"] = ".,;- ";
	
	var testset = sets[set];
	
	var i = 0;
	var lengte = testset.length;
	while (i < lengte) {
		if (testset.substr(i, 1) == karakter) {
			return true;
		}
		i++;
	}
	return false;
}
