// Various functions to check field entries as they are typed


// Navigator uses 'which' as the key-press event value. Explorer uses 'keyCode'

if (navigator.appName == 'Netscape')
	var isNav = true;
else
	var isNav = false;


//
//  Functions to set key entries (only works for Explorer)
//

function setKey(e, newKey) {
	if (isNav == false)
		e.keyCode = newKey;
}

function upperCase(e) {												// uppercase any lowercase letters
	var whichKey = getKey(e);
	if (keyIsLowerLetter(whichKey)) {
		whichKey -= 32;
		setKey(e, whichKey);
	}

	return(whichKey);
}

//
//  Functions to categorise key entries (e.g. number, letter etc.)
//

function keyIsControl(keyPressed) {
	if (keyPressed <= 13)
		return(true);
	else
		return(false);
}

function keyIsNumber(keyPressed) {
	if ((keyPressed >= 46 && keyPressed <= 57) || keyIsControl(keyPressed))
		return(true);
	else
		return(false);
}

function keyIsLetter(keyPressed) {
	if (keyIsUpperLetter(keyPressed) || keyIsLowerLetter(keyPressed) || keyIsControl(keyPressed))
		return(true);
	else
		return(false);
}

function keyIsUpperLetter(keyPressed) {
	if ((keyPressed >= 65 && keyPressed <= 90) || keyIsControl(keyPressed))
		return(true);
	else
		return(false);
}

function keyIsLowerLetter(keyPressed) {
	if ((keyPressed >= 97 && keyPressed <= 122) || keyIsControl(keyPressed))
		return(true);
	else
		return(false);
}

//
//  Functions to check key entries
//

function getKey(e) {
	return ((isNav) ? e.which : e.keyCode);
}

function forceNumeric(e) {
	var whichKey = getKey(e);

	if (keyIsNumber(whichKey))
		return(true);
	else {
		alert("Please only enter numbers here.");
		return(false);
	}
}

function forceMobile(e) {
	var whichKey = getKey(e);

	if (keyIsNumber(whichKey) || whichKey == 43)					// numbers and '+' sign only
		return(true);
	else {
		alert("Please only enter numbers or a '+' sign here. There's no need to enter spaces.");
		return(false);
	}
}

function forceGBPostCode(e) {
	whichKey = upperCase(e);
																	// numbers and letters only
	if (keyIsNumber(whichKey) || keyIsLetter(whichKey))
		return(true);
	else {
		alert("Please only enter numbers or letters here.");
		return(false);
	}
}


