//サービスオプション「規約同意」
var agreementToTerms = {};

//言語、規約情報読み込み
agreementToTerms.initAgreement = function(){
    var data = agreementToTerms.getTerms();
    //規約同意のデータを取得できているか確認
    if(Object.keys(data).length){
        $("#agreementToTermsTitle").text(I18N.i18nText("agreementToTermsTitle"));
        $("#agreeTerm").text(I18N.i18nText("agreeTerm"));
        $("#disagreeTerm").text(I18N.i18nText("disagreeTerm"));
        $("#termsVersion").text(data.termsVersion);
        $("#terms").html(data.terms.replace(/(\r\n|\n|\r)/g, "<br>"));
    }else{
        //未ログイン状態で規約同意画面に遷移した場合、ログインページに遷移する
        COMMON.avwScreenMove("login.html");
    }
};

//遷移先の決定
agreementToTerms.destinationHtml = function(){
    var data = agreementToTerms.getTerms();
    if(data.httpStatus == CONSTANT.HTTP_STATUS.OK){
        //公開中バージョンに未同意の場合
        if(data.termsVersion || data.terms){
            //利用規約画面に遷移
            COMMON.avwScreenMove("agreementToTerms.html");
        }else{
            //規約同意が設定されていない or 公開中バージョンに同意している
            //ホーム画面に遷移
            COMMON.avwScreenMove("index.html");
        }
    }else {
        COMMON.closeLoading();
        COMMON.showAlert('errorOccurred');
    }
};

//利用規約情報の取得
agreementToTerms.getTerms = function(){
    var apiData = {};
    var params = {
        sid: COMMON.getSid(),
    };

    const url = COMMON.format(ClientData.conf_apiUrl(), ClientData.userInfo_accountPath()) + "/getTerms/";
    COMMON.cmsAjax(
        url,
        params,
        false,
        function(data){
            apiData = data;
        },
        function(xmlHttpRequest, txtStatus, errorThrown){
            if(xmlHttpRequest.errorMessage){
                COMMON.showAlert(null, {message: xmlHttpRequest.errorMessage});
            }else{
                COMMON.showAlert("errorOccured");
            }
        },
    );
    return apiData;
};

//利用規約情報同意の送信
agreementToTerms.agreeTerm = function(){
    var apiData = agreementToTerms.getTerms();
    params = {
        sid: COMMON.getSid(),
        termsVersion: apiData.termsVersion,
    };
    const url = COMMON.format(ClientData.conf_apiUrl(), ClientData.userInfo_accountPath()) + "/agreeTerms/";
    COMMON.cmsAjax(
        url,
        params,
        false,
        function(data){
            var agreeCheck = agreementToTerms.getTerms();
            //規約に同意できているか確認
            if(Object.keys(agreeCheck).length == 3){
                //ホーム画面に遷移
                COMMON.avwScreenMove("index.html");
            }else{
                //再度試す
                agreementToTerms.agreeTerm();
            }
        },
        function(xmlHttpRequest, txtStatus, errorThrown){
            if(xmlHttpRequest.errorMessage){
                COMMON.showAlert(null, {message: xmlHttpRequest.errorMessage});
            }else{
                COMMON.showAlert("errorOccured");
            }
        }
    )
};

//利用規約に同意しない
agreementToTerms.disagreeTerm = function(){
    if(confirm(I18N.i18nText("msgDisagreeTerm"))){
        //ログアウトし、ログイン画面に遷移する
        HEADER.processLogout();
    }
};