var local=new Array(40);
local[10]='A';
local[11]='B';
local[12]='C';
local[13]='D';
local[14]='E';
local[15]='F';
local[16]='G';
local[17]='H';
local[18]='J';
local[19]='K';
local[20]='L';
local[21]='M';
local[22]='N';
local[23]='P';
local[24]='Q';
local[25]='R';
local[26]='S';
local[27]='T';
local[28]='U';
local[29]='V';
local[32]='W';
local[39]='X';
local[31]='Y';
local[33]='Z';
local[34]='I';
local[35]='O';
bolPass=1;

function checkid(id){
var msg='';
  id=id.toUpperCase();
  if (lengtherr(id)) msg+='身份證輸入的長度有誤\n'; 	
  if (firstlettererr(id)) msg+='身份證第一碼並無此英文字母:' + id.substring(0,1) + '\n'; 	
  if (checkerr(id)) msg+='身份證檢查碼有誤\n'; 
  if (msg.length>0)  return msg;
 }

function lengtherr(id){
  if (id.length<10)
    return 1;
  else
    return 0;
}

function firstlettererr(id){
  var fl=id.substring(0,1);
  var haserr=1;

  for (i=10;i<=40 ;i++ )
  {
    if (local[i]!=fl)
    	 continue;
    else{
	  haserr=0;
	  break;
	}
  }
  if (haserr==1)
    return 1;
  else
    return 0;
}
/*
function numerr(id){
   var haserr=0;
   for (i=1;i<=9 ;i++ ) {
     if (parseInt(id.substring(i,i+1))>0 || id.substring(i,i+1)=='0')
	   continue;
	 else
     {
	   haserr=1;
	   break;
     }
   }
   if (haserr==1)
     return 1;
   else
     return 0;
}
*/

function checkerr(id){
  var se=new Array(10);
  var we=0;
  var checkcode=0;
  
  if( id.substring(0,1) != 'X' )
  {
     for (i=10;i<=40 ;i++ )  
     {
       if (local[i]==id.substring(0,1))
       {
	 se[0]=parseInt((i+'0').substring(0,1));
	 se[1]=parseInt((i+'0').substring(1,2));
	 break;
       }
     }

     for (i=1;i<=9 ;i++ )
     {
       se[i+1]=parseInt(id.substring(i,i+1));
     }

     for (i=0;i<=10 ;i++ )
     {
       if (i==0)
        we=we+se[i];
       else
	we=we+(se[i]*(10-i));
     }
     checkcode=(((10-mod(we,10))%10)+'0').substring(0,1);
     if (checkcode!=id.substring(9,10))
     return 1;
	else
	 return 0;
   }
   else
      return 0;
}

function mod(a,b){
  var r;
  r=Math.round(a/b);
  if ((b*r)>a)
   r-=1;
   return(a-(b*r));
}

