//------------------------------------------------------------
//  CONSTANT
//------------------------------------------------------------
var KINRI = 0.0008;
var RATE_USD = "118.00";
var RATE_EUR = "157.00";
var RATE_AUD =  "93.00";
var RATE_NZD =  "83.00";
var RATE_CAD = "103.00";
var RATE_UKP = "235.00";
var KNR1_USD = "4.00";
var KNR1_EUR = "2.00";
var KNR1_AUD = "4.00";
var KNR1_NZD = "6.00";
var KNR1_CAD = "2.00";
var KNR1_UKP = "3.00";
var KNR2_USD = "3.20";
var KNR2_EUR = "1.60";
var KNR2_AUD = "3.20";
var KNR2_NZD = "4.80";
var KNR2_CAD = "1.60";
var KNR2_UKP = "2.40";
var NAME_USD = "USドル";
var NAME_EUR = "ユーロ";
var NAME_AUD = "豪ドル";
var NAME_NZD = "NZドル";
var NAME_CAD = "カナダドル";
var NAME_UKP = "英ポンド";
var VAL_UKP = 6;
var GAIKA_5 = 5;
var TTS_TTB = 2;
var UKP_TTS_TTB = 4;
var KAGAKU_10 = 10;

var tuukaval;
var rateval;
var kinri1;
var kinri2;
var tts_ttb_val;
var FLD_GANPON = "元本（投資額）";
var LEN_GANPON = 5;
var FLD_KAGAKU = "購入時の基準価額";
var FLD_KAGAKU_03 = "基準価額";
var LEN_KAGAKU = 5;
var FLD_GARATE = "為替レート TTS";
var MIN_GARATE = 10;
var MAX_GARATE = 999.99;
var MIN_KAGAKU = 100;
var PNT_GARATE = 2;
var FLD_BUNPAI = "毎月の予想分配額";
var FLD_BUNPAI_03 = "毎月の受け取り分配金";
var LEN_BUNPAI = 3;
var FLD_TTS = "TTS";
var MIN_TTS = 10;
var MAX_TTS = 999.99;
var PNT_TTS = 2;

var MSG_INPUT = "を入力してください";
var MSG_ABSNUM = "は半角数字の整数で入力してください";
var MSG_NUM    = "は半角数字で入力してください";
var MSG_LEN_GANPON = "は5桁以内で入力してください";
var MSG_MIN_GANPON = "は1以上で入力してください";
var MSG_LEN_KAGAKU = "は5桁以内で入力してください";
var MSG_MIN_KAGAKU = "は100円以上で入力してください";
var MSG_VAL_GARATE = "は10以上999.99以下で入力してください";
var MSG_PNT_GARATE = "は小数点以下2桁以内で入力してください";
var MSG_LEN_BUNPAI = "は3桁以内で入力してください";
var MSG_VAL_TTS = "は10以上999.99以下で入力してください";
var MSG_PNT_TTS = "は小数点以下2桁以内で入力してください";

var onload_flag = false;

var IMGSMILE  = 0;
var IMGSAD    = 1;
var IMG_SML = "imgs/smile.gif";
var IMG_SAD = "imgs/sad.gif";
var IMG_NON = "imgs/none.gif";

//------------------------------------------------------------
//  blrGanpon(frm)
//------------------------------------------------------------
function blrGanpon(frm) {
    frm.ganpon.value = addComma(frm.ganpon.value);
}
//------------------------------------------------------------
//  chgGanpon(frm)
//------------------------------------------------------------
function chgGanpon(frm) {
}
//------------------------------------------------------------
//  blrRate(frm)
//------------------------------------------------------------
function blrRate(frm) {
    var ga_rate = addPeriod(frm.ga_rate.value);
    frm.ga_rate.value = ga_rate;
    if (frm.GA_RI_MNT.value == void(0) || frm.GA_RI_MNT.value == "") {
        return;
    }
    calcSim01(frm);
}
//------------------------------------------------------------
//  chgRate(frm)
//------------------------------------------------------------
function chgRate(frm) {
}
//------------------------------------------------------------
//  blrKagaku(frm)
//------------------------------------------------------------
function blrKagaku(frm) {
    frm.kagaku.value = addComma(frm.kagaku.value);
    if (frm.GA_RI_MNT.value == void(0) || frm.GA_RI_MNT.value == "") {
        return;
    }
    calcSim01(frm);
}
//------------------------------------------------------------
//  chgKagaku(frm)
//------------------------------------------------------------
function chgKagaku(frm) {
}
//------------------------------------------------------------
//  blrBunpai(frm)
//------------------------------------------------------------
function blrBunpai(frm) {
    frm.bunpai.value = addComma(frm.bunpai.value);
    if (frm.GA_RI_MNT.value == void(0) || frm.GA_RI_MNT.value == "") {
        return;
    }
    calcSim01(frm);
}
//------------------------------------------------------------
//  chgBunpai(frm)
//------------------------------------------------------------
function chgBunpai(frm) {
}
//------------------------------------------------------------
//  chgTuuka(frm)
//------------------------------------------------------------
function chgTuuka(frm) {
    var tuuka = frm.tuuka.selectedIndex + 1; //frm.tuuka.value;
    setTuukaValue(frm, tuuka);
    if (frm.GA_RI_MNT.value == void(0) || frm.GA_RI_MNT.value == "") {
        return;
    }
    calcTuuka(frm);
}
//------------------------------------------------------------
//  calcTuuka(frm)
//------------------------------------------------------------
function calcTuuka(frm) {
    //通貨変更による外貨定期預金部分の情報書き換え
    var ganpon = delComma(frm.ganpon.value);
    var rateval = eval(frm.ga_rate.value);
    var kinri2  = eval(frm.GA_NEN2.value) / 100;

    if (isNotInput(ganpon)  ||
        !isAbsNumber(ganpon)  ||
        ganpon.length > LEN_GANPON  ||
        eval(ganpon) <= 0) {
        frm.GA_RI_MNT.value = "";
        frm.GA_RI_YER.value = "";
        frm.GA_1YGAN.value  = "";
        frm.GA_1YTTL.value  = "";
        return;
    }
    var ganpon = eval(ganpon);

    var ganpon = eval(delComma(frm.ganpon.value));
    var rateval = eval(frm.ga_rate.value);
    var kinri2  = eval(frm.GA_NEN2.value) / 100;

    tts_ttb_val = TTS_TTB;
    if (frm.tuuka.value == "6") { //英ポンドの場合
        tts_ttb_val = UKP_TTS_TTB;
    }
    ga_ri_mnt = Math.floor(ganpon * 10000 / rateval *
                           kinri2 * 30 / 365 * (rateval - tts_ttb_val));
    ga_ri_yer = ga_ri_mnt * 12;
    ga_1ygan  = Math.floor(ganpon * 10000 / rateval *
                           (rateval - tts_ttb_val));
    ga_1yttl  = ga_ri_yer + ga_1ygan;

    frm.GA_RI_MNT.value = addComma(ga_ri_mnt);
    frm.GA_RI_YER.value = addComma(ga_ri_yer);
    frm.GA_1YGAN.value  = addComma(ga_1ygan);
    frm.GA_1YTTL.value  = addComma(ga_1yttl);
}

