//*******************************************
//WHAT ARE YOU LOOKING AT?? THERE IS NOTHING
//FOR YOU TO SEE HERE!
//*******************************************

var monthsInYear          = 12;
var weeks                 = 52;
var onePct                = 0.01;
var fivPct                = 0.05;
var onePct                = 0.01;
var twoPct                = 0.02;
var thrPct                = 0.03;

var curAPR;
var transferAmt;
var avgMonthly;
var bonus;
var avgMonthlyCard;
var avgMonthlyPhone;
var avgMonthlyCallingCard;
var avgMonthlyInternet;
var periodSpending;
var newApr;
var ShopNowSpending;

var m1 = "OOPS! A required field has been left blank";
var m2 = "OOPS! You have entered invalid information. Only numbers, one decimal point (.) and commas (,) can be entered.";
var m3 = "OOPS! You have entered invalid information. Only numbers and one decimal point (.) can be entered.";
var m4 = "OOPS! Please enter a dollar amount greater than 0.";
var m5 = "OOPS! Please enter a number greater than 0.";
var m6 = "OOPS! Please enter a dollar amount equal to or greater than 0";
var m7 = "You will save $0 based on the interest rate you have entered";

function clearFields(result,apr,amt,other1,other2)
{
	result.value="";
	apr.value="";
	amt.value="";
	if (other1!="")
	{
		other1.value="";
	}
	if (other2!="")
	{
		other2.value="";
	}
}

function isBlank(inputString)
{
    for (var i = 0; i < inputString.length; i++)
    {
        var inputChar = inputString.charAt(i);
        if ((inputChar != ' ') && (inputChar != '\n') && (inputChar != '\t'))
        {
            return(false);
        }
    }

    return(true);
}

function removeSymbols(numExpr)
{
    var newNumber="";

    for (var x=0;x<numExpr.length;x++)
    {
        if ((numExpr.charAt(x)!=",") && (numExpr.charAt(x)!="$") && (numExpr.charAt(x)!="%"))
        {
    	   newNumber=newNumber + numExpr.charAt(x);
        
		}
		
    }

    if (numExpr.length==0)
    {
        newNumber=0;
		
    }

    if (isNaN(newNumber)!=true)
    {
        return (parseFloat(newNumber));
    
	}
    else
    {
       return (newNumber);
    }
}

function DollarFormat(expressionVar)
{   return DecimalFormat(expressionVar, 2);
}

function DecimalFormat(expressionVar, decimalPlaces)
{
    var exprStr = "" + Math.round(eval(expressionVar) * Math.pow(10, decimalPlaces));

    while(exprStr.length <= decimalPlaces)
    {
        exprStr = "0" + exprStr;
    }

    var decimalPoint = exprStr.length - decimalPlaces;

    var dollars = exprStr.substring(0, decimalPoint);

    var dollarsFormatted=AddCommas(dollars);

    return dollarsFormatted + "." + exprStr.substring(decimalPoint, exprStr.length);
}

function AddCommas(numExpr)
{
    var dollars=numExpr;

    var count=dollars.length%3;

    var sections = new Array();

    var arrayCounter=0;

    if (count!=0)
    {
        sections[0]=dollars.substring(0, count);
	arrayCounter++;
    }

    var x=0;

    for (;arrayCounter<dollars.length/3;arrayCounter++)
    {
	sections[arrayCounter]=dollars.substring(count,count+3);
	count=count+3;
	x=x+2;
    }

    dollars="";

    for (var x=0;x<sections.length;x++)
    {
    	dollars=dollars + sections[x];
        if (sections.length > x + 1)
    	{
    	    dollars=dollars + ",";
	}
    }

    return (dollars);
}

function validateCmTransfer(form, calculatorType)
{
	var elementCurApr;
	var elementTranAmt;
	var elementSupCardApr;
	
	if(calculatorType == "cmTransferCalc")
	{
		elementCurApr = "cm_cur_apr";
		elementTranAmt = "cm_tran_amt";
		elementSupCardApr = "sup_card_apr";
	}
	else
	{
		elementCurApr = "cur_apr";
		elementTranAmt = "tran_amt";
		//elementSupCardApr = "";//not used for TransferCalc()
	}
   if (isBlank(form.elements[elementCurApr].value))
   {
       alert(m1);
       form.elements[elementCurApr].focus();
       return false;
   }
   else
   {
       curAPR=removeSymbols(form.elements[elementCurApr].value);
       if (isNaN(curAPR)==true)
       {
           alert(m2);
           form.elements[elementCurApr].focus();
           return false;
       }
       else if (curAPR<=0)
       {
           alert(m5);
           form.elements[elementCurApr].focus();
           return false;
       }
   }

   if (isBlank(form.elements[elementCurApr].value))
   {
       alert(m1);
       form.elements[elementCurApr].focus();
       return false;
   }
   else
   {
       transferAmt = removeSymbols(form.elements[elementTranAmt].value);
       if (isNaN(transferAmt)==true)
       {
           alert(m2);
           form.elements[elementTranAmt].focus();
           return false;
       }
       else if (transferAmt<=0)
       {
           alert(m4);
           form.elements[elementTranAmt].focus();
           return false;
       }
   }
	if(calculatorType == "cmTransferCalc")
	{
	   if (isBlank(form.elements[elementSupCardApr].value))
   		{
    	   alert(m1);
    	   form.elements[elementSupCardApr].focus();
     	  return false;
   		}
  		 else
   		{
      	 	newAPR = removeSymbols(form.elements[elementSupCardApr].value);
       		if (isNaN(newAPR)==true)
       		{
         	  alert(m2);
         	  form.elements[elementSupCardApr].focus();
         	  return false;
       		}
       		else if (newAPR<=0)
       		{
           		alert(m4);
           		form.elements[elementSupCardApr].focus();
           		return false;
       		}
		}
	
     }
   return true;
}

function TransferCalc(form)
{
   if (validateCmTransfer(form, "TransferCalc")==false)
   {	return;  
   }

	var curAprPct = parseFloat(curAPR) / 100.0;
   var periodVar = parseFloat(form.period_Var.value) / 12.0;
   var newAprPct = parseFloat(form.new_Apr.value) / 100.0;
   var difAprPct = curAprPct - newAprPct;
   var result = difAprPct * transferAmt * periodVar;

    if (result>0)
    {
        var displayAmt=DollarFormat(result);
    }
    else
    {
        displayAmt="$0.00";
        alert(m7);
    }

    form.elements["result"].value=displayAmt;
}