t0 = new Array("選擇地區"); //請選擇
t1 = new Array("   "); //海外地區
t2 = new Array("100中正區","103大同區","104中山區","105松山區","106大安區","108萬華區","110信義區","111士林區","112北投區","114內湖區","115南港區", "116文山區","116木柵區","116景美區");
//t2 = new Array("中正區","大同區","中山區","松山區","大安區","萬華區","信義區","士林區","北投區","內湖區","南港區", "文山區","木柵區","景美區");
t3 = new Array("207萬里鄉","208金山鄉","220板橋市", "221汐止市","222深坑鄉","223石碇鄉","224瑞芳鎮","226平溪鄉","227雙溪鄉","228貢寮鄉","231新店市", "232坪林鄉","233烏來鄉","234永和市", "235中和市", "236土城市", "237三峽鎮","238樹林鎮","239鶯歌鎮","241三重市","242新莊市", "243泰山鄉","244林口鄉","247蘆洲市","248五股鄉","249八里鄉","251淡水鎮","252三芝鄉","253石門鄉");
//t3 = new Array("萬里鄉","金山鄉","板橋市", "汐止市","深坑鄉","石碇鄉","瑞芳鎮","平溪鄉","雙溪鄉","貢寮鄉","新店市", "坪林鄉","烏來鄉","永和市", "中和市", "土城市", "三峽鎮","樹林鎮","鶯歌鎮","三重市","新莊市", "泰山鄉","林口鄉","蘆洲市","五股鄉","八里鄉","淡水鎮","三芝鄉","石門鄉");
t4 = new Array("330"); //桃園市
t5 = new Array("320中壢市","324平鎮市","325龍潭鄉","326楊梅鎮","327新屋鄉","328觀音鄉","330桃園市","333龜山鄉","334八德鄉","335大溪鎮","336復興鄉","337大園鄉","338蘆竹鄉");
t6 = new Array("300"); //新竹市
t7 = new Array("302竹北市","303湖口鄉","304新豐鄉","305新埔鎮","306關西鄉","307芎林鄉","308寶山鄉","310竹東鎮","311五峰鄉","312橫山鄉","313尖石鄉","314北埔鄉","315峨眉鄉");
t8 = new Array("200仁愛區","201信義區","202中正區","203中山區","204安樂區","205暖暖區","206七堵區");
t9 = new Array("260宜蘭市","261頭城鎮","262礁溪鄉","263壯圍鄉","264員山鄉","265羅東市","266三星鄉","267大同鄉","268五結鄉","269冬山鄉","270蘇澳鎮","272南澳鄉");
t10 = new Array("350竹南鎮","351頭份鎮","352三灣鄉","353南庄鄉","354獅潭鄉","356後龍鎮","357通霄鎮","358苑裡鎮","360苗栗市","361造橋鄉","362頭屋鄉","363公館鄉","364大湖鄉","365泰安鄉","366銅鑼鄉","367三義鄉","368西湖鄉","369卓蘭鎮");
t11 = new Array("400中區 ","401東區 ","402南區 ","403西區 ","404北區","406北屯區","407西屯區","408南屯區");
t12 = new Array("411太平鄉","412大里鄉","413霧峰鄉","414烏日鄉","420豐原市","421后里鄉","422石岡鄉","423東勢鎮","424和平鄉","426新社鄉","427潭子鄉","428大雅鄉","429神岡鄉","432大肚鄉","433沙鹿鎮","434龍井鄉","435梧棲鎮","436清水鎮","437大甲鎮","438外埔鄉","439大安鄉");
t13 = new Array("540南投市","541中寮鄉","542草屯鎮","544國姓鄉","545埔里鎮","546仁愛鄉","551名間鄉","552集集鎮","553水里鄉","555魚池鄉","556信義鄉","557竹山鎮","558鹿谷鄉");
t14 = new Array("500彰化市","502芬園鄉","503花壇鄉","504秀水鄉","505鹿港鎮","506福興鄉","507線西鄉","508和美鎮","509伸港鄉","510員林鎮","511社頭鄉","512永靖鄉","513埔心鄉","514溪湖鎮","515大村鄉","516埔鹽鄉","520田中鎮","521北斗鎮","522田尾鄉","523埤頭鄉","524溪州鄉","525竹塘鄉","526二林鎮","527大城鄉","528芳苑鄉","530二水鄉");
t15 = new Array("630斗南鎮","631大埤鄉","532虎尾鎮","633土庫鎮","634褒忠鄉","635東勢鄉","636臺西鄉","637崙背鄉","638麥寮鄉","640斗六市","643林內鄉","646古坑鄉","647莿桐縣","648西螺鎮","649二崙鄉","651北港鎮","652水林鄉","653口湖鄉","654四湖鄉","655元長鄉");
t16 = new Array("600");  //嘉義市
t17 = new Array("602番路鄉","603梅山鄉","604竹崎鄉","605阿里山","606中埔鄉","607大埔鄉","608水上鄉","611鹿草鄉","612太保市","613朴子市","614東石鄉","615六腳鄉","616新港鄉","621民雄鄉","622大林鎮","623溪口鄉","624義竹鄉","625布袋鎮");
t18 = new Array("700中區 ","701東區 ","702南區 ","703西區 ","704北區","705安平區","706安南區");
t19 = new Array("710永康鄉","711歸仁鄉","712新化鎮","713左鎮鄉","714玉井鄉","715楠西鄉","716南化鄉","717仁德鄉","718關廟鄉","719龍崎鄉","720官田鄉","721麻豆鎮","722佳里鎮","723西港鄉","724七股鄉","725將軍鄉","726學甲鎮","727北門鄉","730新營市","731後壁鄉","732白河鎮","733東山鄉","734六甲鄉","735下營鄉","736柳營鄉","737鹽水鎮","741善化鎮","742大內鄉","743山上鄉","744新市鄉","745安定鄉");
t20 = new Array("800新興區","801前金區","802苓雅區","803鹽埕區","804鼓山區","805旗津區","806前鎮區","807三民區","811楠梓區","812小港區","813左營區");
t21 = new Array("814仁武鄉","815大社鄉","820岡山鎮","821路竹鄉","822阿蓮鄉","823田寮鄉","824燕巢鄉","825橋頭鄉","826梓官鄉","827彌陀鄉","828永安鄉","829湖內鄉","830鳳山市","831大寮鄉","832林園鄉","833鳥松鄉","840大樹鄉","842旗山鎮","843美濃鎮","844六龜鄉","845內門鄉","846杉林鄉","847甲仙鄉","848桃源鄉","849三民鄉","851茂林鄉","852茄萣鄉");
t22= new Array("900屏東市","901三地鄉","902霧臺鄉","903瑪家鄉","904九如鄉","905里港鄉","906高樹鄉","907鹽埔鄉","908長治鄉","909麟洛鄉","911竹田鄉","912內埔鄉","913萬丹鄉","920潮州鎮","921泰武鄉","922來義鄉","923萬巒鄉","924崁頂鄉","925新埤鄉","926南州鄉","927林邊鄉","928東港鎮","929琉球","931佳冬鄉","932新園鄉","940枋寮鄉","941枋山鄉","942春日鄉","943獅子鄉","944車城鄉","945牡丹鄉","946恆春鎮","947滿州鄉");
t23 = new Array("970花蓮市","971新城鄉","972秀林鄉","973吉安鄉","974壽豐鄉","975鳳林鎮","976光復鄉","977豐濱鄉","978瑞穗鄉","979萬榮鄉","981玉里鎮","982卓溪鄉","983富里鄉");
t24 = new Array("950臺東市","951綠島 ","952蘭嶼","953延平鄉","954卑南鄉","955鹿野鄉","956關山鎮","957海端鄉","958池上鄉","959東河鄉","961成功鎮","962長濱鄉","963太麻里","964金峰鄉","965大武鄉","966達仁鄉");
t25 = new Array("209南竿 ","210北竿 ","211莒光 ","212東引 ");
t26 = new Array("880馬公市","881西嶼鄉","882望安鄉","883七美鄉","884白沙鄉","885湖西鄉");
t27 = new Array("890金沙鎮","891金湖鎮","892金寧鄉","893金城鎮","894烈嶼鄉","896烏坵鄉");
t28 = new Array("817東沙島","819南沙島");
T=new Array(t2, t3, t4, t5, t6, t7, t8, t9, t10,t11, t12, t13,t14, t15, t16,t17, t18, t19, t20, t21, t22,t23, t24, t25,t26, t27, t28);
function changearea(){
 var index=frm.select.selectedIndex;
 var obj;
 if (index==0)obj=t0; if (index==1)obj=t1; if (index==2)obj=t2; if (index==3)obj=t3;
 if (index==4)obj=t4; if (index==5)obj=t5; if (index==6)obj=t6; if (index==7)obj=t7;
 if (index==8)obj=t8; if (index==9)obj=t9; if (index==10)obj=t10; if (index==11)obj=t11;
 if (index==12)obj=t12; if (index==13)obj=t13; if (index==14)obj=t14; if (index==15)obj=t15;
 if (index==16)obj=t16; if (index==17)obj=t17; if (index==18)obj=t18; if (index==19)obj=t19;
 if (index==20)obj=t20; if (index==21)obj=t21; if (index==22)obj=t22; if (index==23)obj=t23;
 if (index==24)obj=t24; if (index==25)obj=t25; if (index==26)obj=t26; if (index==27)obj=t27;
 if (index==28)obj=t28;
 frm.district.length=obj.length;

 for (var i=0;i<obj.length ;i++ )
 {
    if(index!=0){
   frm.district.options[i].value=obj[i].substring(3);
   frm.district.options[i].text=obj[i].substring(3);
   }
   else{
   frm.district.options[i].value=obj[i];
   frm.district.options[i].text=obj[i];}
 }
     if(index==0)frm.textfield223.value='';
     else frm.textfield223.value=obj[frm.district.selectedIndex].substring(0, 3);
}

