//gestion de habitaciones disponibles var num_hab_desde=''; var num_hab_hasta=''; if (num_hab_desde=='') num_hab_desde = "2"; if (num_hab_hasta=='') num_hab_hasta = "6"; num_hab_desde = parseInt(num_hab_desde); num_hab_hasta = parseInt(num_hab_hasta); //validar moneda usuario var moneda_selected='RQ_com_tds_fromSearchAvailability'; var global_showPopupInfo = true; $i(function() { $i('#rooms-tabs li:first').children("a").trigger("click"); $i('#city').attr("readonly","readonly"); $i('#city').attr("disabled","disabled"); $i('#city-btn-erase').hide(); $i("#city").catcomplete("disable"); $i('#city').off("keyup"); $i('#city').addClass("disabled"); $i('.ui-autocomplete-input').off('keyup'); var infoChangeOccupationText = "Modificação reserva com locator {1} . Confirme o novo preço da sua reserva.".replace("{1}", ""); $i("#infoChangeOccupation").html(infoChangeOccupationText); $i("#marketingTextDescription").append(decodeURIComponent('')); if (priceTabPack > 0) $i("#packageTab").append('Desde '+priceTabPack+' /noite'); if (priceTabRoom > 0) $i("#roomTab").append('Desde '+priceTabRoom+' /noite'); if (priceTabOffer > 0) $i("#offerTab").append('Desde '+priceTabOffer+' /noite'); refreshCart(); currencyExchangeInit(); footer.init(); goTo('#section'); roomPrerequisites(); }); function bookRoom(rate,habId,isPackage){ addBookRoom(rate,habId,isPackage); } function addBookRoom(rate,habId,isPackage){ $i('.cont-error').remove(); $i('#section').find('.cont-error').remove(); var sMaxBookings = "4"; //número máximo de reservas para el carrito var maxBookings = (sMaxBookings.toString()!="") ? parseInt(sMaxBookings) : 5; if ($i('#resume-panel-booking-cart').find('.room').length >= maxBookings){ mostrarErrorWeb("O número máximo de quartos para ser adicionado no cesto é {1}.".replace("{1}",maxBookings)); return; }else{ var division = rate.split("#"); var idDisp=division[2]; var body = $i("html, body"); goTo('#section'); var params = { rate: rate, isPackage: isPackage } if (isPackage =="Y"){ idDisp=division[6];//varía si es un paquete } addToCartAnimation('#'+habId+'_'+division[3]+'_'+idDisp+'_'+division[1], function(params) { manageCart('','ADD_ROOM',params.rate, params.isPackage); addServices(params.rate, params.isPackage); goTo('#section'); }, params); } } function addServices(rate,isPackage){ try{ var division = rate.split("#"); $i("#room_selected").val(division[3]);//indice de la hab 1ª,2ª... $i("#disp_selected").val(division[1]);//indice de los precios dentro de cada bloque de tarifas. $i("#nombreHab").val($i("#nombreHab_"+division[3]).text()); // codigo de la habitacion $i("#codNivel_selected").val(division[2]);// indice de cada bloque de tarifas $i("#moneda_usuario").val(checkNullValue($i("#currency-filter option:selected").attr("id"))); $i("#disp_selected").val(division[1]); $i("#pack_selected").val(''); if (isPackage =="Y"){ $i("#pack_selected").val(division[1]); $i("#disp_selected").val(division[6]);//cambia para paquetes } }catch (e){ mostrarErrorWeb("isAlert.ERROR_DISPONIBILIDAD"); return; } chargeDynamicServices(division[2],division[5],division[3],$i("#disp_selected").val(),isPackage,$i("#pack_selected").val(), $i("#nombreHab").val()); } function manageCart(id,action,rate,isPackage){ var params="idPartner=3HB"; params+="&lang=pt"; try{ $i('.cont-error').remove(); if (action == 'REMOVE'){ params+="&id="+id; params+="&action="+action; $i('#room_'+id).slideUp(); } else if (action == 'REMOVE_ALL' || action == 'EMPTY_ALL') { params+="&action="+action; } else { var division = rate.split("#"); $i("#nombreHab").val($i("#nombreHab_"+division[3]).text()); // codigo de la habitacion $i("#codNivel_selected").val(division[2]);// indice de cada bloque de tarifas $i("#moneda_usuario").val(checkNullValue($i("#currency-filter option:selected").attr("id"))); $i("#disp_selected").val(division[1]); $i("#pack_selected").val(''); if (isPackage =="Y"){ //cambia para paquetes $i("#pack_selected").val(division[1]); $i("#disp_selected").val(division[6]); } params+="&id="+id; params+="&action="+action; params+="&room_selected="+division[3]; params+="&disp_selected="+$i("#disp_selected").val(); params+="&codigoNivelTarifario_selected="+division[2]; params+="&esPaquete="+isPackage; params+="&nombreHab="+$i("#nombreHab_"+division[3]).text(); params+="&pack_selected="+$i("#pack_selected").val(); if ($i('#currency-filter').val()!="") params+="&userCurrency=" + checkNullValue($i("#currency-filter option:selected").attr("id")); params+="&rand="+Math.random(); } } catch(e){ mostrarErrorWeb("isAlert.ERROR_DISPONIBILIDAD"); return; } //Comprobamos si se debe lanzar la pagina de paquetes dinamicos $i.ajax({ type: "POST", async:false, cache:false, url: "../../nReservations/jsp/E_Manage_BookingCart.jsp", data: encodeURI(params), success: function(response) { if (action=='REMOVE'){ refreshCart(action); } else if (action=='REMOVE_ALL') { global_showPopupInfo = false; addBookRoom(rate, id, isPackage); } else if (action=='EMPTY_ALL') { global_showPopupInfo = false; } }, error:function (xhr, ajaxOptions, thrownError){ try{ //console.log("chargeDynamicServices:ajax:status:"+xhr.statusText); }catch(err){ // } } }); } function refreshCart (action){ try{ var isModify = ("" == "true") ? true : false; if ("Y" == "Y" || isModify) { var param="idPartner=3HB"; param+="&lang=pt"; param+="&rand="+Math.random(); $i("#resume-panel-booking-cart").load("../../nPortlets/jsp/E_BookingCart.jsp",param,function( response, status, xhr ) { if ( status == "error" ) { mostrarErrorWeb("Se produziu un erro durante a consulta."); return; }else{ if (action=='REMOVE' && $i("#shopping-cart .room").length == 0) global_showPopupInfo = false; popupsInit(); activateSlideToggle(); } }); } $i('#currency-filter').trigger("change"); }catch (e){ mostrarErrorWeb("Não foi possível realizar sua petição. Por favor, aguarde alguns minutos ou atualize a página pulsando a tecla F5."); } } function chargeDynamicServices(codigoNivelTarifario,regimen,room_selected,disp_selected,esPaquete,paquete, nombreHab){ error=false; if(room_selected==''||disp_selected=='' ||codigoNivelTarifario==''){ error=true; } var params="idPartner=3HB"; params+="&lang=pt"; params+="&room_selected="+room_selected; params+="&disp_selected="+disp_selected; params+="&codigoNivelTarifario_selected="+codigoNivelTarifario; params+="&esPaquete="+esPaquete; params+="&pack_selected="+paquete; params+="&nombreHab="+nombreHab; if ($i('#currency-filter').val()!="") params+="&userCurrency=" + checkNullValue($i("#currency-filter option:selected").attr("id")); params+="&rand="+Math.random(); //Comprobamos si se debe lanzar la pagina de paquetes dinamicos $i.ajax({ type: "POST", async:false, cache:false, url: "../../nReservations/jsp/E_Booking_Addons.jsp", data: params, //dataType: 'xml', // Reconocemos el browser success: function(response) { var isModify = ("" == "true") ? true : false; if ("Y" == "N" && !isModify) { goToStep1(); }else{ refreshCart(); $i('.mfp-close').trigger('click'); } }, error:function (xhr, ajaxOptions, thrownError){ try{ //console.log("chargeDynamicServices:ajax:status:"+xhr.statusText); }catch(err){ // } } }); } function getOfferPriceCross(strPrecioOferta, strPrecioReal ){ try{ var nPrecioOferta = new Number(quitarFormatoLocal(strPrecioOferta)); var nPrecioReal = new Number(quitarFormatoLocal(strPrecioReal)); if(nPrecioOferta>nPrecioReal) return true; else return false; } catch(e){return false;} } //manejo de pestañas de ofertas, habitaciones y paquetes function showLabel(seccion) { if (seccion=='mainRooms'){ $i("#roo").addClass("active" ); $i("#off").removeClass("active"); $i("#paq").removeClass("active"); $i("#offers").hide(); $i("#package").hide(); $i("#mainRooms").show(); }else if (seccion=='offers'){ $i("#off").addClass("active" ); $i("#roo").removeClass("active"); $i("#paq").removeClass("active"); $i("#mainRooms").hide(); $i("#package").hide(); $i("#offers").show(); }else if (seccion=='package'){ $i("#paq").addClass("active" ); $i("#roo").removeClass("active"); $i("#off").removeClass("active"); $i("#mainRooms").hide(); $i("#offers").hide(); $i("#package").show(); } } function addToCartAnimation(id, complete, params){ var cart = $i('#shopping-cart'); var imgtodrag = $i(id).parents("tr"); if (imgtodrag) { var imgclone = imgtodrag .clone() .offset({ top: imgtodrag.offset().top, left: imgtodrag.offset().left }) .css({ 'opacity': '0.75', 'position': 'absolute', 'height': '750px', 'width': '750px', 'z-index': '100' }) .appendTo($i('body')) .animate({ 'top': cart.offset().top + 200, 'left': cart.offset().left, 'width': 300, 'height': 300 }, 500, 'easeInOutExpo', function() { cart.find(".main").effect("highlight", { times: 1, color: $i('.rooms table.prices .title span').css("background-color") }, 1000); imgclone.animate({ 'width': 0, 'height': 0 }, 10, 'easeInOutExpo', function () { processingRequest(); var that=$i(this); setTimeout(function() { $i(that).detach(); complete(params); },10) }); }); } } function validateBookingCart(){ var params="idPartner=3HB"; params+="&lang=pt"; params+="&rand="+Math.random(); $i.ajax({ type: "POST", async: false, cache: false, url: "../../nReservations/jsp/E_Booking_ValidateCart.jsp", data: params, dataType: 'xml', success: function(xml) { $i(xml).find("info").each(function() { /* Room prerequisites */ var roomPrerequsiteError = $i(this).find("roomPrerequsiteError").text(); if (roomPrerequsiteError) { showGenericPopup("Atenção!",$i(this).find("roomPrerequsiteMessage").text()); bookingCartIsValid = false; } else { /* AddOns availability */ var addonsAvailable = $i(this).find("addonsAvailable").text(); if (addonsAvailable=="Y") { var urlForm = "//3hb.idiso.com/desk/nReservations/jsp/C_Booking_Addons.jsp"; var isModify = ("" == "true") ? true : false; if ("Y" == "N" && !isModify) { document.step1.action = urlForm; } else { document.frmStep1.action = urlForm; } } else if (addonsAvailable=="N" && "Y" == "N" && !isModify) { document.step1.action="https://3hb.idiso.com/desk/nReservations/jsp/C_Booking_Step1.jsp"; } bookingCartIsValid = true; } }); }, error:function (xhr, ajaxOptions, thrownError){ bookingCartIsValid = false; } }); } var bookingCartIsValid=false; function goToStep1() { processingRequest(); validateBookingCart(); if (bookingCartIsValid) { try { $i('#userCurrency').val(checkNullValue($i("#currency-filter option:selected").attr("id"))); var isModify = ("" == "true") ? true : false; if ("Y" == "N" && !isModify) { document.step1.submit(); } else { $i('.mfp-close').trigger('click'); document.frmStep1.submit() } } catch(e) {} } } function modifyBookingOccupancy (){ var textLoading = "A ocupação de sua reserva está sendo atualizado." + ""; showModifyPopup("fa-male", "Atualização de ocupação", textLoading); modifyBooking("MODIFYOCCUPANCY"); } function limitPromoDescription(promoDescription) { return promoDescription.substring(0, 50); } function roomPrerequisites() { try { if ("APARTAMENTO T1 STANDARD"!="") { $i(".prerequisites.prerequisite_APT").html("Este quarto requer que se reserve também o quarto '{1}'".replace("{1}","APARTAMENTO T1 STANDARD")); } } catch (e) {} try { if ("APARTAMENTO T1 DELUXE"!="") { $i(".prerequisites.prerequisite_AP1").html("Este quarto requer que se reserve também o quarto '{1}'".replace("{1}","APARTAMENTO T1 DELUXE")); } } catch (e) {} try { if ("APARTAMENTO T1 DELUXE VISTA MAR LATERAL"!="") { $i(".prerequisites.prerequisite_AT3").html("Este quarto requer que se reserve também o quarto '{1}'".replace("{1}","APARTAMENTO T1 DELUXE VISTA MAR LATERAL")); } } catch (e) {} try { if ("APARTAMENTO T1 DELUXE VISTA MAR"!="") { $i(".prerequisites.prerequisite_AP2").html("Este quarto requer que se reserve também o quarto '{1}'".replace("{1}","APARTAMENTO T1 DELUXE VISTA MAR")); } } catch (e) {} try { if ("Apartamento T1 Standard"!="") { $i(".prerequisites.prerequisite_APT").html("Este quarto requer que se reserve também o quarto '{1}'".replace("{1}","Apartamento T1 Standard")); } } catch (e) {} try { if ("Apartamento T1 Deluxe Vista Mar Lateral"!="") { $i(".prerequisites.prerequisite_AT3").html("Este quarto requer que se reserve também o quarto '{1}'".replace("{1}","Apartamento T1 Deluxe Vista Mar Lateral")); } } catch (e) {} try { if ("Apartamento T1 Deluxe Vista Mar"!="") { $i(".prerequisites.prerequisite_AP2").html("Este quarto requer que se reserve também o quarto '{1}'".replace("{1}","Apartamento T1 Deluxe Vista Mar")); } } catch (e) {} try { if ("Apartamento T1 Deluxe"!="") { $i(".prerequisites.prerequisite_AP1").html("Este quarto requer que se reserve também o quarto '{1}'".replace("{1}","Apartamento T1 Deluxe")); } } catch (e) {} }