function validate(f, e)
{

	element_start = 0;
	element_length = f.elements.length;

	var radio_check = new Array;
	
	for (i = element_start; i < element_length; i++) 
	{
		element_name = f.elements[i].name + ' ';
		name_length  = element_name.length - 5;

		if (!e || element_name == e + ' ') {

		if (f.elements[i].value && (element_name.slice(name_length-2,-1) == '_month' ||  element_name.slice(name_length-6,-1) == '_month_req')) {

			if (f.elements[i].value < 1 || f.elements[i].value > 12) 
			{
				alert('Please enter a month between 1 and 12');
				f.elements[i].focus();
				return false;
			}
		}

		if (f.elements[i].value && (element_name.slice(name_length,-1) == '_day' ||  element_name.slice(name_length-4,-1) == '_day_req')) {

			if (f.elements[i].value < 1 || f.elements[i].value > 31) 
			{
				alert('Please enter a day between 1 and 31');
				f.elements[i].focus();
				return false;
			}
		}		
		
		if (f.elements[i].value && element_name.substring(0,3) != 'exp' && (element_name.slice(name_length-1,-1) == '_year' ||  element_name.slice(name_length-5,-1) == '_year_req')) {

			is_num = parseInt(f.elements[i].value) == f.elements[i].value;

			if (f.elements[i].value.length != 4 || !is_num)
			{
				alert('Please enter a 4 digit year');
				f.elements[i].focus();
				return false;
			}
		}				


		

		if (e || element_name.slice(name_length,-1) == '_req')
		{
			if (f.elements[i].type == 'text' || f.elements[i].type == 'textarea' || f.elements[i].type == 'password') 
			{
				if (f.elements[i].value == '')
				{
					alert(eval(f.elements[i].name+'Prompt'));
					f.elements[i].focus();
					return false;
				}
				if (f.Name.value == '') 
				{
					alert('Please enter your name');
					f.Name.focus();
					return false;
				}
				if (f.Category.value == 'Category') 
				{
					alert('Please select a category for your request');
					f.Category.focus();
					return false;
				}
				if (f.State.value == '')
				{
					alert('Please enter your state');
					f.State.focus();
					return false;
				}
				if (f.elements[i].name == 'email_req' && !isEmailAddr(f.elements[i].value)) 
				{
					alert('Please enter a valid email address!');
					f.elements[i].focus();
					return false;
				}
				if (f.elements[i].name == 'card_number_req' && !ccCheck(f.elements[i].value)) 
				{
					alert('That is not a valid credit card number\nDo not use dashes or spaces!');
					f.elements[i].focus();
					return false;
				}
			}
			
			if (f.elements[i].type == 'select-one')
			{
				if (f.elements[i].selectedIndex == 0)
				{
					alert(eval(f.elements[i].name+'Prompt'));
					f.elements[i].focus();
					return false;
				}				
			}			
			
			if (f.elements[i].type == 'radio' && eval('f.' + f.elements[i].name + '.length') && !radio_check[f.elements[i].name]) 
			{
				radio_check[f.elements[i].name] = 0;

				for (k = 0; k < eval('f.' + f.elements[i].name + '.length'); k++)
				{
					if (eval('f.' + f.elements[i].name + '[' + k + ']' + '.checked') == true)
					{
						radio_check[f.elements[i].name] = 1;
					}
				}		
				
				if (radio_check[f.elements[i].name] == 0) 
				{
					alert(eval(f.elements[i].name+'Prompt'));
					f.elements[i].focus();
					return false;
				}
			}
			
		}
	}
	
	}
	
	return true;
}

function ccCheck (num) {
	var sum = 0;
	for (var i = num.length - 1; i >= 0; i -= 2)
		sum += num.charAt(i) * 1 + num.charAt(i - 1) * 2 - (num.charAt(i - 1) >= 5 ? 9 : 0);
	return ( sum % 10 == 0 );
}

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;
  }
  document.theForm.action = "scripts/contactus.epl"
  return result;
}