//------------------------------------------------------------
//  setTuukaValue(tuuka)
//------------------------------------------------------------
function setTuukaValue(frm,tuuka) {
    tuuka = tuuka + '';
    if (tuuka == "1") {
        frm.ga_rate.value = RATE_USD;
        frm.GA_NEN1.value = KNR1_USD;
        frm.GA_NEN2.value = KNR2_USD;
    }
    if (tuuka == "2") {
        frm.ga_rate.value = RATE_EUR;
        frm.GA_NEN1.value = KNR1_EUR;
        frm.GA_NEN2.value = KNR2_EUR;
    }
    if (tuuka == "3") {
        frm.ga_rate.value = RATE_AUD;
        frm.GA_NEN1.value = KNR1_AUD;
        frm.GA_NEN2.value = KNR2_AUD;
    }
    if (tuuka == "4") {
        frm.ga_rate.value = RATE_NZD;
        frm.GA_NEN1.value = KNR1_NZD;
        frm.GA_NEN2.value = KNR2_NZD;
    }
    if (tuuka == "5") {
        frm.ga_rate.value = RATE_CAD;
        frm.GA_NEN1.value = KNR1_CAD;
        frm.GA_NEN2.value = KNR2_CAD;
    }
    if (tuuka == "6") {
        frm.ga_rate.value = RATE_UKP;
        frm.GA_NEN1.value = KNR1_UKP;
        frm.GA_NEN2.value = KNR2_UKP;
    }
    tuukaval = tuuka;
    rateval = eval(frm.ga_rate.value);
    kinri1 = eval(frm.GA_NEN1.value);
    kinri2 = eval(frm.GA_NEN2.value);
}

//------------------------------------------------------------
//  rc = chkSimGanpon(frm)
//------------------------------------------------------------
function chkSimGanpon(frm) {
    // 元本
    var ganpon = delComma(frm.ganpon.value);
    if (isNotInput(ganpon)) {
        alert(FLD_GANPON + MSG_INPUT);
        return false;
    }
    if (!isAbsNumber(ganpon)) {
        alert(FLD_GANPON + MSG_ABSNUM);
        return false;
    }
    if (ganpon.length > LEN_GANPON) {
        alert(FLD_GANPON + MSG_LEN_GANPON);
        return false;
    }
    if (eval(ganpon) <= 0) {
        alert(FLD_GANPON + MSG_MIN_GANPON);
        return false;
    }
    frm.ganpon.value = addComma(ganpon);
}

//------------------------------------------------------------
//  rc = chkSim0102(frm)
//------------------------------------------------------------
function chkSim0102(frm) {
    // レート
    var ga_rate = delComma(frm.ga_rate.value);
    if (isNotInput(ga_rate)) {
        alert(FLD_GARATE + MSG_INPUT);
        return false;
    }
    if (!isNumber(ga_rate)) {
        alert(FLD_GARATE + MSG_NUM);
        return false;
    }
    ga_rate = eval(frm.ga_rate.value);
    if (ga_rate < MIN_GARATE  ||  MAX_GARATE < ga_rate) {
        alert(FLD_GARATE + MSG_VAL_GARATE);
        return false;
    }

    return true;
}

//------------------------------------------------------------
//  rc = chkSim01(frm)
//------------------------------------------------------------
function chkSim01(frm) {
    if (chkSimGanpon(frm) == false) {
        return false;
    }
    if (chkSim0102(frm) == false) {
        return false;
    }
    if (chkSim0103(frm) == false) {
        return false;
    }
}

