var AVISO_ASIENTO_BEBE_TREN = false; var AVISO_ASIENTO_BEBES_ADULTOS = false; //Establecemos la caducidad de la cookie de la oferta seleccionada document.cookie = "IDOfertaSel=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/"; function getNumeroMaximoNoches(){ var numeroMaximoNoches = 31; switch(TIPO_CABECERA_AGENCIA){ case "Vuelos": numeroMaximoNoches = 365; break; } return numeroMaximoNoches; } //Comprobamos los datos y lanzamos la dispo function validarFormBusqueda() { // Borramos la cookie de oferta document.cookie="IDOfertaSel=;"; //comprobamos que se halla seleccionado un destino if( $( "#txtDestino" ).length && (!$( "#txtDestino" ).val() || $( "#txtDestino" ).val()=="") ){ alertPopUp("Deve introduzir o destino"); $('#txtDestino').focus(); return false; } //Comprobamos que los días no superen los 31. FRON-5336 DaysOfStay=getDaysOfStay($("#datetimepicker1").val(),$("#datetimepicker2").val()); if (DaysOfStay > getNumeroMaximoNoches()) { alertPopUp("Atención: El número máximo de noches es: 31"); return false; } //Comprobamos que el número máxino de personas seleccionado no supere los 19 if( document.getElementById('H') ){ var totalOcupacion=0; for(i=1;i<=document.getElementById('H').value;i++){ var personasSelec=document.getElementById('O'+i).value; var adultos=parseInt(personasSelec.substr(0, 1)); var ninos=parseInt(personasSelec.substr(2, 1)); totalOcupacion+=(adultos+ninos); } if (totalOcupacion>19){ alertPopUp("O número máximo de pessoas permitido é 19"); return false; } } //Comprobamos para vuelo y vuelo + hotel que el número máximo de pasajeros no sea superior a 9 if (TIPO_CABECERA_AGENCIA=="Vuelos" || TIPO_CABECERA_AGENCIA=="Vuelo+Hotel"){ if (TIPO_CABECERA_AGENCIA=="Vuelos"){ var adultosV=parseInt($('#adultos').val()); var ninosV=parseInt($('#menores').val()); if ((adultosV+ninosV)>9){ alertPopUp("O número máximo de pessoas permitido é 9"); return false; } }else{ if (totalOcupacion>9){ alertPopUp("O número máximo de pessoas permitido é 9"); return false; } } } // Comprobamos que se ha seleccionado una estación de tren correcta (si existe el input) if( $('#txtTren_id').length && $('#txtTren_id').val()=="" ){ if( $('#txtTren').val()=='' )alertPopUp("Debes introducir la estación de origen"); else alertPopUp( $('#txtTren').val() + " não tem estação de comboio. Por favor faça outra pesquisa."); $('#txtTren').focus(); return false; } // Comprobamos que se ha seleccionado el aeropuerto de origen (si existe el input) if( $('#aer_origen_name').length && $('#aer_origen_name').val()=="" ){ if( $('#aer_origen_name').val()=='' )alertPopUp("Deve indicar o aeroporto de origem"); else alertPopUp( $('#aer_origen_name').val() +" no tiene aeropuerto. Seleccione de nuevo la búsqueda"); $('#aer_origen_name').focus(); return false; } if( $('#aer_origen_value').length && $('#aer_origen_value').val()=='' ){ alertPopUp("Deve indicar o aeroporto de origem"); $('#aer_origen_value').val(''); $('#aer_origen_value').focus(); return false; } if( $('#aer_origen_value').length && $('#aer_destino_value').length && $('#aer_origen_value').val() && $('#aer_destino_value').val()!='' && $('#aer_origen_value').val()==$('#aer_destino_value').val() ){ alertPopUp("El aeropuerto de origen tiene que ser distinto del de destino"); $('#aer_destino_value').val(''); $('#aer_destino_value').focus(); return false; } // Comprobamos que se ha seleccionado el aeropuerto de destino (si existe el input y esta visible (opcional en Vuelo+Hotel)) if( $('#aer_destino_name:visible').length && $('#aer_destino_name:visible').val()=="" ){ if( $('#aer_destino_name').val()=='' )alertPopUp("Debes introducir el aeropuerto de destino"); else alertPopUp($('#aer_destino_name').val() +" no tiene aeropuerto. Seleccione de nuevo la búsqueda"); $('#aer_destino_name').focus(); return false; } if( $('#aer_destino_name:visible').length && $('#aer_destino_value').val()=="" ){ alertPopUp("Debes introducir el aeropuerto de destino"); $('#aer_destino_name').val(''); $('#aer_destino_name').focus(); return false; } // Comprobamos que se ha seleccionado el aeropuerto de origen (si existe el input) if( $('#tren_origen_name').length && ($('#tren_origen_name').val()=="" || $('#tren_origen_value').val()=='') ){ if( $('#tren_origen_name').val()=='' )alertPopUp("Debes introducir la estación de origen"); $('#tren_origen_name').focus(); return false; } if( $('#tren_destino_name').length && ($('#tren_destino_name').val()=="" || $('#tren_destino_value').val()=='') ){ if( $('#tren_destino_name').val()=='' )alertPopUp("Debes introducir la estación de destino"); $('#tren_destino_name').focus(); return false; } //Comprobamos que las fechas son correctas compruebaFechasCorrectas(); //Rellenamos los hidden de fechas con los valores y campos validos para el xml for (i=1;i<=2;i++){ var campoFecha=eval("document.f.datetimepicker"+i+".value"); if(campoFecha){ var DDMMAAAA=campoFecha.split("/"); var dia=parseInt(DDMMAAAA[0],10); var mes=parseInt(DDMMAAAA[1],10); var ano=parseInt(DDMMAAAA[2],10); $('#D'+i).val(dia); $('#MA'+i).val(mes+'_'+ano); } } var habitaciones=$("#H").val(); if (habitaciones=="") { alertPopUp("É preciso selecionar pelo menos um quarto"); return false; } //Comprobamos que si hay niños se rellenen todos los campos de estos if(TIPO_CABECERA_AGENCIA!='Trenes'){ for(i=1;i<=numeroMaxHab;i++){ for (j=1;j<=3;j++){ if ($('#edadNino'+i+'_'+j).is(':visible')){ if ($('#edadNino'+i+'_'+j).val()==""){ alertPopUp("Deve preencher todas as idades das crianças"); return false; } if (parseInt($('#edadNino'+i+'_'+j).val())>=edadMaxNinos){ alertPopUp("As idades dos menores devem ser inferiores a 18 anos."); return false; } } } } } // Comprobamos la edad de los niños para "sólo tren" y "sólo vuelo" if(TIPO_CABECERA_AGENCIA!='Trenes'){ if( $('#menores').length && parseInt($('#menores').val(),10)>0 ){ var nNinos = parseInt($('#menores').val(),10); var edadCorrecta = true; for(var iNino=1; iNino<=nNinos; iNino++){ if( $('#edadNino'+iNino).length ){ var edadNino = parseInt($('#edadNino'+iNino).val(),10); if( $('#edadNino'+iNino).val()=="" ){ alertPopUp("Deve preencher todas as idades das crianças"); edadCorrecta = false; } switch(TIPO_CABECERA_AGENCIA){ case "Trenes": if( edadNino<4 || edadNino>13 ){ alertPopUp("As idades dos menores têm que estar entre os 4 e os 13 anos."); edadCorrecta = false; } break; case "Vuelos": if( edadNino<2 || edadNino>12 ){ alertPopUp("As idades dos menores têm que estar entre os 2 e os 12 anos."); edadCorrecta = false; } break; } } } if( !edadCorrecta ){ $('#edadNino'+iNino).focus(); return false; } } } if( $('#tarjetaDorada').length ){ var tarjetasDoradas = parseInt($('#tarjetaDorada').val() ,10); var adultos = parseInt($('#adultos').val(), 10); if( tarjetasDoradas>adultos ){ alertPopUp("No puede haber más tarjetas doradas que pasajeros adultos."); return false; } } //Comprobación de estación de tren valida var estacionOrigen=$("#txtTren_id").val(); var zonaDestino =$("#list_id").val(); if( !zonaDestino )zonaDestino=$("#txtDestino_id").val(); if( $('#estTren_destino_value').val()!='' ){ zonaDestino=$('#estTren_destino_value').val(); if( estacionOrigen!=zonaDestino ){ $('#frmBuscar').submit(); return true; } } // Obtenemos los tipos de pasajeros var nHab = parseInt($('#H').val(), 10); var nAdultos = 0; var nNinos = 0; var nBebes = 0; for(var iHab=1; iHab<=nHab; iHab++){ var ocupacionesHab = $('#O'+ iHab +':visible'); $.each(ocupacionesHab, function(iEl, el){ var ocupacion = $(el).val(); var vOcupacion = ocupacion.split('A'); nAdultos += parseInt(vOcupacion[0],10); }); var inputEdades = $('input[id*=edadNino'+ iHab +']:visible'); $.each(inputEdades, function(iEl, el){ if( TIPO_CABECERA_AGENCIA=='Vuelo+Hotel' ){ if( $(el).val()<2 )nBebes++; else nNinos++; }else if( TIPO_CABECERA_AGENCIA=='Tren+Hotel' ){ if( $(el).val()<4 )nBebes++; else nNinos++; } }); } // Los vuelos sólo permiten un bebe por adulto if( TIPO_CABECERA_AGENCIA=='Vuelo+Hotel' ){ if( nAdultos < nBebes ){ var html = "

