function DisplayStates()
{
	document.writeln('<option></option>');
	document.writeln('<option>AL</option>');
	document.writeln('<option>AK</option>');
	document.writeln('<option>AZ</option>');
	document.writeln('<option>AR</option>');
	document.writeln('<option>CA</option>');
	document.writeln('<option>CO</option>');
	document.writeln('<option>CT</option>');
	document.writeln('<option>DE</option>');
	document.writeln('<option>DC</option>');
	document.writeln('<option>FL</option>');
	document.writeln('<option>GA</option>');
	document.writeln('<option>HI</option>');
	document.writeln('<option>ID</option>');
	document.writeln('<option>IL</option>');
	document.writeln('<option>IN</option>');
	document.writeln('<option>IA</option>');
	document.writeln('<option>KS</option>');
	document.writeln('<option>KY</option>');
	document.writeln('<option>LA</option>');
	document.writeln('<option>ME</option>');
	document.writeln('<option>MD</option>');
	document.writeln('<option>MA</option>');
	document.writeln('<option>MI</option>');
	document.writeln('<option>MN</option>');
	document.writeln('<option>MS</option>');
	document.writeln('<option>MO</option>');
	document.writeln('<option>MT</option>');
	document.writeln('<option>NE</option>');
	document.writeln('<option>NV</option>');
	document.writeln('<option>NH</option>');
	document.writeln('<option>NJ</option>');
	document.writeln('<option>NM</option>');
	document.writeln('<option>NY</option>');
	document.writeln('<option>NC</option>');
	document.writeln('<option>ND</option>');
	document.writeln('<option>OH</option>');
	document.writeln('<option>OK</option>');
	document.writeln('<option>OR</option>');
	document.writeln('<option>PA</option>');
	document.writeln('<option>RI</option>');
	document.writeln('<option>SC</option>');
	document.writeln('<option>SD</option>');
	document.writeln('<option>TN</option>');
	document.writeln('<option>TX</option>');
	document.writeln('<option>UT</option>');
	document.writeln('<option>VT</option>');
	document.writeln('<option>VA</option>');
	document.writeln('<option>WA</option>');
	document.writeln('<option>WV</option>');
	document.writeln('<option>WI</option>');
	document.writeln('<option>WY</option>');
}

function DisplayMonths()
{
	document.writeln('<option></option>');
	document.writeln('<option>January</option>');
	document.writeln('<option>February</option>');
	document.writeln('<option>March</option>');
	document.writeln('<option>April</option>');
	document.writeln('<option>May</option>');
	document.writeln('<option>June</option>');
	document.writeln('<option>July</option>');
	document.writeln('<option>August</option>');
	document.writeln('<option>September</option>');
	document.writeln('<option>October</option>');
	document.writeln('<option>November</option>');
	document.writeln('<option>December</option>');
}

function ShowDays()
{
	document.writeln('<option></option>');
	for(var i=1;i<=31;i++)
	{
		document.writeln('<option>'+i+'</option>');
	}
}

function ShowYears()
{
	document.writeln('<option></option>');
	for(var i=1989;i>=1921;i--)
	{
		document.writeln('<option>'+i+'</option>');
	}
	document.writeln('<option>1920 or before</option>');
}

function DisplayDays(month)
{	
	var daysinMonth;
	
	switch(month)
	{
		case 1:
		case 3:
		case 5:
		case 7:
		case 8:
		case 10:
		case 12:
		daysinMonth = 31;
		break;	
		
		case 4:
		case 6:
		case 9:
		case 11:
		daysinMonth = 30;
		break;
		
		case 2:
		daysinMonth = 29;
		/*
		if (checkleapyear(year))
		{
			daysinMonth = 29;
		}
		else
		{
			daysinMonth = 28;
		}
		*/
		break;	
	}
	
	for(var i=1;i<=daysinMonth;i++)
	{
		document.writeln('<option>'+i+'</option>');
	}	
}

