EAACI 2023 - Mercure Hotel Hamburg Mitte (2023)

" : "") + "" + nom + (!isMobile ? "
" + (nbStars > 0 ? category : "") + (priceFrom != "" ? "
" + priceFrom : "") + "
" : ""); //var contentString = (!isMobile ? "

" + imgString + "

" : "") + "

" + nom + (!isMobile ? category2 + (priceFrom != "" ? "
" + priceFrom : "") + "

" : ""); //if (isMobile) { //contentString = "

" + nom + "

"; //} var spanPriceFrom = markerOptions.priceFrom != "" ? "
" + markerOptions.priceFrom+"" : ""; var template = "\

{carousel}

\

\ {name}\ {stars}\ {priceFrom}\

"; var carousel = $.interpolate(carouselTemplate, { carouselID: 'mapDefaultMarkerCarousel_' + markerOptions.index, eventHotelGuid: markerOptions.eventHotelGuid, imageUrl: markerOptions.img, class:'' }); contentString = $.interpolate(template, { eventHotelGuid: markerOptions.eventHotelGuid, name: markerOptions.nom, stars: category2, priceFrom: spanPriceFrom, carousel: carousel }); var infowindow = new google.maps.InfoWindow({ content: contentString }); google.maps.event.addListener(infowindow, 'domready', function (e) { $('.gm-style-iw-d').css('overflow', 'hidden'); $('.gm-style-iw.gm-style-iw-c').addClass('map-hotel-popup') .attr('data-isMulti', markerOptions.isMulti); if (markerOptions.isMulti) { $.each(markerOptions.childrens,(iChild, child) => { LoadMapPopupCarousel('.carousel-inner[data-EventHotelGuid="' + markerOptions.eventHotelGuid + '"]',child.eventHotelGuid); }); $('.marker-popup-multi[data-targeteventhotelguid="' + markerOptions.eventHotelGuid + '"]').addClass('active'); } else { LoadMapPopupCarousel('.carousel-inner[data-EventHotelGuid="' + markerOptions.eventHotelGuid + '"]',markerOptions.eventHotelGuid); } $('#mapDefaultMarkerCarousel_' + markerOptions.index).on('slid.bs.carousel', function () { var activeItem = $(this).find('.carousel-item.active'); var targetEventhotelguid = activeItem.data("targetEventhotelguid"); $('.marker-popup-multi').removeClass('active'); var elements = $('.marker-popup-multi[data-targeteventhotelguid="' + targetEventhotelguid + '"]').addClass('active'); if (elements.length > 0) elements[0].scrollIntoView(false); }); $(document).trigger('infowindowload', e); }); //google.maps.event.addListener(marker, 'mouseover', function () { hideInfoBoxesDefault(infowindow); showInfoBoxesDefault(infowindow, marker); }); google.maps.event.addListener(marker, 'mouseover', function () { selectMarker(marker, "start"); }); google.maps.event.addListener(marker, 'mouseout', function () { selectMarker(marker, "stop"); }); google.maps.event.addListener(marker, 'zoom_changed', function () { hideInfoBoxesDefault(infowindow); /*showInfoBoxesDefault(infowindow, marker, true);*/ }); if (JSON.parse(markerOptions.isMulti) == true) { // on ajoute le meme marker dans le tableau avec l'id du sous markeur $.each(markerOptions.childrens, child => { markerArray[child.eventHotelGuid] = marker; }); } google.maps.event.addListener(marker, 'click', function () { hideInfoBoxesDefault(infowindow); showInfoBoxesDefault(infowindow, marker); if ($(window).width() < 768) { setCurrentSlide(markerOptions.eventHotelGuid); } }); return marker; } function is_touch_enabled() { return ('ontouchstart' in window) || (navigator.maxTouchPoints > 0) || (navigator.msMaxTouchPoints > 0); } function showInfoBoxesDefault(currentInfowindow, marker, disableAutoPan = false) { var currentMap = marker.getMap(); selectMarker(marker, "start"); if (currentMap) { //Recreate InfoWindow to change disableAutoPan property currentInfowindow.setOptions({ disableAutoPan: disableAutoPan }); //if (currentInfowindow.disableAutoPan != disableAutoPan) { // //currentInfowindow = new google.maps.InfoWindow({ content: currentInfowindow.content, disableAutoPan: disableAutoPan}); //} currentInfowindow.open(currentMap, marker); } else { currentInfowindow.close(); } currentInfoBox = currentInfowindow; } function hideInfoBoxesDefault(defaultInfobox) { if (currentInfoBox != null && currentInfoBox != defaultInfobox) { selectMarker(currentInfoBox.anchor, "stop"); currentInfoBox.close(); } } function LoadHotels() { var urlXml = 'https://eaaci-hotels.bnetwork.com:443//MapGenerateXML.aspx?Mode=CurrentHotel&IsYouth=False&EventHotelGuid=4d10b650-6b44-47c5-8397-43485a02a447&ind=0'; let showHotelsSlider = (ShowHotelsListInMobileDevices && $(window).width() < 768) || ShowHotelsListInDesktop; let startTime, endTime; startTime = new Date(); downloadUrl(urlXml /*+ "&Rnd=" + Math.random()*/, function (data) { let endTime = new Date(); let ignoreRecenter = showHotelsSlider || (false && ((endTime.getTime() - startTime.getTime()) / 1000) > 1); CreateHotelsMarkers(data.responseText, ignoreRecenter); displayDefaultMapLoader(false); if (showHotelsSlider) { FillHotelsList(data.responseText); } $(document).trigger('map-hotels-loaded'); }); } function LoadPOIs() { var urlXml = 'https://eaaci-hotels.bnetwork.com:443//MapGenerateXML.aspx?Mode=POIs'; downloadUrl(urlXml + "&Rnd=" + Math.random(), function (data) { CreatePOIsMarkers(data.responseText); }); } function LoadEventLocations() { //var isMobile = isIntegratedMobileWebsite || $(window).width() < 768; //if (!isMobile) { var urlXml = 'https://eaaci-hotels.bnetwork.com:443//MapGenerateXML.aspx?Mode=EventLocations&EventLocationGuid=00000000-0000-0000-0000-000000000000'; downloadUrl(urlXml /*+ "&Rnd=" + Math.random()*/, function (data) { CreateEventLocationsMarkers(data.responseText); }); /*}*/ } function GetHotelGridItem(markerIndex) { var divItemTemplate = $('#map_hotelsListMobile_itemTemplate').html(); var imgStar = 'EAACI 2023 - Mercure Hotel Hamburg Mitte (1)'; var eventHotelGuid = hotelsList[markerIndex].getAttribute("eventHotelGuid"); var isOnPartners = hotelsList[markerIndex].getAttribute("isOnPartners"); var bookingComHotelID = hotelsList[markerIndex].getAttribute("bookingComHotelID"); var expediaHotelID = hotelsList[markerIndex].getAttribute("expediaHotelID"); var nom = hotelsList[markerIndex].getAttribute("nom"); if (redirectToBlank == "1") { nom = nom.replace("target='_top'", "target='_blank'"); } var nbStars = hotelsList[markerIndex].getAttribute("nbStars"); var priceFrom = hotelsList[markerIndex].getAttribute("priceFrom"); var isDisabled = hotelsList[markerIndex].getAttribute("isDisabled"); var isApart = hotelsList[markerIndex].getAttribute("isApart"); var img = hotelsList[markerIndex].getAttribute("img"); var rating = hotelsList[markerIndex].getAttribute("rating"); var trustYouID = hotelsList[markerIndex].getAttribute("TrustYouID"); if (!String.prototype.replaceAll) { String.prototype.replaceAll = function (search, replacement) { var target = this; return target.replace(new RegExp(search, 'g'), replacement); }; } var currentItemTemplate = divItemTemplate; currentItemTemplate = currentItemTemplate.replaceAll('{index}', markerIndex); currentItemTemplate = currentItemTemplate.replaceAll('{eventHotelGuid}', eventHotelGuid); currentItemTemplate = currentItemTemplate.replaceAll('{url}', getHotelPageUrl(eventHotelGuid, bookingComHotelID, expediaHotelID, isOnPartners)); currentItemTemplate = currentItemTemplate.replaceAll('{img}', img); currentItemTemplate = currentItemTemplate.replaceAll('{name}', nom); currentItemTemplate = currentItemTemplate.replaceAll('{priceFrom}', priceFrom); currentItemTemplate = currentItemTemplate.replaceAll('{stars}', new Array(parseInt(nbStars) + 1).join(imgStar)); //currentItemTemplate = currentItemTemplate.replaceAll('data-src', 'src'); if (false) { rating = rating / 20; } currentItemTemplate = currentItemTemplate.replaceAll('{rating}', rating); if (trustYouID) { currentItemTemplate = currentItemTemplate.replaceAll('{TrustYouURL}', 'https://api.trustyou.com/hotels/' + trustYouID + '/seal.html?size=xs&key=55d53a8a-12f1-44b0-9a56-966ec273ffd5'); currentItemTemplate = currentItemTemplate.replaceAll('{TrustYouIFrameClass}', 'TrustYouIFrame'); } else { currentItemTemplate = currentItemTemplate.replaceAll('{TrustYouURL}', ''); currentItemTemplate = currentItemTemplate.replaceAll('{TrustYouIFrameClass}', 'd-none'); } return currentItemTemplate; } function FillHotelsList(xmlData) { var xml = xmlParse(xmlData); hotelsList = xml.documentElement.getElementsByTagName("marker"); var $divHotelsList = $('#map_hotelsListMobile'); var divHotelsListInnerHtml = $divHotelsList.html(); if (hotelsList.length > 1) { divHotelsListInnerHtml += GetHotelGridItem(0); if (hotelsList.length >= 2) { divHotelsListInnerHtml += GetHotelGridItem(1); } if (hotelsList.length >= 3) { divHotelsListInnerHtml += GetHotelGridItem(2); } $divHotelsList.append(divHotelsListInnerHtml); $divHotelsList.slick({ dots: false, variableWidth: true, arrows: true, swipeToSlide: true, centerMode: true, lazyLoad: 'ondemand', initialSlide: 0, infinite: false, appendArrows: '#map_hotelsListMobile > .slick-list' }) .on('afterChange', function (event, slick, currentSlideIndex, nextSlideIndex) { let currentItem = $(slick.$slides.get(currentSlideIndex)); if (!ignoreRecenter) { var marker = showOnMap(currentItem.attr('data-eventHotelGuid'), 0, $divHotelsList.height()); if (marker !== undefined) { myMap.setCenter(marker.position); } } let currentHotelIndex = parseInt(currentItem.attr('data-index')); if (currentHotelIndex > 0) { var prevSlide = $divHotelsList.find("[data-index='" + (currentHotelIndex - 1) + "']"); if (prevSlide.length == 0) { prevSlide = GetHotelGridItem(currentHotelIndex - 1); slick.currentSlide = currentSlideIndex + 1; if (currentSlideIndex > 0) { slick.slickAdd(prevSlide, currentSlideIndex - 1); } else { slick.slickAdd(prevSlide, currentSlideIndex, true); } } } if (hotelsList.length > (currentHotelIndex + 1)) { var nextSlide = $divHotelsList.find("[data-index='" + (currentHotelIndex + 1) + "']"); if (nextSlide.length == 0) { nextSlide = GetHotelGridItem(currentHotelIndex + 1); slick.slickAdd(nextSlide); } } LoadHotelsListTrustYouRating(); ignoreRecenter = false; }); LoadHotelsListTrustYouRating(); $divHotelsList.removeClass('d-none'); var eventHotelGuid = hotelsList[0].getAttribute("eventHotelGuid"); if (eventHotelGuid) { onHotelHover(eventHotelGuid, 0, $divHotelsList.height()); } google.maps.event.addListener(myMap, 'zoom_changed', function () { let $map_hotelsListMobile = $('#map_hotelsListMobile'); let $hotelsListSlick = $map_hotelsListMobile.slick("getSlick"); let currentItem = $($hotelsListSlick.$slides.get($hotelsListSlick.slickCurrentSlide())); let currentMarker = markersMap[currentItem.attr('data-eventHotelGuid')]; //google.maps.event.trigger(currentMarker, 'mouseover-nopan'); google.maps.event.trigger(currentMarker, 'zoom_changed'); }); } } function LoadHotelsListTrustYouRating() { $('.TrustYouIFrame[data-src]').each(function () { $(this).attr('src', $(this).attr('data-src')); $(this).removeAttr('data-src'); }); } function setCurrentSlide(eventHotelGuid) { ignoreRecenter = true; let $map_hotelsListMobile = $('#map_hotelsListMobile'); let $hotelsListSlick = $map_hotelsListMobile.slick("getSlick"); let slideIndex = $map_hotelsListMobile.find('[data-eventHotelGuid="' + eventHotelGuid + '"]').filter(function (index, element) { return $(element).attr('data-slick-index') > 0 }).attr('data-slick-index'); if (!slideIndex) { let hotelsListArray = Array.prototype.slice.call(hotelsList); let hotelIndex = hotelsListArray.findIndex(function (element) { return element.getAttribute("eventHotelGuid") === eventHotelGuid; }); if (hotelIndex >= 0) { $hotelsListSlick.slickAdd(GetHotelGridItem(hotelIndex)); } slideIndex = $map_hotelsListMobile.find('[data-eventHotelGuid="' + eventHotelGuid + '"]').filter(function (index, element) { return $(element).attr('data-slick-index') > 0 }).attr('data-slick-index'); $hotelsListSlick.slickPause(); $hotelsListSlick.slickGoTo(slideIndex, true); } else { $hotelsListSlick.slickPause(); $hotelsListSlick.slickGoTo(slideIndex, true); } } function CreateHotelsMarkers(xmlData, ignoreRecenter) { var xml = xmlParse(xmlData); var markers = xml.documentElement.getElementsByTagName("marker"); var points = []; for (var i = 0; i < markers.length; i++) { var point = new google.maps.LatLng(parseFloat(markers[i].getAttribute("lat")), parseFloat(markers[i].getAttribute("lng"))); var eventHotelGuid = markers[i].getAttribute("eventHotelGuid"); if (markersCluster[eventHotelGuid] === undefined) { markersCluster[eventHotelGuid] = markers[i].getAttribute("eventHotelGuids"); } if (!(eventHotelGuid in markersMap)) { var isOnPartners = markers[i].getAttribute("isOnPartners"); var bookingComHotelID = markers[i].getAttribute("bookingComHotelID"); var expediaHotelID = markers[i].getAttribute("expediaHotelID"); var type = markers[i].getAttribute("type"); var adresse = markers[i].getAttribute("adresse"); var codepostal = markers[i].getAttribute("codepostal"); var ville = markers[i].getAttribute("ville"); var nom = markers[i].getAttribute("nom"); if (redirectToBlank == "1") { nom = nom.replace("target='_top'", "target='_blank'"); } var category = markers[i].getAttribute("category"); var nbStars = markers[i].getAttribute("nbStars"); var priceFrom = markers[i].getAttribute("priceFrom"); var isDisabled = markers[i].getAttribute("isDisabled"); var isMulti = markers[i].getAttribute("isMulti"); var isApart = markers[i].getAttribute("isApart"); var img = markers[i].getAttribute("img"); var childrens = []; isMulti = JSON.parse(isMulti); if (isMulti) { childrens = $.map(markers[i].children, child => { return { eventHotelGuid: child.getAttribute('eventHotelGuid'), nom: child.getAttribute('nom'), category: child.getAttribute('category'), rating: child.getAttribute('rating'), priceFrom: child.getAttribute('priceFrom'), isApart: child.getAttribute('isApart'), isDisabled: child.getAttribute('isDisabled'), }; }); } var markerOptions = { img, point, nom, adresse, codepostal, ville, type, category, nbStars, index:i, isDisabled, eventHotelGuid, isOnPartners, bookingComHotelID, expediaHotelID, priceFrom, isMulti, isApart, childrens }; var marker = MakeMarker(myMap, markersMap, i, markerOptions); latlngbounds.extend(point); points.push(marker); } } if ((useHotelCluster && catHotel) || (useApartCluster && !catHotel)) { var clusterStyles = [ { textColor: 'white', url: 'https://s3.eu-west-1.amazonaws.com/media.bnetwork.com/Prod/Graphics/MapIcons/marker_cluster.png', height: 45, width: 45 }, { textColor: 'white', url: 'https://s3.eu-west-1.amazonaws.com/media.bnetwork.com/Prod/Graphics/MapIcons/marker_cluster.png', height: 45, width: 45 }, { textColor: 'white', url: 'https://s3.eu-west-1.amazonaws.com/media.bnetwork.com/Prod/Graphics/MapIcons/marker_cluster.png', height: 45, width: 45 } ]; var options = { maxZoom: 15, minimumClusterSize: 15, gridSize: 100, styles: clusterStyles }; if (!myMarkerClusterer) { myMarkerClusterer = new MarkerClusterer(myMap, points, options);//add the marker to the MarkerClusterer } else { for (var i = 0; i < points.length; i++) { myMarkerClusterer.addMarker(points[i]); } } } if (!ignoreRecenter) { window.setTimeout(function () { if (Object.keys(markersMap) == 0) { myMap.setZoom(isIntegratedMobileWebsite ? 12 : 15); } }, 500); fitBoundsMapSimple(); } } function CreatePOIsMarkers(xmlData) { var xml = xmlParse(xmlData); var markers = xml.documentElement.getElementsByTagName("marker"); for (var i = 0; i < markers.length; i++) { CreatePOIMarker(markers[i]); } } function CreatePOIMarker(marker) { var poiIcon = marker.getAttribute("icon"); var point = new google.maps.LatLng(parseFloat(marker.getAttribute("lat")), parseFloat(marker.getAttribute("lng"))); var myMarker = new google.maps.Marker({ position: point, map: myMap, icon: poiIcon, zIndex: 500/*, animation: google.maps.Animation.DROP*/ }); var contentString = "

