function isEmpty(s)
{ 
	if ((s == null) || (s.length == 0))
		return true;
	else
		return false;
}
function isRepeated(s)
{
	var i;
	var count = 0;
	for(i=0;i < s.length ; i++)
	{
		var c = s.charAt(i);
		if ( c.indexOf('@') != -1)
		{
			count++;
		}
	}
	if (count > 1)
		return false;
	else
		return true;
}
function isSpecialChar(s)
{  
	var i;
	var bag = "~`!#$%^&*()+=|\?/<:;[{}]>'"
	var flag = true;
    for (i = 0; i < s.length; i++)
    {   
    	var c = s.charAt(i);
    	if ((bag.indexOf(c) != -1) || c == '\"')
			flag = false;
   	}
	if (flag == true)
		return true;
	else
		return false;
			
}
function isSingleCharExists(s)
{
	var i;	
	flag = true;
	for(i=0; i < s.length; i++)
	{
		var c = s.charAt(i);
		if ( c.indexOf('@') != -1 )
		{
			if(!isCharsInBag(s.charAt(i+1) , "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" ))					
				flag = false;
			if(!isCharsInBag(s.charAt(i-1) , "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" ))					
				flag = false;
		}
		if ( c.indexOf('.') != -1 )
		{
			if(!isCharsInBag(s.charAt(i+1) , "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" ))					
				flag = false;
			if(!isCharsInBag(s.charAt(i-1) , "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" ))					
				flag = false;
		}	
	}
	return flag;
}
function isWhitespace (s)
{
	var i;
	var whitespace = " \t\n\r";	
        for (i = 0; i < s.length; i++)
        {   
		var c = s.charAt(i);
    		if (c == ' ') 
			return false;
	}
        return true;
}	
function isCharsInBag (s, bag)
{  
   	var i;
    	for (i = 0; i < s.length; i++)
    	{   
        	var c = s.charAt(i);
        	if (bag.indexOf(c) == -1) return false;
    	}
    	return true;
}
function checkSpecialChar(avalue)
{
	var e_id=avalue;
	var e_length=e_id.length;
	var temp_id=e_id.toUpperCase();
	for(j=0;j<e_length;j++)
	{
		if(!(temp_id.charCodeAt(j)>63 && temp_id.charCodeAt(j)<91))
		{
			if(!(temp_id.charCodeAt(j)>47 && temp_id.charCodeAt(j)<58))
			{
				if(temp_id.charCodeAt(j)!=46)
				{
					//this checks for "_"
					if(temp_id.charCodeAt(j)!=95)
					{
						//alert("Please enter valid email id for '"+e_id+"', spaces and special charaters are not accepted ");
						//alert("Invalid Email Id!");
						//return false;
					}
				}
			}
		}
	}
	return true;
}
function checkEmailId(obj)
{
	var e_ids=obj.value;
	l_index = obj.value.indexOf(",") ;
	if(l_index == -1)
		l_index = obj.value.length ;
	e_idTemp = e_ids ;
	//while( l_index != 0)
	//{
		e_id = e_idTemp.substr(0,l_index) ;
		e_length=e_id.length;
		e_idTemp = e_idTemp.substr(l_index+1, e_idTemp.length-1) ;
		
		var temp_id=e_id.toUpperCase();
		var f_position=e_id.indexOf('@');
		if(f_position<0)
		{
			//alert("Please enter a valid email id like you@you.com");
			alert("Invalid Email Id!");			
			obj.focus();
			return false;
		}

		var s_str=e_id.substr(f_position+1,e_length);
	
		var l_str=s_str.indexOf('.');
	
		if(l_str<=0)
		{	
			//alert("Please enter a valid email id like you@you.com");
			alert("Invalid Email Id!");			
			obj.focus();
			return false;
		}
		var m_str=s_str.substr(l_str+1,e_length);
		if(m_str.length==0)
		{
			//alert("Please enter a valid email id like you@you.com");
			alert("Invalid Email Id!");			
			obj.focus();
			return false;
		}
		if(!checkSpecialChar(e_id))
		{
			return false;
		}
		l_index = e_idTemp.indexOf(",") ;
		if(l_index == -1)
			l_index = e_idTemp.length ;
	//}
	return true;
}	


function validateEmail(obj)
{
	if (isEmpty(obj.value))
  	{ 
		alert ("Enter Email Id");
		obj.focus();
		return false;	
	}
	else if (!isRepeated(obj.value))
	{ 
		alert ("Invalid Email Id!");
		obj.focus();
		return false;	
	}
	else if (!isSpecialChar(obj.value))
     	{ 
	 	alert ("Invalid Email Id!");
		obj.focus();
		return false;	
	}
	else if (!isSingleCharExists(obj.value))
    	{ 
		alert ("Invalid Email Id!");
		obj.focus();
		return false;	
	}
	else if (!isWhitespace(obj.value))
	{ 
		alert ("Invalid Email Id!");		
  	 	obj.focus();
		return false;	
	}
    else if ( !isCharsInBag( obj.value.charAt(0), "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789") )
    {
    	alert("Invalid Email Id!");  
    	obj.focus();
		return false;
    }
    else if ( !isCharsInBag( obj.value.charAt(obj.value.length - 1), "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789") )
    {
    	alert( "Invalid Email Id!");      
    	obj.focus();
    	return false;
    }
    else if (obj.value.indexOf('@') == -1)		
	{
		alert("Invalid Email Id!");		
		obj.focus();
		return false;
	}	
	else if (obj.value.indexOf('.') == -1)		
	{
		alert("Invalid Email Id!");		
		obj.focus();
		return false;
	}	
	else if (!checkEmailId(obj))
	{ 
		//alert ("Enter a valid email ID.");
		return false;
	}
	else	
	{
		checkstatus="yes";
		//checkFields();
		return true;
	}
}


