/* 
javascript function to validate the email form. 
referenced from:	/subscribers/updateme.asp
dependant on:		validateEmailAddress(emailaddress)
*/
function validateSubscriptionForm(formObj)
{
	// make sure field n has some text in it
	if (formObj.elements("n").value=="")
	{
		alert("Please insert your name");
		formObj.elements("n").focus();
		return false;
	}
	
	// make sure field e has some text in it
	if (formObj.elements("e").value=="")
	{
		alert("Please insert your email address");
		formObj.elements("e").focus();
		return false;
	}	

	// if field e has text then ensure it is formatted like an email address
	if ((formObj.elements("e").value!="") && (validateEmailAddress(formObj.elements("e").value) == false))
	{
		alert("The email address you have input appears to be invalid.");
		{
			formObj.elements("e").focus();
			return false;
		}
	}

	// make sure at least one check box is checked

	var oneIsChecked = false;

	for (i=0; i<formObj.elements.length; i++)
	{
		if (formObj.elements[i].type == "checkbox")
		{
			if (formObj.elements[i].checked == true)
			{
				oneIsChecked = true;
			}
		}
	}
	
	if (oneIsChecked == false)
	{
		alert("Please select one or more districts.");
		return false;
	}
	
	return true;
}


/* 
javascript function to validate an email address and return true or false depending on the validity
arguments:	emailAddress	- String containing the email address to check
*/

function validateEmailAddress(emailaddress) 
{
	var validcharacters = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_.-";	// characters that are valid in an email address, excluding @

	if (emailaddress.indexOf('@') == -1)
	{
		return false;  // no @ character present
	}
	
	if (emailaddress.indexOf('@') != emailaddress.lastIndexOf('@'))
	{
		return false;  // more than one @ character present
	}	

	if (emailaddress.indexOf == -1)
	{
		return false;	// emailaddress contains '..'
	}

	//check that email address only contains valid characters (and a @)
	for (var i=0; i<emailaddress.length; i++)
	{
		if ((validcharacters.indexOf(emailaddress.charAt(i)) == -1) && (emailaddress.charAt(i) != '@'))
		{
		  	alert("Char '" + emailaddress.charAt(i) + "' is invalid");
			return false; // invalid character found
		}
	}
	
	/***** split email address into local part and domain ***/
	
	var local = emailaddress.substring(0, emailaddress.indexOf('@'));	//bit before the @
	var domain = emailaddress.substring(emailaddress.indexOf('@')+1);		//bit after the @

	// check that domain doesn't start with a period 
	if (domain.charAt(0) == '.')
	{
		alert("domain starts with a period and thus is invalid");
		return false; // domain starts with a period (.)
	}

	/***** return true is it has made it through all these tests *****/
	return true;
}