function telnorm(NO){
  var rtn='';
  for (var i=0; i<NO.length; i++){
    if (NO.substring(i, i+1)=='-')continue;
	else rtn+=NO.substring(i, i+1);
  }
  return rtn;
}
function chktel(telno){
  var bolno=true;
  for (var i=0; i<telno.length; i++){
  if (isNaN(telno.charAt(i))){bolno=false;break;}
  }
  return bolno;
}
  function jtrim(frmobj){
  var tempvalue;
   for (var i=0; i<frmobj.length; i++){
     tempvalue='';
   flag:
	for (var j=0; j<frmobj.elements[i].value.length; j++){
	 if (frmobj.elements[i].value.charCodeAt(j)!=32) {
	 tempvalue=frmobj.elements[i].value.substring(j);
	 break flag;
	 }
    }
   frmobj.elements[i].value=tempvalue
   }
  }
function equMtel(idx){
var temp='';
 switch (idx){
  case 1:
     if (frm.dtel_chk.checked){
	 frm.dtel_2.value=frm.mobilephone.value;
     frm.dtel_1.value='';frm.dtel_3.value='';
	 }
	 else {
	 frm.dtel_2.value='';
	 }
	 break;
  case 2:
     if (frm.ntel_chk.checked){
	 frm.ntel_2.value=frm.mobilephone.value;
     frm.ntel_1.value='';frm.ntel_3.value='';
	 }
	 else{
	 frm.ntel_2.value='';
	 }
	 break;
 }
}
//////////////////////////////////////////////////

