//**************************************************************** 
// 公用函式
// func.js
// 
// Programmer : Jason Chuang 
//**************************************************************** 



//****************************************************************
// 將快顯視窗移至螢幕中間
// obj快顯視窗
// width 快顯視窗寬度
// height 快顯視窗高度
//****************************************************************
function movetoCenter(obj, width, height)
{
   x=(screen.availWidth/2) - (width/2);
   y=(screen.availHeight/2) - (height/2);
   obj.moveTo(x, y);
}

function movetoRight(obj, width, height)
{
   x=(screen.availWidth / 5) * 3;
   y=(screen.availHeight / 6) * 1;
   obj.moveTo(x, y);
}

//****************************************************************
// 顯示圖片
//****************************************************************
function switchto(obj, target)
{
   obj.src=target;
}

//****************************************************************
// 檢查數值是否為正數
//****************************************************************

function isPositiveInteger(theString)
{
   var theData = new String(theString)
   var re5digit = /^\d+$/;
   for (var i = 1; i < theData.length; i++)
   {
      if(theData.search(re5digit)==-1)
         return false
      else
         return true
   }
}


//****************************************************************
// 檢查輸入的字串是否為數字 0-9 
//****************************************************************
function isDigit(theDigit)
{
   var digitStr = "0123456789";
   for (var j = 0; j < theDigit.length; j++)
   {
	   var chkChar=theDigit.substr(j, 1); 
      if (digitStr.indexOf(chkChar, 0)<0)    return false;
   }
   
   return true;

}

//****************************************************************
// 檢查密碼是否合乎要求的格式  - 不可使用特殊符號及空白，不分大小寫
//****************************************************************
function checkPasswordFormat(pass)
{
   chkstr="1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
   var i=0;
   for(i=0;i<pass.length;i++)
   {
      chr=pass.substr(i, 1);
	  if(chkstr.indexOf(chr, 0) <0)   return false;
   }
   return true;
}

//****************************************************************
// 檢查日期 期格式必須是 yyyy-mm-dd 或 yyyy/mm/dd
//****************************************************************
function isDate(s)
{
   var a1=s.split("/");
   var a2=s.split("-");
   var result=true;
   if ((a1.length!=3) && (a2.length!=3))
   {
      result=false;
   }
   else
   {
      if(a1.length==3)   var na=a1;
      if(a2.length==3)   var na=a2;

      if(isPositiveInteger(na[0]) &&  isPositiveInteger(na[1]) && isPositiveInteger(na[2]))
      {
         var m=na[1],d=na[2];
         var y=na[0];
         if((result) && (y<1000))
         {
            result=false;
         }
         if(result)
         {
            v=new Date(y+"/"+m+"/"+d);
            if (v.getMonth()!=m-1)   result=false;
         }
      }
      else
      {
          result=false;
      }

   }


   return result;
    
}

//****************************************************************
// 檢查身分證字號
// idStr:要檢查的身分證號
//****************************************************************
function checkID(idStr)
{
     var letterArr="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
     var numberArr="0123456789";
  
     //檢查身分證字號是否少於10碼
     if(idStr.length <10)
     {
	    //alert("請輸入10碼身分證字號");
        return false;
     }
     //將身分證字號拆成陣列方便作檢查
     var id=new Array(9);
     for(i=0;i<=9;i++)  id[i]=idStr.substr(i,1);
  
     //將第一位英文字母轉換成大寫
     id[0]=id[0].toUpperCase(); 
  
     // 檢查第一位是否為字母         
     if(letterArr.indexOf(id[0], 0) < 0)
     {
       //alert("身分證字號第一位請使用英文字母A-Z");
	   return false;
     }
  
     // 檢查第二位以後是否為數字  
     for(i=1;i<=9;i++)
     {
       if(numberArr.indexOf(id[i], 0) <0)
       {
         //alert("身分證字號第二位以後請使用數字0-9");
		 return false;
       }
     }
  
     //檢查身分證規則是否正確
     //計算第一位英文字母的值
     switch(id[0]) 
     {
       case "A"  : acc=1;break;
       case "B"  : acc=10;break;
       case "C"  : acc=19;break;
       case "D" : acc=28;break;
       case "E" : acc=37;break;
       case "F" : acc=46;break;
       case "G" : acc=55;break;
       case "H" : acc=64;break;
       case "I"  : acc=34;break;
       case "J"  : acc=73;break;
       case "K" : acc=82;break;
       case "L" : acc=2;break;
       case "M" : acc=11;break;
       case "N" : acc=20;break;
       case "O" : acc=35;break;
       case "P" : acc=29;break;
       case "Q" : acc=38;break;
       case "R" : acc=47;break;
       case "S" : acc=56;break;
       case "T" : acc=65;break;
       case "U" : acc=74;break;
       case "V" : acc=83;break;
       case "W" : acc=21;break;
       case "X" : acc=3;break;
       case "Y" : acc=12;break;
       case "Z" : acc=30;break;
     }

     checksum=acc + parseInt(id[1])*8 + parseInt(id[2])*7 + parseInt(id[3])*6 + parseInt(id[4])*5 + parseInt(id[5])*4 + parseInt(id[6])*3 + parseInt(id[7])*2 + parseInt(id[8])*1 + parseInt(id[9])*1;
     check1=(checksum / 10)        //商數
     check2=checksum % 10          //餘數

     if(check2 != 0 && (parseInt(id[9]) != (10-check2)))
     {
	    //alert("身分證字號可能錯誤，請重新輸入一次");
        return false;
     } 
	
	 return true; 
	
	
}	


