// JavaScript Document for validating input fields
function validateFields(page,formField,next){
	//establish the variable field arrays for each of the pages that require validation
	var errors = 'No';
	//initiate field array with the success and unsuccess errors
	switch(page){
		case "Email_Signup":
			var fieldArray = new Array(
									'Email'
									);
		break;
	}
	//the registration page has an error or success message that needs to be removed upon new submission
	if(document.getElementById('successError')){
		document.getElementById('successError').style.display = 'none';
	}
	if(document.getElementById('UnsuccessError')){
		document.getElementById('UnsuccessError').style.display = 'none';
	}
	//loop through the field array and reset the background color
	for(i=0; i<fieldArray.length; i++){
		//if(document.getElementById(fieldArray[i]+'_ERROR')){
			//document.getElementById(fieldArray[i]+'_ERROR').style.display = 'none';
			if(document.getElementById(fieldArray[i])){	
				document.getElementById(fieldArray[i]).style.backgroundColor = '#FFFFFF';
			}
		//}
	}
	//loop through the various fields to make sure that they are actually there
	for(i=0; i<fieldArray.length; i++){
		//first switch statement is for specialty fields OR radio button groups since they are not located by "id"
		switch(fieldArray[i]){
			//default are regular fields for validation
			default:
				if(document.getElementById(fieldArray[i])){
					//use a switch statement to determine how to validate each individual field
					switch (fieldArray[i]){
						case "Email":
							if(!isFieldEmail(fieldArray[i])){
								var errors = 'Yes';
								document.getElementById(fieldArray[i]).style.backgroundColor = '#ffdf6b';
								//document.getElementById(fieldArray[i]+'_ERROR').style.display = 'block';
							}
						break;
						case "FirstName":
							if(!isFieldValid(fieldArray[i])){
								var errors = 'Yes';
								document.getElementById(fieldArray[i]).style.backgroundColor = '#ffdf6b';
								//document.getElementById(fieldArray[i]+'_ERROR').style.display = 'block';
							}
						break;
						case "LastName":
							if(!isFieldValid(fieldArray[i])){
								var errors = 'Yes';
								document.getElementById(fieldArray[i]).style.backgroundColor = '#ffdf6b';
								//document.getElementById(fieldArray[i]+'_ERROR').style.display = 'block';
							}
						break;
						case "Organization":
							if(!isFieldValid(fieldArray[i])){
								var errors = 'Yes';
								document.getElementById(fieldArray[i]).style.backgroundColor = '#ffdf6b';
								//document.getElementById(fieldArray[i]+'_ERROR').style.display = 'block';
							}
						break;
						break;
					}
				}
			break;
		}
	}
	if(errors == 'No'){
		document.getElementById(formField).submit();
	}else{
		document.getElementById('UnsuccessError').style.display = 'block';
	}
}
//function for checking to see if a field is empty
function isFieldEmpty(field){							
	if(document.getElementById(field)){
		var value = document.getElementById(field).value;			
		//remove all spaces, dashes and other bad characters
		var chars = /\s/g;
		var testValue = value.replace(chars,"");
		if(testValue == ''){
			return false;
		}else{
			return true;
		}
	}else{
		return false;
	}
}
//function for checking for a properly formatted email address
function isFieldEmail(field){
	if(isFieldEmpty(field)){
		var value = document.getElementById(field).value;			
		var emailPattern = /\w+@\w+\.\w{1,3}/;
		if(!emailPattern.test(value)){
			return false;
		}else{
			return true;	
		}
	}else{
		return false;
	}	
}
//function for checking the state dropdown menu
function isItemSelected(field){
	if(document.getElementById(field)){
		var value_index = document.getElementById(field).selectedIndex;
		var value = document.getElementById(field).options[value_index].value;
		if(field != 'ShippingType'){
			if(value == '0' || value == ''){
				return false;
			}else{
				return true;
			}
		}else{
			if(value == ''){
				return false;
			}else{
				return true;
			}
		}
	}else{
		return false;
	}
}
//function for checking the city field
function isFieldCity(field){
	if(document.getElementById(field)){
		if(!isFieldEmpty(field)){
			return false;
		}else{
			var chars = /[\d]/;
			var value = document.getElementById(field).value;
			if(chars.test(value)){
				return false;
			}else{
				return true;
			}
		}
	}else{
		return false;
	}
}
//function for checking a zip code
function isFieldZip(field){
	if(document.getElementById(field)){
		var value = document.getElementById(field).value;
		var chars = /(^\d{5}-\d{4}$)|(^\d{5}$)|(^\d{9}$)/;
		if(!chars.test(value)){
			return false;
		}else{
			return true;
		}
	}else{
		return false;
	}
}
//function for checking a number
function isFieldNbr(field){
	if(document.getElementById(field)){
		if(!isFieldEmpty(field)){
			return false;
		}else{
			value = document.getElementById(field).value;
			var chars = /\D/g;
			if(chars.test(value)){
				return false;
			}else{
				return true;
			}
		}
	}else{
		return false;
	}
}
//function for checking first name, last name, street address fields
function isFieldValid(field){
	if(document.getElementById(field)){
		if(!isFieldEmpty(field)){
			return false;
		}else{
			if(document.getElementById(field).value == 'First Name' || document.getElementById(field).value == 'Last Name' || document.getElementById(field).value == 'Organization'){
				
				return false;
				
			}else{
			/*
			var value = document.getElementById(field).value;
			var chars = /[^\w' #-]/;
			if(chars.test(value)){
				return false;
			}else{
				return true;
			}
			*/
				return true;
			
			}
		}			
	}else{
		return false;
	}
}
//function for making sure two check boxes are not both selected
function areBothSelected(field1,field2,clickedField){
	if(document.getElementById(field1) && document.getElementById(field2)){
		if(document.getElementById(clickedField).checked == true){	
			if(clickedField != field1){
				document.getElementById(field1).checked = false;	
			}else{
				document.getElementById(field2).checked = false;	
			}
		}
	}
}