Devido às restrições com as distinas companhias aéreas o número de crianças não pode ser superior ao de adultos.

" + "
" + 'Aceitar'; popUpMesaje('', html, false); return false; } } var distancia = 20; //20 km de distancia entre la estación y la zona if (estacionOrigen && zonaDestino){ if( nAdultos+nNinos+nBebes>9 ){ var html = "

A quantidade total de passageiros não pode ser superior a 9.

" + "
" + 'Aceitar'; popUpMesaje('', html, false); return false; } if( !AVISO_ASIENTO_BEBES_ADULTOS ){ if( nBebes>nAdultos ){ var html = "

Só se permite um bebé grátis por passageiros adulto sem ocupar assento. Para poder reservar dois bebés com um adulto, uma das crianças deverá comprar um bilhete de criança.

" + "
" + 'Aceitar'; popUpMesaje('', html, false); AVISO_ASIENTO_BEBES_ADULTOS = true; return false; } } $.ajax({ type: "POST", async: false, dataType: "text", url: "checkEstacionZona.php", data: {'estacionOrigen': estacionOrigen, 'zonaDestino': zonaDestino, 'distancia': distancia}, success: function (data) { var respuesta=JSON.parse(data); if (respuesta['respuesta']=='KO'){ alertPopUp("Não é possível realizar pesquisas com partida e chegada no mesmo destino. Por favor modifique os parâmetros da pesquisa."); } else{ $("html, body").animate({ scrollTop: 0 }, "fast"); $("body").css('overflow-y','hidden'); // Eliminar las capas flotantes que molestan a #divEstamosFlash $("section").css('z-index','-1'); $(".ui-autocomplete").css('z-index','-1'); //////////////////////////////////////////// $("#divEstamosFlash").css({width:$(window).width(),height:$(window).height()}); $("#divEstamosFlash").css('display','block'); $('#divEstamosFlash').fadeIn('fast'); //Si todo es válido hacemos el submit del formulario $('#frmBuscar').submit(); } } }); } else if (IDMinorista==17){ //Comprobación si el país necesita visado var list_id=$("#list_id").val(); var txtDestino=$("#txtDestino").val(); var permitirVentaEnPais; $.ajax({ type: "POST", url: "inc/funcionesAjax.php", data: "ID=2&list_id=" + list_id+"&txtDestino="+txtDestino, // vamos a comprobar si este pais necesita visado async: false, success: function(html) { permitirVentaEnPais=html; } }); var partes=permitirVentaEnPais.split("|||"); permitirVentaEnPais=partes[0]; if (permitirVentaEnPais=="N"){ // EXCEPCION, mirar funcionesAjax.php alertPopUp(partes[1]); return false; } var necesitaVisado; $.ajax({ type: "POST", url: "inc/funcionesAjax.php", data: "ID=1&list_id=" + list_id+"&txtDestino="+txtDestino, // vamos a comprobar si este pais necesita visado async: false, success: function(html) { necesitaVisado=html; } }); var partes=necesitaVisado.split("|||"); necesitaVisado=partes[0]; if (necesitaVisado=="X"){ // EXCEPCION, mirar funcionesAjax.php valor=dialogVisadosPaisSinVisados(); }else if (necesitaVisado=="Y"){ valor=dialogVisados(); }else{ $("html, body").animate({ scrollTop: 0 }, "fast"); $("body").css('overflow-y','hidden'); // Eliminar las capas flotantes que molestan a #divEstamosFlash $("section").css('z-index','-1'); $(".ui-autocomplete").css('z-index','-1'); //////////////////////////////////////////// $("#divEstamosFlash").css({width:$(window).width(),height:$(window).height()}); $("#divEstamosFlash").css('display','block'); $('#divEstamosFlash').fadeIn('fast'); //Si todo es válido hacemos el submit del formulario setTimeout($('#frmBuscar').submit(),500); //Hacemos esto para que en navegadores antiguos como safari 6 se muestre la capa de busqueda, sino hace el submit antes que la muestre } } else{ $("html, body").animate({ scrollTop: 0 }, "fast"); $("body").css('overflow-y','hidden'); // Eliminar las capas flotantes que molestan a #divEstamosFlash $("section").css('z-index','-1'); $(".ui-autocomplete").css('z-index','-1'); //////////////////////////////////////////// $("#divEstamosFlash").css({width:$(window).width(),height:$(window).height()}); $("#divEstamosFlash").css('display','block'); $('#divEstamosFlash').fadeIn('fast'); //Si todo es válido hacemos el submit del formulario setTimeout($('#frmBuscar').submit(),500); //Hacemos esto para que en navegadores antiguos como safari 6 se muestre la capa de busqueda, sino hace el submit antes que la muestre } } $("#buscarDispo").click( validarFormBusqueda ); function popupInfoGruposBuscador(){ // alertPopUp("Se necessita mais de "+numeroMaxHab+" quartos, por favor contacte-nos para "+emailGrupos); $.ajax({ type: 'GET', method: 'GET', url: '/presupuestoGrupos.php?lang=PT', encode: true }).done(function(data) { popUpMesaje('Informação Grupos', data, true, 'width:825px;') }); } $("#infoGrupos").click(popupInfoGruposBuscador); /***** FUNCIONES DEL CALENDARIO *****/ // NOTA: Las variables del calendario han sido inicializadas en buscador.inc.php var maxFecha = fechaUltimoDiaMes(sumaRestaFecha(getFechaHoy(), "+18","m")); if( TIPO_CABECERA_AGENCIA=='Tren+Hotel' || TIPO_CABECERA_AGENCIA=='Trenes' ){ maxFecha = sumaRestaFecha(getFechaHoy(), "+180","d"); } var NUMERO_MESES = !isMobileOrTablet() ? 2 : 1; //Muestra los calendarios cuando se pincha en el input de las fechas $( "#datetimepicker1" ).datepicker({ dateFormat: "dd/mm/yy", monthNames: meses, monthNamesShort: mesescortos, dayNamesMin: nomdias, changeMonth: true, changeYear: true, numberOfMonths: NUMERO_MESES, firstDay: 1, minDate: getFechaHoy(), maxDate: maxFecha, beforeShow: function( input ) { if ($("#datetimepicker1").val() && $("#datetimepicker2").val()) { // Obtenemos Numero de dias de estancia que habia seleccionados DaysOfStay=getDaysOfStay($("#datetimepicker1").val(),$("#datetimepicker2").val()); } }, onClose: function( selectedDate ) { reconfigurarCalendarios("#datetimepicker1",selectedDate); } }); var maxFecha = fechaUltimoDiaMes(sumaRestaFecha(getFechaHoy(), "+18","m")); if( TIPO_CABECERA_AGENCIA=='Tren+Hotel' || TIPO_CABECERA_AGENCIA=='Trenes' ){ maxFecha = sumaRestaFecha(getFechaHoy(), "+180","d"); } switch( TIPO_CABECERA_AGENCIA ){ case 'Vuelo+Hotel': sumaRestaFecha(fechaManana, "+15"); break; case 'Tren+Hotel': sumaRestaFecha(fechaManana, "+30"); break; } $( "#datetimepicker2" ).datepicker({ defaultDate: "+1d", monthNames: meses, monthNamesShort: mesescortos, dayNamesMin: nomdias, dateFormat: "dd/mm/yy", changeMonth: true, changeYear: true, numberOfMonths: NUMERO_MESES, firstDay: 1, minDate: fechaManana, maxDate: maxFecha, //sumaRestaFecha(fechaManana, "+30"), onClose: function( selectedDate ) { reconfigurarCalendarios("#datetimepicker2",selectedDate); } }); //Muestra el calendario cuando se pincha en el icono $("#datetimepickerCalendar1").click(function() { $( "#datetimepicker1" ).datepicker('show'); }); $("#datetimepickerCalendar2").click(function() { $( "#datetimepicker2" ).datepicker('show'); }); //comprueba fechas correctas $("#datetimepicker2").change(function() { compruebaFechasCorrectas(); }); function reconfigurarCalendarios(campo, selectedDate){ if(campo=='#datetimepicker1'){ var minDate = TIPO_CABECERA_AGENCIA=='Trenes' || TIPO_CABECERA_AGENCIA=='Vuelos'?selectedDate:sumaRestaFecha(selectedDate, "+1"); $( "#datetimepicker2" ).datepicker( "option", "minDate", minDate); if( TIPO_CABECERA_AGENCIA=='Vuelo+Hotel' ){ if( IDMinorista!=17 )$( "#datetimepicker2" ).datepicker( "option", "maxDate", sumaRestaFecha(selectedDate, "+16") ); } if( TIPO_CABECERA_AGENCIA=='Tren+Hotel' || TIPO_CABECERA_AGENCIA=='Trenes' ){ $( "#datetimepicker2" ).datepicker( "option", "maxDate", sumaRestaFecha(selectedDate, "+31") ); } if (DaysOfStay && DaysOfStay==1) { $( "#datetimepicker2" ).datepicker( "setDate", sumaRestaFecha(selectedDate, "+"+DaysOfStay) ); } PonerDiaSemana('FechaInicio'); PonerDiaSemana('FechaFin'); }else{ PonerDiaSemana('FechaFin'); } } function getFechaHoy(){ var today=new Date(), dia=today.getDate(), mes=today.getMonth()+1, anio=today.getFullYear(); dia = dia.toString().length==1?"0"+dia.toString():dia; mes = mes.toString().length==1?"0"+mes.toString():mes; return dia+'/'+mes+'/'+anio; } function getDaysOfStay(strStartDate,strEndDate) { var arrayFecha = strStartDate.split('/'); var dia=arrayFecha[0]; var mes = arrayFecha[1]; var anio = arrayFecha[2]; var date1 = new Date(anio, mes - 1, dia); var arrayFecha = strEndDate.split('/'); var dia = arrayFecha[0]; var mes = arrayFecha[1]; var anio = arrayFecha[2]; var date2 = new Date(anio, mes - 1, dia); var diffDays = parseInt((date2 - date1) / (1000 * 60 * 60 * 24)); return diffDays; } function sumaRestaFecha(fecha, intervalo, dma) { if(!fecha){ fecha=fechaHoy; } var arrayFecha = fecha.split('/'); var dia = arrayFecha[0]; var mes = arrayFecha[1]; var anio = arrayFecha[2]; var fechaInicial = new Date(anio, mes - 1, dia); var fechaFinal = fechaInicial; if(dma=="m"){ fechaFinal.setMonth(fechaInicial.getMonth()+parseInt(intervalo)); }else if(dma=="y" || dma=="Y"){ fechaFinal.setFullYear(fechaInicial.getFullYear()+parseInt(intervalo)); }else{ fechaFinal.setDate(fechaInicial.getDate()+parseInt(intervalo)); } dia = fechaFinal.getDate(); mes = fechaFinal.getMonth() + 1; anio = fechaFinal.getFullYear(); dia = (dia.toString().length == 1) ? "0" + dia.toString() : dia; mes = (mes.toString().length == 1) ? "0" + mes.toString() : mes; return dia + "/" + mes + "/" + anio; } function fechaPrimerDiaMes(fecha){ var arrayFecha = fecha.split('/'); var dia = arrayFecha[0]; var mes = arrayFecha[1]; var anio = arrayFecha[2]; return "01/"+mes+""+anio; } function fechaUltimoDiaMes(fecha){ var arrayFecha = fecha.split('/'); var dia = arrayFecha[0]; var mes = arrayFecha[1]; var anio = arrayFecha[2]; var arrayDiasMeses=new Array("31",((anio%4=='0')?"29":"28"),"31","30","31","30","31","31","30","31","30","31"); return arrayDiasMeses[(mes-1)]+"/"+mes+"/"+anio; } function PonerDiaSemana(campo){ var arrSem=new Array(7);arrSem[0]=" domingo";arrSem[1]=" segunda-feira";arrSem[2]=" terça-feira";arrSem[3]=" quarta-feira";arrSem[4]=" quinta-feira";arrSem[5]=" sexta-feira";arrSem[6]=" sábado"; if(campo=='FechaInicio'){ var idx=1; } else if(campo=='FechaFin'){ var idx=2; } if(idx){ var campoFecha=eval("document.f.datetimepicker"+idx+".value"); if(campoFecha){ var DDMMAAAA=campoFecha.split("/"); var dia=parseInt(DDMMAAAA[0],10); var mes=parseInt(DDMMAAAA[1],10); var ano=parseInt(DDMMAAAA[2],10); var fsalida=new Date(ano,mes-1,dia); var isem=fsalida.getDay();fechaActual=new Date(anoActual,mesActual,diaActual);var mesPoner=mes-1;var diaPoner=dia;if(mesPoner<10){mesPoner='0'+mesPoner;} if(diaPoner<10){diaPoner='0'+diaPoner;} fecha=new Date(ano,mesPoner,diaPoner);diasDiferencia=diferenciaFechas(fecha,fechaActual);var objCapa="";var txtDiferencia="";var txtDiferencia2="";if(diasDiferencia<0){txtDiferencia="";} else if(diasDiferencia==0){if(objCapa==null){txtDiferencia="Hoje, ";}} else if(diasDiferencia==1){if(objCapa==null){txtDiferencia="Manhã, ";}} else if(diasDiferencia==2){if(objCapa==null){txtDiferencia="Pasadomañana, ";}} else if(diasDiferencia<7){txtDiferencia2="Dentro de "+diasDiferencia+" dí­as ";} else if(diasDiferencia<28){var semanas=parseInt(diasDiferencia/7);var resto=parseInt(diasDiferencia%7);txtDiferencia2="Dentro de "+semanas;if(semanas==1){txtDiferencia2=txtDiferencia2+" semana ";} else{txtDiferencia2=txtDiferencia2+" semanas ";} if(resto>0){txtDiferencia2=txtDiferencia2+"y "+resto+" dí­as ";}} if(idx==1){if(MM_findObj('fe_dsem')!=null){$('#fe_dsem').html(txtDiferencia+arrSem[isem])}if(MM_findObj('fe_dsem2')!=null){document.f.fe_dsem2.innerHTML=txtDiferencia2;}} else if(idx==2){if(MM_findObj('fs_dsem')!=null){$('#fs_dsem').html(txtDiferencia+arrSem[isem])}if(MM_findObj('fs_dsem2')!=null){document.f.fs_dsem2.innerHTML=txtDiferencia2;}}}} return; } function MM_findObj(n,d){var p,i,x;if(!d)d=document;if((p=n.indexOf("?"))>0&&parent.frames.length){d=parent.frames[n.substring(p+1)].document;n=n.substring(0,p);} if(!(x=d[n])&&d.all)x=d.all[n];for(i=0;!x&&i105) && (e.keyCode<48 || e.keyCode>57) ) e.preventDefault(); //El primeri array tiene los codeKey validos para los imput de precios }); $("#menores").change(CompruebaNinosVuelos); //select del número de menores del buscador de vuelos } //Muestra u oculta los input de las edades de los niños según corresponda function CompruebaNinos() { $("#txtEdadesNinos").hide(); $("#txtEdadesNinos2").hide(); $("[id^=habitacion]").hide(); $("[id^=edadesNinos]").hide(); $("[id^=edadNino]").hide(); // $("[id^=bebes]").hide(); $("[id^=bebes] option").hide(); var nHab = parseInt($("#H").val()) + 1; for(var iHab=1; iHab<11; iHab++){ if(iHab < nHab){ $("#habitacion"+iHab).show(); var ocuHab = $("#O"+iHab).val(); $("#edadesNinos"+ iHab).show(); if( $("#O"+iHab).length ){ var nNinos=ocuHab.charAt(2); if( nNinos>0 ){ $("#txtEdadesNinos").show(); $("#txtEdadesNinos2").show(); // $("#bebes"+ iHab).show(); var optionsBebes = $("#bebes"+ iHab +" option"); var nBebes = $("#bebes"+iHab).length?$("#bebes"+iHab).val():0; $( optionsBebes[0] ).show(); for(iNino=1; iNino<=3; iNino++){ if( iNino<=nNinos ){ $( optionsBebes[iNino] ).show(); if( iNino>nBebes ){ $("#edadNino"+iHab+"_"+iNino).show(); //if( $("#edadNino"+iHab+"_"+iNino).val()==0 )$("#edadNino"+iHab+"_"+iNino).val(""); }else $("#edadNino"+iHab+"_"+iNino).val(0); }else{ $("#edadNino"+iHab+"_"+iNino).hide(); $("#edadNino"+iHab+"_"+iNino).val(""); } } }else $("[id^=edadNino"+iHab+"]").val(""); } }else $("[id^=edadNino"+iHab+"]").val(""); } // Borrarmos las edades de todos los niños ocultos $("[id^=edadNino]:hidden").val(""); establecerTabIndex("frmBuscar"); } //Función que muestra u oculta los input de las edades de los niños según corresponda en el buscador de vuelos function CompruebaNinosVuelos(){ var numeroMenores=$('#menores').val(); if (numeroMenores>0){ $('#txtEdadesNinos').show(); $('#txtEdadesNinos2').show(); var inputNinos = $("input[id^=edadNino]"); for(var i=1; i<=inputNinos.length; i++){ if (i<=numeroMenores)$('#edadNino'+i).show(); else $('#edadNino'+i).hide(); } }else{ $('#txtEdadesNinos').hide(); $('#txtEdadesNinos2').hide(); $("input[id^=edadNino]").hide(); } } function compruebaFechasCorrectas(){ //Comprobamos que las fechas sean correctas var entrada=$("#datetimepicker1").val(); var arrayEntrada=entrada.split("/"); var diaEntrada=arrayEntrada[0]; var mesEntrada=arrayEntrada[1]; var annoEntrada=arrayEntrada[2]; var salida=$("#datetimepicker2").val(); var arraySalida=salida.split("/"); var diaSalida=arraySalida[0]; var mesSalida=arraySalida[1]; var annoSalida=arraySalida[2]; var error='Atenção! A data de saída deve ser maior que a data de entrada'; if (annoSalidaAceitar e actualizar\ Continuar sem actualizar\ "; popUpMesaje(title, html); } /* * Función que establece el orden de los input acorde a como se muestran en el HTML */ function establecerTabIndex(idForm){ // Establecemos el orden general conforme se muestran en el HTML $("#"+idForm).find("input:visible, select:visible, textarea:visible, button:visible, a:visible").each(function(i,el){ $(el).attr("tabindex", i*20+100); }); // Establecemos el orden de las edades de los niños de las habitaciones (en el HTML primero estan las habitaciones y luego las edades) $("[id^=habitacion] select:visible").each(function(i,elHab){ var tabIndex = parseInt($(elHab).attr("tabindex"),10); $("[id^=edadNino"+ (i+1) +"_]:visible").each(function(j,elEdad){ $(elEdad).attr("tabindex", tabIndex+j+1); }); }); // Aeropuerto destino en Vuelo+Hotel if( $("#aer_destino_name:visible").length && $("#txtDestino").length ){ $("#aer_destino_name:visible").attr("tabindex", parseInt($("#txtDestino").attr("tabindex"),10)+1); } } // Establecemos el orden de los inputs del formulario establecerTabIndex("frmBuscar"); function seleccionarAeropuertoDestino(e){ if( $(e.target).prop('checked') ){ $('#divAeropuertoDestino').css('display', 'block'); }else{ $('#divAeropuertoDestino').css('display', 'none'); $('#aer_destino_name').val(''); $('#aer_destino_value').val(''); } establecerTabIndex("frmBuscar"); } /** SUGERIDOR DE AEROPUERTOS **/ AEROPUERTOS_SUGERIDOS = []; ULTIMO_ID_AEROPUERTOS_SUGERIDOS = null; function mostrarIconAeropuertosCercanos(){ if( $("#list_id").val()!='' ){ if( $('#iconAeropuertosSugeridos').length==0 || ULTIMO_ID_AEROPUERTOS_SUGERIDOS!=$("#list_id").val() ){ ULTIMO_ID_AEROPUERTOS_SUGERIDOS = $("#list_id").val(); AEROPUERTOS_SUGERIDOS = []; $.ajax({ url: "/js/ajax/getAirportsZone.php?IDZone="+ $("#list_id").val(), dataType: "json", success: function(aeropuertos) { AEROPUERTOS_SUGERIDOS = aeropuertos; if(aeropuertos && aeropuertos.length>1){ var idZone = $('#list_id').val(); idZone = parseInt(idZone.replace('Z_',''),10); var encontradaZona = false; var minDistancia = 10000; $.each(aeropuertos, function(i, aer){ if( aer.IDZona==idZone )encontradaZona = true; var distanciaAer = parseFloat(aer.distancia); if( distanciaAer50 ){ var html = "

