var RegPass = new RegExp('^\\w+$', '');
var EULA = "行易有限公司授權合約書\n\n以下關於行易有限公司出品之嘸蝦米輸入法的使用授權的相關法律協議，請仔細閱讀。安裝或使用本軟體，即表示您同意以下全部的協議。\n\n1．授權軟體：%s\n　　本公司授權使用者得於連接單一電腦之單一終端機使用一份本軟體，使用者不得將本軟體應用於網路上或於一部以上之電腦或終端機上同時使用本軟體。\n　　使用者未經本公司授權，不得為出售，出租，互易，出借，散佈或改作公開展示，改竄割裂本軟體，或為其他直接或間接侵害本公司權益之行為。\n\n2．著作權宣告\n　　本軟體屬本公司，並受國際條約及可適用之各國或各地區法律之保護。使用者對於本軟體應如同其他有著作權之著作（如書籍，音樂或錄音），在無複製保護的磁片或光碟下，使用者僅被允許為儲存備份之目的 (1)複製一份本軟體； (2)為移轉本軟體至一部硬式磁碟機或光碟機，惟使用者只得為儲存備份之目的而保存本軟體之原版。\n　　您在合法購買本軟體並獲得合法使用權後持有、安裝或者使用本軟體並非向您轉讓本軟體的任何知識產權。除本協議明確闡述的內容外，您未獲得本軟體的任何權利。\n\n3．有限保證及責任\n　　無論在任何狀況下，行易有限公司對本產品所擔負的責任，僅限於您為本產品付給本公司的金額。\n　　本公司或本公司之供應商對其他因使用或無法使用本公司之產品所產生之損害，不負營業收入之損失，營業之中斷，營業資料之遺失或其他金錢財物之損失…等之損害賠償責任，即使已通知本公司可能有前述損害之發生。本公司所應負之責任僅限於使用者對本產品支付本公司之實際價款。對於軟體及相關資料之遺失，失竊，意外損壞，使用不當或未經同意更改而導致之損壞，對於因特殊事件而引起，非直接或其他類似的損壞，本公司不負賠償責任。\n　　本軟體不保證完全毫無瑕疵，因此，並不適合使用在需要 100% 狀況下都必須正常運作的危險環境或相關應用，例如（但不限於）核電設施，航空導引，交通管制，醫療設備或武器系統，在這些系統中，軟體的不正常運作可能導致人員傷亡，或是嚴重的環境污染。如果使用者在這些高危險性環境或相關應用使用本產品，一旦造成意外，使用者需自行承擔相關損失，本公司及相關經銷商均不負擔相關的責任。\n\n4．軟體更新\n　　日後軟體的更新以軟體授權序號為憑，請您務必妥善保管您的產品授權序號。\n　　每組序號僅有一次付費更新之權利，請勿交由他人使用，以維護您個人之權益。";

var product_hint = new Array();

function ResidenceChange() {
    var Residence1 = $("#Residence1").val();
    var Residence2 = $("#Residence2").val();

    if(Residence1 == "") {
        $("#Residence2").hide();
        $("#ResidenceText").hide();
    } else if(Residence1 == "亞洲") {
        $("#Residence2").show();

        if(Residence2 == "其他") {
            $("#ResidenceText").show();
        } else {
            $("#ResidenceText").hide();
        }
    } else {
        $("#Residence2").hide();
        $("#ResidenceText").show();
    }
}

