/**
  * IS: Parameter id terdeklarasi
  * FS: Mengirimkan ke viewer: poi_id, form, gkey, header_image
  * Desc: Mengatur aksi yang dilakukan untuk halaman edit
  */
 public function editAction()
 {
     $culture_id = $this->_getParam('id');
     $language_id = $this->_getParam('lang');
     $table_destination = new Model_DbTable_Destination();
     $table_destination_description = new Model_DbTable_DestinationDescription();
     $table_category = new Model_DbTable_Category();
     $table_categorytopoi = new Model_DbTable_CategoryToPoi();
     $table_areatopoi = new Model_DbTable_AreaToPoi();
     $table_relatedpoi = new Model_DbTable_RelatedPoi();
     $this->table_cultureVideo = new Model_DbTable_CultureVideo();
     $form = new Admin_Form_PoiForm();
     $culture = null;
     $table_file = new Model_DbTable_FileAttachments();
     $table_gallery = new Model_DbTable_Image();
     $table_related_article_poi = new Model_DbTable_RelatedArticlePoi();
     // get realated article data
     // untuk menampilkan related link pada destinasi yang bersangkutan
     $ralated_poi = $table_related_article_poi->getByPoiId($culture_id, $language_id);
     $cultureVideos = $this->table_cultureVideo->findByCultureId($culture_id);
     $this->view->ralated_poi = $ralated_poi;
     $this->view->poi_id = $culture_id;
     $this->view->ralated_news = $ralated_poi;
     $this->view->cultureVideos = $cultureVideos;
     $this->view->files = $table_file->getByPoiId($culture_id);
     $this->view->images = $table_gallery->getByPoiId($culture_id);
     /* Update Process */
     if ($this->getRequest()->isPost()) {
         if ($form->isValid($_POST)) {
             $status = Model_DbTable_Destination::DRAFT;
             if (isset($_POST['Submit'])) {
                 if ($this->_userInfo->canApprove) {
                     $status = Model_DbTable_Destination::PUBLISH;
                 } else {
                     $status = Model_DbTable_Destination::PENDING;
                 }
             }
             $culture = array('pointX' => $_POST['pointx'], 'pointY' => $_POST['pointy'], 'main_category' => $_POST['MainCategory'], 'featured' => $_POST['Featured'], 'status' => $status);
             if ($form->header_image->isUploaded()) {
                 $file = pathinfo($form->header_image->getFileName());
                 $form->header_image->addFilter('Rename', UPLOAD_FOLDER . 'culture/' . $file['filename'] . '_' . time() . '.' . $file['extension']);
                 if ($form->header_image->receive()) {
                     $culture['image'] = $form->header_image->getValue();
                 }
             }
             $table_destination->updatePoi($culture, $culture_id);
             $culture_description = array('poi_id' => $culture_id, 'name' => $_POST['Name'], 'description' => $_POST['Description'], 'updated_by' => $this->_userInfo->id, 'updated_at' => Date('Y-m-d H:i:s'));
             $table_destination_description->UpdatePoiDescription($culture_description, $culture_id, 1);
             /* preparing data for categorytopoi table
              * Get category count and data */
             $category_count = $this->_getParam('MaxCategory');
             $category_stack = array();
             for ($i = 0; $i <= $category_count; $i++) {
                 if (!empty($_POST['catValue' . $i])) {
                     array_push($category_stack, $_POST['catValue' . $i]);
                 }
             }
             /* inserting data for categorytopoi table */
             $category_list = $table_categorytopoi->getCategoryIdByPoiId($culture_id);
             /* convert to non associative array */
             $saved_category = array();
             foreach ($category_list as $temp_cat) {
                 array_push($saved_category, $temp_cat['category_id']);
             }
             /* processing the data
             
                       if the posted data not found on saved category id list then insert the data */
             foreach ($category_stack as $category_new) {
                 if (!in_array($category_new, $saved_category)) {
                     $category_poi = array('category_id' => $category_new, 'poi_id' => $culture_id);
                     $table_categorytopoi->insertCategoryToPoi($category_poi);
                 }
             }
             /* complement check, if the data on saved category list not found on posted category
             
                       then delete that data on the database */
             foreach ($saved_category as $old_category) {
                 if (!in_array($old_category, $category_stack)) {
                     $table_categorytopoi->deleteCategoryToPoi($old_category, $culture_id);
                 }
             }
             /* We do it the same way for processing the area data
              * First, we obtain the data from the database and then convert it
              * to a non assoc. array */
             $areatopoi_list = $table_areatopoi->getPoiAreaId($culture_id);
             $saved_area = array();
             foreach ($areatopoi_list as $temp_area) {
                 array_push($saved_area, $temp_area['area_id']);
             }
             /* Obtain the list of the new area data posted from the form */
             $area_count = $this->_getParam('MaxArea');
             $area_stack = array();
             for ($i = 0; $i <= $area_count; $i++) {
                 if (!empty($_POST['areaValue' . $i])) {
                     array_push($area_stack, $_POST['areaValue' . $i]);
                 }
             }
             /* Compare the new area list with the old area list
              *  if its not in the old area list then insert to the database */
             foreach ($area_stack as $new_area) {
                 if (!in_array($new_area, $saved_area)) {
                     $area_poi = array('area_id' => $new_area, 'poi_id' => $culture_id);
                     $table_areatopoi->insertAreaToPoi($area_poi);
                 }
             }
             /* Now we do the complement action
              * compare the old list with the new list,
              * delete if not found on the new list */
             foreach ($saved_area as $old_area) {
                 if (!in_array($old_area, $area_stack)) {
                     $table_areatopoi->deleteAreaToPoi($old_area, $culture_id);
                 }
             }
             /* related poi data processing */
             $relpoi_stack = array();
             $relCtr = $_POST['relPoi_counter'];
             for ($i = 0; $i <= $relCtr; $i++) {
                 if (!empty($_POST['relpoi' . $i])) {
                     array_push($relpoi_stack, $_POST['relpoi' . $i]);
                 }
             }
             $saved_relpoi = $table_relatedpoi->getAllRelatedByPoiIdLangId($culture_id, $language_id);
             $old_relpoi = array();
             if (sizeof($saved_relpoi) > 0) {
                 foreach ($saved_relpoi as $value) {
                     array_push($old_relpoi, $value['related_poi']);
                 }
             }
             foreach ($relpoi_stack as $value) {
                 if (!in_array($value, $old_relpoi)) {
                     $data = array('poi_id' => $culture_id, 'related_poi' => $value);
                     $table_relatedpoi->insertRelatedPoi($data);
                 }
             }
             foreach ($old_relpoi as $value) {
                 if (!in_array($value, $relpoi_stack)) {
                     $table_relatedpoi->deleteSpecificRelatedPoi($culture_id, $value);
                 }
             }
             ////$this->_helper->layout()->disableLayout();
             ////$this->_helper->viewRenderer->setNoRender(true);
             /* update related article */
             // this part add related
             if ($_POST['counterRelated'] > 0) {
                 $counter = $_POST['counterRelated'];
                 for ($i = 1; $i <= $counter; $i++) {
                     //cek existing data ke database
                     // if jika data link dan label yang dikirim dari viwer
                     // blm ada di database, maka akan di simpan
                     if (isset($_POST['label' . $i])) {
                         $cek = $table_related_article_poi->cek_existing($_POST['label' . $i], $_POST['link' . $i]);
                         if (!$cek or $cek == false) {
                             $data = array('poi_id' => $culture_id, 'label' => $_POST['label' . $i], 'link' => $_POST['link' . $i], 'language_id' => $language_id);
                             $table_related_article_poi->insertRelated($data);
                         }
                     }
                 }
             }
             $this->handleInsertVideoLink($culture_id);
             $upload_dir = UPLOAD_FOLDER . 'documents/';
             $upload_image_dir = UPLOAD_FOLDER . 'culture/';
             $upload = new Zend_File_Transfer_Adapter_Http();
             $files = $upload->getFileInfo();
             $i = 0;
             $j = 0;
             echo "<pre>" . print_r($files, true) . "</pre>";
             foreach ($files as $file => $info) {
                 $info['destination'] = $upload_image_dir;
                 if (strstr($file, 'files')) {
                     $file = array('poi_id' => $culture_id, 'title' => $_POST['titles'][$i], 'name' => $info['name'], 'size' => $info['size']);
                     $table_file->insert($file);
                     $upload->setDestination($upload_dir);
                     $i++;
                 } else {
                     if (strstr($file, 'images')) {
                         $image = array('poi_id' => $culture_id, 'source' => $info['name'], 'name' => $_POST['imageTitles'][$j]);
                         $table_gallery->insert($image);
                         $upload->setDestination($upload_image_dir);
                         $j++;
                     }
                 }
                 $upload->receive($info['name']);
             }
             if (isset($_POST['existingFiles'])) {
                 $existingFiles = $_POST['existingFiles'];
                 foreach ($existingFiles as $id => $file) {
                     $data = array('title' => $file['title']);
                     $table_file->update($data, "id = {$id}");
                 }
             }
             if (isset($_POST['existingImages'])) {
                 $existingImages = $_POST['existingImages'];
                 foreach ($existingImages as $id => $image) {
                     $data = array('name' => $image['name']);
                     $table_gallery->update($data, "gallery_id = {$id}");
                 }
             }
             // part untuk menghapus data dari database
             // bagian ini akan dijalankan apabila ada triger hapus
             // delete dari viewer
             if ($_POST['counterDel'] > 0) {
                 $counterDel = $_POST['counterDel'];
                 for ($i = 1; $i <= $counterDel; $i++) {
                     //cek existing label and link in database
                     // if found, data will be removed
                     if (isset($_POST['labeldel' . $i])) {
                         $cek = $table_related_article_poi->cek_existing_forDel($_POST['labeldel' . $i], $_POST['linkdel' . $i]);
                     }
                 }
             }
             //Send a success message via flashmessenger
             $this->loggingaction('destination', 'edit', $culture_id, $language_id);
             $this->_flash->addMessage('Sunting Kebudayaan Berhasil!');
             //redirect to the destination list page
             $this->_redirect($this->view->rootUrl('/admin/culture/'));
         }
     }
     /* load data from the database preparing for view process */
     if (!$this->_userInfo->canApprove) {
         $form->submit->setLabel('Sunting Untuk Pratinjau');
         $form->draft->setLabel('Jadikan Sebagai Draft');
     } else {
         $form->submit->setLabel('Sunting');
     }
     if ($language_id == 1) {
         $culture = $table_destination->getAllByIdLang($culture_id, $language_id, false);
         $parent_category = $table_category->getparentCategoryId($culture['main_category']);
         $parent_area = $table_areatopoi->getPoiAreaId($culture_id);
         $related_poi = $table_relatedpoi->getAllRelatedByPoiIdLangId($culture_id, $language_id);
     } else {
         $indo = $table_destination_description->checkForIndo($culture_id);
         if ($indo) {
             $culture = $table_destination->getAllByIdLang($culture_id, $language_id);
         }
     }
     $checkSpecial = $table_destination->checkDestSpecialById($culture_id);
     $this->view->destSpecial = $checkSpecial;
     //    $tesheader               = $table_destination_description->getheaderimagebyid2($culture_id, $language_id);
     if ($culture != null) {
         $form->name->setValue($this->view->HtmlDecode($culture['name']));
         $form->description->setValue($this->view->HtmlDecode($culture['description']));
         $form->Poi_x->setValue($culture['pointX']);
         $form->Poi_y->setValue($culture['pointY']);
         $form->featured->setChecked($culture['featured']);
         $this->view->header_image = $table_destination->find($culture_id)->current()->image;
     }
     /* check if this is a special destination, if it is, then checkbox value to true */
     //    if ($table_destination->checkSpecialDestination($poi_id)) {
     //      $form->SpecialDestination->setChecked(true);
     //      $this->view->state_special = TRUE;
     //    } else {
     //      $form->SpecialDestination->setChecked(false);
     //      $this->view->state_special = FALSE;
     //    }
     /* send data image filename to the view */
     //    /* set another value to the form element */
     $area_amount = $table_areatopoi->countAreaByPoiId($culture_id);
     $category_amount = $table_categorytopoi->countCategoryByPoiId($culture_id);
     $main_category = $table_destination->getMainCategoryById($culture_id);
     $form->Category_counter->setValue($category_amount);
     $form->Count_category->setValue($category_amount);
     $form->Main_category->setValue($main_category['main_category']);
     $form->Area_counter->setValue($area_amount);
     $form->Count_area->setValue($area_amount);
     /* send form to view class */
     $this->view->userCanApprove = $this->_userInfo->canApprove;
     $this->view->poi_id = $culture_id;
     $this->view->form = $form;
     $this->view->language_id = $language_id;
 }
         $area_child->removeDecorator('Label');
         if (!empty($functions)) {
             $area_child->setAttrib('onchange', $functions);
         }
         $this->view->selectbox = $area_child;
     }
 }
 /**
  * IS:
  * FS:
  * Desc:
  */
 public function destinationdataAction()
 {
     $type = $this->_getParam('type');
     $poi_id = $this->_getParam('poiid');
     $this->view->type = $type;
     /* preparing table instance */
     $table_categorytopoi = new Model_DbTable_CategoryToPoi();
     $table_category = new Model_DbTable_Category();
     $table_destination = new Model_DbTable_Destination();
     $table_areatopoi = new Model_DbTable_AreaToPoi();
     /* get the main category */
     if ($type == 'category') {
         $main_category = $table_destination->getMainCategoryById($poi_id);
         $category_data = $table_categorytopoi->getCategoryByPoiId($poi_id, 1);
         $this->view->category_data = $category_data;
         $this->view->main_category = $main_category;
     } elseif ($type == 'area') {
 /**
  * IS: Parameter id terdeklarasi
  * FS: Mengirimkan ke viewer: poi_id, form, gkey, header_image
  * Desc: Mengatur aksi yang dilakukan untuk halaman edit
  */
 public function editAction()
 {
     /*retrieving parameter and creating form*/
     $poi_id = $this->_getParam('id');
     $language_id = $this->_getParam('lang');
     //create instance of destination table and get destination data
     $table_destination = new Model_DbTable_Destination();
     $table_destination_description = new Model_DbTable_DestinationDescription();
     $table_category = new Model_DbTable_Category();
     $table_categorytopoi = new Model_DbTable_CategoryToPoi();
     $table_area = new Model_DbTable_Area();
     $table_areatopoi = new Model_DbTable_AreaToPoi();
     $table_relatedpoi = new Model_DbTable_RelatedPoi();
     $data = null;
     $form = new Admin_Form_PoiFormIndo();
     $table_related_article_poi = new Model_DbTable_RelatedArticlePoi();
     //get realated article data
     // @param =  article_id
     $ralated_poi = $table_related_article_poi->getByPoiId($poi_id, $language_id);
     $this->view->edit = 1;
     $this->view->ralated_poi = $ralated_poi;
     $this->view->poi_id = $poi_id;
     /*Update Process*/
     if ($this->getRequest()->isPost()) {
         //if the form is valid
         if ($form->isValid($_POST)) {
             //check if it is a special destination or not
             if ($language_id != 2) {
                 $indo = $table_destination_description->checkForEnglish($poi_id);
                 if (!$indo) {
                     if ($_POST['SpecialDestination'] == 1) {
                         $header_image = preg_replace("/'/", "&#39;", $_POST['HeaderImage']);
                     } else {
                         $header_image = null;
                     }
                     $PoiName = preg_replace("/'/", "&#39;", $_POST['PoiName']);
                     $PoiTagLine = preg_replace("/'/", "&#39;", $_POST['PoiTagline']);
                     $PoiInformation = preg_replace("/'/", "&#39;", $_POST['PoiInformation']);
                     $PoiHowToGetThere = preg_replace("/'/", "&#39;", $_POST['PoiHowToGetThere']);
                     $PoiHowToGetAround = preg_replace("/'/", "&#39;", $_POST['PoiHowToGetAround']);
                     $PoiWhatToDo = preg_replace("/'/", "&#39;", $_POST['PoiWhatToDo']);
                     $PoiWhereToEat = preg_replace("/'/", "&#39;", $_POST['PoiWhereToEat']);
                     $PoiWhereToStay = preg_replace("/'/", "&#39;", $_POST['PoiWhereToStay']);
                     $PoiWhatToBuy = preg_replace("/'/", "&#39;", $_POST['PoiWhatToBuy']);
                     $PoiTips = preg_replace("/'/", "&#39;", $_POST['PoiTips']);
                     $desc = array('poi_id' => $poi_id, 'language_id' => $language_id, 'name' => $PoiName, 'tagline' => $PoiTagLine, 'description' => $PoiInformation, 'howToGetThere' => $PoiHowToGetThere, 'howToGetAround' => $PoiHowToGetAround, 'whatToDo' => $PoiWhatToDo, 'whereToEat' => $PoiWhereToEat, 'whereToStay' => $PoiWhereToStay, 'whatToBuy' => $PoiWhatToBuy, 'tips' => $PoiTips, 'header_image' => $header_image);
                     //updating data to the database
                     $table_destination_description->insertPoiDescription($desc);
                 } else {
                     if ($_POST['SpecialDestination'] == 1) {
                         $header_image = preg_replace("/'/", "&#39;", $_POST['HeaderImage']);
                     } else {
                         $header_image = null;
                     }
                     $PoiName = preg_replace("/'/", "&#39;", $_POST['PoiName']);
                     $PoiTagLine = preg_replace("/'/", "&#39;", $_POST['PoiTagline']);
                     $PoiInformation = preg_replace("/'/", "&#39;", $_POST['PoiInformation']);
                     $PoiHowToGetThere = preg_replace("/'/", "&#39;", $_POST['PoiHowToGetThere']);
                     $PoiHowToGetAround = preg_replace("/'/", "&#39;", $_POST['PoiHowToGetAround']);
                     $PoiWhatToDo = preg_replace("/'/", "&#39;", $_POST['PoiWhatToDo']);
                     $PoiWhereToEat = preg_replace("/'/", "&#39;", $_POST['PoiWhereToEat']);
                     $PoiWhereToStay = preg_replace("/'/", "&#39;", $_POST['PoiWhereToStay']);
                     $PoiWhatToBuy = preg_replace("/'/", "&#39;", $_POST['PoiWhatToBuy']);
                     $PoiTips = preg_replace("/'/", "&#39;", $_POST['PoiTips']);
                     $desc = array('poi_id' => $poi_id, 'language_id' => 1, 'name' => $PoiName, 'tagline' => $PoiTagLine, 'description' => $PoiInformation, 'howToGetThere' => $PoiHowToGetThere, 'howToGetAround' => $PoiHowToGetAround, 'whatToDo' => $PoiWhatToDo, 'whereToEat' => $PoiWhereToEat, 'whereToStay' => $PoiWhereToStay, 'whatToBuy' => $PoiWhatToBuy, 'tips' => $PoiTips, 'header_image' => $header_image);
                     //updating data to the database
                     $table_destination_description->UpdatePoiDescription($desc, $poi_id, 1);
                 }
             } else {
                 if ($_POST['SpecialDestination'] == 1) {
                     //if it was a special destination but no image uploaded
                     if ($_POST['HeaderImage'] == '') {
                         $this->_flash->addMessage('3\\Warning: Data is saved without image! You should upload an image for a featured destination.');
                     } else {
                         $header_image = preg_replace("/'/", "&#39;", $_POST['HeaderImage']);
                     }
                 } else {
                     $header_image = null;
                 }
                 $PoiName = preg_replace("/'/", "&#39;", $_POST['PoiName']);
                 $PoiAddress = preg_replace("/'/", "&#39;", $_POST['PoiAddress']);
                 $PoiPhone = preg_replace("/'/", "&#39;", $_POST['PoiPhone']);
                 $PoiWebsite = preg_replace("/'/", "&#39;", $_POST['PoiWebsite']);
                 if ($_POST['SpecialDestination'] == 0) {
                     $SpecialDestination = 0;
                 } else {
                     $SpecialDestination = 1;
                 }
                 /*preparing data for Poi table*/
                 $data = array('pointX' => $_POST['pointx'], 'pointY' => $_POST['pointy'], 'address' => $PoiAddress, 'phone' => $PoiPhone, 'website' => $PoiWebsite, 'main_category' => $_POST['MainCategory'], 'popular' => $_POST['PopularSelect'], 'status' => $_POST['SaveStatus'], 'special' => $SpecialDestination, 'header_image' => ' ');
                 /*updating data to Poi table and get the last inserted poi id*/
                 $table_destination->updatePoi($data, $poi_id);
                 /*preparing data for poi description table*/
                 $PoiTagLine = preg_replace("/'/", "&#39;", $_POST['PoiTagline']);
                 $PoiInformation = preg_replace("/'/", "&#39;", $_POST['PoiInformation']);
                 $PoiHowToGetThere = preg_replace("/'/", "&#39;", $_POST['PoiHowToGetThere']);
                 $PoiHowToGetAround = preg_replace("/'/", "&#39;", $_POST['PoiHowToGetAround']);
                 $PoiWhatToDo = preg_replace("/'/", "&#39;", $_POST['PoiWhatToDo']);
                 $PoiWhereToEat = preg_replace("/'/", "&#39;", $_POST['PoiWhereToEat']);
                 $PoiWhereToStay = preg_replace("/'/", "&#39;", $_POST['PoiWhereToStay']);
                 $PoiWhatToBuy = preg_replace("/'/", "&#39;", $_POST['PoiWhatToBuy']);
                 $PoiTips = preg_replace("/'/", "&#39;", $_POST['PoiTips']);
                 $desc = array('poi_id' => $poi_id, 'language_id' => 2, 'name' => $PoiName, 'tagline' => $PoiTagLine, 'description' => $PoiInformation, 'howToGetThere' => $PoiHowToGetThere, 'howToGetAround' => $PoiHowToGetAround, 'whatToDo' => $PoiWhatToDo, 'whereToEat' => $PoiWhereToEat, 'whereToStay' => $PoiWhereToStay, 'whatToBuy' => $PoiWhatToBuy, 'tips' => $PoiTips, 'header_image' => $header_image);
                 //updating data to the database
                 $table_destination_description->UpdatePoiDescription($desc, $poi_id, 2);
                 /*preparing data for categorytopoi table
                  *Get category count and data*/
                 $category_count = $this->_getParam('MaxCategory');
                 $category_stack = array();
                 for ($i = 0; $i <= $category_count; $i++) {
                     if (!empty($_POST['catValue' . $i])) {
                         array_push($category_stack, $_POST['catValue' . $i]);
                     }
                 }
                 /*inserting data for categorytopoi table*/
                 $category_list = $table_categorytopoi->getCategoryIdByPoiId($poi_id);
                 /*convert to non associative array*/
                 $saved_category = array();
                 foreach ($category_list as $temp_cat) {
                     array_push($saved_category, $temp_cat['category_id']);
                 }
                 /*processing the data
                   if the posted data not found on saved category id list then insert the data */
                 foreach ($category_stack as $category_new) {
                     if (!in_array($category_new, $saved_category)) {
                         $category_poi = array('category_id' => $category_new, 'poi_id' => $poi_id);
                         $table_categorytopoi->insertCategoryToPoi($category_poi, 2);
                     }
                 }
                 /*complement check, if the data on saved category list not found on posted category
                   then delete that data on the database*/
                 foreach ($saved_category as $old_category) {
                     if (!in_array($old_category, $category_stack)) {
                         $table_categorytopoi->deleteCategoryToPoi($old_category, $poi_id);
                     }
                 }
                 /* We do it the same way for processing the area data
                  * First, we obtain the data from the database and then convert it
                  * to a non assoc. array*/
                 $areatopoi_list = $table_areatopoi->getPoiAreaId($poi_id);
                 $saved_area = array();
                 foreach ($areatopoi_list as $temp_area) {
                     array_push($saved_area, $temp_area['area_id']);
                 }
                 /* Obtain the list of the new area data posted from the form*/
                 $area_count = $this->_getParam('MaxArea');
                 $area_stack = array();
                 for ($i = 0; $i <= $area_count; $i++) {
                     if (!empty($_POST['areaValue' . $i])) {
                         array_push($area_stack, $_POST['areaValue' . $i]);
                     }
                 }
                 /* Compare the new area list with the old area list
                  *  if its not in the old area list then insert to the database*/
                 foreach ($area_stack as $new_area) {
                     if (!in_array($new_area, $saved_area)) {
                         $area_poi = array('area_id' => $new_area, 'poi_id' => $poi_id);
                         $table_areatopoi->insertAreaToPoi($area_poi);
                     }
                 }
                 /* Now we do the complement action
                  * compare the old list with the new list,
                  * delete if not found on the new list*/
                 foreach ($saved_area as $old_area) {
                     if (!in_array($old_area, $area_stack)) {
                         $table_areatopoi->deleteAreaToPoi($old_area, $poi_id);
                     }
                 }
                 /*related poi data processing*/
                 $relpoi_stack = array();
                 $relCtr = $_POST['relPoi_counter'];
                 for ($i = 0; $i <= $relCtr; $i++) {
                     if (!empty($_POST['relpoi' . $i])) {
                         array_push($relpoi_stack, $_POST['relpoi' . $i]);
                     }
                 }
                 $saved_relpoi = $table_relatedpoi->getAllRelatedByPoiIdLangId($poi_id, $language_id);
                 $old_relpoi = array();
                 if (sizeof($saved_relpoi) > 0) {
                     foreach ($saved_relpoi as $value) {
                         array_push($old_relpoi, $value['related_poi']);
                     }
                 }
                 foreach ($relpoi_stack as $value) {
                     if (!in_array($value, $old_relpoi)) {
                         $data = array('poi_id' => $poi_id, 'related_poi' => $value);
                         $table_relatedpoi->insertRelatedPoi($data);
                     }
                 }
                 foreach ($old_relpoi as $value) {
                     if (!in_array($value, $relpoi_stack)) {
                         $table_relatedpoi->deleteSpecificRelatedPoi($poi_id, $value);
                     }
                 }
             }
             ////$this->_helper->layout()->disableLayout();
             ////$this->_helper->viewRenderer->setNoRender(true);
             /* update related article */
             //param
             // this part add related
             if ($_POST['counterRelated'] > 0) {
                 $counter = $_POST['counterRelated'];
                 for ($i = 1; $i <= $counter; $i++) {
                     //echo $_POST['link'.$i];
                     //cek existing label and link in database
                     // if $cek having value = false, then data will be saved
                     if (isset($_POST['label' . $i])) {
                         $cek = $table_related_article_poi->cek_existing($_POST['label' . $i], $_POST['link' . $i]);
                         if (!$cek or $cek == false) {
                             $data = array('poi_id' => $poi_id, 'label' => $_POST['label' . $i], 'link' => $_POST['link' . $i], 'language_id' => $language_id);
                             $table_related_article_poi->insertRelated($data);
                         }
                     }
                 }
             }
             //bagian untuk menghapus data related artikel
             if ($_POST['counterDel'] > 0) {
                 $counterDel = $_POST['counterDel'];
                 for ($i = 1; $i <= $counterDel; $i++) {
                     //cek existing label and link in database
                     // if found, data will be removed
                     if (isset($_POST['labeldel' . $i])) {
                         $cek = $table_related_article_poi->cek_existing_forDel($_POST['labeldel' . $i], $_POST['linkdel' . $i]);
                     }
                 }
             }
             //Send a success message via flashmessenger
             $this->loggingaction('destination', 'edit', $poi_id, $language_id);
             $this->_flash->addMessage('1\\Destination English Update Success!');
             //redirect to the destination list page
             $this->_redirect($this->view->rootUrl('/admin/destinationindo/'));
         }
     }
     /*load data from the database preparing for view process*/
     if ($language_id == 2) {
         $data = $table_destination->getAllByIdLangForIndo($poi_id, $language_id);
         $parent_category = $table_category->getparentCategoryId($data['main_category']);
         $parent_area = $table_areatopoi->getPoiAreaId($poi_id);
     } else {
         $indo = $table_destination_description->checkForEnglish($poi_id);
         if ($indo) {
             $data = $table_destination->getAllByIdLangForIndo($poi_id, $language_id);
         }
     }
     $tesheader = $table_destination_description->getheaderimagebyid2($poi_id, $language_id);
     /*Set every element Value*/
     if ($data != null) {
         $form->Poi_Name->setValue($this->view->HtmlDecode($data['name']));
         $form->Popular_Select->setValue($this->view->HtmlDecode($data['popular']));
         $form->Poi_Address->setValue($this->view->HtmlDecode(strip_tags($data['address'])));
         $form->Poi_Website->setValue($data['website']);
         $form->Poi_Phone->setValue($data['phone']);
         $form->Poi_TagLine->setValue($this->view->HtmlDecode($data['tagline']));
         $form->Poi_Information->setValue($this->view->HtmlDecode($data['description']));
         $form->Poi_HowToGetThere->setValue($this->view->HtmlDecode($data['howToGetThere']));
         $form->Poi_HowToGetAround->setValue($this->view->HtmlDecode($data['howToGetAround']));
         $form->Poi_WhatToDo->setValue($this->view->HtmlDecode($data['whatToDo']));
         $form->Poi_WhereToEat->setValue($this->view->HtmlDecode($data['whereToEat']));
         $form->Poi_WhereToStay->setValue($this->view->HtmlDecode($data['whereToStay']));
         $form->Poi_WhatToBuy->setValue($this->view->HtmlDecode($data['whatToBuy']));
         $form->Poi_Tips->setValue($this->view->HtmlDecode($data['tips']));
         $form->Poi_x->setValue($data['pointX']);
         $form->Poi_y->setValue($data['pointY']);
         $form->HeaderImage->setValue($tesheader['header_image']);
     }
     /*check if this is a special destination, if it is, then checkbox value to true*/
     if ($table_destination->checkSpecialDestination($poi_id)) {
         $form->SpecialDestination->setChecked(true);
         $this->view->state_special = TRUE;
     } else {
         $form->SpecialDestination->setChecked(false);
         $this->view->state_special = FALSE;
     }
     /*send data image filename to the view*/
     $this->view->header_image = $data['header_image'];
     /*set another value to the form element*/
     $area_amount = $table_areatopoi->countAreaByPoiId($poi_id);
     $category_amount = $table_categorytopoi->countCategoryByPoiId($poi_id);
     $main_category = $table_destination->getMainCategoryById($poi_id);
     $form->Category_counter->setValue($category_amount);
     $form->Count_category->setValue($category_amount);
     $form->Main_category->setValue($main_category['main_category']);
     $form->Area_counter->setValue($area_amount);
     $form->Count_area->setValue($area_amount);
     /*send form to view class*/
     $this->view->poi_id = $poi_id;
     $this->view->form = $form;
     $this->view->language_id = $language_id;
     /*get google map key from zend registry and send it to the view*/
 }