" + marker.getAttribute("name") + "
" + marker.getAttribute("desc") + "

"; var infowindow = new google.maps.InfoWindow({ content: contentString }); google.maps.event.addListener(myMarker, 'mouseover', function () { hideInfoBoxesDefault(infowindow); showInfoBoxesDefault(infowindow, myMarker); }); } function CreateEventLocationsMarkers(xmlData) { var xml = xmlParse(xmlData); var markers = xml.documentElement.getElementsByTagName("marker"); for (var i = 0; i < markers.length; i++) { CreateEventLocationMarker(markers[i]); } } function CreateEventLocationMarker(marker) { var poiIcon = marker.getAttribute("icon"); var point = new google.maps.LatLng(parseFloat(marker.getAttribute("lat")), parseFloat(marker.getAttribute("lng"))); var myMarker = new google.maps.Marker({ position: point, map: myMap, icon: poiIcon, zIndex: 1000/*, animation: google.maps.Animation.DROP*/ }); var contentString = "

"; var infowindow = new google.maps.InfoWindow({ content: contentString }); google.maps.event.addListener(myMarker, 'mouseover', function () { hideInfoBoxesDefault(infowindow); showInfoBoxesDefault(infowindow, myMarker); }); google.maps.event.addListener(myMarker, 'click', function () { hideInfoBoxesDefault(infowindow); showInfoBoxesDefault(infowindow, myMarker); }); latlngbounds.extend(point); } function initSimple() { initialize(); displayDefaultMapLoader(true); LoadEventLocations(); LoadPOIs(); LoadHotels(); onMapInitialized(); onMapInitialized = function () { }; } function displayDefaultMapLoader(value) { if (value) { $('#defaultmap-loader').show(); } else { $('#defaultmap-loader').hide(); } } function clusterized() { if ($(window).width() < 768) { useHotelCluster = useApartCluster = true; } }

EAACI 2023 - Mercure Hotel Hamburg Mitte (2)

{name}

{stars}

{rating}

{priceFrom}

Top Articles
Latest Posts
Article information

Author: Tish Haag

Last Updated: 17/05/2023

Views: 6144

Rating: 4.7 / 5 (67 voted)

Reviews: 90% of readers found this page helpful

Author information

Name: Tish Haag

Birthday: 1999-11-18

Address: 30256 Tara Expressway, Kutchburgh, VT 92892-0078

Phone: +4215847628708

Job: Internal Consulting Engineer

Hobby: Roller skating, Roller skating, Kayaking, Flying, Graffiti, Ghost hunting, scrapbook

Introduction: My name is Tish Haag, I am a excited, delightful, curious, beautiful, agreeable, enchanting, fancy person who loves writing and wants to share my knowledge and understanding with you.