//****************************************************************
// 檢查電子郵件1 - 和2不知哪個比較正確
//****************************************************************
function isEmail(email)
{
   var str=new String(email);   
   regEx=/^([\.\w-]){3,}@([\w-]){3,}(\.([\w]){2,4}){1,2}$/;
   if(str.search(regEx)==-1)
   {   
      return false;
   }   
   else
   {
      return true;   
   }
}   


//****************************************************************
// 檢查電子郵件2 - 這個好像比較正確
//****************************************************************
function checkEmail_2(mail)
{
   var strr;

   re=/(\w+@\w+\.\w+)(\.{0,1}\w*)(\.{0,1}\w*)/i;

   re.exec(mail);

   if (RegExp.$3!=""&&RegExp.$3!="."&&RegExp.$2!=".") 
      strr=RegExp.$1+RegExp.$2+RegExp.$3
   else if (RegExp.$2!=""&&RegExp.$2!=".") 
      strr=RegExp.$1+RegExp.$2
   else
      strr=RegExp.$1

   if(strr!=mail)    return false;

   return true;
}

//****************************************************************
// 檢查電子郵件3 - 這個好像比較正確
//****************************************************************
function   checkEmail   (emailStr)   {   
  var   emailPat=/^(.+)@(.+)$/   
  var   specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"   
  var   validChars="\[^\\s"   +   specialChars   +   "\]"   
  var   quotedUser="(\"[^\"]*\")"   
  var   ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/   
  var   atom=validChars   +   '+'   
  var   word="("   +   atom   +   "|"   +   quotedUser   +   ")"   
  var   userPat=new   RegExp("^"   +   word   +   "(\\."   +   word   +   ")*$")   
  var   domainPat=new   RegExp("^"   +   atom   +   "(\\."   +   atom   +")*$")   
    
    
  var   matchArray=emailStr.match(emailPat)   
  if   (matchArray==null)   {   
  //alert("@@@@@     再次?明     @@@@\n\n只有您?了您的E-mail地址我才能回信。\n\n您的email地址不正确，??查是否有   @   或   .")   
  return   false   
  }   
  var   user=matchArray[1]   
  var   domain=matchArray[2]   
  if   (user.match(userPat)==null)   {   
            
          //alert("@@@@@     再次?明     @@@@\n\n只有您?了您的E-mail地址我才能回信。\n\n?子?件的用?名字不正确.")   
          return   false   
  }   
  var   IPArray=domain.match(ipDomainPat)   
  if   (IPArray!=null)   {   
      for   (var   i=1;i<=4;i++)   {   
          if   (IPArray[i]>255)   {   
                  //alert("@@@@@     再次?明     @@@@\n\n只有您?了您的E-mail地址我才能回信。\n\nIP地址不正确！")   
  return   false   
          }   
          }   
          return   true   
  }   
    
  var   domainArray=domain.match(domainPat)   
  if   (domainArray==null)   {   
  //alert("@@@@@     再次?明     @@@@\n\n只有您?了您的E-mail地址我才能回信。\n\n?件地址的域名部分不正确！.")   
          return   false   
  }   
  var   atomPat=new   RegExp(atom,"g")   
  var   domArr=domain.match(atomPat)   
  var   len=domArr.length   
  if   (domArr[domArr.length-1].length<2   ||     
          domArr[domArr.length-1].length>3)   {   
        
        //alert("@@@@@     再次?明     @@@@\n\n只有您?了您的E-mail地址我才能回信。\n\n您的?件必?是2或3位字符?束，如cn,net等.")   
        return   false   
  }   
    
    
  if   (len<2)   {   
        var   errStr="?件地址缺少主机名!"   
        //alert(errStr)   
        return   false   
  }   
    
  return   true;   
  }   

