/**
 * StateTaxes - A utility class that can be used to calculate state taxes.
 *
 * In this case, there is a sales tax on all items but
 * (non-prepared) food has a special exemption.
 *
 *
 * This work complies with the JMU Honor Code.
 *
 * @author  Mike Stanley
 * @version 1.0 - 9/14/08
 */
public class StateTaxes
{
    private static double FOOD_EXEMPTION_RATE = 0.02;
    private static double SALES_TAX_RATE      = 0.05;
    
    /**
     * Calculate the exemption on (non-prepared) food
     *
     * @param value   The value of the (non-prepared) food
     * @return        The exemption (in dollars)
     */
    public static double foodExemption(double value)
    {
       double   exemption;
       
		 //formula to calculate the examption value
       exemption = (FOOD_EXEMPTION_RATE * value);
		 
		 //prevent from having a negative exemption
		 if(exemption < 0) exemption = 0.0;
		 

       return exemption;       
    } //end foodExemption()

    /**
     * Calculate the tax on (non-prepared) food.
     *
     * The food tax is the sales tax less the food exemption.
     *
     * @param value   The value of the (non-prepared) food
     * @return        The tax (in dollars)
     */
    public static double foodTax(double value)
    {
       double   tax;
		 
		 //calculate tax by getting the difference between
		 //the sales tax and the exemption.
       tax = salesTax(value) - foodExemption(value);
       
		 //prevent a negative tax
		 if(foodExemption(value) > salesTax(value)) tax = 0.0;

       
       return tax;       
    } //end foodTax()
    
    /**
     * Calculate the sales tax.
     *
     * @param value   The value of the items
     * @return        The tax (in dollars)
     */
    public static double salesTax(double value)
    {
       double    tax;
       
		 tax = 0.0;
		 
		 //apply sales tax on items over .20
       if(value >= .20)
		 {
		 	tax = (SALES_TAX_RATE * value);
		 }        
		 
       return tax;       
    } //end salesTax()
    
} //end StateTaxes
