PageSourceSearch

https://www.vacalia.com/js/components/_dropdown_new.js?v=1790974436

js vacalia.com collected 2026-10-02 20:54:58 UTC 9,628 bytes, 235 lines download raw bytes

1	var dropdown = {
2    $body: $('body'),
3    $list: $('.dropdown_list'),
4    $option: $('.dropdown_list li'),
5    $landscape: $('.open_dropdown')
6  }
7  dropdown.$landscape.on('click', function(e){
8    e.preventDefault();
9  	var target = $(this).data('drop');
10
11  	if(dropdown.$list.is($(target))) {
12    	dropdown.$list.removeClass('active');
13    	!$(target).hasClass('active') ? $(target).addClass('active') : $(target).removeClass('active');
14  	}
15
16    e.stopPropagation();
17  });
18
19  dropdown.$body.on('click', function(e){
20    var $target = $(e.target);
21
22    if(!$target.is(dropdown.$landscape)) {
23        dropdown.$list.hasClass('active') ? dropdown.$list.removeClass('active') : false;    
24    }
25  });
26
27  // dropdown.$list.find('li').each(function() {
28  //   var delay = $(this).index() * 50 + 'ms';
29
30  //   $(this).css({
31  //     '-webkit-transition-delay': delay,
32  //     '-moz-transition-delay': delay,
33  //     '-o-transition-delay': delay,
34  //     'transition-delay': delay
35  //   });                  
36  // });
37
38  dropdown.$option.on('click', function(){
39    if ($(this).closest('.dropdown_list').attr('id') == "pax_dropdown") {
40      var input_val    = $(this).closest('.dropdown_list').siblings('input').val(),
41          lang       = input_val.split(" ");
42        
43      $(this).closest('.dropdown_list').siblings('input').val($(this).attr('data-value') + ' ' + lang[1]);
44      $('#hidden_pax').val($(this).attr('data-value'));
45    } else if($(this).closest('.dropdown_list').attr('id') == "country_dropdown") {
46      var input_val    = $(this).closest('.dropdown_list').siblings('input').val(),
47          lang       = input_val.split(" ");
48      
49      $(this).closest('.dropdown_list').siblings('input').val($(this).text());
50      $('#hidden_country').val($(this).attr('data-value'));
51    } else if($(this).closest('.dropdown_list').attr('id') == "hour_origin_rentacar_dropdown" || $(this).closest('.dropdown_list').attr('id') == "hour_return_rentacar_dropdown") {
52      var input_val    = $(this).closest('.dropdown_list').siblings('input').val(),
53          lang       = input_val.split(" ");
54      
55      $(this).closest('.dropdown_list').siblings('input').val($(this).text());
56      if($(this).closest('.dropdown_list').attr('id') == "hour_origin_rentacar_dropdown"){
57        $('#hidden_hour_origin').val($(this).attr('data-value'));
58      } else if($(this).closest('.dropdown_list').attr('id') == "hour_return_rentacar_dropdown") {
59        $('#hidden_hour_return').val($(this).attr('data-value'));
60      }
61    } else if($(this).closest('.dropdown_list').attr('id') == "community_dropdown") { 
62      var input_val    = $(this).closest('.dropdown_list').siblings('input').val(),
63          lang       = input_val.split(" ");
64
65      $(this).closest('.dropdown_list').siblings('input').val($(this).text());
66      $('#hidden_community').val($(this).attr('data-value'));
67      $('.label_search.empty_val').click();
68      $(this).closest('.dropdown_list').siblings('input').blur();
69    } else if($(this).closest('.dropdown_list').siblings('input').hasClass('pax_checkout') && !$(this).hasClass('disabled')) {
70      var input_val    = $(this).closest('.dropdown_list').siblings('input').val(),
71          lang       = input_val.split(" ");
72        
73      $(this).closest('.dropdown_list').siblings('input').val($(this).attr('data-value') + ' ' + lang[1]);
74
75      var max_pax = $('#adult_dropdown li').last().attr('data-value');
76      var select_pax = $(this).attr('data-value');
77      var available_pax = max_pax;
78
79      var reloadPrice = false;
80      if($(this).closest('.dropdown_list').siblings('input').attr('id') == "pax_adult") {
81        reloadPrice = true;
82
83        $('#hidden_adult').val(select_pax);
84
85        available_pax = (max_pax - select_pax);
86
87        var child = $('#hidden_child').val();
88
89        if (available_pax < child) {
90          $('#child_dropdown li').eq(available_pax).trigger('click');
91        }
92
93        $('#child_dropdown li').addClass('disabled');
94        $('#child_dropdown li').eq(0).removeClass('disabled');
95
96        var i;
97        for (i = 1; i <= available_pax; i++) { 
98            $('#child_dropdown li').eq(i).removeClass('disabled');
99        }
100      } else if($(this).closest('.dropdown_list').siblings('input').attr('id') == "pax_child") {
101        reloadPrice = true;
102        
103        $('#hidden_child').val(select_pax);
104      } else {
105        $('#hidden_baby').val($(this).attr('data-value'));
106      }
107
108      if($('#hidden_baby').val() > 0 || $('#hidden_child').val() > 0){
109        $("#edadesNinosBebes").show();
110      } else {
111        $("#edadesNinosBebes").hide();
112      }
113
114      var totalPax = parseInt($('#hidden_adult').val());
115      if (!isNaN(parseInt($('#hidden_child').val()))) {
116        totalPax = totalPax + parseInt($('#hidden_child').val());
117      }
118      $('.guests-label').text(totalPax);
119
120      if($('.cancelation_form').length){
121        // No recalcular preu per form seguros.
122        reloadPrice = false;
123      }
124
125      // Ajax para calcular el precio según las personas elegidas
126      if (reloadPrice) {
127        var $modal = $('.modal_resume');
128        var $element = $('.modal_resume').prev();    
129
130        var $price_sup = $('.resume_house .booking');
131        var $price_inf = $('.booking_steps .final_price .price');
132        var split_val = $('.booking_steps .final_price').data('splitpayment');
133
134        var arrBikes = [];
135        if($("#hidden_confirm_bike").val() == 1){
136          $('.bikes').each(function( key, value ) {
137            arrBikes[$(value).data("code")] = $(value).val();
138          });
139        }  
140
141        if($(".pageWrapper").data('page') == 'checkout'){
142      
143          var data = JSON.stringify({ 
144            Id: $('input[name=accommodationId]').val(), 
145            StartDate: $('input[name=startDate]').val(), 
146            EndDate: $('input[name=endDate]').val(), 
147            Guests: totalPax, 
148            PaymentMethod: $('input[name=paymentMethod]').val(),
149            PoliceSelected: $('#PoliceSelected').val(),
150            ServiceBikes: arrBikes
151          });
152
153          $.ajax({
154              url: "/calculatePrice",
155              type: "post",
156              cache: false,
157              contentType: "application/json; charset=utf-8",
158              data: data,
159              datatype: "html",
160              beforeSend: function (data2) {
161
162                if(httpCall){
163                  httpCall.abort();
164                }
165                httpCall = data2;
166
167                $('#guest_form input').prop("disabled", true);
168                $('button[form=pay_form]').prop("disabled", true);
169                $price_sup.hide();
170                $price_sup.next('.spinner').show();
171                $price_inf.hide();
172                $price_inf.next('.spinner').show();
173              }
174          })
175          .done(function (data) {
176              if (!data) {
177                  alert("Error! Please, contact with the administrator");
178              }
179              else {
180                $modal.remove();
181                $element.after(data);
182                
183                var modal_price = $('.modal_resume .final_price').data('now');
184
185                // $price_sup.find('.price').text($element.next().find('.final_price span').text());
186                //$price_inf.text($element.next().find('.final_price span').text());
187                if(split_val == 0) {
188                  $price_inf.text($element.next().find('.final_price span.final').text()  + '€');
189                } else {
190                  $price_inf.text(modal_price + '€');
191                }
192
193                $price_sup.show();
194                $price_inf.show();
195                $price_sup.next('.spinner').hide();
196                $price_inf.next('.spinner').hide();
197
198                $("#exotaxPriceFooter").html($("#exotaxPrice").html());
199
200                $('.modal .modal_close').on('click', function() { 
201                  var $parent = $(this).closest('.modal'); 
202  
203                  $('body').hasClass('modal_load') ? $('body').removeClass('modal_load') : false; 
204                  $parent.hasClass('modal_visible') ? $parent.removeClass('modal_visible') : false; 
205  
206                  $('.modal_backdrop').length > 0 ? $('.modal_backdrop').remove() : false; 
207                }); 
208              }
209
210              $('#guest_form input').prop("disabled", false);
211              $('button[form=pay_form]').prop("disabled", false)
212          })
213          .always(function () {
214          });
215        }
216      }
217
218    } else if($(this).closest('.dropdown_list').hasClass('sex_dropdown')) {
219      $(this).closest('.dropdown_list').siblings('#pass_form_gender').val($(this).text());
220      $(this).closest('.dropdown_list').siblings('#hidden_pass_form_gender').val($(this).attr('data-value'));
221    } else if($(this).closest('.dropdown_list').hasClass('document_dropdown')) {
222      $(this).closest('.dropdown_list').siblings('#documenttype').val($(this).text());
223      $(this).closest('.dropdown_list').siblings('#hidden_documenttype').val($(this).attr('data-value'));
224    } else if($(this).closest('.dropdown_list').attr('id') == "countrypass_dropdown") {
225      $(this).closest('.dropdown_list').siblings('#pass_form_nacionality').val($(this).text());
226      //debugger;
227      $(this).closest('.dropdown_list').siblings('#hidden_pass_form_nacionality').val($(this).attr('data-value'));
228    } else if($(this).closest('.dropdown_list').hasClass('country_passengers_old')) {
229      $(this).closest('.dropdown_list').siblings('.user_country').val($(this).text());
230    } else {
231      $(this).closest('.dropdown_list').siblings('input').val($(this).attr('data-value'));
232    }
233
234  });
235

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.