function jcheck(txtobj, boltype){
if(frm.dtel_chk.checked){
  if(boltype==1){
    if(txtobj.value.length>0)txtobj.value='';
  }else{
    if(txtobj.value!=frm.mobilephone.value)txtobj.value=frm.mobilephone.value;
  }
 }
}

function jcheck2(txtobj, boltype){
if(frm.ntel_chk.checked){
  if(boltype==1){
    if(txtobj.value.length>0)txtobj.value='';
  }else{
    if(txtobj.value!=frm.mobilephone.value)txtobj.value=frm.mobilephone.value;
  }
 }
}

function frmSubmit()
{  
  var errmsg='';
  var bol=chkDate();	    
  if (bol==false)
     errmsg += '到期日有誤\n'; 
  if (frm.textfield222.value=='')errmsg+='卡號\n';
  if (frm.select3.value== '000')errmsg+='銀行別\n';
  if (frm.bm.selectedIndex==0 || frm.select2.selectedIndex==0)errmsg+='信用卡到期日\n';
  if (errmsg!='')
  {
     errmsg='下列資料未填:\n'+errmsg;
     alert(errmsg);
     return false;
  }
  var cardno=normalize(frm.textfield222.value);
  if(cardno=='')
  {
     alert('卡別或卡號錯誤'); 
     return false;
  }
  var TFType=chkType(cardno, frm.select.selectedIndex);
  if (TFType==true)
  {
     var firstsix=cardno.substring(0,6); 
     var firstfive=cardno.substring(0,5);
     if (frm.select.selectedIndex<3 && frm.textfield222.value.charAt(frm.textfield222.value.length-2)!='0'
	     && ((firstsix=='457960' && cardno.substring(6,8)!='10') || firstsix=='457961' || firstsix=='543382' || firstsix=='540641' ||
		 firstfive=='37768'))
        frm.TSB_Card.value='2';
     else 
	frm.TSB_Card.value=chkTSB(cardno, frm.select.selectedIndex);
     frm.action="/servlets/attend.delivery";
     frm.submit();
   } 
   else 
   {alert('卡別或卡號錯誤'); return false;}
}  

function chkDate()
{
  var vardate=new Date();	
  var varYr=vardate.getYear()-2000;	
  var varMn=vardate.getMonth()+1;
  var selMn=eval(frm.bm.options[frm.bm.selectedIndex].value);
  var selYr=eval(frm.select2.options[frm.select2.selectedIndex].value); 	
  if (selYr>varYr || (selYr==varYr && selMn>varMn))return true; else return false;
}

function normalize(strCard){ 
  var rtn='';   
  for (var i=0; i<strCard.length; i++){ 
    if (isNaN(strCard.substring(i, i+1)))continue; 
	else rtn+=strCard.substring(i, i+1); 
  }  
  return rtn; 
}  

function chkTSB(strCard, idx){
var rtn;
switch(idx){
  case 0:
   if((strCard.substring(0, 6)=='457960' && strCard.substring(6, 8)!='10') || strCard.substring(0, 6)=='457961')
   rtn='1'; else rtn='0';
   break;
  case 1:
   if(strCard.substring(0, 6)=='543382' || strCard.substring(0, 6)=='540641')
   rtn='1'; else rtn='0';
   break;
  case 2:
   if(strCard.substring(0, 5)=='37768')
   rtn='1'; else rtn='0';
   break;
  default:
   rtn='0';
   break;
}
return rtn;
}

