﻿// JScript 檔
    //驗證
    function chkInput(contentElement)
    {     
    var elements;
    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 == '')
               {
                alert('請輸入資料');
                elements[i].focus();
                return false; 
               }
               break
		     case "isNum":
		        if( elements[i].value != '')
		        {
                    var data = elements[i].value.match(/[^0-9]/g);
                    if( data || ! elements[i].value) 
                    {
				        alert('欄位僅能為數值');
				        elements[i].focus();
				        return false;
				    }	        
		        }				
			   break	               
            case "hasNum":
               if (elements[i].readOnly != true)
               {                                  
                    var data = elements[i].value.match(/[^0-9]/g);
                    if( data || ! elements[i].value) 
                    {
			            alert('欄位僅能為數值');
			            elements[i].focus();
			            return false;
			        }
                }
				break		
		     case "isFloat":
		        if( elements[i].value != '')
		        {
                    var reg=/^(-[1-9]|[1-9]|[0.])[0-9]{0,}(([.]*\d{1,1})|[0-9]{0,})$/; 
                    if(reg.test(elements[i].value)==false)
                    {
			            alert('欄位僅能到小數第1位');
			            elements[i].focus();
			            return false;
                    }     
		        }				
			   break						
            case "hasFloat":
               if (elements[i].readOnly != true)
               {
                    var reg=/^(-[1-9]|[1-9]|[0.])[0-9]{0,}(([.]*\d{1,1})|[0-9]{0,})$/; 
                    if(reg.test(elements[i].value)==false)
                    {
			            alert('欄位僅能到小數第1位');
			            elements[i].focus();
			            return false;
                    }
                }
				break					        
		     case "isEmail":
		        if( elements[i].value != '')
		        {
                    var pattern = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
                    if(! pattern.test(elements[i].value) ) 
                    {
			            alert('對不起，E-mail格式不正確。');
        	            elements[i].focus();
			            return false; 
			        }		        
		        }
			   break
		     case "hasEmail":		        
                var pattern = /^[\w-]+(\.[\w-]+)*@[\w-]+(\.[\w-]+)+$/;
                if(! pattern.test(elements[i].value) ) 
                {
			        alert('對不起，E-mail格式不正確。');
        	        elements[i].focus();
			        return false; 
			    }		        
			    break			   
		     case "isDate":
//		        if( elements[i].value != '')
//		        {
//                    if(! checkDate(elements[i].value) ) 
//                    {
//        	            elements[i].focus();
//			            return false; 
//			        }		        
//		        }
			   break
		     case "hasDate":
               if (elements[i].value == '')
               {
                    alert('請輸入日期');
                    elements[i].focus();
                    return false; 
               }
			    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)
                {
                    alert('請輸入一筆以上資料。');
                    if (cboxList.length > 0 )
                    {
                        cboxList[0].focus();
                    }
                    //elements[i].focus();
                    return false; 
                }
                break                
		     case "hasIDNO":		        
                if (!IsTaiwanID(elements[i].value)) 
                {
                    alert('身分證字號有誤，請重新輸入');
                    elements[i].focus();
                    return false;                                                        
                }
                break 			    		    
            }     
        }    
        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) ; 
    }     

