
/*-----------------------------------------------------------------------

	SUBROUTINE:   	filterEmailField()

	DESCRIPTION:	Assumes that the prefs contain the following entries:
				           popup_invalid_email_chars
				           popup_email_no_at_sign
				           popup_email_excess_at_signs
				           popup_email_no_extension
				           popup_email_bad_extension
				           popup_field_length1
				           popup_field_length2
				           popup_field_length3
					This function is not meant to verify that a value has
					been entered. If field is empty, it is considered valid
					and 'true' is returned.

--------------------------------------------------------------------------*/
	var filterEmailText = new Object();
	captureFilterEmailText(filterEmailText);

function filterEmailField( fieldToFilter, min, max )
{
	var fieldToFilterOrig = fieldToFilter.value;
	var fieldValid = filterFieldValue( fieldToFilter );
	var email = fieldToFilter.value;
	var invalid = " \:\,\;\#$\%\&\(\)\+\=\/";
	
	if ((fieldToFilterOrig != '') && (!fieldValid))
	{
		return false;
	}

	if (email == '')
	{
		return true;
	}

	for(var i=0; i<invalid.length; i++)
	{
		var badChar = invalid.charAt(i);

		if (email.indexOf(badChar,0) != -1)
		{
			alert( filterEmailText.invalidEmailChars );
			return false;
		}
	}

	if ( fieldToFilter.value.charAt(fieldToFilter.value.length -1) == "." )
	{
		alert( filterEmailText.invalidEmailChars );
		return false;
	}
	
	if (email.indexOf(".@") != -1)
	{
		alert( filterEmailText.invalidEmailChars );
		return false;
	}
	
	if (email.indexOf("@.") != -1 || email.indexOf("@-") != -1 || email.indexOf("-.com") != -1)
	{
		alert( filterEmailText.invalidEmailChars );
		return false;
	}
	
	var atSignPos = email.indexOf('@',1);

	if (atSignPos == -1)
	{
		alert( filterEmailText.noEmailAtSign );
		return false;
	}
	else if (email.indexOf('@',atSignPos+1) != -1)
	{
		alert( filterEmailText.excessEmailAtSigns );
		return false;
	}

	var dotPos = email.indexOf('.',atSignPos+2);

	if (email.indexOf('..', 1) != -1)
	{
		alert( filterEmailText.invalidEmailChars );
		return false;
	}

	if (dotPos == -1)
	{
		alert( filterEmailText.noEmailExtension );
		return false;
	}
	else if (dotPos+3 > email.length)
	{
		alert( filterEmailText.badEmailExtension );
		return false;
	}

	if ((min) && (max) && (fieldToFilter.value != ''))
	{
		if (( fieldToFilter.value.length < min ) || ( fieldToFilter.value.length > max ))
		{

			alert ( filterEmailText.popupFieldLength1 + min + filterEmailText.popupFieldLength2 + max + filterEmailText.popupFieldLength3 );

			fieldToFilter.value     = "";
			filtered                = "";

			if (document.images)
			{
				fieldToFilter.focus();
			}
			return false;
		}
	}
	return true;
}   // END filterEmailField 
