var home_price_value   = 0;
var down_payment_value = 0;
var rate_value         = 0;
var length_value       = 0;

window.addEvent('domready', function() {
	
   	var home_price   = $('home_price');
	var down_payment = $('down_payment');
   	var rate         = $('rate');
   	var length       = $('length');

   	var home_price_slider = new Slider(home_price, home_price.getElement('.knob'), {
   		range: [25000, 100000],
   		steps: 750,
   		wheel: true,
           snap: true,
   		onChange: function(value){
   			home_price_value = value;
			value = commaize(value);
   			$('home_price_value').set('html', '$'+value);

   			update_total();
   		}
   	}).set(62500);

	var down_payment_slider = new Slider(down_payment, down_payment.getElement('.knob'), {
   		range: [0, 20000],
   		steps: 200,
   		wheel: true,
           snap: true,
   		onChange: function(value){
			down_payment_value = value;
			value = commaize(value);
   			$('down_payment_value').set('html', '$'+value);
   			update_total();
   		}
   	}).set(10000);

   	var rate_slider = new Slider(rate, rate.getElement('.knob'), {
   		range: [200, 1000],
   		steps: 800,
   		wheel: true,
        snap: true,
   		onChange: function(value) {
			value = formatNumber(value/100, 2);
   			rate_value = value;
   			$('rate_value').set('html', value+' %');
   			update_total();
   		}
   	}).set(600);

   	var length_slider = new Slider(length, length.getElement('.knob'), {
   		range: [1, 30],
   		steps: 30,
   		wheel: true,
        snap: true,
		onChange: function(value) {
   			length_value = value;
			var noun = (value == 1) ? 'year' : 'years';
   			$('length_value').set('html', value + ' ' + noun);
   			update_total();
   		}
   	}).set(15);

	// Q&A
	//
    // var list = $$('div.answer');
    // var headings = $$('h5.question');
    // var collapsibles = new Array();
    // 
    // headings.each( function(heading, i) {
    //         var collapsible = new Fx.Slide( list[i], { });
    //         
    //     	//and store it in the array
    //         collapsibles[i] = collapsible;                        
    //         
    //         $(heading).addEvent('click', function(e){
    //     		e.stop();
    //     		collapsible.toggle();
    //     	});                    
    // 
    //         collapsible.hide();
    // });

});

function commaize(number) {
	number += '';
	return (number.length > 3) ? number.replace(/(\d*)(\d{3})$/g, "$1,$2") : number; 
}

function formatNumber(myNum, numOfDec) {
    var decimal = 1;
    for(i=1; i<=numOfDec;i++) {
        decimal = decimal *10;
    }
    return (Math.round(myNum * decimal)/decimal).toFixed(numOfDec);
}

function update_total() {
	
	home_price_value   = parseInt(home_price_value);
	down_payment_value = parseInt(down_payment_value);
	rate_value         = parseInt(rate_value);
	length_value       = parseInt(length_value);
	
	var interest_rate = rate_value / 1200;
	var months = length_value * 12;
	var total = 1;
	
	for (var i=0; i < months; i++) {
		total = total * ( 1 + interest_rate)
	};
	
	var monthly_payment = (home_price_value-down_payment_value) * interest_rate / (1 - (1/total));
	monthly_payment = Math.round(monthly_payment*100)/100;	
	monthly_payment = formatNumber(monthly_payment, 2);

	$('monthly_payment').set('html', '$' + monthly_payment);
}

function show_answer(question) {
    question.getNext().toggleClass('hide'); 
}