public function filterAction()
 {
     $tarifModel = new Application_Model_Tarif();
     $this->view->layout()->disableLayout();
     $this->view->assign('selectedTarife', explode('|', $this->getRequest()->getParam('selected', array())));
     $unsortedElements = $tarifModel->getByParams($this->getRequest()->getParams());
     switch ($this->getRequest()->getParam('sorting')) {
         default:
         case '':
             $sortedElements = $unsortedElements;
             break;
         case 'sort-startpaket-up':
             $sortHelperArray = array();
             foreach ($unsortedElements as $element) {
                 $kostenAktionenSumme = $element->getAktionenAmount(array(Application_Model_Aktion::TYP_GUTHABEN, Application_Model_Aktion::TYP_RUFNUMMER)) - $element->preis_start;
                 $sortHelperArray[] = $kostenAktionenSumme;
             }
             array_multisort($sortHelperArray, $unsortedElements);
             $sortedElements = array_reverse($unsortedElements);
             break;
         case 'sort-startpaket-down':
             $sortHelperArray = array();
             foreach ($unsortedElements as $element) {
                 $kostenAktionenSumme = $element->getAktionenAmount(array(Application_Model_Aktion::TYP_GUTHABEN, Application_Model_Aktion::TYP_RUFNUMMER)) - $element->preis_start;
                 $sortHelperArray[] = $kostenAktionenSumme;
             }
             array_multisort($sortHelperArray, $unsortedElements);
             $sortedElements = $unsortedElements;
             break;
         case 'sort-anruf-up':
             $sortHelperArray = array();
             foreach ($unsortedElements as $element) {
                 /* @var $element Application_Model_Row_Tarif */
                 $min = min(array($element->preis_intern, $element->preis_festnetz, $element->preis_tmobile, $element->preis_vodafone, $element->preis_eplus, $element->preis_o2));
                 $max = max(array($element->preis_intern, $element->preis_festnetz, $element->preis_tmobile, $element->preis_vodafone, $element->preis_eplus, $element->preis_o2));
                 if ($min != $max) {
                     $add = 0.0001;
                 } else {
                     $add = 0;
                 }
                 $sortHelperArray[] = ($element->preis_intern + $element->preis_festnetz + $element->preis_tmobile + $element->preis_vodafone + $element->preis_eplus + $element->preis_o2) / 6 + $add;
             }
             array_multisort($sortHelperArray, $unsortedElements);
             $sortedElements = $unsortedElements;
             break;
         case 'sort-anruf-down':
             $sortHelperArray = array();
             foreach ($unsortedElements as $element) {
                 /* @var $element Application_Model_Row_Tarif */
                 $min = min(array($element->preis_intern, $element->preis_festnetz, $element->preis_tmobile, $element->preis_vodafone, $element->preis_eplus, $element->preis_o2));
                 $max = max(array($element->preis_intern, $element->preis_festnetz, $element->preis_tmobile, $element->preis_vodafone, $element->preis_eplus, $element->preis_o2));
                 if ($min != $max) {
                     $add = 0.0001;
                 } else {
                     $add = 0;
                 }
                 $sortHelperArray[] = ($element->preis_intern + $element->preis_festnetz + $element->preis_tmobile + $element->preis_vodafone + $element->preis_eplus + $element->preis_o2) / 6 + $add;
             }
             array_multisort($sortHelperArray, $unsortedElements);
             $sortedElements = array_reverse($unsortedElements);
             break;
         case 'sort-sms-up':
             $sortHelperArray = array();
             foreach ($unsortedElements as $element) {
                 /* @var $element Application_Model_Row_Tarif */
                 $sortHelperArray[] = (double) $element->preis_sms;
             }
             array_multisort($sortHelperArray, $unsortedElements);
             $sortedElements = $unsortedElements;
             break;
         case 'sort-sms-down':
             $sortHelperArray = array();
             foreach ($unsortedElements as $element) {
                 /* @var $element Application_Model_Row_Tarif */
                 $sortHelperArray[] = (double) $element->preis_sms;
             }
             array_multisort($sortHelperArray, $unsortedElements);
             $sortedElements = array_reverse($unsortedElements);
             break;
         case 'sort-internet-up':
             $sortHelperArray = array();
             foreach ($unsortedElements as $element) {
                 /* @var $element Application_Model_Row_Tarif */
                 if ($element->abrechnung_internet == 'MB') {
                     $sortHelperArray[] = (double) $element->preis_internet;
                 } elseif ($element->abrechnung_internet == 'KB') {
                     $sortHelperArray[] = (double) $element->preis_internet * 1024;
                 } elseif ($element->abrechnung_internet == 'Min') {
                     $sortHelperArray[] = (double) $element->preis_internet;
                 } else {
                     $sortHelperArray[] = (double) $element->preis_internet;
                 }
             }
             array_multisort($sortHelperArray, $unsortedElements);
             $sortedElements = $unsortedElements;
             break;
         case 'sort-internet-down':
             $sortHelperArray = array();
             foreach ($unsortedElements as $element) {
                 /* @var $element Application_Model_Row_Tarif */
                 if ($element->abrechnung_internet == 'MB') {
                     $sortHelperArray[] = (double) $element->preis_internet;
                 } elseif ($element->abrechnung_internet == 'KB') {
                     $sortHelperArray[] = (double) $element->preis_internet * 1024;
                 } elseif ($element->abrechnung_internet == 'Min') {
                     $sortHelperArray[] = (double) $element->preis_internet;
                 } else {
                     $sortHelperArray[] = (double) $element->preis_internet;
                 }
             }
             array_multisort($sortHelperArray, $unsortedElements);
             $sortedElements = array_reverse($unsortedElements);
             break;
         case 'sort-netz-up':
             $sortHelperArray = array();
             foreach ($unsortedElements as $element) {
                 /* @var $element Application_Model_Row_Tarif */
                 $sortHelperArray[] = $element->netz;
             }
             array_multisort($sortHelperArray, $unsortedElements);
             $sortedElements = array_reverse($unsortedElements);
             break;
         case 'sort-netz-down':
             $sortHelperArray = array();
             foreach ($unsortedElements as $element) {
                 /* @var $element Application_Model_Row_Tarif */
                 $sortHelperArray[] = $element->netz;
             }
             array_multisort($sortHelperArray, $unsortedElements);
             $sortedElements = $unsortedElements;
             break;
         case 'sort-anbieter-up':
             $sortHelperArray = array();
             foreach ($unsortedElements as $element) {
                 /* @var $element Application_Model_Row_Tarif */
                 $sortHelperArray[] = strtolower(trim($element->anbieter));
             }
             array_multisort($sortHelperArray, $unsortedElements);
             $sortedElements = $unsortedElements;
             break;
         case 'sort-anbieter-down':
             $sortHelperArray = array();
             foreach ($unsortedElements as $element) {
                 /* @var $element Application_Model_Row_Tarif */
                 $sortHelperArray[] = strtolower(trim($element->anbieter));
             }
             array_multisort($sortHelperArray, $unsortedElements);
             $sortedElements = array_reverse($unsortedElements);
             break;
         default:
             $sortHelperArray = array();
             foreach ($unsortedElements as $element) {
                 /* @var $element Application_Model_Row_Tarif */
                 $sortHelperArray[] = $element->sterne;
             }
             array_multisort($sortHelperArray, $unsortedElements);
             $sortedElements = array_reverse($unsortedElements);
             break;
     }
     $this->view->assign('tarife', $sortedElements);
 }