
function is_empty(frm_name, element_name, txt) {
	str_txt = document[frm_name][element_name].value;
	if(str_txt.length==0)
	{
		error_focus(frm_name, element_name, txt);		
		return true;
	}
	else
	{
		return false;
	}
}

function is_number(frm_name, element_name) {
	num = document[frm_name][element_name].value;
	if(is_empty(frm_name, element_name, "Please enter a valid number"))
	{
		return false;
	}
	validChars = ".1234567890-";
	for(i=0; i<num.length; i++)
	{
		goodChar = num.charAt(i);
		if(validChars.indexOf(goodChar, 0)<=-1)
		{
			error_focus(frm_name, element_name, "Please enter a valid number");
			return false;
		}
	}
	return true;
}

function is_string(frm_name, element_name, txt)
{	
	str_txt = document[frm_name][element_name].value;	
	if(is_empty(frm_name, element_name, txt))
	{
		return false;
	}
	invalidChars = "1234567890/:,;@#!~`$%^&*()-+=_{}[]\\/?.<>\"'|";	
	for(i=0; i<invalidChars.length; i++)
	{
		badChar = invalidChars.charAt(i)
		if(str_txt.indexOf(badChar, 0)>-1)
		{//found a bad character
			error_focus(frm_name, element_name, txt);
			return false;
		}
	}	
	return true;
}

function is_good_zip(frm_name, element_name) {
	zip_str = document[frm_name][element_name].value;
	if(isNaN(zip_str))
	{
		error_focus(frm_name, element_name, "Please enter a valid zipcode");
		return false;
	}
	if(zip_str.length != 5)
	{
		error_focus(frm_name, element_name, "Please enter a valid zipcode");
		return false;	
	}
	return true;
}

function is_good_url(frm_name, element_name)
{
	re = /^(http:\/\/|)(www\.|)\w+\.(com|org|gov|cc|mil|edu)$/i;
	url = document[frm_name][element_name].value;
	if(!re.test(url))
	{
		error_focus(frm_name, element_name, "Please enter a valid URL");
		return false;
	}
	return true;
}

function is_good_phone(frm_name, element_name)
{
	re = /^(\([1-9]?\d{2}\)|\d{3}[-]|\([1-9]?\d{2}\)[ ])\d{3}[-]\d{4}$/;
	phone_str = document[frm_name][element_name].value;
	if(!re.test(phone_str))
	{
		error_focus(frm_name, element_name, "Please enter a valid phone number");
		return false;		
	}
	return true;
}



function is_good_email(frm_name, element_name) {
	if(is_empty(frm_name, element_name, "Please enter a valid email address"))
	{
		return false;
	}	
	email_str = document[frm_name][element_name].value;
	invalidChars = " /:,;";	
	for(i=0; i<invalidChars.length; i++)
	{
		badChar = invalidChars.charAt(i)
		if(email_str.indexOf(badChar, 0)>-1)
		{//found a bad character
			error_focus(frm_name, element_name, "Please enter a valid email address");
			return false;
		}
	}	
	//check for @ sign
	atPos = email_str.indexOf("@", 1);
	if(atPos == -1)
	{
		error_focus(frm_name, element_name, "Please enter a valid email address");
		return false;
	}
	if(email_str.indexOf("@", atPos+1) > -1)
	{
		error_focus(frm_name, element_name, "Please enter a valid email address");
		return false;		
	}
	//check for period
	periodPos = email_str.indexOf(".", atPos);
	if(periodPos == -1)
	{
		error_focus(frm_name, element_name, "Please enter a valid email address");
		return false;	
	}
	if(periodPos+3 > email_str.length)
	{
		error_focus(frm_name, element_name, "Please enter a valid email address");
		return false;	
	}
	return true;
}

function is_first_option(frm_name, select_element, err_txt)
{	
	if(select_element.selectedIndex==0)
	{
		error_focus(frm_name, select_element, err_txt);
		return true;
	}
	return false;
}

function error_focus(frm_name, element_name, err_str) {
	alert(err_str);
	document[frm_name][element_name].focus();
	document[frm_name][element_name].select();	
}