/*
File name: validator.js
Authored by: Loic Kreitmann
Date authored: 08/15/2001
Modified by: Loic Kreitmann
Date last modified: 08/28/2001
Description:
	Form entry validation Functions for Visa USA
*/
function falseAlert(obj,msg) {
	alert(msg);
	obj.value = "";
	obj.focus();
	}

function numbersValidator(formName,fieldName) {
	var x, y, ind, comma, lastComma, period, lastPeriod;
	var optOut = "";
	var tester = eval("document." + formName + "." + fieldName);
	var z = tester.value.length;
	if (isEmpty(formName,fieldName)) {
		falseAlert(tester,"Please enter a valid number in this field.");
		return false;
		}
	else if (isNaN(Number(tester.value))) {
		comma = tester.value.indexOf(",");
		lastComma = tester.value.lastIndexOf(",");
		period = tester.value.indexOf(".");
		lastPeriod = tester.value.lastIndexOf(".");
		if (comma != -1) {
			for (y = 0; y < z; y++) {
				ind = tester.value.charAt(y);
				if (isNaN(Number(ind)) && !((ind == ",") || (ind == "."))) {
					falseAlert(tester,"Please enter a valid number in this field.");
					return false;
					}
				}
			if ((period != -1) && ((period != lastPeriod) || (period < lastComma))) {
				falseAlert(tester,"Please enter a valid number in this field.");
				return false;
				}
			else {
				for (x = 0; x < z; x++) {
					ind = tester.value.charAt(x);
			 		if (ind != ",") {
						optOut += ind;
						}
					}
				tester.value = parseFloat(optOut);
				return true;
				}
			}
		else {
			falseAlert(tester,"Please enter a valid number in this field.");
			return false;
			}
		}
	else {
		return true;
		}
	}

function isEmailFormat(formName,fieldName) {
	var emailAddr = eval("document." + formName + "." + fieldName);
	if ((emailAddr.value.indexOf("@") > 0)
	 && (emailAddr.value.lastIndexOf(".") > 2)
	 && (emailAddr.value.indexOf("@") < (emailAddr.value.length - 3))
	 && (emailAddr.value.lastIndexOf(".") < (emailAddr.value.length - 2))
	 && (emailAddr.value.lastIndexOf(".") > (emailAddr.value.indexOf("@") + 1))) {
		return true;
		}
	else {
		falseAlert(emailAddr,"Please enter a valid email address.");
		return false;
		}
	}

function isEmpty(formName,fieldName) {
	var inputField = eval("document." + formName + "." + fieldName);
	if ((inputField.value != "")
	 && (inputField.value != " ")
	 && (inputField.value != "\n")
	 && (inputField.value != "\t")) {
		return false;
		}
	else {
		return true;
		}
	}

function isTelNumber(formName,fieldName) {
	var telNumber = eval("document." + formName + "." + fieldName);
	var tester;
	if ((telNumber.value.length == 12)
	 && (telNumber.value.indexOf("-") == 3)
	 && (telNumber.value.lastIndexOf("-") == 7)
	 && (telNumber.value.lastIndexOf(" ") == -1)) {
	 	for (var i = 0; i < telNumber.value.length; i++) {
			tester = telNumber.value.charAt(i);
			if ((i != 3) && (i != 7) && isNaN(Number(tester))) {
				falseAlert(telNumber,"Please enter a properly formatted\nphone number (i.e. 123-456-7890).");
				return false;
				}
			}
		return true;
		}
	else {
		falseAlert(telNumber,"Please enter a properly formatted\nphone number (i.e. 123-456-7890).");
		return false;
		}
	}