<?php

class ControllerModuleWg24ThemeOptionPanel extends Controller {

  private $error = array();

  public function index() {
    $language = $this->load->language('module/wg24themeoptionpanel');

    $this->load->model('setting/analyze');
    $this->load->helper('ftr_geral');

    $this->data = array_merge($this->data, $language);
    $this->document->setTitle($this->language->get('heading_title'));
    $this->load->model('setting/setting');
    $this->load->dmodel('tool/image');
    $this->load->model('localisation/language');
    $this->load->model('design/banner');
    $this->load->helper('ftr_geral');
    $this->load->type('tipocomum');

    $this->data['languages']            = $this->model_localisation_language->getLanguages();
    $this->data['heading_title']        = $this->language->get('heading_title');
    $this->data['text_enabled']         = $this->language->get('text_enabled');
    $this->data['text_disabled']        = $this->language->get('text_disabled');
    $this->data['text_content_top']     = $this->language->get('text_content_top');
    $this->data['text_content_bottom']  = $this->language->get('text_content_bottom');
    $this->data['text_column_left']     = $this->language->get('text_column_left');
    $this->data['text_column_right']    = $this->language->get('text_column_right');
    $this->data['entry_limit']          = $this->language->get('entry_limit');
    $this->data['entry_image']          = $this->language->get('entry_image');
    $this->data['entry_layout']         = $this->language->get('entry_layout');
    $this->data['entry_position']       = $this->language->get('entry_position');
    $this->data['entry_status']         = $this->language->get('entry_status');
    $this->data['entry_sort_order']     = $this->language->get('entry_sort_order');
    $this->data['button_save']          = $this->language->get('button_save');
    $this->data['button_cancel']        = $this->language->get('button_cancel');
    $this->data['button_add_module']    = $this->language->get('button_add_module');
    $this->data['button_remove']        = $this->language->get('button_remove');
    $this->data['button_save']          = $this->language->get('button_save');

    $userName = $this->user->getUserName();
    $userID = $this->user->getId();

    $this->data['exibe_mobile_config'] = ($userName == 'futura') ? 1 : 0;

    $this->data['wg24_body_font_source'] = $this->config->get('wg24_body_font_source');

    $this->data['wg24_header_font_source'] = $this->config->get('wg24_header_font_source');

    $wg24localfonts = [
      "Lato,sans-serif" => "Lato,sans-serif",
      "Open+Sans" => "Open Sans",
      "Arial,Helvetica" => "Arial, Helvetica",
      "Geneva" => "Geneva",
      "Helvetica,sans-serif" => "Helvetica, sans-serif",
      "Times+New+Roman" => "Times New Roman",
      "Times,serif" => "Times, serif",
      "PT+Sans" => "PT Sans",
      "monospace" => "monospace",
      "Georgia,serif" => "Georgia,Times, serif",
      "Verdana" => "Verdana",
      "Oswald" => "Oswald",
      "Telex" => "Telex",
      "Iceberg" => "Iceberg",
      "Yanone+Kaffeesatz" => "Yanone Kaffeesatz ExtraLight",
      "tahoma" => "Tahoma, Geneva",
      "Amethysta" => "Amethysta",
      "Courier+New,Courier" => "Courier New, Courier",
      "Gudea" => "Gudea",
      "Duru+Sans" => "Duru Sans",
      "Germania+One" => "Germania One",
      "Macondo+Swash+Caps" => "Macondo Swash Caps"
    ];

    $this->data['wg24localfonts'] = $wg24localfonts;

    $config_data = array(
      'wg24_quick',
      'wg24_l_sale_icon_style',
      'wg24_home_f_box',
      'wg24_home_s_b_f_box',
      'wg24_home_redir_carrinho',
      'wg24_l_c_psub',
      'wg24_cate_list_grid',
      'wg24_l_custom_tab',
      'wg24_l_tab_title',
      'wg24_l_tabc',
      'wg24_l_extra_bcolor',
      'wg24_fot_addre_iconbg_col',
      'wg24_backgroun_image_show',
      'wg24_body_cus_pattan',
      'we24_default_parttern',
      'wg24_bg_repeat',
      'wg24_bg_attachment',
      'wg24_bg_positin',
      'wg24_body_font_source',
      'wg24_body_fontto_google',
      'wg24_body_fontto_system',
      'wg24_body_font_size',
      'wg24_header_font_source',
      'wg24_header_fontto_system',
      'wg24_header_fontto_google',
      'wg24_heading_transfrom',
      'wg24_produt_h_font_size',
      'wg24_page_h_font_size',
      'wg24_left_rig_h_font_size',
      'wg24_scrol_to+top_custom_htmlm',
      'wg24_l_custom_bmenu',
      'wg24_l_add_custom_css',
      'wg24_l_add_custom_jss',
      'wg24_l_add_slider',
      'wg24_facebook_lbox',
      'wg24_facebook_purl',
      'wg24_twitter_fbox',
      'wg24_twitter_id',
      'wg24_tweets_tshow',
      'wg24_logo_image',
      'wg24_foot_first_colunm',
      'wg24_footer_coninfo',
      'wg24_contact_info_page_of',
      'wg24_facebook_url',
      'wg24_twitter_url',
      'wg24_google_url',
      'wg24_rss_url',
      'wg24_pinterest_url',
      'wg24_linking_url',
      'wg24_youtub_url',
      'wg24_copyr_text',
      'wg24_paypal_url',
      'wg24_visaelectron_ur',
      'wg24_discover_url',
      'wg24_visa_url',
      'wg24_mastercard_url',
      'wg24_maestro_url',
      'wg24_americanexpress_url',
      'wg24_custom_item_menu',
      'wg24_l_show_custom_htmlm',
      'wg24_type_configuration_contact',
      'wg24_exibe_contact',
      'wg24_titulo_rodape',
      'wg24_statuspagamento',
      'wg24_bandeiras_automaticas',
      'wg24_banner_pagamento',
      'wg24_redimensionarpgto',
      'wg24_tipoconfiguracao',
      'wg24_bg_social',
      'wg24_col_social',
      'wg24_bg_hover_social',
      'wg24_link_hover_color_menu_lateral',
      'wg24_linkFabricantes',
      'wg24_linkDevolucoes',
      'wg24_icon_hover_color_menu_lateral',
      'wg24_exibicao_pagamento',
      'wg24_main_menu_link_home',
      'wg24_mainmicon_scolor',
      'wg24_mainmicon_shcolor',
      'wg24_tipo_zoom_prod',
      'wg24_instagram_url',
      'wg24_icon_hover_color_sbctgr_menu_lateral',
      'wg24_certificado_status',
      'wg24_certificado_banner',
      'wg24_certificado_altura',
      'wg24_certificado_largura',
      'wg24_main_menu_link_home_display',
      'wg24_seo_fer_facebook_status',
      'wg24_seo_fer_facebook_pixel',
      'wg24_seo_categoria_status',
      'wg24_seo_categoria_tituloini',
      'wg24_seo_categoria_titulofim',
      'wg24_bg_color_menu_lateral_selecionado_title',
      'wg24_bg_color_fonte_menu_lateral_selecionado_title',
      'wg24_bg_color_menu_lateral_selecionado',
      'wg24_bg_color_fonte_menu_lateral_selecionado',
      'wg24_prod_efec_img',
      'wg24_qtd_cart_sus',
      'wg24_futura_status_lista_desejos',
      'wg24_futura_status_lista_comparacao',
      'wg24_blogger_url',
      'wg24_tipo_rodape',
      'wg24_futura_prod_exibe_selo',
      'wg24_productbox_border',
      'wg24_productbox_size',
      'wg24_futura_prod_qtd_dias_novo',
      'wg24_futura_of_age_status',
      'wg24_futura_of_age_type_message',
      'wg24_futura_of_age_link',
      'wg24_futura_of_age_background',
      'wg24_futura_of_age_background_repeat',
      'wg24_futura_of_age_text_color',
      'wg24_category_image_status',
      'easyconfig_postcode',
      'easyconfig_street',
      'easyconfig_number',
      'easyconfig_district',
      'easyconfig_complemento',
      'easyconfig_city',
      'easyconfig_state',
      'mode_orcamento',
      'tipo_ramo',
      'wg24_app_primary_color',
      'wg24_app_secondary_color',
      'wg24_app_text_primary_color',
      'wg24_app_text_secondary_color',
      'wg24_app_icon_store',
      'wg24_app_play_store',
      'wg24_app_app_store',
      'wg24_certificado_futura',
      'tipo_descricao_expansivel',
      'mostra_preco_sem_estoque',
    );

    $this->data['backgroundrepeat'] = Type_BackgroundRepeat::getEnumList();

    $this->load->model('design/banner');
    $databanner = array (
      'status' => Type_Status::Tp_Habilitado
    );
    $this->data['banners']                 = $this->model_design_banner->getBanners($databanner);
    $this->data['wg24_banner_pagamento']   = $this->config->get('wg24_banner_pagamento');
    $this->data['wg24_certificado_banner'] = $this->config->get('wg24_certificado_banner');

    foreach ($config_data as $conf) {

      if (isset($this->request->post[$conf])) {
        $this->data[$conf] = $this->request->post[$conf];
      } else {
        $this->data[$conf] = $this->config->get($conf);
      }
    }

    if (isset($this->request->post['wg24_pagtolargura'])) {
      $this->data['wg24_pagtolargura'] = $this->request->post['wg24_pagtolargura'];
    } elseif($this->config->get('wg24_pagtolargura')) {
      $this->data['wg24_pagtolargura'] = $this->config->get('wg24_pagtolargura');
    }else{
      $this->data['wg24_pagtolargura'] = 50;
    }

    if (isset($this->request->post['wg24_pagtoaltura'])) {
      $this->data['wg24_pagtoaltura'] = $this->request->post['wg24_pagtoaltura'];
    } elseif($this->config->get('wg24_pagtoaltura')) {
      $this->data['wg24_pagtoaltura'] = $this->config->get('wg24_pagtoaltura');
    }else{
      $this->data['wg24_pagtoaltura'] = 31;
    }

    if($this->config->get('wg24_l_show_custom_htmlm')){
      if($this->config->get('wg24_l_show_custom_htmlm') == 'enable' || $this->config->get('wg24_l_show_custom_htmlm') ==  Type_Status::Tp_Habilitado ){
        $this->data['wg24_l_show_custom_htmlm'] = Type_Status::Tp_Habilitado;
      }else{
        $this->data['wg24_l_show_custom_htmlm'] = Type_Status::Tp_Desabilitado;
      }
    }

    $this->data['logo'] = $this->dmodel_tool_image->resize($this->config->get('config_logo'), 150, 150);//$server . 'image/' . $this->config->get('config_logo');


    $this->data['wg24_home_redir_carrinho'] = $this->config->get('wg24_home_redir_carrinho');

    $this->data['breadcrumbs'] = array();

    $this->data['breadcrumbs'][] = array(
      'text'      => $this->language->get('text_home'),
      'href'      => $this->url->link('common/home', 'token=' . $this->session->data['token'], 'SSL'),
      'separator' => false
    );

    $this->data['breadcrumbs'][] = array(
      'text'      => $this->language->get('Módulos'),
      'href'      => $this->url->linkAnchor('extension/module', 'token=' . $this->session->data['token'], 'tab-info=' . $this->request->get['type'], 'SSL'),
      'separator' => ' :: '
    );

    $this->data['breadcrumbs'][] = array(
      'text' => $this->language->get('heading_title'),
      'href' => $this->url->link('module/wg24themeoptionpanel', 'token=' . $this->session->data['token'] . '&type=' . $this->request->get['type'], 'SSL'),
      'separator' => ' :: '
    );

    $this->data['action']   = $this->url->link('module/wg24themeoptionpanel', 'token=' . $this->session->data['token'] . '&type=' . $this->request->get['type'], 'SSL');
    $this->data['cancel']   = $this->url->linkAnchor('extension/module', 'token=' . $this->session->data['token'], 'tab-info=' . $this->request->get['type'], 'SSL');
    $this->data['token']    = $this->session->data['token'];
    $this->data['thislang'] = $this->language->get('default');

    /*links de ajuda para configuração do login com rede social*/
    $this->language->load('linksajuda/linksajuda');
    $this->data['link_help_facebook'] = sprintf($this->language->get('link_menu_ajuda'), $this->language->get('link_help_facebook'));
    $this->data['link_help_google']   = sprintf($this->language->get('link_menu_ajuda'), $this->language->get('link_help_google'));

    $this->load->dmodel('design/layout');

    if (isset($this->data['wg24_body_cus_pattan']) && $this->data['wg24_body_cus_pattan'] != "" && file_exists(DIR_IMAGE . $this->data['wg24_body_cus_pattan'])) {
      $this->data['wg24_body_sub_class_thumb'] = $this->dmodel_tool_image->resize($this->data['wg24_body_cus_pattan'], Type_MiniatureMedium::Tp_width, Type_MiniatureMedium::Tp_height);
    } else {
      $this->data['wg24_body_sub_class_thumb'] = $this->dmodel_tool_image->resize('no_image.jpg', Type_MiniatureMedium::Tp_width, Type_MiniatureMedium::Tp_height);
    }

    if (isset($this->data['wg24_app_icon_store']) && $this->data['wg24_app_icon_store'] != "" && file_exists(DIR_IMAGE . $this->data['wg24_app_icon_store'])) {
      $this->data['wg24_app_icon_store_class_thumb'] = $this->dmodel_tool_image->resize($this->data['wg24_app_icon_store'], Type_MiniatureMedium::Tp_width, Type_MiniatureMedium::Tp_height);
    } else {
      $this->data['wg24_app_icon_store_class_thumb'] = $this->dmodel_tool_image->resize('no_image.jpg', Type_MiniatureMedium::Tp_width, Type_MiniatureMedium::Tp_height);
    }


    if (isset($this->request->post['wg24_futura_of_age_logo'])) {
      $this->data['wg24_futura_of_age_logo'] = $this->request->post['wg24_futura_of_age_logo'];
    } else {
      $this->data['wg24_futura_of_age_logo'] = $this->config->get('wg24_futura_of_age_logo');
    }

    if (isset($this->data['wg24_futura_of_age_logo']) && $this->data['wg24_futura_of_age_logo'] != "" && file_exists(DIR_IMAGE . $this->data['wg24_futura_of_age_logo'])) {
      $this->data['wg24_futura_of_age_logo_thumb'] = $this->dmodel_tool_image->resize($this->data['wg24_futura_of_age_logo'], Type_MiniatureMedium::Tp_width, Type_MiniatureMedium::Tp_height);
    } else {
      $this->data['wg24_futura_of_age_logo']       = $this->dmodel_tool_image->resize($this->config->get('config_logo'), Type_MiniatureMedium::Tp_width, Type_MiniatureMedium::Tp_height);
      $this->data['wg24_futura_of_age_logo_thumb'] = $this->dmodel_tool_image->resize($this->config->get('config_logo'), Type_MiniatureMedium::Tp_width, Type_MiniatureMedium::Tp_height);
    }

    if (isset($this->data['wg24_futura_of_age_background']) && $this->data['wg24_futura_of_age_background'] != "" && file_exists(DIR_IMAGE . $this->data['wg24_futura_of_age_background'])) {
      $this->data['wg24_futura_of_age_background_thumb'] = $this->dmodel_tool_image->resize($this->data['wg24_futura_of_age_background'], Type_MiniatureMedium::Tp_width, Type_MiniatureMedium::Tp_height);
    } else {
      $this->data['wg24_futura_of_age_background_thumb'] = $this->dmodel_tool_image->resize('no_image.jpg', Type_MiniatureMedium::Tp_width, Type_MiniatureMedium::Tp_height);
    }

    if (isset($this->request->post['wg24_futura_of_age_text_color'])) {
      $this->data['wg24_futura_of_age_text_color'] = $this->request->post['wg24_futura_of_age_text_color'];
    } else {
      $this->data['wg24_futura_of_age_text_color'] = $this->config->get('wg24_futura_of_age_text_color');
    }

  if(isset($this->request->get['type'])){
    $this->data['type'] = $this->request->get['type'];
  }else{
    $this->data['type'] = Type_TitleModules::Tp_Config;
  }


    $this->data['no_image'] = $this->dmodel_tool_image->resize('no_image.jpg', Type_MiniatureMedium::Tp_width, Type_MiniatureMedium::Tp_height);

    $this->data['layouts'] = $this->dmodel_design_layout->getLayouts();

    $this->template = 'module/wg24themeoptionpanel.tpl';
    $this->children = array(
      'common/header',
      'common/footer'
    );

    $this->data['config_url'] = $this->config->get('config_url');

    $this->response->setOutput($this->render());
  }

