/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*Calculator HTML*/
function getCal()
{
	var imagePath= 'http://www.nowcreditcards.co.uk/creditcal/images';
	document.write('<style>.calcTD{font-family:Tahoma, Arial, Verdana;font-size:12px;font-weight:bold;text-decoration:none;color:#000000;}.box-border{border:1px solid #8C8C8C;}.calcubg{background:url('+imagePath+'/bg.jpg);background-repeat:repeat-x;background-color:#92BFFC;}.right-repeat{background:url('+imagePath+'/right-repeat.jpg);background-repeat:repeat-x;background-color:#DCEAFE;}.textbox{width:96px;height:18px;background-color:#FFFFFF;border:1px solid #81A699;font-family:Tahoma, Arial, Verdana;font-size:12px;font-weight:normal;text-decoration:none;color:#000000;}.dropdown{width:36px;height:20px;font-family:Tahoma, Arial, Verdana;font-size:12px;font-weight:normal;text-decoration:none;color:#000000;}.repeat-line{background:url('+imagePath+'/repeat-line.jpg);background-repeat:repeat-x;height:26px;}.bold-white{font-family:Tahoma, Arial, Verdana;font-size:17px;font-weight:bold;text-decoration:none;color:#ffffff;}a.calculartextlink{font-family:Tahoma, Arial, Verdana;font-size:12px;font-weight:bold;text-decoration:none;color:#000000;}a.calculartextlink:hover{font-family:Tahoma, Arial, Verdana;font-size:12px;font-weight:bold;text-decoration:underline;color:#000000;}.blacktext{font-family:Tahoma, Arial, Verdana;font-size:12px;font-weight:bold;text-decoration:none;color:#4B4B4B;line-height:15px;}a.copyright{font-family:Tahoma, Arial, Verdana;font-size:10px;font-weight:bold;text-decoration:none;color:#4B4B4B;text-decoration:underline;}a.copyright:hover{font-family:Tahoma, Arial, Verdana;font-size:10px;font-weight:bold;text-decoration:none;color:#4B4B4B;text-decoration:none;}</style>');
	
	document.write('<FORM name=frmCard action=# method=post>');
	
	var cal1 = '<table width="476" border="0" align="center" cellpadding="0" cellspacing="0" class="box-border"><tr><td align="left" valign="top" class="calcubg" style="padding-top:16px; padding-bottom:20px; padding-left:7px; padding-right:5px;"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td align="left" valign="top"><img src="'+imagePath+'/cal-header1.jpg" alt="" width="462" height="64" /></td></tr><tr><td align="left" valign="top" style="padding-right:6px;"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td width="301" align="left" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td height="39" align="left" valign="top">&nbsp;</td></tr><tr><td align="left" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td width="139" height="29" align="left" valign="middle" class="calcTD">Credit Card Balance </td><td width="148" align="left" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td width="12" height="29" align="left" valign="middle" class="calcTD">&pound;</td><td width="136" align="left" valign="middle"><input name="crdBalanceRepay" type="text" class="textbox" id="crdBalanceRepay" /></td></tr></table></td></tr><tr><td height="29" align="left" valign="middle" class="calcTD">Interest Rate</td><td align="left" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td width="12" height="29" align="left" valign="middle" class="calcTD">&nbsp;</td><td width="136" align="left" valign="middle" class="calcTD"><input name="intRateRepay" type="text" class="textbox" id="intRateRepay" />&nbsp;%</td></tr></table></td></tr><tr><td align="left" valign="middle" class="calcTD">Monthly Payment</td><td align="left" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td width="12" height="29" align="left" valign="middle" class="calcTD">&pound;</td><td width="136" align="left" valign="middle"><input name="mnthRepay" type="text" class="textbox" id="mnthRepay" /></td></tr></table></td></tr></table></td></tr><tr><td height="69" align="left" valign="middle"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td width="148">&nbsp;</td><td align="left" valign="top"><a href="javascript:UpdateRepay()" class="calculartextlink"><img src="'+imagePath+'/calc_btn.jpg" alt="" border="0" /></a></td></tr></table></td></tr></table></td></tr></table></td><td width="162" align="left" valign="top" class="right-repeat"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td height="39" align="left" valign="middle" style="padding-left:10px;padding-right:10px;"><img src="'+imagePath+'/icon2.jpg" alt="" width="24" height="22" /></td></tr><tr><td align="left" valign="top" class="blacktext" style="padding-left:10px;padding-right:10px;">Use this calculator to find out how long it will take you to clear your credit card debt at the current amount you pay off each month. </td></tr></table></td></tr></table></td></tr><tr><td align="left" valign="top" style="padding-right:6px;"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td width="26%" align="left" valign="middle" class="bold-white"><img src="'+imagePath+'/result.jpg" alt="" width="65" height="19" /></td><td width="74%" align="left" valign="top" class="repeat-line">&nbsp;</td></tr></table></td></tr><tr><td align="left" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td width="251" align="left" valign="middle" class="calcTD" height="25">Number of monthly payments required </td><td width="213" align="left" valign="middle"><input name="resultRepay" type="text" class="textbox" id="resultRepay" /></td></tr></table></td></tr></table></td></tr></table><table width="476" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td align="right"  style="padding-top:5px;"><a href="http://www.nowcreditcards.co.uk" class="copyright" target="_blank"><em>Powered By NCC</em></a></td></tr></table>';
	document.write(cal1);
	
	document.write('<br><br>');
	
	var cal2 = '<table width="476" border="0" align="center" cellpadding="0" cellspacing="0" class="box-border"><tr><td align="left" valign="top" class="calcubg" style="padding-top:16px; padding-bottom:20px; padding-left:7px; padding-right:5px;"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td align="left" valign="top"><img src="'+imagePath+'/cal-header2.jpg" alt="" width="462" height="64" /></td></tr><tr><td align="left" valign="top" style="padding-right:6px;"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td width="301" align="left" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td height="39" align="left" valign="top">&nbsp;</td></tr><tr><td align="left" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td width="139" height="29" align="left" valign="middle" class="calcTD">Credit Card Balance </td><td width="148" align="left" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td width="12" height="29" align="left" valign="middle" class="calcTD">&pound;</td><td width="136" align="left" valign="middle"><input name="crdBalanceMonths" type="text" class="textbox" id="crdBalanceMonths" /></td></tr></table></td></tr><tr><td height="29" align="left" valign="middle" class="calcTD">Interest Rate </td><td align="left" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td width="12" height="29" align="left" valign="middle" class="calcTD">&nbsp;</td><td width="136" align="left" valign="middle" class="calcTD"><input name="intRateMonths" type="text" class="textbox" id="intRateMonths" />&nbsp;%</td></tr></table></td></tr><tr><td align="left" valign="middle" class="calcTD">Select a Time Frame</td><td align="left" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td width="12" align="left" valign="top">&nbsp;</td><td width="38" align="left" valign="top"><select name="yearsSelect" class="dropdown" id="yearsSelect"><OPTION value=0 selected>0</OPTION> <OPTION value=1>1</OPTION> <OPTION value=2>2</OPTION> <OPTION value=3>3</OPTION> <OPTION value=4>4</OPTION> <OPTION value=5>5</OPTION> <OPTION value=6>6</OPTION> <OPTION value=7>7</OPTION> <OPTION value=8>8</OPTION> <OPTION value=9>9</OPTION> <OPTION value=10>10</OPTION> <OPTION value=15>15</OPTION> <OPTION value=20>20</OPTION> <OPTION value=30>30</OPTION></select></td><td width="20" align="left" valign="middle" class="calcTD">Y,</td><td width="40" align="left" valign="top"><select name="monthsSelect" class="dropdown" id="monthsSelect"><OPTION value=0 selected>0</OPTION> <OPTION value=1>1</OPTION> <OPTION value=2>2</OPTION> <OPTION value=3>3</OPTION> <OPTION value=4>4</OPTION> <OPTION value=5>5</OPTION> <OPTION value=6>6</OPTION> <OPTION value=7>7</OPTION> <OPTION value=8>8</OPTION> <OPTION value=9>9</OPTION> <OPTION value=10>10</OPTION> <OPTION value=11>11</OPTION></select></td><td align="left" valign="middle" class="calcTD">M.</td></tr></table></td></tr></table></td></tr><tr><td height="69" align="left" valign="middle"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td width="148">&nbsp;</td><td align="left" valign="top"><a href="javascript:UpdateMonths()" class="calculartextlink"><img src="'+imagePath+'/calc_btn.jpg" alt="" border="0" /></a></td></tr></table></td></tr></table></td></tr></table></td><td width="162" align="left" valign="top" class="right-repeat" style="padding-left:10px;padding-right:10px;"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td height="39" align="left" valign="middle"><img src="'+imagePath+'/icon2.jpg" alt="" width="24" height="22" /></td></tr><tr><td align="left" valign="top" class="blacktext">See how quickly you can afford to pay off your credit card debt.<p>Simply Choose a period of time and then find out how long it will take you to pay off the debt.</p></td></tr></table></td></tr></table></td></tr><tr><td align="left" valign="top" style="padding-right:6px;"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td width="26%" align="left" valign="middle" class="bold-white"><img src="'+imagePath+'/result.jpg" alt="" width="65" height="19" /></td><td width="74%" align="left" valign="top" class="repeat-line">&nbsp;</td></tr></table></td></tr><tr><td align="left" valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td width="151" align="left" valign="middle" class="calcTD" height="25">Monthly Payment</td><td width="313" align="left" valign="middle"><input name="resultMonths" type="text" class="textbox" /></td></tr></table></td></tr></table></td></tr></table><table width="476" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td align="right"  style="padding-top:5px;"><a href="http://www.nowcreditcards.co.uk" class="copyright" target="_blank"><em>Powered By NCC</em></a></td></tr></table>';
	document.write(cal2);
	document.write('</FORM>');
}


