public function cartAction()
 {
     $this->_helper->layout()->setLayout('redesign-2014');
     $this->view->cart_page = 1;
     //@todo replace iwth pagetype
     $this->view->pagetype = 'cart';
     $shop = new Model_Shop();
     $product = new Model_Products();
     $generic = new Model_Generic();
     $login_info = $this->isLoggedIn();
     $this->view->loginInfo = $login_info;
     $cookie_items = isset($_COOKIE['cart_items']) ? $_COOKIE['cart_items'] : array();
     $items = $shop->listCartItems($cookie_items);
     foreach ($items as $row) {
         $images[$row['ProductID']] = $product->DisplayProductImages($row['ProductID']);
     }
     if (isset($images)) {
         $this->view->images = $images;
     }
     $this->view->itemcount = count($items);
     $this->view->items = $items;
     if ($_POST) {
         // Empty the Basket
         if (isset($_POST['emptycart'])) {
             $shop->emptyCart();
             $this->_redirect('/cart/');
         }
         // Refresh Cart
         if (isset($_POST['refreshcart'])) {
             $products = new Model_Products();
             $updated_quantities = $products->CheckInventory($_POST['Quantity']);
             //validation for item quantities
             //$this->view->updated_quantities = $updated_quantities;
             $this->_redirect('/cart/');
             //this is done to refresh the cart items
         }
         // Checkout
         if (isset($_POST['checkout'])) {
             $this->view->showCheckOutForm = 1;
             //$this->view->updated_quantities = $_POST['Quantity'] ;
             if (isset($_POST['Quantity'])) {
                 $products = new Model_Products();
                 $products->CheckInventory($_POST['Quantity']);
                 $this->view->updated_quantities = $_POST['Quantity'];
             }
             // Member Checkout
             if ($this->isLoggedIn()) {
                 $user_details = $this->isLoggedIn();
                 $this->view->isLoggedIn = 1;
                 $this->view->User = $user_details;
                 $this->view->states = $shop->shippingTable();
                 $this->view->shipping_rate = $generic->getData("Shipping", "", "State asc");
                 if (isset($_POST['StoreCredits'])) {
                     $this->view->store_credits_to_use = $_POST['StoreCredits'];
                     if ($_POST['StoreCredits'] > $user_details['StoreCredits']) {
                         $this->view->StoreCreditError = 'Error!  You have entered more than your available store credits.  ';
                         $this->view->store_credits_to_use = 0;
                     }
                 }
                 // Member Transaction
                 if (isset($_POST['memcheckout'])) {
                     //echo '<pre>'; print_r($_POST);exit;
                     $state = isset($_POST['State']) ? $_POST['State'] : 0;
                     $shipping_details = $generic->getData("Shipping", "ID=" . $state);
                     //$shipping_fee = isset($shipping_details[0]['Fee']) ? $shipping_details[0]['Fee'] : 0;
                     //unset($_POST['ShippingFee']);
                     $data = $_POST;
                     $data['ShippingFee'] = $_POST['ShippingFee'];
                     $Transaction = new Model_Transaction();
                     $process = $Transaction->AddMemberTransaction($data, $user_details);
                     if ($process) {
                         $shop->emptyCart();
                         $trackingid = $process;
                         $this->_redirect('/thankyou/?esig1234=' . $user_details['SiteEmail'] . '&trackingID=' . $trackingid);
                     }
                 } else {
                     $this->render('cartuser');
                 }
             }
             // Create Transaction
             if (isset($_POST['excheckout'])) {
                 $Transaction = new Model_Transaction();
                 $process = $Transaction->Add($_POST);
                 if ($process) {
                     $shop->emptyCart();
                     //$this->view->trackingid = $_POST['excheckout'];
                     $this->view->trackingid = $process;
                     $this->view->email = $_POST['Email'];
                     $this->render('confirm');
                 }
                 //else {
                 //$this->render('confirm'); //@todo why is this here?
                 //}
             }
         }
     }
 }