  public function sendData($sendData = null){
    $this->load->model('setting/analyze');
    $this->load->helper('ftr_geral');

    $json = array();

    if($sendData == null){
      $sendData = $this->request->post;
    }

    $this->load->model('setting/setting');
    $this->load->dmodel('tool/image');
    $this->load->model('localisation/language');
    $this->load->model('design/banner');
    $this->load->language('module/wg24themeoptionpanel');
    $this->data['languages'] = $this->model_localisation_language->getLanguages();

    if (($this->request->server['REQUEST_METHOD'] == 'POST') && $this->validate()) {

      if (isset($json['acompanhamentos'])) {
        $json['acompanhamentos'] = json_encode($json['acompanhamentos']);
      }

      $json['success'] = $this->language->get('Alterações do tema salvas com sucesso!');
      $this->session->data['success'] = $this->language->get('Alterações do tema salvas com sucesso!');

      if (isset($this->request->get['tipoRedirect'])) {
        $json['redirect'] = $this->request->get['tipoRedirect'];
      }

      if (isset($sendData['step'])) {
        unset($sendData['step']);
        if (isset($sendData['banner_dinamico'])) {
            $hero = array();
            $hero['banner_dinamico'] = $sendData['banner_dinamico'];
            unset($sendData['banner_dinamico']);
            $this->model_setting_setting->editSettingForKey('hero', $hero);
        }
        // não trocar por $this->model_setting_setting->editSetting que da merda nas steps da configuração rápida
        if (isset($sendData['colors']) && !is_null($sendData['colors'])){
            $this->model_setting_setting->editSettingForKey('colors', $sendData['colors']);
        }
        unset($sendData['colors']);
        $this->model_setting_setting->editSettingForKey('wg24themeoptionpanel', $sendData);
      } else {
        if (isset($sendData['config_address'])) {
          $config = array();
          $config['config_address'] = $sendData['config_address'];
          unset($sendData['config_address']);
          $this->model_setting_setting->editSetting('config', $config);
        }

        $this->model_setting_setting->editSetting('wg24themeoptionpanel', $sendData);
      }

    }


    if (isset($this->error['warning'])) {
      $json['error']['error_warning'] = $this->error['warning'];
    } else {
      $json['error']['error_warning'] = '';
    }

    if (isset($this->error['image'])) {
      $json['error']['error_image'] = $this->error['image'];
    } else {
      $json['error']['error_image'] = array();
    }

    if (isset($this->error['error_wg24_pagtoaltura'])) {
      $json['error']['error_wg24_pagtoaltura'] = $this->error['error_wg24_pagtoaltura'];
      $json['error']['error_warning'] = 'Uma ou mais informações informadas são invalidas, favor, reveja as configurações!';
    } else {
      $json['error']['error_wg24_pagtoaltura'] = '';
    }

    if (isset($this->error['error_wg24_pagtolargura'])) {
      $json['error']['error_wg24_pagtolargura'] = $this->error['error_wg24_pagtolargura'];
      $json['error']['error_warning'] = 'Uma ou mais informações informadas são invalidas, favor, reveja as configurações!';
    } else {
      $json['error']['error_wg24_pagtolargura'] = '';
    }

    if (isset($this->error['error_wg24_certificado_altura'])) {
      $json['error']['error_wg24_certificado_altura'] = $this->error['error_wg24_certificado_altura'];
      $json['error']['error_warning'] = 'Uma ou mais informações informadas são invalidas, favor, reveja as configurações!';
    } else {
      $json['error']['error_wg24_certificado_altura'] = '';
    }

    if (isset($this->error['error_wg24_certificado_largura'])) {
      $json['error']['error_wg24_certificado_largura'] = $this->error['error_wg24_certificado_largura'];
      $json['error']['error_warning'] = 'Uma ou mais informações informadas são invalidas, favor, reveja as configurações!';
    } else {
      $json['error']['error_wg24_certificado_largura'] = '';
    }

    if (isset($this->error['error_wg24_custom_item_menu'])) {
      $json['error']['error_wg24_custom_item_menu'] = $this->error['error_wg24_custom_item_menu'];
      $json['error']['error_warning'] = 'Uma ou mais informações informadas são invalidas, favor, reveja as configurações!';
    } else {
      $json['error']['error_wg24_custom_item_menu'] = '';
    }

    if (isset($this->error['error_wg24_l_custom_bmenu'])) {
      if (is_array($this->error['error_wg24_l_custom_bmenu'])) {
        foreach ($this->data['languages'] as $lang) {
          $json['error']['error_wg24_l_custom_bmenu_'.$lang['language_id']] = $this->error['error_wg24_l_custom_bmenu'][$lang['language_id']];
        }
      } else {
        $json['error']['error_wg24_l_custom_bmenu'] = $this->error['error_wg24_l_custom_bmenu'];
      }
      $json['error']['error_warning'] = 'Uma ou mais informações informadas são invalidas, favor, reveja as configurações!';
    } else {
      $json['error']['error_wg24_l_custom_bmenu'] = '';
    }

    if (isset($this->error['wg24_futura_of_age_type_message'])) {
      $json['error']['error_wg24_futura_of_age_type_message'] = $this->error['wg24_futura_of_age_type_message'];
      $json['error']['error_warning'] = 'Uma ou mais informações informadas são invalidas, favor, reveja as configurações!';
    } else {
      $json['error']['error_wg24_futura_of_age_type_message'] = '';
    }


    if (isset($this->error['wg24_futura_of_age_link'])) {
      $json['error']['error_wg24_futura_of_age_link'] = $this->error['wg24_futura_of_age_link'];
      $json['error']['error_warning'] = 'Uma ou mais informações informadas são invalidas, favor, reveja as configurações!';
    } else {
      $json['error']['error_wg24_futura_of_age_link'] = '';
    }

    if (isset($this->error['wg24_futura_of_age_logo'])) {
      $json['error']['error_wg24_futura_of_age_logo'] = $this->error['wg24_futura_of_age_logo'];
      $json['error']['error_warning'] = 'Uma ou mais informações informadas são invalidas, favor, reveja as configurações!';
    } else {
      $json['error']['error_wg24_futura_of_age_logo'] = '';
    }

    if (isset($this->error['wg24_futura_of_age_background'])) {
      $json['error']['error_wg24_futura_of_age_background'] = $this->error['wg24_futura_of_age_background'];
      $json['error']['error_warning'] = 'Uma ou mais informações informadas são invalidas, favor, reveja as configurações!';
    } else {
      $json['error']['error_wg24_futura_of_age_background'] = '';
    }

    if (isset($this->error['wg24_seo_categoria_titulofim'])) {
      $json['error']['error_wg24_seo_categoria_titulofim'] = $this->error['wg24_seo_categoria_titulofim'];
      $json['error']['error_warning'] = 'Uma ou mais informações informadas são invalidas, favor, reveja as configurações!';
    } else {
      $json['error']['error_wg24_seo_categoria_titulofim'] = '';
    }

    if (isset($this->error['wg24_seo_categoria_tituloini'])) {
      $json['error']['error_wg24_seo_categoria_tituloini'] = $this->error['wg24_seo_categoria_tituloini'];
      $json['error']['error_warning'] = 'Uma ou mais informações informadas são invalidas, favor, reveja as configurações!';
    } else {
      $json['error']['error_wg24_seo_categoria_tituloini'] = '';
    }

    if (isset($this->error['error_wg24_l_tab_title'])) {
      $json['error']['error_wg24_l_tab_title'] = $this->error['error_wg24_l_tab_title'];
      $json['error']['error_warning'] = 'Uma ou mais informações informadas são invalidas, favor, reveja as configurações!';
    } else {
      $json['error']['error_wg24_l_tab_title'] = '';
    }

    if (isset($this->error['error_texto'])) {
      $json['error']['error_texto'] = $this->error['error_texto'];
      $json['error']['error_warning'] = 'Uma ou mais informações informadas são invalidas, favor, reveja as configurações!';
    } else {
      $json['error']['error_texto'] = '';
    }
    if (isset($this->error['error_link'])) {
      $json['error']['error_link'] = $this->error['error_link'];
      $json['error']['error_warning'] = 'Uma ou mais informações informadas são invalidas, favor, reveja as configurações!';
    } else {
      $json['error']['error_link'] = '';
    }

    if (isset($this->error['error_subtexto'])) {
      $json['error']['error_subtexto'] = $this->error['error_subtexto'];
      $json['error']['error_warning'] = 'Uma ou mais informações informadas são invalidas, favor, reveja as configurações!';
    } else {
      $json['error']['error_subtexto'] = '';
    }
    if (isset($this->error['error_sublink'])) {
      $json['error']['error_sublink'] = $this->error['error_sublink'];
      $json['error']['error_warning'] = 'Uma ou mais informações informadas são invalidas, favor, reveja as configurações!';
    } else {
      $json['error']['error_sublink'] = '';
    }
    if (isset($this->error['error_wg24_altura_imagens_categorias'])) {
      $json['error']['error_wg24_altura_imagens_categorias'] = $this->error['error_wg24_altura_imagens_categorias'];
      $json['error']['error_warning'] = 'Uma ou mais informações informadas são invalidas, favor, reveja as configurações!';
    } else {
      $json['error']['error_wg24_altura_imagens_categorias'] = '';
    }

    if (isset($this->error['wg24_seo_fer_facebook_pixel'])) {
      $json['error']['error_wg24_seo_fer_facebook_pixel'] = $this->error['wg24_seo_fer_facebook_pixel'];
      $json['error']['error_warning'] = 'Uma ou mais informações informadas são invalidas, favor, reveja as configurações!';
    } else {
      $json['error']['error_wg24_seo_fer_facebook_pixel'] = '';
    }

    if (isset($this->error['config_telephone'])) {
      $json['error']['error_config_telephone'] = $this->error['config_telephone'];
      $json['error']['error_warning'] = 'Uma ou mais informações informadas são invalidas, favor, reveja as configurações!';
    } else {
      $json['error']['error_config_telephone'] = '';
    }

    if (isset($this->error['config_fax'])) {
      $json['error']['error_config_fax'] = $this->error['config_fax'];
      $json['error']['error_warning'] = 'Uma ou mais informações informadas são invalidas, favor, reveja as configurações!';
    } else {
      $json['error']['error_config_fax'] = '';
    }

    if (isset($this->error['wg24_config_phoneextra'])) {
      $json['error']['error_wg24_config_phoneextra'] = $this->error['wg24_config_phoneextra'];
      $json['error']['error_warning'] = 'Uma ou mais informações informadas são invalidas, favor, reveja as configurações!';
    } else {
      $json['error']['error_wg24_config_phoneextra'] = '';
    }

    $this->response->setOutput(json_encode($json));
  }

