public static function ajaxTaxUpdate()
 {
     if (isset($_POST['state']) && isset($_POST['state_text']) && isset($_POST['zip']) && isset($_POST['gateway'])) {
         $gateway = Cart66Ajax::loadAjaxGateway($_POST['gateway']);
         $gateway->setShipping(array('state_text' => $_POST['state_text'], 'state' => $_POST['state'], 'zip' => $_POST['zip']));
         $s = $gateway->getShipping();
         if ($s['state'] && $s['zip']) {
             $id = 1;
             $taxLocation = $gateway->getTaxLocation();
             $tax = $gateway->getTaxAmount();
             $rate = $gateway->getTaxRate();
             $total = Cart66Session::get('Cart66Cart')->getGrandTotal() + $tax;
             Cart66Session::set('Cart66Tax', $tax);
             Cart66Session::set('Cart66TaxRate', Cart66Common::tax($rate));
         } else {
             $id = 0;
             $tax = 0;
             $rate = 0;
             $total = Cart66Session::get('Cart66Cart')->getGrandTotal() + $tax;
             Cart66Session::set('Cart66Tax', $tax);
             Cart66Session::set('Cart66TaxRate', Cart66Common::tax($rate));
         }
         if (Cart66Session::get('Cart66Cart')->getTax('All Sales')) {
             $rate = $gateway->getTaxRate();
             Cart66Session::set('Cart66TaxRate', Cart66Common::tax($rate));
         }
     }
     $result = array('id' => $id, 'state' => $s['state'], 'zip' => $s['zip'], 'tax' => Cart66Common::currency($tax), 'rate' => $rate == 0 ? '0.00%' : Cart66Common::tax($rate), 'total' => Cart66Common::currency($total));
     echo json_encode($result);
     die;
 }