// JavaScript Document

//////////////////////////////////////////FORM ON SUBMIT////////////////////////////////////

/*
ADD TO MAIN DOCUMENT

function validateFormOnSubmit(theForm) {
var reason = "";
	
  reason += validateEmpty(theForm.firstname);
  reason += validateEmpty(theForm.lastname);
  reason += validateEmail(theForm.email);
  //reason += validateCCNum(theForm.creditCardNumber);
  //reason += validateCCV(theForm.ccv2Number);
  reason += validateEmpty(theForm.address);
  reason += validateEmpty(theForm.city);
  reason += validateZip(theForm.zip);
  
  //reason += validateUsername(theForm.username);
  //reason += validatePassword(theForm.pwd);
  //reason += validateEmail(theForm.email);
  //reason += validatePhone(theForm.phone);
  //reason += validateEmpty(theForm.from);

      
  if (reason != "") {
    alert("Some fields need correction:\n" + reason);
    return false;
  }

  return true;
}
*/


/////////////////////////////////////////////EMPTY///////////////////////////////////////
/**/

function validateEmpty(fld,errorName) {
	
    var error = "";
	
    if (fld.value.length == 0) {
        fld.style.background = 'Yellow'; 
        error = "( "+errorName+" )\n";
		
    } else {
        fld.style.background = 'White';
    }
    return error;  
	
}//END






///////////////////////////////////LETTER NUMBER UNDERSCORE NO SPACE/////////////////////////////
/**/
function validateLetterNumberUnderscoreNoSpace(fld,errorName) {
	
    var error = "";
    var illegalChars = /\W/; // allow letters, numbers, and underscores but no spaces
 
    if (fld.value == "") 
	{
        fld.style.background = 'Yellow'; 
        error = "( "+errorName+" ) You didn't enter a "+errorName+".\n";
    } 
	else if ((fld.value.length < 5) || (fld.value.length > 15)) 
	{
        fld.style.background = 'Yellow'; 
        error = "( "+errorName+" ) The "+errorName+" is the wrong length.\n";
    } 
	else if (illegalChars.test(fld.value)) 
	{
        fld.style.background = 'Yellow'; 
        error = "( "+errorName+" ) The "+errorName+" contains illegal characters.\n";
    } else 
	{
        fld.style.background = 'White';
    }
    return error;
	
}//END
















/*
USERNAME
******************************/
function validateUsername(fld) {
    var error = "";
    var illegalChars = /\W/; // allow letters, numbers, and underscores but no spaces
 
    if (fld.value == "") 
	{
        fld.style.background = 'Yellow'; 
        error = "( Username ) You didn't enter a username.\n";
    } 
	else if ((fld.value.length < 2) || (fld.value.length > 19)) 
	{
        fld.style.background = 'Yellow'; 
        error = "( Username ) The username is the wrong length.\n";
    } 
	else if (illegalChars.test(fld.value)) 
	{
        fld.style.background = 'Yellow'; 
        error = "( Username ) The username contains illegal characters.\n";
    } else 
	{
        fld.style.background = 'White';
    }
    return error;
}//END



/*
PASSWORD
******************************/
function validatePassword(fld) {
    var error = "";
    var illegalChars = /\W/; // allow letters, numbers, and underscores but no spaces
 
    if (fld.value == "") 
	{
        fld.style.background = 'Yellow'; 
        error = "( Password ) You didn't enter a password.\n";
    } 
	else if ((fld.value.length < 5) || (fld.value.length > 15)) 
	{
        fld.style.background = 'Yellow'; 
        error = "( Password ) The password is the wrong length.\n";
    } 
	else if (illegalChars.test(fld.value)) 
	{
        fld.style.background = 'Yellow'; 
        error = "( Password ) The password contains illegal characters.\n";
    } else 
	{
        fld.style.background = 'White';
    }
    return error;
}//END


/*
PASSWORD-STRICT
******************************/
function validatePasswordStrict(fld) {
    var error = "";
    var illegalChars = /[\W_]/; // allow only letters and numbers 
	var numbers = /[0-9]+/;
	var letters = /[a-z]+/;
 
    if (fld.value == "") 
	{
        fld.style.background = 'Yellow';
        error = "( Password ) You didn't enter a password.\n";
    } 
	else if ((fld.value.length < 5) || (fld.value.length > 19)) 
	{
        error = "( Password ) The password is the wrong length. \n";
        fld.style.background = 'Yellow';
    } 
	else if (illegalChars.test(fld.value)) 
	{
        error = "( Password ) The password contains illegal characters.\n";
        fld.style.background = 'Yellow';
    } 
	else if (!numbers.test(fld.value) && letters.test(fld.value))
	{
        error = "( Password ) The password must contain at least one numeral.\n";
        fld.style.background = 'Yellow';
    } 
	else 
	{
        fld.style.background = 'White';
    }
   return error;
   
}//END




