// Validates a form
function validateForm(frm)
{
	var isValid = true;
	for (var i = 0; i < frm.elements.length; i++)
	{
		var formElement = frm.elements[i];
		if (formElement.title && formElement.title.length > 0)
		{
			var elementOk = true;
			if (formElement.title.indexOf("required") > -1 && elementOk)
			{
				elementOk = (formElement.value.length > 0)
			}
			if (formElement.title.indexOf("email") > -1 && elementOk)
			{
				elementOk = validEmail(formElement.value);
			}
			if (formElement.title.indexOf("phone") > -1 && elementOk)
			{
				elementOk = validPhone(formElement.value);	
			}
			if (formElement.title.indexOf("number") > -1 && elementOk)
			{
				elementOk = isNumeric(formElement.value);
			}
			if (elementOk) 
			{
				formElement.style.border = "1px solid #7e7e7e";	
				formElement.style.backgroundColor = "#ffffff";
			}
			else
			{
				if (formElement.type == "select-one")
				{
					formElement.style.backgroundColor = "#ffd2d2";
				}
				else
				{
					formElement.style.border = "2px solid #ff0000";	
				}
				isValid = false;
			}
		}
	}
	if (! isValid)
	{
		alert("Please correct the highlighted fields before continuing.");
	}
	return isValid;
}

// ------------------------------------------------------------------------------------------
// Validates an email address
function validEmail(email)
{
	var atPos = email.indexOf('@');
	var dotPos = email.lastIndexOf('.');
	return ((email.length > 4) && (atPos > 0) && (dotPos > (atPos + 1)));
}

// ------------------------------------------------------------------------------------------
// Validates a phone number
function validPhone(phone)
{
	var validChars = "1234567890().- ";
	for (var i = 0; i < (phone.length - 1); i++)
	{
		var char = phone.substr(i,1);
		if (validChars.indexOf(char) < 0)
		{
			return false;	
		}
	}
	return true;
}

// ------------------------------------------------------------------------------------------
// Checks a value to see if it is numeric.
function isNumeric(text)
{
   var validChars = "0123456789.";
   var isNum = true;
   for (var i = 0; i < text.length; i++) 
   { 
      var char = text.charAt(i); 
      if (validChars.indexOf(char) < 0) 
      {
         return false;
      }
   }
   return true;
}