/*******************************************************************
This file contains functions relating to GE Store form validation.
*******************************************************************/

// global vars
var validationErrorTitle = "Please complete the following information to continue:\n\n";
var validationErrorBody = "";
var postValidateFocus = "";


/*******************************************************************
Sets the first field with an error to be focused after validation.
*******************************************************************/
function setFirstInvalid(inputObj) {
	if(!validationErrorMessage)	{postValidateFocus = document.getElementById(inputObj);}
}

/*******************************************************************
Stand-alone function to validate individual quantity boxes.

This function checks for a whole number quantity on blur of qty box.
 In the event of an invalid entry, the qty box is refocused.
*******************************************************************/
function validateQty(fldObj)	{
	if(fldObj.value.search(/^[0-9]+$/) == -1) {
		alert('You may only enter whole number quantities.');
	}
}



/*************************************/
/*************************************/
/***    BEGIN VALIDATION RULES     ***/
/*************************************/
/*************************************/

// This function checks for a 10-digit phone number
// This function rips out commonly used formatting characters (spaces, commas, parentheses, dashes, or plusses) which are not part of the actual phone number
function validatePhone(fieldID)	{
	var fldObj = document.getElementById(fieldID);
	var phoneNumber = fldObj.value.replace(/ /g,"");
	var phoneNumber = phoneNumber.replace(/-/g,"");
	var phoneNumber = phoneNumber.replace(/\(/g,"");
	var phoneNumber = phoneNumber.replace(/\)/g,"");
	var phoneNumber = phoneNumber.replace(/\+/g,"");
	
	if(phoneNumber.search(/^\d{10}$/) == -1) {
		return false;
	}
	fldObj.value = phoneNumber;
}
// This function checks for a 9-digit social security number
// This function rips out commonly used formatting characters (spaces and dashes) which are not part of the actual SSN
function validateSSN(fieldID)	{
	var fldObj = document.getElementById(fieldID);
	var SSN = fldObj.value.replace(/ /g,"");
	var SSN = SSN.replace(/-/g,"");
	
	if(SSN.search(/^\d{9}$/) == -1) {
		return false;
	}
}
// This function checks for a valid zip code
function validateZip(fieldID)	{
	var fldObj = document.getElementById(fieldID);
	if(fldObj.value.search(/^\d{5}$/) == -1) {
		return false;
	}
}
// This function checks for a credit card number in the proper format
function validateCreditCard(fieldID)	{
	var fldObj = document.getElementById(fieldID);
	var cardNumber = fldObj.value.replace(/ /g,"");
	var cardNumber = cardNumber.replace(/-/g,"");
	
	if(cardNumber.search(/^\d{16}$/) == -1 && cardNumber.search(/^\d{15}$/) == -1 && cardNumber.search(/^\d{13}$/) == -1) {
		return false;
	}
}
// This function checks for a valid email address
function validateEmail(fieldID)	{
	var fldObj = document.getElementById(fieldID);
	//if(fldObj.value.search(/^\w*((-\w+)|(\.\w+)|(\'\w*))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9][A-Za-z0-9]+$/) == -1) {
  //if(fldObj.value.search(/^[\w\.-]+[\'\w]+@[\w\.-]+\.[a-zA-Z]+$/) == -1) {
  	//if(fldObj.value.search(/^[\w\.-]+[\'\w]+@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9][A-Za-z0-9]+$/) == -1) {
  	if(fldObj.value.search(/^\w+((-\w+)|(\.\w+)|(\+\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9][A-Za-z0-9]+$/) == -1) {
		return false;
	}
}
// This function checks for a value that contain only letters
function validateAlpha(fieldID)	{
	var fldObj = document.getElementById(fieldID);
	var alphaObj = fldObj.value.replace(/ /g,"");
	var alphaObj = alphaObj.replace(/./g,"");
	if(fldObj.value.search(/^[a-zA-Z ]+$/) == -1) {
		return false;
	}
}