//------------------------------------------------------------
//  rc = chkSim0103(frm)
//------------------------------------------------------------
function chkSim0103(frm) {
    // 基準価額
    var kagaku = delComma(frm.kagaku.value);
    if (isNotInput(kagaku)) {
        alert(FLD_KAGAKU + MSG_INPUT);
        return false;
    }
    if (!isAbsNumber(kagaku)) {
        alert(FLD_KAGAKU + MSG_ABSNUM);
        return false;
    }
    if (kagaku.length > LEN_KAGAKU) {
        alert(FLD_KAGAKU + MSG_LEN_KAGAKU);
        return false;
    }
    kagaku = eval(kagaku);
    if (kagaku < MIN_KAGAKU) {
        alert(FLD_KAGAKU + MSG_MIN_KAGAKU);
        return false;
    }
    frm.kagaku.value = addComma(kagaku);

    // 分配額
    var bunpai = delComma(frm.bunpai.value);
    if (isNotInput(bunpai)) {
        alert(FLD_BUNPAI + MSG_INPUT);
        return false;
    }
    if (!isAbsNumber(bunpai)) {
        alert(FLD_BUNPAI + MSG_ABSNUM);
        return false;
    }
    if (bunpai.length > LEN_BUNPAI) {
        alert(FLD_BUNPAI + MSG_LEN_BUNPAI);
        return false;
    }

    return true;
}

//------------------------------------------------------------
//  calcSim01(frm)
//------------------------------------------------------------
function calcSim01(frm) {
    if (!onload_flag  &&  chkSim01(frm) == false) {
        return;
    }

    // 計算をおこなう

    //**** ここに計算を入れる ****
    var ganpon = eval(delComma(frm.ganpon.value));
    var bunpai = eval(delComma(frm.bunpai.value));
    var kagaku = eval(delComma(frm.kagaku.value));
    var rateval = eval(frm.ga_rate.value);
    var kinri2  = eval(frm.GA_NEN2.value) / 100;
    tts_ttb_val = TTS_TTB;

    // 円預金
    en_ri_mnt = ganpon * 10000 * (0.0008/100) * 30 / 365;
    en_ri_mnt = Math.floor(en_ri_mnt);
    en_ri_yer = en_ri_mnt * 12;
    en_1ygan  = ganpon * 10000;
    en_1yttl  = en_ri_yer + en_1ygan;

    // 外貨定期預金
    if (frm.tuuka.value == "6") { //英ポンドの場合
        tts_ttb_val = UKP_TTS_TTB;
    }
    ga_ri_mnt = Math.floor(ganpon * 10000 / rateval *
                           kinri2 * 30 / 365 * (rateval - tts_ttb_val));
    ga_ri_yer = ga_ri_mnt * 12;
    ga_1ygan  = Math.floor(ganpon * 10000 / rateval *
                           (rateval - tts_ttb_val));
    ga_1yttl  = ga_ri_yer + ga_1ygan;

    // 投資信託
    ts_1m_bun = Math.floor(ganpon * 10000 / 1.021 / kagaku *
                           bunpai * 0.9);
    ts_1y_bun = ts_1m_bun * 12;
    ts_1ygan  = Math.floor(ganpon * 10000 / 1.021);
    ts_1yttl  = ts_1y_bun + ts_1ygan;

    //**** 下の「計算結果をセット」の値を入れる ****

    // 計算結果をセット
    frm.EN_RI_MNT.value = addComma(en_ri_mnt);
    frm.EN_RI_YER.value = addComma(en_ri_yer);
    frm.EN_1YGAN.value  = addComma(en_1ygan);
    frm.EN_1YTTL.value  = addComma(en_1yttl);

    frm.GA_RI_MNT.value = addComma(ga_ri_mnt);
    frm.GA_RI_YER.value = addComma(ga_ri_yer);
    frm.GA_1YGAN.value  = addComma(ga_1ygan);
    frm.GA_1YTTL.value  = addComma(ga_1yttl);

    frm.TS_1M_BUN.value = addComma(ts_1m_bun);
    frm.TS_1Y_BUN.value = addComma(ts_1y_bun);
    frm.TS_1YGAN.value  = addComma(ts_1ygan);
    frm.TS_1YTTL.value  = addComma(ts_1yttl);
    // 投資信託予想分配を保存
    g_bunpai            = bunpai;

    onload_flag = false;
}

//------------------------------------------------------------
//  rc = goSim0201(frm)
//------------------------------------------------------------
function goSim0201(frm) {
//    if (chkSim02(frm) == false) {
//        return;
//    }
//    calcSim02(frm);

    var dst = document.forms[1];
    dst.ganpon.value  = delComma(frm.ganpon.value);
    dst.tuuka.value   = tuukaval;
    dst.ga_rate.value = rateval;
    dst.action = "sim01.html";
    dst.submit();
}

//------------------------------------------------------------
//  rc = goSim0301(frm)
//------------------------------------------------------------
function goSim0301(frm) {
//    if (chkSim03(frm) == false) {
//        return;
//    }
//    calcSim03(frm);

    var dst = document.forms[1];
    dst.ganpon.value = delComma(frm.ganpon.value);
    dst.kagaku.value = delComma(frm.v4_kagaku.value);
    dst.bunpai.value = frm.bunpai.value;
    dst.action = "sim01.html";
    dst.submit();

}