////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
/*Calculator JavaScript*/
var intRate;
var mnthRepay;
var monthsClearDebt;
var yearsClearDebt;

// round a number to X decimals
function round(number, plcs) 
{ 
  plcs = (!plcs ? 2 : plcs); 
  return Math.round(number * Math.pow(10, plcs)) / Math.pow(10, plcs); 
} 

// get the values from the Repay table into JS variables 
function getValsRepay()
{
   crdBalance = new Number(document.frmCard.crdBalanceRepay.value);
   intRate = new Number(document.frmCard.intRateRepay.value);
   mnthRepay = new Number(document.frmCard.mnthRepay.value);
}

// get the values from the Clear your debt table into JS variables
function getValsMonths()
{
   crdBalance = new Number(document.frmCard.crdBalanceMonths.value);
   intRate = new Number(document.frmCard.intRateMonths.value);
   monthsClearDebt = document.frmCard.monthsSelect[document.frmCard.monthsSelect.selectedIndex].value;
   yearsClearDebt = document.frmCard.yearsSelect[document.frmCard.yearsSelect.selectedIndex].value;
}

// check if a given variable is a valid number. isNAN tests if a variable is Not A Number
function isValidNum(num)
{
   var isValidNum = false;

   if ( !isNaN(num) && num != "" && num != undefined){
      isValidNum = true; 
   }
   
   return isValidNum;
}

