function getPagesDetailsZoom($categoryAsked = '')
 {
     $this->objects['category'] = new ArchiveTable('category');
     $this->objects['page'] = new ArchiveTable('page');
     $this->objects['file'] = new ArchiveTable('file');
     $this->objects['vars_name'] = new ArchiveTable('vars_name');
     $this->objects['vars_value'] = new ArchiveTable('vars_value');
     $nbVis = $this->getContent('nb_vis');
     //		printDebug($all); exit;
     if ($this->archive->periodType === DB_ARCHIVES_PERIOD_DAY) {
         $nbLast = 15;
     } else {
         $nbLast = 3;
     }
     $archives = $this->getLastArchives($nbLast, 1, DATE_NORMAL);
     printTime('beg 1 of pages details');
     $i = 0;
     // load "pure" pages array
     foreach ($archives as $dateToDisplay => $archive) {
         printTime('foreach' . ++$i . ' of pages details');
         $o_data = new DataModel($archive, $this->request);
         $displayInfo[] = $dateToDisplay;
         printTime('before uz' . $i . ' of pages details');
         if (STORE_PAG_ARRAY_IN_FILE) {
             $file = INCLUDE_PATH . "/datas/archives/" . $o_data->infoSerialized['idarchives'] . ".dat";
             if (!is_readable($file)) {
                 saveConfigFile($file, unserialize($o_data->infoSerialized['vis_pag_grp']), 'visPagGrp');
             }
             if (is_readable($file)) {
                 $visPagGrp = array();
                 require_once $file;
                 $array = $visPagGrp;
             }
         } else {
             $visPagGrp = array();
             if (!is_null($o_data->infoSerialized['vis_pag_grp'])) {
                 $visPagGrp = $o_data->getContent('vis_pag_grp');
             }
         }
         //var_dump($visPagGrp);exit;
         $a_all[] = $visPagGrp;
         printTime('after uz' . $i . ' of pages details');
         $headerInfo[] = array('nb_pag' => $o_data->getContent('nb_pag'), 'nb_uniq_pag' => $o_data->getContent('nb_uniq_pag'), 'nb_max_pag' => $o_data->getContent('nb_max_pag'));
         //printDebug($headerInfo);
     }
     printTime('beg 2 of pages details');
     foreach ($a_all as $j => $all) {
         if (empty($categoryAsked)) {
             $a_infosDay[$j] = $all;
             $level = 0;
         } else {
             $categoryAsked = (string) $categoryAsked;
             //print("Zoom cate '$categoryAsked' <br>");
             //print($categoryAsked[2]);
             $detailsCategory = explode(">", $categoryAsked);
             //printDebug($detailsCategory);
             $level = sizeof($detailsCategory);
             //print("level : $level <br>");
             $array = $this->getPagesDetailsZoomArrayLevel($all, $level, $detailsCategory);
             $a_infosDay[$j] = $array;
         }
     }
     printTime('mid of pages details');
     // list asked category
     if ($level != 0) {
         $categoryAsked .= '>';
     }
     //		var_dump($categoryAsked);
     //		var_dump($a_infosDay[0]);
     $return = array();
     if (is_array($a_infosDay[0])) {
         //var_dump($a_infosDay[0]);
         foreach ($a_infosDay[0] as $currentId => $info) {
             // page or file or category, but not total
             if ($currentId != 'p_pmv_sum' && $currentId != 'f_pmv_sum') {
                 $id = '';
                 $parentId = '';
                 $data = '';
                 $sum = 0;
                 $sumN1 = 0;
                 $sumN2 = 0;
                 $percentN1 = 0;
                 $percentN2 = 0;
                 $type = '';
                 $entry = 0;
                 $sumtime = 0;
                 $exit = 0;
                 $singlepage = 0;
                 $a_vars = array();
                 // category
                 if (substr($currentId, 0, 1) === 'c') {
                     $type = 'category';
                     $entry = @$info['p_pmv_sum'][ARRAY_INDEX_ENTRYPAGE];
                     $exit = @$info['p_pmv_sum'][ARRAY_INDEX_EXITPAGE];
                     $sum = @$info['p_pmv_sum'][ARRAY_INDEX_COUNT] + @$info['f_pmv_sum'][ARRAY_INDEX_COUNT];
                     $sumtime = @$info['p_pmv_sum'][ARRAY_INDEX_TIME_TOTAL];
                     $singlepage = @$info['p_pmv_sum'][ARRAY_INDEX_PAGES_VISIT_ONEPAGE];
                     $allInfoInGroup = $this->getPagesDetailsZoomArrayLevel($a_infosDay[0], 1, array($currentId));
                     //var_dump($allInfoInGroup);exit;
                     //$a_vars = $this->getVarIdToName($a_infosDay[0]['p_pmv_sum'][ARRAY_INDEX_VARS]);
                     $a_vars = $this->getVarIdToName(@$allInfoInGroup['p_pmv_sum'][ARRAY_INDEX_VARS]);
                     //var_dump($a_vars);
                     if (isset($a_infosDay[1][$currentId]['p_pmv_sum'][ARRAY_INDEX_COUNT])) {
                         $sumN1 = $a_infosDay[1][$currentId]['p_pmv_sum'][ARRAY_INDEX_COUNT] + @$a_infosDay[1][$currentId]['f_pmv_sum'][ARRAY_INDEX_COUNT];
                     }
                     $percentN1 = $this->getDiffPercent($sum, $sumN1);
                     if (isset($a_infosDay[2][$currentId]['p_pmv_sum'][ARRAY_INDEX_COUNT])) {
                         $sumN2 = $a_infosDay[2][$currentId]['p_pmv_sum'][ARRAY_INDEX_COUNT] + @$a_infosDay[2][$currentId]['f_pmv_sum'][ARRAY_INDEX_COUNT];
                     }
                     $percentN2 = $this->getDiffPercent($sum, $sumN2);
                     $id = $categoryAsked . $currentId;
                     if ($level != 0) {
                         $parentId = substr($categoryAsked, 0, strlen($categoryAsked) - 1);
                     } else {
                         $parentId = "root";
                     }
                     $data = @$info[ARRAY_INDEX_IDCATEGORY];
                     //if($data != -1)
                     //	$toLoad['category'][] = $data;
                 } else {
                     if (substr($currentId, 0, 1) === 'p') {
                         //print("pages = ".$currentId);
                         $type = 'page';
                         $id = $currentId;
                         //printDebug($info);
                         if (!isset($info[ARRAY_INDEX_COUNT])) {
                             $info[ARRAY_INDEX_COUNT] = 0;
                         }
                         $sum = @$info[ARRAY_INDEX_COUNT];
                         $entry = @$info[ARRAY_INDEX_ENTRYPAGE];
                         $exit = @$info[ARRAY_INDEX_EXITPAGE];
                         $sumtime = @$info[ARRAY_INDEX_TIME_TOTAL];
                         $singlepage = @$info[ARRAY_INDEX_PAGES_VISIT_ONEPAGE];
                         if (isset($info[ARRAY_INDEX_VARS])) {
                             $a_vars = $this->getVarIdToName($info[ARRAY_INDEX_VARS]);
                         }
                         // Period-1
                         if (isset($a_infosDay[1][$currentId][ARRAY_INDEX_COUNT])) {
                             $sumN1 = $a_infosDay[1][$currentId][ARRAY_INDEX_COUNT];
                         }
                         $percentN1 = $this->getDiffPercent($sum, $sumN1);
                         // Period -2
                         if (isset($a_infosDay[2][$currentId][ARRAY_INDEX_COUNT])) {
                             $sumN2 = $a_infosDay[2][$currentId][ARRAY_INDEX_COUNT];
                         }
                         $percentN2 = $this->getDiffPercent($sum, $sumN2);
                         // Name
                         if (!isset($info[ARRAY_INDEX_IDPAGE])) {
                             //print("Problem, please report this error message :");
                             //var_dump($info);
                             $data = -1;
                         } else {
                             $data = $info[ARRAY_INDEX_IDPAGE];
                         }
                         //print("$data : ".$sumtime . "<br>");
                     } else {
                         if (substr($currentId, 0, 1) === 'f') {
                             $type = 'file';
                             $id = $currentId;
                             $sum = $info[ARRAY_INDEX_COUNT];
                             // Period-1
                             //print("idfile=$currentId<br>");
                             if (isset($a_infosDay[1][$currentId][ARRAY_INDEX_COUNT])) {
                                 $sumN1 = $a_infosDay[1][$currentId][ARRAY_INDEX_COUNT];
                             }
                             $percentN1 = $this->getDiffPercent($sum, $sumN1);
                             // Period -2
                             if (isset($a_infosDay[2][$currentId][ARRAY_INDEX_COUNT])) {
                                 $sumN2 = $a_infosDay[2][$currentId][ARRAY_INDEX_COUNT];
                             }
                             $percentN2 = $this->getDiffPercent($sum, $sumN2);
                             // Name
                             $data = $info[ARRAY_INDEX_IDPAGE];
                         } else {
                             // this is related to the ARRAY_INDEX_IDCATEGORY
                             //print("Whats that? Report it to phpmyvisites forums: ");
                             //print($currentId);
                         }
                     }
                 }
                 if (!empty($data) && !empty($type) && $sum > 0) {
                     $return[] = array('type' => $type, 'sum' => $sum, 'sumn1' => $sumN1, 'sumn2' => $sumN2, 'percentn1' => $percentN1, 'percentn2' => $percentN2, 'data' => $data, 'id' => $id, 'parentid' => $parentId, 'entry' => $entry, 'exit' => $exit, 'sumtime' => $sumtime, 'avgtime' => round($sumtime / $sum), 'exitrate' => 100 * $exit / $sum, 'singlepage' => $singlepage, 'vars' => $a_vars);
                 }
             }
         }
         printTime('end of pages details');
         $GLOBALS['sorting_index'] = 'sum';
         uasort($return, "sortingDataInfo");
         return array($displayInfo, $return, $headerInfo);
     }
     return false;
 }