// load time counter window.d21_getLoadTime = function(comment){ // console.log('d21-client loading time: ' + comment,window.d21_counter /1000); // window.d21_counter = 0; } window.d21_getLoadTime('appController start'); /* ########################################################################################################## */ /* ####################################### d21_AppController ################################ */ /* ########################################################################################################## */ var d21_appController = function() { var self = this; self.isMinimal = window.location.host.indexOf('romantikhotels') != -1; self.widgets = { list: [] }; self.widgetUrl = "https://widgets-default.dirs21.de"; self.ibeBaseUrl = "https://v4.ibe.dirs21.de/"; self.toccBaseUrl = "https://api-default.tocc.dirs21.de"; self.cdnUrl = self.toccBaseUrl + "/v1/cdn"; self.tourDataUrl = "https://www.dirs21.de/TourData"; self.dependecies = { pickadateLoaded: false }, self.widgetOptions = { isTransitHotel: false, roomLimit: 5, currency: "EUR", isMobile: false, hasCities: false, hasPropertyTypeSearch: false, isGroupSDK: false, hasJquery: false, hasHorizontalOrientation: true, lang: "de-DE", isWIX: false, Property_Token: "X5Jp9J", Channel_Token: "QYXeYf", Group_Token: "", Directory: "/baltic-heiligenhafende/", DisplayMode: "ArrivalLos", guid: "e998307f-ec7c-4d8c-a737-2a4bdf616d43", id: 23866 }; self.d21_CustomCode_options = { script: "" } self.d21_GA_options = { uaCode: "", hasCrossDomainTracking: false, isActive: false } self.d21_CustomStyle_options = { css: "#d21-quickbook{ display: flex; justify-content: center; z-index:1001; margin-top: 25px;}#content { overflow: visible;}" } self.d21_quickbook_options = { fieldTexts: { headline: "Suchen & Buchen", apply: "Übernehmen", arrival: "Anreise", departure: "Abreise", addRoom: "weiteres Zimmer buchen", Age: "Jahr", single: { room: "Zimmer", adult: "Erwachsener", child: "Kind" }, multi: { room: "Zimmer", adult: "Erwachsene", child: "Kinder" }, total: "insgesamt", avail: "verfügbar", notavail: "nicht verfügbar", atLeast: "mindestens", guestNights: "Übernachtungen", next: "weiter", from: "ab ", maxOccupancyReached: "maximale Belegung erreicht", in: "in", accommodation: "Beherbergung: Hotels, Gasthöfe und Pensionen ", propertyType: "property_type", oclock: "Uhr", close: "Schließen" }, occupancy: { room: [{ adult: 2, child: [ ] }] }, preselect: { adultCount: 2 }, los:1, isExtend: true, hasSearchByPropertyType: false, hasMinPriceVisible: true, isHidden: false, hasTravelingPrivateField: false } self.d21_smallCalendar_options = { fieldTexts: { minNights:"min_nights", minNight:"min_night" } } self.d21_bigCalendar_options = { fieldTexts: { night: "Nacht", nights: "Nächte", rooms: "Zimmer", adult: "Erwachsener", adults: "Erwachsene", child: "Kind", childs: "Kinder", prevWeek: "Eine Woche früher", nextWeek: "one_week_later", from: "ab", prevWeek: "Eine Woche früher", notavail: "nicht verfügbar", avail: "verfügbar", maxOccupancyReached: "maximale Belegung erreicht", noArrival: "no_arrival", noDeparture: "keine Abreise", stays: "stays", possible: "possible", addRoom: "weiteres Zimmer buchen", searchOneWeekBefore: "Eine Woche früher suchen", searchOneWeekAfter: "Eine Woche später suchen", allHotels: "Alle Hotels" } } self.d21_roomList_options = { fieldTexts: { noDescription: "no_description_available", book: "book", from: "ab", min: "min", max: "max" }, hasMinMaxPersons: true, hasAmenities: false, hasCalendar: true, defaultPageSize: 10 } self.d21_packageList_options = { fieldTexts: { noDescription: "no_description_available", details: "Details", availableBetween: "verfügbar zwischen", for: "für", and: "und", to: "to", bookable: "buchbar", night: "Nacht", nights: "Nächte", per: "per", person: "Person", noBenefitsAvailable: "no_benefits_available", city: "Ort", allCategories: "all_categories", arrival: "Anreise", results: "Ergebnisse", removeFilter: "remove_filter", services: "Services" }, hasAmenities: true, hasCalendar: true, hasFilter: false, defaultPageSize: 10, hasSortByPosition: false } self.d21_hostdirectory_options = { fieldTexts: { details: "Details", book: "book", approach: "directionsi", approach: "approach" }, hasFilterOutside: true } self.d21_menuList_options = { fieldTexts: { mainmeal: "main_meal", soup: "soup", outspecialwine: "our_special_wine_recommendation", ourdailyschmankerl: "our_daily_schmankerl", fromfish: "from_fish", meatlessandsmallmeals: "meatless_and_small_meals", dessert: "dessert" }, hasFilterOutside: true } self.fn = { register: function(widget) { self.widgets[widget.name] = widget; self.widgets.list.push(widget); }, getWidgets: function() { return self.widgets.list; }, getWidget: function(name) { return self.widgets[name]; }, onWidgetCommand: function(target, cb) { var widget = self.fn.getWidget(target); if (widget != null) cb(widget); } } }; d21_app = new d21_appController(); var d21_widget_api = null; /* ########################################################################################################## */ /* ####################################### d21_Resources ##################################### */ /* ########################################################################################################## */ (function() { var d21_cssController = function() { var self = this; self.name = 'Css'; self.fn = { init: function() { }, start: function() { var head = d21_jq('head'); if (d21_app.isMinimal) { head.prepend(""); head.prepend(""); } else { head.prepend(""); head.prepend("");; head.prepend("");head.prepend(""); head.prepend("");head.prepend("");head.prepend("");head.prepend(""); head.prepend(""); } } } } // register me d21_app.fn.register(new d21_cssController()); var inter = setInterval(function () { if (typeof window.basket !== 'undefined') { clearInterval(inter); var d21_jsController = function() { var self = this; self.name = 'Js'; self.fn = { init: function() { }, start: function() { if(window.jQuery != undefined) window.orgJQuery = jQuery; if (d21_app.isMinimal) { basket.require( { url: 'https://widgets-default.dirs21.de/bundle/js/base/' + window.d21_app.widgetOptions.lang, skipCache: true } ).then(function() { d21_app.fn.getWidget('Css').fn.start(); d21_app.fn.getWidget('Base').fn.start(); basket.require({ url: 'https://widgets-default.dirs21.de/bundle/js/ibe', skipCache: true }).then(function(){d21_app.fn.onWidgetCommand('Ibe', function(widget){ widget.fn.start(); });}); }); } else { basket.require( { url: 'https://widgets-default.dirs21.de/bundle/js/jquery' , key: 'd21_jq', skipCache: true }, { url: 'https://widgets-default.dirs21.de/bundle/js/base/' + window.d21_app.widgetOptions.lang + '?b=4.1', skipCache: true } ).then(function(){ d21_app.fn.getWidget('Css').fn.start(); d21_app.fn.getWidget('Base').fn.start(); d21_app.fn.getWidget('GoogleAnalytics').fn.start(); basket.require({ url: 'https://widgets-default.dirs21.de/bundle/js/widgets?sdk_id=e998307f-ec7c-4d8c-a737-2a4bdf616d43', skipCache: true }).then(function(){d21_app.fn.onWidgetCommand('widgets', function(widget){ widget.fn.start(); });}); }); } } } } // register me d21_app.fn.register(new d21_jsController()); d21_app.fn.getWidget('Js').fn.start(); } }, 10); })();