function trim(inputString) 
{
   // Removes leading and trailing spaces from the passed string. Also removes
   // consecutive spaces and replaces it with one space. If something besides
   // a string is passed in (null, custom object, etc.) then return the input.

   if (typeof inputString != "string") { return inputString; }
   var retValue = inputString;
   var ch = retValue.substring(0, 1);
   while (ch == " ") { // Check for spaces at the beginning of the string
      retValue = retValue.substring(1, retValue.length);
      ch = retValue.substring(0, 1);
   }
   ch = retValue.substring(retValue.length-1, retValue.length);
   while (ch == " ") { // Check for spaces at the end of the string
      retValue = retValue.substring(0, retValue.length-1);
      ch = retValue.substring(retValue.length-1, retValue.length);
   }
   while (retValue.indexOf("  ") != -1) { // Note that there are two spaces in the string - look for multiple spaces within the string
      retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); // Again, there are two spaces in each of the strings
   }
   return retValue; // Return the trimmed string back to the user

} // Ends the "trim" function

//Check to validate the email address
function isEmailAddr(email)
{
  var result = false
  var theStr = new String(email)
  var index = theStr.indexOf("@");
  if (index > 0)
  {
    var pindex = theStr.indexOf(".",index);
    if ((pindex > index+1) && (theStr.length > pindex+1))
	result = true;
  }
  return result;
}

function highlightTextField(field) {
		field.style.borderColor = 'red';
		field.style.borderStyle = 'solid';
		field.style.borderWidth = '1px;';
}

function nohighlightTextField(field) {
		field.style.borderColor = '';
		field.style.borderStyle = '';
		field.style.borderWidth = '';
}

function highlightSelectField(field) {
		field.style.backgroundColor = 'red';
		field.style.color = 'black';
}		

function nohighlightSelectField(field) {
		field.style.backgroundColor = '';
		field.style.color = '';
}	

function check_textfield(field, fieldname, ErrorMsg)
{
	trimmed_string = trim(field.value);
	if (trimmed_string.length == 0) 
	{
		ErrorMsg = ErrorMsg + '- ' + fieldname + '\n';
		highlightTextField(field);
		field.focus();
	}
	else
	{	nohighlightTextField(field);	}
return ErrorMsg;
}

function check_email(field, fieldname, ErrorMsg)
{
	if(!isEmailAddr(field.value))
	{
		ErrorMsg = ErrorMsg + '- ' + fieldname + '\n';
		highlightTextField(field);
		field.focus();
	}
	else
	{	nohighlightTextField(field);	}

return ErrorMsg;
}

function checkForm()
{
	var ErrorMsg = '';
	
	ErrorMsg = check_textfield(document.form.firstname, "First Name", ErrorMsg);
	ErrorMsg = check_textfield(document.form.lastname, "Last Name", ErrorMsg);
	ErrorMsg = check_textfield(document.form.subject, "Subject", ErrorMsg);
	ErrorMsg = check_email(document.form.email, "Email Address", ErrorMsg);
	ErrorMsg = check_textfield(document.form.comments, "Comments", ErrorMsg);
	if(ErrorMsg != '') 
	{
		alert('Please complete ALL the following fields to continue:\n' + ErrorMsg);
		return false;
	} 
	else 
	{	
		return true;
	}

}
