$(function() {
	
	$('body').addClass('jsEnabled');
	
	$('.numPerDay, .costPerPack').keyup(function() {
		var cigPerPack = 20;
		
		var numPerDay = cleanString( $('.numPerDay').val() );
		var costPerPack = cleanString( $('.costPerPack').val() );		

		var costPerDay = numPerDay * costPerPack;
		var oneMonthAmount = costPerDay * 30 / cigPerPack;
		var sixMonthAmount = costPerDay * 182 / cigPerPack;
		var oneYearAmount = costPerDay * 365 / cigPerPack;
		var fiveYearAmount = costPerDay * 1825 / cigPerPack;
		
		$('.numPerDay').val( numPerDay );
		$('.costPerPack').val( costPerPack );

		$('#oneMonthAmount').text( formatCurrency(oneMonthAmount) );
		$('#oneMonthDays').text( daysLost(numPerDay, 30) );
		
		$('#sixMonthAmount').text( formatCurrency(sixMonthAmount) );
		$('#sixMonthDays').text( daysLost(numPerDay, 182) );
		
		$('#oneYearAmount').text( formatCurrency(oneYearAmount) );
		$('#oneYearDays').text( daysLost(numPerDay, 365) );
		
		$('#fiveYearAmount').text( formatCurrency(fiveYearAmount) );
		$('#fiveYearDays').text( daysLost(numPerDay, 1825) );
		
		if( $('.calculatorResults:hidden') && $('.numPerDay').val() != '' && $('.costPerPack').val() != '' ) {
			$('.calculatorResults:hidden').fadeIn();
		}
	});
	
	$('.calculateButton').hide();
	
	$('a.toggle').toggle(
		function(){
			$(this).addClass('down');
			$(this).parent('p').next('.hide').slideDown();	
		}
		,function(){
			$(this).removeClass('down');
			$(this).parent('p').next('.hide').slideUp();	
		}
	);
	
	$('.hide').hide();
});

function daysLost(numPerDay, totalDays) {
	//multiply the remainder by 24 to get the # of hours if needed 
	return Math.ceil(numPerDay * totalDays * 11 / 60 / 24);
}

function cleanString(str) {
	return str.replace(/[^0-9.]/g, "");
}

function formatCurrency(num) {
	var num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num)) {
		num = "0";
	}
	
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num % 100;
	num = Math.floor(num/100).toString();
	if(cents < 10 ) {
		cents = "0" + cents;
	}
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++) {
		var position = num.length-(4*i+3);
		num = num.substring( 0, position ) + ',' + num.substring( position );
	}
	
	return (((sign)?'':'-') + num + '.' + cents);
}
