function changeSelect(){
    var obj = document.form01;
	var p = obj.check1.options[obj.check1.selectedIndex].value;
	var pTxt = obj.check1.options[obj.check1.selectedIndex].text;
    var y = obj.elements['data[start_date][year]'].options[obj.elements['data[start_date][year]'].selectedIndex].value;
    var m = obj.elements['data[start_date][month]'].options[obj.elements['data[start_date][month]'].selectedIndex].value;
    
    //月に合わせて日付けのプルダウンを変更
    var last_day = getMonthEndDay(y, m);
    var select_array = [];
    for (var i = 0; i < last_day; i++){
        select_array[i] = new Object;
        select_array[i].text =i+1;
        select_array[i].value=i+1;
    }
    _create_dropdownlist( 'form01', 'data[start_date][day]', select_array );


    var d = obj.elements['data[start_date][day]'].options[obj.elements['data[start_date][day]'].selectedIndex].value;
    for(i = 0; i < document.form01.itemTerm.length; i++){
        if(document.form01.itemTerm[i].checked){
            var term = document.form01.itemTerm[i].value;
        }
    }
    //if(p && y && m && d){
        calcPlice(p,pTxt,y,m,d,term);
    //}
};
function numberFormat(str) {
    var num = new String(str).replace(/,/g, "");
    while(num != (num = num.replace(/^(-?\d+)(\d{3})/, "$1,$2")));
    return num;
}
function calcPlice(p,pTxt,y,m,d,term){
    var pDisp;
    p = Number(p);

    document.getElementById("hiddenItemSizeTxt").innerHTML = '<input type="hidden" name="itemSizeTxt" value="'+ pTxt +'">';

    if(d >= 2 && d <= 16){
    
        m2 = Number(m)+1;
        if(m2 > 12){
            m2 = m2 - 12;
        }
        
        document.getElementById("Price3").innerHTML = numberFormat(p*2)+'円';
        if(term=='長期予定'){
            document.getElementById("Month1").innerHTML = Number(m)+'月分';
            document.getElementById("Month2").innerHTML = Number(m2)+'月分';
            document.getElementById("Price1").innerHTML = numberFormat(p/2)+'円';
            document.getElementById("Price2").innerHTML = numberFormat(p)+'円';
            document.getElementById("PriceTotal").innerHTML = numberFormat(p*3+p/2)+'円';
            document.getElementById("payMessage").innerHTML = '<br />長期の場合、'+Number(y)+'年'+Number(m)+'月'+Number(d)+'日にご契約の場合、'+Number(y)+'年'+Number(m)+'月16日から賃料が発生します。';
        }else{
            document.getElementById("Month1").innerHTML = '1ヶ月分';
            document.getElementById("Month2").innerHTML = '-';
            document.getElementById("Price1").innerHTML = numberFormat(p)+'円';
            document.getElementById("Price2").innerHTML = '-';
            document.getElementById("PriceTotal").innerHTML = numberFormat(p*2+p)+'円';
            //document.getElementById("payMessage").innerHTML = '<br />短期の場合、'+Number(y)+'年'+Number(m)+'月'+Number(d)+'日にご契約の場合、'+Number(y)+'年'+Number(m)+'月'+Number(d)+'日から賃料が発生します。';
            var tmp_date = computeMonth(Number(y), Number(m), Number(d), 1);
            var pay_date = computeDate(tmp_date.getFullYear(), tmp_date.getMonth()+1, tmp_date.getDate(), -1);
            document.getElementById("payMessage").innerHTML = '<br />短期の場合、'+Number(y)+'年'+Number(m)+'月'+Number(d)+'日にご契約の場合、'+Number(y)+'年'+Number(m)+'月'+Number(d)+'日から'+pay_date.getFullYear()+'年'+Number(pay_date.getMonth()+1)+'月'+pay_date.getDate()+'日まで賃料が発生します。';
        }
    }else{
        if(d != 1){
            m2 = Number(m)+1;
            m3 = Number(m)+2;
        }else{
            m2 = Number(m);
            m3 = Number(m)+1;
        }
        if(m2 > 12){ 
            m2 = m2 - 12; 
            y2 = Number(y)+1;
        }else{
            y2 = Number(y);
        }
        if(m3 > 12){ 
            m3 = m3 - 12; 
        }
       
        
        //document.getElementById("Month1").innerHTML = Number(m2)+'月分';
        //if(d != 1){
        //    m2 = Number(m)+2;
        //}else{
        //    m2 = Number(m)+1;
        //}
        //if(m2 > 12){ m2 = m2 - 12; }
        
        document.getElementById("Price1").innerHTML = numberFormat(p)+'円';
        document.getElementById("Price3").innerHTML = numberFormat(p*2)+'円';
        if(term=='長期予定'){
            document.getElementById("Month1").innerHTML = Number(m2)+'月分';
            //document.getElementById("Month2").innerHTML = Number(m2)+'月分';
            document.getElementById("Month2").innerHTML = Number(m3)+'月分';
            document.getElementById("Price2").innerHTML = numberFormat(p)+'円';
            document.getElementById("PriceTotal").innerHTML = numberFormat(p*4)+'円';
            document.getElementById("payMessage").innerHTML = '<br />長期の場合、'+Number(y)+'年'+Number(m)+'月'+Number(d)+'日にご契約の場合、'+Number(y2)+'年'+Number(m2)+'月1日から賃料が発生します。';
            
        }else{
            document.getElementById("Month1").innerHTML = '1ヶ月分';
            document.getElementById("Month2").innerHTML = '-';
            document.getElementById("Price2").innerHTML = '-';
            document.getElementById("PriceTotal").innerHTML = numberFormat(p*3)+'円';
            //var last_day = new Date(y, m, 0);
            //last_day = last_day.getDate();
            var tmp_date = computeMonth(Number(y), Number(m), Number(d), 1);
            var pay_date = computeDate(tmp_date.getFullYear(), tmp_date.getMonth()+1, tmp_date.getDate(), 0);
            var d2;
            if(pay_date.getDate() == Number(d)){
                pay_date = computeDate(tmp_date.getFullYear(), tmp_date.getMonth()+1, tmp_date.getDate(), -1);
                //d2 = pay_date.getDate()-1;
            }else{
                //d2 = pay_date.getDate();
            }
            document.getElementById("payMessage").innerHTML = '<br />短期の場合、'+Number(y)+'年'+Number(m)+'月'+Number(d)+'日にご契約の場合、'+Number(y)+'年'+Number(m)+'月'+Number(d)+'日から'+pay_date.getFullYear()+'年'+Number(pay_date.getMonth()+1)+'月'+pay_date.getDate()+'日まで賃料が発生します。';
        }
    }
}

