function getGrid($name, $data, $pars)
 {
     switch ($pars['mode']) {
         case "dynamic":
             if (isset($pars['name'])) {
                 $widgetName = $pars['name'];
             } else {
                 $widgetName = $name;
             }
             $n_gruppi = $pars['n_groups'];
             $n_servizi = $pars['n_services'];
             $n_servizi_tab = 5;
             $n_tab = ceil($n_servizi / $n_servizi_tab);
             $content .= "<script>\n";
             $content .= panel::getFieldArray($data);
             $content .= "</script>\n";
             $content .= "<table height=0 cellspacing=0 cellpadding=0 style=\"height: 0px; padding: 2px; border: 1px solid silver;\"  id=\"panel\">\n";
             for ($j = 0; $j < $n_tab; $j++) {
                 $i_inizio = $j * $n_servizi_tab;
                 $i_fine = ($j + 1) * $n_servizi_tab - 1;
                 if ($i_fine > $n_servizi - 1) {
                     $i_fine = $n_servizi - 1;
                 }
                 /*
                 				1� riga: Elenco Servizi
                 */
                 $content .= "<tr>\n";
                 //
                 $content .= "<td id=\"arrow_{$j}\" width=\"100px;\"><a href=# onClick=\"panelToggle({$j});\"><img border=0 src=\"img/down.jpg\"></a></td>";
                 for ($i = $i_inizio; $i <= $i_fine; $i++) {
                     $content .= "<td style=\"text-align:center; background-color: #F7FFBB; padding:3px; font-size: 11px; width: 120px; cursor: pointer;\" onClick=\"panelToggle({$j});\">";
                     $content .= $data[$i]['service_name'];
                     $content .= "</td>\n";
                 }
                 if ($j < $n_tab - 1) {
                     $content .= "</tr>\n";
                 } else {
                     $n_empty_items = ($j + 1) * $n_servizi_tab - $i_fine - 1;
                     for ($i = 0; $i < $n_empty_items; $i++) {
                         $content .= "<td style=\"text-align:center; background-color: #F7FFBB; padding:3px; font-size: 11px; width: 120px;\"></td>\n";
                     }
                     $content .= "</tr>\n";
                 }
                 /*
                 2� riga: Data Filtering
                 */
                 $span = $n_servizi_tab + 1;
                 $content .= "\n\n\n<tr id=\"row_{$j}\"><td colspan=\"{$span}\">\n";
                 $content .= "<div id=\"panel_{$j}\" class=\"panel\">";
                 $content .= "<table  width=\"100%\"cellspacing=0 cellpadding=0>\n";
                 $content .= "<tr>\n";
                 $content .= "<td style=\"text-align:center; background-color: #FFDDBB; padding: 3px; width: 80px; font-size: 11px;\">";
                 $content .= "Data Filtering</td>\n";
                 for ($i = $i_inizio; $i <= $i_fine; $i++) {
                     $content .= "<td style=\"text-align:center; background-color: #FFDDBB; width: 120px; font-size: 11px;\">";
                     $content .= "<input type='checkbox' name='df_" . $data[$i]['service_id'] . "' value='*' onClick=\"checkDF(" . $data[$i]['service_id'] . ")\"";
                     if ($data[$i]['data_filtering'] == '*') {
                         $content .= " checked=\"true\"";
                     }
                     $content .= "/>";
                     $content .= "<br>\n";
                     $content .= panel::getTables("table_df_" . $data[$i]['service_id'], $data[tables], $data[$i]['service_id'], $data[$i]['table_entry'], $data[$i]['data_filtering']) . "<br>";
                     $content .= panel::getFields("key_df_" . $data[$i]['service_id'], $data[$i]['service_id'], $data[$i]['table_entry'], $data[$i]['key_entry'], $data[fields], $data[$i]['data_filtering']);
                     $content .= "</td>\n";
                 }
                 if ($j < $n_tab - 1) {
                     $content .= "</tr>\n";
                 } else {
                     $n_empty_items = ($j + 1) * $n_servizi_tab - $i_fine - 1;
                     for ($i = 0; $i < $n_empty_items; $i++) {
                         $content .= "<td style=\"text-align:center; background-color: #FFDDBB; width: 120px; font-size: 11px;\"></td>\n";
                     }
                     $content .= "</tr>\n";
                 }
                 /*
                 3� riga: Checkboxes
                 */
                 $content .= "<tr>\n";
                 // 3� riga: Data Filtering Fields
                 $content .= "<td style=\"background-color: #FFDDBB;\" colspan=1></td>";
                 $content .= "<td style=\"text-align:center; background-color: #FFDDBB; padding: 3px; width: 80px; font-size: 11px; height: 50px;\" colspan=\"{$span}\">";
                 $content .= "</td>";
                 $content .= "</tr>\n";
                 for ($k = 0; $k < $n_gruppi; $k++) {
                     $content .= "<tr>\n";
                     $content .= "<td style=\"text-align:center; background-color: #EEEEEE; width: 100px; font-size: 11px;\">";
                     $content .= "<a href=\"edit-group.php?id=" . $data[$k * $n_servizi]['group_id'] . "\">" . $data[$k * $n_servizi]['group_name'] . "</a>";
                     $content .= "</td>\n";
                     for ($i = 0; $i < $n_servizi_tab; $i++) {
                         //$index = $k*$n_servizi + $j*($n_servizi-$n_servizi_tab) + $i;
                         //$index = $k*($n_servizi-$n_servizi_tab) + $j*($n_servizi-1) + $i;
                         $index = $i + $k * $n_servizi + $j * $n_servizi_tab;
                         if ($j == $n_tab - 1 and $i >= $n_servizi_tab - $n_empty_items) {
                             $content .= "<td style=\"text-align:center; background-color: white; width: 70px;\"></td>\n";
                         } else {
                             $checkid = $data[$index]["group_id"] . "|" . $data[$index]["service_id"];
                             $content .= "<td style=\"text-align:center; background-color: white; width: 70px;\">";
                             $content .= "<input type='checkbox' name='cb_{$checkid}' value='*'";
                             if ($data[$index]['checked']) {
                                 $content .= " checked";
                             }
                             $content .= "/>";
                             $content .= "</td>\n";
                         }
                     }
                     $content .= "</tr>\n";
                 }
                 $content .= "</table></div></td></tr>\n\n\n";
             }
             $content .= "</table>\n";
             return $content;
             break;
         default:
             return panel::getGridStatic($name, $data, $pars);
             break;
     }
 }