function validateForm()
{
	// check to see if a human has done this
	if (Clicked>=0)
	{
		// probably not a person
		alert ("Sorry, there was a problem submitting your information. Please re-type the information and try again.");
		return;
	}

	// shortcut
	var frm = document.nl_req;

	// this is a submission, check it
	// check for blanks
	if (noBlankAllowed(frm.nl_name,'First Name')) return;
	if (noBlankAllowed(frm.nl_email,'E-Mail Address')) return;
	if (noNonSelectAllowed(frm.nl_country,'Country')) return;

	// do other validations
	if (validateEmail(frm.nl_email)) return;

	// make sure the name contains only good stuff
	if ((res = frm.nl_name.value.match(/[^a-z0-9\.\-\_\(\)\s]/i)) != null)
	{
		// not allowed at all
		return badFieldInput(frm.nl_name,"Invalid characters in Name.\nOnly a-z, 0-9, period, dash, underscore and parenthesis allowed.");
	}

	// make sure a valid state has been selected
	var cty = frm.nl_country.value;
	if ((cty == 183) ||(cty == 32))
	{
		// decide which country
		var cntry = (cty==183?' the United States':' Canada');

		// check for any state selected at all
		if (noNonSelectAllowed(frm.nl_state,'State for'+cntry)) return;

		// get state selected
		var state = frm.nl_state.value;

		// check for correct state for country
		if (((cty==183)&&((state<1)||(state>53)))||((cty==32)&&((state<55)||(state>67)))) return badFieldInput(frm.nl_state,'Please select valid state for '+cntry);
	} else {
		// check to see if a state was selected
		var state = frm.nl_state.selectedIndex;
		if (state>1) return badFieldInput(frm.nl_state,'Please select "N/A" as the state');

		// make it the correct one
		frm.nl_state.selectedIndex = 1;
	}

	// looks good, set the click
	frm.nl_clk.value = Clicked;

	// submit the form all is good
	frm.submit();
	return;
}

function fixStateSelection()
{
	var cty = document.nl_req.nl_country.value;
	if ((cty != 183) && (cty != 32)) document.nl_req.nl_state.selectedIndex = 1;
}