function chkType(strCard, idx){
  var bolx=false, boly=false, tmp;
  switch (idx){
  case 0: //Visa
   bolx=true;
   boly=chkCard(strCard);
   if(strCard.substring(0,1)=='4' && (strCard.length==13 || strCard.length==16))bolx=true;
   else bolx=false;
   break;
  case 1: //Master
   tmp=eval(strCard.substring(1, 3));  
   bolx=true;
   boly=chkCard(strCard);
   if(strCard.substring(0,1)=='5' && strCard.length==16)bolx=true; else bolx=false;
   break;
  case 2: //AE
   if (strCard.substring(0, 1)=='3' && strCard.length==15)bolx=true;
   boly=chkCard(strCard);
   break;
  case 3: //Ucard
   if(strCard.substring(0,4)=='4000' && strCard.length==16)bolx=true; 
   boly=chkUcard(strCard);
   break;
  case 4: //JCB
   tmp=strCard.substring(0, 4)
   var tmp2=eval(strCard.substring(0,tmp.length-1));
   if (strCard.length==15 || strCard.length==16) bolx=true;
   if (strCard.length==15)boly=chkXJCB(strCard);
	  else boly=chkCard(strCard);
   break;
  }
  return bolx && boly;
}
function chkUcard(strCard){                   
 if (strCard.length<16) return false;
 var bolx=chkCard(strCard);                   
 var boly=false;                              
 strCard=strCard.substring(4);                
 var chkchr=eval(strCard.charAt(10));         
 mVal=new Array(7, 3, 5, 6, 7, 9, 8, 5, 9, 7);
 mVal2=new Array(5, 9, 7);                    
 var tmp1=UCardNorm(strCard, mVal);
 strCard=UCardNorm(tmp1, mVal2);
 var tmpValue=eval(strCard.charAt(2))+3;
 tmpValue=10-(tmpValue%10);             
 tmpValue=(tmpValue==10?0:tmpValue);    
 if (tmpValue==chkchr)boly=true;        
 return bolx && boly;                   
}                                       
function UCardNorm(str, ary){           
 var rtnString='';                      
 var tmpValue=0;                        
 for (var i=0; i<ary.length; i++)tmpValue+=eval(str.substring(i, i+1))*ary[i];  
   rtnString=''+tmpValue;    
   if (tmpValue>9 && tmpValue<100)rtnString='0'+tmpValue;  
   if (tmpValue<9)rtnString='00'+tmpValue;   
 return rtnString;           
}                            
function chkXJCB(strCard){   
  mVal=new Array(3, 7, 1);   
  var tmpSum=0, flag=0, tmpVal=0, bolrtn=false;  
  var tmpString='';      
  var strA=strCard.substring(4);   
  var chkchar=eval(strA.substring(3, 4)); 
  for (var i=0;i<strA.length; i++){       
    if (i==2 || i==3)continue;            
    tmpSum+=eval(strA.substring(i, i+1))*mVal[flag%3];     
    flag++;     
  }             
    tmpVal=10-(tmpSum%10);              
	tmpVal=(tmpVal==10 ? 0:tmpVal);   
	if (tmpVal==chkchar) bolrtn=true; 
	return bolrtn;   
}                      
function chkCard(strCard){  
//  alert(strCard);
//  if(isNaN(strCard)){alert(false);return false;}
  var cardlength=strCard.length; 
  var k=0, m=0, j=0, tmp=0, result=0; 
  for (var i=0; i<cardlength; i++){   
    if (((cardlength-i)%2)==0)m=2; else m=1;
	tmp=eval(strCard.substring(i, i+1));  
    j=tmp*m;  
	k+=Math.floor((j/10)) + (j%10); 
  }   
  result=k%10; 
  if (result==0)return true; else return false; 
} 

function init(){
dehyph(frm.textfield37);
var tmpvalue=frm.textfield2.value;
if (tmpvalue.indexOf('-')!=-1) {
frm.dtel_1.value=tmpvalue.substring(0, tmpvalue.indexOf('-'));
frm.dtel_2.value=tmpvalue.substring(tmpvalue.indexOf('-')+1, tmpvalue.lastIndexOf('-'));
frm.dtel_3.value=tmpvalue.substring(tmpvalue.lastIndexOf('-')+1);
}else frm.dtel_2.value=tmpvalue;
tmpvalue=frm.textfield2_2.value;
if (tmpvalue.indexOf('-')!=-1) {
frm.ntel_1.value=tmpvalue.substring(0, tmpvalue.indexOf('-'));
frm.ntel_2.value=tmpvalue.substring(tmpvalue.indexOf('-')+1, tmpvalue.lastIndexOf('-'));
frm.ntel_3.value=tmpvalue.substring(tmpvalue.lastIndexOf('-')+1);
}else frm.ntel_2.value=tmpvalue;  
if(frm.textfield2_3.value==frm.dtel_2.value){
   frm.dtel_chk.checked=true; 
   equMtel(1);
   }
   
 if(frm.textfield2_3.value==frm.ntel_2.value){
   frm.ntel_chk.checked=true;
   equMtel(2);
   }
}

