/**
 * 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  Tom Kowaleski
 * @version 1.3
 */
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;
       
		 //calculating the amount of money saved through food exemption and
		 //   checking to make sure the value is above $0.20
		 if (value >= .2)
          exemption = (value*FOOD_EXEMPTION_RATE);
		 else
		    exemption = 0;

       return exemption;       
    }


    /**
     * 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;

		 //calculating the foodTax by subtracting the food exemption 
		 //   from the sales tax and checking to make sure the value is above $0.20
		 if (value >= .2)
          tax = salesTax(value) - foodExemption(value);
		 else
		    tax = 0;
       
       return tax;       
    }
    


    /**
     * Calculate the sales tax.
     *
     * @param value   The value of the items
     * @return        The tax (in dollars)
     */
    public static double salesTax(double value)
    {
       double    tax;
       
		 //calculating the raw tax amount of the value by multiplying the 
		 //   cost times the sales tax rate  and checking to make sure the 
		 //   value is above $0.20
		 if (value >= .2)
          tax = value*SALES_TAX_RATE;
	    else
		 	 tax = 0;  

       return tax;       
    }

}
