﻿function Login(s, e) {
    cbpLogin.PerformCallback("Login");
}
function GetAdobeReader() {
    window.open("http://www.adobe.co.jp/products/acrobat/readstep2.html");
}
function NewWindow(url) {
    window.open(url);
}
function SetMandatory(s, field) {

    if (s.GetChecked()) {
        SetMandatoryColour(field);
    } else {
        ClearFieldColour(field);
    }
}
function SetErrorField(field) {
    field.GetMainElement().style.backgroundColor = 'yellow';
    field.GetInputElement().style.backgroundColor = 'yellow';
}
function SetMandatoryColour(field) {
    field.GetMainElement().style.backgroundColor = '#f7e7d3';
    field.GetInputElement().style.backgroundColor = '#f7e7d3';
}
function ClearFieldColour(field) {
    field.GetMainElement().style.backgroundColor = '#ffffff';
    field.GetInputElement().style.backgroundColor = '#ffffff';
}

function Submit_Form1(lang) {

    if (!chNoChange.GetChecked()
        && !chCompanyName.GetChecked()
        && !chWebSite.GetChecked()
        && !chDescription.GetChecked()
        && !chAddress.GetChecked()
        && !chTel.GetChecked()
        && !chEmail.GetChecked()
        && !chContactPerson_form1.GetChecked()) {

        if (lang == "JP") alert("該当異動事項にチェックをして下さい");
        else if (lang == "EN") alert("Please tick at least one");
        return;
    }

    errormsg = "";

    if (chCompanyName.GetChecked()) {
        if (tbNewCompanyName.GetText() == null || tbNewCompanyName.GetText() == "") {
            if (lang == "JP") errormsg = "* 新社名を入力してください\n";
            else if (lang == "EN") errormsg = "* Please fill in New Company Name\n";
            SetErrorField(tbNewCompanyName);
        } else {
            SetMandatoryColour(tbNewCompanyName);
        }
    }
    if (chWebSite.GetChecked()) {
        if (tbWebSite.GetText() == null || tbWebSite.GetText() == "") {
            if (lang == "JP") errormsg += "* Web URLを入力してください\n";
            else if (lang == "EN") errormsg += "* Please fill in New Web URL\n";
            SetErrorField(tbWebSite);
        } else {
            SetMandatoryColour(tbWebSite);
        }
    }
    if (chDescription.GetChecked()) {
        if (mmDescription.GetText() == null || mmDescription.GetText() == "") {
            if (lang == "JP") errormsg += "* 業務内容を入力してください\n";
            else if (lang == "EN") errormsg += "* Please fill in Company Details\n";
            SetErrorField(mmDescription);
        } else {
            SetMandatoryColour(mmDescription);
        }
    }
    if (chAddress.GetChecked()) {
        if (tbAddress1.GetText() == null || tbAddress1.GetText() == "") {
            if (lang == "JP") errormsg += "* 新住所を入力してください\n";
            else if (lang == "EN") errormsg += "* Please fill in New Address\n";
            SetErrorField(tbAddress1);
        } else {
            SetMandatoryColour(tbAddress1);
        }
    }
    if (chTel.GetChecked()) {
        if ((tbNewTel.GetText() == null || tbNewTel.GetText() == "")
            && (tbNewFax.GetText() == null || tbNewFax.GetText() == "")) {
            if (lang == "JP") errormsg += "* 新電話番号または新Fax番号を入力してください\n";
            else if (lang == "EN") errormsg += "* Please fill in either New Tel. Number or New Fax Number\n";
            SetErrorField(tbNewTel);
            SetErrorField(tbNewFax);
        } else {
            SetMandatoryColour(tbNewTel);
            SetMandatoryColour(tbNewFax);
        }
    }
    if (chEmail.GetChecked()) {
        if (tbNewEmail.GetText() == null || tbNewEmail.GetText() == "") {
            if (lang == "JP") errormsg += "* 新Emailを入力してください\n";
            else if (lang == "EN") errormsg += "* Please fill in New Email\n";
            SetErrorField(tbNewEmail);
        } else {
            SetMandatoryColour(tbNewEmail);
        }
    }
    if (chContactPerson_form1.GetChecked()) {
        if (tbContactName_Form1.GetText() == null || tbContactName_Form1.GetText() == "") {
            if (lang == "JP") errormsg += "* 名前を入力してください\n";
            else if (lang == "EN") errormsg += "* Please fill in Name\n";
            SetErrorField(tbContactName_Form1);
        } else {
            SetMandatoryColour(tbContactName_Form1);
        }
    }

    // Memo max length check
    errormsg += CheckMemoLength_Form1(lang);

    if (errormsg != "") {
        alert(errormsg);
    } else {

        if (confirm("Confirm Submit?"))
            cbpForm1.PerformCallback('Update');
        else
            return;
    }
}

