/**
 * calculateFees
 *
 * @package JavaScript
 * @subpackage Fees
 *
 */
function calculateFees()
{
	advanceAmountElem	= document.getElementById('advanceamount');
	feeAmountElem		= document.getElementById('feeamount');
	totalAmountElem		= document.getElementById('total');
	aprElem				= document.getElementById('apr');
	repaymentElem		= document.getElementById('repayment');
	feeamountElem		= document.getElementById('feeamounttext');
	selectedState		= document.feecalculator.edsselect.value;
	
	// if no state
	if(selectedState == "") return;
	
	// selected amount
	selectedAmount		= document.feecalculator.fees.value;
	selectedAmount		= 1*selectedAmount;
	
	// fee
	fee = myStates[selectedState][selectedAmount]["fee"];
	fee	= 1*fee;
	
	// apr
	myapr = myStates[selectedState][selectedAmount]["apr"];
	myapr = 1*myapr;
	
	// set elements
	advanceAmountElem.innerHTML	= formatCurrency(selectedAmount);
	feeAmountElem.innerHTML		= formatCurrency(fee);
	totalAmountElem.innerHTML	= formatCurrency(fee+selectedAmount);
	aprElem.innerHTML			= myapr+"%*";
	repaymentElem.innerHTML		= myStates[selectedState]["repaymenttext"]+'<br />'+myStates[selectedState][selectedAmount]['note'];
	
/**
 * State overrides
 *
 */	
	
	// start with both
	
	
	// MS
	if(selectedState == "MS")
	{
		// ms only 30 day term
		var thirty_fee = msStateThirty["MS"][selectedAmount]["fee"];
		var thirty_apr = msStateThirty["MS"][selectedAmount]["apr"];
		
		// if 30day fee exists we need to set the fee
		if(thirty_fee != '')
		{
			feeAmountElem.innerHTML 	= formatCurrency(thirty_fee);
			totalAmountElem.innerHTML	= formatCurrency(thirty_fee+selectedAmount);
		}
		
		// if 30day apr exists we need to show both apr's
		if(thirty_apr != '')
		{
			if(myapr == 0)
			{
				// only have 30 day apr
				aprElem.innerHTML = 1*thirty_apr + '%**';
				repaymentElem.innerHTML = "**Assumes a 30-day Term";
			}
			else
			{
				// have both 30 day apr and 14 day apr
				aprElem.innerHTML = aprElem.innerHTML + '<br />' + 1*thirty_apr + '%**';
				repaymentElem.innerHTML = "*Assumes a 14-day Term<br />**Assumes a 30-day Term";
			}
		}
	}
	
	// NH
	if(selectedState == "NH") {
		feeamountElem.innerHTML = "<b>+ Interest Amount</b>";
	} else {
		feeamountElem.innerHTML = "<b>+ Fee Amount</b>";
	}
	
	// qualify for 1200
	// IE doesn't like using qualify as the variable name
	qualifyIE = document.getElementById('qualify');
	
	// WI
	if(selectedState == "WI")
	{
		qualifyIE.innerHTML = "<strong>** At a location, you may qualify for up to $1,200</strong>";
	}
	else
	{
		qualifyIE.innerHTML = "";
	}
	
}

/**
 * toggleDim
 *
 */
	function toggleDim(arg1) {
		if(document.feecalculator.edsselect.value=="") {
			myElement = document.getElementById(arg1).className='on';
			document.feecalculator.fees.disabled = true;
			document.getElementById('repayment').innerHTML='';
	   } else {
			document.getElementById(arg1).className='off';
			document.feecalculator.fees.disabled = false;
	   }
	}

/**
 * formatCurrency
 *
 */
function formatCurrency(num) {
	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++)
		num = num.substring(0,num.length-(4*i+3))+','+num.substring(num.length-(4*i+3));
	return (((sign)?'':'-') + '$' + num + '.' + cents);
}
