// EinsEMailCheck.js
// 建立於 2001-05-17
// <<2004-11-10>> , 新增 bCheckOnlyIfNotEmpty 參數
// <<2005-06-14>> , 新增 EMail_Check2 給 GridFormComponent 的 Detail 項目使用
//

function EMail_Check_Replace_PercentRow(ErrMsg,nRow)
{
   var TmpMsg=ErrMsg;
   var p=TmpMsg.indexOf("%Row");
   if (p!=-1)
   {
      var ls="";
      var rs="";
      if (p>0) ls=TmpMsg.substring(0,p);
      var nStart=p+4;
      if (nStart<TmpMsg.length) rs=TmpMsg.substring(nStart,TmpMsg.length);
      return ls+nRow+rs;
   }
   return ErrMsg;
}

function EMail_Check2(theCtrl,ErrMsg,bCheckOnlyIfNotEmpty,nRow)
{
   var email=theCtrl.value;

   if (bCheckOnlyIfNotEmpty!=null)
   {
      if (bCheckOnlyIfNotEmpty)
      {
         if (email.length==0) return '';
      }
   }
   var len = email.length;
   if(len==0)
   {
      theCtrl.focus();
      if (nRow!=null)
      {
         return EMail_Check_Replace_PercentRow(ErrMsg,nRow);
      }
      return ErrMsg;
   }
   for (var i=0;i<len;i++)
   {  
      var c= email.charAt(i);
      if (!((c>='A'&&c<='Z')||(c>='a'&&c<='z')||(c>='0'&&c<='9')||(c=='-')||(c=='_')||(c=='.')||(c=='@')))
      {
         theCtrl.focus();
         if (nRow!=null)
         {
            return EMail_Check_Replace_PercentRow(ErrMsg,nRow);
         }
         return ErrMsg;
      }
   }
   var p1=email.indexOf('@');
   var p2=email.indexOf('.');
   if ((p1==-1)||(p1==0)||(p1==(len-1))) return ErrMsg;
   if ((p1!=-1)&&(email.substring(p1+1,len).indexOf('@')!=-1))
   {
      theCtrl.focus();
      if (nRow!=null)
      {
         return EMail_Check_Replace_PercentRow(ErrMsg,nRow);
      }
      return ErrMsg;
   }
   if ((p2==-1)||(p2==0)||(email.lastIndexOf('.')==(len-1)))  
   {
      theCtrl.focus();
      if (nRow!=null)
      {
         return EMail_Check_Replace_PercentRow(ErrMsg,nRow);
      }
      return ErrMsg;
   }
   return '';
}

function EMail_Check(FormName,ItemName,ErrMsg,bCheckOnlyIfNotEmpty)
{
   var theCtrl=eval("document."+FormName+"."+ItemName);
   return EMail_Check2(theCtrl,ErrMsg,bCheckOnlyIfNotEmpty,null);
}
