var price = 30000;
var close_at = 13;
var options_price = 0;
var portfolio_discount = 0;
var prepaid_discount = 0;
var campaign = 0;
var template_pages = 0;
var nondiscount_price = 0;

$(function(){
    //$('input[@type=checkbox]').attr('checked', false);
    $('span.total').text(calculate());
    $('input#id_price').val(calculate());
    $('span.nondiscount').text(nondiscount_price);
    $('span.order-date').text(getApplicationDate());
    $('div#deadline-slider').slider({
        minValue: 1,    // 営業日最短
        maxValue: 5,    // 営業日最長
        startValue: 5,  // 初期値
        change: function(e, ui){
            ui.value += 0.5;
            $('span#deadline').text(Math.floor(ui.value));
            $('input#id_days').val(Math.floor(ui.value));
            $('span.total').text(calculate());
            $('span.nondiscount').text(nondiscount_price);
            $('input#id_price').val(calculate());
        }
    });
    $("#pagenum-slider").slider({
        minValue: 1,    // 最小ページ数
        maxValue: 20,   // 最大ページ数
        startValue: 1, // 初期値
        change: function(e, ui){
            ui.value += 0.5;
            $('span#pagenum').text(Math.floor(ui.value));
            $('input#id_page').val(Math.floor(ui.value));
            $('span.total').text(calculate());
            $('span.nondiscount').text(nondiscount_price);
            $('input#id_price').val(calculate());
        }
    });
    $("#id_option2").change(function(){
        if ($(this).attr('checked')) {
            portfolio_discount = 0.05;
            $('span.total').text(calculate());
            $('span.nondiscount').text(nondiscount_price);
            $('input#id_price').val(calculate());
        } else {
            portfolio_discount = 0.00;
            $('span.total').text(calculate());
            $('span.nondiscount').text(nondiscount_price);
            $('input#id_price').val(calculate());
        }
    });
    $("#id_option3").change(function(){
        if ($(this).attr('checked')) {
            prepaid_discount = 0.10;
            $('span.total').text(calculate());
            $('span.nondiscount').text(nondiscount_price);
            $('input#id_price').val(calculate());
        } else {
            prepaid_discount = 0.00;
            $('span.total').text(calculate());
            $('span.nondiscount').text(nondiscount_price);
            $('input#id_price').val(calculate());
        }
    });
});

function getApplicationDate() {
    var d = new Date();
    var day = 0;
    if (d.getDay() == 0) {
        day += 1;
    } else if (d.getDay() == 6) {
        day += 2;
    } else {
        if (d.getHours() > close_at) {
            day += 1;
        }
    }
    d2 = new Date(d.getTime()+(day*24*60*60*1000));
    return d2.getFullYear()+'/'+(d2.getMonth()+1)+'/'+d2.getDate();
}

function calculate() {
    var deadline_discount = {
        1: 0, 2: 10000, 3: 20000, 4: 22500, 5: 23500
    };
    pagenum_discount = {
        1:  1.00,  2: 0.95,  3: 0.95,  4: 0.95,  5: 0.95,
        6:  0.90,  7: 0.90,  8: 0.90,  9: 0.90, 10: 0.90,
        11: 0.85, 12: 0.85, 13: 0.85, 14: 0.85, 15: 0.85,
        16: 0.80, 17: 0.80, 18: 0.80, 19: 0.80, 20: 0.80
    };
    var deadline = parseInt($('span#deadline').text(), 10);
    var pagenum = parseInt($('span#pagenum').text(), 10);
    var totalprice =(price - deadline_discount[deadline]) *
                    (pagenum * pagenum_discount[pagenum]);
    totalprice += options_price ;
    totalprice -= totalprice * portfolio_discount;
    totalprice -= totalprice * prepaid_discount;
    nondiscount_price = round(totalprice);
    if (!nondiscount_price) { nondiscount_price = 0; }
    else { nondiscount_price = humanizeNumber(nondiscount_price); }
    if (campaign) { totalprice *= 0.8; }
    if (!totalprice) { totalprice = 0; }
    totalprice *= 1.05;
    return humanizeNumber(round(totalprice));
}

function humanizeNumber(num) {
    var num = new String(num).replace(/,/g, "");
    while(num != (num = num.replace(/^(-?\d+)(\d{3})/, "$1,$2")));
    return num;
}

function round(num) {
    var tmp = num / 100;
    tmp = Math.round(tmp);
    return tmp * 100;
}