function checkleapyear(datea)
{
	datea = parseInt(datea);

	if(datea%4 == 0)
	{
		if(datea%100 != 0)
		{
			return true;
		}
		else
		{
			if(datea%400 == 0)
				return true;
			else
				return false;
		}
	}
return false;
}

function blurEmail(e)
{
	var el = trim(e.name);
	var emailpattern = /\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/
	var test = trim(e.value);
	if ( test == '' )
	{
		e.value = '';
		return;
	}
	test = test.match(emailpattern);
	
	if ( test != null )
	{
		e.value = test[0];
	}
	else
	{
		alert('Invalid email address\nEmail address should be in the format \'myemail@mydomain.com\'');
		e.focus();
	}

}

function blurZip(e)
{
	var el = trim(e.name);
	var s = trim(e.value);
	if (s.length > 0)
	{
		
		s = formatZip(s);
		
		if (s.length > 0){
			e.value = s;
			}
		else
		{
			alert('Invalid Zip Code\nZip Code must be 5 or 9 numeric digits\n12345 or 12345-6789');
			e.focus();
		}
	}
	else
		e.value = s;
}

function blurPhone(e)
{
	var el = trim(e.name);
	var s = trim(e.value);
	if (s.length > 0)
	{
		s = formatPhone(s);
		if (s.length > 0)
			e.value = s;
		else
		{
			alert('Invalid Phone Number\nPhone Number must be 7 or 10 numeric digits\n123-4567, (123)456-7890 or 123456790 (extension optional)');
			e.focus();
		}
	}
	else
		e.value = s;
}

function formatPhone(s)
{
	s = stripChars(s, "^\\d");
	var rc = "";
	var seven = new RegExp('^([0-9]{3})([0-9]{4})$');
	var ten = new RegExp('^([0-9]{3})([0-9]{3})([0-9]{4})$');
	var more = new RegExp('^([0-9]{3})([0-9]{3})([0-9]{4})([0-9]+)$');
	if(seven.test(s)) 
	   	rc = s.replace(seven, '$1-$2');
	else if (ten.test(s))
		rc = s.replace(ten, '($1)$2-$3');
	else if (more.test(s))
		rc = s.replace(more, '($1)$2-$3 x$4');
	return rc;
}

function formatZip(s)
{
	s = stripChars(s, "^\\d");
	var rc = "";
	var zip = new RegExp('^([0-9]{5})$');
	var plus = new RegExp('^([0-9]{5})([0-9]{4})$');
	if(zip.test(s)) 
	   	rc = s.replace(zip, '$1');
	else if (plus.test(s))
		rc = s.replace(plus, '$1-$2');
	return rc;
}

function stripChars(s, chars)
{	
	var rx = new RegExp("["+chars+"]",'g');  
	return s.replace(rx,"");
}

function trim(s) 
{
	s=s+"";
    var m = s.match(/^\s*(\S+(\s+\S+)*)\s*$/);
    return (m == null) ? "" : m[1];
}

function validateRequiredFields()
{	
	var frm = document.main;
	var errmsg = "";
	for(var i=0;i<frm.elements.length;i++)
	{	
		if((frm.elements[i].required != null) && !hasValue(frm.elements[i]))
			if (frm.elements[i].required == 'required' || frm.elements[i].required == '')
				errmsg = errmsg + frm.elements[i].name + " is Required \n";
	}
	return errmsg;
}	

function hasValue(elem)
{	
	var pattern = /^\s*$/;
	var has=true;
	switch(elem.type.toLowerCase())
	{	case 'checkbox': has = elem.checked;break;
		case 'radio': has = elem.checked;break;
		case 'select-one':
			if (elem.selectedIndex < 1) has = false;
			break;
		default: 
			if(elem.value == ""||pattern.test(elem.value)) has = false;
			break;
	}	
	return has;
}

function validate()
{
	var frm = document.main;
	var errmsg = validateRequiredFields();
	if (errmsg != "")	
	{
		alert(errmsg);
		return false;
	}
	return true;	
}