function Email_onChange(efield)
{   
	var astrInput = efield.value;
	var ablnResult;
	
	if(astrInput.length > 0)
	{		
		ablnResult = Email_Validate(astrInput);
		
        	if(ablnResult == false)
        	{
             		return "failed";
        	}
        	      
	}
	return "ok";
}


function Email_Validate(cstrInput)
{
	//check valid characters
	ok = "1234567890qwertyuiopasdfghjklzxcvbnm.@-_QWERTYUIOPASDFGHJKLZXCVBNM";
	for(i=0; i < cstrInput.length ;i++)
	{
		if(ok.indexOf(cstrInput.charAt(i))<0)
		{ 
			alert("Incorrect Character in Email Address!");
			return false;
		}	
	} 

  // there must be >= 1 character before @, so we
    // start looking at character position 1 
    // (i.e. second character)
    var i = 1;
    var sLength = cstrInput.length;

    // look for @
    while ((i < sLength) && (cstrInput.charAt(i) != "@"))
    { 
    	i++
    }

    if ((i >= sLength) || (cstrInput.charAt(i) != "@")) 
    {
    	alert("Email address needs @ in correct place!");
    	return false;
    }
    else 
    {
    	if(cstrInput.charAt(i+1)== ".")
    	{
    		alert("Email address cannot have period directly after @!");
    		return false;
	}
	else
	{
		i = i + 2;
	}
    }

    // look for .
    while ((i < sLength) && (cstrInput.charAt(i) != "."))
    { 
    	i++
    }

    


    // there must be at least one character after the .
    if ((i >= (sLength - 1)) || (cstrInput.charAt(i) != ".")) 
    {	
    	alert("Email address needs . in correct place!");
    	return false;
    }
    
    
    if (cstrInput.charAt(sLength-1) == ".") 
    {
    	alert("Email address cannot end with a period!");
    	return false;
    }
    else
    {
    	return true;
    }
}
	
	
	



