private function udpdateMenuType($AdvancedTopMenuClass, $id_lang)
 {
     switch ($AdvancedTopMenuClass->type) {
         case 3:
             if (Tools::getValue('include_subs')) {
                 if ($AdvancedTopMenuClass->id_category) {
                     $firstChildCategories = array();
                     $firstChildCategories = $this->getSubCategoriesId($AdvancedTopMenuClass->id_category);
                     $lastChildCategories = array();
                     $columnWithNoDepth = false;
                     $columnWrapWithNoDepth = false;
                     if (sizeof($firstChildCategories)) {
                         foreach ($firstChildCategories as $firstChildCategorie) {
                             $lastChildCategories = $this->getSubCategoriesId($firstChildCategorie['id_category']);
                             if (sizeof($lastChildCategories)) {
                                 $id_column = false;
                                 if (Tools::getValue('id_menu', false)) {
                                     $id_column = AdvancedTopMenuColumnClass::getIdColumnCategoryDepend($AdvancedTopMenuClass->id, $firstChildCategorie['id_category']);
                                     if (!$id_column && !Tools::getValue('rebuild')) {
                                         continue;
                                     }
                                 }
                                 $AdvancedTopMenuColumnClass = new AdvancedTopMenuColumnClass($id_column);
                                 if (!$id_column) {
                                     $AdvancedTopMenuColumnWrapClass = new AdvancedTopMenuColumnWrapClass();
                                     $AdvancedTopMenuColumnWrapClass->active = 1;
                                     $AdvancedTopMenuColumnWrapClass->id_menu = $AdvancedTopMenuClass->id;
                                     $AdvancedTopMenuColumnWrapClass->id_menu_depend = $AdvancedTopMenuClass->id;
                                     $AdvancedTopMenuColumnWrapClass->save();
                                     $AdvancedTopMenuColumnWrapClass->internal_name = $this->l('column') . '-' . $AdvancedTopMenuColumnWrapClass->id_menu . '-' . $AdvancedTopMenuColumnWrapClass->id;
                                     if (!$AdvancedTopMenuColumnWrapClass->save()) {
                                         $this->errors[] = Tools::displayError('An error occured during save column');
                                     }
                                     $AdvancedTopMenuColumnClass->id_wrap = $AdvancedTopMenuColumnWrapClass->id;
                                 }
                                 $AdvancedTopMenuColumnClass->active = $id_column ? $AdvancedTopMenuColumnClass->active : 1;
                                 $AdvancedTopMenuColumnClass->id_menu = $AdvancedTopMenuClass->id;
                                 $AdvancedTopMenuColumnClass->id_menu_depend = $AdvancedTopMenuClass->id;
                                 $AdvancedTopMenuColumnClass->type = $AdvancedTopMenuClass->type;
                                 $AdvancedTopMenuColumnClass->id_category = $firstChildCategorie['id_category'];
                                 if ($AdvancedTopMenuColumnClass->save()) {
                                     foreach ($lastChildCategories as $lastChildCategory) {
                                         $id_element = false;
                                         if (Tools::getValue('id_menu', false)) {
                                             $id_element = AdvancedTopMenuElementsClass::getIdElementCategoryDepend($id_column, $lastChildCategory['id_category']);
                                             if (!$id_element && !Tools::getValue('rebuild')) {
                                                 continue;
                                             }
                                         }
                                         $AdvancedTopMenuElementsClass = new AdvancedTopMenuElementsClass($id_element);
                                         $AdvancedTopMenuElementsClass->active = $id_element ? $AdvancedTopMenuElementsClass->active : 1;
                                         $AdvancedTopMenuElementsClass->type = $AdvancedTopMenuClass->type;
                                         $AdvancedTopMenuElementsClass->id_category = $lastChildCategory['id_category'];
                                         $AdvancedTopMenuElementsClass->id_column = $AdvancedTopMenuColumnClass->id;
                                         $AdvancedTopMenuElementsClass->id_column_depend = $AdvancedTopMenuColumnClass->id;
                                         if (!$AdvancedTopMenuElementsClass->save()) {
                                             $this->errors[] = Tools::displayError('An error occured during save children category');
                                         }
                                     }
                                 } else {
                                     $this->errors[] = Tools::displayError('An error occured during save children category');
                                 }
                             } else {
                                 $id_column = false;
                                 if (Tools::getValue('id_menu', false)) {
                                     $id_column = AdvancedTopMenuColumnClass::getIdColumnCategoryDependEmptyColumn($AdvancedTopMenuClass->id, $firstChildCategorie['id_category']);
                                     if (!$id_column && !Tools::getValue('rebuild')) {
                                         continue;
                                     }
                                     if ($id_column) {
                                         $columnWithNoDepth = $id_column;
                                     }
                                 }
                                 $AdvancedTopMenuColumnClass = new AdvancedTopMenuColumnClass($columnWithNoDepth);
                                 if (!$columnWithNoDepth) {
                                     $AdvancedTopMenuColumnWrapClass = new AdvancedTopMenuColumnWrapClass($columnWrapWithNoDepth);
                                     $AdvancedTopMenuColumnWrapClass->active = 1;
                                     $AdvancedTopMenuColumnWrapClass->id_menu = $AdvancedTopMenuClass->id;
                                     $AdvancedTopMenuColumnWrapClass->id_menu_depend = $AdvancedTopMenuClass->id;
                                     $AdvancedTopMenuColumnWrapClass->save();
                                     $AdvancedTopMenuColumnWrapClass->internal_name = $this->l('column') . $AdvancedTopMenuColumnWrapClass->id_menu . '-' . $AdvancedTopMenuColumnWrapClass->id;
                                     $AdvancedTopMenuColumnWrapClass->save();
                                     $AdvancedTopMenuColumnClass->id_wrap = $AdvancedTopMenuColumnWrapClass->id;
                                 }
                                 $AdvancedTopMenuColumnClass->active = $columnWithNoDepth ? $AdvancedTopMenuColumnClass->active : 1;
                                 $AdvancedTopMenuColumnClass->id_menu = $AdvancedTopMenuClass->id;
                                 $AdvancedTopMenuColumnClass->id_menu_depend = $AdvancedTopMenuClass->id;
                                 $AdvancedTopMenuColumnClass->type = $AdvancedTopMenuClass->type;
                                 $AdvancedTopMenuColumnClass->id_category = $firstChildCategorie['id_category'];
                                 //$AdvancedTopMenuColumnClass->type = 2;
                                 if ($AdvancedTopMenuColumnClass->save()) {
                                     if (!$columnWrapWithNoDepth) {
                                         $columnWrapWithNoDepth = $AdvancedTopMenuColumnClass->id_wrap;
                                     }
                                 } else {
                                     $this->errors[] = Tools::displayError('An error occured during save children category');
                                 }
                             }
                         }
                     }
                 }
             }
             break;
         case 4:
             if (Tools::getValue('include_subs_manu')) {
                 $manufacturersId = $this->getManufacturersId();
                 $columnWithNoDepth = false;
                 if (sizeof($manufacturersId)) {
                     foreach ($manufacturersId as $manufacturerId) {
                         $id_column = false;
                         if (Tools::getValue('id_menu', false)) {
                             $id_column = AdvancedTopMenuColumnClass::getIdColumnManufacturerDependEmptyColumn($AdvancedTopMenuClass->id, $manufacturerId['id_manufacturer']);
                             if (!$id_column && !Tools::getValue('rebuild')) {
                                 continue;
                             }
                             if ($id_column) {
                                 $columnWithNoDepth = $id_column;
                             }
                         }
                         $AdvancedTopMenuColumnClass = new AdvancedTopMenuColumnClass($columnWithNoDepth);
                         if (!$columnWithNoDepth) {
                             $AdvancedTopMenuColumnWrapClass = new AdvancedTopMenuColumnWrapClass($columnWithNoDepth);
                             $AdvancedTopMenuColumnWrapClass->active = 1;
                             $AdvancedTopMenuColumnWrapClass->id_menu = $AdvancedTopMenuClass->id;
                             $AdvancedTopMenuColumnWrapClass->id_menu_depend = $AdvancedTopMenuClass->id;
                             $AdvancedTopMenuColumnWrapClass->save();
                             $AdvancedTopMenuColumnWrapClass->internal_name = $this->l('column') . $AdvancedTopMenuColumnWrapClass->id_menu . '-' . $AdvancedTopMenuColumnWrapClass->id;
                             $AdvancedTopMenuColumnWrapClass->save();
                             $AdvancedTopMenuColumnClass->id_wrap = $AdvancedTopMenuColumnWrapClass->id;
                         }
                         $AdvancedTopMenuColumnClass->active = $columnWithNoDepth ? $AdvancedTopMenuColumnClass->active : 1;
                         $AdvancedTopMenuColumnClass->id_menu = $AdvancedTopMenuClass->id;
                         $AdvancedTopMenuColumnClass->id_menu_depend = $AdvancedTopMenuClass->id;
                         $AdvancedTopMenuColumnClass->type = 2;
                         if ($AdvancedTopMenuColumnClass->save()) {
                             if (!$columnWithNoDepth) {
                                 $columnWithNoDepth = $AdvancedTopMenuColumnClass->id;
                             }
                             $id_element = false;
                             if (Tools::getValue('id_menu', false)) {
                                 $id_element = AdvancedTopMenuElementsClass::getIdElementManufacturerDepend($columnWithNoDepth, $manufacturerId['id_manufacturer']);
                                 if (!$id_element && !Tools::getValue('rebuild')) {
                                     continue;
                                 }
                             }
                             $AdvancedTopMenuElementsClass = new AdvancedTopMenuElementsClass($id_element);
                             $AdvancedTopMenuElementsClass->active = $id_element ? $AdvancedTopMenuElementsClass->active : 1;
                             $AdvancedTopMenuElementsClass->type = $AdvancedTopMenuClass->type;
                             $AdvancedTopMenuElementsClass->id_manufacturer = $manufacturerId['id_manufacturer'];
                             $AdvancedTopMenuElementsClass->id_column = $AdvancedTopMenuColumnClass->id;
                             $AdvancedTopMenuElementsClass->id_column_depend = $AdvancedTopMenuColumnClass->id;
                             if (!$AdvancedTopMenuElementsClass->save()) {
                                 $this->errors[] = Tools::displayError('An error occured during save manufacturer');
                             }
                         } else {
                             $this->errors[] = Tools::displayError('An error occured during save manufacturer');
                         }
                     }
                 }
             }
             break;
         case 5:
             if (Tools::getValue('include_subs_suppl')) {
                 $suppliersId = $this->getSuppliersId();
                 $columnWithNoDepth = false;
                 if (sizeof($suppliersId)) {
                     foreach ($suppliersId as $supplierId) {
                         $id_column = false;
                         if (Tools::getValue('id_menu', false)) {
                             $id_column = AdvancedTopMenuColumnClass::getIdColumnSupplierDependEmptyColumn($AdvancedTopMenuClass->id, $supplierId['id_supplier']);
                             if (!$id_column && !Tools::getValue('rebuild')) {
                                 continue;
                             }
                             if ($id_column) {
                                 $columnWithNoDepth = $id_column;
                             }
                         }
                         $AdvancedTopMenuColumnClass = new AdvancedTopMenuColumnClass($columnWithNoDepth);
                         if (!$columnWithNoDepth) {
                             $AdvancedTopMenuColumnWrapClass = new AdvancedTopMenuColumnWrapClass($columnWithNoDepth);
                             $AdvancedTopMenuColumnWrapClass->active = 1;
                             $AdvancedTopMenuColumnWrapClass->id_menu = $AdvancedTopMenuClass->id;
                             $AdvancedTopMenuColumnWrapClass->id_menu_depend = $AdvancedTopMenuClass->id;
                             $AdvancedTopMenuColumnWrapClass->save();
                             $AdvancedTopMenuColumnWrapClass->internal_name = $this->l('column') . $AdvancedTopMenuColumnWrapClass->id_menu . '-' . $AdvancedTopMenuColumnWrapClass->id;
                             $AdvancedTopMenuColumnWrapClass->save();
                             $AdvancedTopMenuColumnClass->id_wrap = $AdvancedTopMenuColumnWrapClass->id;
                         }
                         $AdvancedTopMenuColumnClass->active = $columnWithNoDepth ? $AdvancedTopMenuColumnClass->active : 1;
                         $AdvancedTopMenuColumnClass->id_menu = $AdvancedTopMenuClass->id;
                         $AdvancedTopMenuColumnClass->id_menu_depend = $AdvancedTopMenuClass->id;
                         $AdvancedTopMenuColumnClass->type = 2;
                         if ($AdvancedTopMenuColumnClass->save()) {
                             if (!$columnWithNoDepth) {
                                 $columnWithNoDepth = $AdvancedTopMenuColumnClass->id;
                             }
                             $id_element = false;
                             if (Tools::getValue('id_menu', false)) {
                                 $id_element = AdvancedTopMenuElementsClass::getIdElementSupplierDepend($columnWithNoDepth, $supplierId['id_supplier']);
                                 if (!$id_element && !Tools::getValue('rebuild')) {
                                     continue;
                                 }
                             }
                             $AdvancedTopMenuElementsClass = new AdvancedTopMenuElementsClass($id_element);
                             $AdvancedTopMenuElementsClass->active = $id_element ? $AdvancedTopMenuElementsClass->active : 1;
                             $AdvancedTopMenuElementsClass->type = $AdvancedTopMenuClass->type;
                             $AdvancedTopMenuElementsClass->id_supplier = $supplierId['id_supplier'];
                             $AdvancedTopMenuElementsClass->id_column = $AdvancedTopMenuColumnClass->id;
                             $AdvancedTopMenuElementsClass->id_column_depend = $AdvancedTopMenuColumnClass->id;
                             if (!$AdvancedTopMenuElementsClass->save()) {
                                 $this->errors[] = Tools::displayError('An error occured during save supplier');
                             }
                         } else {
                             $this->errors[] = Tools::displayError('An error occured during save supplier');
                         }
                     }
                 }
             }
             break;
     }
 }