function Calculate() { 

   var card1amount = document.getElementById("card1am");
   var newString = StripCharacters(card1amount.value, ".1234567890");
   card1amount.value = newString;
   
   if (card1amount.value == '' || card1amount.value==null)
   {
   	 card1amount.value = 0;
   	 alert ("Card 1 transfer amount must be a numeric value of the form: xxx.xx");
   	 card1amount.focus();
	   return;
   }

  var card2amount = document.getElementById("card2am");
   var newString = StripCharacters(card2amount.value, ".1234567890");
   card2amount.value = newString;
   
   if (card2amount.value== "" || card2amount.value==null)
   {
   	 card2amount.value = 0;
   	 alert ("Card 2 transfer amount must be a numeric value of the form: xxx.xx");
   	 card2amount.focus();
     return;
   }
   
   var card3amount = document.getElementById("card3am");
   var newString = StripCharacters(card3amount.value, ".1234567890");
   card3amount.value = newString;
   
   if (card3amount.value== "" || card3amount.value==null)
   {
   	 card3amount.value = 0;
   	 alert ("Card 3 transfer amount must be a numeric value of the form: xxx.xx");
   	 card3amount.focus();
     return;
   }
   
   var rate = document.getElementById("rate");
   var newString = StripCharacters(rate.value, ".1234567890");
   rate.value = newString;
   
   if (rate.value== "" || rate.value==null)
   {
   	 rate.value = 0;
   	 alert ("Rate must be enter a numeric value of the form: xx.xx");
   	 rate.focus();
	 return;
   }
   
   var duration = document.getElementById("duration");
   var newString = StripCharacters(duration.value, "1234567890");
   duration.value = newString;
   
   if (duration.value== "" || duration.value==null || duration.value < 1 || duration.value > 36)
   {
   	 duration.value = 36;
   	 alert ("Duration must be a number between 1 and 36.");
   	 duration.focus();
	 return;
   }
   
   var card1rate = document.getElementById("card1rate");
   var newString = StripCharacters(card1rate.value, ".1234567890");
   card1rate.value = newString;
   
   if (card1rate.value== "" || card1rate.value==null)
   {
   	 card1rate.value = 0;
   	 alert ("Card 1 current rate must be a numeric value of the form: xx.xx");
   	 card1rate.focus();
	 return;
   }
   
   var card2rate = document.getElementById("card2rate");
   var newString = StripCharacters(card2rate.value, ".1234567890");
   card2rate.value = newString;
   
   if (card2rate.value== "" || card2rate.value==null)
   {
   	 card2rate.value = 0;
   	 alert ("Card 2 current rate must be a numeric value of the form: xx.xx");
   	 card2rate.focus();
	 return;
   }
   
   var card3rate = document.getElementById("card3rate");
   var newString = StripCharacters(card3rate.value, ".1234567890");
   card3rate.value = newString;
   
   if (card3rate.value== "" || card3rate.value==null)
   {
   	 card3rate.value = 0;
   	 alert ("Card 3 current rate must be a numeric value of the form: xx.xx");
   	 card3rate.focus();
	 return;
   }
   
   if (card1rate.value > 100) card1rate.value = 100;
   if (card1rate.value < 0) card1rate.value = 0;
   if (card2rate.value > 100) card2rate.value = 100;
   if (card2rate.value < 0) card2rate.value = 0;
   if (card3rate.value > 100) card3rate.value = 100;
   if (card3rate.value < 0) card3rate.value = 0;
   if (rate.value > 100) rate.value = 100;
   if (rate.value < 0) rate.value = 0;
   
   var card1am = card1amount.value;
   var card2am = card2amount.value;
   var card3am = card3amount.value;
   var card1ra = card1rate.value;
   var card2ra = card2rate.value;
   var card3ra = card3rate.value;
   var dur = duration.value;
   var ra = rate.value;
	 
   var totaltransfer = document.getElementById("totaltransfer");
   var totalsavings = document.getElementById("totalsavings");
   var card1transfer = document.getElementById("card1transfer");
   var card2transfer = document.getElementById("card2transfer");
   var card3transfer = document.getElementById("card3transfer");
   var card1savings = document.getElementById("card1savings");
   var card2savings = document.getElementById("card2savings");
   var card3savings = document.getElementById("card3savings");
   
   var temp = eval((+card1am) + (+card2am) + (+card3am));
   totaltransfer.firstChild.nodeValue=ConvertToDollar(temp);
 
//Reject if transfer amounts are set, but current rate isn't  
   if (card1am > 0 && card1ra==0)
   {
   	 alert ("You must enter a 'current rate' that is higher than 0 for card 1.");
   	 card1rate.focus();
	   return;
   }
   
   if (card2am > 0 && card2ra==0)
   {
   	 alert ("You must enter a 'current rate' that is higher than 0 for card 2.");
   	 card2rate.focus();
	 return;
   }
   
   if (card3am > 0 && card3ra==0)
   {
   	 alert ("You must enter a 'current rate' that is higher than 0 for card 3.");
   	 card3rate.focus();
	 return;
   }
         
//Calculate old interest costs for cards
   var temp = eval(Math.pow(+1+(card1ra/1200),dur)*card1am);
   var temp2 = eval(Math.pow(+1+(ra/1200),dur)*card1am);
   var save1total = temp - temp2;
   card1savings.firstChild.nodeValue = ConvertToDollar(save1total);
   
   temp = eval(Math.pow(+1+(card2ra/1200),dur)*card2am);
   temp2 = eval(Math.pow(+1+(ra/1200),dur)*card2am);
   var save2total = temp - temp2;
   card2savings.firstChild.nodeValue = ConvertToDollar(save2total);
   
   temp = eval(Math.pow(+1+(card3ra/1200),dur)*card3am);
   temp2 = eval(Math.pow(+1+(ra/1200),dur)*card3am);
   var save3total = temp - temp2;
   card3savings.firstChild.nodeValue = ConvertToDollar(save3total);
   
	var totalsav1 = eval((+save1total) + (+save2total) + (+save3total));	
	totalsavings.firstChild.nodeValue = ConvertToDollar(totalsav1);

} 

function StripCharacters(oldstring, filter) {
	filterValues = filter;
	var i;
	var newString = "";
	var returnString = "";
	
	for (i = 0; i < oldstring.length; i++) {
		var tempchar = oldstring.charAt(i);
		if (filterValues.indexOf(tempchar) == -1) newString += tempchar;
	}

	for (i = 0; i < oldstring.length; i++) {  
		var tempchar = oldstring.charAt(i);
		if (newString.indexOf(tempchar) == -1) returnString += tempchar;
	}
	
	return returnString;
	}
	
function ConvertToDollar(savetotal)
	{
	var savetotalupper = Math.floor(savetotal);
	if (savetotalupper < 0) savetotalupper++;
    var savetotallower = savetotalupper - savetotal;
    var savetotallower = Math.round(savetotallower*100);
    savetotalupper = Math.abs(savetotalupper);
    savetotallower = Math.abs(savetotallower);
   
   
//Trailing zero
	if (savetotallower < 10 && savetotallower > 0) savetotallower = "0"+savetotallower;	   
    if (savetotallower==0) savetotallower = "00";
	
   	var outString = "";
   
  	if (savetotal >= 0) outString = "$"+savetotalupper+"."+savetotallower;
   		else outString = "-$"+savetotalupper+"."+savetotallower;
	
	
	return outString;
	}
  
