/*
Copyright (C)2002 by Henrik Gustafsson
All rights reserved.
*/

function checkASCII(character)
{
	var i;
	var cmpStr = "-_[]~0123456789abcdefghijklmnopqrstuvwxyz";
	for(i=0; i<cmpStr.length; i++)
	{
		if(cmpStr.substr(i,1) == character)
			return 1;
	}
	return 0;
}

function validateEmail(str)
{
	var state = 0;
	str = str.toLowerCase();
	
	for(i=0; i<str.length; i++)
	{			
		switch(state)
		{
			case 0:
				if(checkASCII(str.substr(i,1)) == 1)
				{
					state = 1;
					continue;
				}
				return 0;
			break;
			
			case 1:
				if(checkASCII(str.substr(i,1)) == 1 || str.substr(i,1) == "@" || str.substr(i,1) == ".")
				{					
					if(str.substr(i,1) == "@")
						state = 2;
					if(str.substr(i,1) == ".")
						state = 0;
					continue;
				}				
				return 0;
			break;
			
			case 2:
				if(checkASCII(str.substr(i,1)) == 1)
				{
					state = 3;
					continue;
				}				
				return 0;
			break
			
			case 3:
				if(checkASCII(str.substr(i,1)) == 1 || str.substr(i,1) == ".")
				{
					if(str.substr(i,1) == ".")
						state = 4;
					else //ASCII
						state = 3;
					continue;
				}				
				return 0;
			break;
			
			case 4:
				if(checkASCII(str.substr(i,1)) == 1)
				{
					state = 5;
					continue;
				}				
				return 0;
			break;
			
			case 5:
				if(checkASCII(str.substr(i,1)) == 1 || str.substr(i,1) == ".")
				{
					if(str.substr(i,1) == ".")
						state = 4;
					else //ASCII
						state = 5;
					continue;
				}				
				return 0;			
			break;
						
		}
	}
		
	if(state != 5)
		return 0;
	
	return 1;
}