function isValidEmail(email, required)
{
    if (required==undefined)
	{   // if not specified, assume it's required
        required=true;
    }
    if (email==null)
	{
        if (required)
		{
			//alert("Invalid E-mail ID");
            return false;
        }
        return true;
    }
    if (email.length==0) 
	{  
        if (required) 
		{
			//alert("Invalid E-mail ID");
            return false;
        }
        return true;
    }
    if (! allValidChars(email))
	{  // check to make sure all characters are valid
     //alert("Invalid E-mail ID");
	  return false;
    }
    if (email.indexOf("@") < 1) 
	{ //  must contain @, and it must not be the first character
     //alert("Invalid E-mail ID");
	   return false;
    } 
	else if (email.lastIndexOf(".") <= email.indexOf("@"))
	{  // last dot must be after the @
      //alert("Invalid E-mail ID");
		return false;
    } 
	else if (email.indexOf("@") == email.length)
	{  // @ must not be the last character
       //alert("Invalid E-mail ID");
		return false;
    }
	else if (email.indexOf("..") >=0) 
	{ // two periods in a row is not valid
	//alert("Invalid E-mail ID");
	return false;
    } 
	else if (email.indexOf(".") == email.length)
	{  // . must not be the last character
	//alert("Invalid E-mail ID");
	return false;
    }
    return true;
}

function allValidChars(email)
{
  var parsed = true;
  var validchars = "abcdefghijklmnopqrstuvwxyz0123456789@.-_";
  for (var i=0; i < email.length; i++)
  {
    var letter = email.charAt(i).toLowerCase();
    if (validchars.indexOf(letter) != -1)
      continue;
    parsed = false;
    break;
  }
  return parsed;
}