function Submit_Form2(lang) {

    if (!chPersonMove.GetChecked() && !chStaffNumber.GetChecked() && !chContactPerson_Form2.GetChecked()) {
        if (lang == "JP") alert("該当異動事項にチェックをして下さい");
        else if (lang == "EN") alert("Please tick at least one");
        return;
    }

    errormsg = "";

    if (chPersonMove.GetChecked()) {
        if ((tbNewPersonName_JP_1.GetText() == null || tbNewPersonName_JP_1.GetText() == "")
            && (tbNewPersonName_EN_1.GetText() == null || tbNewPersonName_EN_1.GetText() == "")) {
            if (lang == "JP") errormsg += "* 新任者の名前を入力してください\n";
            else if (lang == "EN") errormsg = "* Please fill in New Person's Name\n";
            SetErrorField(tbNewPersonName_JP_1);
            SetErrorField(tbNewPersonName_EN_1);
        } else {
            SetMandatoryColour(tbNewPersonName_JP_1);
            SetMandatoryColour(tbNewPersonName_EN_1);
        }
    }
    if (chContactPerson_Form2.GetChecked()) {
        if (tbContactName_Form2.GetText() == null || tbContactName_Form2.GetText() == "") {
            if (lang == "JP") errormsg += "* コンタクトパーソンの名前を入力してください\n";
            else if (lang == "EN") errormsg += "* Please fill in Contact Person's Name\n";
            SetErrorField(tbContactName_Form2);
        } else {
            SetMandatoryColour(tbContactName_Form2);
        }
    }

    // Memo max length check
    errormsg += CheckMemoLength_Form2(lang);

    if (errormsg != "") {
        alert(errormsg);
    } else {
        if (confirm("Confirm Submit?"))
            cbpForm2.PerformCallback('Update');
        else
            return;
    } 
}

function cbpForm_EndCallback_JP(s, e) {
    if (s.cpError != null) {
        alert(s.cpError);
        s.cpError = null;
    }else if (s.cpSucceed) {
        alert('Submitted successfuly.');
        s.cpSucceed = false;
        window.location = "../Member.JP/Update.aspx";
    }
}

function cbpForm_EndCallback_EN(s, e) {
    if (s.cpError != null) {
        alert(s.cpError);
        s.cpError = null;
    } else if (s.cpSucceed) {
        alert('Submitted successfuly.');
        s.cpSucceed = false;
        window.location = "../Member.EN/Update.aspx";
    }
}