//------------------------------------------------------------
//  rc = goSim02(frm)
//------------------------------------------------------------
function goSim02(frm) {
    if (chkSim01(frm) == false) {
        return;
    }
    calcSim01(frm);

    var tuuka = frm.tuuka.selectedIndex + 1; //frm.tuuka.value;
if (1) {
    var dst = document.forms[1];
    dst.ganpon.value  = delComma(frm.ganpon.value);
    dst.tuuka.value   = tuuka;
    dst.ga_rate.value = frm.ga_rate.value;
    dst.kagaku.value  = delComma(frm.kagaku.value);
    dst.bunpai.value  = frm.bunpai.value;
    dst.action = "sim02.html";
    dst.submit();
}
if (0) {
    window.open("sim02.html?ganpon=" + delComma(frm.ganpon.value) +
                          "&tuuka="  + tuuka +
                          "&ga_rate=" + frm.ga_rate.value +
                          "&kagaku=" + delComma(frm.kagaku.value) +
                          "&bunpai=" + frm.bunpai.value +
                "", "sim02",
                "width=800,height=800,left=50,top=50,directories=yea,location=yes,menubar=yes,scrollbars=yes,status=yes,toolbar=yes,resizable=yes");
}
}

//------------------------------------------------------------
//  rc = goSim03(frm)
//------------------------------------------------------------
function goSim03(frm) {
    if (chkSim01(frm) == false) {
        return;
    }
    calcSim01(frm);

    var tuuka = frm.tuuka.selectedIndex + 1; //frm.tuuka.value;
if (1) {
    var dst = document.forms[1];
    dst.ganpon.value  = delComma(frm.ganpon.value);
    dst.tuuka.value   = tuuka;
    dst.ga_rate.value = frm.ga_rate.value;
    dst.kagaku.value  = delComma(frm.kagaku.value);
    dst.bunpai.value  = frm.bunpai.value;
    dst.action = "sim03.html";
    dst.submit();
}
if (0) {
    window.open("sim03.html?ganpon=" + delComma(frm.ganpon.value) +
                          "&tuuka="  + tuuka +
                          "&ga_rate=" + frm.ga_rate.value +
                          "&kagaku=" + delComma(frm.kagaku.value) +
                          "&bunpai=" + frm.bunpai.value +
                "", "sim03",
                "width=800,height=800,left=50,top=50,directories=yea,location=yes,menubar=yes,scrollbars=yes,status=yes,toolbar=yes,resizable=yes");
}
}

//------------------------------------------------------------
//  loadSim01(frm)
//------------------------------------------------------------
function loadSim01() {
    document.ok.ganpon.focus();
    var frm = document.forms[0];
    var sim = getPrmData("sim", "0");
    if (sim == "0") {
        return;
    }

    var ganpon  = getPrmData("ganpon",  "300");
    var tuuka   = getPrmData("tuuka",   "1");
    var ga_rate;
    ga_rate = RATE_USD;
    if (tuuka == "2") {
        ga_rate = RATE_EUR;
    }
    if (tuuka == "3") {
        ga_rate = RATE_AUD;
    }
    if (tuuka == "4") {
        ga_rate = RATE_NZD;
    }
    if (tuuka == "5") {
        ga_rate = RATE_CAD;
    }
    if (tuuka == "6") {
        ga_rate = RATE_UKP;
    }
    var kagaku  = 10000;
    var bunpai  = 40;

    frm.ganpon.value  = addComma(ganpon);
    frm.tuuka.value   = tuuka;
    frm.kagaku.value  = addComma(kagaku);
    frm.bunpai.value  = bunpai;
    setTuukaValue(frm, tuuka);
    frm.ga_rate.value = ga_rate;

    onload_flag = true;
    calcSim01(frm);
    onload_flag= false;

    
}

//------------------------------------------------------------
//  loadSim02(frm)
//------------------------------------------------------------
function loadSim02() {
    document.ok.v4_tts.focus();
    var frm = document.forms[0];
    var ganpon  = getPrmData("ganpon",  "300");
    var tuuka   = getPrmData("tuuka",   "1");
    var ga_rate = getPrmData("ga_rate", "108.00");
    var kagaku  = getPrmData("kagaku",  "10000");
    var bunpai  = getPrmData("bunpai",  "40");
    tts_ttb_val = TTS_TTB;

    frm.ganpon.value = addComma(ganpon);
//    if (tuuka == "1") { frm.tuuka.value = NAME_USD; }
//    if (tuuka == "2") { frm.tuuka.value = NAME_EUR; }
//    if (tuuka == "3") { frm.tuuka.value = NAME_AUD; }
//    if (tuuka == "4") { frm.tuuka.value = NAME_NZD; }
//    if (tuuka == "5") { frm.tuuka.value = NAME_CAD; }
//    if (tuuka == "6") { frm.tuuka.value = NAME_UKP; }
    frm.tuuka.value = tuuka;
    setTuukaValue(frm, tuuka);
    rateval = eval(ga_rate);
    frm.ga_rate.value = addPeriod(rateval);

    frm.v4_tts.value = ""; // rateval;
    ttsttb02(frm);

    //onload_flag = true;
    // calcSim02(frm);
    onload_flag = false;
}

//------------------------------------------------------------
//  ttsttb02(frm)
//------------------------------------------------------------
function ttsttb02(frm) {
    // 英ポンドの時のtts_ttb
    tts_ttb_val = TTS_TTB;
    if (frm.tuuka.value == VAL_UKP) {
        tts_ttb_val = UKP_TTS_TTB;
    }

    rateval = eval(frm.ga_rate.value);
    frm.V1_TTS.value = addPeriod(rateval + GAIKA_5);
    frm.V1_TTB.value = addPeriod(rateval + GAIKA_5 - tts_ttb_val);
    frm.V2_TTS.value = addPeriod(rateval);
    frm.V2_TTB.value = addPeriod(rateval - tts_ttb_val);
    frm.V3_TTS.value = addPeriod(rateval - GAIKA_5);
    frm.V3_TTB.value = addPeriod(rateval - GAIKA_5 - tts_ttb_val);
    if (frm.v4_tts.value == void(0) || frm.v4_tts.value == "") {
        frm.V4_TTB.value = "";
    } else {
        frm.V4_TTB.value = addPeriod(eval(frm.v4_tts.value) - tts_ttb_val);
    }
}