No se ha encontrado un aeropuerto en la zona solicitada, buscaremos los aeropuertos más cercanos a esta zona.

" + "Aceitar"; if( $('#titNoEncontradoAero').length==0 )popUpMesaje('', html, false); } $('#iconAeropuertosSugeridos').remove(); var html = '\ \ '; $("#txtDestino").closest("div").append(html); } // comprobarResidente(); } }); } }else{ setTimeout(mostrarIconAeropuertosCercanos,50); } } function mostrarAeropuertosCercanosZona(){ if( AEROPUERTOS_SUGERIDOS && AEROPUERTOS_SUGERIDOS.length ){ var html = ''; html += '
' + '' + '
'; $("html").append(html); } } function clickAeropuertosCercanosZona(nombre, iata){ $('#cargandoBackground').remove(); $('#cargandoContent').remove(); $('#aer_destino_name').val(nombre); $('#aer_destino_value').val(iata); $("#divAeropuertoDestino").show(); if( !$("#aeropuertoDestino").prop("checked",true) )$("#aeropuertoDestino").trigger("click"); } if( $("#txtDestino").length && $("#aer_destino_value").length ){ $("#txtDestino").bind("blur",function(){ mostrarIconAeropuertosCercanos(); }); $("#txtDestino").bind("keydown",function(){ $("#iconAeropuertosSugeridos").remove(); // $('#aer_destino_name').val(''); // $('#aer_destino_value').val(''); }); } /** fin SUGERIDOR DE AEROPUERTOS **/ /** SUGERIDOR DE ESTACIONES DE TREN **/ RADIO_BUSCAR_ESTACIONES = 50; ESTACIONES_TREN_SUGERIDAS = []; ULTIMO_ID_ESTACIONES_TREN_SUGERIDAS = null; function mostrarIconEstacionesTrenCercanas(){ if( $("#list_id").val()!='' ){ if( $('#iconEstacionesTrenSugeridas').length==0 || ULTIMO_ID_ESTACIONES_TREN_SUGERIDAS!=$("#list_id").val() ){ ULTIMO_ID_ESTACIONES_TREN_SUGERIDAS = $("#list_id").val(); ESTACIONES_TREN_SUGERIDAS = []; $.ajax({ url: "/js/ajax/getTrainStationsZone.php?ID="+ $("#list_id").val() +'&d='+ RADIO_BUSCAR_ESTACIONES + ($('#txtTren_id').val()!=''?'&o='+$('#txtTren_id').val():''), dataType: "json", success: function(estaciones) { if(estaciones && estaciones.length>1){ ESTACIONES_TREN_SUGERIDAS = estaciones; // Solo mostramos el sugeridor de estaciones si no hay una estación principal para esa zona var mostrarSugeridorEstaciones = true; var IdZonaBuscador = null; var vIdZonaBuscador = ULTIMO_ID_ESTACIONES_TREN_SUGERIDAS.split('_'); var nombreZonaBuscador = ( $('#txtDestino').val() ).toLowerCase(); var nombreProvincia = nombreZonaBuscador.indexOf('provincia')!=-1; // Si estamos buscando un IDZona comprobamos si viene para alguna de las estaciones if( vIdZonaBuscador[0]=='Z' ){ var IdZonaBuscador = vIdZonaBuscador[1]; // IdZona en la que vamos a buscar los hoteles $.each(estaciones, function(iEstacion, estacion){ var nombreEstacion = estacion.nombre.toLowerCase(); // si encontramos el IDZona o coincide if( estacion.idZona==IdZonaBuscador // || (!nombreProvincia && (nombreEstacion.indexOf(nombreZonaBuscador)!=-1 || nombreZonaBuscador.indexOf(nombreEstacion)!=-1) ) )mostrarSugeridorEstaciones = false; }); } // Si estamos buscando un IDZona comprobamos si viene para alguna de las estaciones if( vIdZonaBuscador[0]=='H' ){ var IdZonaBuscador = vIdZonaBuscador[1]; // IdZona en la que vamos a buscar los hoteles $.each(estaciones, function(iEstacion, estacion){ if( estacion.distancia<=10 )mostrarSugeridorEstaciones = false; }); } if( mostrarSugeridorEstaciones ){ $('#iconEstacionesTrenSugeridas').remove(); var html = '\ \ '; $("#txtDestino").closest("div").append(html); $("#estTren_radio").val(RADIO_BUSCAR_ESTACIONES); // Por defecto hacemos que busque en un radio de 50km } } } }); } }else{ setTimeout(mostrarIconEstacionesTrenCercanas,50); } } function mostrarEstacionesTrenCercanasZona(){ if( ESTACIONES_TREN_SUGERIDAS && ESTACIONES_TREN_SUGERIDAS.length ){ var html = ''; html += '
' + '' + '
'; $("html").append(html); } } function clickEstacionTrenCercanasZona(nombre, idEstacion){ $('#cargandoBackground').remove(); $('#cargandoContent').remove(); $('#estTren_destino_name').val(nombre); $('#estTren_destino_value').val(idEstacion); $("#divEstacionTrenDestino").show(); $("#estTren_radio").val('0'); if( !$("#aeropuertoDestino").prop("checked",true) )$("#aeropuertoDestino").trigger("click"); } if( $("#txtDestino").length && $("#estTren_destino_value").length ){ $("#txtDestino").bind("blur",function(){ mostrarIconEstacionesTrenCercanas(); }); $("#txtDestino").bind("keydown",function(){ $("#iconEstacionesTrenSugeridas").remove(); $('#estTren_destino_name').val(''); $('#estTren_destino_value').val(''); $("#estTren_radio").val(''); $("#divEstacionTrenDestino").hide(); }); } /** fin SUGERIDOR DE ESTACIONES DE TREN **/ function dialogVisados() { $("#dialog-confirm-visados").css("display", "block"); $("#dialog-confirm-visados").dialog({ resizable: false, height:140, modal: true, buttons: { "Si": function() { $( this ).dialog( "close" ); $("#necesitaVisado").val('Y'); $("html, body").animate({ scrollTop: 0 }, "fast"); $("body").css('overflow-y','hidden'); // Eliminar las capas flotantes que molestan a #divEstamosFlash $("section").css('z-index','-1'); $(".ui-autocomplete").css('z-index','-1'); //////////////////////////////////////////// $("#divEstamosFlash").css({width:$(window).width(),height:$(window).height()}); $("#divEstamosFlash").css('display','block'); $('#divEstamosFlash').fadeIn('fast'); //Si todo es válido hacemos el submit del formulario $('#frmBuscar').submit(); }, "Não": function() { $( this ).dialog( "close" ); $("#necesitaVisado").val('N'); $("html, body").animate({ scrollTop: 0 }, "fast"); $("body").css('overflow-y','hidden'); // Eliminar las capas flotantes que molestan a #divEstamosFlash $("section").css('z-index','-1'); $(".ui-autocomplete").css('z-index','-1'); //////////////////////////////////////////// $("#divEstamosFlash").css({width:$(window).width(),height:$(window).height()}); $("#divEstamosFlash").css('display','block'); $('#divEstamosFlash').fadeIn('fast'); //Si todo es válido hacemos el submit del formulario $('#frmBuscar').submit(); } } }); $("#dialog-confirm-visados").dialog("option", "position", "center"); ajusteDialogVisado(); } function dialogVisadosPaisSinVisados() { $("#dialog-confirm-visados-pais-sin-visado").css("display", "block"); $("#dialog-confirm-visados-pais-sin-visado").dialog({ resizable: false, modal: true, buttons: { "Pesquisar": function() { $( this ).dialog( "close" ); $("#necesitaVisado").val('N'); $("html, body").animate({ scrollTop: 0 }, "fast"); $("body").css('overflow-y','hidden'); // Eliminar las capas flotantes que molestan a #divEstamosFlash $("section").css('z-index','-1'); $(".ui-autocomplete").css('z-index','-1'); //////////////////////////////////////////// $("#divEstamosFlash").css({width:$(window).width(),height:$(window).height()}); $("#divEstamosFlash").css('display','block'); $('#divEstamosFlash').fadeIn('fast'); //Si todo es válido hacemos el submit del formulario $('#frmBuscar').submit(); } } }); $("#dialog-confirm-visados-pais-sin-visado").dialog("option", "position", "center"); ajusteDialogVisado(); } // Función que ajusta automáticamente el cuadro de dialogo de los visados para que se vea correctamente function ajusteDialogVisado(){ $('.ui-dialog.ui-widget.ui-widget-content.ui-corner-all').css("position","absolute"); $('.ui-dialog.ui-widget.ui-widget-content.ui-corner-all').css("top","150px"); $('html').scrollTop(0); $('body').scrollTop(0); } // Mensaje de aviso para los bebes en trenes var AVISO_ASIENTO_BEBE_TREN = false; if( TIPO_CABECERA_AGENCIA=='Tren+Hotel' ){ // Aviso para los billetes de bébes $('input[id*=edadNino]').change(function(e){ if( !AVISO_ASIENTO_BEBE_TREN && $(e.target).val()<4 ){ var html = "

