function GetBuyMonthlyPayment(intCost, intRate, intTerm, intDown, intSalesTax)
{
    var c = "" + parseFloat(intCost);
    var r = "" + parseFloat(intRate);
    var t = "" + parseFloat(intTerm);
    var d = "" + parseFloat(intDown);
	var s = "" + parseFloat(intSalesTax);
	var a //This is the amount of taxes paid on the vehicle.  
    
    if (isNaN(s) == true)
    {
		a = (parseFloat(c) * 7.0)/ 100
    }
    else 
    {
		a = (parseFloat(c) * parseFloat(s))/ 100
    }
    //Subtract Down from Principal.
    c = "" + (parseFloat(c) - parseFloat(d) + parseFloat(a)) 
	if (c < 0){return 0}
    if ((t == null || t.length == 0) ||
        (c == null || c.length == 0)) 
    {
        return 0;
    }
    if (!checkNumber(t, 1, 480, "# of payments") ||
        !checkNumber(r, 0, 99, "Interest") ||

        !checkNumber(c, 100, 10000000, "Principal")) 
    {            
        //return "Invalid";
        return 0;
    }

    var i = r;
    if (i > 0.0) 
    {
        i = i / 100.0;
        r = i;
    }
	else
	{
		return FormatNumber(c / t)
	}
	
    i /= 12;
    var pow = 1;
    for (var j = 0; j < t; j++)
    {
        pow = pow * (1 + i);
    }
	
	return FormatNumber((c * pow * i) / (pow - 1)) 
}

function GetBuyPrincipal(intPayment, intRate, intTerm, intDown)
{
    var p = "" + parseFloat(intPayment);
    var r = "" + parseFloat(intRate);
    var t = "" + parseFloat(intTerm);
    var d = "" + parseFloat(intDown);

    //Subtract Down from Principal.
    if ((t == null || t.length == 0) ||
        (r == null || r.length == 0) ||
        (p == null || p.length == 0)) 
    {
        return;
    }
    if (!checkNumber(t, 1, 480, "# of payments") ||
        !checkNumber(r, 0, 99, "Interest") ||
        !checkNumber(p, 1, 10000, "Payment")) 
    {            
        return "Invalid";
    }

    var i = r;
    if (i > 0) 
    {
        i = i / 100.0;
        r = i;
    }
	else
	{
		var zeroApr
		zeroApr = FormatNumber((p * t) + parseFloat(d))
		
		return zeroApr
	}
	
    i /= 12;
    var pow = 1;
    for (var j = 0; j < t; j++)
    {
        pow = pow * (1 + i);
    }
    var Principal
    Principal = (p * (pow - 1))/(pow * i)
    return FormatNumber(Principal + parseFloat(d))
}

function roundFloat(Float, Place)
{
	//This function Rounds Float to Place. 
	var TempFloat
	var Multiplier
	Multiplier = Math.pow(10, Place)
	TempFloat = Float * Multiplier
	TempFloat = Math.round(TempFloat)
	TempFloat = TempFloat/Multiplier
	return "" + TempFloat
}

function ReturnAmount(String)
{
	//This function returns the amount when a Dollar Amount or a Percent Amount have being passed.
	var strString
	var intPosition
	if (String == null){return 0}
	String = "" + Trim(String)
	if (String == ""){return 0}
	//Find out if it is a Percent or a Currency or Neither	
	if (String.indexOf("$",0) > -1)
	{
		intPosition = String.indexOf("$",0)
		strString = String.substring(intPosition + 1)
	}
	else if (String.indexOf("%",0) > -1)
	{
		intPosition = String.indexOf("%",0)
		strString = String.substring(0, intPosition)
	}
	else
	{
		strString = String
	}
	//Take the commas out. 
	strString = StripCharacter(strString, ",")	
	return strString
}

function formatCurrency(fld)
{
	var str = (Math.round(parseFloat(fld.value) * 100) / 100) + "00";
	var p = str.indexOf(".");
	if(p > 0)
	{
		str = str.substring(0, p + 3);
		fld.value = str;
	}
}

function StripCharacter(String, Char)
{
	//This function Removes all "Char" from "String"
	var intLen
	var intStart
	var intEnd
	var strResults
	var intStringLen
	if (String == ""){return String}
	intStringLen = String.length
	intLen = Char.length
	strResults = String
	while (String.indexOf(Char) > -1)
	{
		intStart = strResults.indexOf(Char)
		if (intStart == -1){break;}
		strResults = strResults.substring(0,intStart) + strResults.substring(intStart + intLen)
	}
	return strResults
}