//------------------------------------------------------------
//  blrGanpon02(frm)
//------------------------------------------------------------
function blrGanpon02(frm) {
    var ganpon = addComma(frm.ganpon.value);
    frm.ganpon.value = ganpon;
}
//------------------------------------------------------------
//  chgGanpon02(frm)
//------------------------------------------------------------
function chgGanpon02(frm) {
}
//------------------------------------------------------------
//  chgTuuka02(frm)
//------------------------------------------------------------
function chgTuuka02(frm) {
    var tuuka = frm.tuuka.selectedIndex + 1;
    setTuukaValue(frm,tuuka);
    ttsttb02(frm);
}
//------------------------------------------------------------
//  blrRate02(frm)
//------------------------------------------------------------
function blrRate02(frm) {
    var ga_rate = addPeriod(frm.ga_rate.value);
    frm.ga_rate.value = ga_rate;
    ttsttb02(frm);
}
//------------------------------------------------------------
//  chgRate02(frm)
//------------------------------------------------------------
function chgRate02(frm) {
}

//------------------------------------------------------------
//  blrTTS(frm)
//------------------------------------------------------------
function blrTTS(frm) {
    var tts = delComma(frm.v4_tts.value);

    frm.V4_TTB.value = "";

    if (isNotInput(tts) || chkSim02(frm) == false) {
        frm.V4_RISOKU.value = "";
        frm.V4_RITTL.value  = "";
        frm.V4_JIKA.value   = "";
        frm.V4_TOTAL.value  = "";
        document.V4_IMG.src = IMG_NON;
        return;
    }

    // イギリスポンドの場合 TTS との差は -4
    if (VAL_UKP == frm.tuuka.value) {
        frm.V4_TTB.value= addPeriod(tts - UKP_TTS_TTB);
    } else {
        frm.V4_TTB.value= addPeriod(tts - TTS_TTB);
    }
    frm.v4_tts.value = addPeriod(tts);
}
//------------------------------------------------------------
//  chgTTS(frm)
//------------------------------------------------------------
function chgTTS(frm) {
}

//------------------------------------------------------------
//  rc = chkSim02(frm)
//------------------------------------------------------------
function chkSim02(frm) {
    if (chkSim0102(frm) == false) {
        return false;
    }

    // TTS
    var tts = delComma(frm.v4_tts.value);

    // TSS 未入力の場合は何もしない
    //if (isNotInput(tts)) {
    //    alert(FLD_TTS + MSG_INPUT);
    //   return false;
    //}
    if (!isNumber(tts)) {
        alert(FLD_TTS + MSG_NUM);
        return false;
    }
    tts = eval(tts);
    if (tts < MIN_GARATE  ||  MAX_GARATE < tts) {
        alert(FLD_TTS + MSG_VAL_TTS);
        return false;
    }

    //frm.V4_TTB.value = tts - TTS_TTB;
    rateval = tts;
    return true;
}

