// JavaScript Document
function getRate(days){
    if (days >= 1 && days <= 30){
        //return .20;
		return .13;
    }
    else if (days > 30 && days <= 45){
        //return .24;
		return .15;
    }
    else {
        //return .28;
		return .18;
    }
}

function parseDate(datestr){
    var parts = datestr.split('/');
    if (parts.length != 3){
        parts = datestr.split('-');
        if (parts.length != 3){
            return false;
        }
    }

    var date = new Date();
    date.setMonth(parts[0]-1);
    date.setDate(parts[1]);
    if (parts[2] < 100){
        parts[2] += 2000;
    }

    date.setFullYear(parts[2]);
    return date;
}

function clearFields(frm){
    var today = new Date();
    frm.desired_advance.value = '$0.00';
    frm.closing_date.value = (today.getMonth()+1)+'/'+today.getDate()+'/'+today.getFullYear();
    frm.costs.value = '$0.00';
    frm.advance.value = '$0.00';
    frm.reserve_fee.value = '$0.00';
    frm.discount_fee.value = '$0.00';
}

function getUnixTime(date){
    if (!date){
        return false;
    }
    return date.getTime()/1000;
}

function calculate(){
    var frm = document.forms["frm"];
	var desired_advance = parseFloat(frm.desired_advance.value.replace(/(\$|,|\s)/g, ''), 10);
    if (isNaN(desired_advance) || desired_advance < 1){
        alert('Please enter your desired advance.');
        frm.desired_advance.focus();
        return false;
    }

	var today_date   = getUnixTime(parseDate(frm.today_date.value));
    var closing_date = getUnixTime(parseDate(frm.closing_date.value));
    var date_diff = Math.ceil( (closing_date - today_date) / (24*60*60) );
	
    if (date_diff < 1){
        alert('Please enter a closing date in the future.');
        frm.closing_date.focus();
        return false;
    }
    else if (date_diff > 90){
        alert('Sorry, but we will only do advances up to 90 days.');
        frm.closing_date.focus();
        return false;
    }
    else {
        document.getElementById('days_advanced').innerHTML = date_diff+' day advance';		
        var discount_fee = (desired_advance) * getRate(date_diff);
        //var other_fees = 49;
		var other_fees = 99;
        var costs = discount_fee + other_fees; //200 + 49
        var advance = desired_advance + costs; //2000-249
        frm.costs.value = '$'+costs.toFixed(2);
        frm.advance.value = '$'+advance.toFixed(2);
        frm.reserve_fee.value = '$'+reserve_fee.toFixed(2);
        frm.discount_fee.value = '$'+discount_fee.toFixed(2);
    }

    return true;
}

