/**
 * 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  Kyle Ames
 * @version 1.0   Date: September 10, 2008
 */
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;
       
   	 //VALUE MUST BE POSITIVE FOR EXEMPTION TO EXIST    
		 if (value > 0)
		 	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
     * @param exmemption The value of the exemption
	  * @return        	 The tax (in dollars)
     */
    public static double foodTax(double value)
    {
       double   tax;
		 
		 //VALUE MUST BE GREATER THAN 0.20 FOR THE POSSIBILITY OF FOOD TAX
		 //EXISTING
		 if (value >= 0.20)
		 	{
			 tax = (value * SALES_TAX_RATE)- (value * FOOD_EXEMPTION_RATE);
       	 if (tax < 0.0)
		 		tax = 0.0;
			}
       
		 else				//IF VALUE < 0.20 THERE IS NO SALES TAX
		 	tax = 0.0;	//MAKING TAX AUTOMATICALLY NEGATIVE
       
		 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;
       
   	 //THERE IS NO SALES TAX IF THE TOTAL VALUE OF THE
		 //ITEMS IS LESS THAN $.20, OTHERWISE THERE IS SALES TAX
		 if (value < 0.20)
		 	tax = 0.0;
		 else    
		 	tax = value * SALES_TAX_RATE;       
		 
       return tax;       
    }
    


}