//------------------------------------------------------------
//  calcSim02(frm)
//------------------------------------------------------------
function calcSim02(frm) {
    if (!onload_flag  &&  chkSim02(frm) == false) {
        return;
    }

    // 計算をおこなう
    //**** ここに計算を入れる ****
    var ganpon  = eval(delComma(frm.ganpon.value));
    var rateval = eval(frm.ga_rate.value);
    var kinri2  = eval(frm.GA_NEN2.value) / 100;
    var tts     = delComma(frm.v4_tts.value);

    // ５円安となった場合
    v1_risoku = Math.floor(ganpon * 10000 / rateval *
                           kinri2 * 30 / 365 *
                           (rateval - tts_ttb_val + eval(frm.V1_TTB.value)) / 2);
    v1_rittl  = v1_risoku * 12;
    v1_jika   = Math.floor(ganpon * 10000 / rateval *
                           eval(frm.V1_TTB.value));
    v1_total  = v1_rittl + v1_jika;

    // 変動なし
    v2_risoku = Math.floor(ganpon * 10000 / rateval *
                           kinri2 * 30 / 365 *
                           (rateval - tts_ttb_val + eval(frm.V2_TTB.value)) / 2);
    v2_rittl  = v2_risoku * 12;
    v2_jika   = Math.floor(ganpon * 10000 / rateval *
                           eval(frm.V2_TTB.value));
    v2_total  = v2_rittl + v2_jika;

    // ５円高となった場合
    v3_risoku = Math.floor(ganpon * 10000 / rateval *
                           kinri2 * 30 / 365 *
                           (rateval - tts_ttb_val + eval(frm.V3_TTB.value)) / 2);
    v3_rittl  = v3_risoku * 12;
    v3_jika   = Math.floor(ganpon * 10000 / rateval *
                           eval(frm.V3_TTB.value));
    v3_total  = v3_rittl + v3_jika;

    // 自由な為替レート
    // TTS入力時のみ計算する
    v4_risoku = "";
    v4_rittl  = "";
    v4_jika   = "";
    v4_total  = "";
    if (!isNotInput(tts) && chkSim02(frm) == true) {
        v4_risoku = Math.floor(ganpon * 10000 / rateval *
                               kinri2 * 30 / 365 *
                              (rateval - tts_ttb_val + eval(frm.V4_TTB.value)) / 2);
        v4_rittl  = v4_risoku * 12;
        v4_jika   = Math.floor(ganpon * 10000 / rateval *
                               eval(frm.V4_TTB.value));
        v4_total  = v4_rittl + v4_jika;
    }

    //**** 下の「計算結果をセット」の値を入れる ****

    // 計算結果をセット
    frm.V1_RISOKU.value = addComma(v1_risoku);
    frm.V1_RITTL.value  = addComma(v1_rittl);
    frm.V1_JIKA.value   = addComma(v1_jika);
    frm.V1_TOTAL.value  = addComma(v1_total);

    frm.V2_RISOKU.value = addComma(v2_risoku);
    frm.V2_RITTL.value  = addComma(v2_rittl);
    frm.V2_JIKA.value   = addComma(v2_jika);
    frm.V2_TOTAL.value  = addComma(v2_total);

    frm.V3_RISOKU.value = addComma(v3_risoku);
    frm.V3_RITTL.value  = addComma(v3_rittl);
    frm.V3_JIKA.value   = addComma(v3_jika);
    frm.V3_TOTAL.value  = addComma(v3_total);

    frm.V4_RISOKU.value = addComma(v4_risoku);
    frm.V4_RITTL.value  = addComma(v4_rittl);
    frm.V4_JIKA.value   = addComma(v4_jika);
    frm.V4_TOTAL.value  = addComma(v4_total);
    blrTTS(frm);

    // ニコニコマーク表示
    if (onload_flag != true){
        // 表示
        if (!isNotInput(tts) && chkSim02(frm) == true) {
        } else {
            document.V4_IMG.src = IMG_NON;
        }

        // 絵の選択
        r_ganpon = ganpon * 10000;
        image = (v1_total > r_ganpon) ? IMG_SML : IMG_SAD;
        document.V1_IMG.src = image;
        image = (v2_total > r_ganpon) ? IMG_SML : IMG_SAD;
        document.V2_IMG.src = image;
        image = (v3_total > r_ganpon) ? IMG_SML : IMG_SAD;
        document.V3_IMG.src = image;
        if (!isNotInput(tts) && chkSim02(frm) == true) {
            image = (v4_total > r_ganpon) ? IMG_SML : IMG_SAD;
            document.V4_IMG.src = image;
        }
    }

    onload_flag = false;
}

//------------------------------------------------------------
//  val = calcKagaku(frm)
//------------------------------------------------------------
function calcKagaku(val) {
    val = eval(val);
    val = Math.round(val);
    return addComma(val);
}

//------------------------------------------------------------
//  loadSim03(frm)
//------------------------------------------------------------
function loadSim03() {
    document.ok.v4_kagaku.focus();
    var frm = document.forms[0];
    var ganpon  = getPrmData("ganpon",  "300");
    var tuuka   = getPrmData("tuuka",   "1");
    var ga_rate = getPrmData("ga_rate", "108.00");
    var kagaku  = getPrmData("kagaku",  "10000");
    var bunpai  = getPrmData("bunpai",  "40");

    frm.ganpon.value = addComma(ganpon);
    frm.kagaku.value = addComma(kagaku);
    // 20070124 yamaoka↓
    frm.bunpai.value = Math.floor(bunpai);
    //frm.bunpai.value = Math.floor(bunpai * 0.9);
    // 20070124 yamaoka↑
    initSim03(frm);
    frm.v4_kagaku.value = "";

    onload_flag = true;
    //calcSim03(frm);
    onload_flag = false;
}

//------------------------------------------------------------
//  initSim03(frm)
//------------------------------------------------------------
function initSim03(frm) {
    var ganpon = eval(delComma(frm.ganpon.value));
    var kagaku = eval(delComma(frm.kagaku.value));
    frm.V1_KAGAKU.value = addComma(calcKagaku(kagaku * ((100 + KAGAKU_10) / 100)));
    frm.V1_KUCHI.value  = addComma(Math.floor(ganpon * 10000 / 1.021 / kagaku * 10000));
    frm.V2_KAGAKU.value = addComma(calcKagaku(kagaku));
    frm.V2_KUCHI.value  = frm.V1_KUCHI.value;
    frm.V3_KAGAKU.value = addComma(calcKagaku(kagaku * ((100 - KAGAKU_10) / 100)));
    frm.V3_KUCHI.value  = frm.V1_KUCHI.value;

    if (frm.v4_kagaku.value == void(0) || frm.v4_kagaku.value == "") {
        frm.V4_KUCHI.value = "";
    } else {
        frm.V4_KUCHI.value = frm.V1_KUCHI.value;
    }
}

