templates/front/main_page/includes/js/main_page_js.twig line 1

Open in your IDE?
  1. {% set searchIndustry   = search_options.searchIndustries       is defined ? search_options.searchIndustries    : '' %}
  2. {% set searchTechnology = search_options.searchTechnologies     is defined ? search_options.searchTechnologies  : '' %}
  3. {% set searchLocation   = search_options.searchLocations        is defined ? search_options.searchLocations     : '' %}
  4. {% set searchCompany    = search_options.searchCompany          is defined ? search_options.searchCompany       : '' %}
  5. {% set searchOfferName  = search_options.searchOfferName        is defined ? search_options.searchOfferName     : '' %}
  6. {% set searchAnother    = search_options.searchAnother          is defined ? search_options.searchAnother       : '' %}
  7. {% set technology       = search_options.technologies           is defined ? search_options.technologies        : '' %}
  8. {% set ownIndustry      = search_options.ownIndustries          is defined ? search_options.ownIndustries       : '' %}
  9. {% set ownTechnology    = search_options.ownTechnologies        is defined ? search_options.ownTechnologies     : '' %}
  10. {% set ownLocation      = search_options.ownLocations           is defined ? search_options.ownLocations        : '' %}
  11. {% set jobLevel         = search_options.jobLevel               is defined ? search_options.jobLevel            : '' %}
  12. {% set search           = search_options.search                 is defined ? search_options.search              : '' %}
  13. {% set jobLevelsArray   = lvl_jobs                              is defined ? lvl_jobs                           : '' %}
  14. {% set isUserLogin      = app.user                              is defined and app.user is not empty ? true     : false %}
  15. {% include 'front/main_page/includes/js/slug_js.twig' %}
  16. {% include 'front/main_page/includes/js/cookie_js.twig' %}
  17. <script>
  18.     let searchCompany       = {{ searchCompany|json_encode|raw }};
  19.     let searchIndustry      = {{ searchIndustry|json_encode|raw }};
  20.     let searchTechnology    = {{ searchTechnology|json_encode|raw }};
  21.     let searchLocation      = {{ searchLocation|json_encode|raw }};
  22.     let searchOfferName     = {{ searchOfferName|json_encode|raw }};
  23.     let searchAnother       = {{ searchAnother|json_encode|raw }};
  24.     let ownIndustry         = {{ ownIndustry|json_encode|raw }};
  25.     let ownTechnology       = {{ ownTechnology|json_encode|raw }};
  26.     let technology          = {{ technology|json_encode|raw }};
  27.     let ownLocation         = {{ ownLocation|json_encode|raw }};
  28.     let search              = {{ search|json_encode|raw }};
  29.     let language            = `{{ app.request.locale }}`;
  30.     let filtersString       = '';
  31.     let resut_params = [];
  32.     let searchValueNoSelect = "";
  33.     let autocomplete;
  34.     let selectParams        = {};
  35.     let numberSelectedFilters = '';
  36.     let historyKeyUp = '';
  37.     $('.industry-select').select2({});
  38.     $('.search-select').select2({});
  39.     $('.location-select').select2({});
  40.     $('.technology-select').select2({
  41.         maximumSelectionLength: `{{ max_search_params_own }}`,
  42.         dropdownCssClass: 'dropdown_technology_list_items',
  43.         placeholder: `{{ 'USER_ZONE.HOME_PAGE.PLACEHOLDER_DROPDOWN_FILTER_INPUT_1'|trans }}`,
  44.         language: {
  45.             noResults: function () {
  46.                 return '';
  47.             },
  48.             maximumSelected: function () {
  49.                 return `{{ 'USER_ZONE.HOME_PAGE.PLACEHOLDER_SELECT2_MAX_SELECT_FILTER'|trans }}`;
  50.             }
  51.         },
  52.         tags: true
  53.     });
  54.     // START FUNCTION SELECT WHEN CLOSING SELECT 2
  55.     $(document).on('keyup','.select2-search__field',function(e){
  56.         if(e.key == "Enter") {
  57.             $('.search-select').select2("close");
  58.         }
  59.         historyKeyUp = e.key;
  60.     });
  61.     $('.search-select').on("select2:opening", function(e){
  62.         if(historyKeyUp == 'Enter') {
  63.             $(this).select2("close");
  64.             ParamsToSearch();
  65.             historyKeyUp = '';
  66.         }
  67.     });
  68.     $('.search-select').on("select2:select", function(e){
  69.         historyKeyUp = '';
  70.     });
  71.     $('.search-select').on("select2:selecting", function(e){
  72.         historyKeyUp = '';
  73.     });
  74.     // // Remove cookies
  75.     // eraseCookie('accept_cookies');
  76.     // Check accept cookies is set
  77.     checkCookie('accept_cookies');
  78.     $(document).on('click', '.select2-selection__choice__remove', function(){
  79.         let itemNameToRemove = slug($(this)[0].nextSibling.innerText);
  80.         $('.technology-row .col-md-4').find("label[for='"+ itemNameToRemove +"']").click();
  81.         $('.another-row .col-md-4').find("[data-nameslug='"+ itemNameToRemove +"']").click();
  82.         $('.industry-row .col-md-4').find("[data-nameslug='"+ itemNameToRemove +"']").click();
  83.         $('.location-row .col-md-4').find("[data-nameslug='"+ itemNameToRemove +"']").click();
  84.         $('.location-select').find("option[value='" + itemNameToRemove + "']").remove();
  85.         $('.technology-select').find("option[value='" + itemNameToRemove + "']").remove();
  86.         checkSelectedItemInOwnSelect2();
  87.     });
  88.     function checkSelectedItemInOwnSelect2(){
  89.         let industrySelectlength    = $('.industry-select').val().length;
  90.         let locationSelectlength    = $('.location-select').val().length;
  91.         let technologySelectlength  = $('.technology-select').val().length;
  92.         let selectedIndustry        = $('.industry-row .col-md-4 .active').toArray().length;
  93.         let selectedLocation        = $('.location-row .col-md-4 .active').toArray().length;
  94.         let selectedTechnology      = $('.technology-row .col-md-4 .active').toArray().length;
  95.         let industrylength          = industrySelectlength + selectedIndustry;
  96.         let locationlength          = locationSelectlength + selectedLocation;
  97.         let technologylength        = technologySelectlength + selectedTechnology;
  98.         if(industrylength > 0){
  99.             $('.count-select-industry').html('('+ industrylength +')');
  100.         }else{
  101.             $('.count-select-industry').html('');
  102.         }
  103.         if(locationlength > 0){
  104.             $('.count-select-location').html('('+ locationlength +')');
  105.         }else{
  106.             $('.count-select-location').html('');
  107.         }
  108.         if(technologylength > 0){
  109.             $('.count-select-technology').html('('+ technologylength +')');
  110.         }else{
  111.             $('.count-select-technology').html('');
  112.         }
  113.     }
  114.     function selectTextSearch(){
  115.         let values = [];
  116.         let R = 0;
  117.         if($('.search-select').val() != ""){
  118.             $('.search-select').val().forEach((val,key)=>{
  119.                 values[R] = $('.search-select').val()[key];
  120.                 R++;
  121.             });
  122.         }else{
  123.             values[R] = searchValueNoSelect;
  124.             R++;
  125.         }
  126.         if(searchValueNoSelect != ''){
  127.             if(values != ""){
  128.                 values[R] = searchValueNoSelect;
  129.                 R++;
  130.                 checkAndAddOptionToSelect('.search-select', '', values);
  131.                 $('.search-select').val(values);
  132.                 $('.search-select').trigger('change');
  133.             }
  134.         searchValueNoSelect = "";
  135.         }
  136.     }
  137.     function checkOwnLocation(){
  138.         let classSelect = '.location-select';
  139.         if(selectParams.ownLocation != '' && typeof selectParams.ownLocation !== "undefined"){
  140.             if(Array.isArray(ownLocation) && ownLocation != ''){
  141.                 selectParams.ownLocation.forEach((val, key) =>{
  142.                     ownLocation.forEach((val_1, key_1) =>{
  143.                         if(selectParams.ownLocation[key].id == ownLocation[key_1]){
  144.                             let newOption = new Option(selectParams.ownLocation[key].text, selectParams.ownLocation[key].id, true, true);
  145.                             $(classSelect).append(newOption).trigger('change');
  146.                         }
  147.                     });
  148.                 });
  149.             }
  150.         }
  151.     }
  152.     function checkValueFromUrlAndCheckElement(){
  153.         let row1 = $('.technology-row .row-technology-element-1 label').toArray();
  154.         let row2 = $('.technology-row .row-technology-element-2 label').toArray();
  155.         let row3 = $('.technology-row .row-technology-element-3 label').toArray();
  156.         let data = $.extend(technology, searchTechnology);
  157.         let selectLength = technology.length;
  158.         let isActiveItem = false;
  159.         let count = 0;
  160.         let R = 0;
  161.         let I = 0;
  162.         let notHaveActive = [];
  163.         let values_own = [];
  164.             if(data != '' && $.isEmptyObject(data) == false){
  165.                 data.forEach((val_1,key_1)=>{
  166.                     isActiveItem = false;
  167.                     row1.forEach((val,key)=>{
  168.                         if($(row1[key]).attr('for') == data[key_1]){
  169.                             if($(row1[key]).hasClass('active') == false){
  170.                                 $(row1[key]).addClass('active');
  171.                                 count++;
  172.                             }
  173.                              isActiveItem = true;
  174.                         }
  175.                     });
  176.                     row2.forEach((val,key)=>{
  177.                             if($(row2[key]).attr('for') == data[key_1]){
  178.                                 if($(row2[key]).hasClass('active') == false){
  179.                                     $(row2[key]).addClass('active');
  180.                                     count++;
  181.                                 }
  182.                                  isActiveItem = true;
  183.                             }
  184.                     });
  185.                     row3.forEach((val,key)=>{
  186.                         if($(row3[key]).attr('for') == data[key_1]){
  187.                             if($(row3[key]).hasClass('active') == false){
  188.                                 $(row3[key]).addClass('active');
  189.                                 count++;
  190.                             }
  191.                             isActiveItem = true;
  192.                         }
  193.                     });
  194.                 if(selectParams.technology != '' && typeof selectParams.technology !== "undefined"){
  195.                     selectParams.technology.forEach((val_2,key_2)=>{
  196.                         if(selectParams.technology[key_2].id == data[key_1] && typeof selectParams.technology[key_2].isShow == 'undefined'){
  197.                             values_own[R] = data[key_1];
  198.                             R++;
  199.                         }
  200.                     });
  201.                 }
  202.                 if(isActiveItem == false){
  203.                     if($.inArray(data[key_1],notHaveActive) == -1){
  204.                         notHaveActive[I] = data[key_1];
  205.                         I++;
  206.                     }
  207.                 }
  208.                 });
  209.                 count = selectLength + ownTechnology.length;
  210.                 $('.count-select-technology').html('('+ count +')');
  211.             }
  212.         checkCountSelectFilters();
  213.     }
  214.     function technology_select_element(response){
  215.         checkValueFromUrlAndCheckElement();
  216.     }
  217.     function checkCountSelectFilters(){
  218.         let industrySelectlength    = $('.industry-select').val().length;
  219.         let locationSelectlength    = $('.location-select').val().length;
  220.         let technologySelectlength  = $('.technology-select').val().length;
  221.         let industrylength      =   $('.industry-row    .col-md-4 label.active').toArray().length;
  222.         let locationlength      =   $('.location-row    .col-md-4 label.active').toArray().length;
  223.         let technologylength    =   $('.technology-row  .col-md-4 label.active').toArray().length;
  224.         let anotherlength       =   $('.another-row     .col-md-4 label.active').toArray().length
  225.         let salarylength = 0;
  226.         if($('.input-price-to').val() != 50000 || $('.input-price-from').val() != 0 || $('.contract-select').val() != 'wszystkie'){
  227.             salarylength = 1;
  228.         }
  229.         let allSelectedFilters = industrySelectlength + locationSelectlength + technologySelectlength + industrylength + locationlength + technologylength + anotherlength + salarylength;
  230.         if(allSelectedFilters != 0){
  231.             $('.alert-all-selected-filters').show();
  232.             if($('.button-filter-span').hasClass('pe-4') == false){
  233.                 $('.button-filter-span').addClass('pe-4');
  234.             }
  235.         }else{
  236.             $('.alert-all-selected-filters').hide();
  237.             $('.button-filter-span').removeClass('pe-4');
  238.         }
  239.         if(allSelectedFilters < 10){
  240.             $('.alert-all-selected-filters').removeClass('p-1');
  241.             $('.all-selected-filters-mobile').css('left', '90%');
  242.             $('.all-selected-filters-mobile').css('padding', '-0.75rem!important');
  243.         }else{
  244.             $('.all-selected-filters-mobile').removeAttr('style');
  245.             $('.all-selected-filters-mobile').css('left','90%');
  246.             $('.alert-all-selected-filters').addClass('p-1');
  247.         }
  248.         $('.all-selected-filters-mobile').html(allSelectedFilters);
  249.         numberSelectedFilters = allSelectedFilters;
  250.     }
  251.     function clearListTechnology(){
  252.         let row_params_1 = $('.technology-row .row-technology-element-1 label').toArray();
  253.         let row_params_2 = $('.technology-row .row-technology-element-2 label').toArray();
  254.         let row_params_3 = $('.technology-row .row-technology-element-3 label').toArray();
  255.         row_params_1.forEach((val,key)=>{
  256.             $(row_params_1[key]).remove();
  257.         });
  258.         row_params_2.forEach((val,key)=>{
  259.             $(row_params_2[key]).remove();
  260.         });
  261.         row_params_3.forEach((val,key)=>{
  262.             $(row_params_3[key]).remove();
  263.         });
  264.         checkCountSelectFilters();
  265.     }
  266.     function addItemsToListTechnology(params, flag){
  267.         const ELEMENT_TECHNOLOGY = (id, name, slug) =>{
  268.             return `
  269.             <label for="`+slug+`"class="dropdown-item filter-element technology-check-selected">
  270.                 `+name+`
  271.             </label>
  272.             <input
  273.                 type="checkbox"
  274.                 class="custom-control-input invisible-checkbox filter-checkbox"
  275.                 id="`+slug+`"
  276.                 name="filters[technology][]"
  277.                 value="`+slug+`"
  278.                 data-category-element="technology"
  279.             >`
  280.         };
  281.         let row_1 = $('.row-technology-element-1');
  282.         let row_2 = $('.row-technology-element-2');
  283.         let row_3 = $('.row-technology-element-3');
  284.         let pointMax = 0;
  285.         let countindustry = $('.industry-row .col-md-4 .active').length;
  286.         if(flag == 0){
  287.             params.forEach((val,key) => {
  288.                 if(jQuery.type(params[key].point) == 'object'){
  289.                     for(const property in params[key].point){
  290.                         if(pointMax < params[key].point[property]){
  291.                             pointMax = params[key].point[property];
  292.                         }
  293.                     }params[key].pointMax       = pointMax;
  294.                 }else{params[key].pointMax       = 0;}
  295.                 pointMax = 0;
  296.             });
  297.             params.sort((a,b)=>  b.pointMax - a.pointMax);
  298.         }else{
  299.             params.sort((a,b)=>  b.point - a.point);
  300.         }
  301.         if(countindustry > 1){
  302.             params.sort((a,b)=>  b.pointMax - a.pointMax);
  303.         }
  304.         params.forEach((val,key)=>{
  305.             let row_1_length = $('.technology-row .row-technology-element-1 label').length;
  306.             let row_2_length = $('.technology-row .row-technology-element-2 label').length;
  307.             let row_3_length = $('.technology-row .row-technology-element-3 label').length;
  308.             let row_1_label  = $('.technology-row  .row-technology-element-1 label').toArray();
  309.             let Count_min    = Math.min(row_1_length, row_2_length, row_3_length);
  310.             if(row_1_length == Count_min){
  311.                 if(row_1_length <= 4){
  312.                     $(row_1).append(ELEMENT_TECHNOLOGY(params[key].id,params[key].text,params[key].id));
  313.                     params[key].isShow = true;
  314.                     row_1_length++;
  315.                     return false;
  316.                 }
  317.             }
  318.             if(row_2_length == Count_min){
  319.                 if(row_2_length <= 4){
  320.                     $(row_2).append(ELEMENT_TECHNOLOGY(params[key].id,params[key].text,params[key].id));
  321.                     params[key].isShow = true;
  322.                     row_2_length++;
  323.                     return false;
  324.                 }
  325.             }
  326.             if(row_3_length == Count_min){
  327.                 if(row_3_length <= 4){
  328.                    $(ELEMENT_TECHNOLOGY(params[key].id,params[key].text,params[key].id)).insertBefore($('.technology-select'));
  329.                     params[key].isShow = true;
  330.                     row_3_length++;
  331.                     return false;
  332.                 }
  333.             }
  334.         });
  335.          $('.technology-check-selected').on('click',function(){
  336.             let isActive = $(this).hasClass('active');
  337.             if(isActive == true){
  338.                 $(this).removeClass('active')
  339.             }else{
  340.                 $(this).addClass('active')
  341.             }
  342.             let countSelected = $('.technology-row .col-md-4 .active').length;
  343.             let length = countSelected == 0 ? '' : '('+ countSelected +')';
  344.             $('.count-select-technology').html(length);
  345.             checkCountSelectFilters();
  346.         });
  347.         checkCountSelectFilters();
  348.     }
  349.     function getAllSelectedIndustry(flag){
  350.         let selectedIndustry = $('.industry-row .col-md-4 .active').toArray();
  351.         let selected_ids = [];
  352.         let response = selectParams.technology;
  353.         let params = [];
  354.         let params_slug = [];
  355.         let k = 0;
  356.         let newOwnParams = [];
  357.         let x = 0;
  358.         let isTechnologyArray = [];
  359.         selectedIndustry.forEach((val, key)=>{
  360.             selected_ids[key] = $(selectedIndustry[key]).data('item-industry-id');
  361.         });
  362.         if(selectedIndustry != '' ){
  363.             $.ajax({
  364.                 url: '/get-items/by-industry',
  365.                 method:'POST',
  366.                 data: {
  367.                     industryId: selected_ids,
  368.                     locale: language
  369.                 },
  370.                 success: function(data){
  371.                     if(typeof data != 'undefined' && data != [] && jQuery.isEmptyObject(data) == false){
  372.                         data.forEach((val,key)=>{
  373.                             if(params_slug.includes(data[key].id) == false){
  374.                                 if(flag == 1){
  375.                                     if(jQuery.type(data[key].point) == 'object'){
  376.                                         data[key].point = data[key].point[selected_ids[key_2]];
  377.                                     }
  378.                                 }
  379.                                 params[k] = data[key];
  380.                                 params_slug[k] = data[key].id;
  381.                                 k++;
  382.                             }
  383.                             if(typeof technology != 'undefined' && technology != '' ){
  384.                                 technology.forEach((val_3,key_3)=>{
  385.                                     if(technology[key_3] == data[key].id){
  386.                                         isTechnologyArray[x] = technology[key_3];
  387.                                         x++;
  388.                                     }
  389.                                 });
  390.                             }
  391.                         });
  392.                         if(typeof technology != 'undefined' && technology != '' ){
  393.                             technology.forEach((val_4,key_4)=>{
  394.                                 if($.inArray(technology[key_4],isTechnologyArray) == -1){
  395.                                     if($.inArray(technology[key_4],newOwnParams) == -1 && newOwnParams.length < 3){
  396.                                         newOwnParams.push(technology[key_4])
  397.                                     }
  398.                                 }
  399.                             });
  400.                         }
  401.                         if(typeof ownTechnology != 'undefined' && ownTechnology != '' ){
  402.                             ownTechnology.forEach((val_5,key_5)=>{
  403.                                 if($.inArray(ownTechnology[key_5],newOwnParams) == -1 && newOwnParams.length < 3){
  404.                                       newOwnParams.push(ownTechnology[key_5]);
  405.                                 }
  406.                             });
  407.                         }
  408.                         clearListTechnology();
  409.                         addItemsToListTechnology(params, flag);
  410.                         technology_select_element(params);
  411.                         let countSelected = $('.technology-row .col-md-4 .active').length + newOwnParams.length;
  412.                         let length = countSelected == 0 ? '' : '('+ countSelected +')';
  413.                         $('.count-select-technology').html(length);
  414.                     }
  415.                 }
  416.             });
  417.         }else{
  418.             if(typeof response != "undefined"){
  419.                 response.forEach((val,key)=>{
  420.                     if(typeof technology != 'undefined' && technology != '' ){
  421.                         technology.forEach((val_3,key_3)=>{
  422.                             if(technology[key_3] == response[key].id){
  423.                                 isTechnologyArray[x] = technology[key_3];
  424.                                 x++;
  425.                             }
  426.                         });
  427.                     }
  428.                 });
  429.             }
  430.             if(typeof technology != 'undefined' && technology != '' ){
  431.                 technology.forEach((val_4,key_4)=>{
  432.                     if($.inArray(technology[key_4],isTechnologyArray) == -1){
  433.                         if($.inArray(technology[key_4],newOwnParams) == -1 && newOwnParams.length < 3){
  434.                             newOwnParams.push(technology[key_4])
  435.                         }
  436.                     }
  437.                 });
  438.             }
  439.             if(typeof ownTechnology != 'undefined' && ownTechnology != '' ){
  440.                 ownTechnology.forEach((val_5,key_5)=>{
  441.                     if($.inArray(ownTechnology[key_5],newOwnParams) == -1 && newOwnParams.length < 3){
  442.                             newOwnParams.push(ownTechnology[key_5]);
  443.                     }
  444.                 });
  445.             }
  446.         }
  447.         if(typeof response != "undefined"){
  448.             clearListTechnology();
  449.             addItemsToListTechnology(response, flag);
  450.             technology_select_element(response);
  451.         }
  452.         checkValueFromUrlAndCheckElement();
  453.         checkCountSelectFilters();
  454.         let countSelected = $('.technology-row .col-md-4 .active').length + newOwnParams.length;
  455.         if(countSelected > 0){
  456.             let length = countSelected == 0 ? '' : '('+ countSelected +')';
  457.             $('.count-select-technology').html(length);
  458.         }
  459.     }
  460.     function checkIsActive(element,flag){
  461.         if(flag == true){
  462.             $(element).removeClass('active');
  463.         }else{
  464.             $(element).addClass('active');
  465.         }
  466.     }
  467.     function getCountAnother(jobLevel){
  468.         const ELEMENT_JOB_LEVEL = (id, name, slug) =>{
  469.             return `
  470.                 <label for="`+id+`-`+slug+`" class="dropdown-item filter-element label-level-checkbox active">`+name+`</label>
  471.                 <input type="checkbox"
  472.                 class="custom-control-input invisible-checkbox filter-checkbox job-level-checkbox"
  473.                 id="`+id+`-`+slug+`"
  474.                 name="filters[technology][job_level][] "value="`+slug+`"
  475.                 data-category-element="another">`
  476.             };
  477.         let jobIds = [];
  478.         jobLevel.forEach((val, key) => {
  479.             jobIds[key] = $('.another-select option[value="'+val+'"]').data('id');
  480.         });
  481.         if(typeof jobLevel != "undefined" && jobLevel != ''){
  482.             $.ajax({
  483.             url: '/jobLevel/get',
  484.             data: {jobIds},
  485.             dataType: "json",
  486.             method:'POST',
  487.             success: (data)=>{
  488.                 data.forEach((val,key)=>{
  489.                     let count_row_1 = $('.another-row .another-row-1 label').length;
  490.                     let count_row_2 = $('.another-row .another-row-2 label').length;
  491.                     let count_row_3 = $('.another-row .another-row-3 label').length;
  492.                     let Count_min   = Math.min(count_row_1, count_row_2, count_row_3);
  493.                     if(count_row_1 == Count_min ){
  494.                         $('.another-row-1').append(ELEMENT_JOB_LEVEL(data[key].id,data[key].name,data[key].slug));
  495.                         count_row_1++;
  496.                         return false;
  497.                     }
  498.                     if(count_row_2 == Count_min ){
  499.                         $('.another-row-2').append(ELEMENT_JOB_LEVEL(data[key].id,data[key].name,data[key].slug));
  500.                         count_row_2++;
  501.                         return false;
  502.                     }
  503.                     if(count_row_3 == Count_min ){
  504.                         $('.another-row-3').append(ELEMENT_JOB_LEVEL(data[key].id,data[key].name,data[key].slug));
  505.                         count_row_3++;
  506.                         return false;
  507.                     }
  508.                 });
  509.                 $('.label-level-checkbox').click(function(){
  510.                     let isClass = $(this).hasClass('active');
  511.                     checkIsActive($(this), isClass);
  512.                 });
  513.             }});
  514.         }
  515.     }
  516.     function checkWidthWindow(){
  517.         let w = $( window ).width();
  518.         let element_approve = '.button-filter-drop-down';
  519.         let element_clear_filters = '.clear-filters-button';
  520.         let trans_mobile = `{{ 'USER_ZONE.HOME_PAGE.BUTTON_FILTER_6_MOBILE'|trans }}`;
  521.         let trans = ` {{ 'USER_ZONE.HOME_PAGE.BUTTON_FILTER_6'|trans }}`;
  522.         let box_alert_cookies = '.box-aler-cookies-div';
  523.         if(w <= 768){
  524.             if($(element_approve).hasClass('filter-button') === true){
  525.                 $(element_approve).removeClass('filter-button');
  526.             }
  527.             if($(element_clear_filters).hasClass('clear-all-filters-search') === true){
  528.                 $(element_clear_filters).html(trans_mobile);
  529.                 $(element_clear_filters).removeClass('clear-all-filters-search');
  530.             }
  531.             if($(box_alert_cookies).hasClass('text-center') === true){
  532.                 $(box_alert_cookies).removeClass('text-center');
  533.                 $(box_alert_cookies).addClass('text-left');
  534.             }
  535.             if($(element_clear_filters).hasClass('clear-all-filters-mobile') === false){
  536.                 $(element_clear_filters).addClass('clear-all-filters-mobile');
  537.             }
  538.         }else{
  539.             if($(element_approve).hasClass('filter-button') === false){
  540.                 $(element_approve).addClass('filter-button');
  541.             }
  542.             if($(box_alert_cookies).hasClass('text-left') === true){
  543.                 $(box_alert_cookies).removeClass('text-left');
  544.                 $(box_alert_cookies).addClass('text-center');
  545.             }
  546.             if($(element_clear_filters).hasClass('clear-all-filters-search') === false){
  547.                 $(element_clear_filters).html(trans);
  548.                 $(element_clear_filters).addClass('clear-all-filters-search');
  549.             }
  550.             if($(element_clear_filters).hasClass('clear-all-filters-mobile') === true){
  551.                 $(element_clear_filters).removeClass('clear-all-filters-mobile');
  552.             }
  553.         }
  554.     }
  555.     function openSelectAftreClickLabel(element) {
  556.         $(element).trigger('open');
  557.     }
  558.     function clearAllSelect() {
  559.         let url = `{{ path('front-page', {url: get_page_url(app.request.locale, constant('App\\Config\\Pages::OFFERS_INDUSTRY'))}) }}`;
  560.         location.href = url;
  561.     }
  562.     //TODO -> SEARCH IN GLOBAL SEARCH
  563.     function ParamsToSearch() {
  564.         selectTextSearch();
  565.         let url = `{{ path('front-page', {url: get_page_url(app.request.locale, constant('App\\Config\\Pages::OFFERS_INDUSTRY'))}) }}`;
  566.         let param = '';
  567.         response = checkUrlAndCreateToFilters();
  568.         filtersString += response.filtersString;
  569.         param = response.param;
  570.          if (param != '' || filtersString != '') {
  571.             if (resut_params != '') {
  572.                 $.ajax({
  573.                     url: url,
  574.                     data: {resut_params},
  575.                     method: 'POST',
  576.                     success: (data) => {
  577.                         window.location.href = url + filtersString + param;
  578.                     }
  579.                 });
  580.             } else {
  581.                 window.location.href = url + filtersString + param;
  582.             }
  583.         }
  584.         return false;
  585.     }
  586.     // TODO -> SEARCH ALL FILTERS
  587.     function checkUrlAndCreateToFilters() {
  588.         let arraySelect2 = [];
  589.         let param = '';
  590.         let salaryTo    = $('.input-price-to').val() != '' ? $('.input-price-to').val() : 50000;
  591.         let salaryFrom  = $('.input-price-from').val() != '' ? $('.input-price-from').val() : 0;
  592.         let currency    = $('#currency-select').val();
  593.         let type        = $('#contract-select').val();
  594.         let selectedActiveFor = [];
  595.         let selectedActive = [];
  596.         let values      = [];
  597.         let value       = '';
  598.         let filtersString = [];
  599.         let selectedLevels = [];
  600.         let selectedArray2 = [];
  601.         let countIsInArray = 0;
  602.         let searchPhrase;
  603.         let phrase = '';
  604.         selectedArray2[0] = '.industry-select';
  605.         selectedArray2[1] = '.another-select';
  606.         selectedArray2[2] = '.location-select';
  607.         selectedArray2[3] = '.technology-select';
  608.         selectedArray2[4] = '.job-level-checkbox';
  609.         let className = [];
  610.         className[0] = 'industry';
  611.         className[1] = 'another';
  612.         className[2] = 'location';
  613.         className[3] = 'technology';
  614.         className[4] = 'job-level';
  615.         selectedArray2.forEach((val, key) => {
  616.             if ($(selectedArray2[key]).val() != '') {
  617.                 if ($(selectedArray2[key]).val() == []) {
  618.                     $(selectedArray2[key]).val().forEach((val, key_1) => {
  619.                         arraySelect2[arraySelect2.length] = {
  620.                             value: $(selectedArray2[key]).val()[key_1],
  621.                             category: className[key],
  622.                             type: 'own'
  623.                         };
  624.                     });
  625.                 } else {
  626.                     arraySelect2[arraySelect2.length] = {
  627.                         value: $(selectedArray2[key]).val(),
  628.                         category: className[key],
  629.                         type: 'own'
  630.                     };
  631.                 }
  632.             }
  633.         });
  634.         for (i = 0; i <= selectedArray2.length; i++) {
  635.             $('.' + className[i] + '-row .col-md-4 .active').each(function (data, element) {
  636.                 selectedActiveFor[selectedActiveFor.length] = {
  637.                     name: $(element).attr('for'),
  638.                     category: className[i],
  639.                     type: 'select-for'
  640.                 };
  641.             });
  642.         }
  643.         selectedActiveFor.forEach((val, key) => {
  644.             $('.' + selectedActiveFor[key].category + '-row .col-md-4 input#' + selectedActiveFor[key].name).each(function (data, element) {
  645.                 let type = $(element).hasClass('job-level-checkbox') ? 'job-level' : 'select';
  646.                 if(type == 'select' || false == selectedLevels.includes($(element).val())) {
  647.                     selectedActive[selectedActive.length] = {
  648.                         name: $(element).val(),
  649.                         category: selectedActiveFor[key].category,
  650.                         type: type
  651.                     };
  652.                     selectedLevels.push($(element).val());
  653.                 }
  654.             });
  655.         });
  656.         selectedActive.forEach((val, key) => {
  657.             if(filtersString.includes('filters['+ selectedActive[key].category +'][]='+ slug(selectedActive[key].name)) == false){
  658.                 if (filtersString != '') {
  659.                     filtersString += '&';
  660.                 } else {
  661.                     filtersString += '?';
  662.                 }
  663.             }
  664.             if (selectedActive[key].type == 'job-level') {
  665.                 filtersString += 'filters[technology][job_level][]=' + selectedActive[key].name;
  666.             } else {
  667.                 if(filtersString.includes('filters['+ selectedActive[key].category +'][]='+ slug(selectedActive[key].name)) == false){
  668.                     filtersString += 'filters[' + selectedActive[key].category + '][]=' + slug(selectedActive[key].name);
  669.                 }
  670.             }
  671.             selectedActive[key].type = 'select';
  672.         });
  673.         arraySelect2.forEach((val, key) => {
  674.             value = arraySelect2[key].value === [] ? arraySelect2[key].value[0] : arraySelect2[key].value;
  675.             if (filtersString != '' || param != '') {
  676.                 if (arraySelect2[key].category == 'another' ) {
  677.                     if (typeof value != 'undefined' && value != '') {
  678.                         param += '&';
  679.                         param += 'filters[technology][job_level][]=' + value;
  680.                     }
  681.                 } else{
  682.                     if (Array.isArray(value)) {
  683.                         value.forEach((val_1, key_1) => {
  684.                             if(typeof value[key_1] != 'undefined' && value[key_1] != ''){
  685.                                 param += '&';
  686.                                 param += 'filters[' + arraySelect2[key].category + '_' + arraySelect2[key].type + '][]=' + slug(value[key_1]);
  687.                                 if(arraySelect2[key].category + '_' + arraySelect2[key].type == 'technology_own'){
  688.                                     param += '&';
  689.                                 }
  690.                             }
  691.                         });
  692.                     } else {
  693.                         if(typeof value != 'undefined' && value != '' && arraySelect2[key].category != 'job-level'){
  694.                             param += '&';
  695.                             param += 'filters[' + arraySelect2[key].category + '_' + arraySelect2[key].type + '][]=' +slug(value);
  696.                         }
  697.                     }
  698.                 }
  699.             } else {
  700.                 if (arraySelect2[key].category == 'another' ) {
  701.                     if (typeof value != 'undefined' && value != '') {
  702.                         param += '?';
  703.                         param += 'filters[technology][job_level][]=' + value;
  704.                     }
  705.                 } else {
  706.                     if (Array.isArray(value)) {
  707.                         value.forEach((val_1, key_1) => {
  708.                             if(typeof value[key_1] != 'undefined' && value[key_1] != ''){
  709.                                 key_1 == 0 ? param += '?' : param += '&';
  710.                                 param += 'filters[' + arraySelect2[key].category + '_' + arraySelect2[key].type + '][]=' + slug(value[key_1]);
  711.                                 if(arraySelect2[key].category + '_' + arraySelect2[key].type == 'technology_own'){
  712.                                     param += '&';
  713.                                     searchPhrase = ownTechnology != '' ? ownTechnology.find(x=>x.search === slug(value[key_1])) : '';
  714.                                     if(searchPhrase != ''&& typeof searchPhrase != 'undefined'){
  715.                                         phrase = searchPhrase.phrase;
  716.                                     }else{
  717.                                         phrase = value[key_1];
  718.                                     }
  719.                                     param += 'filters[phrase]['+slug(value[key_1])+']='+phrase;
  720.                                 }
  721.                             }
  722.                         });
  723.                     } else {
  724.                         if(typeof value != 'undefined' && value != '' && arraySelect2[key].category != 'job-level'){
  725.                             param += '?';
  726.                             param += 'filters[' + arraySelect2[key].category + '_' + arraySelect2[key].type + '][]=' + slug(value);
  727.                             if(arraySelect2[key].category + '_' + arraySelect2[key].type == 'technology_own'){
  728.                                 param += '&';
  729.                                 searchPhrase = ownTechnology != '' ? ownTechnology.find(x=>x.search == slug(value)) : '';
  730.                                 if(searchPhrase != ''&& typeof searchPhrase != 'undefined'){
  731.                                     phrase = searchPhrase.phrase;
  732.                                 }else{
  733.                                     phrase = value;
  734.                                 }
  735.                                 param += 'filters[phrase]['+slug(value)+']='+phrase;
  736.                             }
  737.                         }
  738.                     }
  739.                 }
  740.             }
  741.         });
  742.                 $('.search-select').val().forEach((val, key) => {
  743.                     selectParams.search.forEach((val_1, key_1) => {
  744.                         let id = $('.search-select').val()[key];
  745.                         if(Array.isArray(selectParams.search[key_1].category)){
  746.                             selectParams.search[key_1].category.forEach((val_2,key_2)=>{
  747.                                 if (selectParams.search[key_1].id == id) {
  748.                                     if (param != ''||filtersString != '') {
  749.                                         param += '&filters[search_' + selectParams.search[key_1].category[key_2] + '][]=' + slug(selectParams.search[key_1].id);
  750.                                     } else {
  751.                                         param += '?filters[search_' + selectParams.search[key_1].category[key_2] + '][]=' + slug(selectParams.search[key_1].id);
  752.                                     }
  753.                                     if(param.includes('&filters[search][]='+ selectParams.search[key_1].id) == false){
  754.                                         param += '&filters[search][]='+ slug(selectParams.search[key_1].id);
  755.                                         param += '&';
  756.                                         searchPhrase = search != '' ? search.find(x=>x.search == slug(selectParams.search[key_1].id)) : '';
  757.                                         if(searchPhrase != ''&& typeof searchPhrase != 'undefined'){
  758.                                             phrase = searchPhrase.phrase;
  759.                                         }else{
  760.                                             phrase = selectParams.search[key_1].id;
  761.                                         }
  762.                                         param += 'filters[phrase]['+slug(selectParams.search[key_1].id)+']='+phrase;
  763.                                     }
  764.                                     countIsInArray++;
  765.                                 }
  766.                             });
  767.                         }else{
  768.                             if(selectParams.search[key_1].id == id) {
  769.                                 if(selectParams.search[key_1].category != 'location') {
  770.                                     if (param != ''||filtersString != '') {
  771.                                         param += '&filters[search_' + selectParams.search[key_1].category + '][]=' + slug(selectParams.search[key_1].id);
  772.                                     } else {
  773.                                         param += '?filters[search_' + selectParams.search[key_1].category + '][]=' + slug(selectParams.search[key_1].id);
  774.                                     }
  775.                                 }else{
  776.                                     if (param != ''||filtersString != '') {
  777.                                         param += '&filters[' + selectParams.search[key_1].category + '][]=' + slug(selectParams.search[key_1].id);
  778.                                     } else {
  779.                                         param += '?filters[' + selectParams.search[key_1].category + '][]=' + slug(selectParams.search[key_1].id);
  780.                                     }
  781.                                 }
  782.                                 if(param.includes('&filters[search][]='+ selectParams.search[key_1].id) == false){
  783.                                     param += param != ''||filtersString != '' ? '&': '?';
  784.                                     param += 'filters[search][]='+ slug(selectParams.search[key_1].id);
  785.                                     searchPhrase = search != '' ? search.find(x=>x.search == slug(selectParams.search[key_1].id)) : '';
  786.                                     if(searchPhrase != '' && typeof searchPhrase != 'undefined'){
  787.                                         phrase = searchPhrase.phrase;
  788.                                     }else{
  789.                                         phrase = selectParams.search[key_1].id;
  790.                                     }
  791.                                     if(selectParams.search[key_1].category != 'location') {
  792.                                         param += '&';
  793.                                         param += 'filters[phrase]['+slug(selectParams.search[key_1].id)+']='+phrase;
  794.                                     }
  795.                                 }
  796.                                 countIsInArray++;
  797.                             }
  798.                         }
  799.                     });
  800.                 });
  801.                 $('.search-select').val().forEach((val, key) => {
  802.                     if(param.includes(slug($('.search-select').val()[key])) == false && param.includes($('.search-select').val()[key]) == false){
  803.                         param += param != '' || filtersString != '' ? '&' : '?';
  804.                         param += 'filters[search][]=' + slug($('.search-select').val()[key]);
  805.                         param += '&';
  806.                         searchPhrase = search != '' ? selectParams.search.find(x=>x.id == slug($('.search-select').val()[key])) : '';
  807.                         if(searchPhrase != ''&& typeof searchPhrase != 'undefined'){
  808.                             phrase = searchPhrase.phrase;
  809.                         }else{
  810.                             phrase = $('.search-select').val()[key];
  811.                         }
  812.                         param += 'filters[phrase]['+slug($('.search-select').val()[key])+']='+phrase;
  813.                     }
  814.                 });
  815.         if(currency != 'pln' || type != 'wszystkie' || salaryTo != 50000 || salaryFrom != 0){
  816.             if (currency != '' && type != '') {
  817.                 if (param != '' || filtersString != '') {
  818.                     param += '&';
  819.                     param += 'filters[salary][from]=' + salaryFrom + '&filters[salary][to]=' + salaryTo + '&filters[salary][currency]=' + currency + '&filters[salary][type]=' + type + '&filters[page][]=1';
  820.                 } else {
  821.                     param += '?';
  822.                     param += 'filters[salary][from]=' + salaryFrom + '&filters[salary][to]=' + salaryTo + '&filters[salary][currency]=' + currency + '&filters[salary][type]=' + type + '&filters[page][]=1';
  823.                 }
  824.             }
  825.         }
  826.         param = prepareLocationToleranceUrl(param, filtersString);
  827.         return {
  828.             param: param,
  829.             filtersString: filtersString
  830.         }
  831.     }
  832.     function prepareLocationToleranceUrl(param, filtersString)
  833.     {
  834.         let locationTolerance = $('#locationTolerance').val();
  835.         if (locationTolerance === '') {
  836.             return param;
  837.         }
  838.         if (param != '' || filtersString != '') {
  839.             return param + '&filters[locationTolerance][]='+locationTolerance;
  840.         }
  841.         return  param + '?filters[locationTolerance][]='+locationTolerance;
  842.     }
  843.     function checkAndAddOptionToSelect(classSelect, className, data) {
  844.         if ($.isArray(data) === true) {
  845.             data.forEach((val, key) => {
  846.                 if ($(classSelect).find("option[value='" + data[key] + "']").length > 0) {
  847.                 } else {
  848.                     var newOption = new Option(data[key], data[key], true, true);
  849.                     $(classSelect).append(newOption).trigger('change');
  850.                 }
  851.             });
  852.         } else {
  853.             if ($(classSelect).find("option[value='" + data + "']").length > 0) {
  854.             } else {
  855.                 var newOption = new Option(data, data, true, true);
  856.                 $(classSelect).append(newOption).trigger('change');
  857.             }
  858.         }
  859.     }
  860.     function checkAndAddOptionToSelectWhenIsSearch(classSelect, className, data) {
  861.         let paramsToSelect = [];
  862.         let x = 0;
  863.         data.forEach((val, key) => {
  864.             if ($(classSelect).find("option[value='" + data[key]['search'] + "']").length > 0) {
  865.                 paramsToSelect[x] = data[key]['search'];
  866.                 x++;
  867.             } else {
  868.                 paramsToSelect[x] = data[key]['search'];
  869.                 var newOption = new Option(data[key]['phrase'], data[key]['search'], true, true);
  870.                 $(classSelect).append(newOption).trigger('change');
  871.                 x++;
  872.             }
  873.         });
  874.         $(classSelect).val().forEach((val,key) =>{
  875.             paramsToSelect[x] = $(classSelect).val()[key];
  876.             x++;
  877.         });
  878.         $(classSelect).val(paramsToSelect);
  879.         $(classSelect).trigger('change');
  880.     }
  881.     $(window).resize(function() {
  882.        checkWidthWindow();
  883.     });
  884.     // Remove count active technology when click industry label
  885.     $('.industry-label-remove-technology').on('click', function(){
  886.         $('.count-select-technology').html('');
  887.     });
  888.     // ACCEPT MODAL COOKIES
  889.     $('.button-accept-modal-cookies').on('click', function(){
  890.         setCookie('accept_cookies', 'true', '1');
  891.         $('.box-alert-accept-cookies').hide();
  892.     });
  893.     // ACTION function "getAllSelectedIndustry"
  894.     $('.items-view-by-industry').on('click',function(){
  895.         getAllSelectedIndustry(1);
  896.     });
  897.     // CHANGE COUNT SELECTED FILTERS
  898.     $('.button-filter-drop-down').on('click', function(e){
  899.         let select = $(this).data('category');
  900.         if(select !== 'salary'){
  901.             let data = $('.'+select+'-select').val();
  902.             let count = data.length;
  903.             let count_active = $('.'+select+'-row .col-md-4 .active').length + count ;
  904.             $('.count-select-'+select).html('('+count_active+')');
  905.         }
  906.     });
  907.     $('.label-for-select').click(function () {
  908.         let labelId = $(this).attr('for');
  909.         let element = $('#' + labelId);
  910.         openSelectAftreClickLabel(element);
  911.     });
  912.     $.ajax({
  913.         url: '/search/select/option',
  914.         method: 'POST',
  915.         data: {languages: language},
  916.         success: (data) => {
  917.             let paramsToSelected = [];
  918.             let paramsToSelected_own = [];
  919.             let k = 0;
  920.             let i = 0;
  921.             let category_own = '';
  922.             selectParams = data;
  923.             getAllSelectedIndustry(0);
  924.             checkSelectedItemInOwnSelect2();
  925.             $('.search-select').select2({
  926.                 placeholder: `{{ 'USER_ZONE.HOME_PAGE.PLACEHOLDER_SEARCH'|trans }}`,
  927.                 data: selectParams.search,
  928.                 dropdownCssClass: 'dropdown_search_list_items',
  929.                 maximumSelectionLength: `{{ max_search_params }}`,
  930.                 language: {
  931.                     noResults: function () {
  932.                         return `{{ 'USER_ZONE.HOME_PAGE.PLACEHOLDER_SELECT2_RESULTS'|trans }}`;
  933.                     },
  934.                     maximumSelected: function () {
  935.                         return `{{ 'USER_ZONE.HOME_PAGE.PLACEHOLDER_SELECT2_MAX_SELECT'|trans }}`;
  936.                     }
  937.                 },
  938.                 tags: true,
  939.                 allowClear: true
  940.             });
  941.             $('.industry-select').select2({
  942.                 maximumSelectionLength: `{{ max_search_params_own }}`,
  943.                 dropdownCssClass: 'dropdown_industry_list_items',
  944.                 placeholder: `{{ 'USER_ZONE.HOME_PAGE.PLACEHOLDER_DROPDOWN_FILTER_INPUT_1'|trans }}`,
  945.                 language: {
  946.                     noResults: function () {
  947.                         return '';
  948.                     },
  949.                     maximumSelected: function () {
  950.                         return `{{ 'USER_ZONE.HOME_PAGE.PLACEHOLDER_SELECT2_MAX_SELECT_FILTER'|trans }}`;
  951.                     }
  952.                 },
  953.                 tags: true
  954.             });
  955.             $('.technology-select.select2-results').css('display','none');
  956.             if(typeof selectParams.search != "undefined" && selectParams.search != ''){
  957.                 selectParams.search.forEach((val, key) => {
  958.                     if (searchIndustry != '') {
  959.                         searchIndustry.forEach((val_1, key_1) => {
  960.                             if (selectParams.search[key].id === searchIndustry[key_1]) {
  961.                                 paramsToSelected[k] = searchIndustry[key_1];
  962.                                 k++;
  963.                             }
  964.                         });
  965.                     }
  966.                     if (searchTechnology != '') {
  967.                         searchTechnology.forEach((val_2, key_2) => {
  968.                             if (selectParams.search[key].id === searchTechnology[key_2]) {
  969.                                 paramsToSelected[k] = searchTechnology[key_2];
  970.                                 k++;
  971.                             }
  972.                         });
  973.                     }
  974.                     if (searchLocation != '') {
  975.                         searchLocation.forEach((val_3, key_3) => {
  976.                             if (selectParams.search[key].id === searchLocation[key_3]) {
  977.                                 paramsToSelected[k] = searchLocation[key_3];
  978.                                 k++;
  979.                             }
  980.                         });
  981.                     }
  982.                     if (searchCompany != '') {
  983.                         searchCompany.forEach((val_4, key_4) => {
  984.                             if (selectParams.search[key].id === searchCompany[key_4]) {
  985.                                 paramsToSelected[k] = searchCompany[key_4];
  986.                                 k++;
  987.                             }
  988.                         });
  989.                     }
  990.                     if(searchOfferName != ''){
  991.                          searchOfferName.forEach((val_5, key_5) => {
  992.                             if (selectParams.search[key].id === searchOfferName[key_5]) {
  993.                                 paramsToSelected[k] = searchOfferName[key_5];
  994.                                 k++;
  995.                             }
  996.                         });
  997.                     }
  998.                     if(searchAnother != ''){
  999.                         searchAnother.forEach((val_6, key_6)=>{
  1000.                             if (selectParams.search[key].id === searchAnother[key_6]) {
  1001.                                 paramsToSelected[k] = searchAnother[key_6];
  1002.                                 k++;
  1003.                             }
  1004.                         });
  1005.                     }
  1006.                 });
  1007.             }
  1008.             if (ownIndustry != '') {
  1009.                 category_own = 'ownIndustry';
  1010.                 ownIndustry.forEach((val_4, key_4) => {
  1011.                     paramsToSelected_own[i] = {
  1012.                         category: category_own,
  1013.                         data: ownIndustry[key_4]
  1014.                     };
  1015.                     i++;
  1016.                 });
  1017.             }
  1018.             if (ownLocation != '') {
  1019.                 category_own = 'ownLocation';
  1020.                 ownLocation.forEach((val_4, key_4) => {
  1021.                     paramsToSelected_own[i] = {
  1022.                         category: category_own,
  1023.                         data: ownLocation[key_4]
  1024.                     };
  1025.                     i++;
  1026.                 });
  1027.             }
  1028.             if (ownTechnology != '') {
  1029.                 category_own = 'ownTechnology';
  1030.                 ownTechnology.forEach((val_5, key_5) => {
  1031.                     paramsToSelected_own[i] = {
  1032.                         category: category_own,
  1033.                         data: ownTechnology[key_5]
  1034.                     };
  1035.                     i++;
  1036.                 });
  1037.             }
  1038.             if (paramsToSelected != '') {
  1039.                 $('.search-select').val(paramsToSelected);
  1040.                 $('.search-select').trigger('change');
  1041.             }
  1042.             if (paramsToSelected_own != '') {
  1043.                 paramsToSelected_own.forEach((val_7, key_7) => {
  1044.                     switch (paramsToSelected_own[key_7].category) {
  1045.                         case 'ownIndustry':
  1046.                             checkAndAddOptionToSelect('.industry-select', 'industry', ownIndustry);
  1047.                             $('.industry-select').val(ownIndustry);
  1048.                             $('.industry-select').trigger('change');
  1049.                             break;
  1050.                         case 'ownTechnology':
  1051.                             checkAndAddOptionToSelectWhenIsSearch('.technology-select', 'technology', ownTechnology);
  1052.                             break;
  1053.                         case 'ownLocation':
  1054.                             checkAndAddOptionToSelect('.location-select', 'location', ownLocation);
  1055.                             $('.location-select').val(ownLocation);
  1056.                             $('.location-select').trigger('change');
  1057.                             break;
  1058.                     }
  1059.                 });
  1060.             }
  1061.             if (search != '' && search != null) {
  1062.                 checkAndAddOptionToSelectWhenIsSearch('.search-select', 'search', search);
  1063.             }
  1064.             checkOwnLocation();
  1065.         }
  1066.     });
  1067.     function getTextByLocation (localizationNumber){
  1068.         let withS = [2, 3 ,4];
  1069.         let withoutS = [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16];
  1070.         if(withS.includes(localizationNumber)){
  1071.             return `{{ 'USER_ZONE.HOME_PAGE.SEE_MORE_LOCATIONS2'|trans}}`;
  1072.         }
  1073.         if(withoutS.includes(localizationNumber)){
  1074.             return `{{ 'USER_ZONE.HOME_PAGE.SEE_MORE_LOCATIONS'|trans }}`;
  1075.         }
  1076.     }
  1077.     $(document).ready(function () {
  1078.         let selectParams = {};
  1079.         let filtersString = '';
  1080.         let place_geo = [];
  1081.         let ownLocations = [];
  1082.         let resut_params = [];
  1083.         let jobLevel = {{ jobLevel|json_encode|raw }};
  1084.         $('.input-price-to').val(`{{ search_options.salaries.currency is defined ? search_options.salaries.to : '50000' }}`);
  1085.         $('.input-price-from').val(`{{ search_options.salaries.currency is defined ? search_options.salaries.from : '0' }}`);
  1086.         if(typeof jobLevel != "undefined" && jobLevel != ''){
  1087.             getCountAnother(jobLevel);
  1088.         }
  1089.         checkWidthWindow();
  1090.         $(document).on('click', '.offer_name_show_list_location', function (){
  1091.             let localizationNumber = $(this).data('localization');
  1092.             let boxId = $(this).data('id');
  1093.             let click = $(this).hasClass('click_show_location') == false ? $('.offer_name_show_list_location[data-id="'+boxId+'"]').hasClass('click_show_location') : $(this).hasClass('click_show_location');
  1094.             let boxToAddText = $('.offer_show_list_location[data-id="'+boxId+'"]');
  1095.             let boxToAddClass = $('.offer_name_show_list_location[data-id="'+boxId+'"]');
  1096.             if(click){
  1097.                 $(this).removeClass('click_show_location');
  1098.                 $(boxToAddText).removeClass('click_show_location');
  1099.                 $(this).removeClass('click_show_location');
  1100.                 $('.box_many_location_'+boxId).hide();
  1101.                 $(boxToAddText).html(localizationNumber+' '+getTextByLocation(localizationNumber));
  1102.             }else{
  1103.                 $(this).addClass('click_show_location');
  1104.                 $(boxToAddText).addClass('click_show_location');
  1105.                 $(boxToAddClass).addClass('click_show_location');
  1106.                 $('.box_many_location_'+boxId).show();
  1107.                 $(boxToAddText).html(`{{ 'USER_ZONE.HOME_PAGE.COLLAPSE'|trans }}`);
  1108.             }
  1109.         });
  1110.         $(document).on('click', '.offer_show_list_location', function (){
  1111.             let localizationNumber = $(this).data('localization');
  1112.             let boxId = $(this).data('id');
  1113.             let click = $(this).hasClass('click_show_location')  == false ? $('.offer_show_list_location[data-id="'+boxId+'"]').hasClass('click_show_location') : $(this).hasClass('click_show_location');
  1114.             let boxToAddText = $('.offer_show_list_location[data-id="'+boxId+'"]');
  1115.             let boxToAddClass = $('.offer_show_list_location[data-id="'+boxId+'"]');
  1116.             if(click){
  1117.                 $(this).removeClass('click_show_location');
  1118.                 $(boxToAddText).removeClass('click_show_location');
  1119.                 $(this).removeClass('click_show_location');
  1120.                 $('.box_many_location_'+boxId).hide();
  1121.                 $(boxToAddText).html(`{{ 'USER_ZONE.HOME_PAGE.SEE_MORE_LOCATIONS'|trans }}`+' '+localizationNumber);
  1122.                 $(boxToAddText).removeAttr('style');
  1123.             }else{
  1124.                 $(this).addClass('click_show_location');
  1125.                 $(boxToAddText).addClass('click_show_location');
  1126.                 $(boxToAddClass).addClass('click_show_location');
  1127.                 $('.box_many_location_'+boxId).show();
  1128.                 $(boxToAddText).html(`{{ 'USER_ZONE.HOME_PAGE.COLLAPSE'|trans }}`);
  1129.                 $(boxToAddText).css("font-weight", "bold");
  1130.             }
  1131.         });
  1132.         function createByFilter() {
  1133.             filtersString = '';
  1134.             $('.click-filter').each(function () {
  1135.                 if (filtersString == '') {
  1136.                     filtersString += '?';
  1137.                     filtersString += $(this).data('filter-key') + '=' + slug($(this).data('filter'));
  1138.                 } else {
  1139.                     filtersString += '&';
  1140.                     filtersString += $(this).data('filter-key') + '=' + slug($(this).data('filter'));
  1141.                 }
  1142.                 if (filtersString.includes('&filters[page][]') == false) {
  1143.                     filtersString += '&filters[page][]=1'
  1144.                 }
  1145.             });
  1146.         }
  1147.         function buildUrl() {
  1148.             let newUrl = window.location.protocol + "//" + window.location.host + window.location.pathname + filtersString;
  1149.             return newUrl;
  1150.         }
  1151.         function createFiltersString() {
  1152.             filtersString = '';
  1153.             $('.filter-element.active+.filter-checkbox').each(function () {
  1154.                 if (filtersString == '') {
  1155.                     filtersString += '?';
  1156.                     filtersString += this.name + '=' + slug(this.value);
  1157.                 } else {
  1158.                     filtersString += '&';
  1159.                     filtersString += this.name + '=' + slug(this.value);
  1160.                 }
  1161.                 if (filtersString.includes('&filters[page][]') == false) {
  1162.                     filtersString += '&filters[page][]=1'
  1163.                 }
  1164.             });
  1165.         }
  1166.         // CLEAR ALL FILTERS SEARCH
  1167.         $('.clear-all-filters-search').click(function(){
  1168.             clearAllSelect();
  1169.         });
  1170.         // CLEAR ALL FILTERS MOBILE
  1171.         $('.clear-all-filters-mobile').click(function(){
  1172.             clearAllSelect();
  1173.         });
  1174.         // CREATE SELECT@ LOCATION
  1175.         $('.location-select').select2({
  1176.             maximumSelectionLength: `{{ max_search_params_own }}`,
  1177.             placeholder: `{{ 'USER_ZONE.HOME_PAGE.PLACEHOLDER_DROPDOWN_FILTER_INPUT_1'|trans }}`,
  1178.             language: {
  1179.                 noResults: function () {
  1180.                     return `{{ 'USER_ZONE.HOME_PAGE.PLACEHOLDER_SELECT2_RESULTS'|trans }}`;
  1181.                 },
  1182.                 maximumSelected: function () {
  1183.                     return `{{ 'USER_ZONE.HOME_PAGE.PLACEHOLDER_SELECT2_MAX_SELECT_FILTER'|trans }}`;
  1184.                 },
  1185.                 searching: function () {
  1186.                     return `{{ 'USER_ZONE.HOME_PAGE.PLACEHOLDER_SELECT2_SEARCH'|trans }}`;
  1187.                 }
  1188.             },
  1189.             ajax: {
  1190.                 url: '/search/location/option/' + language,
  1191.                 dataType: 'json',
  1192.                 processResults: function (data) {
  1193.                     place_geo = data;
  1194.                     return {
  1195.                         results: data
  1196.                     }
  1197.                 }
  1198.             }
  1199.         });
  1200.         // CHANGE LOCATION SELECT
  1201.         $(document).on('change', '.location-select', function () {
  1202.             ownLocations = $('.location-select').val();
  1203.             ownLocations.forEach((val, key) => {
  1204.                 place_geo.forEach((val_1, key_1) => {
  1205.                     if (ownLocations[key] == place_geo[key_1].id) {
  1206.                         resut_params[key] = {
  1207.                             name: ownLocations[key],
  1208.                             id_place: place_geo[key_1].id_place
  1209.                         };
  1210.                     }
  1211.                 });
  1212.             });
  1213.         });
  1214.         // SEARCH BY FILTERS
  1215.         $('.filter-button').on('click', function () {
  1216.             let url = `{{ path('front-page', {url: get_page_url(app.request.locale, constant('App\\Config\\Pages::OFFERS_INDUSTRY'))}) }}`;
  1217.               if(numberSelectedFilters == 0 || numberSelectedFilters == ''){
  1218.                 location.href = url;
  1219.             }
  1220.             let param = '';
  1221.             let response = [];
  1222.             switch ($(this).data('category')) {
  1223.                 case 'industry':
  1224.                     response = checkUrlAndCreateToFilters();
  1225.                     filtersString += response.filtersString;
  1226.                     param = response.param;
  1227.                     break;
  1228.                 case 'location':
  1229.                     response = checkUrlAndCreateToFilters();
  1230.                     filtersString += response.filtersString;
  1231.                     param = response.param;
  1232.                     break;
  1233.                 case 'technology':
  1234.                     response = checkUrlAndCreateToFilters();
  1235.                     filtersString += response.filtersString;
  1236.                     param = response.param;
  1237.                     break;
  1238.                 case 'another':
  1239.                     response = checkUrlAndCreateToFilters();
  1240.                     filtersString += response.filtersString;
  1241.                     param = response.param;
  1242.                     break;
  1243.                 case 'salary':
  1244.                     response = checkUrlAndCreateToFilters();
  1245.                     filtersString += response.filtersString;
  1246.                     param = response.param;
  1247.                     break;
  1248.             }
  1249.             if (param != '' || filtersString != '') {
  1250.                 if (resut_params != '') {
  1251.                     $.ajax({
  1252.                         url: url,
  1253.                         data: {resut_params},
  1254.                         method: 'POST',
  1255.                         success: (data) => {
  1256.                             window.location.href = url + filtersString + param;
  1257.                         }
  1258.                     });
  1259.                 } else {
  1260.                     window.location.href = url + filtersString + param;
  1261.                 }
  1262.             }
  1263.             return false;
  1264.         });
  1265.         // CREATE FILTERS AND SEARCH
  1266.         $(document).on('click', '.input-search-filters', function () {
  1267.             $('.click-filter').removeClass('click-filter');
  1268.             $(this).addClass('click-filter');
  1269.             createByFilter();
  1270.             return false;
  1271.         });
  1272.         // BUTTON SEARCH
  1273.         $(document).on('click', '.search-button-list', function (e) {
  1274.             $('.click-filter').removeClass('click-filter');
  1275.             $(this).addClass('click-filter');
  1276.             createByFilter();
  1277.             let url = `{{ path('front-page', {url: get_page_url(app.request.locale, constant('App\\Config\\Pages::OFFERS_INDUSTRY'))}) }}`;
  1278.             window.location.href = prepareLocationToleranceUrl(url + filtersString);
  1279.             return false;
  1280.         });
  1281.         // CREATE RANGE SLIDER
  1282.         if (jQuery(".js-range-slider").length > 0) {
  1283.             jQuery(".js-range-slider").ionRangeSlider({
  1284.                 type: "double",
  1285.                 min: 0,
  1286.                 max: 50000,
  1287.                 from: {{ search_options.salaries.currency is defined ? search_options.salaries.from : '0' }},
  1288.                 to:   {{ search_options.salaries.currency is defined ? search_options.salaries.to : '50000' }},
  1289.                 onChange: function (data) {
  1290.                     jQuery("#price-to").val(data.to);
  1291.                     jQuery("#price-from").val(data.from);
  1292.                     jQuery(".js-range-slider").closest('.btn-group').find('.filter__button > span').html('(1)');
  1293.                 },
  1294.                 onUpdate: function (data) {
  1295.                     checkCountSelectFilters();
  1296.                 }
  1297.             });
  1298.         }
  1299.         // CHANGE RANGE SLIDER
  1300.         $('.js-range-slider').on('change', function(){
  1301.             setTimeout(function(){
  1302.                 checkCountSelectFilters();
  1303.             },1);
  1304.         });
  1305.         // CHANGE CURRENCY SELECT
  1306.         $('.currency-select').on('change',function(){
  1307.             checkCountSelectFilters();
  1308.         });
  1309.         // CHANGE CONTRACT SELECT
  1310.         $('.contract-select').on('change', function(){
  1311.             checkCountSelectFilters();
  1312.         });
  1313.     });
  1314.     // Remove duplicat search when value = name
  1315.     $('.search-select').on('change', function(){
  1316.         searchValueNoSelect   = '';
  1317.         let value           = '';
  1318.         let arrayValue      = [];
  1319.         let R               = 0;
  1320.         if($.isArray($(this).val())){
  1321.             $(this).val().forEach((val,key)=>{
  1322.                 arrayValue[R] = $(this).val()[key];
  1323.                 if(value.includes($(this).val()[key]) == true){
  1324.                     $($(this).find("option[value='" + $(this).val()[key] + "']")[1]).remove();
  1325.                 }else{
  1326.                     value += $(this).val()[key];
  1327.                 }
  1328.             });
  1329.         }
  1330.     });
  1331.     // SHOW ALL SELECTE FILTERS
  1332.     $('label.dropdown-item').on('click',  function(){
  1333.         checkCountSelectFilters();
  1334.     });
  1335.     // CHANGE INDUSTRY - SELECT
  1336.     $(document).on('change','.industry-select',function(){
  1337.         checkCountSelectFilters();
  1338.         checkSelectedItemInOwnSelect2();
  1339.     });
  1340.     // CHANGE INDUSTRY - LOCATION
  1341.     $(document).on('change', '.location-select', function(){
  1342.         checkCountSelectFilters();
  1343.         checkSelectedItemInOwnSelect2();
  1344.     });
  1345.     // CHANGE INDUSTRY - TECHNOLOGY
  1346.     $(document).on('change', '.technology-select', function(){
  1347.         checkCountSelectFilters();
  1348.         checkSelectedItemInOwnSelect2();
  1349.     });
  1350. </script>