/*
Copyright 2005, 4word systems
All rights reserved.

This software may not be reproduced or distributed in any form without the express 
written consent of 4word systems or it's designee.

Revision 1.1:  20050729 Added underscore to list of valid characters
*/

function Validator()
{	
	this.validateEMail = function(eMailAddress,required)
	{
		if (required==undefined)
		{
			// if not specified, assume it's required
			required = true;
		}
		
		if (eMailAddress == null)
		{
			if (required)
			{
				return false;
			}
			
			return true;
		}
		
		if (eMailAddress.length == 0)
		{  
			if (required)
			{
				return false;
			}
			
			return true;
		}
		
		if (!this.allValidChars(eMailAddress))
		{  
			// check to make sure all characters are valid
			return false;
		}
		
		if (eMailAddress.indexOf("@") < 1)
		{
			//  must contain @, and it must not be the first character
			return false;
		} else if (eMailAddress.lastIndexOf(".") <= eMailAddress.indexOf("@"))
		{ 
			// last dot must be after the @
			return false;
		} else if (eMailAddress.indexOf("@") == eMailAddress.length)
		{
			// @ must not be the last character
			return false;
		} else if (eMailAddress.indexOf("..") >=0)
		{ 
			// two periods in a row is not valid
			return false;
		} else if (eMailAddress.indexOf(".") == eMailAddress.length)
		{
			// . must not be the last character
			return false;
		}
		
		return true;
	}
	
	this.allValidChars = function(eMailAddress)
	{
		var parsed = true;
		var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_";
		for (var i=0; i < eMailAddress.length; i++)
		{
			var letter = eMailAddress.charAt(i).toLowerCase();
			if (validchars.indexOf(letter) != -1)
			  continue;
			  
			parsed = false;
			break;
		}
		
		return parsed;
	}
}
