﻿// JScript 檔
function DateInput()
{
    if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105) || event.keyCode==8 || event.keyCode==37 || event.keyCode==39 || event.keyCode==189))
        event.returnValue=false;
}

//只能輸入數字
function onlyNum()
{
    //if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105) || event.keyCode==8 || event.keyCode==37 || event.keyCode==39))
    if(!((event.keyCode>=48&&event.keyCode<=57)||(event.keyCode>=96&&event.keyCode<=105) || event.keyCode==8 || event.keyCode==37 || event.keyCode==39 || event.keyCode==9))
                event.returnValue=false;
}

//Email 驗證
function ValidatorEmail(obj)
{
    if(obj.value=='')
        return;
        
    var Result = new RegExp(/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/).test($get(obj.id).value);

    if(!Result){
        alert("Email格式錯誤!!");
        //obj.select();
        obj.focus();
    }
}

//身分證號碼驗證
function ValidatorIdNumber(obj) 
{
    if(obj.value=='')
        return;
        
    var pass=0; /*為了通過後面的防呆所以...*/
    var num=new Array(11); /*用來存轉換碼加九個數字 */
    var sum=0; /*計算經過公式後的加總*/
    input = obj.value; /*存文字框的內容*/
    var table=new Array(10,11,12,13,14,15,16,17,18,34,19,20,21,22,35,23,24,25,26,27,28,29,32,30,31,33); /*轉換的對照表*/
    /*以下是防呆*/
    if(input.length!=10){
        alert("身分證號碼長度不符!!");
        obj.focus();
        return false;
    }
    else if(input.charCodeAt(0)<"A".charCodeAt(0)||input.charCodeAt(0)>"Z".charCodeAt(0)){
        alert("身分證號碼第一個字母要大寫英文!!");
        obj.focus();
        return false;
    }else if(input.charCodeAt(1)!="1".charCodeAt(0)&&input.charCodeAt(1)!="2".charCodeAt(0)){
        alert("身分證號碼第一個數字必須是1或2!!");
        obj.focus();
        return false;
    }else
    {
        for(p=2;p<10;p++)
        {
            if(input.charCodeAt(p)<"0".charCodeAt(0)||input.charCodeAt(p)>"9".charCodeAt(0))
            {
                alert("身分證號碼後九碼要皆為數字!!");
                obj.focus();
                return false;
                //break;
            }
            else
                pass++;
        }
    }
    if(pass!=8)
        return false;
    /*以上是防呆*/
    num[1]=table[input.charCodeAt(0)-65]%10;
    num[0]=(table[input.charCodeAt(0)-65]-num[1])/10;
    for(p=1;p<10;p++)
        num[p+1]=input.charCodeAt(p)-48;
    for(p=1;p<9;p++)
        num[p]=num[p]*(10-p); /*套用公式*/
    for(p=0;p<11;p++)
        sum+=num[p];
    if(sum%10==0) /*檢查*/
        return true; //alert("這個身分證是對的");
    else{
        alert("身分證號碼錯誤!!");
        obj.focus();
        return false;
    }
    return true;
}

//日期驗證
function ValidatorDate(obj)
{
    if(obj.value=='')
        return;
        
    //yyyy-mm-dd
	var datePattern =/^[0-9]{4}-(((0[13578]|(10|12))-(0[1-9]|[1-2][0-9]|3[0-1]))|(02-(0[1-9]|[1-2][0-9]))|((0[469]|11)-(0[1-9]|[1-2][0-9]|30)))$/; 
		
    //yyyy/MM/dd
    //var datePattern=/^\d{4}\/(0[1-9]|1[0-2])\/(3[0-1]|[0-2][0-9])$/;
    var dates=obj.value;
    
    if(dates.match(datePattern))
    {  
        if(checkDateExist(dates.substring(8, 10), dates.substring(5, 7), dates.substring(0, 4))==true)
        {
            //alert("輸入日期正確！");
            //return true;
        }
        else
        {
            alert("輸入的日期不存在!!");
            obj.focus();
        }
    }
    else
    {
        alert("日期格式錯誤!\n請依照下列格式輸入日期：\n\n[ yyyy-MM-dd ]");
        obj.focus();
    }
}

function checkDateExist(day, month, year)
{
    var today=new Date();
    year=((!year) ? y2k(today.getYear()):year);
    month=((!month) ? today.getMonth():month-1);
    
    if(!day){return false;}
    var test=new Date(year,month,day);
    if((y2k(test.getYear()) == year) && (month == test.getMonth()) && (day == test.getDate()))
    {return true;}
    else
    {return false;}
}

function y2k(number)
{
    return (number<1000) ? number+1900 : number;
}

//變成錢的格式
function formatCurrency(num) {
    if(num=='')
        return num;
        
    num = num.toString().replace(/\$|\,/g,'');
    if(isNaN(num))
    num = "0";
    sign = (num == (num = Math.abs(num)));
    num = Math.floor(num*100+0.50000000001);
    cents = num%100;
    num = Math.floor(num/100).toString();
    if(cents<10)
    cents = "0" + cents;
    for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
    num = num.substring(0,num.length-(4*i+3))+','+
    num.substring(num.length-(4*i+3));
    return (((sign)?'':'-') + num );
}

//統一編號驗證
function ValidateTaxID(Obj)
{
    if(Obj.value=="")
        return;
    var i;
    var a1;
    var a2;
    var a3;
    var a4;
    var a5;

    var b1;
    var b2;
    var b3;
    var b4;
    var b5;

    var c1;
    var c2;
    var c3;
    var c4;

    var d1;
    var d2;
    var d3;
    var d4;
    var d5;
    var d6;
    var d7;
    var cd8;
    
    try{
        //判斷長度 
        if (Obj.value.length != 8){
            alert('統一編號錯誤!!');
            Obj.focus();
        }
         
        //設定變數 
        d1  = parseInt(Obj.value.substr(0, 1));
        d2  = parseInt(Obj.value.substr(1, 1));
        d3  = parseInt(Obj.value.substr(2, 1));
        d4  = parseInt(Obj.value.substr(3, 1));
        d5  = parseInt(Obj.value.substr(4, 1));
        d6  = parseInt(Obj.value.substr(5, 1));
        d7  = parseInt(Obj.value.substr(6, 1));
        cd8 = parseInt(Obj.value.substr(7, 1));

        c1 = d1;
        c2 = d3;
        c3 = d5;
        c4 = cd8;

        a1 = parseInt((d2 * 2) / 10);
        b1 = parseInt((d2 * 2) % 10);

        a2 = parseInt((d4 * 2) / 10);
        b2 = parseInt((d4 * 2) % 10);

        a3 = parseInt((d6 * 2) / 10);
        b3 = parseInt((d6 * 2) % 10);

        a4 = parseInt((d7 * 4) / 10);
        b4 = parseInt((d7 * 4) % 10);

        a5 = parseInt((a4 + b4) / 10);
        b5 = parseInt((a4 + b4) % 10);
        
        //計算公式 
        
        if ((a1 + b1 + c1 + a2 + b2 + c2 + a3 + b3 + c3 + a4 + b4 + c4) % 10 == 0)
            return true;

        if (d7 == 7)
        {
            if ((a1 + b1 + c1 + a2 + b2 + c2 + a3 + b3 + c3 + a5 + c4) % 10 == 0)
                return true;
        }

        alert('統一編號錯誤!!');
        Obj.focus();
        
    }catch(err) {
        alert("Error name: " + err.name + "");
        alert("Error message: " + err.message);
    }
    finally{
        //alert("object is null");
    }
}
