var errorMsg = { 	
					'firstname' : 'Please enter a First Name',
					'lastname' : 'Please enter a Last Name',
					'email' : 'Please enter a valid E-mail Address (ex: johndoe@email.com)',
					'phone' : 'Please enter a valid Phone Number with no letters',
					'address' : 'Please enter a Street Address',
					'city' : 'Please enter a City',
					'state' : 'Please select a State',
					'zip' : 'Please enter a valid Zip Code with no letters',
					'bach_name' : 'Please enter a name',
					'num_people' : 'Please enter the Number of people attending',
					'date' : 'Please enter a date'
				};
				
function trimString( whichStr ) {
	whichStr = whichStr.replace( /^\s+|\s+$/g, '' );
	return whichStr;
}

function isValidNumber( whichStr ) {
	var retVal = true;
	
	if( whichStr.test( /[A-Za-z]+/ ) ) {
		retVal = false;
	}
	
	return retVal;
}

function isValidEmail( strEmail ) {
	var retVal = true;
	
	validRegExp = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;
	
	// search email text for regular exp matches
	if( strEmail.search( validRegExp ) == -1 ) {
		retVal = false;
	}
	
	return retVal;
}

function checkForm( whichForm ) {
	var retVal = true;
	
	var whichInputs = whichForm.getElementsByTagName( 'input' );
	
	for( var i = 0; i < whichInputs.length; i++ ) {
		var currInput = whichInputs[ i ];
		var currInputName = currInput.getAttribute( 'name' );
		var whichErrors = currInput.parentNode.getElementsByTagName( 'div' );
		
		if( whichErrors.length > 0 ) {
			currInput.parentNode.removeChild( whichErrors[ 0 ] );
		}
		
		if( currInputName != 'submit' ) {
			var isValid = ( trimString( currInput.value ) != '' );
			
			if( isValid ) {
				switch( currInputName ) {
					case 'email':
						isValid = isValidEmail( currInput.value );
						break;
					case 'phone':
					case 'zip':
					case 'num_people':
						isValid = isValidNumber( currInput.value );
						break;
				}
			}
			
			if( !isValid ) {
				retVal = false;
				currInput.parentNode.className = 'invalid';
				
				var errorElem = document.createElement( 'div' );
				errorElem.className = 'form-error';
				errorElem.appendChild( document.createTextNode( errorMsg[ currInputName ] ) );//'Please enter a value.' ) );
				currInput.parentNode.appendChild( errorElem );
			}
			else if( currInput.parentNode.className == 'invalid' ) {
				currInput.parentNode.className = '';
			}
		}
	}
	
	var whichSelects = whichForm.getElementsByTagName( 'select' );
	
	for( var i = 0; i < whichSelects.length; i++ ) {
		var currSelect = whichSelects[ i ];
		
		var whichErrors = currSelect.parentNode.getElementsByTagName( 'div' );
		
		if( whichErrors.length > 0 ) {
			currSelect.parentNode.removeChild( whichErrors[ 0 ] );
		}
		
		if( currSelect.value == '--' ) {
			retVal = false;
			currSelect.parentNode.className = 'invalid';
			
			var errorElem = document.createElement( 'div' );
			errorElem.className = 'form-error';
			errorElem.appendChild( document.createTextNode( errorMsg[ currSelect.getAttribute( 'name' ) ] ) );
			currSelect.parentNode.appendChild( errorElem );
		}
		else if( currSelect.parentNode.className == 'invalid' ) {
			currSelect.parentNode.className = '';
		}
		
	}
	
	return retVal;
}