1$(function () { 2 var searchForm = $('#search-form'); 3 var searchFormSubmit = $('#search-form-submit'); 4 5 var inputJourneyType = $('input[name="journey_type"]'); 6 7 var inputFrom = $('#ut-input-from'); 8 var inputFromError = $('#ut-input-from-error'); 9 var inputFromType = $('#ut-input-from-type'); 10 var inputFromIata = $('#ut-input-from-iata'); 11 12 var inputTo = $('#ut-input-to'); 13 var inputToError = $('#ut-input-to-error'); 14 var inputToType = $('#ut-input-to-type'); 15 var inputToIata = $('#ut-input-to-iata'); 16 17 var inputDateDep = $('#ut-input-date-dep'); 18 var inputDateDepError = $('#ut-input-date-dep-error'); 19 var inputDateArr = $('#ut-input-date-arr'); 20 var inputDateArrError = $('#ut-input-date-arr-error'); 21 var inputDateArrContainer = $('#ut-input-date-arr-container'); 22 23 var inputAdults = $('#ut-input-adults'); 24 var inputChildren = $('#ut-input-children'); 25 var inputInfants = $('#ut-input-infants'); 26 var inputPassengersError = $('#ut-input-passengers-error'); 27 28 var autocompleteOptions = { 29 source: function (request, response) { 30 $.ajax({ 31 url: 'https://www.repjegy.hu/moduls/mainform_checkdest_json', 32 dataType: 'json', 33 data: {dest: request.term}, 34 success: function (data) { 35 response( 36 $.map(data, function (v, i) { 37 return { 38 label: v.value, 39 value: v.value, 40 type: v.type, 41 iata: v.iata 42 }; 43 }) 44 ); 45 } 46 }); 47 }, 48 minLength: 3 49 }; 50 51 var datepickerOptions = { 52 numberOfMonths: 2, 53 dateFormat: 'yy-mm-dd', 54 minDate: +2, 55 maxDate: +350, 56 locale: 'hu' 57 }; 58 59 var passengerCount = 0; 60 61 var setChildAgesContainer = $('#set-child-ages-container'); 62 var btnSetChildAges = $('#set-child-ages'); 63 var setChildAgesDialog = $('#set-child-ages-dialog'); 64 var infantAgesBlock = $('#ut-infant-ages'); 65 var infantAgesFields = $('#ut-infant-ages-fields'); 66 var childAgesBlock = $('#ut-child-ages'); 67 var childAgesFields = $('#ut-child-ages-fields'); 68 69 inputDateDep 70 .datepicker(datepickerOptions) 71 .on('change', function () { 72 inputDateArr.datepicker('option', 'minDate', getDate(this)); 73 }); 74 inputDateArr 75 .datepicker(datepickerOptions) 76 .on('change', function () { 77 inputDateDep.datepicker('option', 'maxDate', getDate(this)); 78 }); 79 80 searchForm 81 .find('.ut-input-block') 82 .on('click', 'span', function () { 83 $('#ut-input-' + $(this).data('dir')).val($(this).html() + ' (' + $(this).data('iata') + ')'); 84 $('#ut-input-' + $(this).data('dir') + '-type').val($(this).data('type')); 85 $('#ut-input-' + $(this).data('dir') + '-iata').val($(this).data('iata')); 86 }); 87 88 inputJourneyType 89 .on('change', function () { 90 if ( $(this).val() === 'return' ) { 91 inputDateArrContainer.removeClass('hidden'); 92 } else { 93 inputDateArrContainer.addClass('hidden'); 94 } 95 }); 96 97 inputInfants 98 .on('change', function () { 99 processChildrenAgesDialog(); 100 }); 101 102 inputChildren 103 .on('change', function () { 104 processChildrenAgesDialog(); 105 }); 106 107 function processChildrenAgesDialog() { 108 var infantNumber = parseInt(inputInfants.val()); 109 var childNumber = parseInt(inputChildren.val()); 110 111 if ( infantNumber > 0 || childNumber > 0 ) { 112 setChildAgesContainer.removeClass('hidden'); 113 114 if ( infantNumber > 0 ) { 115 infantAgesBlock.removeClass('hidden'); 116 fillInfantAgesFields(infantNumber); 117 } else { 118 infantAgesBlock.addClass('hidden'); 119 } 120 121 if ( childNumber > 0 ) { 122 childAgesBlock.removeClass('hidden'); 123 fillChildAgesFields(childNumber); 124 } else { 125 childAgesBlock.addClass('hidden'); 126 } 127 } else { 128 setChildAgesContainer.addClass('hidden'); 129 } 130 } 131 132 function fillInfantAgesFields(number) { 133 var fields = ''; 134 for ( var i = 1; i <= number; i++ ) { 135 fields += '<div class="ut-row ut-input-block">'; 136 fields += '<label for="infant_age_' + i + '">' + i + '. csecsemŠkora</label>'; 137 fields += '<select name="child_age[]" id="infant_age_' + i + '">'; 138 fields += '<option value="">Kérjük, válasszon!</option>'; 139 fields += '<option value="0">0 év</option>'; 140 fields += '<option value="1">1 év</option>'; 141 fields += '</select>'; 142 fields += '</div>'; 143 } 144 145 infantAgesFields.html(fields); 146 } 147 148 function fillChildAgesFields(number) { 149 var fields = ''; 150 for ( var i = 1; i <= number; i++ ) { 151 fields += '<div class="ut-row ut-input-block">'; 152 fields += '<label for="child_age_' + i + '">' + i + '. gyermek kora</label>'; 153 fields += '<select name="child_age[]" id="child_age_' + i + '">'; 154 fields += '<option value="">Kérjük, válasszon!</option>'; 155 for ( var j = 2; j < 13; j++ ) { 156 fields += '<option value="' + j + '">' + j + ' év</option>'; 157 } 158 fields += '</select>'; 159 fields += '</div>'; 160 } 161 162 childAgesFields.html(fields); 163 } 164 165 searchFormSubmit.on('click', function (e) { 166 e.preventDefault(); 167 var isValid = true; 168 var journeyTypeField = $('input[name="journey_type"]:checked'); 169 var inputFrom = $('#ut-input-from'); 170 var inputFromIata = $('#ut-input-from-iata'); 171 var inputTo = $('#ut-input-to'); 172 var inputToIata = $('#ut-input-to-iata'); 173 var inputDateDep = $('#ut-input-date-dep'); 174 var inputDateArr = $('#ut-input-date-arr'); 175 var inputAdults = $('#ut-input-adults'); 176 var inputChildren = $('#ut-input-children'); 177 var inputInfants = $('#ut-input-infants'); 178 var inputFlexVal = $('input[name="date_flexible"]:checked').val(); 179 180 181 if ( journeyTypeField === undefined || journeyTypeField.length === 0 || journeyTypeField.val().length === 0 ) { 182 $('input[name="journey_type"]').parent().addClass('has-error'); 183 isValid = false;
184 } else { 185 if ( journeyTypeField.val() === 'return' ) { 186 if ( inputDateArr.val().length === 0 ) { 187 inputDateArr.addClass('has-error'); 188 inputDateArrError.html('A mezÅ kitöltése kötelezÅ!'); 189 isValid = false; 190 } else { 191 inputDateArr.removeClass('has-error'); 192 inputDateArrError.html(''); 193 } 194 } else { 195 inputDateArr.removeClass('has-error'); 196 inputDateArrError.html(''); 197 } 198 } 199 200 if ( inputFromType.val().length === 0 || inputFromIata.val().length !== 3 ) { 201 inputFrom.addClass('has-error'); 202 inputFromError.html('A mezÅ kitöltése kötelezÅ!'); 203 isValid = false; 204 } else { 205 inputFrom.removeClass('has-error'); 206 inputFromError.html(''); 207 } 208 209 if ( inputToType.val().length === 0 || inputToIata.val().length !== 3 ) { 210 inputTo.addClass('has-error'); 211 inputToError.html('A mezÅ kitöltése kötelezÅ!'); 212 isValid = false; 213 } else { 214 inputTo.removeClass('has-error'); 215 inputToError.html(''); 216 } 217 218 if ( inputDateDep.val().length === 0 ) { 219 inputDateDep.addClass('has-error'); 220 inputDateDepError.html('A mezÅ kitöltése kötelezÅ!'); 221 isValid = false; 222 } else { 223 inputDateDep.removeClass('has-error'); 224 inputDateDepError.html(''); 225 } 226 227 if ( parseInt(inputAdults.val()) < parseInt(inputInfants.val()) ) { 228 inputInfants.addClass('has-error'); 229 inputPassengersError.html('Csak annyi csecsemÅ utazhat, ahány felnÅtt!'); 230 isValid = false; 231 } else { 232 var passengerCount = parseInt(inputAdults.val()); 233 passengerCount += parseInt(inputChildren.val()); 234 passengerCount += parseInt(inputInfants.val()); 235 236 if ( passengerCount > 9 ) { 237 inputAdults.addClass('has-error'); 238 inputChildren.addClass('has-error'); 239 inputInfants.addClass('has-error'); 240 isValid = false; 241 inputPassengersError.html('Maximum 9 utas utazhat egyszerre!'); 242 } else { 243 inputAdults.removeClass('has-error'); 244 inputChildren.removeClass('has-error'); 245 inputInfants.removeClass('has-error'); 246 inputPassengersError.html(''); 247 } 248 } 249 250 if ( isValid ) { 251 var way_type = $('input[name="way_type"]'); 252 var honnan = $('input[name="honnan"]'); 253 var fromiata = $('input[name="fromiata"]'); 254 var hova = $('input[name="hova"]'); 255 var toiata = $('input[name="toiata"]'); 256 var dep_date = $('input[name="dep_date"]'); 257 var arr_date = $('input[name="arr_date"]'); 258 var adult = $('input[name="adult"]'); 259 var child = $('input[name="child"]'); 260 var infant = $('input[name="infant"]'); 261 var flex = $('input[name="flex"]'); 262 263 way_type.val('ow'); 264 if (journeyTypeField.val() === 'return') { 265 way_type.val('rt'); 266 } 267 else { 268 } 269 honnan.val(inputFrom.val()); 270 fromiata.val(inputFromIata.val()); 271 hova.val(inputTo.val()); 272 toiata.val(inputToIata.val()); 273 dep_date.val(inputDateDep.val()); 274 arr_date.val(inputDateArr.val()); 275 adult.val(inputAdults.val()); 276 child.val(inputChildren.val()); 277 infant.val(inputInfants.val()); 278 flex.val(inputFlexVal); 279 280 searchForm[0].submit(); 281 } 282 }); 283 284 inputFrom.autocomplete($.extend({}, autocompleteOptions, { 285 select: function (event, ui) { 286 inputFromType.val(ui.item.type); 287 inputFromIata.val(ui.item.iata); 288 } 289 })); 290 291 inputTo.autocomplete($.extend({}, autocompleteOptions, { 292 select: function (event, ui) { 293 inputToType.val(ui.item.type); 294 inputToIata.val(ui.item.iata); 295 } 296 })); 297 298 btnSetChildAges 299 .on('click', function (e) { 300 e.preventDefault(); 301 302 setChildAgesDialog.dialog('open'); 303 }); 304 305 setChildAgesDialog.dialog( 306 { 307 appendTo: '#search-form', 308 autoOpen: false, 309 height: 400, 310 width: 300, 311 modal: true, 312 buttons: { 313 'OK': saveAges, 314 Cancel: function () { 315 setChildAgesDialog.dialog('close'); 316 } 317 } 318 } 319 ); 320 321 function saveAges() { 322 setChildAgesDialog.dialog('close'); 323 } 324 325 function getDate(element) { 326 var date; 327 try { 328 date = $.datepicker.parseDate('yy-mm-dd', element.value); 329 } catch ( error ) { 330 date = null; 331 } 332 333 return date; 334 } 335});
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.