/*
EMPTY

function validateEmpty(fld) {
    var error = "";
	
	if(fld.name == "firstName")
	{
		var FieldName = "( First Name )";
	}
	else if(fld.name == "lastName")
	{
		var FieldName = "( Last Name )";
	}
	else if(fld.name == "address1")
	{
		var FieldName = "( Address )";
	}
	else if(fld.name == "city")
	{
		var FieldName = "( City )";
		
	}
	
    if (fld.value.length == 0) {
        fld.style.background = 'Yellow'; 
        error = FieldName+" Field has not been filled in.\n";
    } else {
        fld.style.background = 'White';
    }
    return error;  
}//END

******************************/








/*
NAME
******************************/
function validateName(fld) {
	
    var error = "";
    var illegalChars = /[\W_]/; // allow only letters
	var numbers = /[0-9]+/;
	var letters = /[a-z]+/;
	
	
	if(fld.name == "firstName")
	{
		var FieldName = "( First Name )";
	}
	else if(fld.name == "lastName")
	{
		var FieldName = "( Last Name )";
		
	}

 
    if (fld.value == "") 
	{
        fld.style.background = 'Yellow';
        error = error = FieldName+" Field has not been filled in.\n";
    }  
	else if (illegalChars.test(fld.value)) 
	{
        error = FieldName+" Do not include spaces.\n";
        fld.style.background = 'Yellow';
    } 
	else if (letters.test(fld.value) && numbers.test(fld.value)) 
	{
        error = FieldName+" Please verify name.\n";
        fld.style.background = 'Yellow';
    } 
	else if (numbers.test(fld.value)) 
	{
        error = FieldName+" Please verify name.\n";
        fld.style.background = 'Yellow';
    } 
	else 
	{
        fld.style.background = 'White';
    }
   return error;
   
}//END









/*
EMAIL
******************************/
function trim(s)
{
  return s.replace(/^\s+|\s+$/, '');
}

function validateEmail(fld) {
    var error="";
    var tfld = trim(fld.value);                 // value of field with whitespace trimmed off
    var emailFilter = /^[^@]+@[^@.]+\.[^@]*\w\w$/ ;
    var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/ ;
   
    if(fld.value == "") 
	{
        fld.style.background = 'Yellow';
        error = "( "+fld.name+" ) Field has not been filled in.\n";
    } 
	else if(!emailFilter.test(tfld)) 
	{   //test email for illegal characters
        fld.style.background = 'Yellow';
        error = "(  "+fld.name+"  ) Please enter a valid address .\n";
    } 
	else if(fld.value.match(illegalChars))
	{
        fld.style.background = 'Yellow';
        error = "(  "+fld.name+"  ) contains illegal characters.\n";
    } 
	else 
	{
        fld.style.background = 'White';
    }
    return error;
	
}//END