function CheckMemoLength_Form1(lang) {

    errormsg = "";

    if (!CheckLength(mmNewCompany.GetText())) {
        if (lang == "JP") errormsg += "* 社名変更日及び備考は全角150文字以内で入力して下さい\n";
        else if (lang == "EN") errormsg += "* Company Name - Date of Change must be within 300 characters\n";
        SetErrorField(mmNewCompany);
    } else {
        ClearFieldColour(mmNewCompany);
    }

    if (!CheckLength(mmDescription.GetText())) {
        if (lang == "JP") errormsg += "* 業務内容は全角150文字以内で入力して下さい\n";
        else if (lang == "EN") errormsg += "* Company Details must be within 300 characters\n";
        SetErrorField(mmDescription);
    } else {
        if (chDescription.GetChecked() && (mmDescription.GetText() == null || mmDescription.GetText() == "")) {
            SetErrorField(mmDescription);
        } else if (chDescription.GetChecked()) {
            SetMandatoryColour(mmDescription);
        } else {
            ClearFieldColour(mmDescription);
        }
    }

    if (!CheckLength(mmNewAddressNote.GetText())) {
        if (lang == "JP") errormsg += "* 住所変更日及び備考は全角150文字以内で入力して下さい\n";
        else if (lang == "EN") errormsg += "* Company Address - Date of Change must be within 300 characters\n";
        SetErrorField(mmNewAddressNote);
    } else {
        ClearFieldColour(mmNewAddressNote);
    }

    if (!CheckLength(mmNewTel.GetText())) {
        if (lang == "JP") errormsg += "* 電話番号変更日及び備考は全角150文字以内で入力して下さい\n";
        else if (lang == "EN") errormsg += "* Company Tel/Fax - Date of Change must be within 300 characters\n";
        SetErrorField(mmNewTel);
    } else {
        ClearFieldColour(mmNewTel);
    }

    if (!CheckLength(mmNewEmail.GetText())) {
        if (lang == "JP") errormsg += "* Eメール変更日及び備考は全角150文字以内で入力して下さい\n";
        else if (lang == "EN") errormsg += "* Company Email - Date of Change must be within 300 characters\n";
        SetErrorField(mmNewEmail);
    } else {
        ClearFieldColour(mmNewEmail);
    }

    if (!CheckLength(mmContact_Form1.GetText())) {
        if (lang == "JP") errormsg += "* コンタクトパーソンの備考は全角150文字以内で入力して下さい\n";
        else if (lang == "EN") errormsg += "* Contact Person - Note must be within 300 characters\n";
        SetErrorField(mmContact_Form1);
    } else {
        ClearFieldColour(mmContact_Form1);
    }

    return errormsg;
}
function CheckMemoLength_Form2(lang) {

    errormsg = "";

    if (!CheckLength(mmNew_1.GetText())) {
        if (lang == "JP") errormsg += "* 新任者1の備考は全角150文字以内で入力して下さい\n";
        else if (lang == "EN") errormsg += "* New Person 1 - Note must be within 300 characters\n";
        SetErrorField(mmNew_1);
    } else {
        ClearFieldColour(mmNew_1);
    }

    if (!CheckLength(mmNew_2.GetText())) {
        if (lang == "JP") errormsg += "* 新任者2の備考は全角150文字以内で入力して下さい\n";
        else if (lang == "EN") errormsg += "* New Person 2 - Note must be within 300 characters\n";
        SetErrorField(mmNew_2);
    } else {
        ClearFieldColour(mmNew_2);
    }

    if (!CheckLength(mmContact_Form2.GetText())) {
        if (lang == "JP") errormsg += "* コンタクトパーソンの備考は全角150文字以内で入力して下さい\n";
        else if (lang == "EN") errormsg += "* Contact Person - Note must be within 300 characters\n";
        SetErrorField(mmContact_Form2);
    } else {
        ClearFieldColour(mmContact_Form2);
    }

    return errormsg;
}

function CheckLength(str) {
    var r = 0;
    for (var i = 0; i < str.length; i++) {
        var c = str.charCodeAt(i);
        if ((c >= 0x0 && c < 0x81) || (c == 0xf8f0) || (c >= 0xff61 && c < 0xffa0) || (c >= 0xf8f1 && c < 0xf8f4)) {
            r += 1;
        } else {
            r += 2;
        }
    }
    // Max Length = 300 byte
    return r <= 300;
}