function vali()
{
    var errmsg='';
    if (frm.textfield.value=='') 
       errmsg+='收貨人姓名\n';
    if (frm.dtel_1.value=='' && frm.dtel_2.value=='' && frm.dtel_3.value=='') 
       errmsg+='收貨人日間電話\n';
    if(frm.ntel_1.value=='' && frm.ntel_2.value=='' && frm.ntel_3.value=='')
       errmsg+='收貨人夜間電話\n';
    if (frm.textfield3.value=='' ) 
       errmsg+='收貨人聯絡地址\n';
    if (frm.textfield36.value=='') 
       errmsg+='收發票人姓名\n';
    if (frm.textfield37.value=='') 
       errmsg+='收發票人電話\n';
    if (frm.textfield38.value=='') 
       errmsg+='收發票人聯絡地址\n';
    if (frm.radiobutton[0].checked == true)
    {
       frm.textfield33.value = "";
       frm.textfield332.value = "";
    }
    if (frm.radiobutton[1].checked == true)
    {
       if(frm.textfield33.value =='')
          errmsg+='統一編號\n';	 
       if(frm.textfield332.value =='')
          errmsg+='發票抬頭\n';  
    }
    if (errmsg!='') 
    {
       errmsg='以下資料未輸入:\n' + errmsg;
       alert(errmsg);
       return false;
    }
    else
    {
       return true;
    }
}

function dehyph(txtobj){
if (txtobj.value.charAt(0)=='-')txtobj.value=txtobj.value.substring(1);
if (txtobj.value.charAt(txtobj.value.length-1)=='-')txtobj.value=txtobj.value.substring(0,txtobj.value.length-1);
}

function changeareaOK(addr)
{ 
	var index=frm.select1.selectedIndex; 
	var obj; 
	if (index==0)obj=t0; 
	if (index==1)obj=t1; 
	if (index==2)obj=t2; 
	if (index==3)obj=t3; 
	if (index==4)obj=t4; 
	if (index==5)obj=t5; 
	if (index==6)obj=t6; 
	if (index==7)obj=t7; 
	if (index==8)obj=t8; 
	if (index==9)obj=t9; 
	if (index==10)obj=t10; 
	if (index==11)obj=t11; 
	if (index==12)obj=t12; 
	if (index==13)obj=t13; 
	if (index==14)obj=t14; 
	if (index==15)obj=t15; 
	if (index==16)obj=t16; 
	if (index==17)obj=t17; 
	if (index==18)obj=t18; 
	if (index==19)obj=t19; 
	if (index==20)obj=t20; 
	if (index==21)obj=t21; 
	if (index==22)obj=t22; 
	if (index==23)obj=t23; 
	if (index==24)obj=t24; 
	if (index==25)obj=t25; 
	if (index==26)obj=t26; 
	if (index==27)obj=t27; 
	if (index==28)obj=t28; 
	frm.districtOK.length=obj.length;	
	for (var i=0;i<obj.length ;i++ )
	{
		if(index!=0)
		{
			frm.districtOK.options[i].value=obj[i].substring(3);
			frm.districtOK.options[i].text=obj[i].substring(3);
			if (frm.districtOK.options[i].value==addr) frm.districtOK.options[i].selected=true; 
		}
		else
		{
			frm.districtOK.options[i].value=obj[i];
			frm.districtOK.options[i].text=obj[i];
		}
	}
	if(index==0) frm.Zip.value='';
	else frm.Zip.value=obj[frm.districtOK.selectedIndex].substring(0, 3);
} 

function telnorm(NO)
{
	var rtn='';
	for (var i=0; i<NO.length; i++)
	{
		if (NO.substring(i, i+1)=='-')continue;
		else rtn+=NO.substring(i, i+1);
	}
	return rtn;
}

function chktel(telno)
{
	var bolno=true;
	for (var i=0; i<telno.length; i++)
	{
		if (isNaN(telno.charAt(i))){bolno=false;break;}
	}
	return bolno;
}
	
/*function jtrim(frmobj){
	var tempvalue;
	for (var i=0; i<frmobj.length; i++)
	{
		tempvalue='';
		for (var j=0; j<frmobj.elements[i].value.length; j++)
		{
			if (frmobj.elements[i].value.charCodeAt(j)!=32) tempvalue+=frmobj.elements[i].value.substring(j, j+1);
		}
		frmobj.elements[i].value=tempvalue
	}
}*/

function equMtel(idx)
{
	switch (idx)
	{
		case 1:
		if (frm.dtel_chk.checked)
		{
			frm.dtel_2.value=frm.mobilephone.value;
			frm.dtel_1.value='';frm.dtel_3.value='';
		}
		else frm.dtel_2.value='';
		break;
		
		case 2:
		if (frm.ntel_chk.checked)
		{
			frm.ntel_2.value=frm.mobilephone.value;
			frm.ntel_1.value='';frm.ntel_3.value='';
		}
		else frm.ntel_2.value='';
		break;
	}
}