/*
SPACE NO CHAR
******************************/
function validateSpaceNoChar(fld) {
	
    var error = "";
	var illegalChars = /[\(\)\<\>\,\.\_\-\/\;\:\\\"\'\[\]\{\}\|\?\~\`\!\@\#\$\%\^\&\*\+\=]/ ;



	if(fld.name == "address1")
	{
		var FieldName = "( Address )";
	}
	else if(fld.name == "city")
	{
		var FieldName = "( City )";
	}

 
 
    if (fld.value == "") 
	{
        fld.style.background = 'Yellow';
        error = error = FieldName+" Field has not been filled in.\n";
    }  
	else if (illegalChars.test(fld.value)) 
	{
        error = FieldName+" No special characters.\n";
        fld.style.background = 'Yellow';
    } 
	else 
	{
        fld.style.background = 'White';
    }
   return error;
   
}//END


/*
DOT SPACE NO CHARACTERS
******************************/
function validateDotSpaceNoChar(fld) {
	
    var error = "";
	var illegalChars = /[\(\)\<\>\,\_\-\/\;\:\\\"\'\[\]\{\}\|\?\~\`\!\@\#\$\%\^\&\*\+\=]/ ;



	if(fld.name == "firstName")
	{
		var FieldName = "( First Name )";
	}
	else if(fld.name == "lastName")
	{
		var FieldName = "( Last Name )";
	}

 
 
    if (fld.value == "") 
	{
        fld.style.background = 'Yellow';
        error = error = FieldName+" Field has not been filled in.\n";
    }  
	else if (illegalChars.test(fld.value)) 
	{
        error = FieldName+" No special characters.\n";
        fld.style.background = 'Yellow';
    } 
	else 
	{
        fld.style.background = 'White';
    }
   return error;
   
}//END







/*
STATE
******************************/
function validateState(fld) {
	
	var error = "";
	
	if(fld.value == "")
	{
		fld.style.background = 'Yellow';
		error = "( State ) Please select state.\n";
	}
	else
	{
		fld.style.background = 'White';
	}
	return error;
	
	
}//END



/*
ZIP CODE
******************************/
function validateZip(fld) {
    var error = "";
    //var illegalChars = /[\W_]/; // allow only numbers 
	var illegalChars = /[\(\)\<\>\,\.\_\/\;\:\\\"\'\[\]\{\}\|\?\~\`\!\@\#\$\%\^\&\*\+\=]/ ;
	var numbers = /[0-9]+/;
	var letters = /[a-z]+/;
 
    if (fld.value == "") 
	{
        fld.style.background = 'Yellow';
        error = "( Zip Code ) Field has not been filled in.\n";
    } 
	else if ((fld.value.length < 5) || (fld.value.length > 10)) 
	{
        error = "( Zip Code ) Please verify number.\n";
        fld.style.background = 'Yellow';
    } 
	else if (illegalChars.test(fld.value)) 
	{
        error = "( Zip Code ) No special characters.\n";
        fld.style.background = 'Yellow';
    } 
	else if (!numbers.test(fld.value))
	{
        error = "( Zip Code ) Must contain numbers.\n";
        fld.style.background = 'Yellow';
    } 
	else if (numbers.test(fld.value) && letters.test(fld.value)) 
	{
        error = "( Zip Code ) Please verify number\n";
        fld.style.background = 'Yellow';
    } 
	else if (!numbers.test(fld.value) && letters.test(fld.value)) 
	{
        error = "( Zip Code ) Please verify number\n";
        fld.style.background = 'Yellow';
    } 
	else 
	{
        fld.style.background = 'White';
    }
   return error;
   
}//END


/*
PHONE NUMBER
******************************/
function validatePhone(fld) {
    var error = "";
    var stripped = fld.value.replace(/[\(\)\.\-\ ]/g, '');    

   if (fld.value == "") 
   {
        error = "You didn't enter a phone number.\n";
        fld.style.background = 'Yellow';
    } 
	else if (isNaN(parseInt(stripped))) 
	{
        error = "The phone number contains illegal characters.\n";
        fld.style.background = 'Yellow';
    } 
	else if (!(stripped.length == 10)) 
	{
        error = "The phone number is the wrong length. Make sure you included an area code.\n";
        fld.style.background = 'Yellow';
    }
    return error;
}






/*
CREDIT CARD TYPE
******************************/
function validateCCType(fld) {
	
	var error = "";
	
	if(fld.value == "")
	{
		fld.style.background = 'Yellow';
		error = "( Credit Card Type ) Please select credit card type.\n";
	}
	else
	{
		fld.style.background = 'White';
	}
	return error;
	
	
}//END


/*
CREDIT CARD NUMBER
******************************/
function validateCCNum(fld) {
	
    var error = "";
    var illegalChars = /[\W_]/; // allow only numbers 
	var numbers = /[0-9]+/;
	var letters = /[a-z]+/;
 
    if (fld.value == "") 
	{
        fld.style.background = 'Yellow';
        error = "( Credit Card Number ) Field has not been filled in.\n";
    } 
	else if (illegalChars.test(fld.value)) 
	{
        error = "( Credit Card Number ) No spaces or special characters.\n";
        fld.style.background = 'Yellow';
    } 
	else if (!numbers.test(fld.value))
	{
        error = "( Credit Card Number ) Must contain numbers.\n";
        fld.style.background = 'Yellow';
    } 
	else if (numbers.test(fld.value) && letters.test(fld.value)) 
	{
        error = "( Credit Card Number ) Please verify #.\n";
        fld.style.background = 'Yellow';
    } 
	else if (!numbers.test(fld.value) && letters.test(fld.value)) 
	{
        error = "( Credit Card Number ) Please verify #.\n";
        fld.style.background = 'Yellow';
    } 
	else 
	{
        fld.style.background = 'White';
    }
   return error;
   
}//END


/*
CVV NUMBER
******************************/
function validateCVV(fld) {
    var error = "";
    var illegalChars = /[\W_]/; // allow only letters and numbers 
	var numbers = /[0-9]+/;
	var letters = /[a-z]+/;
 
    if (fld.value == "") 
	{
        fld.style.background = 'Yellow';
        error = "( CVV Number ) Field has not been filled in.\n";
    } 
	else if ((fld.value.length < 3) || (fld.value.length > 5)) 
	{
        error = "( CVV Number ) Please verify #.\n";
        fld.style.background = 'Yellow';
    } 
	else if (illegalChars.test(fld.value)) 
	{
        error = "( CVV Number ) No spaces or special characters.\n";
        fld.style.background = 'Yellow';
    } 
	else if (!numbers.test(fld.value))
	{
        error = "( CVV Number ) Must contain numbers.\n";
        fld.style.background = 'Yellow';
    } 
	else if (numbers.test(fld.value) && letters.test(fld.value)) 
	{
        error = "( CVV Number ) Please verify #.\n";
        fld.style.background = 'Yellow';
    } 
	else if (!numbers.test(fld.value) && letters.test(fld.value)) 
	{
        error = "( CVV Number ) Please verify #.\n";
        fld.style.background = 'Yellow';
    } 
	else 
	{
        fld.style.background = 'White';
    }
   return error;
   
}//END
   









