﻿// JScript 檔
    //驗證
    function chkAll(contentElement)
    {     
    var elements;
    var message = "";
    if (contentElement!=null)
    {
        var content_vlue = document.getElementById(contentElement);
        elements = content_vlue.getElementsByTagName("*");
    }
    else
    {
        elements = document.getElementsByTagName("*");
    }                
                                   
    for (var i = 0; i < elements.length; i++){    
        switch(elements[i].className){
            case "hasVal":
               if (elements[i].value == '')
               {                                             
			        if (elements[i].title !="")
			        {
			            message += "[" + elements[i].title + "] ";
			        }
			        message += "欄位請輸入資料。\n";                
               }
               break
		     case "isNum":
		        if( elements[i].value != '')
		        {
                    var data = elements[i].value.match(/[^0-9]/g);
                    if( data || ! elements[i].value) 
                    {                   
			           if (elements[i].title !="")
			           {
			                message += "[" + elements[i].title + "] ";
			           }
			            message += "欄位僅能為數值。\n";                    
				    }	        
		        }				
			   break	               
            case "hasNum":
               if (elements[i].readOnly != true)
               {
                    var data = elements[i].value.match(/[^0-9]/g);
                    if( data || ! elements[i].value)
                    {
			           if (elements[i].title !="")
			           {
			                message += "[" + elements[i].title + "] ";
			           }
			            message += "欄位僅能為數值。\n";
			        }
                }
				break
		     case "isEmail":
		        if( elements[i].value != '')
		        {
                    var pattern = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
                    if(! pattern.test(elements[i].value) ) 
                    {			           
			           if (elements[i].title !="")
			           {
			                message += "[" + elements[i].title + "] ";
			           }
			            message += "E-mail格式不正確。\n";			            
			        }		        
		        }
			   break
		     case "hasEmail":		        
                var pattern = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
                if(! pattern.test(elements[i].value) ) 
                {
			           if (elements[i].title !="")
			           {
			                message += "[" + elements[i].title + "] ";
			           }
			            message += "E-mail格式不正確。\n";
			    }		        
			    break			   
		     case "isDate":
//		        if( elements[i].value != '')
//		        {
//                    if(! checkDate(elements[i].value) ) 
//                    {
//        	            elements[i].focus();
//			            return false; 
//			        }		        
//		        }
			   break
		     case "hasDate":
               if (elements[i].value == '')
               {                   
			        if (elements[i].title !="")
			        {
			            message += "[" + elements[i].title + "] ";
			        }
			        message += "請輸入日期。\n";                    
               }
			    break
		     case "hasCheck":              
                var cboxList = elements[i].getElementsByTagName('input');                             
                var selectCount = 0; 
                for(var j = 0; j < cboxList.length; j++) 
                { 
                    if(cboxList[j].checked == true)
                    {
                        selectCount = selectCount + 1;
                    } 
                }       
                if (selectCount <= 0)
                {                
			        if (elements[i].title !="")
			        {
			            message += "[" + elements[i].title + "] ";
			        }
			        message += "請輸入一筆以上資料。\n";                
                }
                break                
		     case "hasIDNO":		        
                if (!IsTaiwanID(elements[i].value)) 
                {
			        if (elements[i].title !="")
			        {
			            message += "[" + elements[i].title + "] ";
			        }
			        message += "身分證字號有誤，請重新輸入。\n";                                                                          
                }
                break 			    		    
            }     
        }
       
       if (message != "")
       {
            if (content_vlue.title != "")
            {           
                message = "[" + content_vlue.title +" 檢查結果]\n\n" + message;
            } 
            alert(message);
            return false;
       }
       else
       {     
            return true;
       }
    }

  //身分證字號檢查    
  function IsTaiwanID(id) {
        var LegalID = "0123456789" 
        var LegalUserName = "0123456789abcdefghijklmnopqrstuvwxyz_" 
        var value = 0; 
        var sId=id; 
        if(sId.length!=10) {
            return( false ) ;
        }else { 
            if((sId.charAt(0)=='A') || (sId.charAt(0)=='a')) value=10 
            else if((sId.charAt(0)=='B') || (sId.charAt(0)=='b')) value=11 
            else if((sId.charAt(0)=='C') || (sId.charAt(0)=='c')) value=12 
            else if((sId.charAt(0)=='D') || (sId.charAt(0)=='d')) value=13 
            else if((sId.charAt(0)=='E') || (sId.charAt(0)=='e')) value=14 
            else if((sId.charAt(0)=='F') || (sId.charAt(0)=='f')) value=15 
            else if((sId.charAt(0)=='G') || (sId.charAt(0)=='g')) value=16 
            else if((sId.charAt(0)=='H') || (sId.charAt(0)=='h')) value=17 
            else if((sId.charAt(0)=='J') || (sId.charAt(0)=='j')) value=18 
            else if((sId.charAt(0)=='K') || (sId.charAt(0)=='k')) value=19 
            else if((sId.charAt(0)=='L') || (sId.charAt(0)=='l')) value=20 
            else if((sId.charAt(0)=='M') || (sId.charAt(0)=='m')) value=21 
            else if((sId.charAt(0)=='N') || (sId.charAt(0)=='n')) value=22 
            else if((sId.charAt(0)=='P') || (sId.charAt(0)=='p')) value=23 
            else if((sId.charAt(0)=='Q') || (sId.charAt(0)=='q')) value=24 
            else if((sId.charAt(0)=='R') || (sId.charAt(0)=='r')) value=25 
            else if((sId.charAt(0)=='S') || (sId.charAt(0)=='s')) value=26 
            else if((sId.charAt(0)=='T') || (sId.charAt(0)=='t')) value=27 
            else if((sId.charAt(0)=='U') || (sId.charAt(0)=='u')) value=28 
            else if((sId.charAt(0)=='V') || (sId.charAt(0)=='v')) value=29 
            else if((sId.charAt(0)=='X') || (sId.charAt(0)=='x')) value=30 
            else if((sId.charAt(0)=='Y') || (sId.charAt(0)=='y')) value=31 
            else if((sId.charAt(0)=='W') || (sId.charAt(0)=='w')) value=32 
            else if((sId.charAt(0)=='Z') || (sId.charAt(0)=='z')) value=33 
            else if((sId.charAt(0)=='I') || (sId.charAt(0)=='i')) value=34 
            else if((sId.charAt(0)=='O') || (sId.charAt(0)=='o')) value=35 
            else {
                return( false ) ;
            }
        } 
        value = Math.floor(value/10) + (value%10)*9 + 
        parseInt(sId.charAt(1))*8+ 
        parseInt(sId.charAt(2))*7+ 
        parseInt(sId.charAt(3))*6+ 
        parseInt(sId.charAt(4))*5+ 
        parseInt(sId.charAt(5))*4+ 
        parseInt(sId.charAt(6))*3+ 
        parseInt(sId.charAt(7))*2+ 
        parseInt(sId.charAt(8))+ 
        parseInt(sId.charAt(9)) ; 
        value = value % 10 ; 
        if(value!=0){
            return( false ) ;                
        }
        var i; 
        var c; 
        for (i = 1; i < sId.length; i++) { 
            c = sId.charAt(i); 
            if (LegalID.indexOf(c) == -1){
                return( false ) ;
            }
        } 
        return (true) ; 
    }     