//------------------------------------------------------------
//  blrGanpon03(frm)
//------------------------------------------------------------
function blrGanpon03(frm) {
    frm.ganpon.value = addComma(frm.ganpon.value);
}
//------------------------------------------------------------
//  chgGanpon03(frm)
//------------------------------------------------------------
function chgGanpon03(frm) {
}
//------------------------------------------------------------
//  blrKagaku03(frm)
//------------------------------------------------------------
function blrKagaku03(frm) {
    frm.kagaku.value = addComma(frm.kagaku.value);
}
//------------------------------------------------------------
//  chgKagaku03(frm)
//------------------------------------------------------------
function chgKagaku03(frm) {
}
//------------------------------------------------------------
//  blrBunpai03(frm)
//------------------------------------------------------------
function blrBunpai03(frm) {
    frm.bunpai.value = addComma(frm.bunpai.value);
}
//------------------------------------------------------------
//  chgBunpai03(frm)
//------------------------------------------------------------
function chgBunpai03(frm) {
}
//------------------------------------------------------------
//  blrV4Kagaku(frm)
//------------------------------------------------------------
function blrV4Kagaku(frm) {
    frm.v4_kagaku.value = addComma(frm.v4_kagaku.value);
}
//------------------------------------------------------------
//  chgV4Kagaku(frm)
//------------------------------------------------------------
function chgV4Kagaku(frm) {
}
//------------------------------------------------------------
//  rc = chkSim03(frm)
//------------------------------------------------------------
function chkSim03(frm) {
    if (chkSimGanpon(frm) == false) {
        return false;
    }
    if (chkSim0103(frm) == false) {
        return false;
    }

    // 分配金
    var bunpai = delComma(frm.bunpai.value);
    if (isNotInput(bunpai)) {
        alert(FLD_BUNPAI_03 + MSG_INPUT);
        return false;
    }
    if (!isAbsNumber(bunpai)) {
        alert(FLD_BUNPAI_03 + MSG_ABSNUM);
        return false;
    }
    if (bunpai.length > LEN_BUNPAI) {
        alert(FLD_BUNPAI_03 + MSG_LEN_BUNPAI);
        return false;
    }
    frm.bunpai.value = addComma(bunpai);

    // 基準価額(自由入力欄)
    var kagaku = delComma(frm.v4_kagaku.value);
    //if (isNotInput(kagaku)) {
    //    alert(FLD_KAGAKU + MSG_INPUT);
    //    return false;
    //}
    if (!isAbsNumber(kagaku)) {
        alert(FLD_KAGAKU + MSG_ABSNUM);
        return false;
    }
    if (kagaku.length > LEN_KAGAKU) {
        alert(FLD_KAGAKU + MSG_LEN_KAGAKU);
        return false;
    }
    frm.v4_kagaku.value = addComma(kagaku);

    return true;
}

//------------------------------------------------------------
//  calcSim03(frm)
//------------------------------------------------------------
function calcSim03(frm) {
    if (!onload_flag  &&  chkSim03(frm) == false) {
        frm.V4_BUNPAI.value = "";
        frm.V4_BUNTTL.value = "";
        frm.V4_JIKA.value   = "";
        frm.V4_TOTAL.value  = "";
        document.V4_IMG.src = IMG_NON;
        return;
    }

    initSim03(frm);
    // 計算をおこなう
    var bunpai = eval(delComma(frm.bunpai.value));
    var V1_KUCHI = eval(delComma(frm.V1_KUCHI.value));
    var V2_KUCHI = eval(delComma(frm.V2_KUCHI.value));
    var V3_KUCHI = eval(delComma(frm.V3_KUCHI.value));
    var V4_KUCHI = eval(delComma(frm.V4_KUCHI.value));
    var V1_KAGAKU = eval(delComma(frm.V1_KAGAKU.value));
    var V2_KAGAKU = eval(delComma(frm.V2_KAGAKU.value));
    var V3_KAGAKU = eval(delComma(frm.V3_KAGAKU.value));
    var v4_kagaku = eval(delComma(frm.v4_kagaku.value));

    //**** ここに計算を入れる ****
    // １０％上昇
    // 20070124 yamaoka↓
    v1_bunpai = Math.floor(V1_KUCHI / 10000 * bunpai *0.9);
    //v1_bunpai = Math.floor(V1_KUCHI / 10000 * bunpai);
    // 20070124 yamaoka↑
    v1_bunttl = v1_bunpai * 12;
    v1_jika   = Math.floor(V1_KUCHI / 10000 * V1_KAGAKU);
    v1_total  = v1_bunttl + v1_jika;

    // 変動なし
    // 20070124 yamaoka↓
    v2_bunpai = Math.floor(V2_KUCHI / 10000 * bunpai *0.9);
    //v2_bunpai = Math.floor(V2_KUCHI / 10000 * bunpai);
    // 20070124 yamaoka↑
    v2_bunttl = v2_bunpai * 12;
    v2_jika   = Math.floor(V2_KUCHI / 10000 * V2_KAGAKU);
    v2_total  = v2_bunttl + v2_jika;

    // １０％下落
    // 20070124 yamaoka↓
    v3_bunpai = Math.floor(V3_KUCHI / 10000 * bunpai *0.9);
    //v3_bunpai = Math.floor(V3_KUCHI / 10000 * bunpai);
    // 20070124 yamaoka↑
    v3_bunttl = v3_bunpai * 12;
    v3_jika   = Math.floor(V3_KUCHI / 10000 * V3_KAGAKU);
    v3_total  = v1_bunttl + v3_jika;

    // 任意の基準価額
    // 入力されているときだけ計算する
    v4_bunpai = "";
    v4_bunttl = "";
    v4_jika   = "";
    v4_total  = "";
    if (!isNotInput(v4_kagaku) && chkSim03(frm) == true) {
    // 20070124 yamaoka↓
        v4_bunpai = Math.floor(V4_KUCHI / 10000 * bunpai * 0.9);
        //v4_bunpai = Math.floor(V4_KUCHI / 10000 * bunpai);
    // 20070124 yamaoka↑
        v4_bunttl = v4_bunpai * 12;
        v4_jika   = Math.floor(V4_KUCHI / 10000 * v4_kagaku);
        v4_total  = v4_bunttl + v4_jika;
    }

    //**** 下の「計算結果をセット」の値を入れる ****

    // 計算結果をセット
    frm.V1_BUNPAI.value = addComma(v1_bunpai);
    frm.V1_BUNTTL.value = addComma(v1_bunttl);
    frm.V1_JIKA.value   = addComma(v1_jika);
    frm.V1_TOTAL.value  = addComma(v1_total);

    frm.V2_BUNPAI.value = addComma(v2_bunpai);
    frm.V2_BUNTTL.value = addComma(v2_bunttl);
    frm.V2_JIKA.value   = addComma(v2_jika);
    frm.V2_TOTAL.value  = addComma(v2_total);

    // 20070124 yamaoka↓
    frm.V2_BUNPAI_02.value = addComma(v2_bunpai);
    frm.V2_BUNTTL_02.value = addComma(v2_bunttl);
    frm.V2_JIKA_02.value   = addComma(v2_jika);
    frm.V2_TOTAL_02.value  = addComma(v2_total);
    // 20070124 yamaoka↑

    frm.V3_BUNPAI.value = addComma(v3_bunpai);
    frm.V3_BUNTTL.value = addComma(v3_bunttl);
    frm.V3_JIKA.value   = addComma(v3_jika);
    frm.V3_TOTAL.value  = addComma(v3_total);

    frm.V4_BUNPAI.value = addComma(v4_bunpai);
    frm.V4_BUNTTL.value = addComma(v4_bunttl);
    frm.V4_JIKA.value   = addComma(v4_jika);
    frm.V4_TOTAL.value  = addComma(v4_total);

    // ニコニコマーク表示
    if (onload_flag != true){
        // 表示
        if (!isNotInput(v4_kagaku) && chkSim03(frm) == true) {
        } else {
            document.V4_IMG.src = IMG_NON;
        }
        // 絵の選択
        r_ganpon = eval(delComma(frm.ganpon.value)) * 10000;
        image = (v1_total > r_ganpon) ? IMG_SML : IMG_SAD;
        document.V1_IMG.src = image;
        image = (v2_total > r_ganpon) ? IMG_SML : IMG_SAD;
        document.V2_IMG.src = image;
        image = (v3_total > r_ganpon) ? IMG_SML : IMG_SAD;
        document.V3_IMG.src = image;
        if (!isNotInput(v4_kagaku) && chkSim03(frm) == true) {
            image = (v4_total > r_ganpon) ? IMG_SML : IMG_SAD;
            document.V4_IMG.src = image;
        }
    }

    onload_flag = false;
}