//信用卡///////////////////////////////////////////////////////////////////////////////////

function normalize(strCard)
{ 
	var rtn='';   
	for (var i=0; i<strCard.length; i++)
	{ 
		if (isNaN(strCard.substring(i, i+1)))continue; 
		else rtn+=strCard.substring(i, i+1); 
	}  
	return rtn; 
}

function chkTSB(strCard, idx){
var rtn;
switch(idx){
  case 0:
   if((strCard.substring(0, 6)=='457960' && strCard.substring(6, 8)!='10') || strCard.substring(0, 6)=='457961')
   rtn='1'; else rtn='0';
   break;
  case 1:
   if(strCard.substring(0, 6)=='543382' || strCard.substring(0, 6)=='540641')
   rtn='1'; else rtn='0';
   break;
  case 2:
   if(strCard.substring(0, 5)=='37768')
   rtn='1'; else rtn='0';
   break;
  default:
   rtn='0';
   break;
}
return rtn;
}

function chkType(strCard, idx){
  var bolx=false, boly=false, tmp;
  switch (idx){
  case 0: //Visa
   bolx=true;
   boly=chkCard(strCard);
   if(strCard.substring(0,1)=='4' && (strCard.length==13 || strCard.length==16))bolx=true;
   else bolx=false;
   break;
  case 1: //Master
   tmp=eval(strCard.substring(1, 3));  
   bolx=true;
   boly=chkCard(strCard);
   if(strCard.substring(0,1)=='5' && strCard.length==16)bolx=true; else bolx=false;
   break;
  case 2: //AE
   if (strCard.substring(0, 1)=='3' && strCard.length==15)bolx=true;
   boly=chkCard(strCard);
   break;
  case 3: //Ucard
   if(strCard.substring(0,4)=='4000' && strCard.length==16)bolx=true; 
   boly=chkUcard(strCard);
   break;
  case 4: //JCB
   tmp=strCard.substring(0, 4)
   var tmp2=eval(strCard.substring(0,tmp.length-1));
   if (strCard.length==15 || strCard.length==16) bolx=true;
   if (strCard.length==15)boly=chkXJCB(strCard);
	  else boly=chkCard(strCard);
   break;
  }
  return bolx && boly;
}

function chkUcard(strCard)
{                   
	if (strCard.length<16) return false;
	var bolx=chkCard(strCard);                   
	var boly=false;                              
	strCard=strCard.substring(4);                
	var chkchr=eval(strCard.charAt(10));         
	mVal=new Array(7, 3, 5, 6, 7, 9, 8, 5, 9, 7);
	mVal2=new Array(5, 9, 7);                    
	var tmp1=UCardNorm(strCard, mVal);
	strCard=UCardNorm(tmp1, mVal2);
	var tmpValue=eval(strCard.charAt(2))+3;
	tmpValue=10-(tmpValue%10);             
	tmpValue=(tmpValue==10?0:tmpValue);    
	if (tmpValue==chkchr)boly=true;        
	return bolx && boly;                   
}

function UCardNorm(str, ary)
{           
	var rtnString='';                      
	var tmpValue=0;                        
	for (var i=0; i<ary.length; i++)tmpValue+=eval(str.substring(i, i+1))*ary[i];  
	rtnString=''+tmpValue;    
	if (tmpValue>9 && tmpValue<100)rtnString='0'+tmpValue;  
	if (tmpValue<9)rtnString='00'+tmpValue;   
	return rtnString;           
}                            

function chkXJCB(strCard)
{   
	mVal=new Array(3, 7, 1);   
	var tmpSum=0, flag=0, tmpVal=0, bolrtn=false;  
	var tmpString='';      
	var strA=strCard.substring(4);   
	var chkchar=eval(strA.substring(3, 4)); 
	for (var i=0;i<strA.length; i++)
	{       
		if (i==2 || i==3)continue;            
		tmpSum+=eval(strA.substring(i, i+1))*mVal[flag%3];     
		flag++;     
	}             
	tmpVal=10-(tmpSum%10);              
	tmpVal=(tmpVal==10 ? 0:tmpVal);   
	if (tmpVal==chkchar) bolrtn=true; 
	return bolrtn;   
}                      