  private function validate($sendData = null) {

    if($sendData == null){
      $sendData = $this->request->post;
    }

    $this->load->type('tipocomum');
    $this->load->helper('ftr_geral');

    if (!$this->user->hasPermission('modify', 'module/wg24themeoptionpanel')) {
      $this->error['warning'] = $this->language->get('error_permission');
    }

    if (!isset($sendData['step'])) {

      if($sendData['wg24_statuspagamento'] == "enable"){

        if($sendData['wg24_pagtoaltura'] == ""){
          $this->error['error_wg24_pagtoaltura'] = 'Favor, informa uma altura!';
        }

        if($sendData['wg24_pagtolargura'] == ""){
          $this->error['error_wg24_pagtolargura'] = 'Favor, informa uma largura!';
        }
      }

      if($sendData['wg24_certificado_status'] == 2){

        if($sendData['wg24_certificado_altura'] == ""){
          $this->error['error_wg24_certificado_altura'] = 'Favor, informa uma altura!';
        }

        if($sendData['wg24_certificado_largura'] == ""){
          $this->error['error_wg24_certificado_largura'] = 'Favor, informa uma largura!';
        }
      }

      if(($sendData['wg24_custom_item_menu'] == "") &&  ($sendData['wg24_l_show_custom_htmlm'] == Type_Status::Tp_Habilitado)){
        $this->error['error_wg24_custom_item_menu'] = 'Favor informar o título do menu personalizado!';
      }

      foreach ($this->data['languages'] as $lang) {
        if(($sendData['wg24_l_custom_bmenu'][$lang['language_id']] == "") &&  ($sendData['wg24_l_show_custom_htmlm'] == Type_Status::Tp_Habilitado)){
          $this->error['error_wg24_l_custom_bmenu'][$lang['language_id']] = 'Favor informar o conteúdo para o menu personalizado!';
        }
      }

      if(($sendData['wg24_l_tab_title'] == "") && ($sendData['wg24_l_custom_tab'] == "enable")){
        $this->error['error_wg24_l_tab_title'] = 'Favor informar o título da aba personalizada!';
      }

      if (isset($sendData['wg24themeoptionpanel_module'])) {
        foreach ($sendData['wg24themeoptionpanel_module'] as $key => $value) {
          if (!$value['image_width'] || !$value['image_height']) {
            $this->error['image'][$key] = $this->language->get('error_image');
          }
        }
      }

      if (isset($sendData['texto'])) {
        foreach ($sendData['texto'] as $key => $value) {
          if($value == ""){
            $this->error['error_texto']['texto_'.$key] = 'Preecha o campo texto!';
          }
        }
      }
      if (isset($sendData['link'])) {
        foreach ($sendData['link'] as $key => $value) {
          if($value == ""){
            $this->error['error_link']['link_'.$key] = 'Preecha o campo link!';
          }
        }
      }
      if (isset($sendData['subtexto'])) {
        foreach ($sendData['subtexto'] as $key => $value) {
          foreach ($value as $subkey => $subvalue) {
            if($subvalue == ""){
              $this->error['error_subtexto']['subtexto_' . $key . '_' .$subkey] = 'Preecha o campo subtexto!';
            }
          }
        }
      }
      if (isset($sendData['sublink'])) {
        foreach ($sendData['sublink'] as $key => $value) {
          foreach ($value as $subkey => $subvalue) {
            if($subvalue == ""){
              $this->error['error_sublink']['sublink_' . $key . '_' .$subkey] = 'Preecha o campo sublink!';
            }
          }
        }
      }

      if(isset($sendData['wg24_futura_of_age_status']) && ($sendData['wg24_futura_of_age_status'] == Type_Status::Tp_Habilitado) ){

        if(isset($sendData['wg24_futura_of_age_type_message']) && ($sendData['wg24_futura_of_age_type_message'] == Type_MessageOfAge::Tp_Selecione) ){
          $this->error['wg24_futura_of_age_type_message'] =  $this->language->get('error_wg24_futura_of_age_type_message');
        }

        if(isset($sendData['wg24_futura_of_age_link']) && ($sendData['wg24_futura_of_age_link'] == '') ){
          $this->error['wg24_futura_of_age_link'] =  $this->language->get('error_wg24_futura_of_age_link');
        }

        if(isset($sendData['wg24_futura_of_age_type_message']) && ($sendData['wg24_futura_of_age_type_message'] == Type_MessageOfAge:: Tp_TelaInteira) && !$sendData['wg24_futura_of_age_logo']){
          $this->error['wg24_futura_of_age_logo'] =  $this->language->get('error_wg24_futura_of_age_logo');
        }

        if(isset($sendData['wg24_futura_of_age_type_message']) && ($sendData['wg24_futura_of_age_type_message'] == Type_MessageOfAge:: Tp_TelaInteira) && !$sendData['wg24_futura_of_age_background']){
          $this->error['wg24_futura_of_age_background'] =  $this->language->get('error_wg24_futura_of_age_background');
        }

      }

      if(isset($sendData['wg24_seo_categoria_status'])  && ($sendData['wg24_seo_categoria_status']==Type_StatusEn::Tp_Enable) && isset($sendData['wg24_seo_categoria_tituloini']) && (utf8_strlen($sendData['wg24_seo_categoria_tituloini'])<1)){
        $this->error['wg24_seo_categoria_tituloini'] = $this->language->get('error_wg24_seo_categoria_tituloini');
      }

      if(isset($sendData['wg24_seo_categoria_status'])  && ($sendData['wg24_seo_categoria_status']==Type_StatusEn::Tp_Enable) && isset($sendData['wg24_seo_categoria_titulofim']) && (utf8_strlen($sendData['wg24_seo_categoria_titulofim'])<1)){
        $this->error['wg24_seo_categoria_titulofim'] = $this->language->get('error_wg24_seo_categoria_titulofim');
      }

      if(isset($sendData['wg24_seo_fer_facebook_status']) && ($sendData['wg24_seo_fer_facebook_status']=='enable')){
        if(trim($sendData['wg24_seo_fer_facebook_pixel'])==''){
            $this->error['wg24_seo_fer_facebook_pixel'] = $this->language->get('error_wg24_seo_fer_facebook_pixel');
        }
      }

    }


    if (!$this->error) {
      return true;
    } else {
      return false;
    }
  }

  public function setError(){
    $this->validate();
  }

  public function getError(){
    return $this->error;
  }
}
