CINXE.COM
CLUB HOY
<!DOCTYPE html> <html lang="es"> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=2.0"> <meta name="genio-extension" content="enabled"> <title> CLUB HOY</title> <link rel="shortcut icon" href="https://static.colectivosvip.com/public/colectivos/2136/favicon-1666609184473.png" type="image/vnd.microsoft.icon"/> <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script> <script src="https://code.jquery.com/jquery-migrate-3.3.1.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.13.2/jquery-ui.min.js"></script> <script src="https://ajax.googleapis.com/ajax/libs/jqueryui/1.10.4/i18n/jquery.ui.datepicker-es.js"></script> <script src="https://cdn.jsdelivr.net/npm/swiper@7/swiper-bundle.min.js"></script> <script src="https://club.hoy.es/v008/js/common.js"></script> <script src="https://club.hoy.es/v008/js/jquery.initialize.min.js"></script> <script src="https://club.hoy.es/v008/js/jquery.widgets.js"></script> <script type="text/javascript" src="localize-file-resource.action?resourceKey=jquery.widgets.i18n.js"></script> <script src="https://club.hoy.es/v008/js/jquery.plugins.js"></script> <script type="text/javascript" src="localize-file-resource.action?resourceKey=jquery.plugins.i18n.js"></script> <script src="https://club.hoy.es/v008/js/jquery.initial.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/iframe-resizer/4.3.2/iframeResizer.contentWindow.min.js"></script> <link href="https://ajax.googleapis.com/ajax/libs/jqueryui/1.13.2/themes/smoothness/jquery-ui.css" rel="stylesheet"/> <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/swiper@7/swiper-bundle.min.css"/> <link href="https://static.colectivosvip.com/public/colectivos/2132/themes/less/1732596474600/portal.css" rel="stylesheet"/> <script type="text/javascript"> const googleTagManagerEnabled = false; </script> <!-- Google Analytics 4 --> <script async src='https://www.googletagmanager.com/gtag/js?id=G-LEL51V4T86'></script> <script> window.dataLayer = window.dataLayer || []; function gtag(){ dataLayer.push(arguments); } gtag("consent", "default", { 'ad_storage': "denied", 'analytics_storage': "denied", 'wait_for_update': 2000 // milliseconds }); dataLayer.push({ 'event': 'default_consent' }); </script> <!-- End Google Analytics 4 --> <!-- Google Analytics --> <script> function cookiesGA(saveCookies){ if (saveCookies) { gtag('consent', 'update', { 'ad_storage': 'granted', 'analytics_storage': 'granted', }); gtag('js', new Date()); gtag('config', 'G-LEL51V4T86'); gtag('event', 'page_view'); // Como lo cargaremos a false previamente, en el momento que habiliten las volvemos a incluir. Necesario el remove } } </script> <!-- End Google Analytics --> <script type="text/javascript"> var $CV = window.$CV || {}; $CV.env = {}; $CV.env.device = { app: false, appIOS: false, webView: false }; $CV.env.portal = { countries: "ES".toLowerCase().split(','), entryPoint: "https://club.hoy.es/" }; var $wgts = window.$wgts || {}; $wgts.entryPoint = $CV.env.portal.entryPoint; </script><script type="text/javascript"> $(function() { // Override de propiedades de accordion. $.extend( $.ui.accordion.prototype.options, { icons: false, animate: false, collapsible: true, active: false, heightStyle: "content" } ); // Override de propiedades de dialog. $.extend( $.ui.dialog.prototype.options, { closeText: "Aceptar", draggable: false, resizable: false, modal: true, width: 'auto', height: 'auto', autoOpen: false } ); $( "[data-role='tabs']" ).tabs(); $( "[data-role='accordion']" ).accordion(); $( "[data-accessible]" ).simulateClickOnEnter(); $( "[data-menu-target]" ).click(function(e) { var targetElem; targetElem = $( this ).attr( "data-menu-target" ) ; sessionStorage['menu-target']= targetElem; }); $.initialize( "img[src='']:not(.noinitials)", function() { $( this ).initialsAvatar(); }); $.initialize( ".alert", function() { $( this ).alert(); }); $.initialize( ".remaining-chars", function() { $( this ).remainingchars(); }); jQuery.ajaxPrefilter(function(s) { if (s.crossDomain) { s.contents.script = false; } }); $(document.body).addClass('page-no-user'); if (window.parent != window.self){ window.parent.postMessage('scroll', '*'); $(document.body).addClass('page-iframe'); } }); function initjs(saveCookies){ cookiesGA(saveCookies); } </script> <script src="https://cdnjs.cloudflare.com/ajax/libs/handlebars.js/4.7.7/handlebars.min.js"></script> <script src="https://club.hoy.es/v008/js/common-handlebars.js"></script> <script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyDnG7eWBfZzBDMoe-ER6SmMYqT12BU0ftU&v=3&libraries=places&language=es"></script> <script id="offer-card" type="text/x-handlebars-template"> <div tabindex="0" class="offer-card{{#each tags}} tag-{{id}}{{/each}}{{#if disabled}} offer-card-disabled" onclick="offerDisabledSelected(event)" data-id-offer-group="{{offerGroupDisableId}}"{{else}}" onclick="offerSelected(event)"{{/if}} data-page="{{../pageNumber}}" data-position="{{@index}}" data-url="{{{url}}}" data-id="{{id}}" data-id-merchant="{{idMerchant}}" data-track="{{{trackLabel}}}"> {{#if favouritesEnabled}} <button type="button" class="stamp-favorite {{#if favourite}}active{{/if}}" onclick='updateFavouriteOffer(event)' aria-pressed="{{favourite}}" aria-label="Añadir a favoritas"></button> {{/if}} {{#if exclusive}} <div class="stamp-exclusive"><i></i></div> {{/if}} {{#if ratingAllowed}} <div class="star-rating" style="visibility: visible;" role="img" aria-label="{{replace "Valoración de la oferta $OFFER_RATING" "$OFFER_RATING" ratingUser}}"> <div class="number-rating" style="display:none;"> <span class="rating-value">{{ratingUser}}</span> <i class="icon icon-star-solid"></i> </div> <div class="icons-rating"> {{#times 5}} <i class="icon icon-star{{#if (gt ../ratingUser this)}}-solid{{/if}}"></i> {{/times}} </div> </div> {{/if}} <div class="offer-image"> <img src='{{{imageUrl}}}' alt="{{replace "Imagen del producto $PRODUCT_TITLE" "$PRODUCT_TITLE" title}}" /> </div> <div class="offer-details"> <div class='title title-{{type}}'> {{#if discountText}} {{{discountText}}} {{else}} {{#if (ne type "OTHER")}} <div class="box"> {{#if specialPrice}} <span class="price-sp">{{formattedPrice}}</span><br/> <span class="text-sp">{{typeText}}</span> {{else if finalPrice}} <div class="text"> {{formattedPrice}} </div> {{else}} <span class="text">{{typeText}}</span> {{/if}} </div> {{/if}} {{/if}} </div> <div class="description">{{{title}}}</div> <div class="separate-wrapper"> {{#if merchantLogoUrl}} <div class="logo"><img class="image-merchant-logo" src="{{merchantLogoUrl}}" alt="{{merchantDisplayName}}" /> <div class="merchant-name"> <span>{{merchantDisplayName}}</span> </div> </div> {{/if}} {{{htmlStampHandshake}}} </div> {{{htmlStampTag}}} {{#if formattedDistance}} <div class="distance"> <i></i> <span>{{formattedDistance}}</span> </div> {{/if}} {{#if extraValueDescription}} <div class="stamp-bonus"> <span>{{{extraValueDescription}}}</span> </div> {{/if}} </div> </div> </script> <script id="offer-cards" type="text/x-handlebars-template"> {{#each this}} {{> offerCard}} {{/each}} </script> <script id="html-banner-card" type="text/x-handlebars-template"> <div id="swiperBanners" class="swiper swiper-container swiper-container-banners"> <div class="swiper-wrapper"> {{#each this}} <div class="swiper-slide"> <div id="bannerCard-{{id}}" onclick="bannerSelected(event)" class="html-banner-card" data-id="{{id}}" > {{{html}}}</div> </div> {{/each}} </div> <div class="swiper-pagination"></div> </div> </script> <script type="text/javascript"> function initWgtRanks(response, spinner) { let tab = 0; if(response.data && (response.data.right && response.data.left)){ if(Object.keys(response.data.left).length > 0) { appendToRank(response.data.left, tab); tab++; } if(Object.keys(response.data.right).length > 0) { appendToRank(response.data.right, tab); tab++; } $("[data-role='tabs']").tabs(); $("#ranking").addClass("ranking"); if(tab == 1) { $(".ranking-cards").addClass("large"); } } spinner.hide(); } function appendToRank(object, index) { if ($(object).mapIsNotEmpty()) { let panel = {}; panel.textMoreLink = "Ver todo"; panel.tab = index; panel.offers = object; $("#ranking").append(tmpRank(panel)); } } function offerRankSelected(event){ const target = $(event.target).closest( ".ranking-card" ); window.location.assign( target.data( "url" ) + "&tof_h=true&tof_c=OFFER_TABS&tof_p=" + target.data( "position" )); } </script> <script id="offer-rankings-card" type="text/x-handlebars-template"> <div data-role="tabs" class="tabs-{{tab}}"> <ul> {{#each offers}} <li><a href="#tab-{{../tab}}-{{@index}}">{{#mapGet}}{{@key}}{{/mapGet}}</a></li> {{/each}} </ul> {{#each offers}} <div id="tab-{{../tab}}-{{@index}}"> <div class="ranking-cards"> {{#each this}} <div tabindex="0" class="ranking-card {{#if disabled}}card-disabled" onclick="offerDisabledSelected(event)" data-id-offer-group="{{offerGroupDisableId}}"{{else}}" onclick="offerRankSelected(event)"{{/if}} data-position="{{@index}}" data-url="{{{url}}}" data-id="{{id}}" data-criteria="{{@key}}" data-track="{{{trackLabel}}}" aria-label="{{replace "Ver oferta $OFFER_TITLE" "$OFFER_TITLE" title}}"> <div class="ranking-logo"> <img src="{{merchantLogoUrl}}" alt="{{{merchantDisplayName}}}"> </div> <div class="ranking-details"> <div class="ranking-title">{{{title}}}</div> <div class="ranking-discount"> {{#if discountText}} {{discountText}} {{else}} {{#if (ne type "OTHER")}} <div class="box"> {{#if specialPrice}} <span class="price-sp">{{formattedPrice}}</span><br/> <span class="text-sp">{{typeText}}</span> {{else if finalPrice}} <div class="text"> {{formattedPrice}} </div> {{else}} <span class="text">{{typeText}}</span> {{/if}} </div> {{/if}} {{/if}} </div> </div> </div> {{/each}} <div class="button-group"> <a href="offers.action?filter_criteria={{@key}}&tof_c=OFFER_TABS" class="button button-default">{{../textMoreLink}}</a> </div> </div> </div> {{/each}} </div> </script> <script type="text/javascript"> const URL_OFFER_LIST = "json/offer-list-new.action"; const STORAGE_KEY = "_vsol"; const DEFAULT_PAGE_SIZE = 20; const tmpOffers = Handlebars.compile($("#offer-cards").html()); const tmpBanner = Handlebars.compile($("#html-banner-card").html()); const isFiltered = false; const isMobile = false; const category = 'Home'; const MAP_TEXTS = { "TOP_BRANDS": "Primeras marcas", "TOP_COUPONS": "Top cupones", "TOP_SELLING": "Top ventas", "LATEST": "Novedades", "TOP_ONLINE": "Top online", "DISCOUNT": "Mejores descuentos" }; let inHome = true; const tmpRank = Handlebars.compile($("#offer-rankings-card").html()); let rankingLoaded = false; let request = { key: STORAGE_KEY, page: 0, numPages: 0, pageSize: DEFAULT_PAGE_SIZE, mobile: isMobile, }; Handlebars.registerPartial("offerCard", $("#offer-card").html()); Handlebars.registerHelper("mapGet", function(opts) { const key = opts.fn(this); return MAP_TEXTS[key]; }); function initializeSwipper(){ if($( ".html-banner-card" ).length > 0){ $( "#savings-banner" ).addClass("savings-banner"); } else { $( "#savings-banner" ).removeClass("savings-banner"); } let mySwiperBanner = new Swiper ( ".swiper-container-banners" , { direction: "horizontal", spaceBetween: 50, autoplay: { delay: 5000, disableOnInteraction: false, pauseOnMouseEnter: true, }, pagination: { el: ".swiper-pagination", clickable: true, }, loop: !($(".html-banner-card").length == 1) }); mySwiperBanner.on( "slideChange", function () { const id = $( ".swiper-slide-active div" ).data("id"); trackHtmlBannerViewed(id); }); const firstId = $( ".swiper-slide-active div" ).data("id"); if(firstId != null){ trackHtmlBannerViewed(firstId); } } function loadOfferRanklist() { const panel = $( "#ranking" ); const spinner = panel.nextAll( ".spinner-grow" ); if(!rankingLoaded) { spinner.show(); $.post("json/offer-ranks.action", request, function( response ){ initWgtRanks(response, spinner); rankingLoaded = true; }); } } function updateFavouriteOffer(event){ const target = $(event.target).closest( ".offer-card" ); const idOffer = target.data( "id" ); const map = { idOffer: idOffer, idMerchant: target.data( "id-merchant" ) }; $.post("json/merchant-favourite-json.action", map, function(response){ const favourite = response.favourite; const elements = $("[data-id=" + idOffer + "]").find(".stamp-favorite"); elements.toggleClass( "active", favourite).attr( "aria-pressed", favourite); }); ga('send', 'event', category, 'My_Favourite', target.data( "track" )); event.stopPropagation(); } function offerSelected(event){ const target = $(event.target).closest( ".offer-card" ); const idTag = (typeof request.idTag !== 'undefined' && request.idTag != ''? request.idTag : 0); window.location.assign( target.data( "url" ) + "&tof_h=" + inHome + "&tof_c=OFFER_LIST&tof_p=" + target.data( "position" ) + "&tof_tid=" + idTag ); } function bannerSelected(event) { const target = $(event.target).closest( ".html-banner-card" ); const idBanner = $(target).data("id"); trackHtmlBannerClicked(idBanner); } function offerDisabledSelected(event) { const target = $(event.target).closest( ".offer-card" ); const idOfferGroup = $(target).data("id-offer-group"); const dlg = $("#dlg-offer-group-" + idOfferGroup); const redirect = $("#redirect-offer-group-" + idOfferGroup); if(dlg.length > 0){ const redirectText = dlg.data("redirect-label"); dlg.dialog({ draggable: false, resizable: false, autoOpen: false, modal: true, width: "auto" }); if (redirectText && redirect.length > 0){ dlg.dialog( "option", "buttons", [{text: redirectText, click: function() { offerDisabledRedirect(idOfferGroup); }}]); } dlg.dialog("open"); } else if (redirect.length > 0){ offerDisabledRedirect(idOfferGroup); } } function offerDisabledRedirect(idOfferGroup) { const redirect = $("#redirect-offer-group-" + idOfferGroup); if (redirect.length > 0){ const target = redirect.attr("target"); const href = redirect.attr("href"); if(target == "_blank"){ window.open(href, "_blank"); } else { window.location = href; } } } function trackHtmlBannerViewed(id){ trackHtmlBanner(id, "VIEWED"); } function trackHtmlBannerClicked(id){ trackHtmlBanner(id, "CLICKED"); } function trackHtmlBanner(id, action){ if ( id ) { let map = { idHtmlBanner: id, event:"HTML_BANNER_" + action }; trackEvent(map); } } function trackOfferRank(id, criteria, trackLabel){ track('Offer_Clicked_' + (typeof criteria !== 'undefined' ? criteria : "OFFER_TAB"), trackLabel); } </script> <script type="text/javascript"> $(function() { initComponents(); restoreRequest(); search(); }); function initComponents() { Handlebars.registerHelper("getPage", function() { return request.page; }); updateGuiTagTree(""); loadBannerList(); loadOfferRanklist(); $( ".pagination" ).paginator({ "resultsEnabled": false, "change": function( event, result ) { search( result.page ); } }); initWgtSort(); } function saveRequest( request ) { sessionStorage.setItem( STORAGE_KEY, JSON.stringify( request ) ); } function restoreRequest() { const data = sessionStorage.getItem( STORAGE_KEY ); if( request.sortby ) { guiSortSelected(request.sortby); } } function search( page = -1 ) { if ( page >= 0 ) { request.page = page; } loadDefaultPagedResult(URL_OFFER_LIST, request, tmpOffers, "#offer_list" ); } function loadDefaultPagedResult( url, request, template, panelSelector) { const panel = $( panelSelector ); const pagination = $( ".pagination" ); const spinner = panel.nextAll( ".spinner-grow" ); panel.empty(); pagination.paginator( "disable" ); spinner.show(); $.post( url, request, function( response ) { saveRequest( request ); inHome = response.data.inHome; const data = response.data.pages; if ( data && data.results ) { if ( data.results.length > 0 ) { panel.append( template( data.results ) ).scrollToTop(); pagination.paginator( "update", data.pageNumber, data.pageCount, data.resultsTotalCount ); } $( ".empty-state" ).toggle( data.results.length === 0 ); } } ).always( function() { spinner.hide(); } ); } function loadBannerList() { $.post("json/html-banner-list-json.action", request, function( response ){ if(response.banners && response.banners.length > 0){ $("#savings-banner").html(tmpBanner(response.banners)); //initialize swiper when document ready initializeSwipper(); } else { $("#wgt-banner").remove(); } }); } function removeLocation() { let location = {}; setLocationSession(location); window.location.reload(); } </script> </head> <body class="page page-with-top-menu page-vip-savings page-vip-savings-home"> <div id="header"> <div id="header-content"> <div class="header-content-links"> <div class="wgt-header-links"> <a class="link link-support-request" href="https://club.hoy.es/support-request-input.action"><span class="icon"></span>Atención al usuario</a> <a class="link link-help" href="https://club.hoy.es/help-home.action"><span class="icon"></span>Ayuda</a> </div> <div class="wgt-header-no-user"> <a class="link link-login" href="https://club.hoy.es/login-input.action"><span class="icon"></span>Acceder</a> </div> </div> <a href="https://club.hoy.es/" data-menu-target="li-menu-home"> <img class="logo" src="https://static.colectivosvip.com/public/colectivos/2136/logo-1666609184460.png" alt="Home El club del subscriptor Hoy" border="0"/> </a> </div> </div> <div id="container"> <div class="top-nav-menu top-nav-menu-offers"> <ul class="menu-bar"> <li tabindex="0" class="menu-item menu-item-categories" data-popup-target="popup-categories" id="tag-popup">Categorías<i class="icon icon-arrow-down"></i></li> <li class="menu-item menu-item-tag" data-tag-country-code="ES" data-parent="716"> <a href="#" onclick="otnm.tagSelected(716)"> <span class="icon icon-discount-star"></span>BLACK FRIDAY</a> </li> <li class="menu-item menu-item-tag" data-tag-country-code="ES" data-parent="78"> <a href="#" onclick="otnm.tagSelected(78)"> <span class="icon icon-hotel-4stars"></span>Hoteles y Apartamentos</a> </li> <li class="menu-item menu-item-tag" data-tag-country-code="ES" data-parent="1116"> <a href="#" onclick="otnm.tagSelected(1116)"> <span class="icon icon-autumn"></span>Planes de otoño</a> </li> <li tabindex="0" class="menu-item menu-item-tag-places" data-popup-target="popup-places"><i class="icon icon-locate"></i>Cerca de mí<i class="icon icon-arrow-down"></i></li> </ul> <div class="search-bar"> <input id="field-text-search" type="search" placeholder="¿Qué estás buscando?"/> </div> </div> <div class="popup popup-categories" style="display: none; position: absolute;"> <div class="nav-panel nav-panel-left"> <ul> <li class="nav-item nav-item-icon-new" data-target="0" data-target-class="icon-new" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(48, 'travels.action')">Vacaciones y viajes</a> <span class="icon icon-arrow-right"></span></li> <li class="nav-item nav-item-offer-codes" data-target="2" data-target-class="offer-codes" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(3)">Ocio</a> <span class="icon icon-arrow-right"></span></li> <li class="nav-item" data-target="3" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(37)">Tecnología y Electrodomésticos</a> <span class="icon icon-arrow-right"></span></li> <li class="nav-item" data-target="4" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(34)">Alimentación y Supermercados</a> <span class="icon icon-arrow-right"></span></li> <li class="nav-item nav-item-icon-daily-menu" data-target="5" data-target-class="icon-daily-menu" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(27)">Restaurantes y Delivery</a> </li> <li class="nav-item" data-target="6" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(39)">Artículos deportivos</a> </li> <li class="nav-item" data-target="7" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(1)">Moda y Complementos</a> <span class="icon icon-arrow-right"></span></li> <li class="nav-item nav-item-menu-item-tag-energy" data-target="10" data-target-class="menu-item-tag-energy" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(241)">Gasolina, energía y servicios</a> </li> <li class="nav-item" data-target="11" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(58)">Motor</a> <span class="icon icon-arrow-right"></span></li> <li class="nav-item" data-target="12" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(4)">Hogar</a> <span class="icon icon-arrow-right"></span></li> <li class="nav-item nav-item-beauty" data-target="13" data-target-class="beauty" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(88)">Perfumería y cosmética</a> </li> <li class="nav-item nav-item-icon-hand-heart" data-target="14" data-target-class="icon-hand-heart" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(5)">Salud</a> <span class="icon icon-arrow-right"></span></li> <li class="nav-item nav-item-icon-gift" data-target="15" data-target-class="icon-gift" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(711)">Libros, juguetes y regalos</a> <span class="icon icon-arrow-right"></span></li> <li class="nav-item" data-target="16" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(52)">Seguros y Banca</a> </li> <li class="nav-item" data-target="17" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(2)">Formación</a> <span class="icon icon-arrow-right"></span></li> <li class="nav-item" data-target="18" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(684)">Familia y niños</a> <span class="icon icon-arrow-right"></span></li> <li class="nav-item nav-item-icon-discount-fire" data-target="19" data-target-class="icon-discount-fire" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(436)">Oportunidades</a> </li> <li class="nav-item" data-target="20" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(2563)">Sostenibilidad</a> </li> <li class="nav-item nav-item-all" data-target="-1"> <a href="./offers.action">Todas</a> </li> </ul> </div> <div class="nav-panel nav-panel-right" style="display: none;"> <div class="nav-panel nav-panel-children nav-panel-children-icon-new" data-item-id="0" style="display: none;"> <h4>Vacaciones y viajes</h4> <ul> <li class="nav-item nav-item-icon-hotel-4stars" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(78)">Hoteles y Apartamentos</a> </li> <li class="nav-item" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(85)">Alquiler de coches</a> </li> <li class="nav-item" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(79)">Vuelos, trenes y movilidad</a> </li> <li class="nav-item" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(84)">Cruceros</a> </li> <li class="nav-item" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(3701)">Buscadores</a> </li> </ul> </div> <div class="nav-panel nav-panel-children nav-panel-children-offer-codes" data-item-id="2" style="display: none;"> <h4>Ocio</h4> <ul> <li class="nav-item nav-item-icon-theater" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(46)">Espectáculos</a> </li> <li class="nav-item nav-item-icon-discount-ticket" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(428)">Parques temáticos</a> </li> <li class="nav-item nav-item-icon-film" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(1971)">Cine</a> </li> </ul> </div> <div class="nav-panel nav-panel-children" data-item-id="3" style="display: none;"> <h4>Tecnología y Electrodomésticos</h4> <ul> <li class="nav-item" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(882)">TV, Audio y Entretenimiento</a> </li> <li class="nav-item" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(19)">Informática</a> </li> <li class="nav-item" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(439)">Móviles e Internet</a> </li> <li class="nav-item" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(64)">Electrodomésticos</a> </li> </ul> </div> <div class="nav-panel nav-panel-children" data-item-id="4" style="display: none;"> <h4>Alimentación y Supermercados</h4> <ul> <li class="nav-item" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(884)">Mercados y Súpers</a> </li> <li class="nav-item" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(808)">Bodegas y Gourmet</a> </li> </ul> </div> <div class="nav-panel nav-panel-children" data-item-id="7" style="display: none;"> <h4>Moda y Complementos</h4> <ul> <li class="nav-item" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(426)">Ropa</a> </li> <li class="nav-item" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(438)">Calzado y complementos</a> </li> </ul> </div> <div class="nav-panel nav-panel-children" data-item-id="11" style="display: none;"> <h4>Motor</h4> <ul> <li class="nav-item" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(696)">Renting y Concesionarios</a> </li> <li class="nav-item" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(701)">Talleres y Servicios</a> </li> </ul> </div> <div class="nav-panel nav-panel-children" data-item-id="12" style="display: none;"> <h4>Hogar</h4> <ul> <li class="nav-item" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(40)">Muebles y decoración</a> </li> <li class="nav-item" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(33)">Mascotas y jardinería</a> </li> </ul> </div> <div class="nav-panel nav-panel-children nav-panel-children-icon-hand-heart" data-item-id="14" style="display: none;"> <h4>Salud</h4> <ul> <li class="nav-item" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(409)">Farmacia y parafarmacia</a> </li> <li class="nav-item" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(54)">Dentistas y servicios médicos</a> </li> <li class="nav-item nav-item-icon-gym" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(429)">Gimnasios y wellness</a> </li> <li class="nav-item" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(240)">Ópticas y audífonos</a> </li> <li class="nav-item" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(66)">Dietética y nutrición</a> </li> </ul> </div> <div class="nav-panel nav-panel-children nav-panel-children-icon-gift" data-item-id="15" style="display: none;"> <h4>Libros, juguetes y regalos</h4> <ul> <li class="nav-item nav-item-icon-gift-card" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(796)">Gift Cards</a> </li> </ul> </div> <div class="nav-panel nav-panel-children" data-item-id="17" style="display: none;"> <h4>Formación</h4> <ul> <li class="nav-item" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(724)">Másters y posgrados</a> </li> <li class="nav-item" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(726)">Cursos de idiomas</a> </li> <li class="nav-item" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(725)">Educación infantil </a> </li> </ul> </div> <div class="nav-panel nav-panel-children" data-item-id="18" style="display: none;"> <h4>Familia y niños</h4> <ul> <li class="nav-item" data-tag-country-code="ES"> <a href="#" onclick="otnm.tagSelected(38)">Bebés y niños</a> </li> </ul> </div> </div> </div> <div class="popup popup-places" style="display: none; position: absolute;"> <div> <input id="field-location-address" type="search" class="location" placeholder="Introduce una ubicación"/> </div> </div> <div id="dlg-user-location-change" data-role="dialog"> <div class="content-header"> <h2>Mi ubicación habitual</h2> <p>En Vip District puedes buscar las promociones más cercanas a una dirección postal. Aprovecha esta funcionalidad introduciendo aquí tu dirección habitual, para mejorar tu experiencia de búsqueda.</p> <input id="field-user-location-address" type="search" class="location w-80 margin-top-20" placeholder="Introduce una ubicación"/> </div> </div> <script src="https://club.hoy.es/v008/js/menu-navigation.js"></script> <script> var otnm = (function() { const URL_OFFER_LIST = "offers.action"; const isMobileModeOn = false; let userDefaultLocation; initPopups(); initLocationInput(); initSearchInput(); selectMenuTag(""); $( "#dlg-user-location-change" ).dialog({ draggable: false, resizable: false, autoOpen: false, modal: true, width: "auto" }); return { setFavoriteLocation: function() { closePopups(); setFavoriteLocation(); }, placeFavoriteSelected: function() { closePopups(); queryByLocationDefault(); }, tagSelected: function(idTag, url) { tagSelected(idTag, url); } } function initSearchInput() { $("#field-text-search").keyup(function(event) { if (event.keyCode == 13) { queryByText(); } }); $("#field-text-search").autocomplete({ delay: 500, source: function (request, response) { const countryCode = ""; // review with lagu $.getJSON("json/offer-search-term-list.action?text=" + encodeURIComponent(request.term) + "&country=" + encodeURIComponent( countryCode ), function (data) { response($.map(data.terms, function (item) { return { value: item }; })); }); }, minLength: 2, select: function(event, ui) { if (ui.item) { $("#field-text-search").val(ui.item.value); queryByText(); } }, }); } function initLocationInput() { $("#field-location-address").placesautocomplete({ "select": function( e, result ) { const location = result.place.location; if (location) { closePopups(); queryByPlace(location.address, location.postalCode, location.countryCode, location.lat, location.lng); } } }).autocomplete( "option", { "appendTo": ".popup-places" }); $("#field-user-location-address").placesautocomplete({ "select": function( e, result ) { const location = result.place.location; if (location) { let map = { lat: location.lat, lng: location.lng, address: location.address, country: location.countryCode } $("#dlg-user-location-change").dialog("close"); closePopups(); setUserLocation(map); } } }).autocomplete( "option", { "appendTo": "#dlg-user-location-change" }); } function queryByText() { const text = $( "#field-text-search" ).val(); location.assign( "./" + URL_OFFER_LIST + "?qText=" + encodeURIComponent( text ) ); } function queryByPlace( locAddress, locPostalCode, locCountryCode, locLatitude, locLongitude ) { let map = { source: "LOCATION", lat: locLatitude, lng: locLongitude, address: locAddress, country: locCountryCode }; setLocationSession( map ); if( isMobileModeOn ) { location.assign( "./" + URL_OFFER_LIST + "?qLocAddress=" + encodeURIComponent( locAddress ) + "&qLocPostalCode=" + encodeURIComponent( locPostalCode ) + "&qLocCountryCode=" + encodeURIComponent( locCountryCode ) + "&qLocLat=" + locLatitude + "&qLocLng=" + locLongitude ); } else { location.reload(); } } function queryByPlaceId( placeId ) { let map = { source: "PLACE", idPlace: placeId }; setLocationSession( map ); if( isMobileModeOn ) { location.assign( "./" + URL_OFFER_LIST + "?qPlaceId=" + placeId ); } else { location.reload(); } } function queryByLocationDefault() { let map = { source: "DEFAULT_LOCATION" }; setLocationSession( map ); location.reload(); } function setFavoriteLocation() { $( '#dlg-user-location-change' ).dialog( 'open' ); } function setUserLocation(location) { userDefaultLocation = location; setDefaultLocation(location); queryByLocationDefault(); if (request) { request.page = 0; } } function tagSelected(idTag, url) { trackTag(idTag); if(url) { location.assign( url ); } else{ location.assign( "./" + URL_OFFER_LIST + "?tag=" + idTag ); } } function trackTag(id){ if ( id ) { let map = { idTag: id, event:'TAG_CLICKED' }; trackEvent(map); } } })(); </script> <div id="content-wrapper"> <div id="content"> <!-- NEW --> <div class="savings-home"> <div class="location-info" > <span class="text">Estás viendo promociones</span> <span class="text">de <strong>España</strong></span> </div> <div id="wgt-banner" class="wgt-container"> <div class="wgt-wrapper"> <div class="wgt wgt-img-gallery wgt-img-gallery-sliders"> <div id="savings-banner" class="savings-banner"></div> </div> </div> </div> <div id="ranking"></div> <div class="spinner-grow"></div> <div class="navigation"> <script type="text/javascript"> const SORT_OPTIONS = [ { "key": "RANK", "value": "Relevancia" }, { "key": "DATE", "value": "Novedad" }, { "key": "RATING", "value": "Valoraci\u00F3n" }, { "key": "DISCOUNT", "value": "Descuento" } ]; function initWgtSort(){ $(".sort .advanced-filter-item").select({ "title": "", "radioButtons": false, "options": SORT_OPTIONS, "change": function( event, result ) { sortSelected( result.selection ); } }); $(".sort .advanced-filter-item").prepend("<span class='margin-right-10'>Ordenar por:</span>"); } function sortSelected(sort) { // DATE, DISCOUNT, RANK, RATING request.sortby = sort; search(0); } function guiSortSelected( sort ) { $(".sort .advanced-filter-item").select("setSelectedValue", sort); } </script> <div class="sort box-shadow-none advanced-filter margin-bottom-0"> <div class="advanced-filter-item advanced-filter-radiobutton" data-value="RANK"></div> </div> <div class="pagination"></div> </div> <section id="offer_list" class="tarjetones-ofertas"></section> <div class="spinner-grow"></div> <section class="empty-state" style="display: none;"> <div class="img img-robot"></div> <h3>No se han encontrado promociones disponibles.</h3> <p>Prueba a seleccionar alguna categoría, modifica los parámetros de búsqueda o de tu ubicación.</p> </section> <div class="navigation"> <div class="pagination"></div> </div> </div> <!-- NEW END --> </div> </div> </div> <ul id="ui-id-1" tabindex="0" class="ui-menu ui-widget ui-widget-content ui-autocomplete ui-front" style="display: none;"></ul> <div role="status" aria-live="assertive" aria-relevant="additions" class="ui-helper-hidden-accessible"></div> <div id="footer"> <div class="footer-widgets"> <div class="wgt-links"> <a class="link link-privacy-policy" href="https://hoy.ventajasvip.com/privacy-policy.action"><span class="icon"></span>Política de privacidad</a> <a class="link link-cookies-policy" href="https://club.hoy.es/cookie-policy.action"><span class="icon"></span>Política de cookies</a> <a class="link link-terms-use" href="https://club.hoy.es/terms-of-use.action"><span class="icon"></span>Condiciones de uso</a> <span class="link link-powered-by">Powered by<a href="https://vipdistrict.com/?utm_source=VD_Portal&utm_medium=Footer&utm_campaign=vd_portal" target="_blank" rel="noopener" aria-label="Vip District web corporativa"><span class="logo"></span></a></span> </div> </div> <div class="footer-inner"> <p class="footer-text"> Copyright © 2010-2024 Vip District S.L. • Todos los derechos reservados<br/>Vip District • ES • IT • PT • DE • FR • NL </p> </div> <script src="https://static.colectivosvip.com/public/js/cookieconsent-3.1.1.min.js" data-cfasync="false"></script> <script> window.cookieconsent.initialise({ revokable: false, cookie: { name: 'COOKIES_POLICY_NEW', secure: true }, type: "opt-out", content: { message: "VIP DISTRICT, SL utiliza cookies propias y de terceros con la finalidad de facilitar tu experiencia en nuestra web y analizar tu navegaci\u00F3n con fines estad\u00EDsticos y anal\u00EDticos. Si deseas rechazar las cookies de anal\u00EDtica pulsa sobre \'Rechazar cookies\' y si quieres aceptarlas, pulsa sobre el bot\u00F3n \'Aceptar Cookies\'.", allow: "Aceptar cookies", deny: "Rechazar cookies", link: "Saber m\u00E1s", href: "https://club.hoy.es/cookie-policy.action", }, onPopupOpen: function() { initjs(false); }, onStatusChange: function(status, chosenBefore) { initjs(this.hasConsented()); }, onInitialise: function (status) { initjs(this.hasConsented()); } }); </script> </div> <script> $(function() { $(".drop-trigger").on( "click", function ( event ) { $( this ).toggleClass( "active" ); $( $( this ).data( "target" ) ).toggleClass( "active" ); event.stopPropagation(); } ); $( ".drop-trigger" ).keydown( function( e ) { if ( e.key == "Enter" || e.key == " " ) { $( this ).click(); e.preventDefault(); } else if ( e.keyCode == 38 ) { if ( $( "#dropdown1" ).is( ":visible" ) ) { $( "#dropdown1" ).find( ":focusable" ).last().focus(); } else { $( this ).click(); } e.preventDefault(); } else if ( e.keyCode == 9 && e.shiftKey && $( "#dropdown1" ).is( ":visible" ) ) { $( this ).click(); //e.preventDefault(); } } ); $( "#dropdown1 a" ).keydown( function( e ) { const lastChild = $( this ).parent().is( ":last-child" ); if ( e.keyCode == 40 ) { if ( lastChild ) { // Enfocamos al padre. $( ".drop-trigger" ).focus(); } else { $( this ).closest( "li" ).next().find( "a" ).focus(); } e.preventDefault(); } else if ( e.keyCode == 38 ) { $( this ).closest( "li" ).prev().find( "a" ).focus(); e.preventDefault(); } else if ( e.keyCode == 9 && !e.shiftKey && lastChild ) { $( this ).closest( ".drop" ).find( ".drop-trigger" ).click(); } } ); $( window ).click( function() { $( ".drop-down" ).removeClass( "active" ); $( ".drop-trigger" ).removeClass( "active" ); }); }); </script> </body> </html>