// JavaScript Document

function checking(field,minValue,characterCheck) {
	var fieldValue = field.value;
	var booleanCheck = true;
	
	if(fieldValue.length < minValue) {
		booleanCheck = false;
	}
	
	for(i=0; i<fieldValue.length; i++) {
		if(characterCheck.indexOf(fieldValue.charAt(i)) == -1) {
			booleanCheck = false;
		}
	}
	
	if(booleanCheck) {
		field.style.color="#000";
		field.style.backgroundColor="#3ACA2B";
		return true;
	}
	else {
		field.style.backgroundColor="#8E2353";
		field.style.color="#F4FF22";
		return false;
	}
}

//email validation here
function checkingEmail(field) {
	var letterCheck = "abcdefghijklmnopqrstuvwxyz";
	var numberCheck = "123456789";
	var letterNumber = letterCheck+numberCheck+"-";
	var numberLetterExtra = letterCheck+numberCheck+"!#$%&'*+-/=?^_`{|}~.";
	
	var fieldValue = field.value;
	var lastDot = fieldValue.lastIndexOf('.');
	var atPosition = fieldValue.indexOf('@');
	
	if(lastDot > atPosition) {
		var beginning = fieldValue.substring(0,fieldValue.indexOf('@'));
		beginning = beginning.toLowerCase();
		
		var middle = fieldValue.substring(fieldValue.indexOf('@')+1,fieldValue.lastIndexOf('.'));
		middle = middle.toLowerCase();
		
		var end = fieldValue.substring(fieldValue.lastIndexOf('.')+1,fieldValue.length);
		end = end.toLowerCase();
		
		//validate first part
		var beginningTrue = true;
		for(var i=0; i<beginning.length; i++) {
			if(numberLetterExtra.indexOf(beginning.charAt(i)) == -1) {
				beginningTrue = false;
			}
		}
		if(beginning.length < 1) {
			beginningTrue = false;
		}
		if(beginning.charAt(0) == '.') {
			beginningTrue = false;
		}
		if(beginning.indexOf('..') != -1) {
			beginningTrue = false;
		}
		if(beginning.charAt(beginning.length-1) == '.') {
			beginningTrue = false;
		}
		
		//validating second part
		var middleTrue = true;
		for(var i=0; i<middle.length; i++) {
			if(letterNumber.indexOf(middle.charAt(i)) == -1) {
				middleTrue = false;
			}
		}
		if(middle.length < 2) {
			middleTrue = false;
		}
		
		//validating last part
		var endTrue = true;
		for(var i=0; i<end.length; i++) {
			if(letterCheck.indexOf(end.charAt(i)) == -1) {
				endTrue = false;
			}
		}
		if(end.length < 2) {
			endTrue = false;
		}
		
		if(beginningTrue && middleTrue && endTrue) {
			field.style.color="#000";
			field.style.backgroundColor="#3ACA2B";
			return true;
		}
		else {
			field.style.color="#F4FF22";
			field.style.backgroundColor="#8E2353";
			return false;
		}
	}
	else {
		field.style.color="#F4FF22";
		field.style.backgroundColor="#8E2353";
		return false;
	}
}
//end email validation

//dynamic validating function
function validating() {
	var capitalLetterCheck = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	var letterCheck = "abcdefghijklmnopqrstuvwxyz";
	var groupLetterCheck = capitalLetterCheck + letterCheck;
	var numberCheck = "0123456789";
	var groupLetterNumberCheck = groupLetterCheck + numberCheck;
	var miscA = "'.-";
	var miscB = "'.-_!@#$%^&*";
	var miscC = "-#";
	
	var masterValidate = true;
	
	//note: the function name "checking" is the way the functions are talking to one another. the paramiters are matched up by the commas.
	if(!checking(document.requestQuote.firstName,1,groupLetterCheck + miscA + " ")) {
		masterValidate = false;
	}
	
	if(!checking(document.requestQuote.lastName,1,groupLetterCheck + miscA + " ")) {
		masterValidate = false;
	}
	
	if(!checking(document.requestQuote.phoneNumber,1,numberCheck + miscC)) {
		masterValidate = false;
	}
	
	if(!checkingEmail(document.requestQuote.email)) {
		masterValidate = false;
	}
	
	if(!checking(document.requestQuote.bidAmount,1,groupLetterNumberCheck + miscB + " ")) {/*added*/
		masterValidate = false;
	}
	
	if(!masterValidate) {
		alert("There are errors. Please look over the form information and resend the form.");
	}
	
	return masterValidate;
}
