public function executeGetIndexChartsTopPoliticians()
 {
     # check query string parameters and validate to avoid SQL injection
     $this->forward404Unless($this->hasRequestParameter('ramo'));
     $ramo = $this->getRequestParameter('ramo', '');
     $this->forward404Unless(in_array($ramo, array('C', 'S')));
     //$this->forward404Unless($this->hasRequestParameter('data'));
     $data = $this->getRequestParameter('data', '');
     if ($data != '') {
         $this->forward404Unless(strtotime($data));
     }
     $this->forward404Unless($this->hasRequestParameter('limit'));
     $limit = (int) $this->getRequestParameter('limit', '');
     $this->forward404Unless(is_integer($limit));
     $group_acr = $this->getRequestParameter('group', '');
     $group_id = null;
     if ($group_acr != '') {
         $c = new Criteria();
         $c->add(OppGruppoPeer::ACRONIMO, $group_acr);
         $group = OppGruppoPeer::doSelectOne($c);
         $this->forward404If(is_null($group));
         $group_id = $group->getId();
     }
     foreach ($this->regioni as $reg) {
         sfContext::getInstance()->getLogger()->info($reg);
     }
     $constituency = $this->getRequestParameter('circoscrizione', '');
     if ($constituency != '') {
         $constituency_is_valid = in_array(strtolower($constituency), $this->regioni);
         $this->forward404Unless($constituency_is_valid);
     }
     if ($data != '') {
         $items = OppPoliticianHistoryCachePeer::getIndexChartsTopPoliticians($ramo, $data, $limit, $group_id, $constituency);
     } else {
         $items = OppCaricaPeer::getIndexChartsTopPoliticiansRealTime($ramo, $data, $limit, $group_id, $constituency);
     }
     $this->_send_json_output(json_encode($items));
     return sfView::NONE;
 }