function checkNumber(input, min, max, msg) 
{
    msg = msg + " field contains an invalid entry: " + input.value;

    var str = "" + input;
    for (var i = 0; i < str.length; i++) 
    {
        var ch = str.substring(i, i + 1)
        if ((ch < "0" || "9" < ch) && ch != '.') 
        {
            alert(msg);
            return false;
        }
    }
    var num = 0 + str
    if (num < min || max < num) 
    {
        alert(msg + " It must be in range [" + min + ".." + max + "]");
        return false;
    }
    input = str;
    return true;
}

function FormatNumber(Number)
{
	//Format numbers to display commas and periods. 
	var n = "" + Number             //Number as string
	var i                           //Integer Part
	var d							//Decimal Part
	var s							//Start Position for the Decimal Part
	var x							//Just an integer 
	var c = 0						//Counter 
	var f = ""						//Final String
	var a							//Integer 
	
	//alert(Number)
	if (n.indexOf(".") >= 0)
	{
		d = n.substring(n.indexOf(".") + 1) 
	}          
	else 
	{
		d = "00"
	}
	i = "" + Math.round(Number - parseFloat("0." + d))
	d = "" + (Math.round(parseFloat("0." + d) * 100)/100)
	if (d == 0){d="0.00"}
	for (x = 0; x <= i.length; x++)
	{	
		c = c + 1
		a = i.length - x 
		f = i.substring(a-1, a) + f 	
		if (c == 3)
		{	
			c = 0 
			f = "," + f
		}		
	}
	if (f.substring(0,1) == ",")
	{
		f = f.substring(1)
	}
	if (d.substring(0,1) == "."){d = "0" + d}
	return f + d.substring(1)
}

function RTrim(String)
{
	//This function strips empty characters from the Right of the string. 
	var intLen 
	var strResults
	var intI
	var intInverse
	if (String == ""){return ""}
	if (String == null){return ""}
	String = "" + String
	intLen = String.length
	for (intI = 0; intI <= intLen; intI++)
	{
		intInverse = intLen - intI
		if (String.substring(intInverse - 1, intInverse) != " "){break;}
		if (String.length == 0){break;}
		String = String.substring(0, intInverse -1)
	}
	//return strResults;
	return String
}

function LTrim(String)
{
	//This function strips empty characters from the Left of the string. 
	var intLen 
	var strResults
	var intI
	if (String == ""){return ""}
	if (String == null){return ""}
	String = "" + String
	intLen = String.length
	for (intI = 0; intI <= intLen; intI++)
	{
		if (String.substring(0, 1) != " "){break;}
		if (String.length == 0){break;}
		String = String.substring(1)
	}
	//return strResults;
	return String
}

function Trim(String)
{
	//This function trims the string on both sides. 
	String = RTrim(String)
	String = LTrim(String)
	return String
}

function ReturnFileName(FilePath, Separator)
{
	//This function is a string function that can be used to retrieve 
	//the last part of FilePath separated by Separator. 
	var intPosition
	var strFile
	if (Separator == null){Separator = "/"}
	if (FilePath == null || Trim(FilePath) == ""){return ""}
	intPosition = FilePath.lastIndexOf(Separator)
	if (intPosition == -1){return FilePath}
	strFile = FilePath.substring(intPosition + 1, FilePath.length) 
	return strFile
}

function ReturnPath(FilePath, Separator)
{
	//This function is a string function that can be used to retrieve 
	//the first part of FilePath separated by the last Separator. 
	var intPosition
	var strFile
	if (Separator == null){Separator = "/"}
	if (FilePath == null || Trim(FilePath) == ""){return ""}
	intPosition = FilePath.lastIndexOf(Separator)
	if (intPosition == -1){return FilePath}
	strFile = FilePath.substring(0, intPosition)
	return strFile
}

function OpenWindow(URL, Name, Width, Height)
{
	var Options
	Name = "" + Name
	Options = "width=" + Width + ",height=" + Height + ",status=yes,resizable=no,scrollbars=no";
	windowHandle = window.open(URL, Name, Options);
	windowHandle.focus();
}