Os menores de 4 anos, viajam grátis e não ocupam assento, em caso de querer ocupar assento deverá comprar bilhete, indicando na idade que é maior de 4 anos..

" + "
" + "Aceitar"; popUpMesaje('', html, false); AVISO_ASIENTO_BEBE_TREN = true; } }); } if( TIPO_CABECERA_AGENCIA=='Trenes' ){ // Aviso para los billetes de bébes $('#bebes').blur(function(e){ if( !AVISO_ASIENTO_BEBE_TREN && $(e.target).val()<4 ){ var html = "

Os menores de 4 anos, viajam grátis e não ocupam assento, em caso de querer ocupar assento deverá comprar bilhete, indicando na idade que é maior de 4 anos..

" + "
" + "Aceitar"; popUpMesaje('', html, false); AVISO_ASIENTO_BEBE_TREN = true; } }); } //Función para los vuelos que comprueba que los bebes no sean mayor al número de adultos function compruebaBebes(){ if ($('#adultos').val()<$('#Vbebes').val()){ var html = "

O número de bebés não pode ser superior ao de adultos já que os mesmos sempre têm de ir acompanhados..

" + "
" + "Aceitar"; popUpMesaje('', html, false); $('#Vbebes').val($('#adultos').val()); } } //Función que pasandole un json monta los paises function pintaComboPaises(pais){ idioma="PT"; var idagencia="1194"; if (!pais){ if (idioma=="CHI"){ pais=79; }else if (idioma=="PT"){ pais=34; }else{ pais=15; } if (idagencia=='10270'){ pais=35; } } $.each(jsonPaises, function(i, j){ var row = ''; $(row).appendTo("#paisSel"); }); if( !pais || pais==0 )pais = ''; $("#paisSel option[value='" + pais +"']").attr("selected",true); //Selecciona el pais } $(document).ready(function() { pintaComboPaises(pais); }); //Función que muestra el selector de la ocupación de vuelos function muestraSelectorOcupacion(){ var datosBusqueda = { "adultos" : $('#adultos').val(), "jovenes" : $('#jovenes').val(), "menores" : $('#menores').val(), "bebes" : $('#Vbebes').val() }; var html ='' + '
' + '
' + '' + '
' + '
' + ''; $('#popUpDetallesHotelBackground').remove(); $('#popUpDetallesHotel').remove(); $('body').append(html); // Ajustamos el alto de la ventana var altoMenu = $("#menuDetallesHotelPopUp").height(); var altoMaximo = $(window).height() - 130 - altoMenu + (altoMenu>50?30:0); $("#divContentPopup").css("max-height", altoMaximo); $('#SelecOcupacion').remove(); jQuery('
+
-
').insertAfter('.quantity input'); jQuery('.quantity').each(function(){ var spinner = jQuery(this), input = spinner.find('input[type="number"]'), btnUp = spinner.find('.quantity-up'), btnDown = spinner.find('.quantity-down'), min = input.attr('min'), max = input.attr('max'); btnUp.click(function() { var oldValue = parseFloat(input.val()); if( oldValue>=max ){ var newVal = oldValue; }else{ var newVal = oldValue + 1; } spinner.find("input").val(newVal); spinner.find("input").trigger("change"); }); btnDown.click(function() { var oldValue = parseFloat(input.val()); if( oldValue<=min ){ var newVal = oldValue; }else{ var newVal = oldValue - 1; } spinner.find("input").val(newVal); spinner.find("input").trigger("change"); }); }); } function muestraSelectorOcupacionAjax(){ var datosBusqueda = { "adultos" : $('#adultos').val(), "jovenes" : $('#jovenes').val(), "menores" : $('#menores').val(), "bebes" : $('#Vbebes').val() }; $.ajax({ type: 'GET', url: '/js/ajax/getOcupacion.php', dataType: "html", data:datosBusqueda, success: function(data){ $('body').append('
'+ data +'
'); var html ='' + '
' + '
' + '' + '
' + '
' + ''; $('#popUpDetallesHotelBackground').remove(); $('#popUpDetallesHotel').remove(); $('body').append(html); // Ajustamos el alto de la ventana var altoMenu = $("#menuDetallesHotelPopUp").height(); var altoMaximo = $(window).height() - 130 - altoMenu + (altoMenu>50?30:0); $("#divContentPopup").css("max-height", altoMaximo); $('#SelecOcupacion').remove(); } }); } //Función que establece la ocupación de vuelos function estableceOcupacion(){ var adultos=$('#adults').val(); var jovenes=$('#teens').val(); var ninos=$('#childrens').val(); var bebes=$('#babies').val(); $('#adultos').val(adultos); $('#jovenes').val(jovenes); $('#menores').val(ninos); $('#Vbebes').val(bebes); var txtOcupacion=adultos; if (adultos>1){ txtOcupacion+=' adultos'; }else{ txtOcupacion+=' adulto'; } if( jovenes>0 ){ txtOcupacion+=', '+jovenes; if (jovenes>1){ txtOcupacion+=' jóvenes'; }else{ txtOcupacion+=' joven'; } } if (ninos>0){ txtOcupacion+=', '+ninos; if (ninos>1){ txtOcupacion+=' crianças'; }else{ txtOcupacion+=' criança'; } } if (bebes>0){ txtOcupacion+=', '+bebes; if (bebes>1){ txtOcupacion+=' bebés'; }else{ txtOcupacion+=' bebé'; } } $('#ocupacion').val(txtOcupacion); $('#popUpDetallesHotelContent,#popUpDetallesHotelBackground').remove(); } function compruebaOcupacionVuelos(idInputChange){ var adultos=parseInt($('#adults').val(),10); var jovenes=parseInt($('#teens').val(),10); var ninos=parseInt($('#childrens').val(),10); var bebes=parseInt($('#babies').val(),10); var htmlBotonAceptar = '
' + ''; if( bebes>adultos ){ $('#babies').val(adultos); popUpMesaje("", "Devido às restrições com as distinas companhias aéreas o número de crianças não pode ser superior ao de adultos" + htmlBotonAceptar, true); } if( adultos+jovenes+ninos+bebes > 9){ switch(idInputChange){ case 'adults': $('#'+idInputChange).val(adultos-1); break; case 'teens': $('#'+idInputChange).val(jovenes-1); break; case 'childrens': $('#'+idInputChange).val(ninos-1); break; case 'babies': $('#'+idInputChange).val(bebes-1); break; } popUpMesaje("", "O número máximo de pessoas permitido é 9" + htmlBotonAceptar, true); } } function calculaCamposOneWay(){ if(document.getElementById('oneway').checked == true){ document.getElementById('colFechaVuelta').style.display = 'none'; document.getElementById('colHorasVuelta').style.display = 'none'; } else{ document.getElementById('colFechaVuelta').style.display = 'block'; document.getElementById('colHorasVuelta').style.display = 'block'; } } function muestraDestinosNieve(){ var html = ''; html += '
' + '