// EinsStrCheck.js
// 建立於 2001-07-04
// <<2005-06-14>> , 新增 ValidChar_Check2 給 GridFormComponent 的 Detail 項目使用
// <<2005-06-14>> , 新增 StringLength_Check2 給 GridFormComponent 的 Detail 項目使用
// <<2005-11-11>> , 新增 IllegalChar_Check, IllegalChar_Check2 給禁制字元使用

function EinsStrCheck_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 ValidChar_Check2(theCtrl,ValidString,ErrMsg,nRow)
{
   if (theCtrl.value!="") 
   {
      var Value=theCtrl.value;
      for (var idx=0; idx<Value.length ; idx++)
      {
         var char1=Value.charAt(idx);
         var CheckPass=false;
         for (var i=0; i<ValidString.length; i++)
         {
            if (char1==ValidString.charAt(i)) CheckPass=true;	// 只要有一個相同,就通過
         }
         if (!CheckPass)
         {
            theCtrl.focus();
            if (nRow!=null)
            {
              return EinsStrCheck_Replace_PercentRow(ErrMsg,nRow);
            }
            return ErrMsg;
         }
      }
   }
   return '';
}

function ValidChar_Check(FormName,ItemName,ValidString,ErrMsg) 
{
   var theCtrl=eval("document."+FormName+"."+ItemName);
   return ValidChar_Check2(theCtrl,ValidString,ErrMsg,null);
}

function StringLength_Check2(theCtrl,MinLen,MaxLen,ErrMsg,nRow)
{
   if (theCtrl.value=="") 
   {
      if (MinLen>0)
      {
         theCtrl.focus();
         if (nRow!=null)
         {
           return EinsStrCheck_Replace_PercentRow(ErrMsg,nRow);
         }
         return ErrMsg;
      }
   }
   else 
   {
      var theLen=theCtrl.value.length;
      if ((theLen<MinLen)||(theLen>MaxLen))
      {
         theCtrl.focus();
         if (nRow!=null)
         {
           return EinsStrCheck_Replace_PercentRow(ErrMsg,nRow);
         }
         return ErrMsg;
      }
   }
   return '';
}

function StringLength_Check(FormName,ItemName,MinLen,MaxLen,ErrMsg)
{
   var theCtrl=eval("document."+FormName+"."+ItemName);
   return StringLength_Check2(theCtrl,MinLen,MaxLen,ErrMsg,null);
}

function IllegalChar_Check2(theCtrl,ValidString,ErrMsg,nRow)
{
   if (theCtrl.value!="") 
   {
      var Value=theCtrl.value;
      for (var idx=0; idx<Value.length ; idx++)
      {
         var char1=Value.charAt(idx);
         var CheckPass=true;
         for (var i=0; i<ValidString.length; i++)
         {
            if (char1==ValidString.charAt(i)) CheckPass=false;	// 只要有一個相同,就算錯誤
         }
         if (!CheckPass)
         {
            theCtrl.focus();
            if (nRow!=null)
            {
              return EinsStrCheck_Replace_PercentRow(ErrMsg,nRow);
            }
            return ErrMsg;
         }
      }
   }
   return '';
}

function IllegalChar_Check(FormName,ItemName,ValidString,ErrMsg) 
{
   var theCtrl=eval("document."+FormName+"."+ItemName);
   return IllegalChar_Check2(theCtrl,ValidString,ErrMsg,null);
}