function select_day_init(){
    var obj = document.form01;
    var y = obj.elements['data[start_date][year]'].options[obj.elements['data[start_date][year]'].selectedIndex].value;
    var m = obj.elements['data[start_date][month]'].options[obj.elements['data[start_date][month]'].selectedIndex].value;
    
    //月に合わせて日付けのプルダウンを変更
    var last_day = getMonthEndDay(y, m);
    var select_array = [];
    for (var i = 0; i < last_day; i++){
        select_array[i] = new Object;
        select_array[i].text =i+1;
        select_array[i].value=i+1;
    }
    _create_dropdownlist( 'form01', 'data[start_date][day]', select_array );
}

function _create_dropdownlist( form_name, select_name, select_array ){
    // length
    document[form_name][select_name].length = select_array.length;
    
    // text, value
    var i;
    for ( i=0; i<select_array.length; i++){
        document[form_name][select_name].options[i].text = select_array[i].text;
        document[form_name][select_name].options[i].value = select_array[i].value;
    }
}


//n日後、n日前の日付を求める
/**
 * 年月日と加算日からn日後、n日前を求める関数
 * year 年
 * month 月
 * day 日
 * addDays 加算日。マイナス指定でn日前も設定可能
 */
function computeDate(year, month, day, addDays) {
    var dt = new Date(year, month - 1, day);
    var baseSec = dt.getTime();
    var addSec = addDays * 86400000;//日数 * 1日のミリ秒数
    var targetSec = baseSec + addSec;
    dt.setTime(targetSec);
    return dt;
}
/**
 * 年月を指定して月末日を求める関数
 * year 年
 * month 月
 */
function getMonthEndDay(year, month) {
    //日付を0にすると前月の末日を指定したことになります
    //指定月の翌月の0日を取得して末日を求めます
    //そのため、ここでは month - 1 は行いません
    var dt = new Date(year, month, 0);
    return dt.getDate();
}

/**
 * 年月日と加算月からnヶ月後、nヶ月前の日付を求める
 * year 年
 * month 月
 * day 日
 * addMonths 加算月。マイナス指定でnヶ月前も設定可能
 */
function computeMonth(year, month, day, addMonths) {
    month += addMonths;
    var endDay = getMonthEndDay(year, month);//ここで、前述した月末日を求める関数を使用します
    if(day > endDay) day = endDay;
    var dt = new Date(year, month - 1, day);
    return dt;
}