function chkCard(strCard)
{  
	var cardlength=strCard.length; 
	var k=0, m=0, j=0, tmp=0, result=0; 
	for (var i=0; i<cardlength; i++)
	{   
		if (((cardlength-i)%2)==0)m=2; else m=1;
		tmp=eval(strCard.substring(i, i+1));  
		j=tmp*m;  
		k+=Math.floor((j/10)) + (j%10); 
	}   
	result=k%10; 
	if (result==0)return true; else return false; 
} 
//////////////////////////////////////////////////////////////////////////////////////////////

function frmValidate()
{
	//jtrim(document.frm);
	var bolPass=1;
	var errmsg='';
	with (document.frm)
	{
		dtel_2.value=telnorm(dtel_2.value);
		ntel_2.value=telnorm(ntel_2.value);
		mobilephone.value=telnorm(mobilephone.value);		
		if (dtel_chk.checked==true)dtel_2.value=mobilephone.value;
		if (ntel_chk.checked==true)ntel_2.value=mobilephone.value;
		if (textfield.value=='') errmsg+='姓名\n';
		if (BMonth.selectedIndex==0 || BDay.selectedIndex==0) errmsg+='生日\n';
		if (pwdhint.value=='') errmsg+='資料更新提示語問句\n';
		if (pwdans.value=='') errmsg+='資料更新提示語回答\n';
		if (textfield224.value=='') errmsg+='電子郵件\n';
		if (dtel_2.value=='' && ntel_2.value=='' && mobilephone.value=='') errmsg+='電話\n';
		if (textfield222.value=='')errmsg+='地址\n';
		if (Zip.value=='') errmsg+='郵遞區號\n';
//		if (occupation.selectedIndex==0)errmsg+='職業\n';
//		if (income.selectedIndex==0)errmsg+='個人月平均收入\n';			
		if (card_no.value=='')errmsg+='卡號\n';
		if (bm.selectedIndex==0 || select2.selectedIndex==0)errmsg+='信用卡到期日\n';
		if (Rc_name.value=='') errmsg+='收貨人姓名\n';		
		if (Rc_dtel.value=='' && Rc_ntel.value=='' && Rc_mtel.value=='') errmsg+='收貨人電話\n';
		if (Rc_addr.value=='') errmsg+='收貨人地址\n';
		if (Rc_zip.value=='') errmsg+='收貨人地址郵遞區號\n';
		if (Rcc_name.value=='') errmsg+='收發票人姓名\n';
		if (Rcc_tel.value=='') errmsg+='收發票人電話\n';
		if (Rcc_addr.value=='') errmsg+='發票地址\n';
		if (Rcc_zip.value=='') errmsg+='發票地址郵遞區號\n';
		
		var errmsgX='';
		if (textfield224.value.indexOf("@")==-1) errmsgX+='電子郵件\n';
		if (chktel(mobilephone.value)==false)errmsgX+='行動電話/呼叫器\n';
		if (chktel(dtel_1.value+dtel_2.value+dtel_3.value)==false)errmsgX+='日間電話\n';
		if (chktel(ntel_1.value+ntel_2.value+ntel_3.value)==false)errmsgX+='夜間電話\n';		
		if (isNaN(Zip.value)) errmsgX+='郵遞區號\n';		
		
		var errmsgC='';
		var cardno=normalize(card_no.value);  
		var TFType=chkType(cardno, select.selectedIndex);
		if (TFType==true)
		{
			var firstsix=cardno.substring(0,6); var firstfive=cardno.substring(0,5);
			if (select.selectedIndex<3 && card_no.value.charAt(card_no.value.length-2)!='0'
	                && ((firstsix=='457960' && cardno.substring(6,8)!='10') || firstsix=='457961' || firstsix=='543382' || firstsix=='540641' || firstfive=='37768'))
			{
				errmsgC='您獲得之大集大利點數將有一半累積至信用卡正卡持卡人名下, 另一半點數計入您的PayEZ帳戶中\n';
				TSB_Card.value='2';				
				//frm.submit();
			}
			else TSB_Card.value=chkTSB(cardno, select.selectedIndex);
			//confirm(TSB_Card.value);
			//frm.submit();
		} 
		else 
		{
			errmsgX+='卡別或卡號錯誤\n'; 
			//return;
		}
		
		var bol=chkDate();	      
		if (bol==false)
		{			
			errmsgX+='到期日有誤\n';
			//return;
		}
	}
	
	if (errmsg!='') errmsg='以下資料未輸入:\n' + errmsg;
	if (errmsgX!='') errmsgX="\n以下資料有誤:\n" + errmsgX;
	
	if (errmsg!='' || errmsgX!='') 
	{		
		alert(errmsg + errmsgX); 
		return false;
	}	
	
	if (errmsgC!='') {alert(errmsgC);}
	return true;
}//function end