function CheckEshopForm() {
    ErrField = '';

    checkfield('Name', 0);

    if(! document.getElementById("GenderM").checked && ! document.getElementById("GenderF").checked && ! document.getElementById("GenderN").checked) {
        document.getElementById("MsgGender").innerHTML = "尚未選取";
        if(! ErrField) ErrField = "GenderM";
    } else {
        document.getElementById("MsgGender").innerHTML = "";
    }

    if(document.getElementById('BirthYear').value == '') {
        document.getElementById("MsgBirth").innerHTML = "尚未選取";
        if(ErrField == '') ErrField = 'BirthYear';
    } else if(document.getElementById('BirthMonth').value == '') {
        document.getElementById("MsgBirth").innerHTML = "尚未選取";
        if(ErrField == '') ErrField = 'BirthMonth';
    } else if(document.getElementById('BirthDay').value == '') {
        document.getElementById("MsgBirth").innerHTML = "尚未選取";
        if(ErrField == '') ErrField = 'BirthDay';
    } else if(! checkDate(document.getElementById('BirthYear').value, document.getElementById('BirthMonth').value, document.getElementById('BirthDay').value)) {
        document.getElementById("MsgBirth").innerHTML = "日期格式不正確";
        if(ErrField == '') ErrField = 'BirthMonth';
    } else {
        document.getElementById("MsgBirth").innerHTML = "";
    }

    checkfield('Email', 0, RegEmail);
    checkfield("UsePeriod", 1);
    checkfield("Education", 1);

    if(document.getElementById("Residence1").value == '') {
        document.getElementById("MsgResidence").innerHTML = "尚未選取";
        if(! ErrField) ErrField = "Residence1";
    } else if(document.getElementById("Residence1").value == "亞洲") {
        if(document.getElementById("Residence2").value == '') {
            document.getElementById("MsgResidence").innerHTML = "尚未選取";
            if(! ErrField) ErrField = "Residence2";
        } else {
            document.getElementById("MsgResidence").innerHTML = "";
        }
    } else {
        document.getElementById("MsgResidence").innerHTML = "";
    }

    if(document.getElementById('Pass').value == '') {
        document.getElementById("MsgPass").innerHTML = "尚未輸入";
        document.getElementById("MsgPassAgain").innerHTML = "";

        document.getElementById('PassAgain').value = '';

        if(! ErrField) ErrField = "Pass";
    } else if(! RegPass.test(document.getElementById('Pass').value)) {
        document.getElementById("MsgPass").innerHTML = "密碼格式不正確";
        document.getElementById("MsgPassAgain").innerHTML = "";

        document.getElementById('Pass').value = '';
        document.getElementById('PassAgain').value = '';

        if(! ErrField) ErrField = "Pass";
    } else if(document.getElementById('PassAgain').value == '') {
        document.getElementById("MsgPass").innerHTML = "";
        document.getElementById("MsgPassAgain").innerHTML = "尚未輸入";
        if(! ErrField) ErrField = "PassAgain";
    } else if(document.getElementById('Pass').value != document.getElementById('PassAgain').value) {
        document.getElementById("MsgPass").innerHTML = "";
        document.getElementById("MsgPassAgain").innerHTML = "兩次輸入的密碼不一致";
        document.getElementById('PassAgain').value = '';

        if(! ErrField) ErrField = "PassAgain";
    } else {
        document.getElementById("MsgPass").innerHTML = "";
        document.getElementById("MsgPassAgain").innerHTML = "";
    }

    if($('#InvoiceS').attr('checked')) {
        checkfield('InvoiceName', 0);
        checkfield('Address', 0);
        checkfield('TelNo', 0);

        if($('#InvoiceType3').attr('checked')) {
            // checkfield('InvoiceTitle', 0);
            checkfield('InvoiceID', 0, new RegExp('^[0-9]{8}$', ''));
        }
    }

    if(ErrField) {
        $('#' + ErrField).get(0).focus();
        return false;
    }

    return true;
}

function InvoiceHandle() {
    if($('#InvoiceS').attr('checked')) {
        $("#InvoiceSend").show();
    } else {
        $("#InvoiceSend").hide();
    }
}

function ChangeProduct() {
    var pn = product_name[$("#Product").val()];
    var EULAsub = EULA.replace("%s", pn);
    $("#EULA").val(EULAsub);

    var hint = product_hint[$("#Product").val()];

    if(hint != '') {
        $("#ProductHint").show().html(hint);
    } else {
        $("#ProductHint").hide();
    }
}

$(function() {
    $("#Residence1").change(ResidenceChange);
    $("#Residence2").change(ResidenceChange);

    ResidenceChange();

    if(typeof InitPostCode == 'function') {
        InitPostCode();
    }

    showField();
    showInvoiceField();

    $(".InvoiceSend").click(InvoiceHandle);

    InvoiceHandle();

    $("#Product").change(ChangeProduct);

    ChangeProduct();

    $('#printEULA').click(PrintEULA);
});
