
function check_numeric(numeric_string,spaces_allowed)
	// returns true if numeric_string only contains numbers
{	numeric_valid = true;
	for(k = 0 ; k < numeric_string.length && numeric_valid ; k++)
	{	test_char = numeric_string.charAt(k);
		numeric_valid &= (test_char >= '0' && test_char <= '9')
			|| (spaces_allowed && (test_char == ' '));
	}
	return numeric_valid;
}

function check_alphabetic(alphabetic_string,spaces_allowed)
	// returns true if alphabetic_string only contains letters
{	alphabetic_valid = true;
	for(k = 0 ; k < alphabetic_string.length && alphabetic_valid ; k++)
	{	test_char = alphabetic_string.charAt(k);
		alphabetic_valid &= (test_char >= 'a' && test_char <= 'z')
			|| (test_char >= 'A' && test_char <= 'Z')
			|| (spaces_allowed && (test_char == ' '));
	}
	return alphabetic_valid;
}

function validateform()	
{	
	email_halves = document.forms["newsletter"].Email.value.split('@');
	
	if(email_halves.length != 2)
	{
	alert("Please enter a valid email address.");
	document.forms["newsletter"].Email.focus();
	return false;
	}
	
	email_name = email_halves[0];
	email_domain = email_halves[1];
	
	if((email_domain.charAt(0) == "[") || (email_domain.charAt(email_domain.length - 1) == "]"))
	{	
		if((email_domain.charAt(0) == "[")	&& (email_domain.charAt(email_domain.length - 1) == "]"))
		{	
			ip_octets = (email_domain.substring(1,email_domain.length - 1)).split('.');
		
			if(ip_octets.length != 4)
			{
			alert("Please enter a valid email address.");
			document.forms["newsletter"].Email.focus();
			return false;
			}
			
			for(k = 0 ; k < ip_octets.length ; k++)
			{
				if(ip_octets[k].length == 0 || ip_octets[k].length > 3 || !check_numeric(ip_octets[k],false))
				{
				alert("Please enter a valid email address.");
				document.forms["newsletter"].Email.focus();
				return false;
				}
			}
		}
		else
		{
		alert("Please enter a valid email address.");
		document.forms["newsletter"].Email.focus();
		return false;
		}
	document.forms["newsletter"].submit();
	}
	else
	{	
	domain_parts = (email_domain).split('.');
	domain_suffix = domain_parts[domain_parts.length - 1];
		
		if(!check_alphabetic(domain_suffix,false))
		{
		alert("Please enter a valid email address.");
		document.forms["newsletter"].Email.focus();
		return false;
		}
		
		suffix_len = domain_suffix.length;
		
		if(suffix_len < 2 || suffix_len > 3)
		{
		alert("Please enter a valid email address.");
		document.forms["newsletter"].Email.focus();
		return false;
		}
		
		for(k = 0 ; k < domain_parts.length ; k++)
		{
			if(domain_parts[k].length == 0)
			{
			alert("Please enter a valid email address.");
			document.forms["newsletter"].Email.focus();
			return false;
			}
		}
		document.forms["newsletter"].submit();
	}
	
	name_parts = (email_name).split('.');
	
	for(k = 0 ; k < name_parts.length ; k++)
	{
		if(name_parts[k].length == 0)
		{
		alert("Please enter a valid email address.");
		document.forms["newsletter"].Email.focus();
		return false;
		}
	}

}