// Hotel Fiesole

//////////////////////////////////////////////////////////////////////////////////
// The regexps in the object checkFieldTest are to exclude certain characters.	//
// The function is called in the onKeyUp or a similar handler from form fields.	//
//////////////////////////////////////////////////////////////////////////////////
var checkFieldTest = {
	numDigits2	: {replacer: /\D|^(\d{2}).+/g, checker: /\D|^\d{2}.+/},
	numbers		: {replacer: /\D()/g, checker: /\D/},
	noquotes	: {replacer: /["']()/g, checker: /['"]/},
	username	: {replacer: /\W|^[^A-z]+()/g, checker: /\W|^[^A-z]+/},
	email		: {replacer: /[^\w@\-.]()/g, checker: /[^\w@\-.]/}
}
function checkField(field, checkset) {
	checkset = (checkset == undefined)? field.name : checkset;
	var checkExp = eval("checkFieldTest."+checkset+".replacer");
	var newValue = field.value.replace(checkExp, "$1");
	checkExp = eval("checkFieldTest."+checkset+".checker");
	if(field.setSelectionRange) { //Netscape
		var caretPosition = field.selectionStart;
		if(checkExp.test(field.value)) { caretPosition-- }
		field.value = newValue;
		field.setSelectionRange(caretPosition, caretPosition);
	} else if(field.createTextRange) { //IE
		var sel = document.selection.createRange();
		sel.moveStart ('character', -field.value.length);
		var caretPosition = sel.text.length
		if(checkExp.test(field.value)) { caretPosition-- }
		field.value = newValue;
		sel.collapse();
		sel.move('character', caretPosition);
		sel.select();
	}
	
}