// does all the work
function CalcResultsRepay(clickCalc)
{	
	var remainingBalance = 0; 
	var mnIntRate = null;
	var monthsPaid = 0;
	var monthlyIntPay = null;
	var totIntPaid = 0;
	var paidOff = true; // can the card be paid off based on the repayment and interest amounts
	var yearsStr = 'years';
	var monthsStr = 'months';
	
	// calc the monthly interest rate
	mnIntRate = GetMnthIntRate();
	
	// simulate making payments each month
	remainingBalance = crdBalance;
	
	while (remainingBalance > 0)
	{
		monthsPaid++;
		
		// calc monthly int payment
		monthlyIntPay = remainingBalance * mnIntRate;
		
		// add int payment and subtract payment from remaining balance
		remainingBalance = remainingBalance + monthlyIntPay - mnthRepay;
					
		// keep runnning total of interested paid
		totIntPaid = totIntPaid + monthlyIntPay;
		
		// is the base amount going up instead of down because of interest
		if (remainingBalance >= crdBalance)
		{
			paidOff = false;
			
			if (clickCalc)
			{
				alert('Your monthly payment is less than your monthly interest fee');
			}
			break;
		}
	}
	
	// if the card was able to be paid off, update the result boxes
	if (!paidOff)
	{
		ResetFieldsRepay();
	}
	else
	{
		if (monthsPaid >= 12)
		{
			var years = Math.floor(monthsPaid/12);
			var months = monthsPaid-(years*12);
			
			if(years==1){
				yearsStr = 'year';
			}
			if(months==1){
				monthsStr = 'month';
			}
			
			document.frmCard.resultRepay.value = years+' '+yearsStr+', '+months+' '+monthsStr;
		}
		else
		{
			if(monthsPaid==1){
				monthsStr = 'month';
			}
			document.frmCard.resultRepay.value = monthsPaid+' '+monthsStr;
		}
		// total cost -> document.frmCard.resultBox2.value = (crdBalance+totIntPaid).toFixed(2);
	}
}

