1(function($) { 2 var _elementos, _datos, _ninos, _adultos, _modal, _hotel, _ocupaciones,edad_nino1,edad_nino2, _num_adultos, _opciones, _list_edades; 3 $.fn.selector_ocupaciones = function(opciones, args) { 4 _hotel = opciones.hotelcode; 5 _elementos = this; 6 _opciones = opciones; 7 var json = JSON.parse(opciones.datos); 8 _datos = json[_hotel]; 9 _modal = opciones.modal; 10 if (typeof(opciones) == 'string') { 11 return eval(opciones)(args); 12 } else { 13 _opciones_default = { 14 15 }; 16 _opciones = jQuery.extend(_opciones_default , opciones); 17 init(); 18 } 19 } 20 21 function init(){ 22 _ocupaciones = _datos['ocupaciones']; 23 edad_bebes = _datos['edad_bebes']; 24 edad_nino1 = _datos['edad_nino1']; 25 edad_nino2 = _datos['edad_nino2']; 26 _adultos = Object.keys(_ocupaciones); 27 _list_edades = new Array(); 28 num_adultos(); 29 } 30 31 function num_adultos(){ 32 if ($('#select_adult').html() || $('#select_kids').html()) { 33 $("#select_adult").html(""); 34 $('#select_kids').html("") 35 } 36 var selector_adultos = _elementos.find('#select_adult'); 37 var ini_adultos = _elementos.find('#id_adultos').val(); 38 $.each(_adultos, function(i, value){ 39 var opt = document.createElement('option'); 40 opt.value = value; 41 opt.innerHTML = value.toString(); 42 selector_adultos.append(opt); 43 }) 44 45 if ((ini_adultos == "") && !(isNaN(parseInt(_opciones.adutos_default)))) { 46 ini_adultos = parseInt(_opciones.adutos_default) 47 } 48 49 selector_adultos.val(ini_adultos).trigger("change"); 50 _elementos.find('#id_adultos').val(ini_adultos); 51 default_select_ninos() 52 num_ninos(ini_adultos); 53 init_ninos(); 54 55 $(selector_adultos).on('change', function() { 56 clear_adultos() 57 clear_ninos() 58 if($(this).val() != "null" && $(this).val() != "0"){ 59 var value = parseInt($(this).val()) 60 _num_adultos = value; 61 _elementos.find('#id_adultos').val(value); 62 default_select_ninos() 63 if(_num_adultos > 0){ 64 num_ninos(_num_adultos); 65 } 66 } 67 }); 68 } 69 70 function init_ninos(){ 71 var edades = _elementos.find('#id_edades').val() 72 edades = edades.split(";") 73 if (edades[0] == ""){ 74 edades = [] 75 } 76 _elementos.find('#select_kids').val(edades.length); 77 _elementos.find('#ninos').val(edades.length); 78 _elementos.find('#id_ninos').val(edades.length); 79 } 80 81 function num_ninos(nadultos){ 82 var selector_ninos = _elementos.find('#select_kids'); 83 if (nadultos !== "") { 84 $.each(_ocupaciones[nadultos], function(i, value){ 85 var opt = document.createElement('option') 86 opt.value = value; 87 opt.innerHTML = value 88 if(value === "0"){ 89 opt.innerHTML = '0'; 90 } 91 selector_ninos.append(opt) 92 }) 93 } else { 94 _elementos.find('#id_ninos').val(""); 95 _elementos.find('#id_edades').val("") 96 } 97 $(selector_ninos).on('change', function() { 98 clear_ninos(); 99 if(($(this).val() != "null") && ($(this).val() != "0")){ 100 var value = parseInt($(this).val()) 101 _ninos = value; 102 _elementos.find('#ninos').val(value); 103 $(_modal).addClass('engine__modal--visible modal--open') 104 edades(_ninos); 105 } 106 }); 107 } 108 109 function default_select_ninos(){ 110 var selector_ninos = _elementos.find('#select_kids'); 111 selector_ninos.empty(); 112 init_ninos() 113 //var opt = document.createElement('option'); 114 //opt.value = 'null'; 115 //opt.innerHTML = '-'; 116 //selector_ninos.append(opt); 117 _list_edades.length = 0 118 } 119 120 function edades(ninos){ 121 var cont_modal = $(_modal).find('.engine__modal-select'); 122 var previous; 123 $(cont_modal).empty(); 124 for (var i = 0; i < ninos; i++){ 125 var content = document.createElement('div'); 126 $(content).addClass('engine__modal-group edad engine__occupation-modal-item'); 127 var sub_content = document.createElement('div') 128 $(sub_content).addClass('modal__select-field engine__occupation-modal-field') 129 var select = document.createElement('select'); 130 var num = String (i+1) 131 $(select).attr('id', 'nino' + num); 132 $(select).addClass('engine__modal-options engine__occupation-modal-select'); 133 var label = document.createElement('label'); 134 $(label).addClass('engine__modal-text engine__occupation-modal-label') 135 label.innerHTML = _opciones.txt_nino + " " + num 136 $(content).append([label, sub_content]) 137 $(sub_content).append(select) 138 $(cont_modal).append(content) 139 // Lo separo en dos partes por si se quiere diferenciar de alguna 140 // forma entre los bebes y los niños 141 edad_nino = Math.max(edad_nino1, edad_nino2); 142 for (var x = -1; x < edad_bebes; x++ ){ 143 var option = document.createElement('option'); 144 option.value = x+1; 145 option.innerHTML = x+1; 146 $(select).append(option); 147 } 148 for (var x = edad_bebes; x < edad_nino; x++ ){ 149 var option = document.createElement('option'); 150 option.value = x+1; 151 option.innerHTML = x+1; 152 $(select).append(option); 153 } 154 } 155 156 $(_modal).find('button').click(function(){ 157 lista_edades(); 158 $(_modal).removeClass('engine__modal--visible modal--open') 159 160 }); 161 162 } 163 164 function lista_edades(){ 165 clear_edades() 166 $(_modal).find('select').each(function(){ 167 _list_edades.push(parseInt(this.value)); 168 }) 169 _elementos.find('#id_edades').val(_list_edades.join(";")); 170 } 171 172 function clear_edades() { 173 _elementos.find('#id_edades').val("").attr('value', ''); 174 _list_edades.length = 0 175 } 176 177 178 function clear_adultos(){ 179 _elementos.find('#id_adultos').val(""); 180 } 181 function clear_ninos(){ 182 clear_edades() 183 _elementos.find('#id_ninos').val("0"); 184 } 185 186})(jQuery);
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.