//------------------------------------------------------------
//  val = delComma(val)
//------------------------------------------------------------
function delComma(val) {
    val = val + '';
    val = val.replace(",", "");
    val = val.replace(",", "");
    val = val.replace(",", "");
    return val.replace(",", "");
}

//------------------------------------------------------------
//  val = addComma(val)
//------------------------------------------------------------
function addComma(val) {
    val = delComma(val);
    if (!isAbsNumber(val)) {
        return val;
    }
    val = val + '';
    var minus = "";;
    if (val.charAt(0) == "-") {
        minus = "-";
        val = val.substring(1);
    }
    var yen = "";
    for (i=0; i<val.length; i++) {
        if (i && !((val.length-i) % 3)) {
            yen += ",";
        }
        yen += val.charAt(i);
    }
    return minus + "" + yen;
}

//------------------------------------------------------------
//  val = addPeriod(val)
//------------------------------------------------------------
function addPeriod(val) {
    if (!isNumber(val)) {
        return val;
    }

    val = val + '';
    var dot = 0;
    var str = "";
    for (var ix=0; ix<val.length; ix++) {
        if (val.charAt(ix) == ".") {
            if (dot > 0) {
                return val;
            }
            dot++;
        }
        str += val.charAt(ix);
        if (dot > 0) {
            dot++;
            if (dot > 3) {
                break;
            }
        }
    }

    if (dot == 0) {
        str += ".00";
    }
    if (dot == 2) {
        str += "00";
    }
    if (dot == 3) {
        str += "0";
    }

    return str;
}

//------------------------------------------------------------
//  rc = isNotInput(val)
//------------------------------------------------------------
function isNotInput(val) {
    if (val == void(0)) {
        return true;
    }
    if (val.length <= 0) {
        return true;
    }
    return false;
}

//------------------------------------------------------------
//  rc = isAbsNumber(val)
//------------------------------------------------------------
function isAbsNumber(val) {
    if (val == void(0)) {
        return false;
    }
    val = val + '';
    for (var i=0; i<val.length; i++) {
        var ch = val.substring(i, i+1);
        if (ch < "0" || "9" < ch) {
            return false;
        }
    }
    return true;
}

//------------------------------------------------------------
//  rc = isNumber(val)
//------------------------------------------------------------
function isNumber(val) {
    if (val == void(0)) {
        return false;
    }
    var period = 0;
    val = val + '';
    for (var i=0; i<val.length; i++) {
        var ch = val.substring(i, i+1);
        if (ch == ".") {
            if (period > 0) {
                return false;
            }
            period++;
        } else if (ch < "0" || "9" < ch) {
            return false;
        }
    }
    return true;
}

//------------------------------------------------------------
//  val = getPrmData(str, dflt)
//------------------------------------------------------------
var gets = new Object();
var url = location.href;
var temp = url.split("?");
if (temp.length > 1) {
    paras = paras = temp[1].split(/&|%26/);
    for(i=0;i<paras.length;i++){
        para = paras[i].split("=");
        gets[para[0]] = para[1];
    }
}
function getPrmData(str, dflt)
{
    var val = gets[str];
    if (val != void(0))  return val;
    return dflt;
}
