var annual_income_max = 100000;
var saving_max = 300000;
var money_symbol = '$';

$(function () {
	// make sliders 
	$('div.slider').slider({'slide': update_input});
	// give custom max values to sliders
	$('#annual_income_div div.slider').slider('option', 'max', annual_income_max);
	$('#annual_income_partner_div div.slider').slider('option', 'max', annual_income_max);
	$('#savings_div div.slider').slider('option', 'max', saving_max);
	// give sliders custom step
	$('#annual_income_div div.slider').slider('option', 'step', 500);
	$('#annual_income_partner_div div.slider').slider('option', 'step', 500);
	$('#savings_div div.slider').slider('option', 'step', 1000);
	
	// setup other event handlers
	$('#house_type').change(update_output);
	$('.input').change(update_sliders);
});

function update_input (event, ui) {
	var slider_value = ui.value;
	$(this).siblings('.input').val(slider_value);
	
	update_output();
}

function update_sliders ()
{
	var value = parseFloat($(this).val());
	if (isNaN(value)) {
		$(this).val(0);
	} else {
		var max_val = parseFloat($(this).siblings('div.slider').slider('option', 'max'));
		value = value > max_val ? max_val : value;
		value = value < 0 ? 0 : value;
		$(this).val(value).siblings('div.slider').slider('value', value);
		update_output();
	}
}

function update_output () {
	var annual_income = parseFloat($('#annual_income_div .input').val());
	var annual_income_partner = parseFloat($('#annual_income_partner_div .input').val());
	var savings = parseFloat($('#savings_div .input').val());
	var house_type = $('#house_type').val();
	
	var answer1 = ((annual_income + annual_income_partner) * 4.74375 + savings).toFixed();
	var answer2 = 0;
	if (house_type == "old") {
		answer2 = answer1 * 0.92;
	} else {
		answer2 = answer1 * 1.005;
	}
	answer2 = answer2.toFixed();
	
	$('#result1').html(addCommas(answer1));
	$('#result2').html(addCommas(answer2));
}

function addCommas(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}