// calc the monthly interest rate
function GetMnthIntRate()
{
	return (parseFloat(intRate)/100)/12;
}

function CalcResultsMonths ()
{
	// want card paid off in X months, work out required monthly payment and total cost
	var mnIntRate = null;
	
	// calc the monthly interest rate
	mnIntRate = GetMnthIntRate();
	
	var totalMonths = ((parseInt(yearsClearDebt)*12) + parseInt(monthsClearDebt));

	var mnthlyIntCost = (crdBalance*mnIntRate);
	var change = 1-Math.pow((1+mnIntRate),-totalMonths);
	var reqPayment = (mnthlyIntCost / change).toFixed(2);
	
	document.frmCard.resultMonths.value = reqPayment; 
	// total cost -> document.frmCard.resultBox2.value = (reqPayment*totalMonths).toFixed(2);
}

function ResetFieldsRepay()
{
	document.frmCard.resultRepay.value = '';
}

function ResetFieldsMonths()
{
	document.frmCard.resultMonths.value = '';
}

function UpdateRepay()
{
	// get the forms variables
	getValsRepay();
	
	if (!isValidNum(crdBalance))
	{
		alert('Please enter a valid card balance');
		document.frmCard.crdBalanceRepay.focus();
	}
	else if (!isValidNum(intRate))
	{
		alert('Please enter a valid interest rate');
		document.frmCard.intRateRepay.focus();
	}
	else if (!isValidNum(mnthRepay))
	{	
		alert('Please enter a valid monthly repayment');
	    document.frmCard.mnthRepay.focus();
	}
	else
	{
		CalcResultsRepay(true);
	}
}


function UpdateMonths()
{
	// get the forms variables
	getValsMonths();
	
	if (!isValidNum(crdBalance))
	{
		alert('Please enter a valid card balance');
		document.frmCard.crdBalanceMonths.focus();
	}
	else if (!isValidNum(intRate))
	{
		alert('Please enter a valid interest rate');
		document.frmCard.intRateMonths.focus();
	}
	else if (monthsClearDebt == 0 && yearsClearDebt == 0)
	{
		alert('Please select your desired time frame');
		document.frmCard.yearsSelect.focus();
	}
	else
	{
		CalcResultsMonths(true);
	}
}

// auto populate the 2nd card balance box
function PopCardBalRepay()
{
	if (document.frmCard.crdBalanceMonths.value == null || document.frmCard.crdBalanceMonths.value == ''){
		document.frmCard.crdBalanceMonths.value = document.frmCard.crdBalanceRepay.value;
	}
}

// auto populate the 2nd card balance box
function PopCardBalMonths()
{
	if (document.frmCard.crdBalanceRepay.value == null || document.frmCard.crdBalanceRepay.value == ''){
		document.frmCard.crdBalanceRepay.value = document.frmCard.crdBalanceMonths.value;
	}
}