{"version":3,"file":"script/base.js","mappings":"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","sources":["webpack://ERV.Web/./Assets/script/erv/ajax_helper.js","webpack://ERV.Web/./Assets/script/erv/auth.js","webpack://ERV.Web/./Assets/script/erv/base.js","webpack://ERV.Web/./Assets/script/erv/booking.js","webpack://ERV.Web/./Assets/script/erv/booking_rules.js","webpack://ERV.Web/./Assets/script/erv/booking_stepone.js","webpack://ERV.Web/./Assets/script/erv/booking_stepthree.js","webpack://ERV.Web/./Assets/script/erv/booking_steptwo.js","webpack://ERV.Web/./Assets/script/erv/booking_widget.js","webpack://ERV.Web/./Assets/script/erv/campaign.js","webpack://ERV.Web/./Assets/script/erv/certificate.js","webpack://ERV.Web/./Assets/script/erv/claims_widget.js","webpack://ERV.Web/./Assets/script/erv/common.js","webpack://ERV.Web/./Assets/script/erv/countries.js","webpack://ERV.Web/./Assets/script/erv/datepicker-il8n.js","webpack://ERV.Web/./Assets/script/erv/episerver_forms_helpers.js","webpack://ERV.Web/./Assets/script/erv/ergo_triggers.js","webpack://ERV.Web/./Assets/script/erv/erv_autosuggest.js","webpack://ERV.Web/./Assets/script/erv/erv_checks.js","webpack://ERV.Web/./Assets/script/erv/erv_customvalidationsummary.js","webpack://ERV.Web/./Assets/script/erv/erv_extensions.js","webpack://ERV.Web/./Assets/script/erv/erv_formatting.js","webpack://ERV.Web/./Assets/script/erv/erv_framework.js","webpack://ERV.Web/./Assets/script/erv/erv_popup.js","webpack://ERV.Web/./Assets/script/erv/erv_pricebreakdown.js","webpack://ERV.Web/./Assets/script/erv/erv_tagit.js","webpack://ERV.Web/./Assets/script/erv/erv_tracking.js","webpack://ERV.Web/./Assets/script/erv/erv_translate.js","webpack://ERV.Web/./Assets/script/erv/erv_triggers.js","webpack://ERV.Web/./Assets/script/erv/erv_validation_extensions.js","webpack://ERV.Web/./Assets/script/erv/expatriate.js","webpack://ERV.Web/./Assets/script/erv/fileuploadhelper.js","webpack://ERV.Web/./Assets/script/erv/flexmenu.js","webpack://ERV.Web/./Assets/script/erv/forms.js","webpack://ERV.Web/./Assets/script/erv/healthdeclaration.js","webpack://ERV.Web/./Assets/script/erv/hero_image.js","webpack://ERV.Web/./Assets/script/erv/masking.js","webpack://ERV.Web/./Assets/script/erv/monitorpage.js","webpack://ERV.Web/./Assets/script/erv/nhcpayment.js","webpack://ERV.Web/./Assets/script/erv/pagination_simple.js","webpack://ERV.Web/./Assets/script/erv/postalhelper.js","webpack://ERV.Web/./Assets/script/erv/postslist.js","webpack://ERV.Web/./Assets/script/erv/pricecheck.js","webpack://ERV.Web/./Assets/script/erv/pricehelper.js","webpack://ERV.Web/./Assets/script/erv/producthelper.js","webpack://ERV.Web/./Assets/script/erv/quotation.js","webpack://ERV.Web/./Assets/script/erv/replace.js","webpack://ERV.Web/./Assets/script/erv/responsive.js","webpack://ERV.Web/./Assets/script/erv/responsive_common.js","webpack://ERV.Web/./Assets/script/erv/responsive_countries.js","webpack://ERV.Web/./Assets/script/erv/responsive_devicemenu.js","webpack://ERV.Web/./Assets/script/erv/responsive_footer.js","webpack://ERV.Web/./Assets/script/erv/responsive_mainmenu.js","webpack://ERV.Web/./Assets/script/erv/responsive_mainsearch.js","webpack://ERV.Web/./Assets/script/erv/responsive_swipe.js","webpack://ERV.Web/./Assets/script/erv/responsive_table.js","webpack://ERV.Web/./Assets/script/erv/settings.js","webpack://ERV.Web/./Assets/script/erv/tabs.js","webpack://ERV.Web/./Assets/script/erv/techequip.js","webpack://ERV.Web/./Assets/script/erv/warlist.js","webpack://ERV.Web/./Assets/script/erv/yearlyproduct.js","webpack://ERV.Web/./Assets/script/internal/grid-a-licious.min.js","webpack://ERV.Web/./Assets/script/internal/polyfill.js","webpack://ERV.Web/./Assets/script/internal/swipe2.custom.min.js","webpack://ERV.Web/./Assets/script/lib/accounting.min.js","webpack://ERV.Web/./Assets/script/lib/dirrty.min.js","webpack://ERV.Web/./Assets/script/lib/jquery.matchheight.min.js","webpack://ERV.Web/./Assets/script/lib/jquery.scrollTo.min.js","webpack://ERV.Web/./Assets/script/lib/jquery.validate.min.js","webpack://ERV.Web/./Assets/script/lib/jquery.validate.unobtrusive.min.js","webpack://ERV.Web/./Assets/script/lib/js.cookie.js","webpack://ERV.Web/./Assets/script/lib/lazyload.min.js","webpack://ERV.Web/./Assets/script/lib/lodash.throttle.js","webpack://ERV.Web/./Assets/script/lib/multiclamp.js","webpack://ERV.Web/./Assets/script/lib/tag-it.js","webpack://ERV.Web/./Assets/script/moduleRepository.js","webpack://ERV.Web/./breakpoints.config.js","webpack://ERV.Web/./Assets/script/erv/expand_collapse.ts","webpack://ERV.Web/external var \"window.jQuery\"","webpack://ERV.Web/webpack/bootstrap","webpack://ERV.Web/webpack/runtime/load script","webpack://ERV.Web/webpack/runtime/compat get default export","webpack://ERV.Web/webpack/runtime/define property getters","webpack://ERV.Web/webpack/runtime/ensure chunk","webpack://ERV.Web/webpack/runtime/get javascript chunk filename","webpack://ERV.Web/webpack/runtime/get mini-css chunk filename","webpack://ERV.Web/webpack/runtime/global","webpack://ERV.Web/webpack/runtime/hasOwnProperty shorthand","webpack://ERV.Web/webpack/runtime/make namespace object","webpack://ERV.Web/webpack/runtime/node module decorator","webpack://ERV.Web/webpack/runtime/publicPath","webpack://ERV.Web/webpack/runtime/jsonp chunk loading","webpack://ERV.Web/webpack/startup"],"sourcesContent":["define(['jquery', 'erv_framework', 'forms'], function ($, ERVFramework, Forms) {\r\n\tvar AjaxHelper = function () {\r\n\t\tvar self = this;\r\n\t\tself.forms = new Forms();\r\n\t\tself.framework = new ERVFramework();\r\n\t};\r\n\r\n\tAjaxHelper.prototype.submitForm = function ($form, successCallback, failCallback, completed, manualType, manualUrl) {\r\n\t\tvar self = this,\r\n\t\t\turl = typeof (manualUrl) !== 'undefined' ? manualUrl : $form.attr('action'),\r\n\t\t\ttype = typeof (manualType) !== 'undefined' ? manualType : $form.attr('method');\r\n\r\n\t\t//set class to override default behavior\r\n\t\tif (!$form.hasClass('skiploading')) {\r\n\t\t\tself.forms.activateLoading($form, false);\r\n\t\t}\r\n\r\n\t\t$.ajax({\r\n\t\t\ttype: type,\r\n\t\t\turl: url,\r\n\t\t\tdata: $form.serialize(),\r\n\t\t\tsuccess: function (data) {\r\n\t\t\t\tif (typeof (data.status) === 'undefined' || data.status === 'success') {\r\n\t\t\t\t\tif (typeof(successCallback) === 'function') {\r\n\t\t\t\t\t\tsuccessCallback(data);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if (typeof(failCallback) === 'function') {\r\n\t\t\t\t\tfailCallback(data);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tself.framework.initGenericAlert(typeof (data.message) !== 'undefined' ? data.message : '');\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t},\r\n\t\t\tcomplete: function (data) {\r\n\t\t\t\tif (typeof(completed) === 'function') {\r\n\t\t\t\t\tcompleted(data);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tself.forms.deactivateLoading($form);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\treturn AjaxHelper;\r\n});","import Settings from 'settings';\r\nvar getAuth = function () {\r\n var authenticator = new Auth();\r\n\treturn (() => import('@azure/msal-browser').then((Msal) => {\r\n\r\n const msalConfig = {\r\n auth: {\r\n clientId: authenticator.settings.ClientId,\r\n authority: authenticator.settings.Authority,\r\n knownAuthorities: [authenticator.settings.Authority],\r\n redirectUri: location.origin\r\n },\r\n cache: {\r\n cacheLocation: \"sessionStorage\"\r\n },\r\n system: {\r\n loggerOptions: {\r\n loggerCallback(loglevel, message, containsPii) {\r\n console.log(message);\r\n },\r\n piiLoggingEnabled: false,\r\n\t\t\t\t\tlogLevel: Msal.LogLevel.Verbose,\r\n\t\t\t\t}\r\n }\r\n\t\t};\r\n\r\n return new Promise((resolve, reject) => {\r\n Msal.PublicClientApplication.createPublicClientApplication(msalConfig)\r\n\t\t\t\t.then((msalInstance) => {\r\n authenticator.client = msalInstance;\r\n resolve(authenticator);\r\n })\r\n .catch(error => {\r\n reject(error);\r\n });\r\n });\r\n }))();\r\n}\r\n\r\nvar Auth = function () {\r\n\t\tvar self = this;\r\n\t\tself.settings = Settings.Auth;\r\n\r\n\t\t\tself.login = function (successCallback, failCallback) {\r\n\t\t\t\tself.acquireToken(successCallback, function () {\r\n\t\t\t\t\tself.client.loginPopup({ scopes: self.settings.B2CScopes }).then(function (authenticationResult) {\r\n\t\t\t\t\t\tif (typeof successCallback === 'function') {\r\n\t\t\t\t\t\t\tsuccessCallback(authenticationResult.accessToken);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, function (error) {\r\n\t\t\t\t\t\tif (typeof failCallback === 'function') {\r\n\t\t\t\t\t\t\tfailCallback(error);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t};\r\n\t\t\r\n self.acquireToken = function (successCallback, failCallback) {\r\n successCallback = typeof successCallback === 'function' ? successCallback : function () { };\r\n\r\n return self.client.acquireTokenPopup({ scopes: self.settings.B2CScopes })\r\n .then(function(authenticationResult) {\r\n successCallback(authenticationResult.accessToken);\r\n return authenticationResult;\r\n }).catch(function (popupError) {\r\n if (typeof failCallback === 'function') {\r\n failCallback(popupError);\r\n }\r\n throw popupError;\r\n });\r\n };\r\n\t\t\r\n\t\t\tself.logout = function () {\r\n\t\t\t\tself.client.logout();\r\n\t\t\t};\r\n}\r\n\r\nexport default getAuth;","define([\r\n\t'jquery',\r\n\t'responsive',\r\n\t'common',\r\n 'erv_tracking',\r\n\t'erv_validation_extensions',\r\n\t'erv_translate',\r\n\t'modulerepository',\r\n\t'polyfill'\r\n], function($,\r\n ERVResponsive,\r\n ERVCommon,\r\n ERVTracking,\r\n ERVValidationExtensions,\r\n ERVTranslate,\r\n\tModuleRepository,\r\n\tPolyfill\r\n) {\r\n\r\n const CHUNKS = [\r\n\t\t'adhoc_widget',\r\n\t\t'booking_guide',\r\n\t\t'claims',\r\n 'mypages',\r\n ]\r\n\r\n\r\n\tconst resolveChunk = (chunkName) => {\r\n\r\n const callback = (moduleName) => {\r\n var requiredClass = new (moduleName);\r\n requiredClass.init();\r\n }\r\n\r\n switch(chunkName) {\r\n case 'adhoc_widget':\r\n\t\t\t\treturn require(['adhoc_widget'], callback);\r\n case 'booking_guide':\r\n\t\t\t\treturn require(['booking_guide'], callback);\r\n case 'claims':\r\n return require(['claims'], callback);\r\n case 'mypages':\r\n return require(['mypages'], callback);\r\n default:\r\n return false;\r\n\t\t}\r\n }\r\n\r\n\r\n var $ervBody = $('#erv-body');\r\n\r\n\tvar ervValidation = new ERVValidationExtensions();\r\n\tervValidation.init();\r\n\r\n\tvar common = new ERVCommon();\r\n\t\tcommon.init();\r\n\r\n var translate = new ERVTranslate();\r\n\ttranslate.init();\r\n\r\n\tvar ervTracking = new ERVTracking();\r\n\tervTracking.init();\r\n\r\n\tvar responsive = new ERVResponsive();\r\n\t\tresponsive.init();\r\n\r\n\tif ($ervBody.find('[data-js=\"search-suggestions\"]').length) {\r\n\t\trequire(['erv_autosuggest'], function (ervAutosuggest) { ervAutosuggest.default.init(); });\r\n }\r\n\r\n if ($ervBody.find('.flex-nav').length) {\r\n\t\trequire(['flexmenu'], function (moduleName) { var requiredClass = new (moduleName); requiredClass.init('.flex-nav'); });\r\n\t}\r\n\r\n\tif ($ervBody.find('.tabs').length) {\r\n\t\trequire(['tabs'], function (moduleName) { var requiredClass = new (moduleName); requiredClass.init(); });\r\n\t}\r\n\r\n\tif ($ervBody.find('#password-change-required').length) {\r\n\t\trequire(['change_password'], function (moduleName) { var requiredClass = new (moduleName); requiredClass.init(); });\r\n\t}\r\n\r\n\tif ($ervBody.find('.highlighttextblock').length) {\r\n\t\trequire(['erv_highlight'], function (moduleName) { self.highlight = new (moduleName);\tself.highlight.init(); });\r\n\t}\r\n\r\n const heroElement = document.querySelector('[data-js=hero-image]')\r\n\tif (heroElement) {\r\n\t\trequire(['hero_image'], function (moduleName) {\r\n\t\t\tvar HeroImage = new (moduleName)\r\n\r\n\t\t\tHeroImage.init(heroElement)\r\n\t\t});\r\n\t}\r\n\r\n\tif ($('#body.error-page').length) {\r\n\t\trequire(['replace'],\r\n\t\t\tfunction(moduleName) {\r\n\t\t\t\tvar requiredClass = new (moduleName);\r\n\t\t\t\trequiredClass.init();\r\n\t\t\t});\r\n\r\n\t\t$('body').on('ervDomChanged',\r\n\t\t\tfunction() {\r\n\t\t\t\tcommon.init();\r\n\t\t\t\tresponsive.init();\r\n\t\t\t});\r\n\t} else if ($ervBody.find('.searchpage').length) {\r\n require(['pagination_simple'],\r\n function(moduleName) {\r\n var requiredClass = new (moduleName);\r\n requiredClass.init(20, '#search-results', '.search-item', '#loadmore');\r\n });\r\n\t} else if (window.requireScripts && window.requireScripts.length > 0) {\r\n\r\n\t\twindow.requireScripts.forEach(scriptDetails => {\r\n\r\n\t\t\tconst [moduleName, initParams] = scriptDetails.split(':');\r\n\r\n\t\t\tif (CHUNKS.includes(moduleName)) {\r\n return resolveChunk(moduleName);\r\n }\r\n\r\n\t\t\tif (Object.keys(ModuleRepository).includes(moduleName)) {\r\n return new ModuleRepository[moduleName]().init(initParams);\r\n }\r\n });\r\n }\r\n});\r\n\r\n\r\n","define(['jquery', 'common', 'erv_tracking', 'erv_pricebreakdown'],\r\n\tfunction ($, ERVCommon, ERVTracking, ERVPriceBreakdown) {\r\n\t\tvar ERVBooking = function() {\r\n\t\t\tvar self = this;\r\n\t\t\tself.$ervBody = $('#erv-body');\r\n\t\t\tself.common = new ERVCommon();\r\n\t\t\tself.tracking = new ERVTracking();\r\n\t\t\tself.priceBreakdown = new ERVPriceBreakdown();\r\n\t\t};\r\n\r\n\t\tERVBooking.prototype.init = function() {\r\n\t\t\tvar self = this,\r\n\t\t\t\t$bookingContainer = self.$ervBody.find('.booking');\r\n\r\n\t\t\tif (window.history && self.common.framework.checks.isCriOs()) {\r\n\t\t\t\twindow.history.pushState({ 'criosfix: ': true }, null, window.location.pathname);\r\n\t\t\t}\r\n\r\n\t\t\tif ($bookingContainer.length > 0) {\r\n\t\t\t\tself.$ervBody.find('.next-step').on('click', function (e) {\r\n\t\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\t\tvar $form = $(this).parents('form');\r\n\t\t\t\t\tif (!$form.valid()) {\r\n\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tself.common.forms.activateLoading($(this), false);\r\n\t\t\t\t\tvar submit = function () { $form.submit(); }\r\n\r\n\t\t\t\t\tif ($bookingContainer.is('.bookingpaymentpage')) {\r\n\t\t\t\t\t\tself.tracking.trackEvent('BookingInvoiceVsCardVsGiro', 'Selected', self.$ervBody.find('[data-js=\"paymentmethod\"] input:checked').val(), null, submit);\r\n\t\t\t\t\t} else if ($bookingContainer.is('.bookingcontactdetailspage')) {\r\n\t\t\t\t\t\tvar $renewal = self.$ervBody.find('[data-js=\"yestorenewal\"]');\r\n\t\t\t\t\t\tif ($renewal && $renewal.length && $renewal.prop('checked')) {\r\n\t\t\t\t\t\t\tself.tracking.trackEvent('Booking', 'PBS Enable', 'Total price: ' + $bookingContainer.find('[data-totalprice]').data('totalprice'), null, submit);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tsubmit();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tsubmit();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tself.priceBreakdown.init();\r\n\t\t\t}\r\n\r\n\t\t\tself.common.forms.validationSummary.setErrorFieldLabels();\r\n\r\n\t\t\tself.$ervBody.find('.choice label').on('click', function (e) {\r\n\t\t\t\tvar $this = $(this),\r\n\t\t\t\t\t$parent = $this.parents('.choice'),\r\n\t\t\t\t\t$choiceContainer = $parent.parents('.choice-container');\r\n\r\n\t\t\t\tif ($choiceContainer.length === 1) {\r\n\t\t\t\t\t$choiceContainer.find('.active').removeClass('active');\r\n\t\t\t\t}\r\n\t\t\t\t$parent.toggleClass('active');\r\n\r\n\t\t\t\tif ($parent.hasClass('annual-upgrade')) {\r\n\t\t\t\t\tvar $form = $this.parents('form');\r\n\r\n\t\t\t\t\tif (!$form.valid()) {\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\te.stopPropagation();\r\n\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tself.$ervBody.find('[data-js=\"trigger-annual-upgrade\"]').click();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t$('body').trigger('bookingjsloaded');\r\n\t\t}\r\n\r\n\treturn ERVBooking;\r\n});","define(['jquery', 'common', 'erv_tracking'], function ($, Common, ERVTracking) {\r\n\r\n\tvar ERVBookingRules = function () {\r\n\t\tvar self = this;\r\n\t\tself.$ervBody = $('#erv-body');\r\n\t\tself.$bookingWidget = self.$ervBody.find('#booking-widget');\r\n\t\tself.common = new Common();\r\n\t\tself.tracking = new ERVTracking();\r\n\r\n\t\tself.calculateTotalValue = function($inputs) {\r\n\t\t\tvar total = 0;\r\n\r\n\t\t\t$inputs.each(function() {\r\n\t\t\t\tvar $input = $(this),\r\n\t\t\t\t\tcurrent = parseInt($input.val());\r\n\t\t\t\tif (!isNaN(current)) {\r\n\t\t\t\t\ttotal += current;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\treturn total;\r\n\t\t};\r\n\t};\r\n\r\n\tERVBookingRules.prototype.businessTravelDaysRule = function ($form) {\r\n\t\tvar self = this,\r\n\t\t\t$inputs = $form.find('input[name^=\"TravelDays.\"]'),\r\n\t\t\tvalid = true;\r\n\r\n\t\tif ($inputs.length === 0) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar checkValue = self.calculateTotalValue($inputs),\r\n\t\t\ttype = $inputs.first().parents('.traveldays').data('regioninputtype');\r\n\t\t\r\n\t\tif (type === 'percent') {\r\n\t\t\tif (checkValue !== 100) {\r\n\t\t\t\tvalid = false;\r\n\t\t\t} else {\r\n\t\t\t\t$inputs.removeClass('input-validation-error').addClass('input-validation-valid');\r\n\t\t\t}\r\n\t\t} else if(type === 'days') {\r\n\t\t\tif (checkValue === 0) {\r\n\t\t\t\tvalid = false;\r\n\t\t\t} else {\r\n\t\t\t\t$inputs.removeClass('input-validation-error').addClass('input-validation-valid');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tif ($form.find('.input-validation-error').length === 0) {\r\n\t\t\t$form.find('.custom-validation-message').addClass('hide');\r\n\t\t}\r\n\r\n\t\treturn valid;\r\n\t};\r\n\r\n\tERVBookingRules.prototype.travelingPeopleNotHigherThanTotalPeople = function ($childElement) {\r\n\t\tvar $container = $childElement.parents('.insurance-fields'),\r\n\t\t\tinputVal = 0,\r\n\t\t\tself = this;\r\n\r\n\t\tif ($container.length === 0 || $container.find('#Input_HasDailyTravel:checked').length === 0) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\tvar $input = $container.find('#Input_DailyTravelPersonCount');\r\n\r\n\t\tif ($input.length === 0) { return false; }\r\n\t\tinputVal = parseInt($input.val());\r\n\r\n\t\tvar $totalPeople = $container.find('[data-js=\"person-count\"]');\r\n\t\tvar totalPeopleVal = parseInt($totalPeople.val());\r\n\t\tif (!isNaN(inputVal) && !isNaN(totalPeopleVal)) {\r\n\t\t\tif (inputVal > totalPeopleVal) {\r\n\t\t\t\t$input.val(totalPeopleVal);\r\n\r\n\t\t\t\tvar $summary = self.$ervBody.find('.validation-summary-errors'),\r\n\t\t\t\t\t$summaryLi = $summary.find('ul li');\r\n\r\n\t\t\t\tif ($summaryLi.length === 1) {\r\n\t\t\t\t\tif ($summaryLi.data('errorkey') === \"DailyTravelPersonCount\") {\r\n\t\t\t\t\t\t$summary.remove();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$input.removeClass('input-validation-error');\r\n\t\t\t\t$input.parents('.field').find('.custom-validation-message').addClass('hide');\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tERVBookingRules.prototype.syncMedicalAndExcess = function ($input) {\r\n\t\tvar showExcess = true,\r\n\t\t\tself = this;\r\n\r\n\t\tif (self.common.framework.checks.isSe()) {\r\n\t\t\tvar $parent = $input.parents('.form-element'),\r\n\t\t\t\t$medicalInput = $parent.find('input[data-ismedical=\"true\"]:not(:disabled)'); //medical\r\n\r\n\t\t\tshowExcess = false;\r\n\t\t\t\r\n\t\t\tif ($medicalInput.is(':checked')) {\r\n\t\t\t\tshowExcess = true;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn showExcess;\r\n\t};\r\n\t\r\n\tERVBookingRules.prototype.isFamily = function ($form) {\r\n\t\tvar self = this;\r\n\t\tif (!self.common.framework.checks.isDk()) { return false; }\r\n\r\n\t\tvar $peopleCount = $form.find('[data-js=\"person-count\"]'),\r\n\t\t\t$ages = $form.find('[data-js=\"age-of-people\"] input[type=\"number\"]'),\r\n\t\t\tthreeOrMore = false,\r\n\t\t\t$isFamily = $form.find('[data-js=\"isfamily\"]');\r\n\r\n\t\tif($ages.length > 0) {\r\n\t\t\tthreeOrMore = $ages.length >= 3;\r\n\t\t} else {\r\n\t\t\tthreeOrMore = Number($peopleCount.val()) >= 3;\r\n\t\t}\r\n\r\n\t\tif (threeOrMore) {\r\n\t\t\tvar $amountOfPeopleContainer = $form.find('#amount-of-people'); //if fileupload\r\n\t\t\tif ($amountOfPeopleContainer.hasClass('hide')) {\r\n\t\t\t\t$isFamily.addClass('hide');\r\n\t\t\t\tself.common.forms.disableFormElementsInContainer($isFamily, true);\r\n\t\t\t} else {\r\n\t\t\t\t$isFamily.removeClass('hide');\r\n\t\t\t\tself.common.forms.disableFormElementsInContainer($isFamily, false);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t$isFamily.addClass('hide');\r\n\t\t\t$isFamily.find('input').prop('checked', false);\r\n\t\t\tself.common.forms.disableFormElementsInContainer($isFamily, true);\r\n\t\t}\r\n\t};\r\n\r\n\tERVBookingRules.prototype.isExtendedCarTechnicalEquipment = function ($form) {\r\n\t\tvar self = this,\r\n\t\t\t$addonFormElement = $form.find('#technicalequipmentextended-addon'),\r\n\t\t\t$addonCheckbox = $addonFormElement.find('input[data-addonid=\"044C\"]');\r\n\r\n\t\tif (!self.common.framework.checks.isDk() || $addonCheckbox.length === 0) { return false; }\r\n\r\n\t\tvar $totalPrice = $form.find('#TechnicalEquipmentPrice'),\r\n\t\t\tprice = Number($totalPrice.val());\r\n\r\n\t\tif (!isNaN(price) && price >= 50000) {\r\n\t\t\t$addonFormElement.removeClass('hide');\r\n\t\t} else {\r\n\t\t\t$addonFormElement.addClass('hide');\r\n\t\t\t$addonCheckbox.prop('checked', false);\r\n\t\t\t$addonCheckbox.val('');\r\n\t\t}\r\n\t};\r\n\r\n\tERVBookingRules.prototype.hasReachedPeopleLimit = function($categoryForm, peopleCount) {\r\n\t\tif (typeof ($categoryForm.attr('data-limitpeople')) !== 'undefined') {\r\n\t\t\tif (Number(peopleCount) >= Number($categoryForm.attr('data-limitpeople'))) {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn false;\r\n\t}\r\n\r\n\tERVBookingRules.prototype.initHomeInsurance = function () {\r\n\t\tvar self = this;\r\n\t\tvar $step1 = self.$ervBody.find('#main.bookingselectproductpage'),\r\n\t\t\t$homeInsuranceLightBox = $step1.find('.home-insurance');\r\n\r\n\t\tif ($step1.length !== 1 || $homeInsuranceLightBox.length !== 1) {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tvar $stepTwo = $homeInsuranceLightBox.find('.step-two');\r\n\r\n\t\tif (self.$bookingWidget.find('#HomeInsuranceStartDay').val().replace('\\u2212', '\\u002D') === '-1') {\r\n\t\t\tvar days = 0;\r\n\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\tif ($('body div.mfp-wrap').length === 0) {\r\n\r\n\t\t\t\t\tself.common.framework.popup.openPopup(\r\n\t\t\t\t\t\t'.home-insurance',\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\telementParse: function(item) {\r\n\t\t\t\t\t\t\t\t$(item.src).removeClass('hide');\r\n\r\n\t\t\t\t\t\t\t\tself.tracking.trackEvent('Booking', 'Home Insurance lightbox', 'Home Insurance lightbox displayed');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\ttrue, false\r\n\t\t\t\t\t);\r\n\r\n\t\t\t\t\tself.$bookingWidget.find('#HomeInsuranceStartDay').val('0');\r\n\r\n\t\t\t\t\t$homeInsuranceLightBox.find('[data-js=\"show-step-two\"]').on('click', function () {\r\n\t\t\t\t\t\t$stepTwo.removeClass('hide');\r\n\t\t\t\t\t\tself.tracking.trackEvent('Booking', 'Home Insurance lightbox', 'Clicked Yes');\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t$homeInsuranceLightBox.find('[data-js=\"hide-step-two\"]').on('click', function () {\r\n\t\t\t\t\t\t$.magnificPopup.close();\r\n\t\t\t\t\t\tself.tracking.trackEvent('Booking', 'Home Insurance lightbox', 'Clicked No');\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t$homeInsuranceLightBox.find('#HomeInsurancePeriod input').on('change', function () {\r\n\t\t\t\t\t\tdays = parseInt($(this).val());\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t$homeInsuranceLightBox.find('[data-js=\"set-home-insurance-information\"]').on('click', function () {\r\n\t\t\t\t\t\t// if zero then we just close the popup\r\n\t\t\t\t\t\tif (days === 0) {\r\n\t\t\t\t\t\t\t$.magnificPopup.close();\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Set data\r\n\t\t\t\t\t\tvar dateInput = self.$bookingWidget.find(\"[name='FromDate']\").not('[disabled]'),\r\n\t\t\t\t\t\t\tdate = new Date(dateInput.val());\r\n\r\n\t\t\t\t\t\tdate.setDate(date.getDate() + days);\r\n\r\n\t\t\t\t\t\tdateInput.val(date.toLocaleDate('se'));\r\n\r\n\t\t\t\t\t\tself.$bookingWidget.find('#HomeInsuranceStartDay').val(days);\r\n\r\n\t\t\t\t\t\tself.common.forms.activateLoading($(this), false);\r\n\t\t\t\t\t\tself.common.forms.activateLoading(self.$bookingWidget, false);\r\n\r\n\t\t\t\t\t\t// Re-submit the booking request\r\n\t\t\t\t\t\tself.$bookingWidget.submit();\r\n\r\n\t\t\t\t\t\t$(this).prop('disabled', true);\r\n\r\n\t\t\t\t\t\tself.tracking.trackEvent('Booking', 'Home Insurance lightbox', 'Selected days: ' + days);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}, 40);\r\n\t\t}\r\n\t}\r\n\r\n\tERVBookingRules.prototype.isNisCancellation = function ($categoryForm, overwriteChecked) {\r\n\t\tvar self = this;\r\n\r\n\t\tif ($categoryForm.data('js') !== 'niscancellation') { return false; }\r\n\r\n\t\tvar $peopleCount = $categoryForm.find('[data-peoplecount]'),\r\n\t\t\t$oneForAllContainer = $categoryForm.find('#one-for-all'),\r\n\t\t\t$inputAllForOneCheckBox = $oneForAllContainer.find('#NisCancellationAllForOne'),\r\n\t\t\t$inputAllForOneContainer = $categoryForm.find('.field.is-allforone'),\r\n\t\t\t$cancellationPerPersonPriceContainer = $categoryForm.find('#cancellation-per-person-price'),\r\n\t\t\tchecked = $inputAllForOneCheckBox.prop('checked');\r\n\r\n\t\tvar $amountOfPeopleContainer = $peopleCount.parents('#cancellationtrip-amount-of-people'); //if fileupload\r\n\r\n\t\tif (overwriteChecked != undefined) {\r\n\t\t\tchecked = overwriteChecked;\r\n\t\t}\r\n\r\n\t\tif ($peopleCount.data('peoplecount') > 1 && !$amountOfPeopleContainer.hasClass('hide')) {\r\n\t\t\t$oneForAllContainer.removeClass('hide');\r\n\t\t\tself.common.forms.disableFormElementsInContainer($oneForAllContainer, false);\r\n\t\t\tself.common.forms.disableFormElementsInContainer($inputAllForOneContainer, false);\r\n\t\t\tif (checked) {\r\n\t\t\t\t$inputAllForOneContainer.removeClass('hide');\r\n\t\t\t\t$cancellationPerPersonPriceContainer.addClass('hide');\r\n\r\n\t\t\t} else {\r\n\t\t\t\t$inputAllForOneContainer.addClass('hide');\r\n\t\t\t\t$cancellationPerPersonPriceContainer.removeClass('hide');\r\n\t\t\t\tself.common.forms.disableFormElementsInContainer($inputAllForOneContainer, true);\r\n\r\n\t\t\t\tif ($peopleCount.data('peoplecount') > 1 && $categoryForm.find('[name^=\"PersonPrices[\"]').length === 1) {\r\n\t\t\t\t\t$(document).trigger({\r\n\t\t\t\t\t\ttype: 'ervBookingWidgetPeopleCount',\r\n\t\t\t\t\t\tpeoplecount: $peopleCount.data('peoplecount'),\r\n\t\t\t\t\t\tcurrentCategoryForm: $categoryForm\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn true;\r\n\t\t}\r\n\r\n\t\t$oneForAllContainer.addClass('hide');\r\n\t\t$inputAllForOneContainer.addClass('hide');\r\n\t\t$inputAllForOneCheckBox.prop('checked', false);\r\n\r\n\t\tif (!$amountOfPeopleContainer.hasClass('hide')) {\r\n\t\t\t$cancellationPerPersonPriceContainer.removeClass('hide');\r\n\t\t}\r\n\r\n\t\tself.common.forms.disableFormElementsInContainer($oneForAllContainer, true);\r\n\t\tself.common.forms.disableFormElementsInContainer($inputAllForOneContainer, true);\r\n\t};\r\n\t\r\n\tERVBookingRules.prototype.hasDailyTravel = function ($form) {\r\n\t\tvar self = this;\r\n\r\n\t\tvar $hasDailyTravel = $form.find('#Input_HasDailyTravel');\r\n\t\tvar $amountOfPeopleContainer = $form.find('[data-js=\"hasdailytravel\"]');\r\n\t\t\r\n\t\tif ($hasDailyTravel.is(':checked')) {\r\n\t\t\tif ($amountOfPeopleContainer.hasClass('hide')) {\r\n\t\t\t\t$amountOfPeopleContainer.removeClass('hide');\r\n\t\t\t\tself.common.forms.disableFormElementsInContainer($amountOfPeopleContainer, false);\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t$amountOfPeopleContainer.addClass('hide');\r\n\t\t\t$amountOfPeopleContainer.find('input').val('');\r\n\t\t\tself.common.forms.disableFormElementsInContainer($amountOfPeopleContainer, true);\r\n\t\t}\r\n\t};\r\n\r\n\tERVBookingRules.prototype.init = function() {\r\n\r\n\t};\r\n\r\n\treturn ERVBookingRules;\r\n});","define(['jquery', 'common', 'booking_rules', 'producthelper', 'warlist', 'responsive_common','expand_collapse'], function ($, ERVCommon, ERVBookingRules, ERVProductHelper, ERVWarList, ERVResponsiveCommon,ExpandCollapse) {\r\n\tvar BookingStepOne = function () {\r\n\t\tvar self = this;\r\n\t\tself.$ervBody = $('#erv-body');\r\n\t\tself.common = new ERVCommon();\r\n\t\tself.productHelper = new ERVProductHelper();\r\n\t\tself.bookingRules = new ERVBookingRules();\r\n\t\tself.warlist = new ERVWarList();\r\n\t\tself.responsiveCommon = new ERVResponsiveCommon();\r\n\r\n\t\tself.initContinueTriggers = function ($products) {\r\n\t\t\t$products.find('[data-js=\"continuetrigger\"]').on('click', function (e) {\r\n\t\t\t\tself.common.forms.activateLoading($(this), true, e);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tself.initCompareContinueTriggers = function ($compareSection) {\r\n\t\t\t$compareSection.find('[data-js=\"compare-continuetrigger\"]').on('click', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tvar $this = $(this),\r\n\t\t\t\t\t$product = self.$ervBody.find('input[value=\"' + $this.parent().data('productid') + '\"]').parents('.product');\r\n\r\n\t\t\t\tif (!$product.length) { return; }\r\n\r\n\t\t\t\tif ($this.data('has-second-step')) {\r\n\t\t\t\t\tself.$ervBody.find('#selectProducts').trigger('click'); // switch to select view\r\n\t\t\t\t\t$product.find('[data-js=\"nexttrigger\"]').trigger('click'); // trigger next step\r\n\t\t\t\t\t$.scrollTo($product, 300, { offset: -(self.$ervBody.find(self.responsiveCommon.isDeviceSize('small') ? '#header' : '#main-menu').height() + 10) });\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$product.find('[data-js=\"continuetrigger\"]').trigger('click');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tself.initEventhandlers = function() {\r\n\t\t\tvar $products = self.$ervBody.find('.product.booking');\r\n\r\n\t\t\tself.productHelper.productEventHandlers($products, '.product.booking');\r\n\r\n\t\t\tself.initContinueTriggers($products);\r\n\t\t\t\r\n\t\t\tself.$ervBody.find('.search-hits-header .form-element input[type=radio]').on('change', function () {\r\n\t\t\t\tvar $input = $(this),\r\n\t\t\t\t$selectSection = self.$ervBody.find('[data-js=\"selectsection\"]'),\r\n\t\t\t\t$compareSection = self.$ervBody.find('[data-js=\"comparesection\"]');\r\n\r\n\t\t\t\tif ($input.val() === 'select') {\r\n\t\t\t\t\t$compareSection.addClass('hide');\r\n\t\t\t\t\t$selectSection.removeClass('hide');\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// toggle annual/tripbytrip price, addons and type\r\n\t\t\t\t\tself.$ervBody.find('.same-products .selectable-products .insurance-type input:checked').each(function () {\r\n\t\t\t\t\t\tvar $this = $(this), type = $this.data('js'), productId = $this.parents('form').find('input[name=\"ProductId\"]').val(),\r\n\t\t\t\t\t\t\tproductIndex = $compareSection.find('[data-productid=\"' + productId + '\"]').index() + 1,\r\n\t\t\t\t\t\t\t$productTds = $compareSection.find('table tr td:nth-child(' + productIndex + ')');\r\n\r\n\t\t\t\t\t\t$productTds.find('[data-type=\"' + type + '\"]').removeClass('hidden');\r\n\t\t\t\t\t\t$productTds.find('[data-type][data-type!=\"' + type + '\"]').addClass('hidden');\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t// show compare\r\n\t\t\t\t\t$compareSection.removeClass('hide');\r\n\t\t\t\t\t$selectSection.addClass('hide');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tself.setupSelectCompareView = function () {\r\n\t\t\tvar $compareRadio = self.$ervBody.find('.search-hits-header .form-element #compareProducts');\r\n\r\n\t\t\tif ($compareRadio.length <= 0) {\r\n\t\t\t\treturn; // no compare, nothing to setup\r\n\t\t\t}\r\n\r\n\t\t\tvar $selectSection = self.$ervBody.find('[data-js=\"selectsection\"]'),\r\n\t\t\t\t$compareSection = self.$ervBody.find('[data-js=\"comparesection\"]'),\r\n\t\t\t\t$compareExport = self.$ervBody.find('#compare-export');\r\n\r\n\t\t\tself.initCompareContinueTriggers($compareSection);\r\n\t\t\t//this function is a fix for when the prop state is saved between pages\r\n\t\t\tif ($compareRadio.prop('checked')) {\r\n\t\t\t\t$compareSection.removeClass('hide');\r\n\t\t\t\t$selectSection.addClass('hide');\r\n\t\t\t}\r\n\r\n\t\t\tif ($compareExport.length) {\r\n\t\t\t\t$('body').on('bookingWidgetInitialized', function () {\r\n\t\t\t\t\t$compareExport.attr('href', $compareExport.attr('href') + '?query=' + encodeURIComponent(self.$ervBody.find('#booking-widget').serialize()));\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tself.WebKitFix = function() {\r\n\t\t\tif ('WebkitAppearance' in document.documentElement.style) {\r\n\t\t\t\tself.$ervBody.find('form').each(function () {\r\n\t\t\t\t\tvar $form = $(this);\r\n\r\n\t\t\t\t\t$form.find('input').each(function() {\r\n\t\t\t\t\t\tvar $input = $(this);\r\n\t\t\t\t\t\tif ($input.prop('checked') === false) {\r\n\t\t\t\t\t\t\tif ($input.attr('checked') === 'checked') {\r\n\t\t\t\t\t\t\t\t$input.prop('checked', true);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\t$form.find('select option').each(function() {\r\n\t\t\t\t\t\tvar $option = $(this);\r\n\t\t\t\t\t\tif ($option.prop('selected') === false) {\r\n\t\t\t\t\t\t\tif ($option.attr('selected') === 'selected') {\r\n\t\t\t\t\t\t\t\t$option.prop('selected', true);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t};\r\n\t\t\r\n\t\tself.getProducts = function () {\r\n\r\n\t\t\tvar self = this, $editorBody = self.$ervBody.find('#main-content #product-result'), guid = self.$ervBody.find('#Guid').val();\r\n\t\t\tif (!guid.length) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tself.common.forms.activateLoadingHorizontal($editorBody.find('.page-width'));\r\n\r\n\t\t\t$.ajax({ type: 'GET', url: window.location.href.split('?')[0] + 'GetProducts', data: {guid : guid},\r\n\t\t\t\tsuccess: function (data) {\r\n\t\t\t\t\tif (data) {\r\n\t\t\t\t\t\t$editorBody.html(data);\r\n\t\t\t\t\t\tself.initEventhandlers();\r\n\t\t\t\t\t\tself.WebKitFix();\r\n\t\t\t\t\t\tself.bookingRules.initHomeInsurance();\r\n\t\t\t\t\t\tself.common.framework.initTooltips('.tooltip');\r\n\t\t\t\t\t\tself.common.translate.initNoTranslate();\r\n\t\t\t\t\t\tExpandCollapse.initExpandCollapse();\r\n\r\n\t\t\t\t\t\tself.setupSelectCompareView();\r\n\t\t\t\t\t\t$(document).trigger('products-loaded');\r\n\r\n\t\t\t\t\t\tvar $containers = $editorBody.find('.table-compare-container');\r\n\r\n\t\t\t\t\t\tif (self.responsiveCommon.isDeviceSize('small')) {\r\n\t\t\t\t\t\t\tself.responsiveCommon.responsiveTable.initSmall($containers);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tself.responsiveCommon.responsiveTable.initLarger($containers);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tcomplete: function () {\r\n\t\t\t\t\tself.common.forms.deactivateLoadingHorizontal($editorBody);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\tBookingStepOne.prototype.init = function () {\r\n\t\tvar self = this;\r\n\t\tself.getProducts();\r\n\t\tself.warlist.init();\r\n\t}\r\n\r\n\treturn BookingStepOne;\r\n});","define(['jquery', 'common', 'erv_tracking'],\r\n\tfunction($, Common, ERVTracking) {\r\n\t\tvar BookingStepThree = function() {\r\n\t\t\tvar self = this;\r\n\r\n\t\t\tself.$ervBody = $('#erv-body');\r\n\t\t\tself.common = new Common();\r\n\t\t\tself.tracking = new ERVTracking();\r\n\r\n\t\t\tself.addOnsSubmitWithTracking = function($form) {\r\n\t\t\t\tvar details = '';\r\n\t\t\t\tvar sum = 0.0;\r\n\r\n\t\t\t\tvar $inputs = $form.find('[name$=\".AddOnsIds\"]:checked');\r\n\t\t\t\tvar $options = $form.find('[name$=\".CancellationId\"] option:selected');\r\n\r\n\t\t\t\t$inputs.each(function () {\r\n\t\t\t\t\tdetails += $(this).parent().find('label [data-js=\"addonname\"]').text() + ', ';\r\n\t\t\t\t\tsum += Number($(this).attr('data-price'));\r\n\t\t\t\t});\r\n\r\n\t\t\t\t$options.each(function () {\r\n\t\t\t\t\tdetails += 'Cancellation ' + $(this).val() + ', ';\r\n\t\t\t\t\tsum += Number($(this).attr('data-price'));\r\n\t\t\t\t});\r\n\r\n\t\t\t\tself.common.forms.activateLoading($form, false)\r\n\r\n\t\t\t\tself.tracking.trackEvent('Booking', 'AddedUpgradesInPaymentStep', 'Upgraded insurance with: ' + details, sum, function () {\r\n\t\t\t\t\t$form[0].submit();\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tself.initEventhandlers = function () {\r\n\t\t\t\tself.$ervBody.find('form#bookingpaymentform').on('submit', function (e) {\r\n\t\t\t\t\tvar $form = $(this);\r\n\t\t\t\t\tif ($form.find('.addons [data-is-dirrty=\"true\"]').length == 0 || $form.attr('action').indexOf('UpdateAddons') >= 0) {\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tself.common.forms.deactivateLoading($form.find('.btn.loading'));\r\n\r\n\t\t\t\t\tself.common.framework.popup.openPopup(\r\n\t\t\t\t\t\t'#confirm-upgrades-lightbox',\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\telementParse: function (item) {\r\n\t\t\t\t\t\t\t\t$(item.src).removeClass('hide');\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\ttrue, true\r\n\t\t\t\t\t);\r\n\t\t\t\t});\r\n\r\n\t\t\t\tself.$ervBody.find('#confirm-upgrades-lightbox').find('[data-js]').on('click', function (e) {\r\n\t\t\t\t\tvar $popupButton = $(this),\r\n\t\t\t\t\t\t$form = self.$ervBody.find('form#bookingpaymentform');\r\n\r\n\t\t\t\t\tif($form.length > 0) {\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t$popupButton.data('js') === 'ok' ? $form.attr('action', $form.data('actionbase') + 'UpdateAddons') : $form.attr('action', $form.data('actionbase'));\r\n\r\n\t\t\t\t\t\tself.common.forms.activateLoading($(this), false)\r\n\r\n\t\t\t\t\t\t$form[0].submit();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tself.$ervBody.find('#paymentsaveaddons').on('click', function (e) {\r\n\t\t\t\t\te.preventDefault(); \r\n\r\n\t\t\t\t\tvar $form = $(this).closest('form');\r\n\t\t\t\t\t$form.data('validator').cancelSubmit = true;\r\n\r\n\t\t\t\t\t$form.attr('action', $form.data('actionbase') + 'UpdateAddons');\r\n\r\n\t\t\t\t\tself.addOnsSubmitWithTracking($form);\r\n\t\t\t\t});\r\n\r\n\t\t\t\tself.$ervBody.find('[data-js=\"trigger-approve-small\"]').on('click', function (e) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\tvar $link = $(this),\r\n\t\t\t\t\t\t$parent = $link.parents('.approve-small-parent');\r\n\r\n\t\t\t\t\tif ($parent.hasClass('closed')) {\r\n\t\t\t\t\t\t$parent.removeClass('closed').addClass('open');\r\n\t\t\t\t\t\t$link.text($link.data('less'));\r\n\t\t\t\t\t} else if ($parent.hasClass('open')) {\r\n\t\t\t\t\t\t$parent.removeClass('open').addClass('closed');\r\n\t\t\t\t\t\t$link.text($link.data('more'));\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tself.tracking.trackEvent('Booking', 'TermsAndConditionExpandCollapse', $link.text());\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tself.initPaymentOrder = function () {\r\n\t\t\t\tvar $mobilePayLabel = self.$ervBody.find('[for=Input_PaymentMethod_MobilePayment]');\r\n\r\n\t\t\t\tif (self.common.framework.checks.isMobileDevice() && $mobilePayLabel.length) {\r\n\t\t\t\t\t$mobilePayLabel.click();\r\n\t\t\t\t\t$mobilePayLabel.parents('li').prependTo('[data-js=\"paymentmethod\"]');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tBookingStepThree.prototype.init = function() {\r\n\t\t\tvar self = this;\r\n\t\t\tself.initEventhandlers();\r\n\t\t\tvar $apsisForm = self.$ervBody.find('#SubscriberForm');\r\n\t\t\tvar cookieName = self.common.framework.settings.CookieStrings.SentToApsis;\r\n\t\t\tif ($apsisForm.length === 1 && self.common.framework.cookies.get(cookieName) == undefined) {\r\n\r\n\t\t\t\t$apsisForm.find('#apsisSubmit').click();\r\n\t\t\t\tself.common.framework.cookies.set(cookieName, true, { expires: self.neverExpires, path: '/' });\r\n\t\t\t}\r\n\r\n\t\t\tself.$ervBody.find('form#bookingpaymentform .addons').dirrty({ preventLeaving: false });\r\n\r\n\t\t\t$('body').on('bookingjsloaded', function () {\r\n\t\t\t\tself.initPaymentOrder();\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn BookingStepThree;\r\n\t});","define(['jquery', 'postalhelper', 'common', 'erv_tracking', 'masking'], function ($, ERVPostalHelper, Common, ERVTracking, Masking) {\r\n\tvar BookingStepTwo = function () {\r\n\t\tvar self = this;\r\n\t\tself.$ervBody = $('#erv-body');\r\n\t\tself.backendDomain = self.$ervBody.find('#main-content').attr('data-js-backenddomain');\r\n\t\tself.common = new Common();\r\n\t\tself.tracking = new ERVTracking();\r\n\t\tself.postalHelper = new ERVPostalHelper();\r\n\r\n\t\tself.initEventhandlers = function () {\r\n\t\t\tvar $policyHolderId = self.$ervBody.find('#Input_PolicyHolderId');\r\n\t\t\t$policyHolderId.on('change', function () {\r\n\t\t\t\tself.$ervBody.find(\"#other-person-maker\").toggleClass('hide', $(this).val().replace('\\u2212', '\\u002D') !== '-1');\r\n\t\t\t\tself.$ervBody.find(\"#other-company-maker\").toggleClass('hide', $(this).val().replace('\\u2212', '\\u002D') !== '-2');\r\n\t\t\t\t$(\"[data-js='require-company-input']\").val($(this).val().replace('\\u2212', '\\u002D') === '-2' ? \"True\" : \"False\");\r\n\t\t\t});\r\n\r\n\t\t\tself.$ervBody.find('[data-js=\"trigger-namechange\"]').on('blur', function () {\r\n\t\t\t\tvar $trigger = $(this),\r\n\t\t\t\t\t$triggerParent = $trigger.parents('.person'),\r\n\t\t\t\t\tdisplayIndex = $triggerParent.find('.avatar .index').text(),\r\n\t\t\t\t\t$firstName = $triggerParent.find('.name input').first(),\r\n\t\t\t\t\t$lastName = $triggerParent.find('.name input').last(),\r\n\t\t\t\t\t$responsibleDropDownItem = self.$ervBody.find('#Input_PolicyHolderId option[value=' + (Number(displayIndex) - 1) + ']');\r\n\r\n\t\t\t\tif ($firstName.val() !== '' || $lastName.val() !== '')\r\n\t\t\t\t\t$responsibleDropDownItem.text($firstName.val() + ' ' + $lastName.val());\r\n\t\t\t});\r\n\r\n\t\t\tself.$ervBody.find('[data-trigger=\"copy-lastname\"]').first().on('blur', function () {\r\n\t\t\t\tvar $copyTriggerContainer = self.$ervBody.find('#copy-container'),\r\n\t\t\t\t\t$lastName = $(this);\r\n\r\n\t\t\t\tif ($lastName.val() !== '') {\r\n\t\t\t\t\t$copyTriggerContainer.removeClass('hide');\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$copyTriggerContainer.addClass('hide');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tself.$ervBody.find('[data-js=\"trigger-copy-lastname\"]').on('click', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tvar $lastName = self.$ervBody.find('[data-trigger=\"copy-lastname\"]'),\r\n\t\t\t\t\t$listWithLastnamesToFill = self.$ervBody.find('#included-persons');\r\n\r\n\t\t\t\t$listWithLastnamesToFill.find('input[name$=\".LastName\"]').each(function() {\r\n\t\t\t\t\tvar $input = $(this);\r\n\t\t\t\t\t$input.val($lastName.val());\r\n\t\t\t\t\t$input.trigger('blur');\r\n\t\t\t\t});\r\n\t\t\t});\r\n\r\n\t\t\tself.$ervBody.find('[data-js=\"yestorenewal\"]').on('change', function () {\r\n\t\t\t\tvar $checkbox = $(this), $additionalRenewal = self.$ervBody.find('.renewal [data-js=\"additionalrenewal\"]');\r\n\r\n\t\t\t\tif ($checkbox.prop('checked')) {\r\n\t\t\t\t\t$additionalRenewal.removeClass('hide');\r\n\t\t\t\t\tself.common.forms.disableFormElementsInContainer($additionalRenewal, false);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$additionalRenewal.addClass('hide');\r\n\t\t\t\t\tself.common.forms.disableFormElementsInContainer($additionalRenewal, true);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tself.$ervBody.find('[data-js=\"trigger-annual-upgrade\"]').on('click', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tvar $this = $(this),\r\n\t\t\t\t\t$form = $this.parents('form');\r\n\r\n\t\t\t\tif (!$form.valid()) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$form.attr('action', $this.data('action'));\r\n\r\n\t\t\t\tvar value = Math.round(Number($this.data('upgrade-price')));\r\n\r\n\t\t\t\tself.common.forms.activateLoading($form, false);\r\n\r\n\t\t\t\tself.tracking.trackEvent('Booking', 'Annual Upgrade', $this.data('product'), value < 0 ? 0 : value, function () {\r\n\t\t\t\t\t$form.submit();\r\n\t\t\t\t});\r\n\t\t\t});\r\n\r\n\t\t\tself.$ervBody.find('[data-js = \"maskingCPRNumber\"]').on('input', function() {\r\n\t\t\t\tMasking.MaskingCPRNumber(this);\r\n\t\t\t});\r\n\r\n\t\t\tself.$ervBody.find('[data-js = \"maskingCVRNumber\"]').on('input', function () {\r\n\t\t\t\tMasking.MaskingCVRNumber(this, self.backendDomain);\r\n\t\t\t});\r\n\t\t};\r\n\t};\r\n\r\n\tBookingStepTwo.prototype.init = function () {\r\n\t\tvar self = this;\r\n\t\tself.initEventhandlers();\r\n\t\tself.postalHelper.init();\r\n\r\n\t\t//scroll to renewal if upgrade triggered and form is valid\r\n\t\tvar $renewal = self.$ervBody.find('.box.renewal.choice');\r\n\t\tif ($renewal.length !== 0 && self.$ervBody.find('form').valid() === true && document.URL.indexOf(document.referrer) > -1) {\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\tvar scrollingElement = (document.scrollingElement || document.body);\r\n\t\t\t\tscrollingElement.scrollTop = scrollingElement.scrollHeight;\r\n\t\t\t}, 100);\r\n\t\t}\r\n\t}\r\n\r\n\treturn BookingStepTwo;\r\n});","define(['jquery', 'common', 'booking_rules', 'responsive_common','dirrty'], function ($, ERVCommon, ERVBookingRules, ERVResponsiveCommon) {\r\n\tvar BookingWidget = function () {\r\n\t\tvar self = this;\r\n\t\tself.bookingRules = new ERVBookingRules();\r\n\t\tself.$ervBody = $('#erv-body');\r\n\t\tself.$bookingWidget = self.$ervBody.find('#booking-widget');\r\n\t\tself.$bookingWidgetButton = self.$ervBody.find('#booking-widget-button');\r\n\t\tself.$ageTemplate = self.$ervBody.find('#age-template');\r\n\t\tself.$personPriceTemplate = self.$ervBody.find('#personprice-template');\r\n\t\tself.$countryTemplate = self.$ervBody.find('#country-template');\r\n\t\tself.$categoryForms = self.$bookingWidget.find('.category-forms');\r\n\t\tself.$NordicCancellationTotalInput = self.$bookingWidget.find('#AllForOneTotalDisplay');\r\n\t\tself.$fileUploadNameInput = self.$ervBody.find('[name=\"UploadedFileName\"]');\r\n\r\n\t\tself.common = new ERVCommon();\r\n\t\tself.responsiveCommon = new ERVResponsiveCommon();\r\n\t\tself.useWebComponents = !!self.$bookingWidget.data('usewebcomponents');\r\n\r\n var updatePriceAmountPerPerson = function (totalSum) {\r\n\t\t\tvar totalSumAsInt = parseInt(totalSum);\r\n\t\t\tvar $individualInputs = self.$bookingWidget.find('[data-js=\"price-per-person\"] input');\r\n\r\n\t\t\tif (totalSumAsInt >= 0 && $individualInputs.length > 0) {\r\n\t\t\t\tvar indvidualSum = Math.floor(totalSum / $individualInputs.length),\r\n\t\t\t\t\tindvidualRest = (totalSum / $individualInputs.length) % 1, rest = 0;\r\n\r\n\t\t\t\t$individualInputs.each(function () {\r\n\t\t\t\t\tvar $input = $(this);\r\n\t\t\t\t\t$input.val(indvidualSum);\r\n\t\t\t\t\t$input.removeClass('input-validation-error');\r\n\t\t\t\t\t$input.removeClass('input-validation-valid');\r\n\t\t\t\t\trest += indvidualRest;\r\n\t\t\t\t});\r\n\r\n\t\t\t\t// add the rest\r\n\t\t\t\trest = Math.round(rest);\r\n\t\t\t\tif (rest > 0) {\r\n\t\t\t\t\tvar $firstInput = $individualInputs.first();\r\n\t\t\t\t\t$firstInput.val(parseInt($firstInput.val()) + rest);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tvar updateTotalPriceAmountPerPerson = function () {\r\n\t\t\tvar $individualInputs = self.$bookingWidget.find('[data-js=\"price-per-person\"] input');\r\n\r\n\t\t\tvar totalSum = 0;\r\n\r\n\t\t\t$individualInputs.each(function () {\r\n\t\t\t\tvar val = parseInt($(this).val());\r\n\t\t\t\tif (val >= 0) {\r\n\t\t\t\t\ttotalSum += val;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tself.$NordicCancellationTotalInput.val(Math.ceil(totalSum));\r\n\t\t}\r\n\r\n\t\tvar updateAmountOfPeoplePerson = function ($trigger, addPerson, selector, templateSelector, $template, containerSelector) {\r\n\t\t\tvar $categoryForm = (typeof (containerSelector) === 'undefined' ? $trigger.parents('.insurance-fields') : $trigger.parents(containerSelector)),\r\n\t\t\t\t$amountOfPeople = $categoryForm.find('[data-peoplecount]'),\r\n\t\t\t\t$inputPersonCount = $categoryForm.find('[data-js=person-count]'),\r\n\t\t\t\t$valueContainer = $categoryForm.find(templateSelector),\r\n\t\t\t\tcurrentCount = Number($amountOfPeople.data('peoplecount'));\r\n\r\n\t\t\tif (addPerson) {\r\n\t\t\t\tif (self.bookingRules.hasReachedPeopleLimit($categoryForm, currentCount)) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tself.addPeopleFields($valueContainer, $template, selector, currentCount);\r\n\r\n\t\t\t\tcurrentCount++;\r\n\t\t\t} else if (currentCount - 1 > 0){\r\n\t\t\t\t$valueContainer.find(selector).last().remove();\r\n\t\t\t\tcurrentCount--;\r\n\t\t\t}\r\n\r\n\t\t\t$amountOfPeople.data('peoplecount', currentCount);\r\n\t\t\t$inputPersonCount.val(currentCount);\r\n\t\t\t$inputPersonCount.trigger('change');\r\n\t\t\t$amountOfPeople.text(currentCount);\r\n\r\n\t\t\tself.bookingRules.travelingPeopleNotHigherThanTotalPeople($trigger);\r\n\r\n\t\t\tif (self.bookingRules.isNisCancellation($categoryForm)) {\r\n\t\t\t\tif ($categoryForm.find('#NisCancellationAllForOne').prop('checked'))\r\n\t\t\t\t{\r\n\t\t\t\t\tupdatePriceAmountPerPerson(self.$NordicCancellationTotalInput.val());\r\n\t\t\t\t}\r\n }\r\n\t\t};\r\n\r\n\t\tself.addPeopleFields = function ($valueContainer, $template, selector, currentCount) {\r\n\t\t\tif ($valueContainer.find(selector).length <= 0) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar html = $template.html().replace(/%%index%%/g, currentCount);\r\n\t\t\thtml = html.replace(/%%indexLabel%%/g, currentCount + 1);\r\n\t\t\tvar $html = $(html);\r\n\r\n\t\t\t$html.insertAfter($valueContainer.find(selector).last());\r\n\t\t\tvar $input = $html.find('input');\r\n\r\n\t\t\tif ($input.attr('name').indexOf('Ages') > -1) {\r\n\t\t\t\t$input.rules('add',\r\n\t\t\t\t{\r\n\t\t\t\t\trequired: true,\r\n\t\t\t\t\tregex: '[0-9]*'\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif ($input.attr('name').indexOf('PersonPrices') > -1) {\r\n\t\t\t\t$input.rules('add',\r\n\t\t\t\t{\r\n\t\t\t\t\trequired: true,\r\n\t\t\t\t\tregex: '[0-9]*',\r\n\t\t\t\t\tmin: 1\r\n\t\t\t\t});\r\n\r\n\t\t\t\t$input.val('0');\r\n\t\t\t}\r\n\r\n\t\t\t$input.on('blur', function () { $(this).valid(); });\r\n\t\t};\r\n\r\n\t\tself.setupCancellationOneForAll = function() {\r\n\t\t\tif (self.$bookingWidget.find('#NisCancellationAllForOne').prop('checked')) {\r\n\t\t\t\tvar $cancellationPerPersonContainer = self.$bookingWidget.find('#cancellation-per-person-price');\r\n\t\t\t\t$cancellationPerPersonContainer.addClass('hide');\r\n\t\t\t\tupdatePriceAmountPerPerson();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tself.availableTags = [];\r\n\t\tself.initTagIt = function (selector, countries, available) {\r\n\t\t\tvar $countryContainer = $(selector).parents('.destination');\r\n\t\t\t$(selector).tagit({\r\n\t\t\t\tavailableTags: (countries != undefined ? countries : []),\r\n\t\t\t\tautocomplete: {\r\n\t\t\t\t\tdelay: 0,\r\n\t\t\t\t\tminLength: 2,\r\n\t\t\t\t\tautoFocus: true\r\n\t\t\t\t},\r\n\t\t\t\tallowSpaces: true,\r\n\t\t\t\tallowDuplicates: false,\r\n\t\t\t\tallowNewTags: false,\r\n\t\t\t\ttriggerKeys: ['enter', 'comma', 'tab'],\r\n\t\t\t\tbeforeTagAdded: function (event, ui) {\r\n\t\t\t\t\t// only op to 8 countries may be selected\r\n\t\t\t\t\tif ($.inArray(ui.tagLabel, countries) === -1 || $countryContainer.find('.tagit-choice').length >= 8) {\r\n\t\t\t\t\t\t$('.ui-autocomplete-input').val('');\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tafterTagAdded: function (event, ui) {\r\n\t\t\t\t\tvar tag = $.grep(available, function (e) { return e.label == ui.tagLabel; })[0],\r\n\t\t\t\t\t\thtml = self.$countryTemplate.html().replace(/%%value%%/g, tag.iso);\r\n\r\n\t\t\t\t\tif ($countryContainer.find('input[name=\"Countries\"][value=\"' + tag.iso + '\"]').length === 0) {\r\n\t\t\t\t\t\t$countryContainer.append($(html));\r\n\t\t\t\t\t}\r\n\t\t\t\t\tself.common.forms.ervTagit.tagitAfterAddedValidation($(event.target).parent());\r\n\r\n\t\t\t\t\t$(this)[0].dispatchEvent(self.common.forms.inputEvent);\r\n\r\n\t\t\t\t\t$(this).parent().find('.tagit-choice:last .tagit-label').attr('data-uw-ignore-s17', 'true');\r\n\r\n\t\t\t\t\tif (typeof (self.common.framework.cookies.get(window.ERV.ConfigurationSettings.CookieStrings.GTranslate)) !== 'undefined') {\r\n\t\t\t\t\t\t$('body').find('.tagit .tagit-choice').addClass('notranslate');\r\n\t\t\t\t\t}\r\n\t\t\t\t},\r\n\t\t\t\tafterTagRemoved: function (event, ui) {\r\n\t\t\t\t\tvar country = $.grep(available, function (e) { return e.label === ui.tagLabel;})[0];\r\n\r\n\t\t\t\t\tif (typeof (country) != 'undefined') {\r\n\t\t\t\t\t\t$countryContainer.find(\"input[value='\" + country.iso + \"']\").remove();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$countryContainer.find(\"input[data-taglabel='\" + ui.tagLabel + \"']\").remove();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tself.common.forms.ervTagit.tagitAfterRemovedValidation($(event.target).parent());\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tself.changeManuallyFileView = function ($typeInput) {\r\n\t\t\tvar $parentInsuranceFields = $typeInput.parents('.insurance-fields'),\r\n\t\t\t\t$currentManuallyViews = $parentInsuranceFields.find('[data-view=\"manually\"]'),\r\n\t\t\t\t$currentFileUploadViews = $parentInsuranceFields.find('[data-view=\"fileupload\"]');\r\n\r\n\t\t\tif ($typeInput.val() === 'manually') {\r\n\t\t\t\t$currentManuallyViews.removeClass('hide');\r\n\t\t\t\t$currentFileUploadViews.addClass('hide');\r\n\r\n\t\t\t\tself.resetFileUpload(true);\r\n\t\t\t\tself.setupRulesForManually($parentInsuranceFields);\r\n\t\t\t} else {\r\n\t\t\t\t$currentManuallyViews.addClass('hide');\r\n\t\t\t\t$currentFileUploadViews.removeClass('hide');\r\n\r\n\t\t\t\tself.setupRulesForFileUpload($parentInsuranceFields);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tself.initEventhandlers = function () {\r\n\t\t\t$(document).on('ervBookingWidgetPeopleCount', function(e) {\r\n\t\t\t\tvar selector = '.is-priceperson',\r\n\t\t\t\t\ttemplateSelector = '[data-js=\"price-per-person\"]',\r\n\t\t\t\t\t$categoryForm = e.currentCategoryForm,\r\n\t\t\t\t\t$valueContainer = $categoryForm.find(templateSelector);\r\n\r\n\t\t\t\tfor (var i = 1; i < e.peoplecount; i++) {\r\n\t\t\t\t\tself.addPeopleFields($valueContainer, self.$personPriceTemplate, selector, i);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tself.$categoryForms.on('change', '[name^=\"uploadtype\"]', function() {\r\n\t\t\t\tvar $typeInput = $(this);\r\n\r\n\t\t\t\tself.changeManuallyFileView($typeInput);\r\n\t\t\t});\r\n\r\n\t\t\tvar $fileUploads = self.$categoryForms.find('.file-upload');\r\n\t\t\tif ($fileUploads.length) {\r\n\t\t\t\trequire(['fileuploadhelper'], function (FileUploadHelper) {\r\n\t\t\t\t\t$fileUploads.each(function() {\r\n\t\t\t\t\t\tvar fileUploadHelper = new FileUploadHelper();\r\n\t\t\t\t\t\tfileUploadHelper.initCheckFile($(this));\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tself.initAmountOfPeopleControl('.add-person', true);\r\n\t\t\tself.initAmountOfPeopleControl('.remove-person', false);\r\n\r\n\t\t\tself.$categoryForms.on('blur', '[data-js=\"age-of-people\"] input', function() {\r\n\t\t\t\tself.bookingRules.isFamily($(this).parents('.insurance-fields'));\r\n\t\t\t});\r\n\r\n\t\t\tself.$categoryForms.on('keyup', '#TechnicalEquipmentPrice', function () {\r\n\t\t\t\tself.bookingRules.isExtendedCarTechnicalEquipment($(this).parents('.insurance-fields'));\r\n\t\t\t});\r\n\r\n\t\t\tself.$bookingWidget.find('#Input_DailyTravelPersonCount').on('blur', function () {\r\n\t\t\t\tself.bookingRules.travelingPeopleNotHigherThanTotalPeople($(this));\r\n\t\t\t});\r\n\r\n var eventName = self.useWebComponents ? 'ergoChange' : 'change';\r\n\r\n self.$bookingWidget.find('#productcategories').on(eventName, function () {\r\n\t\t\t\tself.updateCategoryForm($(this), true);\r\n\t\t\t});\r\n\r\n\t\t\tself.$bookingWidget.find('[for=\"NisCancellationAllForOne\"]').on('click', function () {\r\n\t\t\t\tvar $categoryForm = $(this).parents('.insurance-fields'),\r\n\t\t\t\t\tisAllForOne = !$categoryForm.find('#NisCancellationAllForOne').prop('checked');\r\n\r\n\t\t\t\tself.bookingRules.isNisCancellation($categoryForm, isAllForOne);\r\n\r\n if (isAllForOne) {\r\n\t\t\t\t\tupdateTotalPriceAmountPerPerson();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tupdatePriceAmountPerPerson(self.$NordicCancellationTotalInput.val());\r\n\t\t\t});\r\n\t\t\t\r\n\t\t\tself.$bookingWidget.find('#Input_HasDailyTravel').on('change', function () {\r\n\t\t\t\tvar $categoryForm = $(this).parents('.insurance-fields');\r\n\t\t\t\tself.bookingRules.hasDailyTravel($categoryForm);\r\n\t\t\t});\r\n\t\t\t\r\n\t\t\tself.$NordicCancellationTotalInput.on('blur', function () {\r\n\t\t\t\tupdatePriceAmountPerPerson($(this).val());\r\n\t\t\t});\r\n\r\n\t\t\tself.$NordicCancellationTotalInput.on('keyup', function () {\r\n\t\t\t\tupdatePriceAmountPerPerson($(this).val());\r\n\t\t\t});\r\n\r\n\t\t\tself.$bookingWidget.on('change', '[data-js=\"addon-trigger\"]',function () {\r\n\t\t\t\tvar $trigger = $(this);\r\n\r\n\t\t\t\tif($trigger.prop('checked')) {\r\n\t\t\t\t\t$trigger.val($trigger.data('addonid'));\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$trigger.val('');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tself.$bookingWidgetButton.on('click', function (e) {\r\n\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\te.stopPropagation();\r\n\r\n\t\t\t\tself.setupCancellationOneForAll();\r\n\r\n\t\t\t\tvar $currentForm = self.$categoryForms.find('.insurance-fields:not(.hide)');\r\n\r\n\t\t\t\tself.common.forms.clearErrors(self.$bookingWidget);\r\n\r\n\t\t\t\t//bookingproductselectpage validation fix\r\n\t\t\t\tvar $fakeFileUpload = $currentForm.find('[data-js=\"trigger-select-file\"]');\r\n\t\t\t\tif (self.$bookingWidget.find('input[type=\"text\"][data-js=\"trigger-select-file\"]:visible').length && self.$fileUploadNameInput.val() === '') {\r\n\t\t\t\t\t$fakeFileUpload.addClass('input-validation-error');\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (!self.$bookingWidget.valid()) {\r\n\t\t\t\t\tself.$ervBody.find('.tagit-hidden-field[data-val=\"true\"]').each(function () {\r\n\t\t\t\t\t\tif (!$(this).valid()) {\r\n\t\t\t\t\t\t\t$(this).parent().find('.tagit.ui-widget').addClass('input-validation-error');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tif (!self.$fileUploadNameInput.valid()) {\r\n\t\t\t\t\t\t$fakeFileUpload.addClass('input-validation-error');\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar isWide = self.$bookingWidget.hasClass('wide'),\r\n\t\t\t\t\t$bookingWidgetContent = self.$bookingWidget.find('.booking-content'),\r\n\t\t\t\t\t$resultSection = self.$ervBody.find('#main-content #product-result .page-width'),\r\n\t\t\t\t\thasResult = $resultSection.length;\r\n\r\n\t\t\t\tif (isWide) {\r\n\t\t\t\t\tself.common.forms.activateLoading(self.$bookingWidget, false);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tself.common.forms.activateLoading($bookingWidgetContent, false);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (hasResult) {\r\n\t\t\t\t\tself.common.forms.activateLoadingHorizontal($resultSection.first());\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (self.$ervBody.find('.traveldays').length) {\r\n\t\t\t\t\tself.bookingRules.businessTravelDaysRule($currentForm);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//to handle enter submit\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\tif (self.$bookingWidget.find('.input-validation-error:visible').length === 0) {\r\n\t\t\t\t\t\tif ($currentForm.data('action') != undefined) {\r\n\t\t\t\t\t\t\t$(this).attr('action', $currentForm.data('action'));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tself.$bookingWidget.submit();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tif (isWide) {\r\n\t\t\t\t\t\t\tself.common.forms.deactivateLoading(self.$bookingWidget);\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tself.common.forms.deactivateLoading($bookingWidgetContent);\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (hasResult) {\r\n\t\t\t\t\t\t\tself.common.forms.deactivateLoadingHorizontal($resultSection);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 200);\r\n\t\t\t});\r\n\r\n\t\t\tself.fileUploadEventHandlers();\r\n\t\t}\r\n\r\n\t\tself.initAmountOfPeopleControl = function (selector, addPerson) {\r\n\t\t\tself.$categoryForms.on('click', selector, function () {\r\n\t\t\t\tvar $trigger = $(this);\r\n\t\t\t\tif ($trigger.parents('.insurance-fields').data('js') === 'niscancellation') {\r\n\t\t\t\t\tupdateAmountOfPeoplePerson($trigger, addPerson, '.is-priceperson', '[data-js=\"price-per-person\"]', self.$personPriceTemplate);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tupdateAmountOfPeoplePerson($trigger, addPerson, '.is-age', '[data-js=\"age-of-people\"]', self.$ageTemplate);\r\n\t\t\t\tself.bookingRules.isFamily($trigger.parents('.insurance-fields'));\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tself.initAmountOfPeopleControlSimple = function (selector, addPerson, $container) {\r\n\t\t\t$container.on('click', selector, function () {\r\n\t\t\t\tvar $trigger = $(this);\r\n\t\t\t\tupdateAmountOfPeoplePerson($trigger, addPerson, '.is-age', '[data-js=\"age-of-people\"]', self.$ageTemplate, '#' + $container.attr('id'));\r\n\t\t\t\t$(document).trigger('change-people');\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tself.ervPersonFileCheckedReset = function () {\r\n\t\t\tvar $amountOfPeopleRemove = self.$bookingWidget.find('.remove-person');\r\n\r\n\t\t\t$amountOfPeopleRemove.each(function () {\r\n\t\t\t\tvar $removeInput = $(this);\r\n\r\n\t\t\t\twhile ($removeInput.parent().find('[data-js=\"person-count\"]').val() > 1) {\r\n\t\t\t\t\t$removeInput.trigger('click');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tself.$bookingWidget.find('.is-age input, .is-priceperson input').val('');\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tself.fileUploadEventHandlers = function () {\r\n\r\n\t\t\t$('body').on('ervPersonFileCheckedAndApproved', function (e) {\r\n\r\n\t\t\t\tif (e.persons != undefined && e.persons.length > 0) {\r\n\t\t\t\t\tvar $currentCategoryForm = $(e.currentCategoryForm),\r\n\t\t\t\t\t\t$amountOfPeopleAdd = $currentCategoryForm.find('.is-amount-of-people .add-person'),\r\n\t\t\t\t\t\t$ageInputsContainer = $currentCategoryForm.find('[data-js=\"age-of-people\"]'),\r\n\t\t\t\t\t\t$amountInputsContainer = $currentCategoryForm.find('[data-js=\"price-per-person\"]'),\r\n\t\t\t\t\t\thasAgeInputs = $ageInputsContainer.length,\r\n\t\t\t\t\t\thasAmountInputs = $amountInputsContainer.length;\r\n\r\n\t\t\t\t\tself.ervPersonFileCheckedReset();\r\n\r\n\t\t\t\t\tfor (var i = 0; i < e.persons.length; i++) {\r\n\t\t\t\t\t\tif (i > 0) {\r\n\t\t\t\t\t\t\t$amountOfPeopleAdd.trigger('click');\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar $input;\r\n\t\t\t\t\t\tif (hasAgeInputs && e.persons[i].Age != null) {\r\n\t\t\t\t\t\t\t$input = $currentCategoryForm.find('input[name=\"Ages[' + i + ']\"]');\r\n\t\t\t\t\t\t\t$input.val(e.persons[i].Age);\r\n\t\t\t\t\t\t\t$input.blur();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tif (hasAmountInputs && e.persons[i].CoverSum != null) {\r\n\t\t\t\t\t\t\t$input = $currentCategoryForm.find('input[name=\"PersonPrices[' + i + ']\"]');\r\n\t\t\t\t\t\t\t$input.val(e.persons[i].CoverSum);\r\n\t\t\t\t\t\t\t$input.blur();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t$('body').on('ervPersonFileCheckedRemoved', function () {\r\n\t\t\t\tself.resetFileUpload(true);\r\n });\r\n\t\t}\r\n\r\n\t\tself.clearFileUpload = function () {\r\n\t\t\tself.$fileUploadNameInput.removeAttr('data-val');\r\n\t\t\tself.$fileUploadNameInput.val(null);\r\n\t\t\tself.$fileUploadNameInput.rules('remove');\r\n\t\t\tself.common.forms.clearErrors(self.$bookingWidget);\r\n\t\t}\r\n\r\n\t\tself.resetFileUpload = function (forced) {\r\n\t\t\tif (self.$fileUploadNameInput.val() != '') {\r\n\t\t\t\tif (forced === true) {\r\n\t\t\t\t\tself.ervPersonFileCheckedReset();\r\n\t\t\t\t}\r\n\t\t\t\tself.$bookingWidget.find('.uploaded-files li .delete-file').trigger('click');\r\n\t\t\t}\r\n\t\t\tself.clearFileUpload();\r\n\t\t}\r\n\r\n\t\tself.setupRulesForFileUpload = function ($form) {\r\n\t\t\tself.bookingRules.isFamily($form);\r\n\t\t\tself.bookingRules.isNisCancellation($form);\r\n\r\n\t\t\tself.$fileUploadNameInput.attr('data-val', true);\r\n\r\n\t\t\t$form.find('[name^=\"Ages[\"], [name^=\"PersonPrices[\"]').rules('remove');\r\n\r\n\t\t\tself.$fileUploadNameInput.rules('add',\r\n\t\t\t{\r\n\t\t\t\trequired: true\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tself.setupRulesForManually = function ($form) {\r\n\t\t\tself.bookingRules.isFamily($form);\r\n\t\t\tself.bookingRules.isNisCancellation($form);\r\n\r\n const $agesFields = $form.find('[name^=\"Ages[\"]');\r\n if ($agesFields.length) {\r\n $agesFields.rules('add',\r\n {\r\n required: true,\r\n regex: '[0-9]*'\r\n });\r\n }\r\n\r\n\r\n const $personPricesFields = $form.find('[name^=\"PersonPrices[\"]');\r\n\r\n if ($personPricesFields.length) {\r\n $personPricesFields.rules('add',\r\n {\r\n required: true,\r\n regex: '[0-9]*',\r\n min: 1\r\n });\r\n }\r\n\t\t}\r\n\r\n\t\tself.updateCategoryForm = function ($select, removeValidation) {\r\n var selectedOptionSelector = self.useWebComponents ? 'ergo-select-option:selected' : 'option:selected';\r\n\t\t\tvar selected = $select.find(selectedOptionSelector),\r\n\t\t\t\tdisplayGroup = selected.data('displaygroups'),\r\n\t\t\t\tbuttonname = selected.data('buttonname'),\r\n\t\t\t\thasFileUpload = selected.data('hasfileupload'),\r\n\t\t\t\thidePeople = selected.data('hidepeople'),\r\n\t\t\t\tmaxItems = selected.data('fileuploadmaxitems'),\r\n\t\t\t\tcategoryId = Number(selected.val());\r\n self.$categoryForms.find('.insurance-fields').addClass('hide');\r\n\t\t\tself.$bookingWidgetButton.text(buttonname);\r\n\t\t\tself.$bookingWidgetButton.attr('data-cleantext',buttonname);\r\n\r\n\t\t\tself.common.forms.disableFormElementsInContainer(self.$categoryForms, true, removeValidation);\r\n\r\n\t\t\tif (removeValidation) {\r\n\t\t\t\tself.$ervBody.find('.validation-summary-errors').remove();\r\n\t\t\t\tself.$ervBody.find('.input-validation-error').removeClass('.input-validation-error');\r\n\t\t\t\tself.$ervBody.find('.custom-validation-message').addClass('hide');\r\n\t\t\t}\r\n\r\n\t\t\tif(!displayGroup) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar $form = self.$categoryForms.find('[data-js=\"' + displayGroup + '\"]');\r\n $form.removeClass('hide');\r\n\r\n\t\t\tself.common.forms.disableFormElementsInContainer($form, false, removeValidation);\r\n\r\n\t\t\tself.bookingRules.isNisCancellation($form);\r\n\t\t\tself.bookingRules.isFamily($form);\r\n\t\t\tself.bookingRules.hasDailyTravel($form);\r\n\t\t\tself.bookingRules.isExtendedCarTechnicalEquipment($form);\r\n\t\t\tself.setupAddonElements($form);\r\n\r\n\t\t\tif (typeof (selected.data('product')) != 'undefined') {\r\n\t\t\t\tself.$bookingWidget.find('#ProductId').val(selected.data('product'));\r\n\t\t\t}\r\n\r\n\t\t\tvar checkIfFieldsEmpty = function () {\r\n\t\t\t\tvar foundOneEmpty = false;\r\n\r\n\t\t\t\t$form.find('input[type=text], input[data-inputtype=text]').each(function () {\r\n\t\t\t\t\tvar $input = $(this);\r\n\t\t\t\t\tif ($input.attr('id') != undefined && $input.val() === '') {\r\n\t\t\t\t\t\tfoundOneEmpty = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn foundOneEmpty;\r\n\t\t\t}\r\n\r\n\t\t\tif (self.$ervBody.find('.bookingselectproductpage').length && (self.$bookingWidget.find('.input-validation-error').length > 0 || checkIfFieldsEmpty())) {\r\n\t\t\t\tself.$bookingWidget.addClass('is-expanded');\r\n\t\t\t}\r\n\r\n\t\t\tif (self.$bookingWidget.find('.tagit-hidden-field').hasClass('input-validation-error')) {\r\n\t\t\t\tself.$bookingWidget.find('.tagit-hidden-field').parent().find('.tagit.ui-widget').addClass('input-validation-error');\r\n\t\t\t}\r\n\r\n\t\t\t// Toggle data action\r\n\t\t\tself.$bookingWidget.attr('action', (typeof ($form.data('action')) !== 'undefined' && $form.data('action') !== '' ? $form.data('action') : self.$bookingWidget.data('base-action')));\r\n\r\n var $manuallyFileContainer = $form.find('.manually-file-container');\r\n\r\n\t\t\tif ($manuallyFileContainer.length === 0) {\r\n\t\t\t\t$form.find('[id$=\"of-people\"]').removeClass('hide');\r\n\t\t\t\t$form.find('[id$=\"person-price\"]').removeClass('hide');\r\n\t\t\t\tself.bookingRules.isNisCancellation($form);\r\n\r\n\t\t\t\tself.resetFileUpload(true);\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tvar $currentManuallyMoveViews = $form.find('[data-move=\"manually\"]');\r\n\t\t\tif ($manuallyFileContainer.length === 1 && hasFileUpload) {\r\n\t\t\t\tself.setupFileUploadIfExists(categoryId, self, $form, $currentManuallyMoveViews, $manuallyFileContainer, maxItems, hidePeople);\r\n\t\t\t} else {\r\n\t\t\t\tif (self.$bookingWidget.hasClass('wide')) {\r\n\t\t\t\t\t$manuallyFileContainer.after($currentManuallyMoveViews);\r\n\t\t\t\t}\r\n\t\t\t\tself.resetFileUpload();\r\n\t\t\t\t$currentManuallyMoveViews.removeClass('hide');\r\n\t\t\t\t$manuallyFileContainer.addClass('hide');\r\n\t\t\t\tself.setupRulesForManually($form);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tself.setupAddonElements = function ($form) {\r\n\t\t\tvar $addonFormElements = $form.find('[data-js=\"isaddon\"]');\r\n\r\n\t\t\t$addonFormElements.each(function () {\r\n\t\t\t\tvar $addonFormElement = $(this),\r\n\t\t\t\t\t$addonInputContainer = $addonFormElement.find('[data-js=\"addon-container\"]'),\r\n\t\t\t\t\t$addonTrigger = $addonFormElement.find('[data-js=\"addon-trigger\"]');\r\n\r\n\t\t\t\tself.common.forms.disableFormElementsInContainer($addonInputContainer, !$addonTrigger.prop('checked'));\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tself.initMainContentFix = function() {\r\n\t\t\tif (self.$bookingWidget.parents('.editor-body').length > 0) {\r\n\t\t\t\tvar $form = self.$bookingWidget.find('[data-js=\"travelinsuranceannual\"]');\r\n\r\n\t\t\t\t$form.find('.destination').addClass('inline-block width-50');\r\n\t\t\t\t$form.find('#period').addClass('inline-block width-50');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tself.setupFileUploadIfExists = function(categoryId, self, $form, $currentManuallyMoveViews, $manuallyFileContainer, maxItems, hidePeople) {\r\n\t\t\tif (categoryId != self.$bookingWidget.attr('data-previouscategoryid')) {\r\n\t\t\t\tself.resetFileUpload();\r\n\t\t\t\tself.$bookingWidget.attr('data-previouscategoryid', categoryId);\r\n\t\t\t}\r\n\t\t\r\n\t\t\tvar $maxItemsLabel = $form.find('[data-js=\"maxitems\"]');\r\n\t\t\tif (self.$bookingWidget.hasClass('wide')) {\r\n\t\t\t\t$currentManuallyMoveViews.appendTo($manuallyFileContainer);\r\n\t\t\t}\r\n\t\t\r\n\t\t\tif (maxItems === 0) {\r\n\t\t\t\t$maxItemsLabel.parent().addClass('hide');\r\n\t\t\t} else {\r\n\t\t\t\t$maxItemsLabel.parent().removeClass('hide');\r\n\t\t\t\t$maxItemsLabel.text(maxItems);\r\n\t\t\t}\r\n\t\t\r\n\t\t\t$manuallyFileContainer.find('.manually-file-control').toggleClass('hide', hidePeople);\r\n\t\t\tif (hidePeople) {\r\n\t\t\t\tvar $radioUpload = $form.find('[name ^= \"uploadtype\"][value=\"file\"]');\r\n\t\t\t\t$manuallyFileContainer.find('[for=\"' + $radioUpload.attr('id') + '\"]').click();\r\n\t\t\t}\r\n\t\t\r\n\t\t\tvar $label = $manuallyFileContainer.find('label.file-upload');\r\n\t\t\tif ($label.length && $label.text().trim().length) {\r\n\t\t\t\t$manuallyFileContainer.children('label:not(.file-upload)').toggleClass('hide', hidePeople);\r\n\t\t\t\t$label.toggleClass('hide', !hidePeople);\r\n\t\t\t}\r\n\t\t\r\n\t\t\t$manuallyFileContainer.removeClass('hide');\r\n\t\t\tvar $fileuploadChecked = $form.find('[name ^= \"uploadtype\"]:checked');\r\n\t\t\tself.changeManuallyFileView($fileuploadChecked);\r\n\t\t}\r\n\t};\r\n\r\n\tBookingWidget.prototype.init = function () {\r\n\t\tvar self = this;\r\n\t\tself.initEventhandlers();\r\n\r\n\t\tvar available = [];\r\n\t\tvar countries = self.$bookingWidget.find('#countries-destinations').find('li').map(function () {\r\n\t\t\tavailable.push({ label: $(this).text(), iso: $(this).data('value') });\r\n\t\t\treturn $(this).text();\r\n\t\t}).get();\r\n\r\n\t\tself.initTagIt('.countryLabels', countries, available);\r\n\t\tself.initTagIt('.countryLabelsYearly', countries);\r\n\r\n\t\tself.updateCategoryForm(self.$bookingWidget.find('#productcategories'), false);\r\n\r\n\t\tself.initMainContentFix();\r\n\r\n\t\t$('body').trigger('bookingWidgetInitialized');\r\n\r\n\t\tif (self.$ervBody.find('.bookingselectproductpage').length > 0 && self.$ervBody.find('form').length > 1) {\r\n\t\t\tself.$bookingWidget.dirrty({ preventLeaving: false }).on('dirty', function () {\r\n\t\t\t\tself.$bookingWidgetButton.text(self.$bookingWidgetButton.data('dirtytext'));\r\n\t\t\t}).on('clean', function () {\r\n\t\t\t\tself.$bookingWidgetButton.text(self.$bookingWidgetButton.data('cleantext'));\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\treturn BookingWidget;\r\n});","define(['jquery', 'erv_tracking'], function ($, Tracking) {\r\n\r\n\tvar ERVCampaign = function () {\r\n\t\tvar self = this;\r\n\t\tself.$ervBody = $('#erv-body');\r\n\t\tself.tracking = new Tracking();\r\n\t};\r\n\r\n\tERVCampaign.prototype.init = function () {\r\n\t\tvar self = this;\r\n\r\n\t\tself.$ervBody.find('.campaign select').on('change', function () {\r\n\r\n\t\t\tif ($(this).val() && $(this).val().replace('\\u2212', '\\u002D') !== -1) {\r\n\t\t\t\twindow.location = $(this).val();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\treturn ERVCampaign;\r\n});","define(['jquery', 'forms'], function ($, Forms) {\r\n\tvar InsuranceCertificate = function() {\r\n\t\tvar self = this;\r\n\r\n\t\tself.forms = new Forms();\r\n\t\tself.$ervBody = $('#erv-body');\r\n\t\tself.$form = $('#insurance-certificate');\r\n\t\tself.$formInputContainer = $('#insurance-certificate-input-container');\r\n\t\tself.$policyNumberInput = $('#certificate-policy-number-search-input');\r\n\r\n self.deleteIncluded = function ($person) {\r\n\t\t\tvar deletedIndex = $person.data('id');\r\n\t\t\t$person.remove();\r\n\t\t\tself.refreshIncluded(deletedIndex);\r\n\t\t\treturn deletedIndex;\r\n\t\t};\r\n\t\t\r\n\t\tself.refreshIncluded = function (deletedIndex) {\r\n\t\t\tvar $allAdded = self.$includedList.find('.person.added');\r\n\r\n\t\t\tvar $allNext = $allAdded.filter(function () {\r\n\t\t\t\treturn ($(this).data('id') > deletedIndex); \r\n\t\t\t});\r\n\r\n\t\t\t$allNext.each(function () {\r\n\t\t\t\tvar $person = $(this);\r\n\t\t\t\tvar index = $person.data('id'),\r\n\t\t\t\t\tnewIndex = (index - 1);\r\n\r\n\t\t\t\t$person.find('.index').text(newIndex + 1);\r\n\t\t\t\t$person.data('id', newIndex);\r\n\r\n\t\t\t\t$person.find('input[type=text], input[data-inputtype=text]').each(function () {\r\n\t\t\t\t\tvar $input = $(this);\r\n\t\t\t\t\t$input.attr('name', $input.attr('name').replace(index, newIndex));\r\n\t\t\t\t\t$input.attr('id', $input.attr('id').replace(index, newIndex));\r\n\t\t\t\t});\r\n\r\n\t\t\t\t$person.find('label').each(function () {\r\n\t\t\t\t\tvar $label = $(this);\r\n\t\t\t\t\t$label.attr('for', $label.attr('for').replace(index, newIndex));\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t};\r\n\t\t\r\n\t\tself.addIncluded = function () {\r\n\t\t\tvar currentIndex = self.$includedList.find('.person').length,\r\n\t\t\t\thtml = self.$includePersonTemplate.html().replace(/{{index}}/g, currentIndex);\r\n\r\n\t\t\tvar $html = $(html);\r\n\t\t\t$html.find('.index').text(currentIndex + 1);\r\n\r\n\t\t\t$html.insertAfter($(self.$includedList.find('.person').last()));\r\n\r\n\t\t\tvar $inputs = $html.find('input');\r\n\r\n\t\t\t$inputs.each(function () {\r\n\r\n\t\t\t\t$(this).rules('add',\r\n\t\t\t\t{\r\n\t\t\t\t\trequired: true,\r\n\t\t\t\t\tmessages: {\r\n\t\t\t\t\t\trequired: $(this).data('val-required')\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif ($(this).attr('id').indexOf('Birthday') > 0) {\r\n\t\t\t\t\t$(this).rules('add',\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tregex: $(this).data('val-regex-pattern'),\r\n\t\t\t\t\t\tmessages: {\r\n\t\t\t\t\t\t\tregex: $(this).data('val-regex')\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$(this).on('blur', function () {\r\n\t\t\t\t\t$(this).valid();\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tself.setupEventHandlingAfterSearch = function () {\r\n self.$policyNumberInput.change(function() {\r\n self.$formInputContainer.html('');\r\n });\r\n\t\t\tself.$includePersonTemplate = self.$form.find(\"#include-person-template\");\r\n\t\t\tself.$includedList = self.$form.find('#included-people');\r\n\r\n\t\t\tself.$form.find('#add-included').on('click', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tself.addIncluded();\r\n\t\t\t});\r\n\r\n\t\t\tself.$includedList.on('click', '.person.added .remove-included', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tself.deleteIncluded($(this).parents('.person.added'));\r\n\t\t\t});\r\n\r\n\t\t\tself.$form.find('#output-list input').on('change', function () {\r\n\t\t\t\tvar $radio = $(this),\r\n\t\t\t\t\t$additionalAddress = self.$form.find('#insurance-certificate-mail-section');\r\n\r\n\t\t\t\tvar $inputs = $additionalAddress.find('input[data-val=\"true\"]');\r\n\r\n\r\n\t\t\t\tif ($radio.attr('id') === \"Input_InsuranceCertificateType_Mail\") {\r\n\t\t\t\t\t$additionalAddress.removeClass('hide');\r\n\r\n\t\t\t\t\t$inputs.each(function () {\r\n\t\t\t\t\t\tif ($(this).data('val-requiredif') != 'undefined') {\r\n\t\t\t\t\t\t\t$(this).rules('add',\r\n\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\trequiredif: {\r\n\t\t\t\t\t\t\t\t\tdependentproperty: $(this).data('val-requiredif-dependentproperty'),\r\n\t\t\t\t\t\t\t\t\ttargetvalue: $(this).data('val-requiredif-targetvalue')\r\n\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\tmessages: {\r\n\t\t\t\t\t\t\t\t\trequiredif: ''\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$additionalAddress.addClass('hide');\r\n\t\t\t\t\t$inputs.each(function () {\r\n\t\t\t\t\t\t$(this).rules('remove', 'requiredif');\r\n\t\t\t\t\t})\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$inputs.removeClass('valid');\r\n\t\t\t\t$inputs.removeClass('input-validation-error');\r\n\t\t\t\t$inputs.removeClass('input-validation-valid');\r\n\t\t\t});\r\n\r\n\t\t\tself.$form.find('#Input_CompanyName').keyup(function () {\r\n\t\t\t\tself.$form.find('#Input_OtherRecipient').val($(this).val());\r\n\t\t\t});\r\n\r\n\t\t\tself.forms.initPickers();\r\n\r\n\t\t\tself.$form.find('#insurance-certificate-order').on('click', function (e) {\r\n\t\t\t\tif (!$(this).parents('form').valid()) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tself.forms.activateLoading($(this).parents('form'), false);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tself.setupEventHandling = function () {\r\n self.$form.find('#trigger-get-insurance-certificate').on('click', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\te.stopPropagation();\r\n\r\n\t\t\t\tself.$form.find('.validation-summary-errors').remove();\r\n\r\n\t\t\t\tself.$formInputContainer.html('');\r\n\r\n\t\t\t\tif (!self.$form.valid()) {\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tself.forms.activateLoading(self.$form, false);\r\n\r\n\t\t\t\tvar certificateType = self.$form.find('#Input_CertificateType :selected').val();\r\n\t\t\t\t$.ajax({\r\n\t\t\t\t\turl: self.$form.data('form-url') + '?policyNumber=' + self.$form.find('input[name=\"Input.PolicyNumber\"]').val() + '&certificateType=' + certificateType\r\n\t\t\t\t}).success(function (html) {\r\n\t\t\t\t\tif (html && (certificateType == 'NisCertificateSE' || certificateType == 'VisitorCertificate')) {\r\n\t\t\t\t\t\tvar newWin = window.open('', 'Print-Window');\r\n\t\t\t\t\t\tnewWin.document.open();\r\n\t\t\t\t\t\tnewWin.document.write('' + html + '');\r\n\t\t\t\t\t\tnewWin.document.close();\r\n\t\t\t\t\t\tsetTimeout(function () { newWin.close(); }, 10);\r\n\t\t\t\t\t\treturn;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tself.$formInputContainer.html(html);\r\n\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\tvar $inputs = self.$formInputContainer.find('#required-fields input[type=\"text\"][data-val=\"true\"], #required-fields input[data-inputtype=\"text\"][data-val=\"true\"]');\r\n\r\n\t\t\t\t\t\t\t$inputs.each(function () {\r\n\t\t\t\t\t\t\t\tvar $input = $(this);\r\n\r\n\t\t\t\t\t\t\t\tif ($input.data('val-required') != 'undefined') {\r\n\t\t\t\t\t\t\t\t\t$input.rules('add',\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\trequired: true,\r\n\t\t\t\t\t\t\t\t\t\tmessages: {\r\n\t\t\t\t\t\t\t\t\t\t\trequired: $input.data('val-required')\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\tif ($input.attr('id').indexOf('Birthday') > 0 || $input.attr('id').indexOf('Email') > 0) {\r\n\t\t\t\t\t\t\t\t\t$input.rules('add',\r\n\t\t\t\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\t\t\t\tregex: $input.data('val-regex-pattern'),\r\n\t\t\t\t\t\t\t\t\t\tmessages: {\r\n\t\t\t\t\t\t\t\t\t\t\tregex: $input.data('val-regex')\r\n\t\t\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t\t$input.on('blur', function () {\r\n\t\t\t\t\t\t\t\t\t$(this).valid();\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\tself.$formInputContainer.find('.is-date input').each(function () {\r\n\t\t\t\t\t\t\t\t$(this).rules('remove', 'date');\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\tself.setupEventHandlingAfterSearch();\r\n\t\t\t\t\t}, 200);\r\n\t\t\t\t})\r\n\t\t\t\t.always(function () {\r\n\t\t\t\t\tself.forms.deactivateLoading(self.$form);\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn false;\r\n\t\t\t});\r\n\r\n\t\t\tself.$form.on('keydown', function (e) {\r\n\t\t\t\tif ($(e.target).is('#Input_PolicyNumber') && e.keyCode === 13) {\r\n\t\t\t\t\te.preventDefault(); //stop event\r\n\t\t\t\t\t$(e.target).parent().find('.btn').click();\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t});\r\n\r\n\t\t\tself.setupEventHandlingAfterSearch();\r\n\t\t};\r\n\t};\r\n\r\n\tInsuranceCertificate.prototype.init = function () {\r\n\t\tvar self = this;\r\n\r\n\t\tself.setupEventHandling();\r\n\t}\r\n\r\n\treturn InsuranceCertificate;\r\n});","define(['jquery', 'ajax_helper', 'forms'], function ($, AjaxHelper, Forms) {\r\n\r\n\tvar ClaimsWidget = function () {\r\n\t\tvar self = this;\r\n\t\tself.$ervBody = $('#erv-body');\r\n\t\tself.$widget = self.$ervBody.find('[data-css=\"claims-widget\"]');\r\n\t\tself.ajaxHelper = new AjaxHelper();\r\n\t\tself.forms = new Forms();\r\n\t\tself.$target = $(self.$widget.data('target'));\r\n\r\n\t\tself.initEventhandlers = function () {\r\n\t\t\tself.$widget.on('change', '[data-js=\"toggler-filesorreport\"] input[type=\"radio\"]', function () {\r\n\t\t\t\tvar $radio = $(this);\r\n\r\n\t\t\t\tself.$target.html('');\r\n\r\n\t\t\t\tif ($radio.prop('checked')) {\r\n\t\t\t\t\tself.$widget.attr('action', $radio.val());\r\n\r\n\t\t\t\t\tvar $languagePicker = self.$widget.find('[data-js=\"language\"]');\r\n\r\n\t\t\t\t\tif ($radio.attr('id') === 'GetReportStatus') {\r\n\t\t\t\t\t\t$languagePicker.removeClass('hide');\r\n\t\t\t\t\t\tself.forms.disableFormElementsInContainer($languagePicker, false);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$languagePicker.addClass('hide');\r\n\t\t\t\t\t\tself.forms.disableFormElementsInContainer($languagePicker, true);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tself.$widget.on('submit', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\te.stopPropagation();\r\n\r\n\t\t\t\tif (!self.$widget.valid()) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tself.$target.html('');\r\n\r\n\t\t\t\tself.ajaxHelper.submitForm(self.$widget, function (data) {\r\n\t\t\t\t\tif (self.$widget.find('[data-js=\"toggler-filesorreport\"] input[type=\"radio\"]:checked').attr('id') === 'GetReportStatus') {\r\n\t\t\t\t\t\tself.$target.html('Report opened in new window, if not, disable your adblocker and try again.');\r\n\t\t\t\t\t\tif (data.message != '0') {\r\n\t\t\t\t\t\t\twindow.open('/Blocks/ClaimsWidget/GetReport' + '?insuranceNumber=' + self.$widget.find('#InsuranceNumber').val() + '&language=' + self.$widget.find('[data-js=\"language\"] select').val() + '&claimId=' + data.message + '&type=report');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tself.$target.html(data.html);\r\n\t\t\t\t\t}\r\n\t\t\t\t}, function (data) {\r\n\t\t\t\t\tself.$target.html(data.message);\r\n\t\t\t\t});\r\n\t\t\t\t\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\tClaimsWidget.prototype.init = function () {\r\n\t\tvar self = this;\r\n\t\tself.initEventhandlers();\r\n\t}\r\n\r\n\treturn ClaimsWidget;\r\n});","define(['jquery', 'forms', 'erv_framework', 'erv_triggers', 'erv_formatting', 'erv_translate', 'lazyload', 'ergo_triggers', 'erv_extensions', 'matchheight', 'tagit'],\r\n\tfunction ($, Forms, ERVFramework, ERVTriggers, ERVFormatting, ERVTranslate, LazyLoad, ErgoTriggers) {\r\n\t\tvar Common = function () {\r\n\t\t\tvar self = this;\r\n\t\t\tself.$ervBody = $('#erv-body');\r\n\r\n\t\t\tself.forms = new Forms();\r\n\t\t\tself.framework = new ERVFramework();\r\n\t\t\tself.triggers = new ERVTriggers();\r\n\t\t\tself.formatting = new ERVFormatting();\r\n\t\t\tself.translate = new ERVTranslate();\r\n\t\t\tself.ergoTriggers = new ErgoTriggers();\r\n\r\n\t\t\tself.initDataUrl = function($elements) {\r\n\t\t\t\t$elements.on('click',\r\n\t\t\t\t\tfunction(e) {\r\n\r\n\t\t\t\t\t\t// Skip click on links\r\n\t\t\t\t\t\tif (e.target.tagName.toLowerCase() === 'a') {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tvar url = $(this).data('url');\r\n\t\t\t\t\t\tif (typeof (url) == \"string\") {\r\n\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\twindow.location = url;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t};\r\n\t\t\t\r\n\t\t\tself.fixAnchorOffset = function() {\r\n\t\t\t\tself.$ervBody.find('a[href*=\"#\"]:not([href=\"#\"])').on('click',\r\n\t\t\t\t\tfunction() {\r\n\t\t\t\t\t\tif (location.pathname.replace(/^\\//, '') === this.pathname.replace(/^\\//, '') ||\r\n\t\t\t\t\t\t\tlocation.hostname === this.hostname) {\r\n\t\t\t\t\t\t\tvar target = $(this.hash),\r\n\t\t\t\t\t\t\t\theaderHeight = $('header').height() + 20;\r\n\t\t\t\t\t\t\ttarget = target.length ? target : self.$ervBody.find('[name=' + this.hash.slice(1) + ']');\r\n\r\n\t\t\t\t\t\t\tif (target.length) {\r\n\t\t\t\t\t\t\t\t$('html, body').animate({\r\n\t\t\t\t\t\t\t\t\t\tscrollTop: target.offset().top - headerHeight\r\n\t\t\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t\t\t400);\r\n\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t};\r\n\r\n\t\t\tself.decimalAdjust = function(type, value, exp) {\r\n\t\t\t\t// If the exp is undefined or zero...\r\n\t\t\t\tif (typeof exp === 'undefined' || +exp === 0) {\r\n\t\t\t\t\treturn Math[type](value);\r\n\t\t\t\t}\r\n\t\t\t\tvalue = +value;\r\n\t\t\t\texp = +exp;\r\n\t\t\t\t// If the value is not a number or the exp is not an integer...\r\n\t\t\t\tif (isNaN(value) || !(typeof exp === 'number' && exp % 1 === 0)) {\r\n\t\t\t\t\treturn NaN;\r\n\t\t\t\t}\r\n\t\t\t\t// Shift\r\n\t\t\t\tvalue = value.toString().split('e');\r\n\t\t\t\tvalue = Math[type](+(value[0] + 'e' + (value[1] ? (+value[1] - exp) : -exp)));\r\n\t\t\t\t// Shift back\r\n\t\t\t\tvalue = value.toString().split('e');\r\n\t\t\t\treturn +(value[0] + 'e' + (value[1] ? (+value[1] + exp) : exp));\r\n\t\t\t}\r\n\r\n\t\t\tself.overrideMath = function() {\r\n\t\t\t\t// Decimal round\r\n\t\t\t\tif (!Math.round10) {\r\n\t\t\t\t\tMath.round10 = function (value, exp) {\r\n\t\t\t\t\t\treturn self.decimalAdjust('round', value, exp);\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t\t// Decimal floor\r\n\t\t\t\tif (!Math.floor10) {\r\n\t\t\t\t\tMath.floor10 = function (value, exp) {\r\n\t\t\t\t\t\treturn self.decimalAdjust('floor', value, exp);\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t\t// Decimal ceil\r\n\t\t\t\tif (!Math.ceil10) {\r\n\t\t\t\t\tMath.ceil10 = function (value, exp) {\r\n\t\t\t\t\t\treturn self.decimalAdjust('ceil', value, exp);\r\n\t\t\t\t\t};\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tCommon.prototype.sortArrayByName = function ($parent, childrenSelector) {\r\n\t\t\t$parent.find(childrenSelector).sort(function (a, b) {\r\n\t\t\t\tvar nameA = a.innerText.toLowerCase(),\r\n\t\t\t\t\tnameB = b.innerText.toLowerCase();\r\n\t\t\t\tif(nameA < nameB) {\r\n\t\t\t\t\treturn -1;\r\n\t\t\t\t}\r\n\t\t\t\treturn (nameA > nameB) ? 1 : 0\r\n\t\t\t}).appendTo($parent);\r\n\t\t}\r\n\r\n\t\tCommon.prototype.initLazyLoad = function(overrideSelector) {\r\n\t\t\tvar self = this, handle = null;\r\n\r\n\t\t\tnew LazyLoad({\r\n\t\t\t\telements_selector: '.lazy',\r\n\t\t\t\tcallback_enter: function (el) {\r\n\t\t\t\t\t$(el).removeClass('loading').addClass('loaded');\r\n\t\t\t\t},\r\n\t\t\t\tcallback_loaded: function (el) {\r\n\t\t\t\t\tif (handle) {\r\n\t\t\t\t\t\tclearTimeout(handle);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\thandle = setTimeout(function () {\r\n\t\t\t\t\t\tself.framework.equalizeTeasers(overrideSelector);\r\n\t\t\t\t\t\thandle = null;\r\n\t\t\t\t\t}, 250);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\t\r\n\t\tCommon.prototype.init = function() {\r\n\t\t\tvar self = this;\r\n\r\n\t\t\tself.overrideMath();\r\n\r\n\t\t\tself.forms.init();\r\n\r\n if (!self.framework.checks.isInEpiEditMode()) {\r\n\t\t\t\tself.framework.initPreferredSiteSection();\r\n\t\t\t}\r\n\r\n\t\t\tself.framework.equalizeTeasers();\r\n\r\n\t\t\tself.initLazyLoad();\r\n\r\n\t\t\tself.initDataUrl(self.$ervBody.find('*[data-url]'));\r\n\r\n\t\t\tself.framework.initTooltips('.tooltip');\r\n\r\n\t\t\tself.translate.initNoTranslate();\r\n\r\n\t\t\tself.fixAnchorOffset();\r\n\r\n\t\t\tself.triggers.init();\r\n\r\n\t\t\twindow.ErvCommonUtils = window.ErvCommonUtils || {};\r\n\t\t\twindow.ErvCommonUtils.initTooltips = self.framework.initTooltips;\r\n\t\t}\r\n\r\n\t\treturn Common;\r\n\t});","define(['jquery', 'common', 'gridalicious'], function ($, Common) {\r\n\tvar Countries = function () {\r\n\t\tvar self = this;\r\n\r\n\t\tself.$ervBody = $('#erv-body');\r\n\t\tself.$countrySearchContainer = self.$ervBody.find('#country-search');\r\n\t\tself.$countryTemplate = self.$ervBody.find('#country-template');\r\n\t\tself.common = new Common();\r\n\r\n\t\tself.availableTags = [];\r\n\r\n\t\tself.initTagIt = function (selector, data) {\r\n\r\n\t\t\t$(selector).tagit({\r\n\t\t\t\tavailableTags: (data != undefined ? data : []),\r\n\t\t\t\tautocomplete: {\r\n\t\t\t\t\tdelay: 0,\r\n\t\t\t\t\tminLength: 0,\r\n\t\t\t\t\tautoFocus: true\r\n\t\t\t\t},\r\n\t\t\t\tallowSpaces: true,\r\n\t\t\t\tallowDuplicates: false,\r\n\t\t\t\tallowNewTags: false,\r\n\t\t\t\ttriggerKeys: ['enter', 'comma', 'tab'],\r\n\t\t\t\ttagLimit: 1,\r\n\t\t\t\tbeforeTagAdded: function (event, ui) {\r\n\t\t\t\t\treturn self.common.forms.ervTagit.tagitBeforeAdded(data, event, ui);\r\n\t\t\t\t},\r\n\t\t\t\tafterTagAdded: function (event, ui) {\r\n\t\t\t\t\tvar tag = $.grep(self.availableTags, function (e) { return e.label == ui.tagLabel; })[0],\r\n\t\t\t\t\t\thtml = self.$countryTemplate.html().replace(/{{value}}/g, tag.url);\r\n\t\t\t\t\tself.$countrySearchContainer.append($(html));\r\n\t\t\t\t\tself.$ervBody.find('#country-search-button').focus();\r\n\t\t\t\t\tself.common.forms.ervTagit.tagitAutocompleteEvents(false, $(event.target).parent());\r\n\r\n\t\t\t\t},\r\n\t\t\t\tafterTagRemoved: function (event, ui) {\r\n\t\t\t\t\tself.$countrySearchContainer.find(\"input[value='\" + $.grep(self.availableTags, function (e) { return e.label == ui.tagLabel; })[0].url + \"']\").remove();\r\n\t\t\t\t\tself.$newTagitInput.attr('style', 'visibility:visible');\r\n\t\t\t\t\tself.common.forms.ervTagit.tagitAutocompleteEvents(true, $(event.target).parent());\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tself.$newTagitInput = self.$countrySearchContainer.find('input.ui-autocomplete-input');\r\n\t\t\tself.$newTagitInput.attr('placeholder', self.$countrySearchContainer.data('placeholder'));\r\n\r\n\t\t\tself.common.forms.ervTagit.tagitAutocompleteEvents(true, $(selector).parent());\r\n\t\t};\r\n\r\n\t\tself.setupEventHandling = function () {\r\n\t\t\tself.initTagIt('#country-search-input', self.$ervBody.find('#country-search-input').parents('form').find('ul.hide li').map(function () {\r\n\t\t\t\tself.availableTags.push({ label: $(this).text(), url: $(this).data('value') });\r\n\t\t\t\treturn $(this).text();\r\n\t\t\t}));\r\n\r\n\t\t\tself.initGridalicious('.stack');\r\n\r\n\t\t\tself.$ervBody.find('#country-search-button').on('click', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tvar $urlElement = self.$ervBody.find('#Country_Url');\r\n\r\n\t\t\t\tif ($urlElement.length > 0 && $urlElement.val().length > 0 && $urlElement.val() !== '{{value}}') {\r\n\t\t\t\t\twindow.location = $urlElement.val();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tself.initGridalicious = function (selector) {\r\n\t\t\tvar $container = $('.gridalicious'),\r\n\t\t\t\titemWidth = $container.data('stackwidth');\r\n\r\n\t\t\tif (typeof (itemWidth) === 'undefined')\r\n\t\t\t\titemWidth = 250;\r\n\r\n\t\t\t$container.gridalicious({\r\n\t\t\t\tgutter: 1,\r\n\t\t\t\twidth: itemWidth,\r\n\t\t\t\tselector: selector\r\n\t\t\t});\r\n\t\t};\r\n\t};\r\n\r\n\tCountries.prototype.init = function () {\r\n\t\tvar self = this;\r\n\r\n\t\tself.setupEventHandling();\r\n\t}\r\n\r\n\treturn Countries;\r\n});","define(['jquery'], function ($) {\r\n\r\n\tvar ERVil8n = function () {\r\n\t\t$.datepicker.regional.sv = {\r\n\t\t\tcloseText: 'Stäng',\r\n\t\t\tprevText: '',\r\n\t\t\tnextText: '',\r\n\t\t\tcurrentText: 'Idag',\r\n\t\t\tmonthNames: ['Januari', 'Februari', 'Mars', 'April', 'Maj', 'Juni',\r\n\t\t\t'Juli', 'Augusti', 'September', 'Oktober', 'November', 'December'],\r\n\t\t\tmonthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun',\r\n\t\t\t'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'],\r\n\t\t\tdayNamesShort: ['Sön', 'Mån', 'Tis', 'Ons', 'Tor', 'Fre', 'Lör'],\r\n\t\t\tdayNames: ['Söndag', 'Måndag', 'Tisdag', 'Onsdag', 'Torsdag', 'Fredag', 'Lördag'],\r\n\t\t\tdayNamesMin: ['Sö', 'Må', 'Ti', 'On', 'To', 'Fr', 'Lö'],\r\n\t\t\tweekHeader: 'Ve',\r\n\t\t\tfirstDay: 1,\r\n\t\t\tisRTL: false,\r\n\t\t\tshowMonthAfterYear: false,\r\n\t\t\tyearSuffix: '',\r\n\t\t\tdateFormat: 'yy-mm-dd'\r\n\t\t};\r\n\r\n\t\t$.datepicker.regional.da = {\r\n\t\t\tcloseText: 'Luk',\r\n\t\t\tprevText: '',\r\n\t\t\tnextText: '',\r\n\t\t\tcurrentText: 'Idag',\r\n\t\t\tmonthNames: ['Januar', 'Februar', 'Marts', 'April', 'Maj', 'Juni',\r\n\t\t\t'Juli', 'August', 'September', 'Oktober', 'November', 'December'],\r\n\t\t\tmonthNamesShort: ['Jan', 'Feb', 'Mar', 'Apr', 'Maj', 'Jun',\r\n\t\t\t'Jul', 'Aug', 'Sep', 'Okt', 'Nov', 'Dec'],\r\n\t\t\tdayNames: ['Søndag', 'Mandag', 'Tirsdag', 'Onsdag', 'Torsdag', 'Fredag', 'Lørdag'],\r\n\t\t\tdayNamesShort: ['Søn', 'Man', 'Tir', 'Ons', 'Tor', 'Fre', 'Lør'],\r\n\t\t\tdayNamesMin: ['Sø', 'Ma', 'Ti', 'On', 'To', 'Fr', 'Lø'],\r\n\t\t\tweekHeader: 'Uge',\r\n\t\t\tfirstDay: 1,\r\n\t\t\tisRTL: false,\r\n\t\t\tshowMonthAfterYear: false,\r\n\t\t\tyearSuffix: '',\r\n\t\t\tdateFormat: 'dd-mm-yy'\r\n\t\t};\r\n\r\n\t\t$.datepicker.regional.fi = {\r\n\t\t\tdateFormat: 'dd-mm-yy'\r\n\t\t};\r\n\r\n\t\t$.datepicker.regional.is = {\r\n\t\t\tdateFormat: 'dd-mm-yy'\r\n\t\t};\r\n\r\n\t\t//norway\r\n\t\t$.datepicker.regional.nb = {\r\n\t\t\tdateFormat: 'yy-mm-dd'\r\n\t\t};\r\n\t};\r\n\r\n\treturn ERVil8n;\r\n});","define(['jquery'], function ($) {\r\n\r\n var FORMS_SCROLL_TOP_OFFSET = 70;\r\n\r\n var EpiserverFormsHelpers = function () {\r\n\r\n var self = this;\r\n\r\n self.selectors = {\r\n get $fileUploadWrapper() {\r\n return $('.FormFileUpload');\r\n },\r\n get $fileUploadInput() {\r\n return $('.FormFileUpload__Input');\r\n },\r\n get $fileUploadFakeInputInnerWrapper() {\r\n return $('.FormFileUpload__FakeInput__InnerWrapper');\r\n },\r\n }\r\n\r\n self.handleFileInputChange = function() {\r\n self.selectors.$fileUploadWrapper.each(function() {\r\n var $input = $(this).find(self.selectors.$fileUploadInput);\r\n var $fakeInput = $(this).find(self.selectors.$fileUploadFakeInputInnerWrapper);\r\n var labelText = $(this).data('label-text') || '';\r\n\r\n function handleFileInputModification() {\r\n if (!$input[0].files.length) {\r\n return $fakeInput.text(labelText);\r\n }\r\n return $fakeInput.text($.map($input[0].files, function (file) { return file.name }).join(', '));\r\n }\r\n\r\n $input.on('change', handleFileInputModification);\r\n $input.closest('form').on('reset', function () {\r\n $input.value = '';\r\n setTimeout(handleFileInputModification);\r\n });\r\n });\r\n }\r\n\r\n self.scrollToTheTopOfForm = function ($workingForm) {\r\n if ($workingForm != null && ($workingForm.css(\"position\").toLowerCase() !== \"fixed\") && ($(document).scrollTop() > 0)) {\r\n window.scrollTo(0, (($workingForm.offset().top - FORMS_SCROLL_TOP_OFFSET)) || 0);\r\n }\r\n }\r\n\r\n self.adjustScrollByTheTopOffset = function () {\r\n window.scrollBy(0, -FORMS_SCROLL_TOP_OFFSET);\r\n }\r\n\r\n self.adjustWindowScrollTop = function() {\r\n if (typeof $$epiforms !== 'undefined') {\r\n var $form = $$epiforms(\".EPiServerForms\")\r\n\r\n $form.on(\"formsSubmitted formsNavigateToStep\", function (event) {\r\n setTimeout(function() {\r\n self.scrollToTheTopOfForm($(event.target))\r\n });\r\n });\r\n\r\n $form.on(\"formsStepValidating\", function (event) {\r\n setTimeout(function () {\r\n /**\r\n * At this time window is already scrolled to first element by default EpiForms method\r\n */\r\n if ($(event.target).first('.Form__Element.ValidationFail').length) {\r\n self.adjustScrollByTheTopOffset()\r\n }\r\n });\r\n });\r\n }\r\n }\r\n };\r\n\r\n EpiserverFormsHelpers.prototype.init = function () {\r\n this.handleFileInputChange();\r\n this.adjustWindowScrollTop();\r\n }\r\n\r\n return EpiserverFormsHelpers;\r\n});","define(['jquery'], function ($) {\r\n function ErgoTriggers() {\r\n this.init = function () {\r\n if (!$('body').hasClass('ergo-theme')) return;\r\n this.bindEvents();\r\n };\r\n\r\n this.handleTopMenuSectionClick = function ($currentList, wasExpanded) {\r\n $('.top-menu-sections > .link-list').each(function () {\r\n const $list = $(this);\r\n $list.removeClass('is-expanded')\r\n .find('.sub-list').removeClass('fade-in')\r\n .end()\r\n .find('.link-list').removeClass('is-expanded')\r\n .find('.level-one').removeClass('fade-in');\r\n });\r\n\r\n if (!wasExpanded) {\r\n $currentList.addClass('is-expanded')\r\n .find('> .sub-list').addClass('fade-in');\r\n }\r\n };\r\n\r\n this.handleSubListClick = function ($currentList) {\r\n $currentList.toggleClass('is-expanded')\r\n .find('> .level-one').toggleClass('fade-in');\r\n };\r\n\r\n this.navigateToHref = function ($header) {\r\n const href = $header.find('span').data('href');\r\n if (href && href !== '#') {\r\n window.location.href = href;\r\n }\r\n };\r\n\r\n this.bindEvents = function () {\r\n const self = this;\r\n\r\n $('.link-list__header').on('click', function (e) {\r\n const $header = $(this);\r\n const isArrowClick = e.offsetX > $header.width() - 30;\r\n const $currentList = $header.closest('.link-list');\r\n const isInTopMenuSections = $header.closest('.top-menu-sections').length &&\r\n $header.parent().parent().hasClass('top-menu-sections');\r\n const isInSubListWrapper = $header.closest('.sub-list__inner-wrapper').length;\r\n const isInLevelOne = $header.closest('.level-one').length;\r\n\r\n if ($header.hasClass('arrow') && isArrowClick) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n if (isInTopMenuSections) {\r\n const wasExpanded = $currentList.hasClass('is-expanded');\r\n self.handleTopMenuSectionClick($currentList, wasExpanded);\r\n } else if (isInSubListWrapper) {\r\n self.handleSubListClick($currentList);\r\n }\r\n } else {\r\n const shouldToggleExpand = isInSubListWrapper && !isInLevelOne;\r\n\r\n if (shouldToggleExpand) {\r\n self.handleSubListClick($currentList);\r\n }\r\n\r\n if (!shouldToggleExpand) {\r\n self.navigateToHref($header);\r\n }\r\n }\r\n });\r\n };\r\n }\r\n\r\n $(document).ready(function () {\r\n const mobileTopMenu = new ErgoTriggers();\r\n mobileTopMenu.init();\r\n });\r\n\r\n return ErgoTriggers;\r\n});","\r\nimport * as throttle from '../lib/lodash.throttle.js'\r\nimport * as multiclamp from '../lib/multiclamp.js'\r\n\r\nconst API_URL = location.origin + '/search/suggestions';\r\nconst SUGGESTIONS_CONTAINER_SELECTOR = '[data-js=\"search-suggestions\"]';\r\nconst SUGGESTION_SELECTOR = '[data-js=\"suggestion\"]';\r\nconst MINIMAL_STRING_LENGTH_TO_INVOKE_SEARCH = 3;\r\nconst TEXT_LINE_CLAMP = 3;\r\nconst NO_RESULTS_FALLBACK_LABEL = 'no results';\r\nconst SEARCH_THROTTLE_TIME = 400;\r\n\r\nconst showNoResultsState = () => {\r\n const $container = $(SUGGESTIONS_CONTAINER_SELECTOR);\r\n return $container.html('
' + ($container.data('noResultsLabel') || NO_RESULTS_FALLBACK_LABEL) + '
');\r\n}\r\n\r\nconst clearSuggestionsContainer = () => $(SUGGESTIONS_CONTAINER_SELECTOR).html('');\r\n\r\nconst getSuggestionContainerByInputId = (id) => {\r\n switch (id) {\r\n case 'main-search-input':\r\n return $('form#main-search').find(SUGGESTIONS_CONTAINER_SELECTOR);\r\n case 'device-search-input':\r\n return $('form#device-search').find(SUGGESTIONS_CONTAINER_SELECTOR);\r\n default:\r\n throw new Error('[ERVAutosuggest][getSuggestionContainerByInputId]Handler for input: \"' + id + '\" not implemented');\r\n }\r\n}\r\n\r\nconst getValidSuggestionData = (suggestionDTO) => {\r\n if (!suggestionDTO || !suggestionDTO.LinkUrl) {\r\n return undefined;\r\n }\r\n return {\r\n linkUrl: suggestionDTO.LinkUrl,\r\n title: suggestionDTO.Title || \"\",\r\n content: suggestionDTO.Content || \"\",\r\n thumbnailUrl: suggestionDTO.ThumbnailUrl || \"\"\r\n }\r\n}\r\n\r\nconst getThumbnailHtml = (url) => {\r\n return url ? `
\r\n
\r\n
`\r\n : '';\r\n}\r\n\r\nconst getSingleSuggestionHtml = (suggestion) => {\r\n const { linkUrl, title, content, thumbnailUrl } = suggestion;\r\n\r\n return `\r\n
\r\n
${title}
\r\n\t\t\t\t\t
${decodeHtml(content)}
\r\n
\r\n ${getThumbnailHtml(thumbnailUrl)} \r\n\t\t\t\t
`;\r\n}\r\n\r\nfunction decodeHtml(html) {\r\n var txt = document.createElement(\"textarea\");\r\n txt.innerHTML = html;\r\n return txt.value.replace(/[<\\/>]/g, '');;\r\n}\r\n\r\nconst renderSuggestions = (data, searchInputId) => {\r\n const $container = getSuggestionContainerByInputId(searchInputId);\r\n if (!data || !data.length) {\r\n return showNoResultsState();\r\n }\r\n\r\n $container.html($.map(data, (suggestionDTO) => {\r\n const validatedSuggestion = getValidSuggestionData(suggestionDTO);\r\n if (validatedSuggestion) {\r\n return getSingleSuggestionHtml(validatedSuggestion);\r\n }\r\n }));\r\n\r\n $.map($container.find('[data-js=\"multiclamp\"]'), (element) => {\r\n new multiclamp(element, {\r\n clamp: element.getAttribute('data-clamp')\r\n });\r\n });\r\n}\r\n\r\nlet currentRequest = null;\r\n\r\nconst getSuggestions = (event) => {\r\n const { target: { value, id } } = event;\r\n\r\n if (!value || value.length < MINIMAL_STRING_LENGTH_TO_INVOKE_SEARCH) {\r\n clearSuggestionsContainer();\r\n return;\r\n }\r\n currentRequest = $.ajax({\r\n type: 'GET',\r\n data: 'query=' + value,\r\n url: API_URL,\r\n beforeSend: function () {\r\n if (currentRequest != null) {\r\n currentRequest.abort();\r\n }\r\n },\r\n })\r\n .done((data) => {\r\n renderSuggestions(data, id);\r\n })\r\n .fail((xhr) => {\r\n console.warn(`[ERVAutosuggest][getSuggestions] Status: ${xhr.statusText}`);\r\n });\r\n}\r\n\r\nconst init = () => {\r\n if(!$(SUGGESTIONS_CONTAINER_SELECTOR).length) {\r\n return;\r\n }\r\n $('[id*=\"-search-input\"]').on('input focus', throttle(getSuggestions, SEARCH_THROTTLE_TIME));\r\n}\r\n\r\nexport default {\r\n init,\r\n clearSuggestionsContainer,\r\n SUGGESTION_SELECTOR\r\n }\r\n","define(['jquery'], function ($) {\r\n\tvar ERVChecks = function () {\r\n\t};\r\n\tERVChecks.prototype.isMobileDevice = function () {\r\n\t\treturn /Mobi|Android/i.test(navigator.userAgent);\r\n\t}\r\n\r\n\tERVChecks.prototype.isIos = function () {\r\n\t\treturn window.navigator.userAgent.match(/iPhone|iPod|iPad/i);\r\n\t}\r\n\r\n\tERVChecks.prototype.isSafari = function () {\r\n\t\treturn /^((?!chrome|CriOs).)*safari/i.test(navigator.userAgent);\r\n\t}\r\n\r\n\tERVChecks.prototype.isCriOs = function () {\r\n\t\treturn /iPhone(.*?CriOS)/i.test(navigator.userAgent);\r\n\t}\r\n\r\n\tERVChecks.prototype.isIE = function () {\r\n\t\tvar msIE = false;\r\n\t\tvar ua = window.navigator.userAgent;\r\n\t\tvar oldIE = ua.indexOf('MSIE ');\r\n\t\tvar newIE = ua.indexOf('Trident/');\r\n\r\n\t\tif ((oldIE > -1) || (newIE > -1)) {\r\n\t\t\tmsIE = true;\r\n\t\t}\r\n\r\n\t\treturn msIE;\r\n\t}\r\n\r\n\tERVChecks.prototype.isWebkitBrowser = function() {\r\n\t\tvar self = this,\r\n\t\t\tisWebkit = 'WebkitAppearance' in document.documentElement.style;\r\n\r\n\t\treturn isWebkit && !self.isIEEdge();\r\n\t}\r\n\r\n\tERVChecks.prototype.isIEEdge = function () {\r\n\t\treturn window.navigator.userAgent.indexOf(\"Edge\") > -1;\r\n\t}\r\n\r\n\tERVChecks.prototype.isInEpiEditMode = function () {\r\n\t\treturn ($('body').hasClass('epi-editmode'));\r\n\t};\r\n\r\n\tERVChecks.prototype.isDk = function () {\r\n\t\treturn $('html').data('domain') === 'dk';\r\n\t}\r\n\r\n\tERVChecks.prototype.isSe = function () {\r\n\t\treturn $('html').data('domain') === 'se';\r\n\t}\r\n\r\n\tERVChecks.prototype.isElementInViewport = function ($el, adjustHeight) {\r\n\t\tif (!$el || $el.length === 0) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar rect = $el[0].getBoundingClientRect();\r\n\r\n\t\tif (typeof (rect) === 'undefined' || rect == null) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tadjustHeight = typeof (adjustHeight) === 'undefined' ? 0 : adjustHeight;\r\n\r\n\t\treturn (\r\n\t\t\trect.top >= 0 + adjustHeight &&\r\n\t\t\trect.left >= 0 &&\r\n\t\t\trect.bottom <= (window.innerHeight || $(window).height()) &&\r\n\t\t\trect.right <= (window.innerWidth || $(window).width())\r\n\t\t);\r\n\t};\r\n\r\n\treturn ERVChecks;\r\n});","define(['jquery'],\r\n\tfunction($) {\r\n\t\tvar ERVCustomValidationSummary = function () {\r\n\t\t\tvar self = this;\r\n\t\t\tself.$ervBody = $('#erv-body');\r\n\r\n\t\t\tself.errorAlreadyExists = function (label, $errors) {\r\n\t\t\t\tvar exists = false;\r\n\r\n\t\t\t\t$errors.each(function () {\r\n\t\t\t\t\tif ($(this).text() === '\"' + label + '\"') {\r\n\t\t\t\t\t\texists = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\treturn exists;\r\n\t\t\t}\r\n\r\n\t\t\tself.updateErrorsSummary = function(validator, $updateSingleInput, clear, singleUpdate){\r\n\t\t\t\tvar $ul = self.$ervBody.find('.validation-summary-errors').first().find('ul[data-js=\"geterrorfieldlabels\"]');\r\n\r\n\t\t\t\tif ($ul.length === 1) {\r\n\t\t\t\t\tif(clear === true || typeof (clear) === 'undefined') {\r\n\t\t\t\t\t\t$ul.find('li').remove();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (singleUpdate) {\r\n\t\t\t\t\t\t$ul.append($('
  • ' + $updateSingleInput.parent().find('label').first().text() + '
  • '));\r\n\t\t\t\t\t} else if (validator != null) {\r\n\t\t\t\t\t\tfor (var error of validator.errorList) {\r\n\t\t\t\t\t\t\t$ul.append($('
  • ' + error.message + '
  • '));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tself.createNewErrorsSummary = function(css, singleUpdate, $updateSingleInput, validator, $elementToPrependTo) {\r\n\t\t\t\tvar specificCss = css != undefined && css.length > 0 ? css : '';\r\n\r\n\t\t\t\tvar html = '
    ' +\r\n\t\t\t\t\twindow.ERV.ConfigurationSettings.Translation.ErrorSummaryHeader +\r\n\t\t\t\t\t'
    ';\r\n\r\n\t\t\t\tif ($elementToPrependTo.attr('id') === 'booking-widget') {\r\n\t\t\t\t\t$elementToPrependTo.find('div.booking-content .fields').prepend(html);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$elementToPrependTo.prepend(html);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tERVCustomValidationSummary.prototype.updateErrorFieldsLabels = function (validator, $elementToPrependTo, $updateSingleInput, css, clear) {\r\n\t\t\tvar self = this;\r\n\t\t\tvar singleUpdate = $updateSingleInput != undefined && $updateSingleInput.length > 0;\r\n\r\n\t\t\tif (self.$ervBody.find('.validation-summary-errors').length > 0) {\r\n\t\t\t\tself.updateErrorsSummary(validator, $updateSingleInput, clear, singleUpdate);\r\n\t\t\t} else {\r\n\t\t\t\tself.createNewErrorsSummary(css, singleUpdate, $updateSingleInput, validator, $elementToPrependTo);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tERVCustomValidationSummary.prototype.setErrorFieldLabels = function () {\r\n\t\t\tvar self = this,\r\n\t\t\t\t$errorElements = self.$ervBody.find('[data-js=\"geterrorfieldlabels\"] li');\r\n\r\n\t\t\t//jquery validation\r\n\t\t\t$errorElements.each(function () {\r\n\t\t\t\tvar $error = $(this),\r\n\t\t\t\t\terrorKey = $error.data('errorkey'),\r\n\t\t\t\t\tlabel = '',\r\n\t\t\t\t\thasSpecificMessage = false;\r\n\r\n\t\t\t\tif(!errorKey.length) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tvar $element = null,\r\n\t\t\t\t\t$bookingWidget = self.$ervBody.find('form#booking-widget');\r\n\r\n\t\t\t\tif ($bookingWidget.length > 0) {\r\n\t\t\t\t\tvar $container = $bookingWidget.find('.insurance-fields:not(.hide)');\r\n\r\n\t\t\t\t\tif ($container.length > 0) {\r\n\t\t\t\t\t\t$element = $container.find('#' + errorKey);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$element = $bookingWidget.find('#' + errorKey);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$element = self.$ervBody.find('#' + errorKey + ':not(:disabled)');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ($element.length > 0) {\r\n\t\t\t\t\tvar $elementParent = $element.parents('.field'),\r\n\t\t\t\t\t\t$messageContainer = $elementParent.find('label[for=\"' + errorKey + '\"]');\r\n\r\n\t\t\t\t\tif ($messageContainer.length > 0) {\r\n\t\t\t\t\t\tlabel = $messageContainer.first().text();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tlabel = $elementParent.find('[data-messagefor=\"' + errorKey + '\"]').data('heading');\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif ($element.data('validationmessageelement') !== undefined) {\r\n\t\t\t\t\t\tvar $validationMessageContainer = self.$ervBody.find('[data-messagefor=\"' + $element.data('validationmessageelement') + '\"]');\r\n\t\t\t\t\t\t$validationMessageContainer.removeClass('hide');\r\n\t\t\t\t\t\thasSpecificMessage = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t//if straight from backend\r\n\t\t\t\t\t$element = self.$ervBody.find('[data-messagefor=\"' + errorKey + '\"]');\r\n\t\t\t\t\tif ($element.length > 0) {\r\n\t\t\t\t\t\t$element.removeClass('hide');\r\n\t\t\t\t\t\thasSpecificMessage = true;\r\n\t\t\t\t\t\tlabel = $element.data('heading');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$element = self.$ervBody.find('[for=\"' + errorKey + '\"]');\r\n\t\t\t\t\t\tlabel = $element.text();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (label === undefined) { return false; }\r\n\r\n\t\t\t\tif (label.length > 0 && !self.errorAlreadyExists(label, $errorElements)) {\r\n\t\t\t\t\t$error.text('\"' + label.trim().replace(\"*\", \"\") + '\"');\r\n\t\t\t\t\t\t\r\n\t\t\t\t\tif (!$element.hasClass('custom-validation-message')) {\r\n\t\t\t\t\t\t$element.addClass('input-validation-error');\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if(!hasSpecificMessage){\r\n\t\t\t\t\t$error.remove();\r\n\t\t\t\t\t$element.removeClass('input-validation-error');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tvar $errorsAfterRemove = self.$ervBody.find('.validation-summary-errors li'),\r\n\t\t\t\t$visibleErrorMessages = self.$ervBody.find('.field-validation-error:visible');\r\n\r\n\t\t\tif ($errorsAfterRemove.length === 0 && $visibleErrorMessages.length === 0) {\r\n\t\t\t\tself.$ervBody.find('.validation-summary-errors').remove();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\treturn ERVCustomValidationSummary;\r\n\t});","define([], function () {\r\n\tDate.prototype.addDays = function (days) {\r\n\t\tvar date = new Date(this.valueOf());\r\n\t\tdate.setDate(date.getDate() + days);\r\n\t\treturn date;\r\n\t}\r\n\r\n\tDate.prototype.toLocaleDate = function (country) {\r\n\t\tvar date = new Date(this.valueOf()),\r\n\t\t\tdd = date.getDate(),\r\n\t\t\tmm = date.getMonth() + 1;\r\n\r\n\t\tswitch(country) {\r\n\t\t\tcase 'se':\r\n\t\t\t\treturn date.getFullYear() + '-' + (mm < 10 ? '0' : '') + mm + '-' + (dd < 10 ? '0' : '') + dd;\r\n\t\t\tcase 'dk':\r\n\t\t\t\treturn (dd < 10 ? '0' : '') + dd + '-' + (mm < 10 ? '0' : '') + mm + '-' + date.getFullYear();\r\n\t\t}\r\n\r\n\t\treturn date.getFullYear() + '-' + (mm < 10 ? '0' : '') + mm + '-' + (dd < 10 ? '0' : '') + dd;\r\n\t}\r\n});","define(['jquery'], function ($) {\r\n\r\n\tvar ERVFormatting = function () {\r\n\t\tvar self = this;\r\n\t\tself.$ervBody = $('#erv-body');\r\n\t};\r\n\r\n\tERVFormatting.prototype.reverseShortDate = function (date, dayFirst) {\r\n\t\tvar dateArr = date.split('-');\r\n\t\tif (dateArr.length === 3) {\r\n\t\t\tif (dayFirst) {\r\n\t\t\t\t//2017-12-24 -> 24-12-2017\r\n\t\t\t\tdate = dateArr[0] + '-' + dateArr[1] + '-' + dateArr[2];\r\n\t\t\t} else {\r\n\t\t\t\t//24-12-2017 -> 2017-12-24\r\n\t\t\t\tdate = dateArr[2] + '-' + dateArr[1] + '-' + dateArr[0];\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn date;\r\n\t};\r\n\r\n\treturn ERVFormatting;\r\n});","define(['jquery', 'cookies', 'settings', 'erv_popup', 'erv_checks'], function ($, Cookies, Settings, Popup, ERVChecks) {\r\n\r\n\tvar ERVFramework = function () {\r\n\t\tvar self = this;\r\n\t\tself.$ervBody = $('#erv-body');\r\n\t\tself.cookies = Cookies;\r\n\t\tself.settings = Settings;\r\n\t\tself.popup = new Popup();\r\n\t\tself.checks = new ERVChecks();\r\n\t\tself.neverExpires = 10 * 365;\r\n\t};\r\n\r\n\tERVFramework.prototype.initTooltips = function (selector) {\r\n\t\t$(selector).tooltip({\r\n\t\t\tposition: {\r\n\t\t\t\tmy: \"center bottom-5\",\r\n\t\t\t\tat: \"center top\",\r\n\t\t\t\tusing: function (position) {\r\n\r\n\t\t\t\t\tvar userWayLineHeightEnabled = $(\"[data-userway-s17-styled=\\\"true\\\"\").length;\r\n\t\t\t\t\tif (userWayLineHeightEnabled) {\r\n\t\t\t\t\t\tvar level = +$(\"[data-userway-s17-styled=\\\"true\\\"\").attr('data-line-height-feature-value');\r\n\t\t\t\t\t\tposition.top = position.top - (level + 1)*30;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t$(this).css(position);\r\n\r\n\t\t\t\t\t//only add for touch devices\r\n\t\t\t\t\tif ($(this).find('p.block').length === 0 && (('ontouchstart' in window) || !!(navigator.msMaxTouchPoints))) {\r\n\t\t\t\t\t\tvar $closeContainer = $('

    ');\r\n\r\n\t\t\t\t\t\tvar $closeLink = $(\"\").html('✖');\r\n\t\t\t\t\t\t$closeLink.appendTo($closeContainer);\r\n\r\n\t\t\t\t\t\t$closeContainer.prependTo(this);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\tshow: { duration: 200 },\r\n /**\r\n * For clarification: https://api.jqueryui.com/tooltip/#option-classes\r\n */\r\n classes: {\r\n\t\t\t\t\"ui-tooltip\": \"ui-corner-all\"\r\n }\r\n\t\t});\r\n\r\n\t\t$(selector).on('click', function (e) {\r\n\t\t\te.stopPropagation();\r\n\t\t\te.preventDefault();\r\n\t\t\tif ($('.ui-tooltip').length > 0) {\r\n\t\t\t\t$(selector).tooltip('close');\r\n\t\t\t}\r\n\t\t\t$(this).tooltip('open');\r\n\t\t});\r\n\r\n\t\t$(window).on('resize scroll',\r\n\t\t\tfunction () {\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\tif ($('.ui-tooltip').length > 0) {\r\n\t\t\t\t\t\t$(selector).tooltip('close');\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 100);\r\n\t\t\t});\r\n\r\n\t\t$('.ui-tooltip').on('touchstart click',\r\n\t\t\tfunction () {\r\n\t\t\t\tif ($('.ui-tooltip').length > 0) {\r\n\t\t\t\t\t$(selector).tooltip('close');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t$('body').on('click',\r\n\t\t\tfunction () {\r\n\t\t\t\tif ($('.ui-tooltip').length > 0) {\r\n\t\t\t\t\t$(selector).tooltip('close');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t};\r\n\r\n ERVFramework.prototype.initPreferredSiteSection = function () {\r\n\t\tvar self = this,\r\n\t\t\t$sectionLinksLists = self.$ervBody.find('.section-links'),\r\n\t\t\tcookieName = self.settings.CookieStrings.PreferredSection,\r\n\t\t\tfirstLink = '';\r\n\r\n\t\t$sectionLinksLists.each(function () {\r\n\t\t\tvar $list = $(this);\r\n\t\t\tvar $links = $list.find('a');\r\n\r\n\t\t\t$links.each(function () {\r\n\t\t\t\tvar $link = $(this);\r\n\r\n\t\t\t\tif (firstLink === '') {\r\n\t\t\t\t\tfirstLink = $link.attr('href');\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$link.on('click',\r\n\t\t\t\t\tfunction () {\r\n\t\t\t\t\t\tvar href = $(this).attr('href');\r\n\t\t\t\t\t\tvar a = $('', { href: href })[0]; //trick\r\n\t\t\t\t\t\tif (a.hostname !== window.location.hostname) {\r\n\t\t\t\t\t\t\tself.cookies.set(cookieName, firstLink, { expires: self.neverExpires, path: '/' });\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tself.cookies.set(cookieName, href, { expires: self.neverExpires, path: '/' });\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t});\r\n\t\t});\r\n\t};\r\n\r\n\tERVFramework.prototype.initGenericAlert = function (errorMessage, settings) {\r\n\t\tvar self = this,\r\n\t\t\t$lightbox = $('body').find('#generic-alert-lightbox'),\r\n\t\t\t$button = $lightbox.find('[data-js=\"ok\"]');\r\n\r\n\t\tif (!$lightbox || !$lightbox.length || !$button || !$button.length) {\r\n\t\t\talert(errorMessage);\r\n\r\n\t\t\tif (typeof (settings) !== 'undefined' && typeof (settings.callback) === 'function') {\r\n\t\t\t\tsettings.callback();\r\n\t\t\t}\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tself.popup.openPopup(\r\n\t\t\t'#generic-alert-lightbox',\r\n\t\t\t{\r\n\t\t\t\telementParse: function (item) {\r\n\t\t\t\t\t$(item.src).removeClass('hide');\r\n\t\t\t\t}\r\n\t\t\t},\r\n\t\t\ttrue, true\r\n\t\t);\r\n\r\n\t\tvar $additionalInformation = $lightbox.find('[data-js=\"additional-information\"]'),\r\n\t\t\t$serverErrorMessage = $additionalInformation.find('[data-js=\"serverside-message\"]');\r\n\r\n\t\tif (errorMessage != undefined && errorMessage.length > 0) {\r\n\t\t\t$additionalInformation.removeClass('hide');\r\n\t\t\t$serverErrorMessage.text(errorMessage);\r\n\t\t} else {\r\n\t\t\t$additionalInformation.addClass('hide');\r\n\t\t}\r\n\r\n\t\tif (typeof (settings) !== 'undefined') {\r\n\t\t\tvar $mainInformation = $lightbox.find('[data-js=\"main-information\"]');\r\n\r\n\t\t\tif (typeof (settings.heading) !== 'undefined') {\r\n\t\t\t\tvar $heading = $mainInformation.find('h2');\r\n\t\t\t\t$heading.text(settings.heading);\r\n\t\t\t}\r\n\r\n\t\t\tif (typeof (settings.hideMainDescription) !== 'undefined') {\r\n\t\t\t\tvar $description = $mainInformation.find('p');\r\n\t\t\t\t$description.addClass('hide');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t$button.on('click', function (e) {\r\n\t\t\te.preventDefault();\r\n\t\t\t$.magnificPopup.close();\r\n\t\t\tif (typeof (settings) !== 'undefined' && typeof (settings.callback) === 'function') {\r\n\t\t\t\tsettings.callback();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\tvar equalizeTeasersTimeoutId = null;\r\n\tERVFramework.prototype.equalizeTeasers = function (overrideSelector, wait) {\r\n\t\tvar delay = wait != undefined ? wait : 300;\r\n\r\n\t\tif (equalizeTeasersTimeoutId != null) {\r\n\t\t\tclearTimeout(equalizeTeasersTimeoutId);\r\n\t\t\tequalizeTeasersTimeoutId = null;\r\n\t\t}\r\n\r\n\t\tvar $containers = $((typeof (overrideSelector) === 'undefined' || overrideSelector.length === 0) ? '.teaser-container' : overrideSelector);\r\n\r\n\t\tif ($containers.length === 0) { return false; }\r\n\r\n\t\t//iconblock fix\r\n\t\tvar $teasers = $containers.find('.box, .icon-block, .teaser-block');\r\n\t\t$teasers.addClass('no-hover');\r\n\r\n\t\tequalizeTeasersTimeoutId = setTimeout(function () {\r\n\t\t\tvar\t$images = $containers.find('.top-image[data-js=\"equalizethis\"]'),\r\n\t\t\t\t$contents = $containers.find('.content[data-js=\"equalizethis\"]'),\r\n\t\t\t\t$pricings = $containers.find('.pricing[data-js=\"equalizethis\"]');\r\n\r\n\r\n\t\t\tif ($images.length > 0) {\r\n\t\t\t\t$images.matchHeight({\r\n\t\t\t\t\tbyRow: true\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif ($contents.length > 0) {\r\n\t\t\t\t$contents.matchHeight({\r\n\t\t\t\t\tbyRow: true\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif ($pricings.length > 0) {\r\n\t\t\t\t$pricings.matchHeight({\r\n\t\t\t\t\tbyRow: true\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t$teasers.removeClass('no-hover');\r\n\r\n\t\t\tequalizeTeasersTimeoutId = null;\r\n\t\t}, delay);\r\n\t}\r\n\r\n\tERVFramework.prototype.equalizeParent = function ($children) {\r\n\t\tif (!$children.length) {\r\n\t\t\treturn false;\r\n\t\t}\r\n\r\n\t\tvar max = 0,\r\n\t\t\t$parent = $children.parent();\r\n\r\n\t\t$parent.addClass('no-hover');\r\n\r\n\t\t$children.each(function () {\r\n\t\t\tvar height = $(this).height();\r\n\t\t\tmax = height > max ? height : max;\r\n\t\t});\r\n\r\n\t\t$parent.css('height', max);\r\n\r\n\t\t$parent.removeClass('no-hover');\r\n\t}\r\n\r\n\treturn ERVFramework;\r\n});","define(['jquery'], function ($) {\r\n\r\n\tvar ERVPopup = function () {\r\n\t\tvar self = this;\r\n\t\tself.$ervBody = $('#erv-body');\r\n\r\n\t};\r\n\t\r\n\tERVPopup.prototype.openPopup = function (selector, callbacks, closeInside, modal) {\r\n\t\tvar self = this;\r\n\t\trequire(['magnific_popup'], function () {\r\n\t\t\tif (self.$ervBody.find('.lightbox').length) {\r\n\t\t\t\t$.magnificPopup.open({\r\n\t\t\t\t\titems: { src: selector, type: 'inline' },\r\n\t\t\t\t\tpreloader: true,\r\n\t\t\t\t\talignTop: true,\r\n\t\t\t\t\tfixedContentPos: true,\r\n\t\t\t\t\tcloseBtnInside: closeInside,\r\n\t\t\t\t\tcloseMarkup: '',\r\n\t\t\t\t\tmodal: modal,\r\n\t\t\t\t\tcallbacks: callbacks\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\t\r\n\treturn ERVPopup;\r\n});","define(['jquery', 'pricehelper', 'erv_popup'],\r\n\tfunction($, PriceHelper, ERVPopup) {\r\n\t\tvar ERVPriceBreakdown = function() {\r\n\t\t\tvar self = this;\r\n\t\t\tself.$ervBody = $('#erv-body');\r\n\t\t\tself.priceBreakdownData = {};\r\n\t\t\tself.priceHelper = new PriceHelper();\r\n\t\t\tself.popup = new ERVPopup();\r\n\r\n\t\t\tself.setPersonData = function (i, $field, $productBox) {\r\n\t\t\t\tself.priceBreakdownData.persons[i] = self.priceBreakdownData.persons[i] || {};\r\n\r\n\t\t\t\tvar dataPerson = self.priceBreakdownData.persons[i],\r\n\t\t\t\t\t$visibleAddonContainer = $productBox.find('.addon-container:not(.hide)'),\r\n\t\t\t\t\t$persons = $visibleAddonContainer.find('[data-js=\"needs\"].individual .person');\r\n\r\n\t\t\t\tif ($persons.length) {\r\n\t\t\t\t\t$persons.each(function (index) {\r\n\t\t\t\t\t\tvar $person = $(this);\r\n\r\n\t\t\t\t\t\tif (i === index) {\r\n\t\t\t\t\t\t\tdataPerson.baseprice = Number($person.data('baseprice'));\r\n\t\t\t\t\t\t\tdataPerson.excess = Number($person.data('excess'));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdataPerson.baseprice = $visibleAddonContainer.data('basepriceinclmedical');\r\n\t\t\t\t\tdataPerson.excess = $visibleAddonContainer.data('excess');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ($field === null || typeof ($field) === 'undefined' || $field.length === 0 || ($field.is('option') && Number($field.val()) === -1)) { return false; }\r\n\r\n\t\t\t\tdataPerson.extras = dataPerson.extras || [];\r\n\r\n\t\t\t\tvar $parent = $field.parent(),\r\n\t\t\t\t\tisInput = $field.is('input'),\r\n\t\t\t\t\tname = isInput ? $parent.find('[data-js=\"addonname\"]').text() : $parent.find('option:first').text() + ' ' + $field.data('cancellationvalue'),\r\n\t\t\t\t\tprice = isInput ? Number($parent.find('label .more-details [data-currentprice]').data('currentprice')) : $field.data('price');\r\n\r\n\t\t\t\tdataPerson.extras.push({ id: $field.val(), name: name, price: price, excessprice: $field.data('addon-excess-price'), showMedical: $field.data('ismedical') === true ? !$field.parents('li').hasClass('hide') : true });\r\n\t\t\t};\r\n\r\n\t\t\tself.setPricesInPricebreakdown = function ($lightbox) {\r\n\t\t\t\tvar currency = $lightbox.find('[data-js=\"currency\"]').text(),\r\n\t\t\t\t\t$personContainer = $lightbox.find('.person'),\r\n\t\t\t\t\ttotalPersons = 0;\r\n\r\n\t\t\t\t$personContainer.each(function (index) {\r\n\t\t\t\t\tvar dataPerson = self.priceBreakdownData.persons[index],\r\n\t\t\t\t\t\t$person = $(this),\r\n\t\t\t\t\t\t$basePerson = $person.find('[data-js=\"personbaseprice\"]'),\r\n\t\t\t\t\t\t$totalPerson = $person.find('[data-js=\"persontotalprice\"]'),\r\n\t\t\t\t\t\t$extrasContainer = $person.find('.extras');\r\n\r\n\t\t\t\t\tif (typeof (dataPerson) !== 'undefined' && typeof (dataPerson.baseprice) !== 'undefined') {\r\n\t\t\t\t\t\tvar\ttotalPerson = dataPerson.baseprice;\r\n\t\t\t\t\t\r\n\t\t\t\t\t\ttotalPerson = self.priceHelper.setExcess(self.priceBreakdownData.hasExcess, self.priceBreakdownData.presetExcess, totalPerson, dataPerson.excess);\r\n\t\t\t\t\t\t$basePerson.text(totalPerson);\r\n\r\n\t\t\t\t\t\tif (typeof (dataPerson.extras) !== 'undefined') {\r\n\t\t\t\t\t\t\tvar $ul = $('

    ');\r\n\r\n\t\t\t\t\t\t\tdataPerson.extras.forEach(function (extras) {\r\n\t\t\t\t\t\t\t\tif (extras.showMedical) {\r\n\t\t\t\t\t\t\t\t\tvar $li = $('
  • ' +\r\n\t\t\t\t\t\t\t\t\t\textras.name +\r\n\t\t\t\t\t\t\t\t\t\t' (' +\r\n\t\t\t\t\t\t\t\t\t\textras.price +\r\n\t\t\t\t\t\t\t\t\t\t' ' +\r\n\t\t\t\t\t\t\t\t\t\tcurrency +\r\n\t\t\t\t\t\t\t\t\t\t')' +\r\n\t\t\t\t\t\t\t\t\t\t'
  • ');\r\n\t\t\t\t\t\t\t\t\t$ul.append($li);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\ttotalPerson = self.priceHelper.setExcess(self.priceBreakdownData.hasExcess, self.priceBreakdownData.presetExcess, totalPerson, extras.excessprice);\r\n\t\t\t\t\t\t\t\t\t$basePerson.text(totalPerson);\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t$extrasContainer.empty();\r\n\t\t\t\t\t\t\tif ($ul.find('li').length === 0) {\r\n\t\t\t\t\t\t\t\t$extrasContainer.text('-');\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t$extrasContainer.append($ul);\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t$extrasContainer.find('[data-extras]').each(function() {\r\n\t\t\t\t\t\t\t\ttotalPerson += Number($(this).data('extras'));\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t$extrasContainer.each(function () {\r\n\t\t\t\t\t\t\t\t$(this).empty();\r\n\t\t\t\t\t\t\t\t$(this).text('-');\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t$totalPerson.text(totalPerson);\r\n\t\t\t\t\t\ttotalPersons += totalPerson;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tself.setTaxDiscountAndTotal($lightbox, totalPersons);\r\n\t\t\t}\r\n\r\n\t\t\tself.setTaxDiscountAndTotal = function ($lightbox, totalPersons) {\r\n\t\t\t\tvar discount = self.priceBreakdownData.discount,\r\n\t\t\t\t\ttax = self.priceBreakdownData.tax,\r\n\t\t\t\t\t$lightboxTotal = $lightbox.find('[data-js=\"totalprice\"]'),\r\n\t\t\t\t\t$lightboxTax = $lightbox.find('[data-js=\"tax\"]'),\r\n\t\t\t\t\t$lightboxDiscount = $lightbox.find('[data-js=\"discount\"]');\r\n\r\n\t\t\t\tif (discount > 0) {\r\n\t\t\t\t\t$lightboxDiscount.text(self.priceHelper.formatPrice(totalPersons * (discount * 0.01), true));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (tax > 0) {\r\n\t\t\t\t\t$lightboxTax.text(self.priceHelper.formatPrice((totalPersons - discount) * (tax * 0.01), true));\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$lightboxTotal.text(self.priceBreakdownData.totalPrice);\r\n\t\t\t}\r\n\r\n\t\t\tself.pullPriceFromProductBox = function ($productBox, $lightbox) {\r\n\t\t\t\tvar $addonsContainer = $productBox.find('.addon-container:not(.hide)'),\r\n\t\t\t\t\t$selectedFields = $addonsContainer.find('input[type=\"checkbox\"]:checked:not([disabled]), select:not([disabled]) option:selected'),\r\n\t\t\t\t\t$excessContainer = $productBox.find('.excess-container'),\r\n\t\t\t\t\t$needs = $productBox.find('[data-js=\"needs\"]'),\r\n\t\t\t\t\tinsuranceTypeExists = $productBox.find('.insurance-type.field').length > 0,\r\n\t\t\t\t\tneedsLimit = insuranceTypeExists ? 2 : 1;\r\n\r\n\t\t\t\tself.priceBreakdownData.totalPrice = $productBox.find('.price [data-oldprice]').text();\r\n\t\t\t\tself.priceBreakdownData.tax = Number($productBox.data('tax-pct'));\r\n\t\t\t\tself.priceBreakdownData.discount = Number($productBox.find('[data-js=\"discount-rate\"]').text());\r\n\t\t\t\tself.priceBreakdownData.presetExcess = self.priceHelper.hasPresetExcess($excessContainer);\r\n\t\t\t\tself.priceBreakdownData.hasExcess = self.priceHelper.hasExcess($excessContainer);\r\n\t\t\t\tself.priceBreakdownData.persons = [];\r\n\r\n\t\t\t\tif ($needs.length > needsLimit) {\r\n\t\t\t\t\tif ($selectedFields.length > 0) {\r\n\t\t\t\t\t\t$selectedFields.each(function () {\r\n\t\t\t\t\t\t\tvar $field = $(this),\r\n\t\t\t\t\t\t\t\t$individualContainer = $field.parents('div[data-js=\"needs\"].individual:not(.hide)');\r\n\r\n\t\t\t\t\t\t\tif ($individualContainer.length) {\r\n\t\t\t\t\t\t\t\tself.setPersonData($field.closest('.person').prevAll().length, $field, $productBox);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tvar $hiddenIndividualContainer = $(this).parents('div[data-js=\"needs\"]').parent().find('.individual.hide');\r\n\r\n\t\t\t\t\t\t\t\t$hiddenIndividualContainer.find('.person').each(function () {\r\n\t\t\t\t\t\t\t\t\tvar $person = $(this);\r\n\r\n\t\t\t\t\t\t\t\t\tself.setPersonData($person.prevAll().length,\r\n\t\t\t\t\t\t\t\t\t\t$field.is('input')\r\n\t\t\t\t\t\t\t\t\t\t? $person.find('[value=\"' + $field.val() + '\"]')\r\n\t\t\t\t\t\t\t\t\t\t: $person.find('option[value=\"' + $field.val() + '\"]'),\r\n\t\t\t\t\t\t\t\t\t\t$productBox);\r\n\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$productBox.find('.addon-container:not(.hide) [data-js=\"needs\"].individual .person').each(function () {\r\n\t\t\t\t\t\t\tself.setPersonData($(this).prevAll().length, null, $productBox);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t} else if ($needs.length === needsLimit) {\r\n\t\t\t\t\tif ($selectedFields.length > 0) {\r\n\t\t\t\t\t\t$selectedFields.each(function () {\r\n\t\t\t\t\t\t\tself.setPersonData(0, $(this), $productBox);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tself.setPersonData(0, null, $productBox);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tself.setPricesInPricebreakdown($lightbox);\r\n\t\t\t}\r\n\r\n\t\t\tself.initPriceBreakdown = function($parent) {\r\n\t\t\t\tvar selector = \"price-breakdown-lightbox\";\r\n\r\n\t\t\t\tif (typeof ($parent) !== 'undefined') {\r\n\t\t\t\t\tselector = $parent.find('[id^=\"' + selector + '\"]').attr('id');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar $lightbox = $('body').find('#' + selector);\r\n\r\n\t\t\t\tif (!$lightbox || !$lightbox.length) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ($parent.hasClass('booking')) {\r\n\t\t\t\t\tself.pullPriceFromProductBox($parent, $lightbox);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tself.popup.openPopup(\r\n\t\t\t\t\t'#' + selector,\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\telementParse: function (item) {\r\n\t\t\t\t\t\t\t$(item.src).removeClass('hide');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\ttrue,\r\n\t\t\t\t\tfalse\r\n\t\t\t\t);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tERVPriceBreakdown.prototype.init = function() {\r\n\t\t\tvar self = this;\r\n\r\n\t\t\t$(document).on('click', '.price-breakdown', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\te.stopPropagation();\r\n\r\n\t\t\t\tself.initPriceBreakdown($(this).closest('.box'));\r\n\t\t\t});\r\n\t\t}\r\n\r\n\treturn ERVPriceBreakdown;\r\n});","define(['jquery','erv_framework','tagit'], function ($, Framework) {\r\n\r\n\tvar ERVTagit = function () {\r\n\t\tvar self = this;\r\n\t\tself.$ervBody = $('#erv-body');\r\n\t\tself.framework = new Framework();\r\n\r\n\t\tif (typeof (Event) === 'function') {\r\n\t\t\tself.inputEvent = new Event('input', { 'bubbles': true });\r\n\t\t} else {\r\n\t\t\tself.inputEvent = document.createEvent('Event');\r\n\t\t\tself.inputEvent.initEvent('input', true, true);\r\n\t\t}\r\n\r\n\t\tself.availableCountryTags = [];\r\n\t\tself.initCountryList = function (selector, data) {\r\n\t\t\t$(selector).each(function () {\r\n\t\t\t\tvar $this = $(this);\r\n\t\t\t\t$this.availableCountryTags = self.availableCountryTags;\r\n\r\n\t\t\t\tvar $currentTagit = $this.tagit({\r\n\t\t\t\t\tavailableTags: (data != undefined ? data : []),\r\n\t\t\t\t\tautocomplete: {\r\n\t\t\t\t\t\tdelay: 0,\r\n\t\t\t\t\t\tminLength: 0,\r\n\t\t\t\t\t\tautoFocus: true\r\n\t\t\t\t\t},\r\n\t\t\t\t\tallowSpaces: true,\r\n\t\t\t\t\tallowDuplicates: false,\r\n\t\t\t\t\tallowNewTags: false,\r\n\t\t\t\t\ttriggerKeys: ['enter', 'comma', 'tab'],\r\n\t\t\t\t\ttagLimit: 1,\r\n\t\t\t\t\tbeforeTagAdded: function (event, ui) {\r\n\t\t\t\t\t\treturn self.tagitBeforeAdded(data, event, ui);\r\n\t\t\t\t\t},\r\n\t\t\t\t\tafterTagAdded: function (event, ui) {\r\n\t\t\t\t\t\tvar tag = self.tagitAfterAdded($this.availableCountryTags, event, ui);\r\n\r\n\t\t\t\t\t\tif (typeof (tag) != 'undefined') {\r\n\t\t\t\t\t\t\t$(event.target).val(tag.iso);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t$(this)[0].dispatchEvent(self.inputEvent);\r\n\r\n\t\t\t\t\t\tif (typeof (self.framework.cookies.get(window.ERV.ConfigurationSettings.CookieStrings.GTranslate)) !== 'undefined') {\r\n\t\t\t\t\t\t\t$('body').find('.tagit .tagit-choice').addClass('notranslate');\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t$(this).parents('.tagit-select').find('.tagit-new input').addClass('hide');\r\n\t\t\t\t\t},\r\n\t\t\t\t\tafterTagRemoved: function (event, ui) {\r\n\t\t\t\t\t\tself.tagitAfterRemoved($this.availableCountryTags, event, ui);\r\n\t\t\t\t\t\t$(this).parents('.tagit-select').find('.tagit-new input').removeClass('hide');\r\n\t\t\t\t\t\t$(this)[0].dispatchEvent(self.inputEvent);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\t$.each($this.availableCountryTags, function () {\r\n\t\t\t\t\tif ($this.attr('value') === this.iso) {\r\n\t\t\t\t\t\t$currentTagit.tagit('createTag', this.label);\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tself.tagitAutocompleteEvents(true, $this.parent());\r\n\t\t\t});\r\n\t\t};\r\n\t};\r\n\t\r\n\tERVTagit.prototype.tagitBeforeAdded = function (data, event, ui) {\r\n\t\tvar $targetParent = $(event.target).parent();\r\n\t\tif ($.inArray(ui.tagLabel, data) === -1 || $targetParent.find('.tagit-choice').length > 0) {\r\n\t\t\t$targetParent.find('.ui-autocomplete-input').val('');\r\n\t\t\treturn false;\r\n\t\t}\r\n\t\treturn true;\r\n\t}\r\n\r\n\tERVTagit.prototype.tagitAfterAdded = function (availableTags, event, ui) {\r\n\t\tvar tag = $.grep(availableTags, function (e) { return e.label === ui.tagLabel; })[0],\r\n\t\t\tself = this;\r\n\r\n\t\tself.tagitAfterAddedValidation($(event.target).parent());\r\n\t\tself.tagitAutocompleteEvents(false, $(event.target).parent());\r\n\r\n\t\treturn tag;\r\n\t}\r\n\r\n\tERVTagit.prototype.tagitAfterRemoved = function (availableTags, event, ui) {\r\n\t\tvar tag = $.grep(availableTags, function (e) { return e.label === ui.tagLabel; })[0],\r\n\t\t\tself = this;\r\n\r\n\t\tif (typeof (tag) != 'undefined') {\r\n\t\t\t$(event.target).val('');\r\n\t\t}\r\n\r\n\t\tself.tagitAfterRemovedValidation($(event.target).parent());\r\n\t\tself.tagitAutocompleteEvents(true, $(event.target).parent());\r\n\t}\r\n\r\n\tERVTagit.prototype.tagitAfterAddedValidation = function ($targetParent) {\r\n\t\tvar $tagitHidden = $targetParent.find('.tagit-hidden-field');\r\n\t\tvar $ul = $tagitHidden.parent().find('.tagit.ui-widget');\r\n\t\t$tagitHidden.removeClass('input-validation-error');\r\n\t\t$ul.removeClass('input-validation-error');\r\n\t\t$ul.addClass('input-validation-valid');\r\n\t\t$targetParent.find('.field-validation-error').empty();\r\n\t}\r\n\r\n\tERVTagit.prototype.tagitAfterRemovedValidation = function ($targetParent) {\r\n\t\tvar $tagitHidden = $targetParent.find('.tagit-hidden-field');\r\n\t\tvar $ul = $tagitHidden.parent().find('.tagit.ui-widget');\r\n\r\n\t\tif ($tagitHidden.val() === '') {\r\n\t\t\t$tagitHidden.addClass('input-validation-error');\r\n\t\t\t$ul.addClass('input-validation-error');\r\n\t\t\t$ul.removeClass('input-validation-valid');\r\n\t\t} else {\r\n\t\t\t$tagitHidden.removeClass('input-validation-error');\r\n\t\t\t$ul.removeClass('input-validation-error');\r\n\t\t\t$ul.addClass('input-validation-valid');\r\n\t\t\t$targetParent.find('.field-validation-error').empty();\r\n\t\t}\r\n\t}\r\n\r\n\tERVTagit.prototype.tagitAutocompleteEvents = function (init, $targetParent) {\r\n\t\tvar $autoCompleteInput = $targetParent.parents('.field').find('.ui-widget-content.ui-autocomplete-input'),\r\n\t\t\t$autoCompleteCorner = $targetParent.parents('.field').find('ul.tagit.ui-widget.ui-widget-content.ui-corner-all');\r\n\r\n\t\tif (typeof (init) != 'undefined' && !init) {\r\n\t\t\t$autoCompleteInput.off('click');\r\n\t\t\t$autoCompleteCorner.off('click');\r\n\t\t\t$autoCompleteInput.css('visibility', 'hidden');\r\n\t\t} else {\r\n\t\t\t$autoCompleteInput.on('click', function () {\r\n\t\t\t\t$(this).autocomplete('search', $(this).val());\r\n\t\t\t});\r\n\r\n\t\t\t$autoCompleteCorner.on('click', function () {\r\n\t\t\t\t$autoCompleteInput.autocomplete('search', '');\r\n\t\t\t});\r\n\r\n\t\t\t$autoCompleteInput.css('visibility', 'visible');\r\n\t\t\t$('.tagit-autocomplete').css('display', 'none');\r\n\t\t}\r\n\t}\r\n\r\n\tERVTagit.prototype.init = function () {\r\n\t\tvar self = this;\r\n\r\n\t\tself.$ervBody.find('.tagit .ui-widget-content.ui-autocomplete-input').on('blur', function () {\r\n\t\t\tvar $tagitElement = $(this).parents('.form-element');\r\n\t\t\tvar $tagitUl = $tagitElement.find('ul.tagit');\r\n\t\t\tvar $hiddenField = $tagitElement.find('.tagit-hidden-field');\r\n\r\n\t\t\tif ($hiddenField.data('val') === true && ($hiddenField.length === 0 || $hiddenField.val() === '')) {\r\n\t\t\t\t$hiddenField.addClass('input-validation-error');\r\n\t\t\t\t$tagitUl.addClass('input-validation-error');\r\n\t\t\t\t$tagitUl.removeClass('input-validation-valid');\r\n\t\t\t} else {\r\n\t\t\t\t$hiddenField.removeClass('input-validation-error');\r\n\t\t\t\t$tagitUl.removeClass('input-validation-error');\r\n\t\t\t\t$tagitUl.addClass('input-validation-valid');\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tself.initCountryList('.tagme', self.$ervBody.find('.country-list').first().find('li').map(function () {\r\n\t\t\t\tself.availableCountryTags.push({ label: $(this).text(), iso: $(this).data('value') });\r\n\t\t\t\treturn $(this).text();\r\n\t\t\t})\r\n\t\t);\r\n\t}\r\n\r\n\treturn ERVTagit;\r\n});","define(['jquery'], function ($) {\r\n\r\n\tvar ERVTracking = function () {\r\n\t\tvar self = this;\r\n\r\n\t\tself.$ervBody = $('#erv-body');\r\n\r\n\t\tself.createFunctionWithTimeout = function (callback, timeout) {\r\n\t\t\tvar called = false;\r\n\t\t\tfunction fn() {\r\n\t\t\t\tif (!called) {\r\n\t\t\t\t\tcalled = true;\r\n\r\n\t\t\t\t\tif (typeof (callback) == 'function') {\r\n\t\t\t\t\t\tcallback();\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\tsetTimeout(fn, timeout || 1000);\r\n\t\t\treturn fn;\r\n\t\t};\r\n\r\n\t\tself.initCustomEvents = function () {\r\n\t\t\t$('body').on('click change', '*[data-customevent]', function (e) {\r\n\t\t\t\tvar $this = $(this),\r\n\t\t\t\t\teventName = $this.data('customevent'),\r\n\t\t\t\t\tcategory = $this.data('customeventcategory'),\r\n\t\t\t\t\taction = $this.data('customeventaction'),\r\n\t\t\t\t\tvalue = $this.data('customeventvalue');\r\n\r\n\t\t\t\tif (e.type !== eventName) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ($this.is('select') && typeof (value) === 'undefined') {\r\n\t\t\t\t\tvalue = $this.val();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tself.trackEvent(category, action, value);\r\n\t\t\t});\r\n\t\t};\r\n\r\n self.initErrorHandling = function() {\r\n\t\t\tvar self = this;\r\n\t\t\twindow.onerror = function (msg, url, lineNo, columnNo, error) {\r\n\t\t\t\tvar message = {\r\n\t\t\t\t\t'message': msg,\r\n\t\t\t\t\t'file': url ? url.split(/[\\\\/]/).pop() : url,\r\n\t\t\t\t\t'line': lineNo,\r\n\t\t\t\t\t'column': columnNo,\r\n\t\t\t\t\t'object': error\r\n },\r\n\t\t\t\tskip =\t(message.file == 'fbevents.js' && $('body').hasClass('ie')) ||\r\n\t\t\t\t\t\t(message.file == 'conversion_async.js') || \r\n\t\t\t\t\t\t(message.file.indexOf('aquant.js') > -1) || \r\n\t\t\t\t\t\t(message.message.indexOf(\"meta[name='supported-color-schemes']\") > -1) ||\r\n\t\t\t\t\t\t(message.file.indexOf('tp.widget') > -1) || // exclude Trustpilot error\r\n\t\t\t\t\t\t(message.file.indexOf('jsTag?ap=') > -1); // exclude adtraction errors\r\n\r\n\r\n if (!skip) {\r\n\t\t\t\t\tself.trackEvent('Exception', 'Error', JSON.stringify(message));\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t};\r\n\t\t}\r\n\t};\r\n\r\n\tERVTracking.prototype.hasGA = function () {\r\n\t\treturn typeof (ga) !== 'undefined' && typeof (ga.getAll) === 'function' && ga.getAll().length;\r\n\t};\r\n\r\n\tERVTracking.prototype.trackEvent = function (category, action, label, value, cb) {\r\n\t\tvar self = this;\r\n\t\tif (self.hasGA()) {\r\n\t\t\taction = typeof (action) === 'undefined' ? 'Submit' : action;\r\n\r\n\t\t\tvar tracker = ga.getAll()[0];\r\n\r\n\t\t\ttracker.send('event', category, action, label, value, {\r\n\t\t\t\thitCallback: self.createFunctionWithTimeout(cb)\r\n\t\t\t});\r\n\r\n\t\t} else if (typeof (cb) === 'function') {\r\n\t\t\tcb();\r\n\t\t}\r\n\t};\r\n\r\n\tERVTracking.prototype.init = function () {\r\n\t\tvar self = this;\r\n\t\tself.initCustomEvents();\r\n\r\n\t\t//display js errors if dev/test/qa, js to analytics if production\r\n\t\tif (!window.ERV.ConfigurationSettings.IsDev) {\r\n\t\t\tself.initErrorHandling();\r\n\t\t}\r\n\t}\r\n\r\n\treturn ERVTracking;\r\n});","define(['jquery', 'erv_framework', 'forms'], function ($, Framework, Forms) {\r\n\r\n\tvar ERVTranslate = function () {\r\n\t\tvar self = this;\r\n\t\tself.framework = new Framework();\r\n\t\tself.forms = new Forms();\r\n\t\tself.cookieName = window.ERV.ConfigurationSettings.CookieStrings.GTranslate;\r\n\t\tself.$body = $('body');\r\n\t};\r\n\r\n\tERVTranslate.prototype.initNoTranslate = function () {\r\n\t\tvar self = this,\r\n\t\t\t$html = $('html'),\r\n\t\t\tdefaultCurrency = $html.data('currency');\r\n\r\n\t\tif (typeof (defaultCurrency) !== 'undefined' && typeof (self.framework.cookies.get(self.cookieName)) !== 'undefined') {\r\n\t\t\tvar pattern = new RegExp('\\\\b(' + defaultCurrency + ')', 'gi'),\r\n\t\t\t\treplaceWith = '$1';\r\n\r\n\t\t\t$('body .price, body [data-js=\"currency\"]').each(function () {\r\n\t\t\t\tvar $price = $(this);\r\n\t\t\t\t$price.html($price.html().replace(pattern, replaceWith));\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\t\r\n\tERVTranslate.prototype.init = function () {\r\n\t\twindow.ERV = window.ERV || {};\r\n\t\twindow.ERV.translation = window.ERV.translation || {};\r\n window.ERV.translation = googleTranslateElementInit;\r\n }\r\n\t\r\n\treturn ERVTranslate;\r\n});\r\n\r\n/* GTranslate start */\r\neval(function (p, a, c, k, e, r) { e = function (c) { return (c < a ? '' : e(parseInt(c / a))) + ((c = c % a) > 35 ? String.fromCharCode(c + 29) : c.toString(36)) }; if (!''.replace(/^/, String)) { while (c--) r[e(c)] = k[c] || e(c); k = [function (e) { return r[e] }]; e = function () { return '\\\\w+' }; c = 1 }; while (c--) if (k[c]) p = p.replace(new RegExp('\\\\b' + e(c) + '\\\\b', 'g'), k[c]); return p }('6 7(a,b){n{4(2.9){3 c=2.9(\"o\");c.p(b,f,f);a.q(c)}g{3 c=2.r();a.s(\\'t\\'+b,c)}}u(e){}}6 h(a){4(a.8)a=a.8;4(a==\\'\\')v;3 b=a.w(\\'|\\')[1];3 c;3 d=2.x(\\'y\\');z(3 i=0;i 1 && !$this.hasClass('no-arrow') || $this.hasClass('allow-single-link') && $children.length > 0) {\r\n\t\t\t\t\t\t$this.addClass('arrow');\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif ($this.hasClass('mainmenu') && !('ontouchstart' in window)) {\r\n\t\t\t\t\t\t$this.on('mouseenter', function (e) {\r\n\t\t\t\t\t\t\tif ($children.length == 1) {\r\n\t\t\t\t\t\t\t\t$expandTriggers.parent().removeClass('is-expanded');\r\n\t\t\t\t\t\t\t\t$(document).trigger(\"expandtrigger\", { expanded: false, item: $this });\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\telse if (!$linkList.hasClass('is-expanded')) {\r\n\t\t\t\t\t\t\t\tself.execTrigger($this, $expandTriggers, e);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t\t$('#header').on('mouseleave', function (e) {\r\n\t\t\t\t\t\t\tif ($linkList.hasClass('is-expanded')) {\r\n\t\t\t\t\t\t\t\tself.execTrigger($this, $expandTriggers, e);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tself.getCorrectLeftMarginValue = function($element) {\r\n var offsetLeft = $element.offset().left;\r\n\t\t\tvar offsetRight = ($(window).width() - (offsetLeft + $element.outerWidth()));\r\n\t\t\tif(offsetRight >= 0 && offsetLeft >= 0) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n if (offsetLeft < 0) {\r\n return -offsetLeft;\r\n }\r\n if (offsetRight < 0) {\r\n return offsetRight;\r\n }\r\n }\r\n\r\n\t\tself.preventWindowOverflow = function($element) {\r\n\t\t\tif (!self.isLargeDevice()) {\r\n return;\r\n }\r\n\t\t\tvar leftMargin = self.getCorrectLeftMarginValue($element);\r\n\t\t\tif (leftMargin) {\r\n\t\t\t\treturn $element.css(\"margin-left\", leftMargin + \"px\");\r\n\t\t\t}\r\n }\r\n\r\n\t\tself.execTrigger = function ($trigger, $expandTriggers, e) {\r\n\t\t\te.stopPropagation();\r\n\r\n\t\t\tvar $parent = $trigger.parent(),\r\n\t\t\t\t$listItems = $parent.find('ul li');\r\n\r\n\t\t\t$(document).trigger(\"expandtrigger\", { expanded: $parent.hasClass('is-expanded'), item: $trigger });\r\n\t\t\tif ($listItems.length === 1 && !$trigger.hasClass('allow-single-link')) {\r\n\t\t\t\twindow.location = $listItems.first().find('a').attr('href');\r\n\t\t\t} else if ($listItems.length > 1 || $trigger.hasClass('allow-single-link') && $listItems.length > 0) {\r\n\t\t\t\t$parent.toggleClass('is-expanded');\r\n\t\t\t\t$parent.find('.fade-in').removeClass('fade-in').removeAttr('style');\r\n\t\t\t\t$expandTriggers.not($trigger).parent().removeClass('is-expanded');\r\n\t\t\t\tvar $sublist = $parent.find('.sub-list');\r\n\r\n\t\t\t\tif ($sublist.length) {\r\n\t\t\t\t\tif ($parent.hasClass('is-expanded')) {\r\n\t\t\t\t\t\t$sublist.outerWidth(); //reflow\r\n self.preventWindowOverflow($sublist);\r\n $sublist.addClass('fade-in');\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar $list = $trigger.parent().find('> ul');\r\n\t\t\t\t\t$list.outerWidth(); //reflow\r\n self.preventWindowOverflow($list);\r\n\r\n\t\t\t\t\tif ($parent.hasClass('is-expanded')) {\r\n\t\t\t\t\t\t$list.addClass('fade-in');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tself.initTriggers = function (selector) {\r\n\t\t\t//used for menue (main menu/device menu) and footer (in small)\r\n\t\t\tvar $expandTriggers = self.$ervBody.find(selector + ' [data-js=\"expandtrigger\"]');\r\n\r\n\t\t\t$expandTriggers.on('click',\r\n\t\t\t\tfunction (e) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\te.stopPropagation();\r\n\r\n\t\t\t\t\tvar $trigger = $(this);\r\n\t\t\t\t\tvar $iconContainer = $trigger.find('span');\r\n\t\t\t\t\tvar $container = $trigger.parent().find('[data-js=\"expandcontainer\"]');\r\n\t\t\t\t\t$container.toggleClass('hide');\r\n\r\n\t\t\t\t\tif ($container.hasClass('hide')) {\r\n\t\t\t\t\t\t$iconContainer.addClass('ergoicon-arrowthickdown');\r\n\t\t\t\t\t\t$iconContainer.removeClass('ergoicon-arrowthickup');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$iconContainer.addClass('ergoicon-arrowthickup');\r\n\t\t\t\t\t\t$iconContainer.removeClass('ergoicon-arrowthickdown');\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t};\r\n\r\n\t\tself.initDropDowns = function () {\r\n\t\t\t$(document).on('ervShowDropdown', function (e) {\r\n\t\t\t\tvar $ul = e.dropdown.children('.dropdown-menu');\r\n\t\t\t\tvar $toggle = e.dropdown.children('.dropdown-toggle');\r\n\t\t\t\tvar ulOffset = $ul.offset();\r\n\t\t\t\tvar spaceUp = (ulOffset.top - $toggle.height() - $ul.height()) - $(window).scrollTop();\r\n\t\t\t\tvar spaceDown = $(window).scrollTop() + $(window).height() - (ulOffset.top + $ul.height());\r\n\t\t\t\tif (spaceDown < 0 && (spaceUp >= 0 || spaceUp > spaceDown)) {\r\n\t\t\t\t\t$ul.css('top', -($ul.height()) - 25);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$ul.css('top', '');\r\n\t\t\t\t}\r\n\t\t\t}).on('ervHideDropdown', function (e) {\r\n\t\t\t\tvar $ul = e.dropdown.children('.dropdown-menu');\r\n\t\t\t\t$ul.css('top', '');\r\n\t\t\t});\r\n\r\n\t\t\t$(document).on('click', '[data-js=\"dropdown-toggle\"]', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tvar $dropDown = $(this).parents('.dropdown');\r\n\t\t\t\tif ($dropDown.hasClass('open')) {\r\n\t\t\t\t\t$dropDown.removeClass('open');\r\n\t\t\t\t\t$(document).trigger({\r\n\t\t\t\t\t\ttype: 'ervHideDropdown',\r\n\t\t\t\t\t\tdropdown: $dropDown\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\tself.$ervBody.find('.dropdown.open').removeClass('open dropup');\r\n\t\t\t\t\t$dropDown.addClass('open');\r\n\t\t\t\t\t$(document).trigger({\r\n\t\t\t\t\t\ttype: 'ervShowDropdown',\r\n\t\t\t\t\t\tdropdown: $dropDown\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t$(document).mouseup(function (e) {\r\n\t\t\t\tvar $containers = self.$ervBody.find('.dropdown');\r\n\r\n\t\t\t\t$containers.each(function () {\r\n\t\t\t\t\tvar $container = $(this);\r\n\r\n\t\t\t\t\tif (!$container.is(e.target) && $container.has(e.target).length === 0) {\r\n\t\t\t\t\t\t$container.removeClass('open dropup');\r\n\t\t\t\t\t\t$(document).trigger({\r\n\t\t\t\t\t\t\ttype: 'ervHideDropdown',\r\n\t\t\t\t\t\t\tdropdown: $container\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t};\r\n\t};\r\n\r\n\tERVTriggers.prototype.init = function() {\r\n\t\tvar self = this;\r\n\r\n\t\tself.initTogglers('nav');\r\n\t\tself.initTriggers();\r\n\t\tself.initDropDowns();\r\n\t\tExpandCollapse.initExpandCollapse();\r\n\r\n\t\tself.$ervBody.find('[data-js=trigger-print]').on('click', function (e) {\r\n\t\t\te.preventDefault();\r\n\t\t\twindow.print();\r\n\t\t});\r\n\t};\r\n\r\n\treturn ERVTriggers;\r\n});","define(['jquery', 'common', 'booking_rules', 'jqueryvalidate', 'jqueryvalidate_unobtrusive'],\r\n\tfunction ($, Common, BookingRules) {\r\n\t\tvar ERVValidationExtensions = function () {\r\n\t\t\tvar self = this;\r\n\t\t\tself.common = new Common();\r\n\t\t\tself.bookingRules = new BookingRules();\r\n\t\t}\r\n\r\n\t\tERVValidationExtensions.prototype.init = function () {\r\n\t\t\tvar self = this;\r\n\r\n\t\t\t$.validator.setDefaults({\r\n\t\t\t\tignore: '.ignore-validation',\r\n\t\t\t\tvalidClass: 'input-validation-valid'\r\n\t\t\t});\r\n\r\n\t\t\t$.validator.methods.number = function (value, element) {\r\n\t\t\t\treturn this.optional(element) || /^(?:-?\\d+|-?\\d{1,3}(?:,\\d{3})+)?(?:(\\.|,)\\d+)?$/.test(value);\r\n\t\t\t}\r\n\r\n\t\t\t$.validator.addMethod('bookingbusinesstraveldays', function (value, element) {\r\n\t\t\t\treturn self.bookingRules.businessTravelDaysRule($(element).closest('form'));\r\n\t\t\t});\r\n\r\n\t\t\t$.validator.unobtrusive.adapters.add('bookingbusinesstraveldays', [], function (options) {\r\n\t\t\t\toptions.rules['bookingbusinesstraveldays'] = {};\r\n\t\t\t\toptions.messages['bookingbusinesstraveldays'] = options.message;\r\n\t\t\t});\r\n\r\n\t\t\t$.validator.addMethod('timeformat', function (value) {\r\n\t\t\t\treturn /^(\\d|0\\d|1?\\d|2[0-3]):[0-5]?\\d$/.test(value);\r\n\t\t\t});\r\n\r\n\t\t\t$.validator.unobtrusive.adapters.add('timeformat', [], function (options) {\r\n\t\t\t\toptions.rules['timeformat'] = {};\r\n\t\t\t\toptions.messages['timeformat'] = options.message;\r\n\t\t\t});\r\n\r\n\t\t\t$.validator.addMethod('requiredif', function (value, element, parameters) {\r\n\t\t\t\tvar targetvalue = parameters['targetvalue'];\r\n\t\t\t\ttargetvalue = (targetvalue == null ? '' : targetvalue).toString();\r\n\r\n\t\t\t\tvar $control = $('[id=\"' + parameters['dependentproperty'] + '\"]');\r\n\r\n\t\t\t\tif ($control.length === 0) {\r\n\t\t\t\t\t$control = $('#Input_' + parameters['dependentproperty']);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ($control.length === 0) {\r\n\t\t\t\t\t$control = $('#InputRequire_' + parameters['dependentproperty']);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ($control.length === 0) {\r\n\t\t\t\t\t$control = $('[id$=\"_' + parameters['dependentproperty'] + '\"]');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ($control.length === 0) {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar controltype = $control.attr('type');\r\n\r\n\t\t\t\tvar actualvalue =\r\n\t\t\t\t\tcontroltype === 'checkbox' ?\r\n\t\t\t\t\t\t$control.prop('checked').toString() :\r\n\t\t\t\t\t\t$control.val();\r\n\r\n\t\t\t\tif (typeof (actualvalue) != 'undefined' && targetvalue.toLowerCase() === actualvalue.toLowerCase()) {\r\n\t\t\t\t\treturn $.validator.methods.required.call(this, value, element, parameters);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar $controlWithNameMatchingAndChecked = $('input[name$=\".' + parameters['dependentproperty'].replace + '\"]:checked');\r\n\r\n\t\t\t\tif ($controlWithNameMatchingAndChecked.length) {\r\n\t\t\t\t\tif (targetvalue.toLowerCase() == $controlWithNameMatchingAndChecked.val().toLowerCase()) {\r\n\t\t\t\t\t\treturn $.validator.methods.required.call(this, value, element, parameters);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn true;\r\n\t\t\t});\r\n\r\n\t\t\t$.validator.unobtrusive.adapters.add('requiredif', ['dependentproperty', 'targetvalue'], function (options) {\r\n\t\t\t\toptions.rules['requiredif'] = {\r\n\t\t\t\t\tdependentproperty: options.params['dependentproperty'],\r\n\t\t\t\t\ttargetvalue: options.params['targetvalue']\r\n\t\t\t\t};\r\n\t\t\t\toptions.messages['requiredif'] = options.message;\r\n\t\t\t});\r\n\r\n\t\t\t$.validator.unobtrusive.adapters.add('dategreaterthan', ['otherproperty'], function (options) {\r\n\t\t\t\toptions.rules['dategreaterthan'] = { otherproperty: options.params.otherproperty };\r\n\t\t\t\toptions.messages['dategreaterthan'] = options.message;\r\n\t\t\t});\r\n\r\n\t\t\t$.validator.addMethod(\"dategreaterthan\", function (value, element, param) {\r\n\t\t\t\tvar $otherProp = $('#Input_' + param.otherproperty);\r\n\t\t\t\t$otherProp.removeClass('input-validation-error');\r\n\t\t\t\t$otherProp.parent().find('.field-validation-error').empty();\r\n\r\n\t\t\t\tif (value === '') {\r\n\t\t\t\t\t$(element).removeClass('input-validation-error');\r\n\t\t\t\t\t$(element).parent().find('.field-validation-error').empty();\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ($otherProp.val() !== '') {\r\n\t\t\t\t\tvar otherDate = $otherProp.val();\r\n\t\t\t\t\tvar date = value;\r\n\r\n\t\t\t\t\tif ($('html').data('domain') === 'dk') {\r\n\t\t\t\t\t\totherDate = self.common.formatting.reverseShortDate(otherDate);\r\n\t\t\t\t\t\tdate = self.common.formatting.reverseShortDate(date);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn new Date(date) >= new Date(otherDate);\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t});\r\n\r\n\t\t\t$.validator.unobtrusive.adapters.add('datelessthan', ['otherproperty'], function (options) {\r\n\t\t\t\toptions.rules['datelessthan'] = { otherproperty: options.params.otherproperty };\r\n\t\t\t\toptions.messages['datelessthan'] = options.message;\r\n\t\t\t});\r\n\r\n\t\t\t$.validator.addMethod(\"datelessthan\", function (value, element, param) {\r\n\t\t\t\tvar $otherProp = $('#Input_' + param.otherproperty);\r\n\t\t\t\t$otherProp.removeClass('input-validation-error');\r\n\t\t\t\t$otherProp.parent().find('.field-validation-error').empty();\r\n\t\t\t\tif (value === '') {\r\n\t\t\t\t\t$(element).removeClass('input-validation-error');\r\n\t\t\t\t\t$(element).parent().find('.field-validation-error').empty();\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ($otherProp.val() !== '') {\r\n\t\t\t\t\tvar otherDate = $otherProp.val();\r\n\t\t\t\t\tvar date = value;\r\n\r\n\t\t\t\t\tif ($('html').data('domain') === 'dk') {\r\n\t\t\t\t\t\tdate = self.common.formatting.reverseShortDate(date);\r\n\t\t\t\t\t\totherDate = self.common.formatting.reverseShortDate(otherDate);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\treturn new Date(date) <= new Date(otherDate);\r\n\t\t\t\t}\r\n\t\t\t\treturn true;\r\n\t\t\t});\r\n\r\n\t\t\t$.validator.addMethod(\"mandatory\", function (value, element) {\r\n\t\t\t\tvar $container = $(element).parent(),\r\n\t\t\t\t\t$visibleLabel = $container.find('label:not(.hidden)');\r\n\r\n\r\n\t\t\t\tif (typeof (value) === 'undefined') {\r\n\t\t\t\t\t$visibleLabel.addClass('input-validation-error');\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$visibleLabel.removeClass('input-validation-error');\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\t\t\t});\r\n\r\n\t\t\t$.validator.unobtrusive.adapters.add('mandatory', function (options) {\r\n\t\t\t\toptions.rules['mandatory'] = true;\r\n\r\n\t\t\t\tif (options.message) {\r\n\t\t\t\t\toptions.messages['mandatory'] = options.message;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t$.validator.addMethod('regextest', function (value, _, parameter) {\r\n\t\t\t\tvar regEx = new RegExp(parameter);\r\n return regEx.test(value);\r\n\t\t\t});\r\n\r\n\t\t\t$.validator.unobtrusive.adapters.add('numbergreaterthan', ['validatefrom'], function (options) {\r\n\t\t\t\toptions.rules['numbergreaterthan'] = {\r\n\t\t\t\t\tvalidatefrom: options.params['validatefrom']\r\n };\r\n\t\t\t\toptions.messages['numbergreaterthan'] = options.message;\r\n });\r\n\r\n\t\t\t$.validator.addMethod(\"numbergreaterthan\", function (value, _, param) {\r\n var validateFrom = parseFloat(param['validatefrom']);\r\n var floatValue = parseFloat(value.replace(',', '.'));\r\n\t\t\t\tvar roundedValue = Math.round((floatValue + Number.EPSILON) * 100) / 100;\r\n\t\t\t\treturn roundedValue > validateFrom;\r\n\t\t\t});\r\n\r\n $.validator.unobtrusive.adapters.add('dynamicregex', ['patternfrom'], function (options) {\r\n\t\t\t\toptions.rules['dynamicregex'] = {\r\n patternfrom: options.params['patternfrom']\r\n };\r\n\t\t\t\toptions.messages['dynamicregex'] = options.message;\r\n });\r\n\r\n\t\t\t$.validator.addMethod(\"dynamicregex\", function (value, element, param) {\r\n\t\t\t\tvar longname = $(element).attr('id');\r\n\t\t\t\tvar name = longname.split('_').slice(-1);\r\n\t\t\t\tvar patternName = longname.replace(name, param.patternfrom);\r\n\t\t\t\tvar $otherProp = $('#' + patternName);\r\n\t\t\t\tvar regEx = new RegExp($otherProp.val());\r\n return regEx.test(value);\r\n });\r\n\r\n\t\t\t$('form').removeData('validator');\r\n\t\t\t$('form').removeData('unobtrusiveValidation');\r\n\r\n\t\t\t$.validator.unobtrusive.parse(document);\r\n\r\n\t\t\t//happens for example in healthdeclaration for date fields\r\n\t\t\t//needs each\r\n\t\t\t$('.is-date input').not(\".ignore-validation\").each(function () {\r\n\t\t\t\t$(this).rules('remove', 'date');\r\n\t\t\t});\r\n\r\n\t\t\t//happens for example on allforonecancellation\r\n\t\t\t//needs each\r\n\t\t\t$('input[data-val-number][type=\"number\"]').each(function () {\r\n\t\t\t\t$(this).rules('remove', 'number');\r\n\t\t\t});\r\n\r\n\t\t\t//seems to be jquery validation which automatically adds this data attribute when @Html helper is used to create a textbox\r\n\t\t\t//Not sure but it also seems like it corrensponds with the prop being a nullable type in the viewmodel\r\n\t\t}\r\n\r\n\t\treturn ERVValidationExtensions;\r\n\t});","define(['jquery', 'forms', 'masking'], function ($, Forms, Masking) {\r\n\tvar Expatriate = function() {\r\n\t\tvar self = this;\r\n\r\n\t\tself.forms = new Forms();\r\n\t\tself.$ervBody = $('#erv-body');\r\n\t\tself.$form = $('.expatriatepage form[data-js-mainform]');\r\n\r\n\t\tself.deleteAge = function ($age) {\r\n\t\t\tvar deletedIndex = $age.data('id');\r\n\t\t\t$age.remove();\r\n\t\t\tself.refreshAges(deletedIndex);\r\n\t\t\treturn deletedIndex;\r\n\t\t};\r\n\t\t\r\n\t\tself.refreshAges = function (deletedIndex) {\r\n\t\t\tvar $allAdded = self.$ageList.find('.age.added');\r\n\t\t\tvar $allNext = $allAdded.filter(function () {\r\n\t\t\t\treturn ($(this).data('id') > deletedIndex); \r\n\t\t\t});\r\n\r\n\t\t\t$allNext.each(function () {\r\n\t\t\t\tvar $age = $(this);\r\n\t\t\t\tvar index = $age.data('id'),\r\n\t\t\t\t\tnewIndex = (index - 1);\r\n\r\n\t\t\t\t$age.find('.index').text(index);\r\n\t\t\t\t$age.data('id', newIndex);\r\n\r\n\t\t\t\t$age.find('input[type=text]').each(function () {\r\n\t\t\t\t\tvar $input = $(this);\r\n\t\t\t\t\t$input.attr('name', $input.attr('name').replace(index, newIndex));\r\n\t\t\t\t\t$input.attr('id', $input.attr('id').replace(index, newIndex));\r\n\t\t\t\t});\r\n\r\n\t\t\t\t$age.find('label').each(function () {\r\n\t\t\t\t\tvar $label = $(this);\r\n\t\t\t\t\t$label.attr('for', $label.attr('for').replace(index, newIndex));\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t};\r\n\t\t\r\n\t\tself.addAge = function () {\r\n\t\t\tvar currentIndex = self.$ageList.find('.added').length,\r\n\t\t\t\thtml = self.$ageTemplate.html().replace(/{{index}}/g, currentIndex);\r\n\r\n\t\t\thtml = html.replace(/{{indexLabel}}/g, currentIndex + 1);\r\n\r\n\t\t\tvar $html = $(html);\r\n\t\t\t$html.find('.index').text(currentIndex + 1);\r\n\t\t\t$html.insertBefore($(self.$ageList.find('li').last()));\r\n\r\n\t\t\tvar $input = $html.find('input');\r\n\t\t\t$input.rules('add',\r\n\t\t\t{\r\n\t\t\t\trequired: true,\r\n\t\t\t\tregex: '[0-9]*'\r\n\t\t\t});\r\n\r\n\t\t\t$input.on('blur', function () {\r\n\t\t\t\t$(this).valid();\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tself.setupEventHandling = function() {\r\n\t\t\tself.$ageTemplate = self.$ervBody.find(\"#age-template\");\r\n\t\t\tself.$ageList = self.$form.find('#added-ages');\r\n\t\t\t\r\n\t\t\tself.$form.find('#add-age').on('click', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tself.addAge();\r\n\t\t\t});\r\n\r\n\t\t\tself.$ageList.on('click', '.age.added .remove-age', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tself.deleteAge($(this).parents('.age.added'));\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tself.$ervBody.find('[data-js = \"maskingCPRNumber\"]').on('input', function () {\r\n\t\t\tMasking.MaskingCPRNumber(this);\r\n\t\t});\r\n\r\n\t\tself.$ervBody.find('[data-js = \"maskingCVRNumber\"]').on('input', function () {\r\n\t\t\tMasking.MaskingCVRNumber(this, document.documentElement.getAttribute('data-domain'));\r\n\t\t});\r\n\t};\r\n\r\n\tExpatriate.prototype.init = function () {\r\n\t\tvar self = this;\r\n\r\n\t\tvar $button = self.$ervBody.find('.next-step');\r\n\t\t$button.on('click', function (e) {\r\n\t\t\tif (!$button.parents('form').valid()) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tself.setupEventHandling();\r\n\t}\r\n\r\n\treturn Expatriate;\r\n});","define(['jquery', 'forms', 'jqueryuicustom'], function ($, Forms) {\r\n\r\n\tvar FileUploadHelper = function () {\r\n\t\tvar self = this;\r\n\t\tself.$ervBody = $('#erv-body');\r\n\t\tself.forms = new Forms();\r\n\r\n\t\tself.fileAlreadyUploaded = function (fileName, $uploadedFilesList) {\r\n\t\t\treturn $uploadedFilesList.find('li a[data-originalfilename=\"' + fileName + '\"]').length;\r\n\t\t};\r\n\r\n\t\tself.setupUploadedFilesSectionHeader = function ($uploadedFilesList) {\r\n\t\t\tvar $heading = $uploadedFilesList.parent().find('.heading'),\r\n\t\t\t\t$headingParentField = $heading.parents('.field.no-space-right');\r\n\r\n\t\t\tif ($uploadedFilesList.find('.delete-file').length) {\r\n\t\t\t\t$heading.removeClass('hide');\r\n\r\n\t\t\t\tif ($headingParentField.length && $heading.parents('.multi-file').length === 0) {\r\n\t\t\t\t\t$headingParentField.removeClass('hide');\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t$heading.addClass('hide');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tself.setupCheckedFile = function (validFile, $uploadContainer, data) {\r\n\t\t\tvar $currentUploaded = $uploadContainer.find('[data-view=\"uploaded\"]').first(),\r\n\t\t\t\t$currentNotUploaded = $uploadContainer.find('[data-view=\"notuploaded\"]').first(),\r\n\t\t\t\t$fileUploadNameInput = self.$ervBody.find('#UploadedFileName');\r\n\r\n\t\t\tif (validFile) {\r\n\t\t\t\t$currentUploaded.removeClass('hide');\r\n\t\t\t\t$currentUploaded.find('.heading').removeClass('hide');\r\n\t\t\t\t$currentNotUploaded.addClass('hide');\r\n\r\n\t\t\t\tif (typeof (data) !== 'undefined') {\r\n\t\t\t\t\t$fileUploadNameInput.val(data.result.FileName);\r\n\t\t\t\t\t$fileUploadNameInput.removeClass('input-validation-error');\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t$currentUploaded.addClass('hide');\r\n\t\t\t\t$currentNotUploaded.removeClass('hide');\r\n\t\t\t\t$fileUploadNameInput.val('');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tself.statusFromData = function (data, $validation) {\r\n\t\t\tvar $genericError = $validation.find('[data-js=\"generic\"]');\r\n\t\t\t$genericError.removeClass('hide');\r\n\r\n\t\t\tif (data && typeof (data.result) !== 'undefined') {\r\n\t\t\t\tif (typeof (data.result.Message) !== 'undefined') {\r\n\t\t\t\t\t$genericError.html(data.result.Message);\r\n\t\t\t\t} else if (typeof (data.result) == 'string') {\r\n\t\t\t\t\t$genericError.html(data.result);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tself.hideErrors = function ($validation) {\r\n\t\t\t$validation.find('span').addClass('hide');\r\n\t\t\t$validation.parent().find('.field-validation-error').remove();\r\n\t\t};\r\n\r\n\t\tself.deleteUploadedFile = function ($file, $uploadContainer) {\r\n\t\t\tvar $selectFile = $uploadContainer.find('[data-js=\"select-file\"]'),\r\n\t\t\t\t$validation = $uploadContainer.find('[data-js=\"file-validation\"]'),\r\n\t\t\t\t$uploadedFilesList = $selectFile.find('.uploaded-files ul'),\r\n\t\t\t\tremoveFileUrl = $selectFile.data('remove-url');\r\n\r\n\t\t\tself.hideErrors($validation);\r\n\t\t\tself.forms.activateLoading($uploadContainer, false);\r\n\r\n\t\t\t$.ajax({\r\n\t\t\t\turl: removeFileUrl,\r\n\t\t\t\tdata: { guid: $file.data('guid'), name: $file.data('originalfilename') }\r\n\t\t\t}).success(function () {\r\n\t\t\t\t$file.closest('li').remove();\r\n\t\t\t\tself.setupSingleFile($uploadedFilesList);\r\n\t\t\t\tself.setupUploadedFilesSectionHeader($uploadedFilesList);\r\n\t\t\t}).error(function () {\r\n\t\t\t\t$validation.find('.remove-file').removeClass('hide');\r\n\t\t\t}).always(function () {\r\n\t\t\t\tself.forms.deactivateLoading($uploadContainer);\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tself.deleteCheckedFile = function ($link, $uploadContainer) {\r\n\t\t\tvar $validation = $uploadContainer.find('[data-js=\"file-validation\"]'),\r\n\t\t\t\t$uploadedFilesList = $uploadContainer.find('.uploaded-files ul');\r\n\r\n\t\t\t$link.remove();\r\n\t\t\tself.setupUploadedFilesSectionHeader($uploadedFilesList);\r\n\t\t\tself.setupCheckedFile(false, $uploadContainer);\r\n\t\t\tself.hideErrors($validation);\r\n\r\n\t\t\t$('body').trigger({\r\n\t\t\t\ttype: 'ervPersonFileCheckedRemoved'\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tself.setupSingleFile = function ($uploadedFilesList) {\r\n\t\t\tvar $parentContainer = $uploadedFilesList.parents('.file-upload');\r\n\r\n\t\t\tvar $parentField = $uploadedFilesList.parents('.field'),\r\n\t\t\t\t$button = $parentContainer.find('.btn');\r\n\r\n\r\n\t\t\tif ($parentContainer.hasClass('multi-file') || $parentContainer.hasClass('single-file')) {\r\n\t\t\t\tif ($uploadedFilesList.find('li').length) {\r\n\t\t\t\t\t$parentField.removeClass('hide');\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$parentField.addClass('hide');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif ($parentContainer.hasClass('single-file')) {\r\n\t\t\t\t$parentField.removeClass('width-50');\r\n\r\n\t\t\t\tif ($uploadedFilesList.find('li').length) {\r\n\t\t\t\t\t$button.parent().addClass('hide');\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$button.parent().removeClass('hide');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar $disableUpload = $uploadedFilesList.parents('.upload-document').find('[data-js=\"disable-upload\"]');\r\n\r\n\t\t\t\tif ($disableUpload) {\r\n\t\t\t\t\tvar $disableUploadContainer = $disableUpload.parents('.missing-file');\r\n\r\n\t\t\t\t\tif ($parentContainer.find('.uploaded-files ul li').length > 0) {\r\n\t\t\t\t\t\t$disableUploadContainer.addClass('hide');\r\n\t\t\t\t\t\t$disableUploadContainer.removeClass('checked');\r\n\t\t\t\t\t\tself.forms.disableFormElementsInContainer($disableUploadContainer, true, true);\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$disableUploadContainer.removeClass('hide');\r\n\t\t\t\t\t\t$disableUploadContainer.addClass('checked');\r\n\t\t\t\t\t\tself.forms.disableFormElementsInContainer($disableUploadContainer, false, true);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t$disableUpload.on('click', function () {\r\n\t\t\t\t\t\tvar $currentCheckbox = $(this),\r\n\t\t\t\t\t\t\t$currentDocumentElement = $currentCheckbox.parents('.document-element'),\r\n\t\t\t\t\t\t\t$currentButtonContainer = $currentDocumentElement.find('.single-file'),\r\n\t\t\t\t\t\t\t$currentButton = $currentButtonContainer.find('.btn'),\r\n\t\t\t\t\t\t\t$currentReasonContainer = $currentDocumentElement.find('.missing-file-reason'),\r\n\t\t\t\t\t\t\t$currentReasonInput = $currentReasonContainer.find('[data-js=\"reason\"]');\r\n\r\n\t\t\t\t\t\t$currentCheckbox.val($currentCheckbox.prop('checked'));\r\n\r\n\t\t\t\t\t\tif ($currentCheckbox.prop('checked')) {\r\n\t\t\t\t\t\t\tself.forms.disableFormElementsInContainer($currentReasonInput, false, true);\r\n\t\t\t\t\t\t\t$currentButton.addClass('hide');\r\n\t\t\t\t\t\t\t$currentReasonContainer.removeClass('hide');\r\n\t\t\t\t\t\t\t$disableUploadContainer.addClass('checked');\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tself.forms.disableFormElementsInContainer($currentReasonInput, true, true);\r\n\t\t\t\t\t\t\t$currentButton.removeClass('hide');\r\n\t\t\t\t\t\t\t$currentReasonContainer.addClass('hide');\r\n\t\t\t\t\t\t\t$currentButtonContainer.removeClass('hide');\r\n\t\t\t\t\t\t\t$disableUploadContainer.removeClass('checked');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tself.updateUploadedFiles = function (data, $uploadedFilesList) {\r\n\t\t\tif (data != null) {\r\n\t\t\t\tvar $template = self.$ervBody.find('[data-js=\"file-template\"]'),\r\n\t\t\t\t\tdataGuid = '',\r\n\t\t\t\t\tfileName = '',\r\n\t\t\t\t\tfileOriginalName = '',\r\n\t\t\t\t\t$validation = $uploadedFilesList.parents('.file-upload').find('[data-js=\"file-validation\"]');\r\n\r\n\t\t\t\tif (typeof (data) == 'string') {\r\n\t\t\t\t\tdata = $.parseJSON(data); data.Files = data.Files || [];\r\n\t\t\t\t\tdataGuid = data.Files[0].Guid;\r\n\t\t\t\t\tfileName = data.result.Files[0].FileName;\r\n\t\t\t\t\tfileOriginalName = data.Files[0].OriginalFileName;\r\n\t\t\t\t} else {\r\n\t\t\t\t\tdataGuid = data.result.Files[0].Guid;\r\n\t\t\t\t\tfileName = data.result.Files[0].FileName;\r\n\t\t\t\t\tfileOriginalName = data.result.Files[0].OriginalFileName;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (self.fileAlreadyUploaded(fileOriginalName, $uploadedFilesList)) {\r\n\t\t\t\t\t$validation.find('[data-js=\"fileexists\"]').removeClass('hide');\r\n\t\t\t\t} else {\r\n\t\t\t\t\tself.hideErrors($validation);\r\n\t\t\t\t\tself.elementFileToList($template, fileName, fileOriginalName, dataGuid, $uploadedFilesList);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tself.setupUploadedFilesSectionHeader($uploadedFilesList);\r\n\t\t\t} else {\r\n\t\t\t\t$uploadedFilesList.parent().find('.heading').addClass('hide');\r\n\t\t\t}\r\n\r\n\t\t\tself.setupSingleFile($uploadedFilesList);\r\n\t\t}\r\n\r\n\t\tself.updateCheckedFile = function (data, $uploadedFilesList) {\r\n\t\t\tif (data != null) {\r\n\t\t\t\tvar $template = self.$ervBody.find('[data-js=\"file-template\"]');\r\n\t\t\t\t$uploadedFilesList.empty();\r\n\r\n\t\t\t\tself.elementFileToList($template, data.result.FileName, data.result.FileName, data.result.Guid, $uploadedFilesList);\r\n\r\n\t\t\t\t$('body').trigger({\r\n\t\t\t\t\ttype: 'ervPersonFileCheckedAndApproved',\r\n\t\t\t\t\tpersons: data.result.Persons,\r\n\t\t\t\t\tcurrentCategoryForm: $uploadedFilesList.parents('.insurance-fields')\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tself.elementFileToList = function ($template, fileName, originalFileName, guid, $uploadedFilesList) {\r\n\t\t\tvar $html = $template.html()\r\n\t\t\t\t.replace(/{{filename}}/g, fileName)\r\n\t\t\t\t.replace(/{{originalfilename}}/g, originalFileName)\r\n\t\t\t\t.replace(/{{guid}}/g, guid);\r\n\r\n\t\t\t$uploadedFilesList.append($html);\r\n\t\t};\r\n\r\n\t\tself.isAllowedFile = function (extension, $selectFile) {\r\n\t\t\tvar ext = extension.match(/\\.([^.]+)$/)[1],\r\n\t\t\t\tallowedTypes = $selectFile.data('file-types').toLowerCase();\r\n\r\n\t\t\treturn allowedTypes.indexOf(ext.toLowerCase()) > 0;\r\n\t\t};\r\n\r\n\t\tself.triggerUploadHandler = function ($uploadContainer) {\r\n\t\t\tvar $selectFile = $uploadContainer.find('[data-js=\"select-file\"]');\r\n\r\n\t\t\tif (!$selectFile) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar $validation = $uploadContainer.find('[data-js=\"file-validation\"]');\r\n\r\n\t\t\t$uploadContainer.find('[data-js=\"trigger-select-file\"]').on('click', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\t$selectFile.find('[data-js=\"filesource\"]').click();\r\n\t\t\t\tself.hideErrors($validation);\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tself.uploadFilesHandler = function ($uploadContainer) {\r\n\t\t\tvar $selectFile = $uploadContainer.find('[data-js=\"select-file\"]');\r\n\r\n\t\t\tif (!$selectFile) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n var addFileParams = {\r\n guid: $uploadContainer.parent().data('guid'),\r\n documentType: $uploadContainer.parent().data('type')\r\n };\r\n\r\n var $validation = $uploadContainer.find('[data-js=\"file-validation\"]'),\r\n\t\t\t\t$uploadedFilesList = $uploadContainer.find('.uploaded-files ul'),\r\n\t\t\t\taddFileUrl = $selectFile.data('add-url')+ \"?\" + $.param(addFileParams);\r\n\r\n\t\t\tself.setupSingleFile($uploadedFilesList);\r\n\r\n\t\t\tif (self.$ervBody.find('.file-upload').length) {\r\n\t\t\t\trequire(['iframetransport', 'fileupload'], function () {\r\n\t\t\t\t\t$uploadContainer.find('[data-js=\"filesource\"]').fileupload({\r\n\t\t\t\t\t\turl: addFileUrl,\r\n\t\t\t\t\t\tdataType: 'json',\r\n\t\t\t\t\t\tadd: function (e, data) {\r\n\t\t\t\t\t\t\tdata.submit();\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tchange: function (e, data) {\r\n\t\t\t\t\t\t\tself.forms.activateLoading($uploadContainer, false);\r\n\t\t\t\t\t\t\tself.hideErrors($validation);\r\n\r\n\t\t\t\t\t\t\tif (!self.isAllowedFile(data.files[0].name, $selectFile)) {\r\n\t\t\t\t\t\t\t\t$validation.find('[data-js=\"filetype\"]').removeClass('hide');\r\n\t\t\t\t\t\t\t\tself.forms.deactivateLoading($uploadContainer);\r\n\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t} else if (self.fileAlreadyUploaded(data.files[0].name, $uploadedFilesList)) {\r\n\t\t\t\t\t\t\t\t$validation.find('[data-js=\"fileexists\"]').removeClass('hide');\r\n\t\t\t\t\t\t\t\tself.forms.deactivateLoading($uploadContainer);\r\n\t\t\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tfail: function (e, data) {\r\n\t\t\t\t\t\t\tself.statusFromData(data, $validation);\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdone: function (e, data) {\r\n\t\t\t\t\t\t\tif (data.result.Status === 'success') {\r\n\t\t\t\t\t\t\t\tself.updateUploadedFiles(data, $uploadedFilesList);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tself.statusFromData(data, $validation);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\talways: function (e) {\r\n\t\t\t\t\t\t\tself.forms.deactivateLoading($uploadContainer);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tself.checkFileHandler = function ($uploadContainer) {\r\n\t\t\tvar $selectFile = $uploadContainer.find('[data-js=\"select-file\"]'),\r\n\t\t\t\t$validation = $uploadContainer.find('[data-js=\"file-validation\"]'),\r\n\t\t\t\t$uploadedFilesList = $uploadContainer.find('.uploaded-files ul'),\r\n\t\t\t\t$uploadContainerParent = $uploadContainer.parent(),\r\n\t\t\t\tcheckFileUrl = $uploadContainer.data('check-url');\r\n\r\n\t\t\tif (self.$ervBody.find('.file-upload').length) {\r\n\t\t\t\trequire(['iframetransport', 'fileupload'], function () {\r\n\t\t\t\t\t$uploadContainer.find('[data-js=\"filesource\"]').fileupload({\r\n\t\t\t\t\t\turl: checkFileUrl,\r\n\t\t\t\t\t\tdataType: 'json',\r\n\t\t\t\t\t\tadd: function (e, data) {\r\n\t\t\t\t\t\t\tself.forms.activateLoading($uploadContainerParent, false);\r\n\r\n\t\t\t\t\t\t\tself.hideErrors($validation);\r\n\r\n\t\t\t\t\t\t\tif (self.isAllowedFile(data.files[0].name, $selectFile)) {\r\n\r\n\t\t\t\t\t\t\t\tif (self.fileAlreadyUploaded(data.files[0].OriginalFileName, $uploadedFilesList)) {\r\n\t\t\t\t\t\t\t\t\t$validation.find('[data-js=\"fileexists\"]').removeClass('hide');\r\n\t\t\t\t\t\t\t\t\tself.forms.deactivateLoading($uploadContainerParent);\r\n\t\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t\tdata.submit();\r\n\t\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t$validation.find('[data-js=\"filetype\"]').removeClass('hide');\r\n\t\t\t\t\t\t\t\tself.forms.deactivateLoading($uploadContainerParent);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tfail: function (e, data) {\r\n\t\t\t\t\t\t\tself.statusFromData(data, $validation);\r\n\t\t\t\t\t\t\tself.setupCheckedFile(false, $uploadContainer);\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tdone: function (e, data) {\r\n\t\t\t\t\t\t\tif (data.result.Status === 'success') {\r\n\t\t\t\t\t\t\t\tself.setupCheckedFile(true, $uploadContainer, data);\r\n\t\t\t\t\t\t\t\tself.updateCheckedFile(data, $uploadedFilesList);\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\tself.statusFromData(data, $validation);\r\n\t\t\t\t\t\t\t\tself.setupCheckedFile(false, $uploadContainer);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\talways: function (e) {\r\n\t\t\t\t\t\t\tself.forms.deactivateLoading($uploadContainerParent);\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\t//used in claimsstepthree\r\n\tFileUploadHelper.prototype.initUploadFiles = function ($uploadContainers) {\r\n\t\tvar self = this;\r\n\r\n\t\t$uploadContainers.each(function () {\r\n\t\t\tvar $uploadContainer = $(this);\r\n\r\n\t\t\tself.triggerUploadHandler($uploadContainer);\r\n\t\t\tself.uploadFilesHandler($uploadContainer);\r\n\r\n\t\t\t$uploadContainer.on('click', 'li .delete-file', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tself.deleteUploadedFile($(this), $uploadContainer);\r\n\t\t\t});\r\n\t\t});\r\n\t};\r\n\r\n\t//used in bookingwidget\r\n\tFileUploadHelper.prototype.initCheckFile = function ($uploadContainers) {\r\n\t\tvar self = this;\r\n\t\t$uploadContainers.each(function () {\r\n\t\t\tvar $uploadContainer = $(this);\r\n\r\n\t\t\tself.triggerUploadHandler($uploadContainer);\r\n\t\t\tself.checkFileHandler($uploadContainer);\r\n\r\n\t\t\t$uploadContainer.on('click', 'li .delete-file', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tself.deleteCheckedFile($(this), $uploadContainer);\r\n\t\t\t});\r\n\t\t});\r\n\t};\r\n\r\n\treturn FileUploadHelper;\r\n});","define(['jquery'], function ($) {\r\n\r\n\tvar ERVFlexMenu = function () {\r\n\t\tvar self = this;\r\n\t\tself.$ervBody = $('#erv-body');\r\n\r\n\t\tvar breaks = [];\r\n\r\n\t\tself.updateNav = function () {\r\n\t\t\tvar availableSpace = self.$nav.width() - self.$trigger.find('span').width() - 40;\r\n\t\t\tvar $vlinks = self.$nav.find('.visible-links');\r\n\t\t\tvar $hlinks = self.$nav.find('.hidden-links');\r\n\r\n\t\t\tif ($hlinks.length === 0 || $vlinks.length === 0) { return; }\r\n\r\n\t\t\tif ($vlinks.width() > availableSpace) {\r\n\t\t\t\tbreaks.push($vlinks.width());\r\n\t\t\t\t$vlinks.children().last().prependTo($hlinks);\r\n\t\t\t} else if (availableSpace > breaks[breaks.length - 1]) {\r\n\t\t\t\t$hlinks.children().first().appendTo($vlinks);\r\n\t\t\t\tbreaks.pop();\r\n\t\t\t}\r\n\r\n\t\t\tself.$trigger.attr('data-count', $hlinks.children().length);\r\n\r\n\t\t\tif ($vlinks.width() > availableSpace) {\r\n\t\t\t\tself.updateNav();\r\n\t\t\t}\r\n\r\n\t\t\tif ($hlinks.children().length > 0) {\r\n\t\t\t\t$hlinks.parent().removeClass('invisible');\r\n\t\t\t} else {\r\n\t\t\t\t$hlinks.parent().addClass('invisible');\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tERVFlexMenu.prototype.init = function (selector) {\r\n\t\tvar self = this, $window = $(window), width = $window.width(), resizeId;\r\n\t\tself.$nav = self.$ervBody.find(selector);\r\n\t\tself.$trigger = self.$nav.find('.flex-menu .menu-title');\r\n\r\n\t\tself.updateNav();\r\n\r\n\t\t$window.resize(function () {\r\n\t\t\tvar newWidth = $(window).width();\r\n\r\n\t\t\tif (width !== newWidth) {\r\n\t\t\t\twidth = newWidth;\r\n\r\n\t\t\t\tclearTimeout(resizeId);\r\n\t\t\t\tresizeId = setTimeout(function () {\r\n\t\t\t\t\tself.updateNav();\r\n\t\t\t\t}, 30);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tself.$trigger.on('click', function (e) {\r\n\t\t\t$(this).parent().toggleClass('is-expanded');\r\n e.stopPropagation();\r\n\t\t});\r\n\r\n $(document).click(function () {\r\n\t\t\tself.$trigger.parent().removeClass('is-expanded');\r\n });\r\n\t}\r\n\r\n\treturn ERVFlexMenu;\r\n});","define(['jquery', 'datepicker-il8n', 'settings', 'erv_customvalidationsummary', 'erv_checks', 'erv_formatting', 'erv_tagit', 'responsive_common', 'episerver_forms_helpers'], function ($, il8n, Settings, ValidationSummary, ERVChecks, ERVFormatting, ERVTagit, ERVResponsiveCommon, EpiserverFormsHelpers) {\r\n\tvar ERVForms = function () {\r\n\t\tvar self = this;\r\n\t\tself.$ervBody = $('#erv-body');\r\n\r\n\t\tself.settings = Settings;\r\n\t\tself.validationSummary = new ValidationSummary();\r\n\t\tself.checks = new ERVChecks();\r\n\t\tself.ervTagit = new ERVTagit();\r\n\t\tself.formatting = new ERVFormatting();\r\n\t\tself.datepickerTranslations = new il8n();\r\n\t\tself.responsiveCommon = new ERVResponsiveCommon();\r\n self.episerverFormsHelpers = new EpiserverFormsHelpers();\r\n\r\n\t\tself.$ervBody = $('#erv-body');\r\n\r\n\t\t$.datepicker.setDefaults($.datepicker.regional[$('html').data('orglang')]);\r\n\r\n\t\tif (typeof (Event) === 'function') {\r\n\t\t\tself.inputEvent = new Event('input', { 'bubbles': true });\r\n\t\t} else {\r\n\t\t\tself.inputEvent = document.createEvent('Event');\r\n\t\t\tself.inputEvent.initEvent('input', true, true);\r\n\t\t}\r\n\r\n\t\t$.datepicker.setDefaults({\r\n\t\t\tchangeMonth: true,\r\n\t\t\tchangeYear: true,\r\n\t\t\tnumberOfMonths: 1,\r\n\t\t\tminDate: 0,\r\n\t\t\tshowAnim: '',\r\n\t\t\tonSelect: function () {\r\n\t\t\t\tvar $input = $(this);\r\n\r\n\t\t\t\t$input[0].dispatchEvent(self.inputEvent);\r\n\t\t\t\t$input.change();\r\n\r\n\t\t\t\tif ($input.data('val') === true) {\r\n\t\t\t\t\tself.dateValidation($input);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t});\r\n\r\n\r\n\t\t//if button has show-loader class, set form in blocked mode. only for postback forms.\r\n\t\t//use when a page/block doesn't have it's own js-file\r\n\t\tself.initFormWithLoader = function () {\r\n\t\t\tvar $showLoaders = self.$ervBody.find('.show-loader');\r\n\r\n\t\t\tif ($showLoaders.length === 0) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\t$showLoaders.on('click', function (e) {\r\n\t\t\t\tvar $element = $(this),\r\n\t\t\t\t\t$form = $element.parents('form');\r\n\r\n\t\t\t\t// if already blocked, then nothing to do here\r\n\t\t\t\tif ($form.length === 0 || $form.hasClass('.loading')) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ($form.valid()) {\r\n\t\t\t\t\tself.activateLoading($form, false);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t//currently only used for premade booking (form.cshtml)\r\n\t\tself.setEnterTriggerClick = function () {\r\n\t\t\tself.$ervBody.find('[data-js=\"enter-trigger-click\"]').on('keydown', function (e) {\r\n\t\t\t\tif (e.which === 13) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t$(this).parents('form').find('button, input[type=button], input[type=submit], .btn').last().click();\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tself.calendarBeforeShow = function (element) {\r\n\t\t\tvar $datePickerDiv = $('#ui-datepicker-div');\r\n\r\n\t\t\t//gtranslate fix\r\n\t\t\t$datePickerDiv.addClass('notranslate');\r\n\r\n\t\t\tif (self.$ervBody.find('#booking-widget').length === 0) { return false; }\r\n\r\n\t\t\tif (self.responsiveCommon.isDeviceSize('small')) {\r\n\t\t\t\t$datePickerDiv.wrap('
    ');\r\n\t\t\t\tvar $wrapperInner = $datePickerDiv.parent();\r\n\t\t\t\t$wrapperInner.wrap('
    ');\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t$datePickerDiv.attr('style', '');\r\n\t\t\t\t\t$datePickerDiv.addClass('fixed');\r\n\r\n\t\t\t\t\tif ($wrapperInner.length > 0) {\r\n\t\t\t\t\t\t$wrapperInner.prepend($(''));\r\n\r\n\t\t\t\t\t\tvar $button = $wrapperInner.find('.close-wrapper');\r\n\r\n\t\t\t\t\t\t$button.on('click', function (e) {\r\n\t\t\t\t\t\t\tself.resetSmallDeviceCalendar($datePickerDiv);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 15);\r\n\t\t\t} else {\r\n\t\t\t\tself.resetSmallDeviceCalendar($datePickerDiv);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tself.calendarOnClose = function (element) {\r\n\t\t\telement.focus();\r\n\t\t\tif (self.$ervBody.find('#booking-widget').length === 0) { return false; }\r\n\r\n\t\t\tvar $datePickerDiv = $('#ui-datepicker-div');\r\n\r\n\t\t\tself.resetSmallDeviceCalendar($datePickerDiv);\r\n\t\t};\r\n\r\n\t\tself.initPickers = function () {\r\n\t\t\t$('.is-date.is-range, .is-date.is-range-withstart, .is-date.is-comparison-range, .is-date.is-search-range, .is-date.is-single').each(function () {\r\n\t\t\t\tself.initDatePicker($(this));\r\n\t\t\t});\r\n\r\n\t\t\tif ($('.is-time').length) {\r\n\t\t\t\trequire(['jquerytimepicker'], function () {\r\n\t\t\t\t\t$('.is-time').each(function () {\r\n\t\t\t\t\t\tself.initTimePicker($(this));\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tvar $datePickerDiv = $('#ui-datepicker-div');\r\n\t\t\tif ($datePickerDiv.length === 0) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar resizeId, width;\r\n\t\t\t$(window).on('resize', function () {\r\n\t\t\t\tvar newWidth = $(window).width();\r\n\r\n\t\t\t\tif (width !== newWidth) {\r\n\t\t\t\t\twidth = newWidth;\r\n\r\n\t\t\t\t\tclearTimeout(resizeId);\r\n\t\t\t\t\tresizeId = setTimeout(function () {\r\n\t\t\t\t\t\tself.resetSmallDeviceCalendar($datePickerDiv);\r\n\t\t\t\t\t}, 60);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tself.initFormSelects = function () {\r\n\t\t\t$('.is-select .select-trigger').on('click', function (e) {\r\n\t\t\t\tvar $container = $(this).parent(),\r\n\t\t\t\t\t$select = $container.find('select');\r\n\r\n\t\t\t\tvar size = $select.attr('size') == 1 ? $select.find('option').length : 1;\r\n\t\t\t\t$select.attr('size', size);\r\n\r\n\t\t\t\t$select.on({\r\n\t\t\t\t\tclick: function () {\r\n\t\t\t\t\t\t$container.find('select').attr('size', 1);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tself.initResetButtons = function () {\r\n\t\t\t$('input[type=\"reset\"]').on('click', function (e) {\r\n\t\t\t\t$('.ValidationSuccess').removeClass('ValidationSuccess')\r\n\t\t\t\t$('.ValidationFail').removeClass('ValidationFail');\r\n\r\n\t\t\t\t$('.input-validation-error').removeClass('input-validation-error')\r\n\t\t\t\t$('.input-validation-valid').removeClass('input-validation-valid');\r\n\r\n\t\t\t\t$('.valid').removeClass('valid');\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tself.initInputNumbersOnly = function () {\r\n\t\t\tself.$ervBody.find('form').on('keypress', '[data-js=\"numbersonly\"]', function (e) {\r\n\t\t\t\tvar charCode = (e.which) ? e.which : e.keyCode;\r\n\t\t\t\tif (charCode > 31 && (charCode < 48 || charCode > 57)) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\r\n\t\tself.resetSmallDeviceCalendar = function ($datePickerDiv) {\r\n\t\t\tif ($datePickerDiv.length > 0) {\r\n\t\t\t\t$datePickerDiv.removeClass('fixed');\r\n\r\n\t\t\t\tif ($datePickerDiv.parents('#datepicker-wrapper').length > 0) {\r\n\t\t\t\t\t$datePickerDiv.parent().unwrap();\r\n\t\t\t\t\t$datePickerDiv.unwrap();\r\n\t\t\t\t\t$datePickerDiv.parent().find($('.close-wrapper')).remove();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tself.$ervBody.find('.hasDatepicker').datepicker('hide');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tself.dateValidation = function ($input) {\r\n\t\t\tif ($input.hasClass('ignore-blurreset'))\r\n\t\t\t\treturn;\r\n\r\n\t\t\tif ($input.val() === '' && typeof ($input.data('val-required')) !== 'undefined') {\r\n\t\t\t\t$input.addClass('input-validation-error');\r\n\t\t\t\t$input.removeClass('input-validation-valid');\r\n\t\t\t} else {\r\n\t\t\t\t$input.removeClass('input-validation-error');\r\n\t\t\t\t$input.addClass('input-validation-valid');\r\n\t\t\t\t$input.parent().find('.field-validation-error').empty();\r\n\t\t\t\t$input.parents('.field').find('.custom-validation-message').addClass('hide');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tself.clearErrors = function ($container) {\r\n\t\t\tvar $summary = $container.find('.validation-summary-errors');\r\n\r\n\t\t\tif ($summary.length > 0 && $summary.find('li').length === 0) {\r\n\t\t\t\t$summary.remove();\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t$container.find('.input-validation-error').each(function () {\r\n\t\t\t\tvar $element = $(this);\r\n\t\t\t\tif($element.parents('.field').find('.custom-validation-message:not(.hide)').length !== 1) {\r\n\t\t\t\t\t$element.removeClass('input-validation-error');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tself.autocompleteFix = function ($inputs) {\r\n\t\t\tif (!$inputs || !$inputs.length) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// autocomplete fix for IE Edge\r\n\t\t\tif (self.checks.isIEEdge()) {\r\n\t\t\t\t$inputs.attr('autocomplete', 'off');\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\t// autocomplete fix for mobile\r\n\t\t\tif ($inputs.length > 0) {\r\n\t\t\t\t$inputs.on('focus',\r\n\t\t\t\t\tfunction () {\r\n\t\t\t\t\t\t$(this).attr('autocomplete', 'off');\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t$inputs.on('blur',\r\n\t\t\t\t\tfunction () {\r\n\t\t\t\t\t\t$(this).removeAttr('autocomplete');\r\n\t\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n\r\n\tERVForms.prototype.initTimePicker = function($picker) {\r\n\t\tvar self = this,\r\n\t\t\t$input = $picker.find('input');\r\n\t\t\r\n\t\tif ($input.length > 0) {\r\n\t\t\t$input.timepicker({\r\n\t\t\t\tshow2400: true,\r\n\t\t\t\ttimeFormat: 'H:i',\r\n\t\t\t\tselectOnBlur: true,\r\n\t\t\t\tscrollDefault: '10:00'\r\n\t\t\t});\r\n\r\n\t\t\t$input.on('keypress', function (e) {\r\n\t\t\t\tvar charCode = (e.which) ? e.which : e.keyCode,\r\n\t\t\t\t\tkey = String.fromCharCode(charCode);\r\n\t\t\t\tvar regex = /\\d|\\:/;\r\n\t\t\t\tif (!regex.test(key)) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\telse {\r\n\t\t\t$input = null; // no time inputs found\r\n\t\t}\r\n\r\n\t\tself.autocompleteFix($input);\r\n\t\t\r\n\t\t$picker.find('.time-icon, label').on('click', function () { $(this).parent().find('input').focus(); });\r\n\t}\r\n\r\n\tERVForms.prototype.initDatePicker = function($picker) {\r\n\t\tvar self = this;\r\n\t\tvar $inputs = $picker.find('input'),\r\n\t\t\t$start = $inputs.filter('.start'),\r\n\t\t\t$end = $inputs.filter('.end');\r\n\r\n\t\tvar isValidFormat = function($element, value) {\r\n\t\t\tvar pattern = $element.data('rule-regextest');\r\n return !pattern || new RegExp(pattern).test(value);\r\n\t\t}\r\n\r\n\t\tvar getDefaultDatePickerDateFormat = function() {\r\n\t\t\tvar regional = $.datepicker.regional[$('html').data('orglang')];\r\n return regional ? regional.dateFormat : '';\r\n }\r\n\r\n\t\tvar getMaxDaysInFuture = function () {\r\n\t\t\treturn $inputs.length ? $($inputs[0]).data('max-days-in-future') : undefined;\r\n\t\t}\r\n\r\n\t\tvar getMaxYearsInFuture = function () {\r\n\t\t\treturn $inputs.length ? $($inputs[0]).data('max-years-in-future') : undefined;\r\n\t\t}\r\n\r\n\t\tvar calculateMaxDate = function (selectedValue) {\r\n\t\t\tvar selectedDate = new Date(self.formatting.reverseShortDate(selectedValue))\r\n\t\t\treturn selectedValue === '' || !isValidFormat($start, selectedValue)\r\n\t\t\t\t? 0\r\n\t\t\t\t: new Date(selectedDate.setFullYear(selectedDate.getFullYear() + getMaxYearsInFuture()));\r\n\t\t}\r\n\r\n\t\tvar getDateFormat = function($element) {\r\n\t\t\tvar pattern = $element.data('rule-regextest');\r\n var placeholder = $element.attr('placeholder');\r\n return !pattern ? getDefaultDatePickerDateFormat() : placeholder.replace('yyyy', 'yy');\r\n }\r\n\r\n\t\tvar setupFutureDatePicker = function ($start, $end, options) {\r\n\t\t\t$start.datepicker({\r\n\t\t\t\tminDate: options.minStartDate || 0,\r\n\t\t\t\tdateFormat: getDateFormat($start),\r\n\t\t\t\tbeforeShow: function (element) {\r\n\t\t\t\t\tself.calendarBeforeShow(element);\r\n\t\t\t\t},\r\n\t\t\t\tonClose: function (selectedDate) {\r\n\t\t\t\t\tif (selectedDate) {\r\n\t\t\t\t\t\t$end.datepicker('option', 'minDate',\r\n\t\t\t\t\t\t\tselectedDate === '' || !isValidFormat($start, selectedDate) ? 0 : selectedDate);\r\n\r\n\t\t\t\t\t\tif (getMaxYearsInFuture()) {\r\n\t\t\t\t\t\t\t$end.datepicker('option', 'maxDate', calculateMaxDate(selectedDate));\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tself.calendarOnClose(this);\r\n\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t$end.datepicker({\r\n\t\t\t\tminDate: options.minEndDate || 0,\r\n\t\t\t\tmaxDate: getMaxYearsInFuture() ? '+' + getMaxYearsInFuture() + 'Y' : '+150Y',\r\n\t\t\t\tdateFormat: getDateFormat($end),\r\n\t\t\t\tbeforeShow: function (element) {\r\n\t\t\t\t\tself.calendarBeforeShow(element)\r\n\t\t\t\t},\r\n\t\t\t\tonClose: function (selectedDate) {\r\n\t\t\t\t\tif (selectedDate) {\r\n\t\t\t\t\t\t$start.datepicker('option', 'maxDate',\r\n\t\t\t\t\t\t\tselectedDate === '' || !isValidFormat($end, selectedDate) ? 0 : selectedDate);\r\n\t\t\t\t\t}\r\n\t\t\t\t\tself.calendarOnClose(this);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t$start.on(\"change\", function () {\r\n\t\t\t\tif (!$(this).val()) {\r\n\t\t\t\t\t$end.datepicker(\"option\", \"minDate\", options.minEndDate || 0);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t$end.on(\"change\", function () {\r\n\t\t\t\tif (!$(this).val()) {\r\n\t\t\t\t\t$start.datepicker(\"option\", \"maxDate\", null);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tvar $parentContainer = $picker.parents($picker.data('parentcontainer'));\r\n\t\t\r\n\t\tif ($picker.hasClass('is-comparison-range')) {\r\n\t\t\t$start.datepicker({\r\n\t\t\t\tdateFormat: getDateFormat($start),\r\n\t\t\t\tmaxDate: 0,\r\n\t\t\t\tminDate: '-50Y',\r\n\t\t\t\tonClose: function (selectedDate) {\r\n\t\t\t\t\tif (selectedDate != '' && isValidFormat($start, selectedDate)) {\r\n\t\t\t\t\t\t$end.datepicker('option', 'minDate', selectedDate);\r\n\t\t\t\t\t}\r\n this.focus();\r\n }\r\n\t\t\t});\r\n\r\n\t\t\t$end.datepicker({\r\n\t\t\t\tdateFormat: getDateFormat($end),\r\n\t\t\t\tmaxDate: 0,\r\n minDate: '-50Y',\r\n\t\t\t\tonClose: function(selectedDate) {\r\n\t\t\t\t\tif (selectedDate != '' && isValidFormat($end, selectedDate)) {\r\n\t\t\t\t\t\t$start.datepicker('option', 'maxDate', selectedDate);\r\n\t\t\t\t\t}\r\n this.focus();\r\n }\r\n\r\n\t\t\t});\r\n\t\t} else if ($picker.hasClass('is-range') && $picker.hasClass('is-future')) {\r\n\t\t\tsetupFutureDatePicker($start, $end, {})\r\n\r\n\t\t} else if ($picker.hasClass('is-range') && $picker.hasClass('is-bti')) {\r\n\t\t\t$start.datepicker({\r\n dateFormat: getDateFormat($start),\r\n minDate: '-5Y',\r\n\t\t\t\tmaxDate: '5Y',\r\n\t\t\t\tbeforeShow: function (element) {\r\n\t\t\t\t\tself.calendarBeforeShow(element);\r\n\t\t\t\t},\r\n\t\t\t\tonClose: function (selectedDate) {\r\n $end.datepicker('option', 'minDate',\r\n selectedDate === '' || !isValidFormat($start, selectedDate) ? 0 : selectedDate);\r\n self.calendarOnClose(this);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t$end.datepicker({\r\n dateFormat: getDateFormat($end),\r\n minDate: '-5Y',\r\n\t\t\t\tmaxDate: '5Y',\r\n\t\t\t\tbeforeShow: function(element) {\r\n\t\t\t\t\tself.calendarBeforeShow(element)\r\n\t\t\t\t},\r\n\t\t\t\tonClose: function (selectedDate) {\r\n\t\t\t\t\t$start.datepicker('option', 'maxDate',\r\n selectedDate === '' || !isValidFormat($end, selectedDate) ? 0 : selectedDate);\r\n self.calendarOnClose(this);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t} else if ($picker.hasClass('is-range') && $picker.hasClass('is-healthdeclaration')) {\r\n\t\t\tsetupFutureDatePicker($start, $end, {\r\n\t\t\t\tminStartDate: +8,\r\n\t\t\t\tminEndDate: +8\r\n\t\t\t});\r\n\r\n\t\t} else if ($picker.hasClass('is-range-withstart')) {\r\n\t\t\tvar $withinInput = $parentContainer.find('.is-within-range input');\r\n\r\n\t\t\t$start.datepicker({\r\n\t\t\t\tdateFormat: getDateFormat($start),\r\n\t\t\t\tbeforeShow: function (element) {\r\n\t\t\t\t\tself.calendarBeforeShow(element);\r\n\t\t\t\t},\r\n\t\t\t\tonClose: function (selectedDate) {\r\n\t\t\t\t\t$end.datepicker('option', 'minDate',\r\n selectedDate === '' || !isValidFormat($start, selectedDate) ? 0 : selectedDate);\r\n\t\t\t\t\tself.calendarOnClose(this);\r\n\t\t\t\t\t$withinInput.datepicker('option', 'minDate', selectedDate);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t$end.datepicker({\r\n\t\t\t\tdateFormat: getDateFormat($end),\r\n\t\t\t\tbeforeShow: function (element) {\r\n\t\t\t\t\tself.calendarBeforeShow(element)\r\n\t\t\t\t},\r\n\t\t\t\tonClose: function (selectedDate) {\r\n\t\t\t\t\t$start.datepicker('option', 'maxDate',\r\n selectedDate === '' || !isValidFormat($end, selectedDate) ? 0 : selectedDate);\r\n\t\t\t\t\tself.calendarOnClose(this);\r\n\t\t\t\t\t$withinInput.datepicker('option', 'maxDate', selectedDate);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t} else if ($picker.hasClass('is-search-range')) {\r\n\t\t\tvar fixEnterAndValidation = function($element) {\r\n\t\t\t\t$element.blur();\r\n\r\n\t\t\t\t//prevent infinityloop in all IE\r\n\t\t\t\tif (!self.checks.isIE()) {\r\n\t\t\t\t\t$element.focus();\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$element.click(function() {\r\n\t\t\t\t\t$(this).datepicker('show');\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t$start.datepicker({\r\n\t\t\t\tmaxDate: '+150Y',\r\n\t\t\t\tminDate: '-150Y',\r\n\t\t\t\tonClose: function() {\r\n\t\t\t\t\tfixEnterAndValidation($start);\r\n this.focus();\r\n }\r\n\t\t\t});\r\n\r\n\t\t\t$end.datepicker({\r\n\t\t\t\tmaxDate: '+150Y',\r\n\t\t\t\tminDate: '-150Y',\r\n\t\t\t\tonClose: function() {\r\n\t\t\t\t\tfixEnterAndValidation($end);\r\n this.focus();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t$start.addClass('ignore-blurreset');\r\n\t\t\t$end.addClass('ignore-blurreset');\r\n\r\n\t\t} else if ($picker.hasClass('is-single') && $picker.hasClass('is-normal')) {\r\n\r\n\t\t\t$inputs.datepicker({\r\n\t\t\t\tmaxDate: '+150Y',\r\n\t\t\t\tminDate: '-150Y',\r\n onClose: function () {\r\n this.focus();\r\n }\r\n });\r\n\r\n\t\t} else if ($picker.hasClass('is-single') && $picker.hasClass('is-future')) {\r\n\t\t\tvar maxDate = getMaxDaysInFuture() ? '+' + getMaxDaysInFuture() + 'D' : '+150Y';\r\n\t\t\t$inputs.datepicker({\r\n\t\t\t\tmaxDate: maxDate,\r\n\t\t\t\tminDate: '0',\r\n\t\t\t\tbeforeShow: function (element) {\r\n\t\t\t\t\tself.calendarBeforeShow(element);\r\n\t\t\t\t},\r\n\t\t\t\tonClose: function() {\r\n\t\t\t\t\tself.calendarOnClose(this);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t} else if ($picker.hasClass('is-single') && $picker.hasClass('is-history')) {\r\n\t\t\t$inputs.datepicker({\r\n\t\t\t\tmaxDate: '0',\r\n\t\t\t\tminDate: '-150Y',\r\n\t\t\t\tbeforeShow: function (element) {\r\n\t\t\t\t\tself.calendarBeforeShow(element);\r\n\t\t\t\t},\r\n\t\t\t\tonClose: function () {\r\n\t\t\t\t\tself.calendarOnClose(this);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t} else if ($picker.hasClass('is-single') && $picker.hasClass('is-birthdate')) {\r\n\t\t\t$inputs.datepicker(\r\n\t\t\t\t{\r\n\t\t\t\t\tmaxDate: '0',\r\n\t\t\t\t\tminDate: '-100Y',\r\n\t\t\t\t\tyearRange: '-100:+ 0',\r\n\t\t\t\t\tbeforeShow: function (element) {\r\n\t\t\t\t\t\tself.calendarBeforeShow(element);\r\n\t\t\t\t\t},\r\n\t\t\t\t\tonClose: function () {\r\n\t\t\t\t\t\tself.calendarOnClose(this);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t} else if ($picker.hasClass('is-single') && $picker.hasClass('is-mindate')) {\r\n\t\t\t$inputs.datepicker({\r\n\t\t\t\tmaxDate: '+150Y',\r\n\t\t\t\tminDate: new Date($picker.attr('data-mindate')),\r\n onClose: function () {\r\n this.focus();\r\n }\r\n });\r\n\t\t\t$end.addClass('ignore-blurreset');\r\n\r\n\t\t} else if ($picker.hasClass('is-single') && $picker.hasClass('is-within-range') && $parentContainer.length === 1) {\r\n\t\t\tvar $startPeriod = $parentContainer.find('.start'),\r\n\t\t\t\t$endPeriod = $parentContainer.find('.end');\r\n\r\n\t\t\tif ($startPeriod.length === 1 && $endPeriod.length === 1) {\r\n\t\t\t\t$inputs.datepicker({\r\n\t\t\t\t\tmaxDate: $endPeriod.val() === '' ? '+150Y' : $endPeriod.val(),\r\n\t\t\t\t\tminDate: $startPeriod.val() === '' ? '0' : $startPeriod.val(),\r\n\t\t\t\t\tonClose: function (selectedDate) {\r\n this.focus();\r\n\t\t\t\t\t\tvar date = new Date(self.formatting.reverseShortDate(selectedDate));\r\n\r\n\t\t\t\t\t\tif (date > new Date(self.formatting.reverseShortDate($endPeriod.val())) || date < new Date(self.formatting.reverseShortDate($startPeriod.val()))) {\r\n\t\t\t\t\t\t\t$(this).val($startPeriod.val());\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\t$inputs.datepicker({\r\n\t\t\t\t\tmaxDate: '+150Y',\r\n\t\t\t\t\tminDate: 0,\r\n onClose: function () {\r\n this.focus();\r\n }\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t$inputs = null; // no date inputs found\r\n\t\t}\r\n\r\n\t\t// clean validation\r\n\t\tif ($inputs != null && $inputs.length > 0) {\r\n\t\t\t$inputs.each(function() {\r\n\t\t\t\tvar $input = $(this);\r\n\t\t\t\tif ($input.data('val') === true) {\r\n\t\t\t\t\t$input.on('blur', function (e) {\r\n\t\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\t\tif ($input.val().length === 0) {\r\n\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\te.stopPropagation();\r\n\r\n\t\t\t\t\t\t\t\t$input.valid();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}, 250);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tself.autocompleteFix($inputs);\r\n\r\n\t\t$picker.find('.date-icon, label').on('click', function () { $(this).parent().find('input').focus(); });\r\n\t}\r\n\r\n\tERVForms.prototype.disableFormElementsInContainer = function ($container, disable, removeValidation) {\r\n\t\tif (removeValidation === undefined) {\r\n\t\t\tremoveValidation = true;\r\n\t\t}\r\n\r\n\t\t$container.find('input, select, button, label').each(function () {\r\n\t\t\tvar $this = $(this);\r\n\r\n\t\t\t$this.prop('disabled', disable);\r\n\r\n\t\t\tif (!disable) {\r\n\t\t\t\t$this.parent().find('label').removeClass('disabled');\r\n\t\t\t} else {\r\n\t\t\t\t$this.parent().find('label').addClass('disabled');\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tif (removeValidation) {\r\n\t\t\t$container.find('.input-validation-error').removeClass('input-validation-error');\r\n\t\t}\r\n\t};\r\n\r\n\tERVForms.prototype.setupDropdownTogglers = function($togglers) {\r\n\t\t$.each($togglers,\r\n\t\t\tfunction() {\r\n\t\t\t\tvar $this = $(this),\r\n\t\t\t\t\t$triggerElement = $this.find('select');\r\n\r\n\t\t\t\tvar $childrenContainer = $this.parent().find('[data-toggle=\"children\"]');\r\n\t\t\t\t\r\n\t\t\t\tif ($triggerElement.find('option:selected').val() === 'Other')\r\n\t\t\t\t\t$childrenContainer.removeClass('hide');\r\n\t\t\t\t$triggerElement.change(function () {\r\n\t\t\t\t\t$childrenContainer.toggleClass('hide', $(this).find('option:selected').val() !== 'Other');\r\n\t\t\t\t});\r\n\t\t\t\t\r\n\t\t\t});\r\n\t}\r\n\r\n\tERVForms.prototype.setupRadioTogglers = function ($togglers, parentSelector) {\r\n\t\tvar parseRawValue = function(rawValue) {\r\n\t\t\tif(rawValue === undefined || rawValue === '') {\r\n\t\t\t\treturn '';\r\n\t\t\t}\r\n\r\n\t\t\treturn rawValue;\r\n\t\t}\r\n\r\n\t\t$.each($togglers, function() {\r\n\t\t\tvar $this = $(this),\r\n\t\t\t\t$triggerElement = $this.find('input[type=radio]');\r\n\r\n\t\t\tvar $childrenContainer, $childrenContainer2;\r\n\r\n\t\t\tif (parentSelector != undefined) {\r\n\t\t\t\t$childrenContainer = $this.parents(parentSelector).find('[data-toggle=\"children\"]');\r\n\t\t\t\t$childrenContainer2 = $this.parents(parentSelector).find('[data-toggle=\"children2\"]');\r\n\t\t\t} else {\r\n\t\t\t\t$childrenContainer = $this.parent().find('[data-toggle=\"children\"]');\r\n\t\t\t\t$childrenContainer2 = $this.parent().find('[data-toggle=\"children2\"]');\r\n\t\t\t}\r\n\r\n\t\t\tvar childrenContainerCount = $this.parent().find('[data-toggle=\"children\"], [data-toggle=\"children2\"]').length;\r\n\r\n\t\t\tif (childrenContainerCount == 1) {\r\n\t\t\t\t// Show children if true is checked\r\n\t\t\t\tif ($triggerElement.filter('[data-value=\"true\"]').prop(\"checked\")) {\r\n\t\t\t\t\t$childrenContainer.removeClass('hide');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\telse if (childrenContainerCount == 2) {\r\n\t\t\t\t// Show children if true is checked\r\n\t\t\t\tif ($triggerElement.filter('[data-value=\"true\"]').prop(\"checked\")) {\r\n\t\t\t\t\t$childrenContainer.removeClass('hide');\r\n\t\t\t\t\t$childrenContainer2.addClass('hide');\r\n\t\t\t\t} else if ($triggerElement.filter('[data-value=\"false\"]').prop(\"checked\")) {\r\n\t\t\t\t\t$childrenContainer.addClass('hide');\r\n\t\t\t\t\t$childrenContainer2.removeClass('hide');\r\n\t\t\t\t} else if ($triggerElement.filter('[data-value=\"unsure\"]').prop(\"checked\")) {\r\n\t\t\t\t\t$childrenContainer.addClass('hide');\r\n\t\t\t\t\t$childrenContainer2.addClass('hide');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t$triggerElement.change(function () {\r\n\t\t\t\t$this.find('input[data-js=\"value-raw\"]')\r\n\t\t\t\t\t.attr('value', parseRawValue($(this).data('value-raw')));\r\n\t\t\t\tif ($(this).data('value') === 'unsure') {\r\n\t\t\t\t\t$childrenContainer.addClass('hide');\r\n\t\t\t\t\t$childrenContainer2.addClass('hide');\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$childrenContainer.toggleClass('hide', !$(this).data('value'));\r\n\t\t\t\t\t$childrenContainer2.toggleClass('hide', $(this).data('value'));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ($childrenContainer.hasClass('hide')) {\r\n\t\t\t\t\t$childrenContainer.find('input[data-val=\"true\"]').removeClass('input-validation-error');\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$childrenContainer.find('input[data-val=\"true\"]').removeClass('input-validation-valid');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif ($childrenContainer2.hasClass('hide')) {\r\n\t\t\t\t\t$childrenContainer2.find('input[data-val=\"true\"]').removeClass('input-validation-error');\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$childrenContainer2.find('input[data-val=\"true\"]').removeClass('input-validation-valid');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t});\r\n\t};\r\n\r\n\tERVForms.prototype.updateValidation = function ($input) {\r\n\t\tvar form = $input.closest('form')\r\n\t\t\t.removeData('validator')\r\n\t\t\t.removeData('unobtrusiveValidation');\r\n\r\n\t\t$.validator.unobtrusive.parse(form);\r\n\t};\r\n\t\r\n\tERVForms.prototype.activateLoading = function ($element, shouldSubmit, e) {\r\n\t\tif (typeof (e) !== 'undefined') {\r\n\t\t\te.preventDefault();\r\n\t\t\te.stopPropagation();\r\n\t\t}\r\n\r\n\t\tif (!$element.hasClass('loading')) {\r\n\t\t\t$element.addClass('loading disabled is-inactive');\r\n\r\n\t\t\tif (shouldSubmit) {\r\n\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\tif ($element[0].tagName === 'FORM') {\r\n\t\t\t\t\t\t$element.submit();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$element.parents('form').submit();\r\n\t\t\t\t\t}\r\n\t\t\t\t}, 20);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tERVForms.prototype.activateLoadingHorizontal = function ($element, themeDark) {\r\n\t\tvar loadingElement = '
    ';\r\n\r\n\t\tif (themeDark) {\r\n\t\t\tloadingElement = '
    ';\r\n\t\t}\r\n\r\n\t\t$(loadingElement).insertAfter($element);\r\n\t}\r\n\r\n\tERVForms.prototype.deactivateLoadingHorizontal = function ($element) {\r\n\t\t$element.parent().find('.loading-overlay').remove();\r\n\t}\r\n\r\n\tERVForms.prototype.deactivateLoading = function ($element) {\r\n\t\t$element.removeClass('loading disabled is-inactive');\r\n\t}\r\n\t\r\n\tERVForms.prototype.init = function () {\r\n\t\tvar self = this;\r\n\r\n\t\t$('form').bind('invalid-form.validate', function (form, validator) {\r\n\t\t\tvar $form = $(this);\r\n\r\n\t\t\tif ($form.data('js') === 'novalidationsummary')\r\n\t\t\t\treturn;\r\n\r\n\t\t\tif (typeof (validator.errorList) === 'undefined' || validator.errorList.length === 0)\r\n\t\t\t\treturn;\r\n\r\n\t\t\tself.validationSummary.updateErrorFieldsLabels(validator, $form);\r\n\r\n\t\t\tself.validationSummary.setErrorFieldLabels();\r\n\r\n\t\t\tif (self.$ervBody.find('.validation-summary-errors ul li').length > 1) {\r\n\t\t\t\t$('html, body').animate({\r\n\t\t\t\t\tscrollTop: 0\r\n\t\t\t\t},\r\n\t\t\t\t\t400);\r\n\t\t\t} else {\r\n\t\t\t\t$('#' + validator.errorList[0].element.id).focus();\r\n\t\t\t}\r\n\r\n\t\t\tself.deactivateLoading($form.find('.btn.loading'));\r\n\t\t});\r\n\r\n\t\tif ($('form').length > 0 && $.data($('form')[0], 'validator') !== undefined) {\r\n\t\t\tvar settings = $.data($('form')[0], 'validator').settings;\r\n\r\n\t\t\tsettings.submitHandler = function (form) {\r\n\t\t\t\t$(form).find('.validation-summary-errors').remove();\r\n\t\t\t\tform.submit();\r\n\t\t\t};\r\n\t\t}\r\n\r\n\t\tself.setEnterTriggerClick();\r\n\t\tself.initPickers();\r\n\t\tself.initFormSelects();\r\n\t\tself.initInputNumbersOnly();\r\n\t\tself.initResetButtons();\r\n\t\tself.ervTagit.init();\r\n self.episerverFormsHelpers.init();\r\n\t\tself.initFormWithLoader();\r\n\r\n\t\tif (self.checks.isIos()) {\r\n\t\t\twindow.addEventListener('pagehide', function () {\r\n\t\t\t\tself.deactivateLoading(self.$ervBody.find('.loading'));\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\t//on blur instant feedback\r\n\t\tsetTimeout(function () {\r\n\t\t\tself.$ervBody.find('input[data-val=\"true\"]').on('blur', function () {\r\n\t\t\t\tvar $input = $(this);\r\n\r\n\t\t\t\t$input.val($input.val().trim());\r\n\r\n\t\t\t\t//Datepicker need to run .valid() later\r\n\t\t\t\tif (!$input.hasClass('hasDatepicker')) {\r\n\t\t\t\t\t$input.valid();\r\n\r\n\t\t\t\t\tif (self.$ervBody.find('.input-validation-error').length === 0) {\r\n\t\t\t\t\t\tself.$ervBody.find('.validation-summary-errors').addClass('hide');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tself.$ervBody.find('.validation-summary-errors').removeClass('hide');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}, 200);\r\n\t}\r\n\r\n\treturn ERVForms;\r\n})","define(['jquery', 'postalhelper', 'forms'], function ($, ERVPostalHelper, ERVForms) {\r\n\tvar ERVHealthDeclaration = function() {\r\n\t\tvar self = this;\r\n\r\n\t\tself.$ervBody = $('#erv-body');\r\n\t\tself.$form = $('form[data-js-mainform]');\r\n\t\tself.postalHelper = new ERVPostalHelper();\r\n\t\tself.forms = new ERVForms();\r\n\t};\r\n\r\n\tERVHealthDeclaration.prototype.init = function () {\r\n\t\tvar self = this;\r\n\r\n\t\tself.postalHelper.init();\r\n\r\n\t\tself.forms.setupRadioTogglers(self.$form.find('*[data-js=\"yes-toggler\"]'), '.question-container');\r\n\t}\r\n\r\n\treturn ERVHealthDeclaration;\r\n});","define([], function () {\r\n\tvar HeroImage = function () {\r\n\t\tvar self = this;\r\n\r\n\t\tself.init = function(heroElement) {\r\n\t\t\tif (!heroElement) {\r\n\t\t\t\tconsole.error('[hero_image]: no valid hero image node found')\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\r\n\t\t\tif (!window.ERV.ViewData.TopImagePartial) {\r\n\t\t\t\tconsole.error('[hero_image]: TopImagePartial data was not provided')\r\n\t\t\t\treturn \r\n\t\t\t}\r\n\t\t\t\r\n\t\t\theroElement.sources = [\r\n\t\t\t\t{\r\n\t\t\t\t\tsrcset: window.ERV.ViewData.TopImagePartial.imageUrl.small,\r\n\t\t\t\t\tmedia: '(max-width: 1023px)',\r\n\t\t\t\t},\r\n\t\t\t\t{\r\n\t\t\t\t\tsrcset: window.ERV.ViewData.TopImagePartial.imageUrl.big,\r\n\t\t\t\t\tmedia: '(min-width: 1024px)',\r\n\t\t\t\t}\r\n\t\t\t]\r\n\r\n\t\t\theroElement.src = window.ERV.ViewData.TopImagePartial.imageUrl.big\r\n\t\t}\r\n\t}\r\n\r\n\treturn HeroImage\r\n});","define(['jquery'], function ($) {\r\n\treturn {\r\n\t\tMaskingCPRNumber: function (input) {\r\n\r\n\t\t\tconst value = input.value.replace(/\\D/g, '');\r\n\t\t\tif (value.length > 6) {\r\n\t\t\t\tinput.value = value.slice(0, 6) + '-' + value.slice(6, 10);\r\n\t\t\t}\r\n\t\t\telse {\r\n\t\t\t\tinput.value = value;\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tMaskingCVRNumber: function (input, domain) {\r\n\r\n\t\t\tconst value = input.value.replace(/\\D/g, '');\r\n\t\t\tdomain = domain.toLowerCase();\r\n\t\t\tif (domain === 'dk') {\r\n\t\t\t\tinput.maxLength = 8;\r\n\t\t\t\tinput.value = value;\r\n\t\t\t}\r\n\t\t\telse if (domain === 'se') {\r\n\t\t\t\tinput.maxLength = 11;\r\n\t\t\t\tif (value.length > 6) {\r\n\t\t\t\t\tinput.value = value.slice(0, 6) + '-' + value.slice(6, 10);\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tinput.value = value;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t};\r\n});","define(['jquery', 'common'], function ($, Common) {\r\n\r\n\tvar MonitorPage = function() {\r\n\t\tvar self = this;\r\n\t\tself.$ervBody = $('#erv-body');\r\n\t\tself.common = new Common();\r\n\r\n\t\tself.dashTypeSpecifics = function ($block, data) {\r\n\t\t\tvar type = $block.data('type'),\r\n\t\t\t\ttriggerValue = Number($block.data('triggervalue')),\r\n\t\t\t\tcurrentNumber = -1;\r\n\t\t\tvar limit = triggerValue * 0.3;\r\n\r\n\t\t\tif (type === 'logs') {\r\n\t\t\t\tcurrentNumber = Number(data);\r\n\r\n\t\t\t\t$block.attr('class', '');\r\n\r\n\t\t\t\tif (triggerValue === 0) {\r\n\t\t\t\t\ttriggerValue = 100;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tself.setLogsClasses($block, currentNumber, limit, triggerValue);\r\n\t\t\t} else if (type === 'sales') {\r\n\t\t\t\tif (data.indexOf('No sales available') != -1) {\r\n\t\t\t\t\t$block.addClass('error text');\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t} else if (data.indexOf(',') != -1) {\r\n\t\t\t\t\tdata = data.replace(',', '.');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tcurrentNumber = Number(data);\r\n\t\t\t\tself.setSalesClasses($block, currentNumber);\r\n\t\t\t}\r\n\r\n\t\t\tself.triggerWarning($block, currentNumber, triggerValue, limit);\r\n\t\t};\r\n\r\n\t\tself.setSalesClasses = function($block, currentNumber) {\r\n\t\t\t$block.attr('class', '');\r\n\t\t\tif (currentNumber === 0) {\r\n\t\t\t\t$block.addClass('error');\r\n\t\t\t} else if (currentNumber > 0) {\r\n\t\t\t\t$block.addClass('debug');\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tself.setLogsClasses = function($block, currentNumber, limit, triggerValue){\r\n\t\t\tif (currentNumber <= limit) {\r\n\t\t\t\t$block.addClass('debug');\r\n\t\t\t} else if (currentNumber > limit && currentNumber < triggerValue) {\r\n\t\t\t\t$block.addClass('warn');\r\n\t\t\t} else if (currentNumber >= triggerValue) {\r\n\t\t\t\t$block.addClass('error');\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tself.triggerWarning = function($block, currentNumber, triggerValue, limit) {\r\n\t\t\tif (currentNumber >= triggerValue) {\r\n\r\n\t\t\t\tvar shouldTrigger = false;\r\n\r\n\t\t\t\tif (typeof ($block.attr('data-nexttriggerpoint')) !== 'undefined') {\r\n\t\t\t\t\tif (currentNumber >= Number($block.attr('data-nexttriggerpoint'))) {\r\n\t\t\t\t\t\tshouldTrigger = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tshouldTrigger = true;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (shouldTrigger) {\r\n\t\t\t\t\tself.warningSound($block, currentNumber, limit);\r\n\t\t\t\t\tself.warningBlink($block, 10);\r\n\t\t\t\t\t$block.attr('data-nexttriggerpoint', (currentNumber + limit));\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tself.warningSound = function ($block) {\r\n\r\n\t\t\tif ($block.find('audio').length !== 1) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tvar audio = $block.find('audio')[0];\r\n\r\n\t\t\tvar isPlaying = audio.currentTime > 0 && !audio.paused && !audio.ended\r\n\t\t\t\t&& audio.readyState > 2;\r\n\r\n\t\t\tif (!isPlaying) {\r\n\t\t\t\tvar promise = audio.play();\r\n\r\n\t\t\t\tif (promise !== undefined) {\r\n\t\t\t\t\tpromise.then(function () {\r\n\t\t\t\t\t\tconsole.warn('ok promise');\r\n\t\t\t\t\t}).catch(function (error) {\r\n\t\t\t\t\t\tconsole.warn('no promise', error);\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tself.warningBlink = function ($block, animationLoops) {\r\n\t\t\tvar speed = 200;\r\n\r\n\t\t\tvar intervalId = setInterval(function () {\r\n\t\t\t\t$block.fadeOut(speed).fadeIn(speed);\r\n\r\n\t\t\t\tanimationLoops -= 1;\r\n\t\t\t\tif (animationLoops === 0) {\r\n\t\t\t\t\tclearInterval(intervalId);\r\n\t\t\t\t}\r\n\t\t\t}, speed * 2);\r\n\t\t}\r\n\r\n\t\tself.getDashData = function() {\r\n\t\t\tself.$ervBody.find('[data-fetchurl]').each(function() {\r\n\t\t\t\tvar $fetchBlock = $(this);\r\n\r\n\t\t\t\tvar url = $fetchBlock.data('fetchurl'),\r\n\t\t\t\t\tblockId = $fetchBlock.data('blockid'),\r\n\t\t\t\t\ttriggerValue = $fetchBlock.data('triggervalue');\r\n\r\n\t\t\t\tif (typeof (triggerValue) !== 'undefined' && Number(triggerValue) > 0) {\r\n\t\t\t\t\turl += '&blockId=' + blockId;\r\n\t\t\t\t\turl += '&triggerValue=' + Number(triggerValue);\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$.ajax({\r\n\t\t\t\t\turl: url,\r\n\t\t\t\t\tsuccess: function(data) {\r\n\t\t\t\t\t\t$fetchBlock.find('[data-js=\"fetched\"]').text(data);\r\n\t\t\t\t\t\tself.dashTypeSpecifics($fetchBlock, data);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tself.initDashBoard = function () {\r\n\t\t\tself.getDashData();\r\n\r\n\t\t\tsetInterval(function() {\r\n\t\t\t\tself.getDashData();\r\n\t\t\t},\r\n\t\t\t45000);\r\n\t\t};\r\n\r\n\t\tself.escapeRegExp = function (str) {\r\n\t\t\treturn str && str.replace(/[-[\\]/{}()*+?.\\\\^$|]/g, \"\\\\$&\");\r\n\t\t};\r\n\r\n\t\tself.initGetLog = function() {\r\n\t\t\tvar $form = self.$ervBody.find('form');\r\n\r\n\t\t\tvar $dateToUpdate = self.$ervBody.find('.is-date');\r\n if ($dateToUpdate.length > 0) {\r\n self.common.forms.initDatePicker($dateToUpdate);\r\n }\r\n\r\n\t\t\tif ($form.length === 0 || $form.attr('action').indexOf('GetLog') < 0) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tself.$ervBody.on('click', '.entry .level', function() {\r\n\t\t\t\t$(this).parent().toggleClass('is-expanded');\r\n\t\t\t});\r\n\r\n\t\t\tself.$ervBody.on('keyup', '#monitor-log-search', function() {\r\n\t\t\t\tvar query = $(this).val(), entries = self.$ervBody.find('.entry');\r\n\r\n\t\t\t\tif (!query || !query.length) {\r\n\t\t\t\t\tentries.removeClass('hide');\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar regex = new RegExp(self.escapeRegExp(query), 'i');\r\n\t\t\t\tentries.each(function() {\r\n\t\t\t\t\t$(this).toggleClass('hide', !regex.test($(this).text()));\r\n\t\t\t\t});\r\n\t\t\t});\r\n\r\n\t\t\tself.$ervBody.on('change', '#logfolder', function() {\r\n\t\t\t\t$(this).parents('form').submit();\r\n\t\t\t});\r\n\t\t\tself.$ervBody.on('change', '#selecteddate', function () {\r\n $(this).parents('form').submit();\r\n });\r\n\t\t};\r\n\t};\r\n\r\n\tMonitorPage.prototype.init = function () {\r\n\t\tvar self = this;\r\n\r\n\t\tself.initGetLog();\r\n\r\n\t\tself.initDashBoard();\r\n\t}\r\n\r\n\treturn MonitorPage;\r\n});","define(['jquery', 'common'], function ($, Common) {\r\n\r\n\t\tvar NHCPayment = function() {\r\n\t\t\tvar self = this;\r\n\t\t\tself.$ervBody = $('#erv-body');\r\n\t\t\tself.$form = self.$ervBody.find('form[data-js-mainform]');\r\n\t\t\tself.common = new Common();\r\n\r\n\t\t\tself.initEventHandlers = function() {\r\n\t\t\t\tself.$ervBody.find('[name=\"Input.TypeOfPayment\"]').on('change', function () {\r\n\t\t\t\t\tvar $input = $(this),\r\n\t\t\t\t\t$invoiceSection = self.$form.find('[data-js=\"invoicesection\"]'),\r\n\t\t\t\t\t$accountSection = self.$form.find('[data-js=\"accountsection\"]'),\r\n\t\t\t\t\t$submitButton = self.$form.find('[data-js=\"submitbutton\"]'),\r\n\t\t\t\t\t$noInvoices = self.$form.find('[data-js=\"noinvoices\"]');\r\n\r\n\t\t\t\t\tif ($input.data('value') === 'account') {\r\n\t\t\t\t\t\t$invoiceSection.addClass('hide');\r\n\t\t\t\t\t\t$accountSection.removeClass('hide');\r\n\t\t\t\t\t\tself.common.forms.disableFormElementsInContainer($accountSection, false);\r\n\t\t\t\t\t\tself.common.forms.disableFormElementsInContainer($invoiceSection, true);\r\n\t\t\t\t\t\t$submitButton.removeClass('hide');\r\n\t\t\t\t\t\t$noInvoices.addClass('hide');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$invoiceSection.removeClass('hide');\r\n\t\t\t\t\t\t$accountSection.addClass('hide');\r\n\t\t\t\t\t\tself.common.forms.disableFormElementsInContainer($accountSection, true);\r\n\t\t\t\t\t\tself.common.forms.disableFormElementsInContainer($invoiceSection, false);\r\n\r\n\t\t\t\t\t\tif ($invoiceSection.length === 0) {\r\n\t\t\t\t\t\t\t$noInvoices.removeClass('hide');\r\n\t\t\t\t\t\t\t$submitButton.addClass('hide');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t};\r\n\t\t};\r\n\r\n\t\tNHCPayment.prototype.init = function () {\r\n\t\t\tvar self = this;\r\n\t\t\tself.initEventHandlers();\r\n\r\n\t\t\tself.$form.on('submit', function (e) {\r\n\t\t\t\tif (self.$form.find('.input-validation-error').length === 0) {\r\n\t\t\t\t\tself.common.forms.activateLoading(self.$form, false);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tself.common.forms.deactivateLoading(self.$form);\r\n\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\treturn NHCPayment;\r\n});","define(['jquery'], function ($) {\r\n\r\n\tvar PaginationSimple = function () {\r\n\t\tvar self = this;\r\n\r\n\t\tself.$ervBody = $('#erv-body');\r\n\t\r\n\t\tself.updateVisibleItems = function (pageSize, itemSelector, $results, $button) {\r\n\t\t\tvar $hits = $results.find(itemSelector),\r\n\t\t\t\tindex = 1;\r\n\r\n\t\t\t$hits.each(function () {\r\n\t\t\t\tvar $hit = $(this);\r\n\r\n\t\t\t\tif (index <= pageSize) {\r\n\t\t\t\t\t$hit.removeClass('hide');\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$hit.addClass('hide');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tindex++;\r\n\t\t\t});\r\n\r\n\t\t\tself.updateButton($hits, $button);\r\n\t\t}\r\n\r\n\t\tself.updateButton = function ($hits, $button) {\r\n\t\t\tvar allVisible = $hits.filter('.hide').length === 0;\r\n\t\t\tif (allVisible) {\r\n\t\t\t\t$button.addClass('hide');\r\n\t\t\t} else {\r\n\t\t\t\t$button.removeClass('hide');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tself.buttonClickHandler = function (pageSize, $button, $container, itemSelector) {\r\n\t\t\t$button.off('click');\r\n\t\t\t$button.on('click', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t\tvar visibleCount = $container.find(itemSelector + ':not(.hide)').length;\r\n\t\t\t\tself.updateVisibleItems(pageSize + visibleCount, itemSelector, $container, $(this));\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\t\r\n\tPaginationSimple.prototype.refreshSpecific = function (pageSize, $container, itemSelector, buttonSelector) {\r\n\t\tvar self = this,\r\n\t\t\t$button = $container.find(buttonSelector);\r\n\r\n\t\tself.updateVisibleItems(pageSize, itemSelector, $container, $button);\r\n\t}\r\n\r\n\tPaginationSimple.prototype.init = function (pageSize, containerSelector, itemSelector, buttonSelector) {\r\n\t\tvar self = this;\r\n\r\n\t\tself.$buttons = self.$ervBody.find(buttonSelector);\r\n\t\tself.$buttons.each(function() {\r\n\t\t\tvar $button = $(this),\r\n\t\t\t\t$results = $button.parents(containerSelector);\r\n\r\n\t\t\tself.updateVisibleItems(pageSize, itemSelector, $results, $button);\r\n\t\t\tself.buttonClickHandler(pageSize, $(this), $results, itemSelector);\r\n\t\t});\r\n\t}\r\n\r\n\treturn PaginationSimple;\r\n});","define(['jquery','common'], function ($, ErvCommon) {\r\n\r\n\tvar ERVPostalHelper = function () {\r\n\t\tvar self = this;\r\n\t\tself.$ervBody = $('#erv-body');\r\n\t\tself.getCities = false;\r\n\t\tself.common = new ErvCommon();\r\n\r\n\t\tself.initEventHandlers = function () {\r\n\t\t\tif (self.$ervBody.find('#Input_PolicyHolder_PostalCode').length === 1) {\r\n\t\t\t\tself.$ervBody.find('#Input_PolicyHolder_PostalCode').on('keyup, blur', self.updateAdress);\r\n\t\t\t\tself.getCities = true;\r\n\t\t\t}\r\n\t\t\tif (self.$ervBody.find('#Input_PostalCode').length === 1) {\r\n\t\t\t\tself.$ervBody.find('#Input_PostalCode').on('keyup, blur', self.updateAdress);\r\n\t\t\t\tself.getCities = true;\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tself.getCityNames = function () {\r\n\t\t\tvar self = this;\r\n\t\t\tif (self.getCities) {\r\n\t\t\t\tvar postalCodesFile = self.common.framework.checks.isDk() ? 'DkZipCodes.js' : 'SeZipCodes.js';\r\n\r\n\t\t\t\t$.ajax({\r\n\t\t\t\t\tcache: true,\r\n\t\t\t\t\turl: '/assets/dist/script/internal/' + postalCodesFile,\r\n\t\t\t\t\tcontentType: \"application/json; charset=utf-8\",\r\n\t\t\t\t\tdataType: 'json',\r\n\t\t\t\t\tsuccess: function (data) {\r\n\t\t\t\t\t\tself.cityNames = data.Cities;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tself.autoSelectCountry = function (input) {\r\n\t\t\tif ($('#AllowCountryAutoSelect').val() !== 'True' || $('#Input_PolicyHolder_CountryCode option').length < 2) {\r\n return;\r\n }\r\n\r\n\t\t\t$('#Input_PolicyHolder_CountryCode')\r\n\t\t\t\t.val(self.translatePostalCodeToCountryCode(input));\r\n\t\t}\r\n\r\n\t\tself.autoSelectClaimsOnlineCountry = function (input) {\r\n\t\t\tif ($('#AllowClaimsOnlineCountryAutoSelect').val() !== 'true') {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\t$('#Input_AddressCountryIsoCode')\r\n\t\t\t\t.find(`option[value=\"${self.common.framework.checks.isDk() ? self.translatePostalCodeToCountryCode(input) : 'SE'}\"]`)\r\n\t\t\t\t.prop('selected', 'true')\r\n\t\t}\r\n\r\n\t\tself.translatePostalCodeToCountryCode = function (input) {\r\n\t\t\t\r\n\t\t\tif (input > 0 && input < 1000) {\r\n\t\t\t\treturn 'FO';\r\n\t\t\t} else if (input >= 3900 && input < 4000) {\r\n\t\t\t\treturn 'GL';\r\n\t\t\t}\r\n\t\t\treturn 'DK';\r\n\t\t}\r\n\r\n\t\tself.updateAdress = function (e) {\r\n\t\t\tvar postalInput = $(e.target).val();\r\n\r\n\t\t\tself.autoSelectCountry(+postalInput);\r\n\r\n\t\t\tif (postalInput.length < 4)\r\n\t\t\t\treturn;\r\n\r\n\t\t\tvar postalcleaned = postalInput.replace(/\\D/g, '');\r\n\r\n\t\t\tif (self.cityNames !== undefined) {\r\n\t\t\t\t$(self.cityNames).each(function (index, value) {\r\n\t\t\t\t\tif (self.cityNames[index].ZipCode === postalcleaned) {\r\n\t\t\t\t\t\tvar cityNameTarget = self.$ervBody.find('[data-js=\"trigger_postalcode\"]');\r\n\t\t\t\t\t\t$(cityNameTarget).val(value.Name);\r\n\t\t\t\t\t\tself.autoSelectClaimsOnlineCountry(+postalInput);\r\n\r\n\t\t\t\t\t\t$(cityNameTarget).removeClass('input-validation-error');\r\n\t\t\t\t\t\t$(cityNameTarget).addClass('input-validation-valid');\r\n\t\t\t\t\t\t$(cityNameTarget).siblings('span').empty();\r\n\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t};\r\n\r\n\tERVPostalHelper.prototype.init = function () {\r\n\t\tvar self = this;\r\n\t\tself.initEventHandlers();\r\n\t\tself.getCityNames();\r\n\t}\r\n\r\n\treturn ERVPostalHelper;\r\n});","define(['jquery', 'common'], function ($, Common) {\r\n\r\n\tvar ERVPostslist = function () {\r\n\t\tvar self = this;\r\n\t\tself.$ervBody = $('#erv-body');\r\n\t\tself.common = new Common();\r\n\r\n\t\t// is to one because the page shows pageindex 0 first time it renders\r\n\t\tself.currentPageIndex = 0;\r\n\t\tself.rootPageId = 0;\r\n\t\tself.isErgoThemeActive = false;\r\n\r\n\t\tself.loadMorePosts = function ($button, e) {\r\n\t\t\tvar newPageIndex = self.currentPageIndex + 1,\r\n\t\t\t\turl = '/' + self.postType + '/' + 'getnext' + self.postType + '?PageIndex=' + newPageIndex + '&PageId=' + self.rootPageId + '&isErgoThemeActive=' + self.isErgoThemeActive;\r\n\t\t\t\r\n\t\t\tif (self.$ervBody.find('[name^=\"SelectedCategories\"]:checked').length > 0) {\r\n\t\t\t\tvar selectedCategories = [];\r\n\r\n\t\t\t\tself.$ervBody.find('[name^=\"SelectedCategories\"]:checked').each(function() {\r\n\t\t\t\t\tselectedCategories.push($(this).val());\r\n\t\t\t\t});\r\n\r\n\t\t\t\turl += '&selectedCategories=' + selectedCategories.toString();\r\n\t\t\t}\r\n\r\n\t\t\tif (self.$ervBody.find('#SelectedSorting').length > 0) {\r\n\t\t\t\turl += '&orderBy=' + self.$ervBody.find('#SelectedSorting').val();\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\tself.common.forms.activateLoading($button, false, e);\r\n\r\n\t\t\t$.ajax({ type: 'GET', url: url,\r\n\t\t\t\tsuccess: function (data) {\r\n\t\t\t\t\tself.currentPageIndex = newPageIndex;\r\n\r\n\t\t\t\t\tvar $postlistContainer = self.$ervBody.find('#postslist-container');\r\n\t\t\t\t\t$postlistContainer.append(data);\r\n\r\n\t\t\t\t\tif (!self.hasMorePosts()) {\r\n\t\t\t\t\t\tself.$ervBody.find('#postslist-loadnext').remove();\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tself.common.initDataUrl($postlistContainer.find('[data-url]'));\r\n\t\t\t\t\tself.common.forms.deactivateLoading($button);\r\n\r\n\t\t\t\t\tself.common.initLazyLoad('#postslist-container .teaser-container:last');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tself.hasMorePosts = function () {\r\n\t\t\treturn self.currentPageIndex < self.totalPostsListPages - 1;\r\n\t\t};\r\n\t};\r\n\r\n\tERVPostslist.prototype.init = function (postType) {\r\n\t\tvar self = this;\r\n\r\n\t\tself.postType = postType;\r\n\t\tself.totalPostsListPages = self.$ervBody.find('#postslist-loadnext').data('totalposts');\r\n\t\tself.rootPageId = self.$ervBody.find('#postslist-loadnext').data('pageid');\r\n\t\tself.isErgoThemeActive = !!$('body.ergo-theme').length\r\n\r\n\t\t// wire up 'show more posts' button\r\n\t\tself.$ervBody.find('#postslist-loadnext').on('click', function (e) {\r\n\t\t\te.preventDefault();\r\n\t\t\tself.loadMorePosts($(this), e);\r\n\t\t});\r\n\r\n\t\tself.$ervBody.find('[name^=\"SelectedCategories\"]').on('change', function () {\r\n\t\t\tvar $form = $(this).parents('form');\r\n\t\t\tself.common.forms.activateLoading($form, true);\r\n\t\t});\r\n\r\n\t\tself.$ervBody.find('#SelectedSorting').on('change', function () {\r\n\t\t\tvar $form = $(this).parents('form');\r\n\t\t\tself.common.forms.activateLoading($form, true);\r\n\t\t});\r\n\t};\r\n\r\n\treturn ERVPostslist;\r\n});\r\n","define(['jquery', 'ajax_helper', 'forms', 'erv_framework','erv_translate'], function ($, AjaxHelper, Forms, Framework, Translate) {\r\n\tvar PriceCheck = function () {\r\n\t\tvar self = this;\r\n\t\tself.$priceCheckBlock = $('#erv-body .pricecheck-block');\r\n\t\tself.ajaxHelper = new AjaxHelper();\r\n\t\tself.forms = new Forms();\r\n\t\tself.framework = new Framework();\r\n\t\tself.translate = new Translate();\r\n\t\t\r\n\t\tself.initEventHandlers = function () {\r\n\t\t\tself.$priceCheckBlock.on('click', 'button.btn', function(e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\te.stopPropagation();\r\n\r\n\t\t\t\tvar $form = $(this).parents('form');\r\n\t\t\t\t\r\n\t\t\t\tself.ajaxHelper.submitForm($form, function (data) {\r\n\t\t\t\t\t// if has annual price, set it or clear\r\n\t\t\t\t\tvar $annual = self.$priceCheckBlock.find('.annual-price');\r\n\r\n\t\t\t\t\tif (data.annualPrice && data.annualPrice != \"0\") {\r\n\t\t\t\t\t\tvar label = $annual.data('label');\r\n\t\t\t\t\t\t$annual.text(label && label.length ? label.replace('{0}', data.annualPrice + ' ' + data.currency) : '');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$annual.text('');\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (data.price) {\r\n\t\t\t\t\t\tvar $price = self.$priceCheckBlock.find('.price');\r\n\r\n\t\t\t\t\t\t$price.text(data.price + ' ' + data.currency);\r\n\t\t\t\t\t\tself.togglePrice(true);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tself.translate.initNoTranslate();\r\n\t\t\t\t}, function (data) {\r\n\t\t\t\t\tif (data.messages) {\r\n\t\t\t\t\t\tvar $errorLabels = self.$priceCheckBlock.find('.errors'),\r\n\t\t\t\t\t\t\tmessages = data.messages.toString().split(',');\r\n\r\n\t\t\t\t\t\t$errorLabels.empty();\r\n\r\n\t\t\t\t\t\tfor (var message of messages) {\r\n\t\t\t\t\t\t\t$errorLabels.append($('').text(message));\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\tself.togglePrice(false);\r\n\t\t\t\t\t\t$errorLabels.removeClass('hide');\r\n\t\t\t\t\t\t$form.removeAttr('data-js');\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\r\n\t\t\tself.$priceCheckBlock.on('input', '#DurationSlider', function () {\r\n\t\t\t\tvar $slider = $(this),\r\n\t\t\t\t\tval = $slider.val();\r\n\r\n\t\t\t\tif (val > 31) {\r\n\t\t\t\t\tval = Number(val) + (7*(val-31));\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (val > 365) {\r\n\t\t\t\t\tval = 365;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$slider.parents('.duration-container').find('.duration').val(val);\r\n\t\t\t});\r\n\r\n\t\t\tself.$priceCheckBlock.on('blur keyup', '.duration', function (e) {\r\n\t\t\t\tvar $input = $(this),\r\n\t\t\t\t\tduration = $input.val();\r\n\r\n\t\t\t\tif (duration > 365) {\r\n\t\t\t\t\tduration = 365;\r\n\t\t\t\t} else if (duration < 1) {\r\n\t\t\t\t\tduration = 1;\r\n\t\t\t\t}\r\n\r\n // allow the user to clear the input\r\n if ($input.val()) {\r\n $input.val(duration);\r\n }\r\n\r\n // convert back to slider units\r\n var sliderUnits = duration;\r\n if (duration > 31) {\r\n sliderUnits = 31 + Math.round((duration - 31) / 7);\r\n }\r\n\r\n $input.parents('.duration-container').find('#DurationSlider').val(sliderUnits);\r\n\t\t\t\tself.$priceCheckBlock.trigger('change');\r\n\t\t\t});\r\n\r\n\t\t\tself.$priceCheckBlock.on('blur keyup', '.age', function (e) {\r\n\t\t\t\tvar $input = $(this),\r\n\t\t\t\t\tage = $input.val();\r\n\r\n\t\t\t\tif (age > 99) {\r\n\t\t\t\t\tage = 99;\r\n\t\t\t\t} else if (age < 0) {\r\n\t\t\t\t\tage = 0;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$input.val(age);\r\n\r\n\t\t\t\tself.$priceCheckBlock.trigger('change');\r\n\t\t\t});\r\n\r\n\t\t\tself.$priceCheckBlock.on('change', 'select', function (e) {\r\n\t\t\t\tvar $select = $(this),\r\n\t\t\t\t\tvisitorExist = $select.find('option[data-js=\"visitor\"]');\r\n\r\n\t\t\t\tif (visitorExist.length === 0) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar visitorSelected = $select.find('option[data-js=\"visitor\"]:selected').length,\r\n\t\t\t\t$destinationsNis = self.$priceCheckBlock.find('ul.priceregion li[data-js=\"nis\"]'),\r\n\t\t\t\t$destinationVisitor = self.$priceCheckBlock.find('ul.priceregion li[data-js=\"visitor\"]');\r\n\r\n\t\t\t\t//reset\r\n\t\t\t\t$destinationVisitor.addClass('hide');\r\n\t\t\t\t$destinationsNis.addClass('hide');\r\n\r\n\t\t\t\t$destinationsNis.each(function () {\r\n\t\t\t\t\tself.forms.disableFormElementsInContainer($(this), visitorSelected);\r\n\t\t\t\t});\r\n\r\n\t\t\t\tself.forms.disableFormElementsInContainer($destinationVisitor, !visitorSelected);\r\n\r\n\t\t\t\tif (visitorSelected) {\r\n\t\t\t\t\t$destinationVisitor.removeClass('hide');\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$destinationsNis.removeClass('hide');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tself.$priceCheckBlock.on('change', function() {\r\n\t\t\t\tself.togglePrice(false);\r\n self.$priceCheckBlock.find('.errors').addClass('hide');\r\n self.$priceCheckBlock.find('.btn-show-price').prop('disabled', !self.$priceCheckBlock.valid());\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tself.togglePrice = function (show) {\r\n\t\t\tvar $price = self.$priceCheckBlock.find('.price'),\r\n\t\t\t\t$info = self.$priceCheckBlock.find('.italic'),\r\n\t\t\t\t$annual = self.$priceCheckBlock.find('.annual-price');\r\n\r\n\t\t\tif (show) {\r\n\t\t\t\t$price.removeClass('hide');\r\n\t\t\t\t$info.removeClass('hide');\r\n\t\t\t\tif ($annual && $annual.text().length) {\r\n\t\t\t\t\t$annual.removeClass('hide');\r\n\t\t\t\t}\r\n\t\t\t\tself.$priceCheckBlock.find('.errors').addClass('hide');\r\n\t\t\t} else {\r\n\t\t\t\t$price.addClass('hide');\r\n\t\t\t\t$info.addClass('hide');\r\n\t\t\t\t$annual.addClass('hide');\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tPriceCheck.prototype.init = function () {\r\n\t\tvar self = this;\r\n\t\tself.initEventHandlers();\r\n\t\t// trigger change if it is only visitor\r\n\t\tself.$priceCheckBlock.find('select').trigger('change');\r\n\t}\r\n\r\n\treturn PriceCheck;\r\n});","define(['jquery', 'accounting', 'common'], function ($, Accounting, ERVCommon) {\r\n\r\n\t\tvar PriceHelper = function() {\r\n\t\t\tvar self = this;\r\n\t\t\tself.$ervBody = $('#erv-body');\r\n\t\t\tself.common = new ERVCommon();\r\n\r\n\t\t\tself.getExcessInput = function ($container) {\r\n\r\n\t\t\t\tif ($container === null || typeof ($container) === 'undefined') {\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t//is it in $container?\r\n\t\t\t\tvar $excessContainer = $container.find('.excess-container');\r\n\r\n\t\t\t\t//check from top level product box\r\n\t\t\t\tif ($excessContainer.length === 0) {\r\n\t\t\t\t\t$excessContainer = $container.parents('.product.booking').find('.excess-container');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar $excessInput = $excessContainer.find('input[type=\"checkbox\"]:not(:disabled)');\r\n\r\n\t\t\t\tif ($excessInput.length === 0)\r\n\t\t\t\t{\r\n\t\t\t\t\treturn null;\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn $excessInput;\r\n\t\t\t};\r\n\t\t};\r\n\r\n\t\tPriceHelper.prototype.AddTaxAndDiscount = function ($currentItem, $trigger, price) {\r\n\t\t\tvar currentDiscount = Number($trigger.parents('[data-discount-pct]').attr('data-discount-pct')),\r\n\t\t\t\tcurrentTax = Number($currentItem.data('tax-pct')) * 0.01,\r\n\t\t\t\t$discountRate = $currentItem.find('[data-js=\"discount-rate\"]');\r\n\r\n\t\t\tif (isNaN(currentDiscount)) {\r\n\t\t\t\tcurrentDiscount = Number($trigger.parents('[data-view=\"step2\"]').find('[data-discount-pct]:not(.hide)').attr('data-discount-pct'));\r\n\t\t\t}\r\n\r\n\t\t\tcurrentDiscount = currentDiscount * 0.01;\r\n\r\n\t\t\tif (currentDiscount > 0) {\r\n\t\t\t\tprice = price - (price * currentDiscount);\r\n\t\t\t\t$discountRate.parent().removeClass('hide');\r\n\r\n\t\t\t\tif ($discountRate.length > 0) {\r\n\t\t\t\t\tvar roundedDiscount = Math.round(Number($trigger.parents('[data-discount-pct]').attr('data-discount-pct')));\r\n\t\t\t\t\tif (!isNaN(roundedDiscount)) {\r\n\t\t\t\t\t\t$discountRate.text(roundedDiscount);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\t$discountRate.parent().addClass('hide');\r\n\t\t\t}\r\n\r\n\t\t\tif (currentTax > 0) {\r\n\t\t\t\tprice = price + (price * currentTax);\r\n\t\t\t}\r\n\r\n\t\t\treturn price;\r\n\t\t};\r\n\r\n\t\tPriceHelper.prototype.updatePrice = function ($currentItem, $trigger, price, isAdded, calculateTaxAndDiscount) {\r\n\t\t\tvar self = this;\r\n\r\n\t\t\tvar $priceContainer = $currentItem.find('[data-oldprice]'),\r\n\t\t\t\t$currentPriceContainer = $priceContainer.find('[data-currentprice]'),\r\n\t\t\t\toldPrice = $priceContainer.data('oldprice'),\r\n\t\t\t\tchangedPrice;\r\n\r\n\t\t\tif (isAdded) {\r\n\t\t\t\tchangedPrice = Number(oldPrice) + Number(price);\r\n\t\t\t} else {\r\n\t\t\t\tchangedPrice = Number(oldPrice) - Number(price);\r\n\t\t\t}\r\n\r\n\t\t\t$priceContainer.data('oldprice', changedPrice);\r\n\t\t\t$currentPriceContainer.data('currentprice', changedPrice);\r\n\r\n\t\t\tif (calculateTaxAndDiscount) {\r\n\t\t\t\tchangedPrice = self.AddTaxAndDiscount($currentItem, $trigger, changedPrice);\r\n\t\t\t}\r\n\r\n\t\t\t$currentPriceContainer.text(self.formatPrice(changedPrice));\r\n\t\t};\r\n\r\n\t\tPriceHelper.prototype.updateTotalPrice = function ($currentItem, $trigger, price) {\r\n\t\t\tvar self = this;\r\n\r\n\t\t\tvar $priceContainer = $currentItem.find('[data-oldprice]'),\r\n\t\t\t\t$currentPriceContainer = $priceContainer.find('[data-currentprice]'),\r\n\t\t\t\tchangedPrice = price;\r\n\r\n\t\t\t$priceContainer.data('oldprice', changedPrice);\r\n\t\t\t$currentPriceContainer.data('currentprice', changedPrice);\r\n\r\n\t\t\tchangedPrice = self.AddTaxAndDiscount($currentItem, $trigger, changedPrice);\r\n\r\n\t\t\t$currentPriceContainer.text(self.formatPrice(changedPrice));\r\n\t\t};\r\n\r\n\t\tPriceHelper.prototype.updatePriceCancellation = function ($currentItem, $trigger, price, previousPrice) {\r\n\t\t\tvar self = this;\r\n\t\t\tself.updatePrice($currentItem, $trigger, previousPrice, false);\r\n\t\t\tself.updatePrice($currentItem, $trigger, price, true, true);\r\n\t\t};\r\n\r\n\t\tPriceHelper.prototype.hasExcess = function ($container) {\r\n\t\t\tvar self = this,\r\n\t\t\t\t$excessInput = self.getExcessInput($container);\r\n\r\n\t\t\tif ($excessInput === null || $excessInput == undefined) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\treturn $excessInput.is(':checked');\r\n\t\t};\r\n\r\n\t\tPriceHelper.prototype.hasPresetExcess = function ($container) {\r\n\t\t\tvar self = this,\r\n\t\t\t\t$excessInput = self.getExcessInput($container);\r\n\r\n\t\t\tif ($excessInput === null || $excessInput == undefined) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\treturn $excessInput.data('presetchecked').toString() === 'true';\r\n\t\t};\r\n\r\n\t\tPriceHelper.prototype.getIncludedExcessPrice = function ($container) {\r\n\t\t\tvar self = this,\r\n\t\t\t\t$excessInput = self.getExcessInput($container);\r\n\r\n\t\t\tif ($excessInput === null || $excessInput === undefined) {\r\n\t\t\t\treturn 0;\r\n\t\t\t}\r\n\r\n\t\t\treturn Number($excessInput.data('includedexcessprice'));\r\n\t\t};\r\n\r\n\t\tPriceHelper.prototype.setExcess = function (hasExcess, hasPresetExcess, price, adjustment) {\r\n\t\t\tif (hasExcess && !hasPresetExcess) {\r\n\t\t\t\tprice -= adjustment;\r\n\t\t\t} else if (!hasExcess && hasPresetExcess) {\r\n\t\t\t\tprice += adjustment;\r\n\t\t\t}\r\n\r\n\t\t\treturn price;\r\n\t\t};\r\n\r\n\t\tPriceHelper.prototype.calculateTotalPriceInContainer = function ($container) {\r\n\t\t\tvar price = 0,\r\n\t\t\t\tself = this,\r\n\t\t\t\thasExcess = self.hasExcess($container),\r\n\t\t\t\thasPresetExcess = self.hasPresetExcess($container),\r\n\t\t\t\tincludedExcessPrice = self.getIncludedExcessPrice($container);\r\n\r\n\t\t\tvar $inputsToCalculate = $container.find('input[type=\"checkbox\"]').filter(function() {\r\n\t\t\t\treturn !this.disabled && this.checked;\r\n\t\t\t});\r\n\r\n\t\t\tvar $optionsToCalculate = $container.find('select option').filter(function () {\r\n\t\t\t\treturn !$(this).parent()[0].disabled && this.selected;\r\n\t\t\t});\r\n\r\n\t\t\t$inputsToCalculate.each(function () {\r\n\t\t\t\tvar $input = $(this),\r\n\t\t\t\t\tinputPrice = $input.data('price'),\r\n\t\t\t\t\tinputExcessPrice = $input.data('addon-excess-price');\r\n\r\n\t\t\t\tif (inputPrice != undefined) {\r\n\t\t\t\t\tprice += inputPrice;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (inputExcessPrice != undefined) {\r\n\t\t\t\t\tprice = self.setExcess(hasExcess, hasPresetExcess, price, inputExcessPrice);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\r\n\t\t\t$optionsToCalculate.each(function () {\r\n\t\t\t\tprice += $(this).data('price');\r\n\t\t\t});\r\n\r\n\t\t\tif (includedExcessPrice !== 0) {\r\n\t\t\t\tprice = self.setExcess(hasExcess, hasPresetExcess, price, includedExcessPrice);\r\n\t\t\t}\r\n\t\t\t\r\n\t\t\treturn Number(price);\r\n\t\t}\r\n\r\n\t\tPriceHelper.prototype.calculateAddOnExcessTotalPriceInContainer = function ($container) {\r\n\t\t\tvar self = this,\r\n\t\t\t\tprice = 0,\r\n\t\t\t\tincludedExcessPrice = self.getIncludedExcessPrice($container);\r\n\r\n\t\t\tvar $inputsToCalculate = $container.find('input[type=\"checkbox\"]').filter(function () {\r\n\t\t\t\treturn !this.disabled && this.checked;\r\n\t\t\t});\r\n\r\n\t\t\t$inputsToCalculate.each(function () {\r\n\t\t\t\tvar $input = $(this),\r\n\t\t\t\t\tinputExcessPrice = $input.data('addon-excess-price');\r\n\r\n\t\t\t\tif (inputExcessPrice !== undefined) {\r\n\t\t\t\t\tprice += inputExcessPrice;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tif (includedExcessPrice !== 0) {\r\n\t\t\t\tprice += includedExcessPrice;\r\n\t\t\t}\r\n\r\n\t\t\treturn Number(price);\r\n\t\t}\r\n\r\n\t\tPriceHelper.prototype.formatPrice = function (price, withDecimals) {\r\n\t\t\tvar presentedPrice = parseFloat((price * 100) / 100),\r\n\t\t\t\tself = this,\r\n\t\t\t\torglang = $('html').data('orglang');\r\n\r\n\t\t\tif (typeof (withDecimals) === 'undefined') {\r\n\t\t\t\twithDecimals = true;\r\n\t\t\t}\r\n\r\n\t\t\tpresentedPrice = Math.round10(presentedPrice, -2);\r\n\r\n\t\t\tif (orglang === 'da') {\r\n\t\t\t\treturn Accounting.formatNumber(presentedPrice, !withDecimals ? 0 : 2, \".\", \",\");\r\n\t\t\t}\r\n\r\n\t\t\tif (orglang === 'en' || orglang === 'fi') {\r\n\t\t\t\tif (self.common.framework.checks.isDk()) {\r\n\t\t\t\t\treturn Accounting.formatNumber(presentedPrice, withDecimals ? 2 : 0, \".\", \",\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn Accounting.formatNumber(presentedPrice, 0, \" \", \",\");\r\n\t\t};\r\n\r\n\t\treturn PriceHelper;\r\n});","define(['jquery', 'common', 'pricehelper', 'booking_rules', 'responsive_common', 'scrollto'], function ($, ERVCommon, ERVPriceHelper, ERVBookingRules, ERVResponsiveCommon) {\r\n\r\n\t\tvar ProductHelper = function() {\r\n\t\t\tvar self = this;\r\n\t\t\tself.$ervBody = $('#erv-body');\r\n\t\t\tself.priceHelper = new ERVPriceHelper();\r\n\t\t\tself.bookingRules = new ERVBookingRules();\r\n\t\t\tself.common = new ERVCommon();\r\n\t\t\tself.responsiveCommon = new ERVResponsiveCommon();\r\n\r\n\t\t\tself.changeView = function($trigger, view) {\r\n\t\t\t\tvar $product = $trigger.parents('.product.booking');\r\n\t\t\t\tvar $allViewContainers = $product.find('[data-js=view-container]');\r\n\r\n\t\t\t\t$allViewContainers.addClass('hide');\r\n\r\n\t\t\t\tvar $allWantedContainers= $product.find('[data-view='+view+']');\r\n\r\n\t\t\t\t$allWantedContainers.removeClass('hide');\r\n\r\n\t\t\t\t$product.attr('data-step', view);\r\n\t\t\t}\r\n\r\n\t\t\tself.updatePriceAfterAddonChange = function ($input, parentSelector) {\r\n\t\t\t\tvar $product = $input.parents(parentSelector);\r\n\r\n\t\t\t\tvar $currentAddonsView = $product.find('[data-js=\"annual-addons\"]:not(.hide), [data-js=\"tripbytrip-addons\"]:not(.hide)'),\r\n\t\t\t\tpriceAddonsAndCancellation = 0,\r\n\t\t\t\tcurrentBasePrice = Number($currentAddonsView.data('baseprice'));\r\n\r\n\t\t\t\tpriceAddonsAndCancellation = self.priceHelper.calculateTotalPriceInContainer($currentAddonsView);\r\n\r\n\t\t\t\tvar currentTotalPrice = priceAddonsAndCancellation + currentBasePrice;\r\n\r\n\t\t\t\tself.priceHelper.updateTotalPrice($product, $input, currentTotalPrice);\r\n\t\t\t};\r\n\r\n\t\t\tself.syncSelectedAddonsWithView = function($input) {\r\n\t\t\t\tvar $selectedAddonsList = $input.parents('.dropdown').find('[data-js=\"selected-addons\"]');\r\n\r\n\t\t\t\tif ($input.is(':checked')) {\r\n\t\t\t\t\tvar $alreadyExists = $selectedAddonsList.find('li[data-id=\"' + $input.attr('value') + '\"]');\r\n\r\n\t\t\t\t\tif ($alreadyExists.length > 0) {\r\n\t\t\t\t\t\t$alreadyExists.find('.description').text($input.parent().text());\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tvar $liToAdd = $('
  • ' + $input.parent().text() + '
  • ');\r\n\t\t\t\t\t\t$selectedAddonsList.append($liToAdd);\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvar $addonToBeRemoved = $selectedAddonsList.find('li[data-id=\"' + $input.attr('value') + '\"]');\r\n\t\t\t\t\t$addonToBeRemoved.remove();\r\n\t\t\t\t}\r\n\r\n\t\t\t\tself.common.sortArrayByName($selectedAddonsList, 'li');\r\n\t\t\t};\r\n\r\n\t\t\tself.syncSelectedCancellationWithView = function ($optionSelected) {\r\n\t\t\t\tvar $selectedAddonsList = $optionSelected.parents('.dropdown').find('[data-js=\"selected-addons\"]'),\r\n\t\t\t\t\t$clearThese = $selectedAddonsList.find('li[data-type=\"cancellation\"]');\r\n\r\n\t\t\t\tif ($optionSelected.val() && $optionSelected.val().replace('\\u2212', '\\u002D') !== '-1') {\r\n\t\t\t\t\t$clearThese.remove();\r\n\r\n\t\t\t\t\tvar $liToAdd = $('
  • ' + $optionSelected.text() + '
  • ');\r\n\t\t\t\t\t$selectedAddonsList.append($liToAdd);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$clearThese.remove();\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\tself.toggleExcessContainer = function ($element, showExcess, parentSelector) {\r\n\t\t\t\tvar $product = $element.parents(parentSelector),\r\n\t\t\t\t\t$excessContainer = $product.find('.excess-container');\r\n\r\n\t\t\t\tif (showExcess) {\r\n\t\t\t\t\t$excessContainer.removeClass('hide');\r\n\t\t\t\t\tself.common.forms.disableFormElementsInContainer($excessContainer, false);\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$excessContainer.addClass('hide');\r\n\t\t\t\t\tself.common.forms.disableFormElementsInContainer($excessContainer, true);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tself.syncExcessBetweenNeeds = function($container, parentSelector) {\r\n\t\t\t\tvar $medicalInput = $container.find('input[data-ismedical=\"true\"]:not(:disabled)'),\r\n\t\t\t\t\tmedicalExists = $medicalInput.length,\r\n\t\t\t\t\tshowExcess = medicalExists && $medicalInput.is(':checked');\r\n\r\n\t\t\t\tself.toggleExcessContainer($container, showExcess, parentSelector);\r\n\t\t\t};\r\n\t\t};\r\n\r\n\t\tProductHelper.prototype.updateName = function ($currentProduct, name, isAdded) {\r\n\t\t\tvar $nameContainer = $currentProduct.find('[data-oldproductname]'),\r\n\t\t\t\toldName = $nameContainer.data('oldproductname'),\r\n\t\t\t\tchangedName;\r\n\r\n\t\t\tif (isAdded) {\r\n\t\t\t\tchangedName = name;\r\n\t\t\t} else {\r\n\t\t\t\tchangedName = oldName;\r\n\t\t\t}\r\n\r\n\t\t\t$nameContainer.data('oldprice', changedName);\r\n\t\t\t$nameContainer.text(changedName);\r\n\t\t};\r\n\r\n\t\tProductHelper.prototype.updateAfterAnnual = function ($currentProduct, $input) {\r\n\t\t\tvar self = this;\r\n\t\t\tif(!$input.prop('checked')){\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar $containerTripByTripDetails = $currentProduct.find('[data-js=tripbytrip-addons]'),\r\n\t\t\t\t$containerAnnualDetails = $currentProduct.find('[data-js=annual-addons]'),\r\n\t\t\t\t$excessTrigger = $currentProduct.find('[data-js=excess-trigger]'),\r\n\t\t\t\t$tooltipSubtitle = $currentProduct.find('h3.subtitle .tooltip'),\r\n\t\t\t\tsubtitle = $input.data('subtitle');\r\n\t\t\t\r\n\t\t\tvar tooltip;\r\n\r\n\t\t\tvar priceAnnualAddonsAndCancellation = self.priceHelper.calculateTotalPriceInContainer($containerAnnualDetails),\r\n\t\t\t\tpriceTripByTripAddonsAndCancellation = self.priceHelper.calculateTotalPriceInContainer($containerTripByTripDetails),\r\n\t\t\t\tbasePriceAnnual = $input.parents('.insurance-type').find('[data-js=\"annual\"]').data('baseprice'),\r\n\t\t\t\tbasePriceTripByTrip = $input.parents('.insurance-type').find('[data-js=\"tripbytrip\"]').data('baseprice'),\r\n\t\t\t\tpriceAnnual = basePriceAnnual,\r\n\t\t\t\tpriceTripByTrip = basePriceTripByTrip;\r\n\r\n\t\t\tvar priceDiff = 0;\r\n\r\n\t\t\tself.common.forms.disableFormElementsInContainer($containerTripByTripDetails, true);\r\n\t\t\tself.common.forms.disableFormElementsInContainer($containerAnnualDetails, true);\r\n\r\n\t\t\tif ($input.attr('data-js') === 'annual') {\r\n\t\t\t\tif ($excessTrigger.length === 1) {\r\n\t\t\t\t\t$excessTrigger.data('includedexcessprice', $excessTrigger.data('annualexcessprice'));\r\n\t\t\t\t}\r\n\t\t\t\t$containerAnnualDetails.removeClass('hide');\r\n\t\t\t\t$containerTripByTripDetails.addClass('hide');\r\n\t\t\t\tself.common.forms.disableFormElementsInContainer($containerAnnualDetails.find('[data-js=\"needs\"]:not(.hide)'), false);\r\n\t\t\t\tpriceAnnualAddonsAndCancellation = self.priceHelper.calculateTotalPriceInContainer($containerAnnualDetails);\r\n\t\t\t\ttooltip = $tooltipSubtitle.data('annualtooltip');\r\n\t\t\t} else {\r\n\t\t\t\tif ($excessTrigger.length === 1) {\r\n\t\t\t\t\t$excessTrigger.data('includedexcessprice', $excessTrigger.data('tripbytripexcessprice'));\r\n\t\t\t\t}\r\n\t\t\t\t$containerAnnualDetails.addClass('hide');\r\n\t\t\t\t$containerTripByTripDetails.removeClass('hide');\r\n\t\t\t\tself.common.forms.disableFormElementsInContainer($containerTripByTripDetails.find('[data-js=\"needs\"]:not(.hide)'), false);\r\n\t\t\t\tpriceTripByTripAddonsAndCancellation = self.priceHelper.calculateTotalPriceInContainer($containerTripByTripDetails);\r\n\t\t\t\ttooltip = $tooltipSubtitle.data('tbttooltip');\r\n\t\t\t}\r\n\r\n\t\t\t// check if we should toggle TC, do it only if there are any\r\n\t\t\tvar $annualDocuments = $currentProduct.find('.documents .annual-tc');\r\n\t\t\tif ($annualDocuments.length) {\r\n\t\t\t\t$annualDocuments.toggleClass('hide', $input.attr('data-js') !== 'annual');\r\n\t\t\t\t$currentProduct.find('.documents .common-tc').toggleClass('hide', $input.attr('data-js') === 'annual');\r\n\t\t\t}\r\n\r\n\t\t\t// toggle possible add-ons\r\n\t\t\t$currentProduct.find('[data-js=\"possible-addons\"]').toggleClass('hide');\r\n\t\t\tpriceAnnual += priceAnnualAddonsAndCancellation;\r\n\t\t\tpriceTripByTrip += priceTripByTripAddonsAndCancellation;\r\n\r\n\t\t\tvar isPositive = ($input.attr('data-js') === 'annual' && priceAnnual > priceTripByTrip) || ($input.attr('data-js') === 'tripbytrip' && priceTripByTrip > priceAnnual);\r\n\r\n\t\t\tif (priceTripByTrip > priceAnnual) {\r\n\t\t\t\tpriceDiff = priceTripByTrip - priceAnnual;\r\n\t\t\t} else {\r\n\t\t\t\tpriceDiff = priceAnnual - priceTripByTrip;\r\n\t\t\t}\r\n\r\n\t\t\tself.priceHelper.updatePrice($currentProduct, $input, priceDiff, isPositive, true);\r\n\r\n\t\t\tvar $subtitle = $currentProduct.find('.subtitle');\r\n\t\t\t$subtitle.find('span').first().text(subtitle);\r\n\t\t\t$subtitle.find('.tooltip').first().attr('title', tooltip);\r\n\t\t\t$subtitle.removeClass('hide');\r\n\t\t}\r\n\r\n\t\tProductHelper.prototype.updateAfterNeed = function ($input) {\r\n\t\t\tvar self = this;\r\n\r\n\t\t\tif ($input.is(':checked')) {\r\n\t\t\t\tvar $currentProduct = $input.parents('.product.booking'),\r\n\t\t\t\t\t$currentAddonsView = $currentProduct\r\n\t\t\t\t\t\t.find('[data-js=\"annual-addons\"]:not(.hide), [data-js=\"tripbytrip-addons\"]:not(.hide)'),\r\n\t\t\t\t\t$currentSameView = $currentAddonsView.find('.same'),\r\n\t\t\t\t\t$currentIndividualView = $currentAddonsView.find('.individual'),\r\n\t\t\t\t\t$form = $input.parents('form'),\r\n\t\t\t\t\tpriceAddonsAndCancellation = 0,\r\n\t\t\t\t\tcurrentBasePrice = $currentAddonsView.data('baseprice');\r\n\r\n\t\t\t\tif ($input.attr('data-js') === 'need1') {\r\n\t\t\t\t\t$currentSameView.removeClass('hide');\r\n\t\t\t\t\t$currentIndividualView.addClass('hide');\r\n\r\n\t\t\t\t\tself.common.forms.disableFormElementsInContainer($currentSameView, false);\r\n\t\t\t\t\tself.common.forms.disableFormElementsInContainer($currentIndividualView, true);\r\n\r\n\t\t\t\t\t$form.attr('action', $form.data('same'));\r\n\r\n\t\t\t\t\tif (self.common.framework.checks.isSe())\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tself.syncExcessBetweenNeeds($currentSameView, '.product.booking');\r\n\t\t\t\t\t}\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$currentSameView.addClass('hide');\r\n\t\t\t\t\t$currentIndividualView.removeClass('hide');\r\n\r\n\t\t\t\t\tself.common.forms.disableFormElementsInContainer($currentSameView, true);\r\n\t\t\t\t\tself.common.forms.disableFormElementsInContainer($currentIndividualView, false);\r\n\r\n\t\t\t\t\t$form.attr('action', $form.data('individual'));\r\n\r\n\t\t\t\t\tif (self.common.framework.checks.isSe())\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\tself.syncExcessBetweenNeeds($currentIndividualView, '.product.booking');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tpriceAddonsAndCancellation = self.priceHelper.calculateTotalPriceInContainer($currentAddonsView);\r\n\r\n\t\t\t\tvar currentTotalPrice = priceAddonsAndCancellation + currentBasePrice;\r\n\t\t\t\tself.priceHelper.updateTotalPrice($currentProduct, $input, currentTotalPrice);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tProductHelper.prototype.updateAfterExcess = function ($container, $excessTrigger) {\r\n\t\t\tvar $inputsToUpdate = $container.find('[data-addon-excess-price]'),\r\n\t\t\t\tself = this;\r\n\r\n\t\t\t$inputsToUpdate.each(function() {\r\n\t\t\t\tvar $input = $(this),\r\n\t\t\t\t\texcessPrice = $input.data('addon-excess-price'),\r\n\t\t\t\t\t$label = $input.siblings('label');\r\n\r\n\t\t\t\tvar $priceSpan = $label.find('[data-currentprice]'),\r\n\t\t\t\t\tcurrentPrice = $priceSpan.data('currentprice'),\r\n\t\t\t\t\tnewPrice = 0;\r\n\r\n\t\t\t\tif ($excessTrigger.is(':checked')) {\r\n\t\t\t\t\tnewPrice = currentPrice - excessPrice;\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\t\t\t\t\tnewPrice = currentPrice + excessPrice;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$priceSpan.text(self.priceHelper.formatPrice(newPrice, false));\r\n\t\t\t\t$priceSpan.data('currentprice', newPrice);\r\n\t\t\t\t\r\n\t\t\t\tif ($input.parents('.individual').length > 0) {\r\n\t\t\t\t\tself.syncSelectedAddonsWithView($input);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tProductHelper.prototype.productEventHandlers = function ($allProducts, parentSelector) {\r\n\t\t\tvar self = this;\r\n\r\n\t\t\t$allProducts.on('change', '.needs .form-element input[type=radio]', function () {\r\n\t\t\t\tvar $input = $(this);\r\n\r\n\t\t\t\tself.updateAfterNeed($input);\r\n\t\t\t});\r\n\t\t\t\r\n\t\t\t$allProducts.on('change', '.insurance-type.field .form-element input[type=radio]', function () {\r\n\r\n\t\t\t\tvar $input = $(this),\r\n\t\t\t\t\t$product = $input.parents(parentSelector);\r\n\r\n\t\t\t\t$product.find('.insurance-type .type').removeClass('active');\r\n\r\n\t\t\t\tself.updateAfterAnnual($product, $input);\r\n\t\t\t});\r\n\t\t\t\r\n\t\t\t$allProducts.on('change', '.add-ons .form-element input[type=checkbox], .individual .persons .form-element input[type=checkbox]', function () {\r\n\t\t\t\tvar $checkbox = $(this);\r\n\t\t\t\tvar showExcess = self.bookingRules.syncMedicalAndExcess($checkbox);\r\n\r\n\t\t\t\tif ($checkbox.parents('.individual').length > 0) {\r\n\t\t\t\t\tself.syncSelectedAddonsWithView($checkbox);\r\n\r\n\t\t\t\t\t// only for SE\r\n\t\t\t\t\tvar $checkedMedicalInputs = $checkbox.parents('.individual').find('input[data-ismedical=\"true\"]').filter(function () {\r\n\t\t\t\t\t\treturn !this.disabled && this.checked;\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tif ($checkedMedicalInputs.length > 0) {\r\n\t\t\t\t\t\tshowExcess = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tself.toggleExcessContainer($checkbox, showExcess, parentSelector);\r\n\r\n\t\t\t\tself.updatePriceAfterAddonChange($checkbox, parentSelector);\r\n\t\t\t});\r\n\r\n\t\t\t$allProducts.on('click', '.add-ons .form-element label.readonly, .individual .persons .form-element label.readonly', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t});\r\n\r\n\t\t\t$allProducts.on('change', '[data-js=\"excess-trigger\"]', function () {\r\n\t\t\t\tvar $this = $(this),\r\n\t\t\t\t\t$product = $this.parents(parentSelector);\r\n\r\n\t\t\t\t$product.find('[name$=\"].Excess\"], [name=\"Excess\"]').val($this.is(':checked'));\r\n\r\n\t\t\t\tvar $container = $this.parents('[data-view=\"step2\"]');\r\n\t\t\t\tself.updateAfterExcess($container, $this);\r\n\t\t\t\t\r\n\t\t\t\tvar addOnExcessPriceInContainer = self.priceHelper.calculateAddOnExcessTotalPriceInContainer($container);\r\n\r\n\t\t\t\tvar isPositive = !$this.is(':checked');\r\n\r\n\t\t\t\tself.priceHelper.updatePrice($product, $this, addOnExcessPriceInContainer, isPositive, true);\r\n\t\t\t});\r\n\r\n\t\t\t$allProducts.on('change', '.cancellation select', function () {\r\n\t\t\t\tvar $optionSelected = $('option:selected', this),\r\n\t\t\t\t\t$select = $(this),\r\n\t\t\t\t\t$product = $optionSelected.parents(parentSelector),\r\n\t\t\t\t\t$info = $select.parent().find('small');\r\n\r\n\t\t\t\tself.priceHelper.updatePriceCancellation($product, $optionSelected, $optionSelected.data('price'), self.previouslySelectedCancellationPrice);\r\n\r\n\t\t\t\t$select.data('priceselected', $optionSelected.data('price'));\r\n\t\t\t\t$select.find('option[selected=\"selected\"]').removeAttr('selected');\r\n\t\t\t\tif ($info.length) {\r\n\t\t\t\t\t$info.toggleClass('hide', $select.val() == '-1')\r\n\t\t\t\t}\r\n\t\t\t\t$optionSelected.attr('selected', 'selected');\r\n\t\t\t\t$select.blur();\r\n\t\t\t\tself.syncSelectedCancellationWithView($optionSelected);\r\n\t\t\t});\r\n\r\n\t\t\t$allProducts.on('focus', '.cancellation select', function () {\r\n\t\t\t\tvar $selected = $('option:selected', this);\r\n\t\t\t\tself.previouslySelectedCancellationPrice = $selected.data('price');\r\n\t\t\t});\r\n\r\n\t\t\t$allProducts.on('click', '[data-js=nexttrigger]', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tvar $this = $(this),\r\n\t\t\t\t\t$currentProduct = $this.parents('.product');\r\n\r\n\t\t\t\tself.changeView($this, 'step2');\r\n\r\n\t\t\t\tvar $needs = $currentProduct.find('.needs');\r\n\t\t\t\tvar $heading = $needs.length > 0 ? $needs : $currentProduct.find('[data-view=\"step2\"] .heading').first();\r\n\t\t\t\tif (self.responsiveCommon.isDeviceSize('small') && !self.common.framework.checks.isElementInViewport($heading, $('header').height())) {\r\n\t\t\t\t\t$.scrollTo($heading, 200, { offset: -$('header').height() * 2 });\r\n\t\t\t\t}\r\n\r\n\t\t\t\tself.updateAfterNeed($this.parents('.product.booking').find('.needs input[type=radio]:checked'));\r\n\t\t\t});\r\n\r\n\t\t\t$allProducts.on('click', '[data-js=backtrigger]', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tvar $this = $(this),\r\n\t\t\t\t\t$currentProduct = $this.parents('.product');\r\n\r\n\t\t\t\tself.changeView($this, 'step1');\r\n\r\n\t\t\t\tvar $heading = $currentProduct.find('[data-view=\"step1\"] .heading').first();\r\n\t\t\t\tif (self.responsiveCommon.isDeviceSize('small') && !self.common.framework.checks.isElementInViewport($heading, $('header').height())) {\r\n\t\t\t\t\t$.scrollTo($heading, 200, { offset: -$('header').height() * 2 });\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t$allProducts.on('click', '.last .show-all', function (e) {\r\n\t\t\t\tvar $this = $(this),\r\n\t\t\t\t\t$parent = $this.parents('.includes');\r\n\r\n\t\t\t\t$parent.find('.expand-collapse[data-visible]').each(function () {\r\n\t\t\t\t\t$(this).attr('data-visible', $this.attr('data-state') !== 'more');\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t\t\r\n\t\t\tself.common.triggers.initTriggers('.documents');\r\n\t\t};\r\n\r\n\t\treturn ProductHelper;\r\n});","define(['jquery', 'forms'], function ($, Forms) {\r\n\tvar Quotation = function () {\r\n\t\tvar self = this;\r\n\t\tself.forms = new Forms();\r\n\t\tself.$ervBody = $('#erv-body');\r\n\t\tself.$form = $('form[data-js-mainform]');\r\n\r\n\t\tself.deleteCompany = function ($company) {\r\n\t\t\tvar deletedIndex = $company.data('id');\r\n\t\t\t$company.remove();\r\n\t\t\tself.refreshCompanies(deletedIndex);\r\n\t\t\treturn deletedIndex;\r\n\t\t};\r\n\t\t\r\n\t\tself.refreshCompanies = function (deletedIndex) {\r\n\t\t\tvar $allAdded = self.$companyList.find('.company.added');\r\n\r\n\t\t\tvar $allNext = $allAdded.filter(function () {\r\n\t\t\t\treturn ($(this).data('id') > deletedIndex); \r\n\t\t\t});\r\n\r\n\t\t\t$allNext.each(function () {\r\n\t\t\t\tvar $company = $(this);\r\n\t\t\t\tvar index = $company.data('id'),\r\n\t\t\t\t\tnewIndex = (index - 1);\r\n\r\n\t\t\t\t$company.find('.index').text(newIndex + 1);\r\n\t\t\t\t$company.data('id', newIndex);\r\n\r\n\t\t\t\t$company.find('input[type=text], input[data-inputtype=\"text\"]').each(function () {\r\n\t\t\t\t\tvar $input = $(this);\r\n\t\t\t\t\t$input.attr('name', $input.attr('name').replace(index, newIndex));\r\n\t\t\t\t\t$input.attr('id', $input.attr('id').replace(index, newIndex));\r\n\t\t\t\t});\r\n\r\n\t\t\t\t$company.find('label').each(function () {\r\n\t\t\t\t\tvar $label = $(this);\r\n\t\t\t\t\t$label.attr('for', $label.attr('for').replace(index, newIndex));\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t};\r\n\t\t\r\n\t\tself.addCompany = function () {\r\n\t\t\tvar currentIndex = self.$companyList.find('.company').length,\r\n\t\t\t\thtml = self.$companyTemplate.html().replace(/{{index}}/g, currentIndex);\r\n\r\n\t\t\tvar $html = $(html);\r\n\t\t\t$html.find('.index').text(currentIndex + 1);\r\n\r\n\t\t\t$html.insertBefore($(self.$companyList.find('li').last()));\r\n\r\n\t\t\tvar $inputs = $html.find('input[data-val=\"true\"]');\r\n\t\t\t$inputs.each(function () {\r\n\t\t\t\t$(this).rules('add',\r\n\t\t\t\t{\r\n\t\t\t\t\trequired: true\r\n\t\t\t\t});\r\n\r\n\t\t\t\t$(this).on('blur', function () {\r\n\t\t\t\t\t$(this).valid();\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t};\r\n\t\t\r\n\t\tvar showEmployeesFields = function ($childrenContainers, settings)\r\n\t\t{\r\n\t\t\tif (settings === \"1\") {\r\n\t\t\t\t$($childrenContainers[0]).removeClass('hide');\r\n\t\t\t\t$($childrenContainers[1]).addClass('hide');\r\n\t\t\t\t$($childrenContainers[1]).find('input[data-val=\"true\"]').removeClass('input-validation-error');\r\n\t\t\t\t$($childrenContainers[1]).find('input[data-val=\"true\"]').each(function() {\r\n\t\t\t\t\tvar $input = $(this);\r\n\t\t\t\t\t$input.rules('remove');\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tif (settings === \"2\") {\r\n\t\t\t\t$($childrenContainers[0]).removeClass('hide');\r\n\t\t\t\t$($childrenContainers[1]).removeClass('hide');\r\n\r\n\t\t\t\tvar $inputs = $childrenContainers.find('input[data-val=\"true\"]');\r\n\t\t\t\t$inputs.each(function () {\r\n\t\t\t\t\t$(this).rules('add',\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\trequired: true,\r\n\t\t\t\t\t\tmessages: {\r\n\t\t\t\t\t\t\trequired: $(this).data('val-requiredif')\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\t\tif ($(this).attr('id').indexOf('SocialSecurityNumber') > 0) {\r\n\t\t\t\t\t\t$(this).rules('add',\r\n\t\t\t\t\t\t{\r\n\t\t\t\t\t\t\tregex: $(this).data('val-regex-pattern'),\r\n\t\t\t\t\t\t\tmessages: {\r\n\t\t\t\t\t\t\t\tregex: $(this).data('val-regex')\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t$(this).on('blur', function () {\r\n\t\t\t\t\t\t$(this).valid();\r\n\t\t\t\t\t});\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t$childrenContainers.each(function () {\r\n\t\t\t\tvar $container = $(this);\r\n\r\n\t\t\t\tif ($container.hasClass('hide')) {\r\n\t\t\t\t\t$container.find('input[data-val=\"true\"]').removeClass('input-validation-error');\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$container.find('input[data-val=\"true\"]').removeClass('input-validation-valid');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tself.setUpAmountOfEmployeesToggler = function () {\r\n\t\t\tvar $this = self.$form.find('#Input_NrOfEmployees[data-js=toggle]'),\r\n\t\t\t\t$childrenContainers = $this.parents('.row-container').find('[data-toggle=\"children\"]');\r\n\r\n\t\t\tif ($this.val() === \"1\" || $this.val() === \"2\") {\r\n\t\t\t\tshowEmployeesFields($childrenContainers, $this.val());\r\n\t\t\t}\r\n\r\n\t\t\t$this.change(function () {\r\n\t\t\t\tif ($(this).val() === \"1\" || $(this).val() === \"2\") {\r\n\t\t\t\t\tshowEmployeesFields($childrenContainers, $(this).val());\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$childrenContainers.toggleClass('hide', true);\r\n\r\n\t\t\t\t\t$childrenContainers.each(function() {\r\n\t\t\t\t\t\tvar $container = $(this);\r\n\r\n\t\t\t\t\t\tif ($container.hasClass('hide')) {\r\n\t\t\t\t\t\t\t$container.find('input[data-val=\"true\"]').removeClass('input-validation-error');\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t$container.find('input[data-val=\"true\"]').removeClass('input-validation-valid');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tself.setupEventHandling = function() {\r\n\t\t\tself.$companyTemplate = self.$form.find(\"#company-template\");\r\n\t\t\tself.$companyList = self.$form.find('#added-companies');\r\n\r\n\t\t\tself.$form.find('#add-company').on('click', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tself.addCompany();\r\n\t\t\t});\r\n\r\n\t\t\tself.$companyList.on('click', '.company.added .remove-company', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tself.deleteCompany($(this).parents('.company.added'));\r\n\t\t\t});\r\n\r\n\t\t\tself.forms.setupRadioTogglers(self.$form.find('*[data-js=toggle]'), '.row-container');\r\n\r\n\t\t\tself.setUpAmountOfEmployeesToggler();\r\n\r\n\t\t\tself.$form.find('#anothercompany-radiolist input').on('change', function () {\r\n\t\t\t\tvar $input = $(this);\r\n\t\t\t\tif ($input.attr('id') === \"Input_AnyOtherCompany_Yes\") {\r\n\t\t\t\t\tself.addCompany();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tself.$companyList.find('.company.added').remove();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t$('label[for=\"Input_HasPreviousInsurance_Yes\"').on('click',\r\n\t\t\t\tfunction () {\r\n\t\t\t\t\t$('#Input_HasPreviousInsurance').prop('checked', true);\r\n\t\t\t\t});\r\n\r\n\t\t\tvar $button = self.$ervBody.find('#send-quotation');\r\n\t\t\t$button.on('click', function (e) {\r\n\t\t\t\t\tif (!$button.parents('form').valid()) {\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\t}\r\n\t\t\t});\r\n\t\t};\r\n\t};\r\n\r\n\tQuotation.prototype.init = function () {\r\n\t\tvar self = this;\r\n\r\n\t\tself.setupEventHandling();\r\n\t}\r\n\r\n\treturn Quotation;\r\n});","define(['jquery', 'cookies', 'settings'], function ($, Cookies, Settings) {\r\n\tvar ReplaceHtml = function() {\r\n\r\n\t\tvar self = this;\r\n\t\tself.settings = Settings;\r\n\r\n\t\tvar getCssLink = function($data) {\r\n\t\t\tvar cssLinks = $.grep($data,\r\n\t\t\t\tfunction(elt) {\r\n\t\t\t\t\treturn elt.tagName === 'LINK' && elt.rel === 'stylesheet';\r\n\t\t\t\t});\r\n\r\n\t\t\tif (cssLinks.length > 0) {\r\n\t\t\t\treturn $(cssLinks[0]).attr('href');\r\n\t\t\t}\r\n\r\n\t\t\treturn '/assets/dist/css/main_leisure.css';\r\n\t\t};\r\n\r\n\t\tvar getGTMScript = function($data) {\r\n\t\t\tvar scripts = $.grep($data,\r\n\t\t\t\tfunction(elt) {\r\n\t\t\t\t\treturn elt.tagName === 'SCRIPT';\r\n\t\t\t\t});\r\n\r\n\t\t\tvar scriptStr = '';\r\n\r\n\t\t\tfor (var script of scripts) {\r\n\t\t\t\tif ($(script).text().indexOf('googletagmanager') > 0) {\r\n\t\t\t\t\tscriptStr += scripts[j].outerHTML;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t}\r\n\t\t\t};\r\n\r\n\t\t\treturn scriptStr;\r\n\t\t};\r\n\r\n\t\tself.replaceHtml = function() {\r\n\t\t\tvar pathName = window.location.pathname;\r\n\t\t\tvar pathNameWithoutStartingSlash = pathName.indexOf('/') === 0\r\n\t\t\t\t? pathName.substring(1, pathName.length)\r\n\t\t\t\t: pathName;\r\n\r\n\t\t\tvar pathNameArr = pathNameWithoutStartingSlash.split('/');\r\n\t\t\tvar firstPathName = '', testFix = '';\r\n\r\n\t\t\tif (pathNameArr.length > 1) {\r\n\t\t\t\tif (pathNameArr[0].length > 0) {\r\n\t\t\t\t\tif (pathNameArr[0] === 'testdata') {\r\n\t\t\t\t\t\tfirstPathName = pathNameArr[1];\r\n\t\t\t\t\t\ttestFix = pathNameArr[0] + '/';\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tfirstPathName = pathNameArr[0];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t$.ajax({\r\n\t\t\t\turl: '/' + testFix + firstPathName,\r\n\t\t\t\tsuccess: function(data) {\r\n\t\t\t\t\tvar $ervLoaded = $('body.error-page'),\r\n\t\t\t\t\t\t$data = $(data),\r\n\t\t\t\t\t\t$header = $data.find('#header'),\r\n\t\t\t\t\t\t$footer = $data.find('#footer'),\r\n\t\t\t\t\t\tcssLink = getCssLink($data);\r\n\r\n\t\t\t\t\tif ($ervLoaded.length > 0) {\r\n\t\t\t\t\t\tsetTimeout(function() {\r\n\t\t\t\t\t\t\t$ervLoaded.find('#header').html($header);\r\n\t\t\t\t\t\t\t$ervLoaded.find('#footer').html($footer);\r\n\r\n\t\t\t\t\t\t\t\tvar $head = $('head');\r\n\t\t\t\t\t\t\t\t$head.prepend($(getGTMScript($data)));\r\n\t\t\t\t\t\t\t\t$head.find('link[rel=\"stylesheet\"]').attr('href', cssLink);\r\n\r\n\t\t\t\t\t\t\t\t$('body').trigger('ervDomChanged');\r\n\t\t\t\t\t\t\t},\r\n\t\t\t\t\t\t\t100);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tReplaceHtml.prototype.init = function () {\r\n\t\tvar self = this;\r\n\t\tself.replaceHtml();\r\n\t};\r\n\r\n\treturn ReplaceHtml;\r\n});","define([\r\n\t'jquery',\r\n\t'responsive_devicemenu',\r\n\t'responsive_mainsearch',\r\n\t'responsive_common',\r\n\t'responsive_footer',\r\n\t'responsive_mainmenu',\r\n\t'responsive_countries',\r\n\t'common'\r\n], function ($, ResponsiveDeviceMenu, ResponsiveMainSearch, ResponsiveCommon, ResponsiveFooter, ResponsiveMainMenu, ResponsiveCountries, ERVCommon) {\r\n\tvar Responsive = function () {\r\n\t\tvar self = this;\r\n\t\tself.$ervBody = $('#erv-body');\r\n\t\tself.common = new ERVCommon();\r\n\r\n\t\tself.$window = $(window);\r\n\t\tself.width = self.$window.width();\r\n\t\tself.deviceSize = '';\r\n\t\tself.$ervBody = $('#erv-body');\r\n\r\n\t\tself.fixDateNoClickBookingWidget = function (add) {\r\n\t\t\tvar $dateInputContainers = self.$ervBody.find('#booking-widget .is-date'),\r\n\t\t\t\t$dateInputs = $dateInputContainers.find('input'),\r\n\t\t\t\t$dateIcons = $dateInputContainers.find('.date-icon');\r\n\r\n\t\t\tif (add) {\r\n\t\t\t\t$dateInputs.on('touchstart', function (e) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t$(this).blur();\r\n\t\t\t\t});\r\n\t\t\t\t$dateInputs.attr('readonly', 'on');\r\n\t\t\t\t$dateInputs.addClass('noclick');\r\n\t\t\t\t$dateIcons.addClass('noclickfix');\r\n\r\n\t\t\t\tvar $readonlyDateInput = self.$ervBody.find('#booking-widget .is-date input[readonly]');\r\n\t\t\t\t$readonlyDateInput.on('focus', function () { $(this).blur(); });\r\n\t\t\t} else {\r\n\t\t\t\t$dateInputs.off('touchstart');\r\n\t\t\t\t$dateInputs.removeAttr('readonly');\r\n\t\t\t\t$dateInputs.removeClass('noclick');\r\n\t\t\t\t$dateIcons.removeClass('noclickfix');\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tself.resizeSmall = function($bookingWidgetSelectProduct, $tableCompareContainers) {\r\n\t\t\tself.deviceMenu.initSmallerDevice();\r\n\t\t\tself.mainSearch.initSmallDevice();\r\n\t\t\tself.footer.addEventListener();\r\n\t\t\tself.mainMenu.initSmallerDevice();\r\n\t\t\tself.countries.initSmallDevice();\r\n\r\n\t\t\tif (self.$ervBody.find('#booking-widget').length) {\r\n\t\t\t\tself.responsiveCommon.addEventListener($bookingWidgetSelectProduct);\r\n\t\t\t\tself.fixDateNoClickBookingWidget(true);\r\n\t\t\t}\r\n\r\n\t\t\tself.setBookingSummaryDetails(false);\r\n\r\n\t\t\tif ($tableCompareContainers.length) {\r\n\t\t\t\tself.responsiveTable.initSmall($tableCompareContainers);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tself.resizeMedium = function($bookingWidgetSelectProduct, $tableCompareContainers) {\r\n\t\t\tself.deviceMenu.initSmallerDevice();\r\n\t\t\tself.mainSearch.initLargerDevice();\r\n\t\t\tself.footer.removeEventListener();\r\n\t\t\tself.mainMenu.initSmallerDevice();\r\n\t\t\tself.countries.initLargerDevices();\r\n\r\n\t\t\tif (self.$ervBody.find('#booking-widget').length) {\r\n\t\t\t\tself.responsiveCommon.addEventListener($bookingWidgetSelectProduct);\r\n\t\t\t}\r\n\r\n\t\t\tself.setBookingSummaryDetails(false);\r\n\r\n\t\t\tif ($tableCompareContainers.length) {\r\n\t\t\t\tself.responsiveTable.initLarger($tableCompareContainers);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tself.resizeLarge = function($bookingWidgetSelectProduct, $tableCompareContainers) {\r\n\t\t\tself.deviceMenu.initLargeDevice();\r\n\t\t\tself.mainSearch.initLargerDevice();\r\n\t\t\tself.footer.removeEventListener();\r\n\t\t\tself.mainMenu.initLargeDevice();\r\n\t\t\tself.countries.initLargerDevices();\r\n\r\n\t\t\tif (self.$ervBody.find('#booking-widget').length) {\r\n\t\t\t\tself.responsiveCommon.removeEventListener($bookingWidgetSelectProduct);\r\n\t\t\t\t$bookingWidgetSelectProduct.addClass('wide');\r\n\t\t\t}\r\n\r\n\t\t\tself.setBookingSummaryDetails(true);\r\n\r\n\t\t\tif ($tableCompareContainers.length) {\r\n\t\t\t\tself.responsiveTable.initLarger($tableCompareContainers);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tself.doneResizing = function () {\r\n\t\t\tvar deviceSize = self.responsiveCommon.getDeviceSize(),\r\n\t\t\t\t$bookingWidgetSelectProduct = self.$ervBody.find('.bookingselectproductpage #booking-widget'),\r\n\t\t\t\t$tableCompareContainers = self.$ervBody.find('.table-compare-container');\r\n\r\n\t\t\tif (self.$ervBody.find('#booking-widget').length) {\r\n\t\t\t\tself.fixDateNoClickBookingWidget(false);\r\n\t\t\t}\r\n\r\n\t\t\tif (deviceSize === self.responsiveCommon.small) {\r\n\t\t\t\tself.resizeSmall($bookingWidgetSelectProduct, $tableCompareContainers);\r\n\t\t\t} else if (deviceSize === self.responsiveCommon.medium) {\r\n\t\t\t\tself.resizeMedium($bookingWidgetSelectProduct, $tableCompareContainers);\r\n\t\t\t} else if (deviceSize === self.responsiveCommon.large) {\r\n\t\t\t\tself.resizeLarge($bookingWidgetSelectProduct, $tableCompareContainers);\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tself.setBookingSummaryDetails = function (isLargeBreakpoint) {\r\n\t\t\tvar $bookingsummarydetails = self.$ervBody.find('#booking-summary #details');\r\n\r\n\t\t\tif ($bookingsummarydetails.length === 0) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar $toggle = $bookingsummarydetails.find('[data-js=\"read-toggle\"]').first();\r\n\t\t\tvar isVisibleAtStart = $toggle.data('is-visible-at-start') === 'True';\r\n\t\t\tvar isClosed = $bookingsummarydetails.find('[data-js=\"read-target\"]').hasClass('hide');\r\n\r\n var shouldOpen = isVisibleAtStart && isLargeBreakpoint;\r\n\r\n\t\t\tif (shouldOpen && isClosed || !shouldOpen && !isClosed) {\r\n $toggle.click();\r\n\t\t\t}\r\n\t\t}\r\n\r\n self.fixedMode = function () {\r\n var $body = $('body');\r\n var FIXED_MODE_CSS_CLASS = 'fixed-mode';\r\n\t\t\tvar HIDE_SECTION_PICKER_CSS_CLASS = 'hide-section-picker';\r\n var THRESHOLD = 50;\r\n\r\n var hasSectionPicker = !!$('[data-js=section-picker]').length;\r\n var cssClass = FIXED_MODE_CSS_CLASS + (hasSectionPicker ? ' ' + HIDE_SECTION_PICKER_CSS_CLASS : '');\r\n var isLargeDevice = self.deviceSize === self.responsiveCommon.large;\r\n\t\t\tvar pageScrollTop = window.pageYOffset || document.documentElement.scrollTop;\r\n\r\n if (isLargeDevice) {\r\n if (pageScrollTop > THRESHOLD && $('.mainmenu:visible').length) {\r\n return $body.addClass(cssClass);\r\n } \r\n return $body.removeClass(cssClass);\r\n } \r\n return $body.addClass(cssClass);\r\n };\r\n\r\n\t\tself.fixSwipe = function (size) {\r\n\t\t\tif (self.$ervBody.find('.swipe, .had-swipe').length && size === self.responsiveCommon.small && ('ontouchstart' in window) || !!(navigator.msMaxTouchPoints)) {\r\n\t\t\t\trequire(['responsive_swipe'],\r\n\t\t\t\t\tfunction(moduleName) {\r\n\t\t\t\t\t\tself.swipe = new (moduleName);\r\n\t\t\t\t\t\tself.swipe.init();\r\n\t\t\t\t\t});\r\n\t\t\t} else if (typeof(self.swipe) !== 'undefined') {\r\n\t\t\t\tself.swipe.remove();\r\n\t\t\t} else {\r\n\t\t\t\tself.$ervBody.find('.swipe').removeClass('swipe');\r\n\t\t\t\tself.$ervBody.find('.swipe-indicator').addClass('hide');\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\tResponsive.prototype.init = function () {\r\n\t\tvar self = this;\r\n\r\n\t\tself.deviceMenu = new ResponsiveDeviceMenu(self.$ervBody.find('header'));\r\n\t\tself.mainSearch = new ResponsiveMainSearch(self.$ervBody.find('header'));\r\n\t\tself.responsiveCommon = new ResponsiveCommon();\r\n\t\tself.mainMenu = new ResponsiveMainMenu();\r\n\t\tself.footer = new ResponsiveFooter(self.$ervBody.find('footer .link-list [data-js=\"expandtrigger\"]'));\r\n\t\tself.countries = new ResponsiveCountries();\r\n\t\tself.responsiveTable = self.responsiveCommon.responsiveTable;\r\n\r\n\t\tself.doneResizing();\r\n\r\n var width = self.$window.width(),\r\n\t\t\tdeviceSize = self.responsiveCommon.getDeviceSize(),\r\n\t\t\tresizeId;\r\n\r\n\t\tself.deviceSize = deviceSize;\r\n\r\n\t\tself.fixSwipe(self.deviceSize);\r\n\r\n\t\tself.mql = window.matchMedia && window.matchMedia('(orientation: portrait)');\r\n\r\n\t\t// Add a media query change listener\r\n\t\tif (self.mql) {\r\n\t\t\tself.mql.addListener(function (m) {\r\n\t\t\t\tself.fixSwipe(self.responsiveCommon.getDeviceSize());\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tself.$window.resize(function () {\r\n\t\t\tvar newWidth = self.$window.width();\r\n\r\n\t\t\tif (width !== newWidth) {\r\n\t\t\t\twidth = newWidth;\r\n\r\n\t\t\t\tclearTimeout(resizeId);\r\n\t\t\t\tresizeId = setTimeout(function () {\r\n\t\t\t\t\tvar changedDeviceSize = self.responsiveCommon.getDeviceSize();\r\n\r\n\t\t\t\t\tif (deviceSize !== changedDeviceSize) {\r\n\t\t\t\t\t\tdeviceSize = changedDeviceSize;\r\n\t\t\t\t\t\tself.deviceSize = deviceSize;\r\n\r\n\t\t\t\t\t\tself.doneResizing();\r\n\t\t\t\t\t}\r\n\r\n self.common.framework.equalizeParent($('#guide .group'));\r\n\r\n self.common.framework.equalizeTeasers();\r\n\r\n\t\t\t\t\tself.fixedMode();\r\n\r\n\t\t\t\t\tself.mql = window.matchMedia && window.matchMedia('(orientation: portrait)');\r\n\r\n\t\t\t\t}, 200);\r\n\t\t\t}\r\n\t\t});\r\n\r\n\t\tself.fixedMode();\r\n\r\n\t\tself.$window.on('scroll', function () {\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\tself.fixedMode();\r\n\t\t\t}, 200);\r\n\t\t});\r\n\t}\r\n\r\n\treturn Responsive;\r\n});","define(['jquery', 'responsive_table', 'erv_breakpoints'], function ($, ResponsiveTable, erv_breakpoints) {\r\n\tvar ResponsiveCommon = function () {\r\n\t\tvar self = this;\r\n\t\tself.$ervBody = $('#erv-body');\r\n\t\tself.responsiveTable = new ResponsiveTable();\r\n\r\n\t\tself.small = erv_breakpoints['small-max-width'];\r\n\t\tself.medium = erv_breakpoints['medium-max-width'];\r\n\t\tself.large = erv_breakpoints['large-min-width'];\r\n\r\n\t\tself.removeEventListener = function ($what) {\r\n\t\t\t$what.find('[data-js=\"collapsable\"]').unbind();\r\n\t\t\t$what.removeClass('is-expanded');\r\n\t\t\t$what.removeClass('is-closed');\r\n\t\t}\r\n\r\n\t\tself.addEventListener = function ($what) {\r\n\t\t\tself.removeEventListener($what);\r\n\r\n\t\t\tif ((window.location.href != undefined && window.location.href.indexOf('?') > -1 && window.location.href.indexOf('MultipleProducts') > -1) || \r\n\t\t\t ($what.attr('id') != undefined && $what.attr('id').indexOf('summary') > -1)) {\r\n\t\t\t\t$what.addClass('is-closed');\r\n\t\t\t\t$what.removeClass('is-expanded');\r\n\t\t\t} else {\r\n\t\t\t\t$what.addClass('is-expanded');\r\n\t\t\t\t$what.removeClass('is-closed');\r\n\t\t\t}\r\n\r\n\t\t\t$what.find('[data-js=\"collapsable\"]').on('click', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tif ($what.hasClass('is-closed')) {\r\n\t\t\t\t\t$what.addClass('is-expanded');\r\n\t\t\t\t\t$what.removeClass('is-closed');\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$what.addClass('is-closed');\r\n\t\t\t\t\t$what.removeClass('is-expanded');\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$what[0].scrollIntoView(true);\r\n\t\t\t});\r\n\r\n\t\t}\r\n\r\n\t\tself.getOffset = function (el) {\r\n\t\t\tvar error = false;\r\n\r\n\t\t\tif (!el || el.length === 0) {\r\n\t\t\t\terror = true;\r\n\t\t\t}\r\n\r\n\t\t\tvar elRect = el[0].getBoundingClientRect();\r\n\r\n\t\t\tif (typeof (elRect) === 'undefined' || elRect == null || error) {\r\n\t\t\t\telRect = { left: 0, top: 0 };\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tleft: elRect.left + window.pageXOffset,\r\n\t\t\t\ttop: elRect.top + window.pageYOffset\r\n\t\t\t}\r\n\t\t}\r\n\r\n self.getDeviceSize = function () {\r\n\t\t\tif (!window.matchMedia) {\r\n\t\t\t\treturn self.large;\r\n\t\t\t}\r\n\t\t\telse if (window.matchMedia('only screen and (max-width: ' + self.small + ')').matches) {\r\n\t\t\t\treturn self.small;\r\n\t\t\t} else if (window.matchMedia('only screen and (max-width: ' + self.medium + ')').matches) {\r\n\t\t\t\treturn self.medium;\r\n\t\t\t} else if (window.matchMedia('only screen and (min-width: ' + self.large + ')').matches) {\r\n\t\t\t\treturn self.large;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tself.isDeviceSize = function (size) {\r\n\t\t\tvar deviceSize = self.getDeviceSize();\r\n\r\n\t\t\tif (deviceSize == self.small && size === 'small') {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tif (deviceSize == self.medium && size === 'medium') {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t\tif (deviceSize == self.large && size === 'large') {\r\n\t\t\t\treturn true;\r\n\t\t\t}\r\n\t\t};\r\n\t};\r\n\r\n\treturn ResponsiveCommon;\r\n});","define(['jquery', 'common'], function ($, Common) {\r\n\tvar ResponsiveCountries = function() {\r\n\t\tvar self = this;\r\n\t\tself.common = new Common();\r\n\t\tself.$ervBody = $('#erv-body');\r\n\r\n\t\tself.addEventListener = function () {\r\n\t\t\tself.$ervBody.find('.stack').each(function () {\r\n\t\t\t\tvar $stackElement = $(this);\r\n\t\t\t\tvar $list = $stackElement.find('ul');\r\n\r\n\t\t\t\tif ($list.find('li').length > 5) {\r\n\t\t\t\t\t$stackElement.find('.action a').removeClass('hide');\r\n\t\t\t\t\t$list.addClass('is-collapsed');\r\n\r\n\t\t\t\t\t$stackElement.find('.action a').on('click', function (e) {\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\tvar $trigger = $(this);\r\n\t\t\t\t\t\t$list.toggleClass('is-collapsed');\r\n\r\n\t\t\t\t\t\tif (!$list.hasClass('is-collapsed')) {\r\n\t\t\t\t\t\t\t$list.attr('style', '');\r\n\t\t\t\t\t\t\t$trigger.find('.show-less').removeClass('hide');\r\n\t\t\t\t\t\t\t$trigger.find('.show-more').addClass('hide');\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t$trigger.find('.show-less').addClass('hide');\r\n\t\t\t\t\t\t\t$trigger.find('.show-more').removeClass('hide');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tself.removeEventListener = function () {\r\n\t\t\tself.$ervBody.find('.stack ul').each(function () {\r\n\t\t\t\tvar $list = $(this);\r\n\t\t\t\t$list.removeClass('is-collapsed');\r\n\t\t\t\t$list.parent().find('.action a').unbind();\r\n\t\t\t\t$list.parent().find('.action a').addClass('hide');\r\n\t\t\t\t$list.attr('style', '');\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\tResponsiveCountries.prototype.initSmallDevice = function () {\r\n\t\tvar self = this;\r\n\t\tself.removeEventListener();\r\n\t\tself.addEventListener();\r\n\t}\r\n\r\n\tResponsiveCountries.prototype.initLargerDevices = function () {\r\n\t\tvar self = this;\r\n\t\tself.removeEventListener();\r\n\t}\r\n\r\n\treturn ResponsiveCountries;\r\n});","define(['jquery', 'erv_checks', 'erv_autosuggest'], function ($, ERVChecks, ERVAutosuggest) {\r\n\r\n\tvar ResponsiveDeviceMenu = function ($header) {\r\n\t\tvar self = this;\r\n\t\tself.checks = new ERVChecks();\r\n\t\tself.$menuTrigger = $header.find('#device-menu-trigger');\r\n\t\tself.$menu = $header.find('#device-menu');\r\n\r\n self.addEventListener = function () {\r\n\t\t\tself.$menuTrigger.on('click touch', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t\te.stopImmediatePropagation();\r\n\r\n\t\t\t\t$('body').toggleClass('device-menu-open');\r\n\t\t\t\tif (!$('body').hasClass('device-menu-open')) {\r\n ERVAutosuggest.default.clearSuggestionsContainer();\r\n }\r\n\t\t\t\tif (self.checks.isIos() && !$('body').hasClass('device-menu-open')) {\r\n\t\t\t\t\tsetTimeout(function () {\r\n\t\t\t\t\t\tvar fixedElement = $('header .home')[0], \r\n\t\t\t\t\t\t\tdisp = fixedElement.style.display;\r\n\r\n\t\t\t\t\t\tfixedElement.style.display = 'none';\r\n\t\t\t\t\t\tfixedElement.style.display = disp;\r\n\t\t\t\t\t}, 305);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t$('body').on('click touch', function (e) {\r\n\t\t\t\tif ($(this).hasClass('device-menu-open')) {\r\n\t\t\t\t\tvar targetId = $(e.target).attr('id');\r\n\t\t\t\t\tif (!$.contains($('#device-menu-container')[0], e.target) && targetId !== 'device-menu-container' &&\r\n\t\t\t\t\t\ttargetId !== 'main-search-input' && targetId !== 'main-search-button') {\r\n\t\t\t\t\t\t$(this).trigger('ervCloseDeviceMenu');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\t$('body').on('ervCloseDeviceMenu', function () {\r\n\t\t\t\tself.$menuTrigger.click();\r\n\t\t\t});\r\n\r\n\t\t\tself.$menu.find('a.active').each(function () {\r\n\t\t\t\tvar $linkList = $(this).parents('.link-list');\r\n\t\t\t\tif ($linkList.find('ul li').length > 1) {\r\n\t\t\t\t\t$linkList.addClass('is-expanded');\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$linkList.find('h3').addClass('bold');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tself.removeEventListener = function () {\r\n\t\t\t$('body').removeClass('device-menu-open');\r\n\t\t\tself.$menuTrigger.unbind();\r\n\t\t\t$('body').unbind('ervCloseDeviceMenu');\r\n\t\t}\r\n\t};\r\n\r\n\tResponsiveDeviceMenu.prototype.initSmallerDevice = function () {\r\n\t\tvar self = this;\r\n\t\tself.removeEventListener();\r\n\t\tself.addEventListener();\r\n\t}\r\n\r\n\tResponsiveDeviceMenu.prototype.initLargeDevice = function () {\r\n\t\tvar self = this;\r\n\t\tself.removeEventListener();\r\n\t}\r\n\r\n\treturn ResponsiveDeviceMenu;\r\n});","define(['jquery','erv_triggers'], function ($, ERVTriggers) {\r\n\r\n\tvar ResponsiveFooter = function ($footerLinkListTriggers) {\r\n\t\tvar self = this;\r\n\t\tself.triggers = new ERVTriggers();\r\n\r\n\t\tResponsiveFooter.prototype.addEventListener = function () {\r\n\t\t\tself.triggers.initTogglers('.nav');\r\n\t\t}\r\n\r\n\t\tResponsiveFooter.prototype.removeEventListener = function () {\r\n\t\t\t$footerLinkListTriggers.each(function () {\r\n\t\t\t\tvar $trigger = $(this),\r\n\t\t\t\t\t$parent = $trigger.parent();\r\n\r\n\t\t\t\t$parent.removeClass('is-expanded');\r\n\t\t\t\t$trigger.removeClass('arrow');\r\n\r\n\t\t\t\t$trigger.unbind();\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\treturn ResponsiveFooter;\r\n});","define(['jquery'], function ($) {\r\n\r\n\tvar ResponsiveMainMenu = function () {\r\n\t\tvar self = this;\r\n\t\tself.$ervBody = $('#erv-body');\r\n\t\tself.$linkLists = self.$ervBody.find('header .link-list');\r\n\r\n\t\tself.addEventListener = function () {\r\n\t\t\t$(document).click(function () {\r\n\t\t\t\tself.$linkLists.removeClass('is-expanded');\r\n\t\t\t\t$('body').removeClass('main-menu-expanded');\r\n\t\t\t});\r\n\r\n\t\t\t$(document).on('expandtrigger', function (e, param) {\r\n\t\t\t\tif (!param || !param.item) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar $body = $('body');\r\n\t\t\t\tif (param.item.parent().find('ul li').length > 1) {\r\n\t\t\t\t\t$body.toggleClass('main-menu-expanded', !param.expanded);\r\n\t\t\t\t}\r\n\t\t\t\telse if (!param.expanded && $body.hasClass('main-menu-expanded')) {\r\n\t\t\t\t\t$body.removeClass('main-menu-expanded')\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tself.removeEventListener = function () {\r\n\t\t\tself.$linkLists.unbind();\r\n\t\t\t$(document).unbind('expandtrigger');\r\n\t\t}\r\n\t};\r\n\r\n\tResponsiveMainMenu.prototype.initSmallerDevice = function () {\r\n\t\tvar self = this;\r\n\t\tself.removeEventListener();\r\n\t}\r\n\r\n\tResponsiveMainMenu.prototype.initLargeDevice = function () {\r\n\t\tvar self = this;\r\n\t\tself.removeEventListener();\r\n\t\tself.addEventListener();\r\n\t}\r\n\r\n\treturn ResponsiveMainMenu;\r\n});","define(['jquery','erv_autosuggest'], function ($, ERVAutosuggest) {\r\n\r\n\tvar ResponsiveMainSearch = function ($header) {\r\n\t\tvar self = this;\r\n\t\tself.$searchContainer = $header.find('#main-search');\r\n\t\tself.$searchButton = self.$searchContainer.find('#main-search-button');\r\n\t\tself.$searchInput = self.$searchContainer.find('#main-search-input');\r\n\r\n self.hideSearchInput = function () {\r\n ERVAutosuggest.default.clearSuggestionsContainer();\r\n\t\t}\r\n\r\n\t\tself.isSuggestion = function ($el) {\r\n\t\t\treturn $el.is(ERVAutosuggest.default.SUGGESTION_SELECTOR) || $el.parent().is(ERVAutosuggest.default.SUGGESTION_SELECTOR)\r\n }\r\n\r\n\t\tself.addEventListener = function () {\r\n\r\n\t\t\tself.$searchButton.on('click', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\r\n\t\t\t\tif (self.$searchInput.val().length > 0) {\r\n\t\t\t\t\tself.$searchContainer.submit();\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\r\n ERVAutosuggest.default.clearSuggestionsContainer();\r\n\t\t\t});\r\n\r\n\t\t\tself.$searchInput.on('blur', function (e) {\r\n\t\t\t\tvar $activeElement = $(document.activeElement)\r\n\t\t\t\t//if blur because button is pressed\r\n\t\t\t\tif (e.relatedTarget != null || $activeElement.is('button')) {\r\n\t\t\t\t\tself.$searchContainer.addClass('blurred');\r\n\t\t\t\t} else if (!self.isSuggestion($activeElement)) {\r\n\t\t\t\t\tself.hideSearchInput();\r\n }\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tself.removeEventListener = function () {\r\n\t\t\tself.$searchButton.unbind();\r\n\t\t}\r\n\t};\r\n\r\n\tResponsiveMainSearch.prototype.initSmallDevice = function () {\r\n\t\tvar self = this;\r\n\t\tself.removeEventListener();\r\n\t}\r\n\r\n\tResponsiveMainSearch.prototype.initLargerDevice = function () {\r\n\t\tvar self = this;\r\n\t\tself.removeEventListener();\r\n\t\tself.addEventListener();\r\n\t}\r\n\r\n\treturn ResponsiveMainSearch;\r\n});","define(['jquery', 'responsive_common', 'swipe2'], function ($, ResponsiveCommon) {\r\n\tvar ResponsiveSwipe = function () {\r\n\t\tvar self = this;\r\n\t\tself.$window = $(window);\r\n\t\tself.width = self.$window.width();\r\n\t\tself.deviceSize = '';\r\n\r\n\t\tself.doneResizing = function() {\r\n\t\t\tself.deviceSize = self.responsiveCommon.getDeviceSize();\r\n\t\t\tif (self.deviceSize === self.responsiveCommon.small) {\r\n\t\t\t\tif (('ontouchstart' in window) || !!(navigator.msMaxTouchPoints)) {\r\n\t\t\t\t\tself.add();\r\n\t\t\t\t} else {\r\n\t\t\t\t\tself.remove();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tif (self.deviceSize === self.responsiveCommon.medium || self.deviceSize === self.responsiveCommon.large) {\r\n\t\t\t\tself.remove();\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tself.resetAll = function () {\r\n\t\t\tvar $swipes = $('.had-swipe'),\r\n\t\t\t\t$swipewraps = $swipes.find('.had-swipe-wrap');\r\n\r\n\t\t\t$swipewraps.addClass('swipe-wrap');\r\n\t\t\t$swipewraps.removeClass('had-swipe-wrap');\r\n\r\n\t\t\t$swipes.addClass('swipe');\r\n\t\t\t$swipes.removeClass('had-swipe');\r\n\t\t}\r\n\r\n\t\tself.add = function () {\r\n\t\t\tvar self = this;\r\n\r\n\t\t\tif ($('.swipe-is-active').length === 0) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar $swipes = $('.swipe');\r\n\r\n\t\t\tif ($swipes.length === 0) {\r\n\t\t\t\t$swipes = $('.had-swipe');\r\n\r\n\t\t\t\tif ($swipes.length > 0) {\r\n\t\t\t\t\tself.resetAll();\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tvar index = 0;\r\n\t\t\tself.ervSwipers = [$swipes.length];\r\n\t\t\t$swipes.each(function () {\r\n\r\n\r\n\t\t\t\tvar $swipe = $(this);\r\n\t\t\t\tvar $bullets = $swipe.find('li.pos');\r\n\r\n\t\t\t\tif ($bullets.length > 1) {\r\n\t\t\t\t\t$swipe.find('.swipe-indicator').removeClass('hide');\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar swiper = self.ervSwipers[index] = $swipe.Swipe({\r\n\t\t\t\t\tstartSlide: 0,\r\n\t\t\t\t\tautoRestart: false,\r\n\t\t\t\t\tpartial: true,\r\n\t\t\t\t\tcontinuous: true,\r\n\t\t\t\t\tstopPropagation: true,\r\n\t\t\t\t\tcallback: function (index, element) {\r\n\t\t\t\t\t\t$bullets.removeClass('active');\r\n\t\t\t\t\t\t$bullets.eq(index).addClass('active');\r\n\r\n\t\t\t\t\t\tvar $images = $swipe.find('.lazy');\r\n\t\t\t\t\t\t$images.each(function () {\r\n\t\t\t\t\t\t\tvar $image = $(this);\r\n\r\n\t\t\t\t\t\t\t$image.addClass('loaded').removeClass('loading');\r\n\t\t\t\t\t\t\t$image.attr('src', $image.attr('data-src'));\r\n\t\t\t\t\t\t});\r\n\t\t\t\t\t},\r\n\t\t\t\t\ttransitionEnd: function (index, element) { }\r\n\t\t\t\t}).data('Swipe');\r\n\r\n\t\t\t\t$bullets.on('click',\r\n\t\t\t\t\tfunction (e) {\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t$bullets.removeClass('active');\r\n\t\t\t\t\t\t$(this).addClass('active');\r\n\t\t\t\t\t\tswiper.slide($(this).index());\r\n\t\t\t\t\t});\r\n\r\n\t\t\t\tindex++;\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tself.remove = function () {\r\n\t\t\tvar self = this;\r\n\r\n\t\t\tvar $swipes = $('.swipe, .had-swipe');\r\n\t\t\t$swipes.addClass('had-swipe');\r\n\t\t\t$swipes.removeClass('swipe');\r\n\r\n\t\t\tif (typeof (self.ervSwipers) !== 'undefined') {\r\n\t\t\t\tfor (var ervSwiper of self.ervSwipers) {\r\n\t\t\t\t\tervSwiper.kill();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tself.init = function () {\r\n\t\t\tvar self = this;\r\n\t\t\tself.responsiveCommon = new ResponsiveCommon();\r\n\t\t\tself.doneResizing();\r\n\r\n\t\t\tvar width = self.$window.width(),\r\n\t\t\t\tdeviceSize = self.responsiveCommon.getDeviceSize(),\r\n\t\t\t\tresizeId;\r\n\r\n\t\t\tself.deviceSize = deviceSize;\r\n\r\n\t\t\tself.$window.resize(function () {\r\n\t\t\t\tvar newWidth = self.$window.width();\r\n\r\n\t\t\t\tif (width !== newWidth) {\r\n\t\t\t\t\twidth = newWidth;\r\n\r\n\t\t\t\t\tclearTimeout(resizeId);\r\n\t\t\t\t\tresizeId = setTimeout(function () {\r\n\t\t\t\t\t\tif ($('.had-swipe').length) {\r\n\t\t\t\t\t\t\tself.remove();\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}, 200);\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\treturn ResponsiveSwipe;\r\n});","define(['jquery'], function ($) {\r\n\tvar ResponsiveTable = function () {\r\n\t\tvar self = this;\r\n\r\n\t\tself.$ervBody = $('#erv-body');\r\n\r\n\t\tself.setupDeconstructed = function ($containers) {\r\n\t\t\tif (typeof ($containers) === 'undefined' || $containers.length === 0) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t$containers.each(function() {\r\n\t\t\t\tvar $tablesContainer = $(this),\r\n\t\t\t\t\t$table = $tablesContainer.find('table').first();\r\n\r\n\t\t\t\tif ($table) {\r\n\t\t\t\t\t$table.addClass('deconstructed');\r\n\t\t\t\t\t$table.removeClass('wide-table');\r\n\t\t\t\t\tself.setSelectedColumn($table);\r\n\t\t\t\t\tself.setControlDots($tablesContainer);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tself.simpleSwipeDetection($tablesContainer);\r\n\t\t\t});\r\n\r\n\t\t\tself.addEventListeners($containers);\r\n\t\t};\r\n\r\n\t\tself.setControlDots = function ($tablesContainer) {\r\n\t\t\tvar $table = $tablesContainer.find('table'),\r\n\t\t\t\t$controls = $tablesContainer.find('.table-compare-control');\r\n\r\n\t\t\tif ($table.data('colspan') == 2) {\r\n\t\t\t\t$controls.addClass('hide');\r\n\t\t\t\treturn;\r\n\t\t\t} else {\r\n\t\t\t\t$controls.removeClass('hide');\r\n\t\t\t}\r\n\r\n\t\t\tvar\t$controlDotsContainer = $tablesContainer.find('.table-compare-nav-counter'),\r\n\t\t\t\t$lis = $controlDotsContainer.find('li'),\r\n\t\t\t\tselectedIndex = self.getSelectedIndex($table);\r\n\r\n\t\t\tif ($lis.length === 0) {\r\n\t\t\t\t$table.find('thead th.compare-check-heading').each(function (index) {\r\n\t\t\t\t\t$controlDotsContainer.append(''+index+'');\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\t$lis.removeClass('selected');\r\n\t\t\t\t$lis.each(function (index) {\r\n\t\t\t\t\tvar $li = $(this);\r\n\r\n\t\t\t\t\tif (index === selectedIndex) {\r\n\t\t\t\t\t\t$li.addClass('selected');\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tself.getSelectedIndex = function ($table) {\r\n\t\t\tvar selectedIndex = 0;\r\n\r\n\t\t\tif ($table.find('thead th.selected').length) {\r\n\t\t\t\t$table.find('thead th').each(function (index) {\r\n\t\t\t\t\tif ($(this).hasClass('selected')) {\r\n\t\t\t\t\t\tselectedIndex = index-1;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\treturn selectedIndex;\r\n\t\t};\r\n\r\n\t\tself.setSelectedColumn = function($table) {\r\n\t\t\tvar $columnHeaders = $table.find('thead th.compare-check-heading'),\r\n\t\t\t\tcolumnSelected = self.getSelectedIndex($table),\r\n\t\t\t\tcolspan = $table.data('colspan');\r\n\r\n\t\t\t$columnHeaders.addClass('hide');\r\n\t\t\t$columnHeaders.removeAttr('colspan');\r\n\r\n\t\t\t$columnHeaders.each(function (index) {\r\n\t\t\t\tvar $heading = $(this);\r\n\r\n\t\t\t\tif (index === columnSelected) {\r\n\t\t\t\t\t$heading.attr('colspan', colspan);\r\n\t\t\t\t\t$heading.addClass('selected');\r\n\t\t\t\t\t$heading.removeClass('hide');\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$heading.removeClass('selected');\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\tvar $tableRows = $table.find('tbody tr');\r\n\t\t\t$tableRows.each(function () {\r\n\t\t\t\tvar $row = $(this),\r\n\t\t\t\t\t$cells = $row.find('td');\r\n\r\n\t\t\t\t$cells.addClass('hide');\r\n\r\n\t\t\t\t$cells.each(function (index) {\r\n\t\t\t\t\tvar $cell = $(this);\r\n\r\n\t\t\t\t\tif (columnSelected === index) {\r\n\t\t\t\t\t\t$cell.removeClass('hide');\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tself.tearDownDeconstructed = function ($containers) {\r\n\t\t\tif (typeof ($containers) === 'undefined' || $containers.length === 0) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t$containers.each(function () {\r\n\t\t\t\tvar $tablesContainer = $(this),\r\n\t\t\t\t\t$table = $tablesContainer.find('table').first();\r\n\t\t\t\t\r\n\t\t\t\t$table.find('td.hide, th.hide').removeClass('hide');\r\n\r\n\t\t\t\tif ($table.data('colspan') > 4) {\r\n\t\t\t\t\t$table.addClass('wide-table');\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$table.removeClass('wide-table');\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$table.removeAttr('colspan');\r\n\t\t\t\t$table.find('[colspan]').removeAttr('colspan');\r\n\t\t\t\t$table.removeClass('deconstructed');\r\n\t\t\t});\r\n\r\n\t\t\tself.removeEventListeners();\r\n\t\t};\r\n\r\n\t\tself.addEventListeners = function ($containers) {\r\n\t\t\t$containers.on('click', '[data-js=\"nav-button\"]', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\te.stopPropagation();\r\n\r\n\t\t\t\tvar $button = $(this),\r\n\t\t\t\t\t$table = $button.parents('.table-compare-wrapper').find('table'),\r\n\t\t\t\t\t$headerColumns = $table.find('thead th.compare-check-heading'),\r\n\t\t\t\t\t$currentColumn = $table.find('thead th.compare-check-heading.selected'),\r\n\t\t\t\t\t$newSelectedColumn = null;\r\n\r\n\t\t\t\tif ($button.hasClass('next')) {\r\n\t\t\t\t\t$newSelectedColumn = $currentColumn.next('.compare-check-heading').attr('class') != undefined ? $currentColumn.next('.compare-check-heading') : $headerColumns.first();\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$newSelectedColumn = $currentColumn.prev('.compare-check-heading').attr('class') != undefined ? $currentColumn.prev('.compare-check-heading') : $headerColumns.last();\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$currentColumn.removeClass('selected');\r\n\t\t\t\t$newSelectedColumn.addClass('selected')\r\n\r\n\t\t\t\tself.setSelectedColumn($table);\r\n\t\t\t\tself.setControlDots($table.parent());\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tself.removeEventListeners = function() {\r\n\t\t\tself.$ervBody.find('[data-js=\"nav-button\"]').off();\r\n\t\t\tself.$ervBody.find('.table-compare-container').off();\r\n\t\t};\r\n\r\n\t\tself.simpleSwipeDetection = function ($el) {\r\n\t\t\tvar el = $el[0],\r\n\t\t\t\tdirection,\r\n\t\t\t\tstartX,\r\n\t\t\t\tthreshold = 100, //required min distance for swipe\r\n\t\t\t\tallowedTime = 200, // maximum time allowed to travel that distance\r\n\t\t\t\tstartTime;\r\n\r\n\t\t\tvar\thandleSwipe = function (direction) {\r\n\t\t\t\tif (direction === 'left') {\r\n\t\t\t\t\t$el.find('[data-js=\"nav-button\"].next').click();\r\n\t\t\t\t} else if (direction === 'right') {\r\n\t\t\t\t\t$el.find('[data-js=\"nav-button\"].previous').click();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tel.addEventListener('touchstart', function(e) {\r\n\t\t\t\tvar touchObj = e.changedTouches[0];\r\n\t\t\t\tdirection = 'none';\r\n\t\t\t\tstartX = touchObj.pageX;\r\n\t\t\t\tstartTime = new Date().getTime(); // record time\r\n\t\t\t}, false);\r\n\r\n\t\t\tel.addEventListener('touchend', function(e) {\r\n\t\t\t\tvar touchObj = e.changedTouches[0],\r\n\t\t\t\t\tdistX = touchObj.pageX - startX,\r\n\t\t\t\t\telapsedTime = new Date().getTime() - startTime; // get time elapsed\r\n\r\n\t\t\t\tif (elapsedTime <= allowedTime) {\r\n\t\t\t\t\tif (Math.abs(distX) >= threshold) {\r\n\t\t\t\t\t\tdirection = (distX < 0) ? 'left' : 'right';\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\thandleSwipe(direction);\r\n\t\t\t}, false);\r\n\t\t}\r\n\r\n\t\tResponsiveTable.prototype.initSmall = function ($containers) {\r\n\t\t\tvar self = this;\r\n\t\t\tself.setupDeconstructed($containers);\r\n\t\t};\r\n\r\n\t\tResponsiveTable.prototype.initLarger = function ($containers) {\r\n\t\t\tvar self = this;\r\n\t\t\tself.tearDownDeconstructed($containers);\r\n\t\t};\r\n\t}\r\n\r\n\treturn ResponsiveTable;\r\n});","define([], function () {\r\n\tif (!window.ERV || !window.ERV.ConfigurationSettings) {\r\n\t\tconsole.warn('Could not load ConfigurationSettings');\r\n\t\treturn {};\r\n\t}\r\n\treturn window.ERV.ConfigurationSettings;\r\n});","define(['jquery', 'common', 'scrollto'], function ($, Common) {\r\n\tvar Tabs = function () {\r\n\t\tvar self = this;\r\n\t\tself.$ervBody = $('#erv-body');\r\n\t\tself.common = new Common();\r\n\r\n\t\tself.setActiveTabAndContent = function ($tabContainer, $link) {\r\n\t\t\t//set active tab\r\n\t\t\tvar $activeTabMenuItem = $tabContainer.find('.tabs-container li.active');\r\n\t\t\t$activeTabMenuItem.removeClass('active');\r\n\t\t\t$link.parent().addClass('active');\r\n\r\n\t\t\t//set active content\r\n\t\t\tvar $tabContents = $tabContainer.find('.tab-content');\r\n\t\t\t$tabContents.addClass('hide');\r\n\r\n\t\t\tvar hashNumber = $link.attr('href').split('#tab-')[1],\r\n\t\t\t\telementIndex = Number(hashNumber) - 1,\r\n\t\t\t\tmatchingContent = $tabContents.get(elementIndex);\r\n\r\n\t\t\tif (typeof (matchingContent) !== 'undefined') {\r\n\t\t\t\t$(matchingContent).removeClass('hide');\r\n\t\t\t\tif (window.history) {\r\n\t\t\t\t\twindow.history.replaceState(null, null, ' ');\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tself.initTabsEventHandlers = function () {\r\n\t\t\tself.$tabs = self.$ervBody.find('.tabs').first();\r\n\r\n\t\t\tself.setupTabs(self.$tabs);\r\n\r\n\t\t\tif (self.$tabs.length === 0) { return false; }\r\n\t\t\t\r\n\t\t\tself.$tabs.find('.tabs-container li a').each(function () {\r\n\t\t\t\tvar $link = $(this);\r\n\r\n\t\t\t\t$link.on('click', function (e) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t\tself.setActiveTabAndContent(self.$tabs, $link);\r\n\t\t\t\t\t//additional menu hide\r\n\t\t\t\t\tvar $flexIsExpanded = self.$tabs.find('.is-expanded');\r\n\t\t\t\t\t$flexIsExpanded.removeClass('is-expanded');\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tself.setupHash = function () {\r\n\t\t\tself.$tabs = self.$ervBody.find('.tabs').first();\r\n\r\n\t\t\tvar url = document.location.toString();\r\n\r\n\t\t\t//hash triumph first tab\r\n\t\t\tif (url.match('#tab-') && self.$tabs.length > 0) {\r\n\t\t\t\tvar $hashElement = self.$tabs.find('a[href=\"#tab-' + url.split('#tab-')[1] + '\"]');\r\n\r\n\t\t\t\tif ($hashElement.length > 0) {\r\n\t\t\t\t\tself.setActiveTabAndContent(self.$tabs, $hashElement);\r\n\t\t\t\t}\r\n\t\t\t\tself.scrollToTabs('hash');\r\n\t\t\t} else {\r\n\t\t\t\tself.setActiveTabAndContent(self.$tabs, self.$tabs.find('.tabs-container .tabs-menu li a').first());\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tself.scrollToTabs = function () {\r\n\t\t\tif (!self.common.framework.checks.isElementInViewport($('.tabs-container'), $('.tabs-container').height())) {\r\n\t\t\t\t$.scrollTo($('#erv-body'), 200, { offset: $('header').height() });\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\tself.setupTabs = function ($tabs) {\r\n\t\t\tvar $tabContents = $tabs.find('.tab-content');\r\n\t\t\t$tabContents.each(function () {\r\n\t\t\t\tvar $content = $(this);\r\n\r\n\t\t\t\t$content.addClass('hide');\r\n\t\t\t\t$content.removeAttr('id');\r\n\r\n\t\t\t\t$content.find('[href^=\"#tab-\"]').each(function (e) {\r\n\t\t\t\t\tvar $link = $(this);\r\n\r\n\t\t\t\t\t$link.on('click', function (e) {\r\n\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\tself.setActiveTabAndContent($tabs, $tabs.find('.tabs-menu a[href=\"' + $link.attr('href') + '\"]'));\r\n\t\t\t\t\t\tself.scrollToTabs('link');\r\n\t\t\t\t\t})\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t};\r\n\t}\r\n\r\n\tTabs.prototype.init = function () {\r\n\t\tvar self = this;\r\n\r\n\t\tself.initTabsEventHandlers();\r\n\t\tself.setupHash();\r\n\t};\r\n\r\n\treturn Tabs;\r\n});","define(['jquery', 'forms', 'pricehelper'], function ($, Forms, ERVPriceHelper) {\r\n\tvar TechEquip = function() {\r\n\t\tvar self = this;\r\n\r\n\t\tself.forms = new Forms();\r\n\t\tself.$ervBody = $('#erv-body');\r\n\t\tself.$form = $('.techequippage form[data-js-mainform]');\r\n\t\tself.priceHelper = new ERVPriceHelper();\r\n\t\tself.$summaryInsuredTotal = self.$ervBody.find('.summary-insuredtotal');\r\n\t\tself.$summaryPremie = self.$ervBody.find('.summary-premie');\r\n\t\tself.$summaryTax = self.$ervBody.find('.summary-tax');\r\n\t\tself.$summaryTotal = self.$ervBody.find('.summary-totalprice');\r\n\r\n\t\tself.deleteEquipment = function($equip) {\r\n\t\t\tvar deletedIndex = $equip.data('id');\r\n\t\t\t$equip.remove();\r\n\t\t\tself.refreshEquipment(deletedIndex);\r\n\t\t\tself.refreshPrice();\r\n\t\t\treturn deletedIndex;\r\n\t\t};\r\n\r\n\t\tself.getTotalInsuredPrice = function () {\r\n\t\t\tvar $valueContainer = self.$ervBody.find('input:text[data-pricecalctrigger]');\r\n\t\t\tvar value = 0;\r\n\r\n\t\t\t$valueContainer.each(function () {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tvalue += Number($(this).val());\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t}\r\n\t\t\t});\r\n\r\n\t\t\treturn value;\r\n\t\t}\r\n\t\t\r\n\t\tself.refreshPrice = function() {\r\n\t\t\tvar $dataHolder = self.$ervBody.find('.equipment-summary'),\r\n\t\t\t\ttotalInsuredPrice = self.getTotalInsuredPrice(),\r\n\t\t\t\ttotalCostFactor = Number($dataHolder.data('selectedpaymenttype') + Number($dataHolder.data('selectedpremieaddon'))),\r\n\t\t\t\ttax = Number($dataHolder.data('tax')),\r\n\t\t\t\tpremie = $dataHolder.data('premie'),\r\n\t\t\t\ttotalPremie = totalInsuredPrice * totalCostFactor;\r\n\r\n\t\t\tif (totalInsuredPrice === 0 && self.$summaryInsuredTotal.text() === '0,00') {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (totalInsuredPrice === 0) {\r\n\t\t\t\tself.$summaryPremie.text(self.priceHelper.formatPrice(0));\r\n\t\t\t\tself.$summaryInsuredTotal.text(self.priceHelper.formatPrice(0));\r\n\t\t\t\tself.$summaryTax.text(self.priceHelper.formatPrice(0));\r\n\t\t\t\tself.$summaryTotal.text(self.priceHelper.formatPrice(0));\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\ttotalPremie = totalPremie * Number($dataHolder.data('selectedpremiecover'));\r\n\r\n\t\t\tif (totalPremie > premie) {\r\n\t\t\t\tself.$summaryPremie.text(self.priceHelper.formatPrice(totalPremie));\r\n\t\t\t} else {\r\n\t\t\t\ttotalPremie = premie;\r\n\t\t\t\tself.$summaryPremie.text(self.priceHelper.formatPrice(premie));\r\n\t\t\t}\r\n\r\n\t\t\tvar totalTax = totalPremie * tax,\r\n\t\t\t\ttotalCost = totalTax + totalPremie;\r\n\r\n\t\t\tself.$summaryInsuredTotal.text(self.priceHelper.formatPrice(totalInsuredPrice));\r\n\r\n\t\t\tself.$summaryTax.text(self.priceHelper.formatPrice(totalTax));\r\n\r\n\t\t\tself.$summaryTotal.text(self.priceHelper.formatPrice(totalCost));\r\n\t\t}\r\n\r\n\t\tself.initPrice = function () {\r\n\t\t\tvar $dataHolder = self.$ervBody.find('.equipment-summary');\r\n\r\n\t\t\t$dataHolder.data('selectedpaymenttype', Number($('input:radio[data-paymenttype]:checked').data('paymenttype')));\r\n\t\t\t$dataHolder.data('selectedpremiecover', Number($('input:radio[data-premiecover]:checked').data('premiecover')));\r\n\t\t\t$dataHolder.data('selectedpremieaddon', Number($('input:radio[data-premieaddon]:checked').data('premieaddon')));\r\n\t\t\t$dataHolder.data('premie', 1000);\r\n\r\n\t\t\tself.refreshPrice();\r\n\t\t}\r\n\r\n\t\tself.refreshEquipment = function (deletedIndex) {\r\n\t\t\tvar $allAdded = self.$equipList.find('.equipment.added');\r\n\t\t\tvar $allNext = $allAdded.filter(function () {\r\n\t\t\t\treturn ($(this).data('id') > deletedIndex); \r\n\t\t\t});\r\n\r\n\t\t\t$allNext.each(function () {\r\n\t\t\t\tvar $equip = $(this);\r\n\t\t\t\tvar index = $equip.data('id'),\r\n\t\t\t\t\tnewIndex = (index - 1);\r\n\r\n\t\t\t\t$equip.find('.index').text(index);\r\n\t\t\t\t$equip.data('id', newIndex);\r\n\r\n\t\t\t\t$equip.find('input[type=text], input[data-inputtype=\"text\"]').each(function () {\r\n\t\t\t\t\tvar $input = $(this);\r\n\t\t\t\t\t$input.attr('name', $input.attr('name').replace(index, newIndex));\r\n\t\t\t\t\t$input.attr('id', $input.attr('id').replace(index, newIndex));\r\n\t\t\t\t});\r\n\r\n\t\t\t\t$equip.find('label').each(function () {\r\n\t\t\t\t\tvar $label = $(this);\r\n\t\t\t\t\t$label.attr('for', $label.attr('for').replace(index, newIndex));\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t};\r\n\t\t\r\n\t\tself.addEquipment = function () {\r\n\t\t\tvar currentIndex = self.$equipList.find('.added').length,\r\n\t\t\t\thtml = self.$equipTemplate.html().replace(/{{index}}/g, currentIndex);\r\n\r\n\t\t\tvar $html = $(html);\r\n\t\t\t$html.find('.index').text(currentIndex + 1);\r\n\t\t\t$html.insertBefore($(self.$equipList.find('li').last()));\r\n\r\n\t\t\tvar $input = $html.find('input[id$=\"Sum\"]');\r\n\r\n\t\t\t$input.rules('add',\r\n\t\t\t{\r\n\t\t\t\trequired: true\r\n\t\t\t});\r\n\r\n\t\t\t$input.on('blur', function () {\r\n\t\t\t\t$(this).valid();\r\n\t\t\t});\r\n\r\n\t\t\t$html.find('[data-pricecalctrigger]').on('keyup', function () {\r\n\t\t\t\tself.$ervBody.find('[data-totalinsuredprice]').data('totalinsuredprice', self.getTotalInsuredPrice());\r\n\t\t\t\tself.refreshPrice();\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tself.setupEventHandling = function() {\r\n\t\t\tself.$equipTemplate = self.$ervBody.find('#equipment-template');\r\n\t\t\tself.$equipList = self.$form.find('.equipment-list ul');\r\n\t\t\t\r\n\t\t\tself.$form.find('#add-equipment').on('click', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tself.addEquipment();\r\n\t\t\t});\r\n\r\n\t\t\tself.$equipList.on('click', '.equipment.added .remove-equipment', function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tself.deleteEquipment($(this).parents('.equipment.added'));\r\n\t\t\t});\r\n\r\n\t\t\tself.$ervBody.find('[data-pricecalctrigger]').each(function() {\r\n\t\t\t\tvar $trigger = $(this),\r\n\t\t\t\t\twhatToUpdate = $trigger.data('pricecalctrigger'),\r\n\t\t\t\t\tvalue = $trigger.data(whatToUpdate);\r\n\r\n\t\t\t\t$trigger.on('change', function() {\r\n\t\t\t\t\tvar $valueContainer = self.$ervBody.find('[data-selected' + whatToUpdate + ']');\r\n\t\t\t\t\t$valueContainer.data('selected' + whatToUpdate, value);\r\n\t\t\t\t\tself.refreshPrice();\r\n\t\t\t\t});\r\n\r\n\t\t\t\t$trigger.on('keyup', function () {\r\n\t\t\t\t\tself.$ervBody.find('[data-totalinsuredprice]').data('totalinsuredprice', self.getTotalInsuredPrice());\r\n\t\t\t\t\tself.refreshPrice();\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t};\r\n\t};\r\n\r\n\tTechEquip.prototype.init = function () {\r\n\t\tvar self = this;\r\n\t\tself.setupEventHandling();\r\n\r\n\t\tself.initPrice();\r\n\r\n\t\tvar $button = self.$ervBody.find('.next-step');\r\n\t\t$button.on('click', function (e) {\r\n\t\t\tif (!$button.parents('form').valid()) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\te.stopPropagation();\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n\r\n\treturn TechEquip;\r\n});","define(['jquery', 'erv_framework', 'booking_rules'], function ($, ERVFramework, ERVBookingRules) {\r\n\tvar WarList = function () {\r\n\t\tvar self = this;\r\n\t\tself.$ervBody = $('#erv-body');\r\n\t\tself.framework = new ERVFramework();\r\n\t\tself.bookingRules = new ERVBookingRules();\r\n\r\n\t\tself.warlistRules = function () {\r\n\t\t\tvar isCorp = self.$ervBody.find('#IsCorporate').val() == \"True\";\r\n\t\t\tif (!isCorp) {\r\n\t\t\t\tself.$ervBody.find('[data-js=continuetrigger], .btn.magnific-popup').each(function () {\r\n\t\t\t\t\t$(this).prop('disabled', false);\r\n\t\t\t\t\t$(this).removeClass('is-inactive');\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tvar warriskCountries = '';\r\n\t\t\tself.$ervBody.find('.destination input[name=\"Countries\"]').each(function () {\r\n\t\t\t\twarriskCountries += 'Countries=' + $(this).val() + '&';\r\n\t\t\t});\r\n\r\n\t\t\tif (warriskCountries.length && !isCorp) {\r\n\t\t\t\t$.ajax({ type: 'post', url: '/booking/warrisk-consent', data: warriskCountries.substring(0, warriskCountries.length - 1) });\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tself.applyRules = function () {\r\n\t\t\tif (self.$ervBody.find('#IsCorporate').val() == \"False\") {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tself.$ervBody.find('[data-js=continuetrigger], .btn.magnific-popup').each(function () {\r\n\t\t\t\t$(this).prop('disabled', true);\r\n\t\t\t\t$(this).addClass('is-inactive');\r\n\t\t\t\t$(this).on('click', function (e) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t});\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tWarList.prototype.init = function () {\r\n\t\tvar self = this;\r\n\r\n\t\tif (self.$ervBody.find('#SearchHasWarCountries').length > 0 && self.$ervBody.find('#SearchHasWarCountries').val() === 'True') {\r\n\t\t\tsetTimeout(function () {\r\n\t\t\t\tself.framework.popup.openPopup(\r\n\t\t\t\t\t'#warlist-warning',\r\n\t\t\t\t\t{\r\n\t\t\t\t\t\telementParse: function (item) {\r\n\t\t\t\t\t\t\t$(item.src).removeClass('hide');\r\n\t\t\t\t\t\t\t$(item.src).find('[data-js=\"warlistok\"]').on('click', function (e) {\r\n\t\t\t\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\t\t\t\t$.magnificPopup.close();\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tbeforeClose: function () {\r\n\t\t\t\t\t\t\tself.warlistRules();\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\tafterClose: function () {\r\n\t\t\t\t\t\t\tif (self.$ervBody.find('.bookingselectproductpage').length) {\r\n\t\t\t\t\t\t\t\tself.bookingRules.initHomeInsurance();\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\ttrue, false\r\n\t\t\t\t);\r\n\r\n\t\t\t}, 2);\r\n\r\n\t\t\t$(document).on('products-loaded', function () {\r\n\t\t\t\tself.applyRules();\r\n\t\t\t});\r\n\t\t}\r\n\t};\r\n\r\n\treturn WarList;\r\n});","define(['jquery', 'forms', 'masking'], function ($, Forms, Masking) {\r\n\r\n\t\tvar YearlyProduct = function() {\r\n\t\t\tvar self = this;\r\n\r\n\t\t\tself.forms = new Forms();\r\n\t\t\tself.$ervBody = $('#erv-body');\r\n\r\n\t\t\tself.setCountryDayValidation = function($container) {\r\n\t\t\t\tvar isSet = false;\r\n\t\t\t\tvar $daysAreSet = $container.find('#Input_DaysAreSet');\r\n\r\n\t\t\t\t$container.find('.numbersonly').each(function() {\r\n\t\t\t\t\tif (Number($(this).val()) > 0) {\r\n\t\t\t\t\t\tisSet = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\t$daysAreSet.val(isSet);\r\n\t\t\t}\r\n\r\n\t\t\tself.initAtLeastOneCountryDaySet = function() {\r\n\t\t\t\tvar $daysAreSet = self.$ervBody.find('#Input_DaysAreSet'),\r\n\t\t\t\t\t$container = $daysAreSet.parent();\r\n\r\n\t\t\t\t$container.on('input propertychange paste',\r\n\t\t\t\t\t'.numbersonly',\r\n\t\t\t\t\tfunction() {\r\n\t\t\t\t\t\tself.setCountryDayValidation($container);\r\n\t\t\t\t\t});\r\n\t\t\t};\r\n\t\t\tself.$ervBody.find('[data-js = \"maskingCVRNumber\"]').on('input', function () {\r\n\t\t\t\tMasking.MaskingCVRNumber(this, document.documentElement.getAttribute('data-domain'));\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\tYearlyProduct.prototype.init = function() {\r\n\t\t\tvar self = this;\r\n\t\t\tself.initAtLeastOneCountryDaySet();\r\n\r\n\t\t\tvar $button = self.$ervBody.find('.next-step');\r\n\t\t\t$button.on('click', function (e) {\r\n\t\t\t\tif (!$button.parents('form').valid()) {\r\n\t\t\t\t\te.preventDefault();\r\n\t\t\t\t\te.stopPropagation();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t\r\n\r\n\treturn YearlyProduct;\r\n});","/**\r\n * jQuery Grid-A-Licious(tm) v3.01\r\n * forked 2012-10-24 by Matthew Campagna v3.01.4\r\n *\r\n * Terms of Use - jQuery Grid-A-Licious(tm)\r\n * under the MIT (http://www.opensource.org/licenses/mit-license.php) License.\r\n *\r\n * Copyright 2008-2012 Andreas Pihlström (Suprb). All rights reserved.\r\n * (http://suprb.com/apps/gridalicious/)\r\n *\r\n */\r\n\r\n// Debouncing function from John Hann\r\n// http://unscriptable.com/index.php/2009/03/20/debouncing-javascript-methods/\r\n// Copy pasted from http://paulirish.com/2009/throttled-smartresize-jquery-event-handler/\r\n!function (t, i) { var e = function (t, i, e) { var s; return function () { function n() { e || t.apply(o, r), s = null } var o = this, r = arguments; s ? clearTimeout(s) : e && t.apply(o, r), s = setTimeout(n, i || 150) } }; jQuery.fn[i] = function (t) { return t ? this.bind(\"resize\", e(t)) : this.trigger(i) } }(jQuery, \"smartresize\"), function (t) { t.Gal = function (i, e) { this.element = t(e), this._init(i) }, t.Gal.settings = { selector: \".item\", getCSSWidth: !1, clearfix: !1, width: 225, gutter: 20, animate: !1, animationOptions: { speed: 200, duration: 300, effect: \"fadeInOnAppear\", queue: !0, complete: function () { } } }, t.Gal.prototype = { _init: function (i) { var e = this; this.name = this._setName(5), this.gridArr = [], this.gridArrAppend = [], this.gridArrPrepend = [], this.setArr = !1, this.setGrid = !1, this.setOptions, this.cols = 0, this.itemCount = 0, this.prependCount = 0, this.isPrepending = !1, this.appendCount = 0, this.resetCount = !0, this.ifCallback = !0, this.box = this.element, this.options = t.extend(!0, {}, t.Gal.settings, i), this.gridArr = t.makeArray(this.box.find(this.options.selector)), this.isResizing = !1, this.w = 0, this.boxArr = [], this._setCols(), this._renderGrid(\"append\"), t(this.box).addClass(\"gridalicious\"), t(window).smartresize(function () { e.resize() }) }, _setName: function (t, i) { return i = i ? i : \"\", t ? this._setName(--t, \"0123456789ABCDEFGHIJKLMNOPQRSTUVWXTZabcdefghiklmnopqrstuvwxyz\".charAt(Math.floor(60 * Math.random())) + i) : i }, _setCols: function () { this.options.getCSSWidth ? itemWidth = t(this.options.selector).outerWidth(!0) : itemWidth = this.options.width, this.cols = Math.floor(this.box.width() / itemWidth), diff = (this.box.width() - this.cols * itemWidth - this.options.gutter) / this.cols, w = (itemWidth + diff) / this.box.width() * 100, this.w = w, this.options.getCSSWidth ? (gutter = diff, gutterRight = 0, gutterLeft = Math.floor(diff / 2)) : (gutter = this.options.gutter, gutterRight = this.options.gutter / 2, gutterLeft = this.options.gutter / 2); for (var i = 0; i < this.cols; i++) { var e = t(\"
    \").addClass(\"galcolumn\").attr(\"id\", \"item\" + i + this.name).css({ width: w + \"%\", paddingRight: gutterRight, paddingLeft: gutterLeft, paddingBottom: gutter, \"float\": \"left\", \"-webkit-box-sizing\": \"border-box\", \"-moz-box-sizing\": \"border-box\", \"-o-box-sizing\": \"border-box\", \"box-sizing\": \"border-box\" }); this.box.append(e) } if (this.options.getCSSWidth ? t(\"#item0\" + this.name).css(\"margin-left\", Math.floor(this.box.width() - t(\".galcolumn\").outerWidth() * this.cols) / 2 + \"px\") : (t(\"#item0\" + this.name).css(\"margin-left\", Math.floor(this.box.width() - t(\".galcolumn\").outerWidth() * this.cols) / 2 + \"px\"), t(this.options.selector).css({ padding: 0, width: \"auto\" })), !this.options.clearfix) { this.box.find(t(\"#clear\" + this.name)).remove(); var s = t(\"
    \").css({ clear: \"both\", height: \"0\", width: \"0\", display: \"block\" }).attr(\"id\", \"clear\" + this.name); this.box.append(s) } }, _renderGrid: function (i, e, s, n) { var o = [], r = [], h = 0, a = (this.prependCount, this.appendCount), d = this.cols, p = this.name; t(\".galcolumn\").width(); e ? (r = e, \"append\" == i && (a += s, h = this.appendCount), \"prepend\" == i && (this.isPrepending = !0, h = Math.round(s % d), 0 >= h && (h = d)), \"renderAfterPrepend\" == i && (a += s, h = s)) : (r = this.gridArr, a = t(this.gridArr).size()), t.each(r, function (e, s) { var n = t(s), r = \"100%\"; n.hasClass(\"not-responsive\") && (r = \"auto\"), n.css({ marginBottom: gutter, zoom: \"1\", filter: \"alpha(opacity=0)\", opacity: \"0\" }).find(\"img, object, embed, iframe\").css({ width: r, height: \"auto\", display: \"block\", \"margin-left\": \"auto\", \"margin-right\": \"auto\" }), \"prepend\" == i ? (h--, t(\"#item\" + h + p).prepend(n), o.push(n), 0 == h && (h = d)) : (t(\"#item\" + h + p).append(n), o.push(n), h++, h >= d && (h = 0), a >= d && (a -= d)) }), this.appendCount = a, this.itemCount = h, \"append\" == i || \"prepend\" == i ? (\"prepend\" == i && this._updateAfterPrepend(this.gridArr, r), this._renderItem(o), this.isPrepending = !1) : this._renderItem(this.gridArr) }, _collectItems: function () { var i = []; return t(this.box).find(this.options.selector).each(function (e) { i.push(t(this)) }), i }, _renderItem: function (i) { var e = this.options.animationOptions.speed, s = this.options.animationOptions.effect, n = this.options.animationOptions.duration, o = this.options.animationOptions.queue, r = this.options.animate, h = this.options.animationOptions.complete, a = 0, d = 0; r !== !0 || this.isResizing ? (t.each(i, function (i, e) { t(e).css({ opacity: \"1\", filter: \"alpha(opacity=1)\" }) }), this.ifCallback && h.call(i)) : (o === !0 && \"fadeInOnAppear\" == s ? (this.isPrepending && i.reverse(), t.each(i, function (s, o) { setTimeout(function () { t(o).animate({ opacity: \"1.0\" }, n), d++, d == i.length && h.call(void 0, i) }, a * e), a++ })) : o === !1 && \"fadeInOnAppear\" == s && (this.isPrepending && i.reverse(), t.each(i, function (e, s) { t(s).animate({ opacity: \"1.0\" }, n), d++, d == i.length && this.ifCallback && h.call(void 0, i) })), o !== !0 || s || t.each(i, function (e, s) { t(s).css({ opacity: \"1\", filter: \"alpha(opacity=1)\" }), d++, d == i.length && this.ifCallback && h.call(void 0, i) })) }, _updateAfterPrepend: function (i, e) { var s = this.gridArr; t.each(e, function (t, i) { s.unshift(i) }), this.gridArr = s }, resize: function () { this.box.find(t(this.options.selector)).unwrap(), this.box.find(t(\".galcolumn\")).remove(), this._setCols(), this.ifCallback = !1, this.isResizing = !0, this._renderGrid(\"append\"), this.ifCallback = !0, this.isResizing = !1 }, append: function (i) { var e = this.gridArr, s = this.gridArrPrepend; t.each(i, function (t, i) { e.push(i), s.push(i) }), this._renderGrid(\"append\", i, t(i).size()) }, prepend: function (i) { this.ifCallback = !1, this._renderGrid(\"prepend\", i, t(i).size()), this.ifCallback = !0 } }, t.fn.gridalicious = function (i, e) { return \"string\" == typeof i ? this.each(function () { var s = t.data(this, \"gridalicious\"); s[i].apply(s, [e]) }) : this.each(function () { t.data(this, \"gridalicious\", new t.Gal(i, this)) }), this } }(jQuery);","(function () {\r\n if (typeof Promise.withResolvers !== 'function') {\r\n Promise.withResolvers = function () {\r\n let resolve, reject;\r\n let promise = new Promise((res, rej) => {\r\n resolve = res;\r\n reject = rej;\r\n });\r\n return { promise, resolve, reject };\r\n };\r\n }\r\n}());","(function (root, factory) { if (typeof define === \"function\" && define.amd) { define([], function () { return root.Swipe = factory() }) } else if (typeof module === \"object\" && module.exports) { module.exports = factory() } else { root.Swipe = factory() } })(this, function () { var root = typeof self == \"object\" && self.self === self && self || typeof global == \"object\" && global.global === global && global || this; var _document = root.document; function Swipe(container, options) { \"use strict\"; options = options || {}; var start = {}; var delta = {}; var isScrolling; var delay = options.auto || 0; var interval; var disabled = false; var noop = function () { }; var offloadFn = function (fn) { setTimeout(fn || noop, 0) }; var throttle = function (fn, threshhold) { threshhold = threshhold || 100; var timeout = null; function cancel() { if (timeout) clearTimeout(timeout) } function throttledFn() { var context = this; var args = arguments; cancel(); timeout = setTimeout(function () { timeout = null; fn.apply(context, args) }, threshhold) } throttledFn.cancel = cancel; return throttledFn }; var isCancelable = function (event) { if (!event) return false; return typeof event.cancelable !== \"boolean\" || event.cancelable }; if (!Element.prototype.matches) { Element.prototype.matches = Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector || function (s) { var matches = (this.document || this.ownerDocument).querySelectorAll(s), i = matches.length; while (--i >= 0 && matches.item(i) !== this); return i > -1 } } var browser = { addEventListener: !!root.addEventListener, passiveEvents: function () { var supportsPassive = false; try { var opts = Object.defineProperty({}, \"passive\", { get: function () { supportsPassive = true } }); root.addEventListener(\"testEvent\", null, opts); root.removeEventListener(\"testEvent\", null, opts) } catch (e) { supportsPassive = false } return supportsPassive }(), touch: \"ontouchstart\" in root || root.DocumentTouch && _document instanceof DocumentTouch, transitions: function (temp) { var props = [\"transitionProperty\", \"WebkitTransition\", \"MozTransition\", \"OTransition\", \"msTransition\"]; for (var i in props) { if (temp.style[props[i]] !== undefined) { return true } } return false }(_document.createElement(\"swipe\")) }; if (!container) return; var element = container.children[0]; var slides, slidePos, width, length, partialPos, containerWidth; var index = parseInt(options.startSlide, 10) || 0; var speed = options.speed || 300; options.continuous = options.continuous !== undefined ? options.continuous : true; var slideDir = function (el, prop, dir) { if (el.currentStyle) { dir = el.currentStyle[prop] } else if (root.getComputedStyle) { dir = root.getComputedStyle(el, null).getPropertyValue(prop) } return \"rtl\" === dir ? \"right\" : \"left\" }(container, \"direction\"); options.autoRestart = options.autoRestart !== undefined ? options.autoRestart : false; options.partial = options.partial !== undefined ? options.partial : false; var throttledSetup = throttle(setup); var events = { handleEvent: function (event) { if (disabled) return; switch (event.type) { case \"mousedown\": case \"touchstart\": this.start(event); break; case \"mousemove\": case \"touchmove\": this.move(event); break; case \"mouseup\": case \"mouseleave\": case \"touchend\": this.end(event); break; case \"webkitTransitionEnd\": case \"msTransitionEnd\": case \"oTransitionEnd\": case \"otransitionend\": case \"transitionend\": this.transitionEnd(event); break; case \"resize\": throttledSetup(); break }if (options.stopPropagation) { event.stopPropagation() } }, start: function (event) { var touches; if (isMouseEvent(event)) { touches = event; event.preventDefault() } else { touches = event.touches[0] } if (options.ignore && touches.target.matches(options.ignore)) { return } start = { x: touches.pageX, y: touches.pageY, time: +new Date }; isScrolling = undefined; delta = {}; if (isMouseEvent(event)) { element.addEventListener(\"mousemove\", this, false); element.addEventListener(\"mouseup\", this, false); element.addEventListener(\"mouseleave\", this, false) } else { element.addEventListener(\"touchmove\", this, browser.passiveEvents ? { passive: false } : false); element.addEventListener(\"touchend\", this, false) } runDragStart(getPos(), slides[index]) }, move: function (event) { var touches; if (isMouseEvent(event)) { touches = event } else { if (event.touches.length > 1 || event.scale && event.scale !== 1) { return } if (options.disableScroll && isCancelable(event)) { event.preventDefault() } touches = event.touches[0] } delta = { x: touches.pageX - start.x, y: touches.pageY - start.y }; if (typeof isScrolling === \"undefined\") { isScrolling = !!(isScrolling || Math.abs(delta.x) < Math.abs(delta.y)) } if (!isScrolling) { if (isCancelable(event)) { event.preventDefault() } stop(); if (options.continuous) { translate(circle(index - 1), delta.x + slidePos[circle(index - 1)], 0); translate(index, delta.x + slidePos[index], 0); translate(circle(index + 1), delta.x + slidePos[circle(index + 1)], 0) } else { delta.x = delta.x / (!index && delta.x > 0 || index === slides.length - 1 && delta.x < 0 ? Math.abs(delta.x) / width + 1 : 1); translate(index - 1, delta.x + slidePos[index - 1], 0); translate(index, delta.x + slidePos[index], 0); translate(index + 1, delta.x + slidePos[index + 1], 0) } } }, end: function (event) { var duration = +new Date - start.time; var isValidSlide = Number(duration) < 250 && Math.abs(delta.x) > 20 || Math.abs(delta.x) > width / 2; var isPastBounds = !index && delta.x > 0 || index === slides.length - 1 && delta.x < 0; if (options.continuous) { isPastBounds = false } var direction = Math.abs(delta.x) / delta.x; if (!isScrolling) { if (isValidSlide && !isPastBounds) { if (direction < 0) { if (options.continuous) { move(circle(index - 1), -width, 0); move(circle(index + 2), width, 0) } else { move(index - 1, -width, 0) } if (options.partial) { move(circle(index - 1), slides.length > 4 ? -partialPos.hidden : partialPos.hidden, 0); move(circle(index - 2), partialPos.hidden, 0); move(circle(index + 2), slides.length > 3 ? partialPos.hidden : -partialPos.hidden, 0); move(index, partialPos.prev, speed); move(circle(index + 1), partialPos.middle, speed); move(circle(index + 2), partialPos.next, slides.length > 3 ? speed : 0) } else { move(index, slidePos[index] - width, speed); move(circle(index + 1), slidePos[circle(index + 1)] - width, speed) } index = circle(index + 1) } else { if (options.continuous) { move(circle(index + 1), width, 0); move(circle(index - 2), -width, 0) } else { move(index + 1, width, 0) } if (options.partial) { move(circle(index + 1), slides.length > 4 ? partialPos.hidden : -partialPos.hidden, 0); move(circle(index - 2), slides.length > 3 ? -partialPos.hidden : partialPos.hidden, 0); move(circle(index - 3), -partialPos.hidden, 0); move(index, partialPos.next, speed); move(circle(index - 2), partialPos.prev, slides.length > 3 ? speed : 0); move(circle(index - 1), partialPos.middle, speed) } else { move(index, slidePos[index] + width, speed); move(circle(index - 1), slidePos[circle(index - 1)] + width, speed) } index = circle(index - 1) } runCallback(getPos(), slides[index], direction) } else { if (options.partial) { move(circle(index - 1), partialPos.prev, speed); move(index, partialPos.middle, speed); move(circle(index + 1), partialPos.next, speed) } else if (options.continuous) { move(circle(index - 1), -width, speed); move(index, 0, speed); move(circle(index + 1), width, speed) } else { move(index - 1, -width, speed); move(index, 0, speed); move(index + 1, width, speed) } } } if (isMouseEvent(event)) { element.removeEventListener(\"mousemove\", events, false); element.removeEventListener(\"mouseup\", events, false); element.removeEventListener(\"mouseleave\", events, false) } else { element.removeEventListener(\"touchmove\", events, browser.passiveEvents ? { passive: false } : false); element.removeEventListener(\"touchend\", events, false) } runDragEnd(getPos(), slides[index]) }, transitionEnd: function (event) { var currentIndex = parseInt(event.target.getAttribute(\"data-index\"), 10); if (currentIndex === index) { if (delay || options.autoRestart) restart(); runTransitionEnd(getPos(), slides[index]) } } }; setup(); begin(); return { setup: setup, slide: function (to, speed) { stop(); slide(to, speed) }, prev: function () { stop(); prev() }, next: function () { stop(); next() }, restart: restart, stop: stop, getPos: getPos, disable: disable, enable: enable, getNumSlides: function () { return length }, kill: kill }; function detachEvents() { if (browser.addEventListener) { element.removeEventListener(\"touchstart\", events, browser.passiveEvents ? { passive: true } : false); element.removeEventListener(\"mousedown\", events, false); element.removeEventListener(\"webkitTransitionEnd\", events, false); element.removeEventListener(\"msTransitionEnd\", events, false); element.removeEventListener(\"oTransitionEnd\", events, false); element.removeEventListener(\"otransitionend\", events, false); element.removeEventListener(\"transitionend\", events, false); root.removeEventListener(\"resize\", events, false) } else { root.onresize = null } } function attachEvents() { if (browser.addEventListener) { if (browser.touch) { element.addEventListener(\"touchstart\", events, browser.passiveEvents ? { passive: true } : false) } if (options.draggable) { element.addEventListener(\"mousedown\", events, false) } if (browser.transitions) { element.addEventListener(\"webkitTransitionEnd\", events, false); element.addEventListener(\"msTransitionEnd\", events, false); element.addEventListener(\"oTransitionEnd\", events, false); element.addEventListener(\"otransitionend\", events, false); element.addEventListener(\"transitionend\", events, false) } root.addEventListener(\"resize\", events, false) } else { root.onresize = throttledSetup } } function cloneNode(el) { var clone = el.cloneNode(true); element.appendChild(clone); clone.setAttribute(\"data-cloned\", true); clone.removeAttribute(\"id\") } function setup(opts) { if (opts != null) { for (var prop in opts) { options[prop] = opts[prop] } } slides = element.children; length = slides.length; for (var i = 0; i < slides.length; i++) { if (slides[i].getAttribute(\"data-cloned\")) length-- } if (slides.length < 2) { options.continuous = false } if (browser.transitions && options.continuous && slides.length < 3) { cloneNode(slides[0]); cloneNode(slides[1]); slides = element.children } if (\"right\" === slideDir) { for (var j = 0; j < slides.length; j++) { slides[j].style[\"float\"] = \"right\" } } slidePos = new Array(slides.length); if (length < 3) { options.partial = false } var percentage = .8; containerWidth = container.getBoundingClientRect().width || container.offsetWidth; width = options.partial ? containerWidth * percentage : containerWidth; element.style.width = slides.length * width + \"px\"; partialPos = { hidden: containerWidth, prev: -width * percentage, middle: width * ((1 - percentage) / 2), next: width }; var pos = slides.length; while (pos--) { var slide = slides[pos]; slide.style.width = width + \"px\"; slide.setAttribute(\"data-index\", pos); if (browser.transitions) { slide.style[slideDir] = pos * -width + \"px\"; if (options.partial) { move(pos, partialPos.hidden, 0) } else { move(pos, index > pos ? -width : index < pos ? width : 0, 0) } } } if (options.continuous && browser.transitions) { move(circle(index - 1), -width, 0); move(circle(index + 1), width, 0) } if (options.partial) { move(circle(index - 2), length > 4 ? -partialPos.hidden : partialPos.hidden, 0); move(circle(index - 1), partialPos.prev, 0); move(index, partialPos.middle, 0); move(circle(index + 1), partialPos.next, 0) } if (!browser.transitions) { element.style[slideDir] = index * -width + \"px\" } container.style.visibility = \"visible\"; detachEvents(); attachEvents() } function prev() { if (disabled) return; if (options.continuous) { slide(index - 1) } else if (index) { slide(index - 1) } } function next() { if (disabled) return; if (options.continuous) { slide(index + 1) } else if (index < slides.length - 1) { slide(index + 1) } } function runCallback(pos, index, dir) { if (options.callback) { options.callback(pos, index, dir) } } function runTransitionEnd(pos, index) { if (options.transitionEnd) { options.transitionEnd(pos, index) } } function runDragStart(pos, index) { if (options.dragStart) { options.dragStart(pos, index) } } function runDragEnd(pos, index) { if (options.dragEnd) { options.dragEnd(pos, index) } } function circle(index) { return (slides.length + index % slides.length) % slides.length } function getPos() { var currentIndex = index; if (currentIndex >= length) { currentIndex = currentIndex - length } return currentIndex } function slide(to, slideSpeed) { to = typeof to !== \"number\" ? parseInt(to, 10) : to; if (index === to) return; if (browser.transitions) { var direction = Math.abs(index - to) / (index - to); if (options.continuous) { var natural_direction = direction; direction = -slidePos[circle(to)] / width; if (direction !== natural_direction && !options.partial) { to = -direction * slides.length + to } } if (!options.partial) { var diff = Math.abs(index - to) - 1; while (diff--) { move(circle((to > index ? to : index) - diff - 1), width * direction, 0) } } to = circle(to); if (options.partial) { if (direction === -1) { move(circle(index - 1), slides.length > 4 ? -partialPos.hidden : partialPos.hidden, 0); if (length > 3) { move(circle(index - 2), partialPos.hidden, 0); move(circle(index + 2), partialPos.hidden, 0) } move(index, partialPos.prev, slideSpeed || speed); move(to, partialPos.middle, slideSpeed || speed); move(circle(index + 2), partialPos.next, length > 4 ? slideSpeed || speed : 0) } else { move(circle(index + 1), slides.length > 4 ? partialPos.hidden : -partialPos.hidden, 0); if (length > 3) { move(circle(index - 2), -partialPos.hidden, 0); move(circle(index - 3), -partialPos.hidden, 0) } move(index, partialPos.next, slideSpeed || speed); move(to, partialPos.middle, slideSpeed || speed); move(circle(to - 1), partialPos.prev, length > 4 ? slideSpeed || speed : 0) } } else { move(index, width * direction, slideSpeed || speed); move(to, 0, slideSpeed || speed); if (options.continuous) { move(circle(to - direction), -(width * direction), 0) } move(index, width * direction, slideSpeed || speed); move(to, 0, slideSpeed || speed) } } else { to = circle(to); animate(index * -width, to * -width, slideSpeed || speed) } index = to; offloadFn(function () { runCallback(getPos(), slides[index], direction) }) } function move(index, dist, speed) { translate(index, dist, speed); slidePos[index] = dist } function translate(index, dist, speed) { var slide = slides[index]; var style = slide && slide.style; if (!style) return; style.webkitTransitionDuration = style.MozTransitionDuration = style.msTransitionDuration = style.OTransitionDuration = style.transitionDuration = speed + \"ms\"; style.webkitTransform = style.msTransform = style.MozTransform = style.OTransform = style.transform = \"translateX(\" + dist + \"px)\" } function animate(from, to, speed) { if (!speed) { element.style[slideDir] = to + \"px\"; return } var start = +new Date; var timer = setInterval(function () { var timeElap = +new Date - start; if (timeElap > speed) { element.style[slideDir] = to + \"px\"; if (delay || options.autoRestart) restart(); runTransitionEnd(getPos(), slides[index]); clearInterval(timer); return } element.style[slideDir] = (to - from) * (Math.floor(timeElap / speed * 100) / 100) + from + \"px\" }, 4) } function begin() { delay = options.auto || 0; if (delay) interval = setTimeout(next, delay) } function stop() { delay = 0; clearTimeout(interval) } function restart() { stop(); begin() } function disable() { stop(); disabled = true } function enable() { disabled = false; restart() } function isMouseEvent(e) { return /^mouse/.test(e.type) } function kill() { stop(); container.style.visibility = \"\"; element.style.width = \"\"; element.style[slideDir] = \"\"; var pos = slides.length; while (pos--) { if (browser.transitions) { translate(pos, 0, 0) } var slide = slides[pos]; if (slide.getAttribute(\"data-cloned\")) { var _parent = slide.parentElement; _parent.removeChild(slide) } slide.style.width = \"\"; slide.style[slideDir] = \"\"; slide.style.webkitTransitionDuration = slide.style.MozTransitionDuration = slide.style.msTransitionDuration = slide.style.OTransitionDuration = slide.style.transitionDuration = \"\"; slide.style.webkitTransform = slide.style.msTransform = slide.style.MozTransform = slide.style.OTransform = \"\" } detachEvents(); throttledSetup.cancel() } } if (root.jQuery || root.Zepto) { (function ($) { $.fn.Swipe = function (params) { return this.each(function () { $(this).data(\"Swipe\", new Swipe($(this)[0], params)) }) } })(root.jQuery || root.Zepto) } return Swipe });","/*!\r\n * accounting.js v0.4.2, copyright 2014 Open Exchange Rates, MIT license, http://openexchangerates.github.io/accounting.js\r\n */\r\n(function (p, z) { function q(a) { return !!(\"\" === a || a && a.charCodeAt && a.substr) } function m(a) { return u ? u(a) : \"[object Array]\" === v.call(a) } function r(a) { return \"[object Object]\" === v.call(a) } function s(a, b) { var d, a = a || {}, b = b || {}; for (d in b) b.hasOwnProperty(d) && null == a[d] && (a[d] = b[d]); return a } function j(a, b, d) { var c = [], e, h; if (!a) return c; if (w && a.map === w) return a.map(b, d); for (e = 0, h = a.length; e < h; e++) c[e] = b.call(d, a[e], e, a); return c } function n(a, b) { a = Math.round(Math.abs(a)); return isNaN(a) ? b : a } function x(a) { var b = c.settings.currency.format; \"function\" === typeof a && (a = a()); return q(a) && a.match(\"%v\") ? { pos: a, neg: a.replace(\"-\", \"\").replace(\"%v\", \"-%v\"), zero: a } : !a || !a.pos || !a.pos.match(\"%v\") ? !q(b) ? b : c.settings.currency.format = { pos: b, neg: b.replace(\"%v\", \"-%v\"), zero: b } : a } var c = { version: \"0.4.1\", settings: { currency: { symbol: \"$\", format: \"%s%v\", decimal: \".\", thousand: \",\", precision: 2, grouping: 3 }, number: { precision: 0, grouping: 3, thousand: \",\", decimal: \".\" } } }, w = Array.prototype.map, u = Array.isArray, v = Object.prototype.toString, o = c.unformat = c.parse = function (a, b) { if (m(a)) return j(a, function (a) { return o(a, b) }); a = a || 0; if (\"number\" === typeof a) return a; var b = b || \".\", c = RegExp(\"[^0-9-\" + b + \"]\", [\"g\"]), c = parseFloat((\"\" + a).replace(/\\((.*)\\)/, \"-$1\").replace(c, \"\").replace(b, \".\")); return !isNaN(c) ? c : 0 }, y = c.toFixed = function (a, b) { var b = n(b, c.settings.number.precision), d = Math.pow(10, b); return (Math.round(c.unformat(a) * d) / d).toFixed(b) }, t = c.formatNumber = c.format = function (a, b, d, i) { if (m(a)) return j(a, function (a) { return t(a, b, d, i) }); var a = o(a), e = s(r(b) ? b : { precision: b, thousand: d, decimal: i }, c.settings.number), h = n(e.precision), f = 0 > a ? \"-\" : \"\", g = parseInt(y(Math.abs(a || 0), h), 10) + \"\", l = 3 < g.length ? g.length % 3 : 0; return f + (l ? g.substr(0, l) + e.thousand : \"\") + g.substr(l).replace(/(\\d{3})(?=\\d)/g, \"$1\" + e.thousand) + (h ? e.decimal + y(Math.abs(a), h).split(\".\")[1] : \"\") }, A = c.formatMoney = function (a, b, d, i, e, h) { if (m(a)) return j(a, function (a) { return A(a, b, d, i, e, h) }); var a = o(a), f = s(r(b) ? b : { symbol: b, precision: d, thousand: i, decimal: e, format: h }, c.settings.currency), g = x(f.format); return (0 < a ? g.pos : 0 > a ? g.neg : g.zero).replace(\"%s\", f.symbol).replace(\"%v\", t(Math.abs(a), n(f.precision), f.thousand, f.decimal)) }; c.formatColumn = function (a, b, d, i, e, h) { if (!a) return []; var f = s(r(b) ? b : { symbol: b, precision: d, thousand: i, decimal: e, format: h }, c.settings.currency), g = x(f.format), l = g.pos.indexOf(\"%s\") < g.pos.indexOf(\"%v\") ? !0 : !1, k = 0, a = j(a, function (a) { if (m(a)) return c.formatColumn(a, f); a = o(a); a = (0 < a ? g.pos : 0 > a ? g.neg : g.zero).replace(\"%s\", f.symbol).replace(\"%v\", t(Math.abs(a), n(f.precision), f.thousand, f.decimal)); if (a.length > k) k = a.length; return a }); return j(a, function (a) { return q(a) && a.length < k ? l ? a.replace(f.symbol, f.symbol + Array(k - a.length + 1).join(\" \")) : Array(k - a.length + 1).join(\" \") + a : a }) }; if (\"undefined\" !== typeof exports) { if (\"undefined\" !== typeof module && module.exports) exports = module.exports = c; exports.accounting = c } else \"function\" === typeof define && define.amd ? define([], function () { return c }) : (c.noConflict = function (a) { return function () { p.accounting = a; c.noConflict = z; return c } }(p.accounting), p.accounting = c) })(this);","/*\r\n * Dirrty v0.2.0\r\n * lightweight jquery plugin to detect when the fields of a form are modified\r\n * (c)2014 Ruben Torres - rubentdlh@gmail.com\r\n * Released under the MIT license\r\n */\r\n\r\n//Save dirrty instances\r\nvar singleDs = [];\r\n\r\n(function ($) {\r\n\r\n\tfunction getSingleton(id) {\r\n\t\tvar result;\r\n\t\t$(singleDs).each(function () {\r\n\t\t\tif ($(this)[0].id == id) {\r\n\t\t\t\tresult = $(this)[0];\r\n\t\t\t}\r\n\t\t});\r\n\t\treturn result;\r\n\t}\r\n\r\n\tfunction Dirrty(form, options) {\r\n\t\tthis.form = form;\r\n\t\tthis.isDirty = false;\r\n\t\tthis.options = options;\r\n\t\tthis.history = [\"clean\", \"clean\"]; //Keep track of last statuses\r\n\t\tthis.id = $(form).attr(\"id\");\r\n\t\tsingleDs.push(this);\r\n\t}\r\n\r\n\tDirrty.prototype = {\r\n\r\n\t\tinit: function () {\r\n\t\t\tthis.saveInitialValues();\r\n\t\t\tthis.setEvents();\r\n\t\t},\r\n\r\n\t\tsaveInitialValues: function () {\r\n\t\t\tthis.form.find(\"input, select, textarea\").each(function () {\r\n\t\t\t\t$(this).attr(\"data-dirrty-initial-value\", $(this).val());\r\n\t\t\t});\r\n\r\n\t\t\tthis.form.find(\"input[type=checkbox], input[type=radio]\").each(function () {\r\n\t\t\t\tif ($(this).is(\":checked\")) {\r\n\t\t\t\t\t$(this).attr(\"data-dirrty-initial-value\", \"checked\");\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$(this).attr(\"data-dirrty-initial-value\", \"unchecked\");\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\tsetEvents: function () {\r\n\t\t\tvar d = this;\r\n\r\n\t\t\t$(document).ready(function () {\r\n\r\n\t\t\t\td.form.on('submit', function () {\r\n\t\t\t\t\td.submitting = true;\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (d.options.preventLeaving) {\r\n\t\t\t\t\t$(window).on('beforeunload', function () {\r\n\t\t\t\t\t\tif (d.isDirty && !d.submitting) {\r\n\t\t\t\t\t\t\treturn d.options.leavingMessage;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t\td.form.find(\"input, select\").change(function () {\r\n\t\t\t\t\td.checkValues();\r\n\t\t\t\t});\r\n\r\n\t\t\t\td.form.find(\"input, textarea\").on('keyup keydown blur', function () {\r\n\t\t\t\t\td.checkValues();\r\n\t\t\t\t});\r\n\r\n\t\t\t\t//fronteend's icheck support\r\n\t\t\t\td.form.find(\"input[type=radio], input[type=checkbox]\").on('ifChecked', function (event) {\r\n\t\t\t\t\td.checkValues();\r\n\t\t\t\t});\r\n\r\n\t\t\t});\r\n\t\t},\r\n\r\n\t\tcheckValues: function () {\r\n\t\t\tvar d = this;\r\n\t\t\tthis.form.find(\"input, select, textarea\").each(function () {\r\n\t\t\t\tvar initialValue = $(this).attr(\"data-dirrty-initial-value\");\r\n\t\t\t\tif ($(this).val() != initialValue) {\r\n\t\t\t\t\t$(this).attr(\"data-is-dirrty\", \"true\");\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$(this).attr(\"data-is-dirrty\", \"false\");\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tthis.form.find(\"input[type=checkbox], input[type=radio]\").each(function () {\r\n\t\t\t\tvar initialValue = $(this).attr(\"data-dirrty-initial-value\");\r\n\t\t\t\tif ($(this).is(\":checked\") && initialValue != \"checked\"\r\n \t\t\t\t\t|| !$(this).is(\":checked\") && initialValue == \"checked\") {\r\n\t\t\t\t\t$(this).attr(\"data-is-dirrty\", \"true\");\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$(this).attr(\"data-is-dirrty\", \"false\");\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tvar isDirty = false;\r\n\t\t\tthis.form.find(\"input, select, textarea\").each(function () {\r\n\t\t\t\tif ($(this).attr(\"data-is-dirrty\") == \"true\") {\r\n\t\t\t\t\tisDirty = true;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tif (isDirty) {\r\n\t\t\t\td.setDirty();\r\n\t\t\t} else {\r\n\t\t\t\td.setClean();\r\n\t\t\t}\r\n\r\n\t\t\td.fireEvents();\r\n\t\t},\r\n\r\n\t\tfireEvents: function () {\r\n\r\n\t\t\tif (this.isDirty && this.wasJustClean()) {\r\n\t\t\t\tthis.form.trigger(\"dirty\");\r\n\t\t\t}\r\n\r\n\t\t\tif (!this.isDirty && this.wasJustDirty()) {\r\n\t\t\t\tthis.form.trigger(\"clean\");\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tsetDirty: function () {\r\n\t\t\tthis.isDirty = true;\r\n\t\t\tthis.history[0] = this.history[1];\r\n\t\t\tthis.history[1] = \"dirty\";\r\n\t\t},\r\n\r\n\t\tsetClean: function () {\r\n\t\t\tthis.isDirty = false;\r\n\t\t\tthis.history[0] = this.history[1];\r\n\t\t\tthis.history[1] = \"clean\";\r\n\t\t},\r\n\r\n\t\t//Lets me know if the previous status of the form was dirty\r\n\t\twasJustDirty: function () {\r\n\t\t\treturn (this.history[0] == \"dirty\");\r\n\t\t},\r\n\r\n\t\t//Lets me know if the previous status of the form was clean\r\n\t\twasJustClean: function () {\r\n\t\t\treturn (this.history[0] == \"clean\");\r\n\t\t}\r\n\t}\r\n\r\n\t$.fn.dirrty = function (options) {\r\n\r\n\t\tif (/^(isDirty)$/i.test(options) || /^(setClean)$/i.test(options)) {\r\n\t\t\t//Check if we have an instance of dirrty for this form\r\n\t\t\tvar d = getSingleton($(this).attr(\"id\"));\r\n\r\n\t\t\tif (!d) {\r\n\t\t\t\tvar d = new Dirrty($(this), options);\r\n\t\t\t\td.init();\r\n\t\t\t}\r\n\t\t\tswitch (options) {\r\n\t\t\t\tcase 'isDirty':\r\n\t\t\t\t\treturn d.isDirty;\r\n\t\t\t\tcase 'setClean':\r\n\t\t\t\t\td.setClean();\r\n\t\t\t\t\treturn true;\r\n\t\t\t}\r\n\r\n\t\t} else if (typeof options == 'object' || !options) {\r\n\r\n\t\t\treturn this.each(function () {\r\n\t\t\t\toptions = $.extend({}, $.fn.dirrty.defaults, options);\r\n\t\t\t\tvar dirrty = new Dirrty($(this), options);\r\n\t\t\t\tdirrty.init();\r\n\t\t\t});\r\n\r\n\t\t}\r\n\r\n\t}\r\n\r\n\t$.fn.dirrty.defaults = {\r\n\t\tpreventLeaving: true,\r\n\t\tleavingMessage: \"You have unsaved changes\",\r\n\t\tonDirty: function () { }, //This function is fired when the form gets dirty\r\n\t\tonClean: function () { } //This funciton is fired when the form gets clean again\r\n\t};\r\n\r\n})(jQuery);","/*\r\n* jquery-match-height 0.7.2 by @liabru\r\n* http://brm.io/jquery-match-height/\r\n* License MIT\r\n*/\r\n!function (t) { \"use strict\"; \"function\" == typeof define && define.amd ? define([\"jquery\"], t) : \"undefined\" != typeof module && module.exports ? module.exports = t(require(\"jquery\")) : t(jQuery) }(function (t) {\r\n\tvar e = -1, o = -1, n = function (t) { return parseFloat(t) || 0 }, a = function (e) { var o = 1, a = t(e), i = null, r = []; return a.each(function () { var e = t(this), a = e.offset().top - n(e.css(\"margin-top\")), s = r.length > 0 ? r[r.length - 1] : null; null === s ? r.push(e) : Math.floor(Math.abs(i - a)) <= o ? r[r.length - 1] = s.add(e) : r.push(e), i = a }), r }, i = function (e) {\r\n\t\tvar o = {\r\n\t\t\tbyRow: !0, property: \"height\", target: null, remove: !1\r\n\t\t}; return \"object\" == typeof e ? t.extend(o, e) : (\"boolean\" == typeof e ? o.byRow = e : \"remove\" === e && (o.remove = !0), o)\r\n\t}, r = t.fn.matchHeight = function (e) { var o = i(e); if (o.remove) { var n = this; return this.css(o.property, \"\"), t.each(r._groups, function (t, e) { e.elements = e.elements.not(n) }), this } return this.length <= 1 && !o.target ? this : (r._groups.push({ elements: this, options: o }), r._apply(this, o), this) }; r.version = \"0.7.2\", r._groups = [], r._throttle = 80, r._maintainScroll = !1, r._beforeUpdate = null,\r\n\tr._afterUpdate = null, r._rows = a, r._parse = n, r._parseOptions = i, r._apply = function (e, o) {\r\n\t\tvar s = i(o), h = t(e), l = [h], c = t(window).scrollTop(), p = t(\"html\").outerHeight(!0), u = h.parents().filter(\":hidden\"); return u.each(function () { var e = t(this); e.data(\"style-cache\", e.attr(\"style\")) }), u.css(\"display\", \"block\"), s.byRow && !s.target && (h.each(function () {\r\n\t\t\tvar e = t(this), o = e.css(\"display\"); \"inline-block\" !== o && \"flex\" !== o && \"inline-flex\" !== o && (o = \"block\"), e.data(\"style-cache\", e.attr(\"style\")), e.css({\r\n\t\t\t\tdisplay: o, \"padding-top\": \"0\",\r\n\t\t\t\t\"padding-bottom\": \"0\", \"margin-top\": \"0\", \"margin-bottom\": \"0\", \"border-top-width\": \"0\", \"border-bottom-width\": \"0\", height: \"100px\", overflow: \"hidden\"\r\n\t\t\t})\r\n\t\t}), l = a(h), h.each(function () { var e = t(this); e.attr(\"style\", e.data(\"style-cache\") || \"\") })), t.each(l, function (e, o) {\r\n\t\t\tvar a = t(o), i = 0; if (s.target) i = s.target.outerHeight(!1); else {\r\n\t\t\t\tif (s.byRow && a.length <= 1) return void a.css(s.property, \"\"); a.each(function () {\r\n\t\t\t\t\tvar e = t(this), o = e.attr(\"style\"), n = e.css(\"display\"); \"inline-block\" !== n && \"flex\" !== n && \"inline-flex\" !== n && (n = \"block\"); var a = {\r\n\t\t\t\t\t\tdisplay: n\r\n\t\t\t\t\t}; a[s.property] = \"\", e.css(a), e.outerHeight(!1) > i && (i = e.outerHeight(!1)), o ? e.attr(\"style\", o) : e.css(\"display\", \"\")\r\n\t\t\t\t})\r\n\t\t\t} a.each(function () { var e = t(this), o = 0; s.target && e.is(s.target) || (\"border-box\" !== e.css(\"box-sizing\") && (o += n(e.css(\"border-top-width\")) + n(e.css(\"border-bottom-width\")), o += n(e.css(\"padding-top\")) + n(e.css(\"padding-bottom\"))), e.css(s.property, i - o + \"px\")) })\r\n\t\t}), u.each(function () { var e = t(this); e.attr(\"style\", e.data(\"style-cache\") || null) }), r._maintainScroll && t(window).scrollTop(c / p * t(\"html\").outerHeight(!0)),\r\n\t\tthis\r\n\t}, r._applyDataApi = function () { var e = {}; t(\"[data-match-height], [data-mh]\").each(function () { var o = t(this), n = o.attr(\"data-mh\") || o.attr(\"data-match-height\"); n in e ? e[n] = e[n].add(o) : e[n] = o }), t.each(e, function () { this.matchHeight(!0) }) }; var s = function (e) { r._beforeUpdate && r._beforeUpdate(e, r._groups), t.each(r._groups, function () { r._apply(this.elements, this.options) }), r._afterUpdate && r._afterUpdate(e, r._groups) }; r._update = function (n, a) {\r\n\t\tif (a && \"resize\" === a.type) {\r\n\t\t\tvar i = t(window).width(); if (i === e) return; e = i;\r\n\t\t} n ? o === -1 && (o = setTimeout(function () { s(a), o = -1 }, r._throttle)) : s(a)\r\n\t}, t(r._applyDataApi); var h = t.fn.on ? \"on\" : \"bind\"; t(window)[h](\"load\", function (t) { r._update(!1, t) }), t(window)[h](\"resize orientationchange\", function (t) { r._update(!0, t) })\r\n});","/**\r\n * Copyright (c) 2007-2015 Ariel Flesler - aflesler ○ gmail • com | http://flesler.blogspot.com\r\n * Licensed under MIT\r\n * @author Ariel Flesler\r\n * @version 2.1.3\r\n */\r\n;(function (f) { \"use strict\"; \"function\" === typeof define && define.amd ? define([\"jquery\"], f) : \"undefined\" !== typeof module && module.exports ? module.exports = f(require(\"jquery\")) : f(jQuery) })(function ($) { \"use strict\"; function n(a) { return !a.nodeName || -1 !== $.inArray(a.nodeName.toLowerCase(), [\"iframe\", \"#document\", \"html\", \"body\"]) } function h(a) { return $.isFunction(a) || $.isPlainObject(a) ? a : { top: a, left: a } } var p = $.scrollTo = function (a, d, b) { return $(window).scrollTo(a, d, b) }; p.defaults = { axis: \"xy\", duration: 0, limit: !0 }; $.fn.scrollTo = function (a, d, b) { \"object\" === typeof d && (b = d, d = 0); \"function\" === typeof b && (b = { onAfter: b }); \"max\" === a && (a = 9E9); b = $.extend({}, p.defaults, b); d = d || b.duration; var u = b.queue && 1 < b.axis.length; u && (d /= 2); b.offset = h(b.offset); b.over = h(b.over); return this.each(function () { function k(a) { var k = $.extend({}, b, { queue: !0, duration: d, complete: a && function () { a.call(q, e, b) } }); r.animate(f, k) } if (null !== a) { var l = n(this), q = l ? this.contentWindow || window : this, r = $(q), e = a, f = {}, t; switch (typeof e) { case \"number\": case \"string\": if (/^([+-]=?)?\\d+(\\.\\d+)?(px|%)?$/.test(e)) { e = h(e); break } e = l ? $(e) : $(e, q); case \"object\": if (e.length === 0) return; if (e.is || e.style) t = (e = $(e)).offset() } var v = $.isFunction(b.offset) && b.offset(q, e) || b.offset; $.each(b.axis.split(\"\"), function (a, c) { var d = \"x\" === c ? \"Left\" : \"Top\", m = d.toLowerCase(), g = \"scroll\" + d, h = r[g](), n = p.max(q, c); t ? (f[g] = t[m] + (l ? 0 : h - r.offset()[m]), b.margin && (f[g] -= parseInt(e.css(\"margin\" + d), 10) || 0, f[g] -= parseInt(e.css(\"border\" + d + \"Width\"), 10) || 0), f[g] += v[m] || 0, b.over[m] && (f[g] += e[\"x\" === c ? \"width\" : \"height\"]() * b.over[m])) : (d = e[m], f[g] = d.slice && \"%\" === d.slice(-1) ? parseFloat(d) / 100 * n : d); b.limit && /^\\d+$/.test(f[g]) && (f[g] = 0 >= f[g] ? 0 : Math.min(f[g], n)); !a && 1 < b.axis.length && (h === f[g] ? f = {} : u && (k(b.onAfterFirst), f = {})) }); k(b.onAfter) } }) }; p.max = function (a, d) { var b = \"x\" === d ? \"Width\" : \"Height\", h = \"scroll\" + b; if (!n(a)) return a[h] - $(a)[b.toLowerCase()](); var b = \"client\" + b, k = a.ownerDocument || a.document, l = k.documentElement, k = k.body; return Math.max(l[h], k[h]) - Math.min(l[b], k[b]) }; $.Tween.propHooks.scrollLeft = $.Tween.propHooks.scrollTop = { get: function (a) { return $(a.elem)[a.prop]() }, set: function (a) { var d = this.get(a); if (a.options.interrupt && a._last && a._last !== d) return $(a.elem).stop(); var b = Math.round(a.now); d !== b && ($(a.elem)[a.prop](b), a._last = this.get(a)) } }; return p });","/* NUGET: BEGIN LICENSE TEXT\r\n *\r\n * Microsoft grants you the right to use these script files for the sole\r\n * purpose of either: (i) interacting through your browser with the Microsoft\r\n * website or online service, subject to the applicable licensing or use\r\n * terms; or (ii) using the files as included with a Microsoft product subject\r\n * to that product's license terms. Microsoft reserves all other rights to the\r\n * files not expressly granted by Microsoft, whether by implication, estoppel\r\n * or otherwise. Insofar as a script file is dual licensed under GPL,\r\n * Microsoft neither took the code under GPL nor distributes it thereunder but\r\n * under the terms set out in this paragraph. All notices and licenses\r\n * below are for informational purposes only.\r\n *\r\n * NUGET: END LICENSE TEXT */\r\n/*! jQuery Validation Plugin - v1.11.1 - 3/22/2013\\n* https://github.com/jzaefferer/jquery-validation\r\n* Copyright (c) 2013 Jörn Zaefferer; Licensed MIT */(function(t){t.extend(t.fn,{validate:function(e){if(!this.length)return e&&e.debug&&window.console&&console.warn(\"Nothing selected, can't validate, returning nothing.\"),void 0;var i=t.data(this[0],\"validator\");return i?i:(this.attr(\"novalidate\",\"novalidate\"),i=new t.validator(e,this[0]),t.data(this[0],\"validator\",i),i.settings.onsubmit&&(this.validateDelegate(\":submit\",\"click\",function(e){i.settings.submitHandler&&(i.submitButton=e.target),t(e.target).hasClass(\"cancel\")&&(i.cancelSubmit=!0),void 0!==t(e.target).attr(\"formnovalidate\")&&(i.cancelSubmit=!0)}),this.submit(function(e){function s(){var s;return i.settings.submitHandler?(i.submitButton&&(s=t(\"\").attr(\"name\",i.submitButton.name).val(t(i.submitButton).val()).appendTo(i.currentForm)),i.settings.submitHandler.call(i,i.currentForm,e),i.submitButton&&s.remove(),!1):!0}return i.settings.debug&&e.preventDefault(),i.cancelSubmit?(i.cancelSubmit=!1,s()):i.form()?i.pendingRequest?(i.formSubmitted=!0,!1):s():(i.focusInvalid(),!1)})),i)},valid:function(){if(t(this[0]).is(\"form\"))return this.validate().form();var e=!0,i=t(this[0].form).validate();return this.each(function(){e=e&&i.element(this)}),e},removeAttrs:function(e){var i={},s=this;return t.each(e.split(/\\s/),function(t,e){i[e]=s.attr(e),s.removeAttr(e)}),i},rules:function(e,i){var s=this[0];if(e){var r=t.data(s.form,\"validator\").settings,n=r.rules,a=t.validator.staticRules(s);switch(e){case\"add\":t.extend(a,t.validator.normalizeRule(i)),delete a.messages,n[s.name]=a,i.messages&&(r.messages[s.name]=t.extend(r.messages[s.name],i.messages));break;case\"remove\":if(!i)return delete n[s.name],a;var u={};return t.each(i.split(/\\s/),function(t,e){u[e]=a[e],delete a[e]}),u}}var o=t.validator.normalizeRules(t.extend({},t.validator.classRules(s),t.validator.attributeRules(s),t.validator.dataRules(s),t.validator.staticRules(s)),s);if(o.required){var l=o.required;delete o.required,o=t.extend({required:l},o)}return o}}),t.extend(t.expr[\":\"],{blank:function(e){return!t.trim(\"\"+t(e).val())},filled:function(e){return!!t.trim(\"\"+t(e).val())},unchecked:function(e){return!t(e).prop(\"checked\")}}),t.validator=function(e,i){this.settings=t.extend(!0,{},t.validator.defaults,e),this.currentForm=i,this.init()},t.validator.format=function(e,i){return 1===arguments.length?function(){var i=t.makeArray(arguments);return i.unshift(e),t.validator.format.apply(this,i)}:(arguments.length>2&&i.constructor!==Array&&(i=t.makeArray(arguments).slice(1)),i.constructor!==Array&&(i=[i]),t.each(i,function(t,i){e=e.replace(RegExp(\"\\\\{\"+t+\"\\\\}\",\"g\"),function(){return i})}),e)},t.extend(t.validator,{defaults:{messages:{},groups:{},rules:{},errorClass:\"error\",validClass:\"valid\",errorElement:\"label\",focusInvalid:!0,errorContainer:t([]),errorLabelContainer:t([]),onsubmit:!0,ignore:\":hidden\",ignoreTitle:!1,onfocusin:function(t){this.lastActive=t,this.settings.focusCleanup&&!this.blockFocusCleanup&&(this.settings.unhighlight&&this.settings.unhighlight.call(this,t,this.settings.errorClass,this.settings.validClass),this.addWrapper(this.errorsFor(t)).hide())},onfocusout:function(t){this.checkable(t)||!(t.name in this.submitted)&&this.optional(t)||this.element(t)},onkeyup:function(t,e){(9!==e.which||\"\"!==this.elementValue(t))&&(t.name in this.submitted||t===this.lastElement)&&this.element(t)},onclick:function(t){t.name in this.submitted?this.element(t):t.parentNode.name in this.submitted&&this.element(t.parentNode)},highlight:function(e,i,s){\"radio\"===e.type?this.findByName(e.name).addClass(i).removeClass(s):t(e).addClass(i).removeClass(s)},unhighlight:function(e,i,s){\"radio\"===e.type?this.findByName(e.name).removeClass(i).addClass(s):t(e).removeClass(i).addClass(s)}},setDefaults:function(e){t.extend(t.validator.defaults,e)},messages:{required:\"This field is required.\",remote:\"Please fix this field.\",email:\"Please enter a valid email address.\",url:\"Please enter a valid URL.\",date:\"Please enter a valid date.\",dateISO:\"Please enter a valid date (ISO).\",number:\"Please enter a valid number.\",digits:\"Please enter only digits.\",creditcard:\"Please enter a valid credit card number.\",equalTo:\"Please enter the same value again.\",maxlength:t.validator.format(\"Please enter no more than {0} characters.\"),minlength:t.validator.format(\"Please enter at least {0} characters.\"),rangelength:t.validator.format(\"Please enter a value between {0} and {1} characters long.\"),range:t.validator.format(\"Please enter a value between {0} and {1}.\"),max:t.validator.format(\"Please enter a value less than or equal to {0}.\"),min:t.validator.format(\"Please enter a value greater than or equal to {0}.\")},autoCreateRanges:!1,prototype:{init:function(){function e(e){var i=t.data(this[0].form,\"validator\"),s=\"on\"+e.type.replace(/^validate/,\"\");i.settings[s]&&i.settings[s].call(i,this[0],e)}this.labelContainer=t(this.settings.errorLabelContainer),this.errorContext=this.labelContainer.length&&this.labelContainer||t(this.currentForm),this.containers=t(this.settings.errorContainer).add(this.settings.errorLabelContainer),this.submitted={},this.valueCache={},this.pendingRequest=0,this.pending={},this.invalid={},this.reset();var i=this.groups={};t.each(this.settings.groups,function(e,s){\"string\"==typeof s&&(s=s.split(/\\s/)),t.each(s,function(t,s){i[s]=e})});var s=this.settings.rules;t.each(s,function(e,i){s[e]=t.validator.normalizeRule(i)}),t(this.currentForm).validateDelegate(\":text, [type='password'], [type='file'], select, textarea, [type='number'], [type='search'] ,[type='tel'], [type='url'], [type='email'], [type='datetime'], [type='date'], [type='month'], [type='week'], [type='time'], [type='datetime-local'], [type='range'], [type='color'] \",\"focusin focusout keyup\",e).validateDelegate(\"[type='radio'], [type='checkbox'], select, option\",\"click\",e),this.settings.invalidHandler&&t(this.currentForm).bind(\"invalid-form.validate\",this.settings.invalidHandler)},form:function(){return this.checkForm(),t.extend(this.submitted,this.errorMap),this.invalid=t.extend({},this.errorMap),this.valid()||t(this.currentForm).triggerHandler(\"invalid-form\",[this]),this.showErrors(),this.valid()},checkForm:function(){this.prepareForm();for(var t=0,e=this.currentElements=this.elements();e[t];t++)this.check(e[t]);return this.valid()},element:function(e){e=this.validationTargetFor(this.clean(e)),this.lastElement=e,this.prepareElement(e),this.currentElements=t(e);var i=this.check(e)!==!1;return i?delete this.invalid[e.name]:this.invalid[e.name]=!0,this.numberOfInvalids()||(this.toHide=this.toHide.add(this.containers)),this.showErrors(),i},showErrors:function(e){if(e){t.extend(this.errorMap,e),this.errorList=[];for(var i in e)this.errorList.push({message:e[i],element:this.findByName(i)[0]});this.successList=t.grep(this.successList,function(t){return!(t.name in e)})}this.settings.showErrors?this.settings.showErrors.call(this,this.errorMap,this.errorList):this.defaultShowErrors()},resetForm:function(){t.fn.resetForm&&t(this.currentForm).resetForm(),this.submitted={},this.lastElement=null,this.prepareForm(),this.hideErrors(),this.elements().removeClass(this.settings.errorClass).removeData(\"previousValue\")},numberOfInvalids:function(){return this.objectLength(this.invalid)},objectLength:function(t){var e=0;for(var i in t)e++;return e},hideErrors:function(){this.addWrapper(this.toHide).hide()},valid:function(){return 0===this.size()},size:function(){return this.errorList.length},focusInvalid:function(){if(this.settings.focusInvalid)try{t(this.findLastActive()||this.errorList.length&&this.errorList[0].element||[]).filter(\":visible\").focus().trigger(\"focusin\")}catch(e){}},findLastActive:function(){var e=this.lastActive;return e&&1===t.grep(this.errorList,function(t){return t.element.name===e.name}).length&&e},elements:function(){var e=this,i={};return t(this.currentForm).find(\"input, select, textarea\").not(\":submit, :reset, :image, [disabled]\").not(this.settings.ignore).filter(function(){return!this.name&&e.settings.debug&&window.console&&console.error(\"%o has no name assigned\",this),this.name in i||!e.objectLength(t(this).rules())?!1:(i[this.name]=!0,!0)})},clean:function(e){return t(e)[0]},errors:function(){var e=this.settings.errorClass.replace(\" \",\".\");return t(this.settings.errorElement+\".\"+e,this.errorContext)},reset:function(){this.successList=[],this.errorList=[],this.errorMap={},this.toShow=t([]),this.toHide=t([]),this.currentElements=t([])},prepareForm:function(){this.reset(),this.toHide=this.errors().add(this.containers)},prepareElement:function(t){this.reset(),this.toHide=this.errorsFor(t)},elementValue:function(e){var i=t(e).attr(\"type\"),s=t(e).val();return\"radio\"===i||\"checkbox\"===i?t(\"input[name='\"+t(e).attr(\"name\")+\"']:checked\").val():\"string\"==typeof s?s.replace(/\\r/g,\"\"):s},check:function(e){e=this.validationTargetFor(this.clean(e));var i,s=t(e).rules(),r=!1,n=this.elementValue(e);for(var a in s){var u={method:a,parameters:s[a]};try{if(i=t.validator.methods[a].call(this,n,e,u.parameters),\"dependency-mismatch\"===i){r=!0;continue}if(r=!1,\"pending\"===i)return this.toHide=this.toHide.not(this.errorsFor(e)),void 0;if(!i)return this.formatAndAdd(e,u),!1}catch(o){throw this.settings.debug&&window.console&&console.log(\"Exception occurred when checking element \"+e.id+\", check the '\"+u.method+\"' method.\",o),o}}return r?void 0:(this.objectLength(s)&&this.successList.push(e),!0)},customDataMessage:function(e,i){return t(e).data(\"msg-\"+i.toLowerCase())||e.attributes&&t(e).attr(\"data-msg-\"+i.toLowerCase())},customMessage:function(t,e){var i=this.settings.messages[t];return i&&(i.constructor===String?i:i[e])},findDefined:function(){for(var t=0;arguments.length>t;t++)if(void 0!==arguments[t])return arguments[t];return void 0},defaultMessage:function(e,i){return this.findDefined(this.customMessage(e.name,i),this.customDataMessage(e,i),!this.settings.ignoreTitle&&e.title||void 0,t.validator.messages[i],\"Warning: No message defined for \"+e.name+\"\")},formatAndAdd:function(e,i){var s=this.defaultMessage(e,i.method),r=/\\$?\\{(\\d+)\\}/g;\"function\"==typeof s?s=s.call(this,i.parameters,e):r.test(s)&&(s=t.validator.format(s.replace(r,\"{$1}\"),i.parameters)),this.errorList.push({message:s,element:e}),this.errorMap[e.name]=s,this.submitted[e.name]=s},addWrapper:function(t){return this.settings.wrapper&&(t=t.add(t.parent(this.settings.wrapper))),t},defaultShowErrors:function(){var t,e;for(t=0;this.errorList[t];t++){var i=this.errorList[t];this.settings.highlight&&this.settings.highlight.call(this,i.element,this.settings.errorClass,this.settings.validClass),this.showLabel(i.element,i.message)}if(this.errorList.length&&(this.toShow=this.toShow.add(this.containers)),this.settings.success)for(t=0;this.successList[t];t++)this.showLabel(this.successList[t]);if(this.settings.unhighlight)for(t=0,e=this.validElements();e[t];t++)this.settings.unhighlight.call(this,e[t],this.settings.errorClass,this.settings.validClass);this.toHide=this.toHide.not(this.toShow),this.hideErrors(),this.addWrapper(this.toShow).show()},validElements:function(){return this.currentElements.not(this.invalidElements())},invalidElements:function(){return t(this.errorList).map(function(){return this.element})},showLabel:function(e,i){var s=this.errorsFor(e);s.length?(s.removeClass(this.settings.validClass).addClass(this.settings.errorClass),s.html(i)):(s=t(\"<\"+this.settings.errorElement+\">\").attr(\"for\",this.idOrName(e)).addClass(this.settings.errorClass).html(i||\"\"),this.settings.wrapper&&(s=s.hide().show().wrap(\"<\"+this.settings.wrapper+\"/>\").parent()),this.labelContainer.append(s).length||(this.settings.errorPlacement?this.settings.errorPlacement(s,t(e)):s.insertAfter(e))),!i&&this.settings.success&&(s.text(\"\"),\"string\"==typeof this.settings.success?s.addClass(this.settings.success):this.settings.success(s,e)),this.toShow=this.toShow.add(s)},errorsFor:function(e){var i=this.idOrName(e);return this.errors().filter(function(){return t(this).attr(\"for\")===i})},idOrName:function(t){return this.groups[t.name]||(this.checkable(t)?t.name:t.id||t.name)},validationTargetFor:function(t){return this.checkable(t)&&(t=this.findByName(t.name).not(this.settings.ignore)[0]),t},checkable:function(t){return/radio|checkbox/i.test(t.type)},findByName:function(e){return t(this.currentForm).find(\"[name='\"+e+\"']\")},getLength:function(e,i){switch(i.nodeName.toLowerCase()){case\"select\":return t(\"option:selected\",i).length;case\"input\":if(this.checkable(i))return this.findByName(i.name).filter(\":checked\").length}return e.length},depend:function(t,e){return this.dependTypes[typeof t]?this.dependTypes[typeof t](t,e):!0},dependTypes:{\"boolean\":function(t){return t},string:function(e,i){return!!t(e,i.form).length},\"function\":function(t,e){return t(e)}},optional:function(e){var i=this.elementValue(e);return!t.validator.methods.required.call(this,i,e)&&\"dependency-mismatch\"},startRequest:function(t){this.pending[t.name]||(this.pendingRequest++,this.pending[t.name]=!0)},stopRequest:function(e,i){this.pendingRequest--,0>this.pendingRequest&&(this.pendingRequest=0),delete this.pending[e.name],i&&0===this.pendingRequest&&this.formSubmitted&&this.form()?(t(this.currentForm).submit(),this.formSubmitted=!1):!i&&0===this.pendingRequest&&this.formSubmitted&&(t(this.currentForm).triggerHandler(\"invalid-form\",[this]),this.formSubmitted=!1)},previousValue:function(e){return t.data(e,\"previousValue\")||t.data(e,\"previousValue\",{old:null,valid:!0,message:this.defaultMessage(e,\"remote\")})}},classRuleSettings:{required:{required:!0},email:{email:!0},url:{url:!0},date:{date:!0},dateISO:{dateISO:!0},number:{number:!0},digits:{digits:!0},creditcard:{creditcard:!0}},addClassRules:function(e,i){e.constructor===String?this.classRuleSettings[e]=i:t.extend(this.classRuleSettings,e)},classRules:function(e){var i={},s=t(e).attr(\"class\");return s&&t.each(s.split(\" \"),function(){this in t.validator.classRuleSettings&&t.extend(i,t.validator.classRuleSettings[this])}),i},attributeRules:function(e){var i={},s=t(e),r=s[0].getAttribute(\"type\");for(var n in t.validator.methods){var a;\"required\"===n?(a=s.get(0).getAttribute(n),\"\"===a&&(a=!0),a=!!a):a=s.attr(n),/min|max/.test(n)&&(null===r||/number|range|text/.test(r))&&(a=Number(a)),a?i[n]=a:r===n&&\"range\"!==r&&(i[n]=!0)}return i.maxlength&&/-1|2147483647|524288/.test(i.maxlength)&&delete i.maxlength,i},dataRules:function(e){var i,s,r={},n=t(e);for(i in t.validator.methods)s=n.data(\"rule-\"+i.toLowerCase()),void 0!==s&&(r[i]=s);return r},staticRules:function(e){var i={},s=t.data(e.form,\"validator\");return s.settings.rules&&(i=t.validator.normalizeRule(s.settings.rules[e.name])||{}),i},normalizeRules:function(e,i){return t.each(e,function(s,r){if(r===!1)return delete e[s],void 0;if(r.param||r.depends){var n=!0;switch(typeof r.depends){case\"string\":n=!!t(r.depends,i.form).length;break;case\"function\":n=r.depends.call(i,i)}n?e[s]=void 0!==r.param?r.param:!0:delete e[s]}}),t.each(e,function(s,r){e[s]=t.isFunction(r)?r(i):r}),t.each([\"minlength\",\"maxlength\"],function(){e[this]&&(e[this]=Number(e[this]))}),t.each([\"rangelength\",\"range\"],function(){var i;e[this]&&(t.isArray(e[this])?e[this]=[Number(e[this][0]),Number(e[this][1])]:\"string\"==typeof e[this]&&(i=e[this].split(/[\\s,]+/),e[this]=[Number(i[0]),Number(i[1])]))}),t.validator.autoCreateRanges&&(e.min&&e.max&&(e.range=[e.min,e.max],delete e.min,delete e.max),e.minlength&&e.maxlength&&(e.rangelength=[e.minlength,e.maxlength],delete e.minlength,delete e.maxlength)),e},normalizeRule:function(e){if(\"string\"==typeof e){var i={};t.each(e.split(/\\s/),function(){i[this]=!0}),e=i}return e},addMethod:function(e,i,s){t.validator.methods[e]=i,t.validator.messages[e]=void 0!==s?s:t.validator.messages[e],3>i.length&&t.validator.addClassRules(e,t.validator.normalizeRule(e))},methods:{required:function(e,i,s){if(!this.depend(s,i))return\"dependency-mismatch\";if(\"select\"===i.nodeName.toLowerCase()){var r=t(i).val();return r&&r.length>0}return this.checkable(i)?this.getLength(e,i)>0:t.trim(e).length>0},email:function(t,e){return this.optional(e)||/^((([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/i.test(t)},url:function(t,e){return this.optional(e)||/^(https?|s?ftp):\\/\\/(((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:)*@)?(((\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5])\\.(\\d|[1-9]\\d|1\\d\\d|2[0-4]\\d|25[0-5]))|((([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.?)(:\\d*)?)(\\/((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)+(\\/(([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)*)*)?)?(\\?((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|[\\uE000-\\uF8FF]|\\/|\\?)*)?(#((([a-z]|\\d|-|\\.|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(%[\\da-f]{2})|[!\\$&'\\(\\)\\*\\+,;=]|:|@)|\\/|\\?)*)?$/i.test(t)},date:function(t,e){return this.optional(e)||!/Invalid|NaN/.test(\"\"+new Date(t))},dateISO:function(t,e){return this.optional(e)||/^\\d{4}[\\/\\-]\\d{1,2}[\\/\\-]\\d{1,2}$/.test(t)},number:function(t,e){return this.optional(e)||/^-?(?:\\d+|\\d{1,3}(?:,\\d{3})+)?(?:\\.\\d+)?$/.test(t)},digits:function(t,e){return this.optional(e)||/^\\d+$/.test(t)},creditcard:function(t,e){if(this.optional(e))return\"dependency-mismatch\";if(/[^0-9 \\-]+/.test(t))return!1;var i=0,s=0,r=!1;t=t.replace(/\\D/g,\"\");for(var n=t.length-1;n>=0;n--){var a=t.charAt(n);s=parseInt(a,10),r&&(s*=2)>9&&(s-=9),i+=s,r=!r}return 0===i%10},minlength:function(e,i,s){var r=t.isArray(e)?e.length:this.getLength(t.trim(e),i);return this.optional(i)||r>=s},maxlength:function(e,i,s){var r=t.isArray(e)?e.length:this.getLength(t.trim(e),i);return this.optional(i)||s>=r},rangelength:function(e,i,s){var r=t.isArray(e)?e.length:this.getLength(t.trim(e),i);return this.optional(i)||r>=s[0]&&s[1]>=r},min:function(t,e,i){return this.optional(e)||t>=i},max:function(t,e,i){return this.optional(e)||i>=t},range:function(t,e,i){return this.optional(e)||t>=i[0]&&i[1]>=t},equalTo:function(e,i,s){var r=t(s);return this.settings.onfocusout&&r.unbind(\".validate-equalTo\").bind(\"blur.validate-equalTo\",function(){t(i).valid()}),e===r.val()},remote:function(e,i,s){if(this.optional(i))return\"dependency-mismatch\";var r=this.previousValue(i);if(this.settings.messages[i.name]||(this.settings.messages[i.name]={}),r.originalMessage=this.settings.messages[i.name].remote,this.settings.messages[i.name].remote=r.message,s=\"string\"==typeof s&&{url:s}||s,r.old===e)return r.valid;r.old=e;var n=this;this.startRequest(i);var a={};return a[i.name]=e,t.ajax(t.extend(!0,{url:s,mode:\"abort\",port:\"validate\"+i.name,dataType:\"json\",data:a,success:function(s){n.settings.messages[i.name].remote=r.originalMessage;var a=s===!0||\"true\"===s;if(a){var u=n.formSubmitted;n.prepareElement(i),n.formSubmitted=u,n.successList.push(i),delete n.invalid[i.name],n.showErrors()}else{var o={},l=s||n.defaultMessage(i,\"remote\");o[i.name]=r.message=t.isFunction(l)?l(e):l,n.invalid[i.name]=!0,n.showErrors(o)}r.valid=a,n.stopRequest(i,a)}},s)),\"pending\"}}}),t.format=t.validator.format})(jQuery),function(t){var e={};if(t.ajaxPrefilter)t.ajaxPrefilter(function(t,i,s){var r=t.port;\"abort\"===t.mode&&(e[r]&&e[r].abort(),e[r]=s)});else{var i=t.ajax;t.ajax=function(s){var r=(\"mode\"in s?s:t.ajaxSettings).mode,n=(\"port\"in s?s:t.ajaxSettings).port;return\"abort\"===r?(e[n]&&e[n].abort(),e[n]=i.apply(this,arguments),e[n]):i.apply(this,arguments)}}}(jQuery),function(t){t.extend(t.fn,{validateDelegate:function(e,i,s){return this.bind(i,function(i){var r=t(i.target);return r.is(e)?s.apply(r,arguments):void 0})}})}(jQuery);","/* NUGET: BEGIN LICENSE TEXT\r\n *\r\n * Microsoft grants you the right to use these script files for the sole\r\n * purpose of either: (i) interacting through your browser with the Microsoft\r\n * website or online service, subject to the applicable licensing or use\r\n * terms; or (ii) using the files as included with a Microsoft product subject\r\n * to that product's license terms. Microsoft reserves all other rights to the\r\n * files not expressly granted by Microsoft, whether by implication, estoppel\r\n * or otherwise. Insofar as a script file is dual licensed under GPL,\r\n * Microsoft neither took the code under GPL nor distributes it thereunder but\r\n * under the terms set out in this paragraph. All notices and licenses\r\n * below are for informational purposes only.\r\n *\r\n * NUGET: END LICENSE TEXT */\r\n/*\r\n** Unobtrusive validation support library for jQuery and jQuery Validate\r\n** Copyright (C) Microsoft Corporation. All rights reserved.\r\n*/\r\n(function(a){var d=a.validator,b,e=\"unobtrusiveValidation\";function c(a,b,c){a.rules[b]=c;if(a.message)a.messages[b]=a.message}function j(a){return a.replace(/^\\s+|\\s+$/g,\"\").split(/\\s*,\\s*/g)}function f(a){return a.replace(/([!\"#$%&'()*+,./:;<=>?@\\[\\\\\\]^`{|}~])/g,\"\\\\$1\")}function h(a){return a.substr(0,a.lastIndexOf(\".\")+1)}function g(a,b){if(a.indexOf(\"*.\")===0)a=a.replace(\"*.\",b);return a}function m(c,e){var b=a(this).find(\"[data-valmsg-for='\"+f(e[0].name)+\"']\"),d=b.attr(\"data-valmsg-replace\"),g=d?a.parseJSON(d)!==false:null;b.removeClass(\"field-validation-valid\").addClass(\"field-validation-error\");c.data(\"unobtrusiveContainer\",b);if(g){b.empty();c.removeClass(\"input-validation-error\").appendTo(b)}else c.hide()}function l(e,d){var c=a(this).find(\"[data-valmsg-summary=true]\"),b=c.find(\"ul\");if(b&&b.length&&d.errorList.length){b.empty();c.addClass(\"validation-summary-errors\").removeClass(\"validation-summary-valid\");a.each(d.errorList,function(){a(\"
  • \").html(this.message).appendTo(b)})}}function k(d){var b=d.data(\"unobtrusiveContainer\"),c=b.attr(\"data-valmsg-replace\"),e=c?a.parseJSON(c):null;if(b){b.addClass(\"field-validation-valid\").removeClass(\"field-validation-error\");d.removeData(\"unobtrusiveContainer\");e&&b.empty()}}function n(){var b=a(this),c=\"__jquery_unobtrusive_validation_form_reset\";if(b.data(c))return;b.data(c,true);try{b.data(\"validator\").resetForm()}finally{b.removeData(c)}b.find(\".validation-summary-errors\").addClass(\"validation-summary-valid\").removeClass(\"validation-summary-errors\");b.find(\".field-validation-error\").addClass(\"field-validation-valid\").removeClass(\"field-validation-error\").removeData(\"unobtrusiveContainer\").find(\">*\").removeData(\"unobtrusiveContainer\")}function i(b){var c=a(b),f=c.data(e),i=a.proxy(n,b),g=d.unobtrusive.options||{},h=function(e,d){var c=g[e];c&&a.isFunction(c)&&c.apply(b,d)};if(!f){f={options:{errorClass:g.errorClass||\"input-validation-error\",errorElement:g.errorElement||\"span\",errorPlacement:function(){m.apply(b,arguments);h(\"errorPlacement\",arguments)},invalidHandler:function(){l.apply(b,arguments);h(\"invalidHandler\",arguments)},messages:{},rules:{},success:function(){k.apply(b,arguments);h(\"success\",arguments)}},attachValidation:function(){c.off(\"reset.\"+e,i).on(\"reset.\"+e,i).validate(this.options)},validate:function(){c.validate();return c.valid()}};c.data(e,f)}return f}d.unobtrusive={adapters:[],parseElement:function(b,h){var d=a(b),f=d.parents(\"form\")[0],c,e,g;if(!f)return;c=i(f);c.options.rules[b.name]=e={};c.options.messages[b.name]=g={};a.each(this.adapters,function(){var c=\"data-val-\"+this.name,i=d.attr(c),h={};if(i!==undefined){c+=\"-\";a.each(this.params,function(){h[this]=d.attr(c+this)});this.adapt({element:b,form:f,message:i,params:h,rules:e,messages:g})}});a.extend(e,{__dummy__:true});!h&&c.attachValidation()},parse:function(c){var b=a(c),e=b.parents().addBack().filter(\"form\").add(b.find(\"form\")).has(\"[data-val=true]\");b.find(\"[data-val=true]\").each(function(){d.unobtrusive.parseElement(this,true)});e.each(function(){var a=i(this);a&&a.attachValidation()})}};b=d.unobtrusive.adapters;b.add=function(c,a,b){if(!b){b=a;a=[]}this.push({name:c,params:a,adapt:b});return this};b.addBool=function(a,b){return this.add(a,function(d){c(d,b||a,true)})};b.addMinMax=function(e,g,f,a,d,b){return this.add(e,[d||\"min\",b||\"max\"],function(b){var e=b.params.min,d=b.params.max;if(e&&d)c(b,a,[e,d]);else if(e)c(b,g,e);else d&&c(b,f,d)})};b.addSingleVal=function(a,b,d){return this.add(a,[b||\"val\"],function(e){c(e,d||a,e.params[b])})};d.addMethod(\"__dummy__\",function(){return true});d.addMethod(\"regex\",function(b,c,d){var a;if(this.optional(c))return true;a=(new RegExp(d)).exec(b);return a&&a.index===0&&a[0].length===b.length});d.addMethod(\"nonalphamin\",function(c,d,b){var a;if(b){a=c.match(/\\W/g);a=a&&a.length>=b}return a});if(d.methods.extension){b.addSingleVal(\"accept\",\"mimtype\");b.addSingleVal(\"extension\",\"extension\")}else b.addSingleVal(\"extension\",\"extension\",\"accept\");b.addSingleVal(\"regex\",\"pattern\");b.addBool(\"creditcard\").addBool(\"date\").addBool(\"digits\").addBool(\"email\").addBool(\"number\").addBool(\"url\");b.addMinMax(\"length\",\"minlength\",\"maxlength\",\"rangelength\").addMinMax(\"range\",\"min\",\"max\",\"range\");b.addMinMax(\"minlength\",\"minlength\").addMinMax(\"maxlength\",\"minlength\",\"maxlength\");b.add(\"equalto\",[\"other\"],function(b){var i=h(b.element.name),j=b.params.other,d=g(j,i),e=a(b.form).find(\":input\").filter(\"[name='\"+f(d)+\"']\")[0];c(b,\"equalTo\",e)});b.add(\"required\",function(a){(a.element.tagName.toUpperCase()!==\"INPUT\"||a.element.type.toUpperCase()!==\"CHECKBOX\")&&c(a,\"required\",true)});b.add(\"remote\",[\"url\",\"type\",\"additionalfields\"],function(b){var d={url:b.params.url,type:b.params.type||\"GET\",data:{}},e=h(b.element.name);a.each(j(b.params.additionalfields||b.element.name),function(i,h){var c=g(h,e);d.data[c]=function(){var d=a(b.form).find(\":input\").filter(\"[name='\"+f(c)+\"']\");return d.is(\":checkbox\")?d.filter(\":checked\").val()||d.filter(\":hidden\").val()||\"\":d.is(\":radio\")?d.filter(\":checked\").val()||\"\":d.val()}});c(b,\"remote\",d)});b.add(\"password\",[\"min\",\"nonalphamin\",\"regex\"],function(a){a.params.min&&c(a,\"minlength\",a.params.min);a.params.nonalphamin&&c(a,\"nonalphamin\",a.params.nonalphamin);a.params.regex&&c(a,\"regex\",a.params.regex)});a(function(){d.unobtrusive.parse(document)})})(jQuery);","/*!\r\n * JavaScript Cookie v2.2.0\r\n * https://github.com/js-cookie/js-cookie\r\n *\r\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\r\n * Released under the MIT license\r\n */\r\n; (function (factory) {\r\n\tvar registeredInModuleLoader = false;\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\tdefine(factory);\r\n\t\tregisteredInModuleLoader = true;\r\n\t}\r\n\tif (typeof exports === 'object') {\r\n\t\tmodule.exports = factory();\r\n\t\tregisteredInModuleLoader = true;\r\n\t}\r\n\tif (!registeredInModuleLoader) {\r\n\t\tvar OldCookies = window.Cookies;\r\n\t\tvar api = window.Cookies = factory();\r\n\t\tapi.noConflict = function () {\r\n\t\t\twindow.Cookies = OldCookies;\r\n\t\t\treturn api;\r\n\t\t};\r\n\t}\r\n}(function () {\r\n\tfunction extend() {\r\n\t\tvar i = 0;\r\n\t\tvar result = {};\r\n\t\tfor (; i < arguments.length; i++) {\r\n\t\t\tvar attributes = arguments[i];\r\n\t\t\tfor (var key in attributes) {\r\n\t\t\t\tresult[key] = attributes[key];\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn result;\r\n\t}\r\n\r\n\tfunction init(converter) {\r\n\t\tfunction api(key, value, attributes) {\r\n\t\t\tvar result;\r\n\t\t\tif (typeof document === 'undefined') {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\t// Write\r\n\r\n\t\t\tif (arguments.length > 1) {\r\n\t\t\t\tattributes = extend({\r\n\t\t\t\t\tpath: '/'\r\n\t\t\t\t}, api.defaults, attributes);\r\n\r\n\t\t\t\tif (typeof attributes.expires === 'number') {\r\n\t\t\t\t\tvar expires = new Date();\r\n\t\t\t\t\texpires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5);\r\n\t\t\t\t\tattributes.expires = expires;\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// We're using \"expires\" because \"max-age\" is not supported by IE\r\n\t\t\t\tattributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\r\n\r\n\t\t\t\ttry {\r\n\t\t\t\t\tresult = JSON.stringify(value);\r\n\t\t\t\t\tif (/^[\\{\\[]/.test(result)) {\r\n\t\t\t\t\t\tvalue = result;\r\n\t\t\t\t\t}\r\n\t\t\t\t} catch (e) { }\r\n\r\n\t\t\t\tif (!converter.write) {\r\n\t\t\t\t\tvalue = encodeURIComponent(String(value))\r\n\t\t\t\t\t\t.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tvalue = converter.write(value, key);\r\n\t\t\t\t}\r\n\r\n\t\t\t\tkey = encodeURIComponent(String(key));\r\n\t\t\t\tkey = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent);\r\n\t\t\t\tkey = key.replace(/[\\(\\)]/g, escape);\r\n\r\n\t\t\t\tvar stringifiedAttributes = '';\r\n\r\n\t\t\t\tfor (var attributeName in attributes) {\r\n\t\t\t\t\tif (!attributes[attributeName]) {\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tstringifiedAttributes += '; ' + attributeName;\r\n\t\t\t\t\tif (attributes[attributeName] === true) {\r\n\t\t\t\t\t\tcontinue;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tstringifiedAttributes += '=' + attributes[attributeName];\r\n\t\t\t\t}\r\n\t\t\t\treturn (document.cookie = key + '=' + value + stringifiedAttributes);\r\n\t\t\t}\r\n\r\n\t\t\t// Read\r\n\r\n\t\t\tif (!key) {\r\n\t\t\t\tresult = {};\r\n\t\t\t}\r\n\r\n\t\t\t// To prevent the for loop in the first place assign an empty array\r\n\t\t\t// in case there are no cookies at all. Also prevents odd result when\r\n\t\t\t// calling \"get()\"\r\n\t\t\tvar cookies = document.cookie ? document.cookie.split('; ') : [];\r\n\t\t\tvar rdecode = /(%[0-9A-Z]{2})+/g;\r\n\t\t\tvar i = 0;\r\n\r\n\t\t\tfor (; i < cookies.length; i++) {\r\n\t\t\t\tvar parts = cookies[i].split('=');\r\n\t\t\t\tvar cookie = parts.slice(1).join('=');\r\n\r\n\t\t\t\tif (!this.json && cookie.charAt(0) === '\"') {\r\n\t\t\t\t\tcookie = cookie.slice(1, -1);\r\n\t\t\t\t}\r\n\r\n\t\t\t\ttry {\r\n\t\t\t\t\tvar name = parts[0].replace(rdecode, decodeURIComponent);\r\n\t\t\t\t\tcookie = converter.read ?\r\n\t\t\t\t\t\tconverter.read(cookie, name) : converter(cookie, name) ||\r\n\t\t\t\t\t\tcookie.replace(rdecode, decodeURIComponent);\r\n\r\n\t\t\t\t\tif (this.json) {\r\n\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\tcookie = JSON.parse(cookie);\r\n\t\t\t\t\t\t} catch (e) { }\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (key === name) {\r\n\t\t\t\t\t\tresult = cookie;\r\n\t\t\t\t\t\tbreak;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tif (!key) {\r\n\t\t\t\t\t\tresult[name] = cookie;\r\n\t\t\t\t\t}\r\n\t\t\t\t} catch (e) { }\r\n\t\t\t}\r\n\r\n\t\t\treturn result;\r\n\t\t}\r\n\r\n\t\tapi.set = api;\r\n\t\tapi.get = function (key) {\r\n\t\t\treturn api.call(api, key);\r\n\t\t};\r\n\t\tapi.getJSON = function () {\r\n\t\t\treturn api.apply({\r\n\t\t\t\tjson: true\r\n\t\t\t}, [].slice.call(arguments));\r\n\t\t};\r\n\t\tapi.defaults = {};\r\n\r\n\t\tapi.remove = function (key, attributes) {\r\n\t\t\tapi(key, '', extend(attributes, {\r\n\t\t\t\texpires: -1\r\n\t\t\t}));\r\n\t\t};\r\n\r\n\t\tapi.withConverter = init;\r\n\r\n\t\treturn api;\r\n\t}\r\n\r\n\treturn init(function () { });\r\n}));","!function (t, n) { \"object\" == typeof exports && \"undefined\" != typeof module ? module.exports = n() : \"function\" == typeof define && define.amd ? define(n) : (t = t || self).LazyLoad = n() }(this, (function () { \"use strict\"; function t() { return (t = Object.assign || function (t) { for (var n = 1; n < arguments.length; n++) { var e = arguments[n]; for (var i in e) Object.prototype.hasOwnProperty.call(e, i) && (t[i] = e[i]) } return t }).apply(this, arguments) } var n = \"undefined\" != typeof window, e = n && !(\"onscroll\" in window) || \"undefined\" != typeof navigator && /(gle|ing|ro)bot|crawl|spider/i.test(navigator.userAgent), i = n && \"IntersectionObserver\" in window, a = n && \"classList\" in document.createElement(\"p\"), o = n && window.devicePixelRatio > 1, r = { elements_selector: \"IMG\", container: e || n ? document : null, threshold: 300, thresholds: null, data_src: \"src\", data_srcset: \"srcset\", data_sizes: \"sizes\", data_bg: \"bg\", data_bg_hidpi: \"bg-hidpi\", data_bg_multi: \"bg-multi\", data_bg_multi_hidpi: \"bg-multi-hidpi\", data_poster: \"poster\", class_applied: \"applied\", class_loading: \"loading\", class_loaded: \"loaded\", class_error: \"error\", unobserve_completed: !0, unobserve_entered: !1, cancel_on_exit: !1, callback_enter: null, callback_exit: null, callback_applied: null, callback_loading: null, callback_loaded: null, callback_error: null, callback_finish: null, callback_cancel: null, use_native: !1 }, c = function (n) { return t({}, r, n) }, l = function (t, n) { var e, i = new t(n); try { e = new CustomEvent(\"LazyLoad::Initialized\", { detail: { instance: i } }) } catch (t) { (e = document.createEvent(\"CustomEvent\")).initCustomEvent(\"LazyLoad::Initialized\", !1, !1, { instance: i }) } window.dispatchEvent(e) }, s = function (t, n) { return t.getAttribute(\"data-\" + n) }, u = function (t, n, e) { var i = \"data-\" + n; null !== e ? t.setAttribute(i, e) : t.removeAttribute(i) }, d = function (t) { return s(t, \"ll-status\") }, f = function (t, n) { return u(t, \"ll-status\", n) }, _ = function (t) { return f(t, null) }, g = function (t) { return null === d(t) }, v = function (t) { return \"native\" === d(t) }, b = function (t, n, e, i) { t && (void 0 === i ? void 0 === e ? t(n) : t(n, e) : t(n, e, i)) }, p = function (t, n) { a ? t.classList.add(n) : t.className += (t.className ? \" \" : \"\") + n }, h = function (t, n) { a ? t.classList.remove(n) : t.className = t.className.replace(new RegExp(\"(^|\\\\s+)\" + n + \"(\\\\s+|$)\"), \" \").replace(/^\\s+/, \"\").replace(/\\s+$/, \"\") }, m = function (t) { return t.llTempImage }, E = function (t, n) { if (n) { var e = n._observer; e && e.unobserve(t) } }, I = function (t, n) { t && (t.loadingCount += n) }, A = function (t, n) { t && (t.toLoadCount = n) }, L = function (t) { for (var n, e = [], i = 0; n = t.children[i]; i += 1)\"SOURCE\" === n.tagName && e.push(n); return e }, y = function (t, n, e) { e && t.setAttribute(n, e) }, w = function (t, n) { t.removeAttribute(n) }, k = function (t) { return !!t.llOriginalAttrs }, z = function (t) { if (!k(t)) { var n = {}; n.src = t.getAttribute(\"src\"), n.srcset = t.getAttribute(\"srcset\"), n.sizes = t.getAttribute(\"sizes\"), t.llOriginalAttrs = n } }, O = function (t) { if (k(t)) { var n = t.llOriginalAttrs; y(t, \"src\", n.src), y(t, \"srcset\", n.srcset), y(t, \"sizes\", n.sizes) } }, C = function (t, n) { y(t, \"sizes\", s(t, n.data_sizes)), y(t, \"srcset\", s(t, n.data_srcset)), y(t, \"src\", s(t, n.data_src)) }, M = function (t) { w(t, \"src\"), w(t, \"srcset\"), w(t, \"sizes\") }, N = function (t, n) { var e = t.parentNode; e && \"PICTURE\" === e.tagName && L(e).forEach(n) }, x = function (t, n) { L(t).forEach(n) }, R = { IMG: function (t, n) { N(t, (function (t) { z(t), C(t, n) })), z(t), C(t, n) }, IFRAME: function (t, n) { y(t, \"src\", s(t, n.data_src)) }, VIDEO: function (t, n) { x(t, (function (t) { y(t, \"src\", s(t, n.data_src)) })), y(t, \"poster\", s(t, n.data_poster)), y(t, \"src\", s(t, n.data_src)), t.load() } }, G = function (t, n) { var e = R[t.tagName]; e && e(t, n) }, T = function (t, n, e) { I(e, 1), p(t, n.class_loading), f(t, \"loading\"), b(n.callback_loading, t, e) }, D = { IMG: function (t, n) { u(t, n.data_src, null), u(t, n.data_srcset, null), u(t, n.data_sizes, null), N(t, (function (t) { u(t, n.data_srcset, null), u(t, n.data_sizes, null) })) }, IFRAME: function (t, n) { u(t, n.data_src, null) }, VIDEO: function (t, n) { u(t, n.data_src, null), u(t, n.data_poster, null), x(t, (function (t) { u(t, n.data_src, null) })) } }, F = function (t, n) { u(t, n.data_bg_multi, null), u(t, n.data_bg_multi_hidpi, null) }, V = function (t, n) { var e = D[t.tagName]; e ? e(t, n) : function (t, n) { u(t, n.data_bg, null), u(t, n.data_bg_hidpi, null) }(t, n) }, j = [\"IMG\", \"IFRAME\", \"VIDEO\"], P = function (t, n) { !n || function (t) { return t.loadingCount > 0 }(n) || function (t) { return t.toLoadCount > 0 }(n) || b(t.callback_finish, n) }, S = function (t, n, e) { t.addEventListener(n, e), t.llEvLisnrs[n] = e }, U = function (t, n, e) { t.removeEventListener(n, e) }, $ = function (t) { return !!t.llEvLisnrs }, q = function (t) { if ($(t)) { var n = t.llEvLisnrs; for (var e in n) { var i = n[e]; U(t, e, i) } delete t.llEvLisnrs } }, H = function (t, n, e) { !function (t) { delete t.llTempImage }(t), I(e, -1), function (t) { t && (t.toLoadCount -= 1) }(e), h(t, n.class_loading), n.unobserve_completed && E(t, e) }, B = function (t, n, e) { var i = m(t) || t; $(i) || function (t, n, e) { $(t) || (t.llEvLisnrs = {}); var i = \"VIDEO\" === t.tagName ? \"loadeddata\" : \"load\"; S(t, i, n), S(t, \"error\", e) }(i, (function (a) { !function (t, n, e, i) { var a = v(n); H(n, e, i), p(n, e.class_loaded), f(n, \"loaded\"), V(n, e), b(e.callback_loaded, n, i), a || P(e, i) }(0, t, n, e), q(i) }), (function (a) { !function (t, n, e, i) { var a = v(n); H(n, e, i), p(n, e.class_error), f(n, \"error\"), b(e.callback_error, n, i), a || P(e, i) }(0, t, n, e), q(i) })) }, J = function (t, n, e) { !function (t) { t.llTempImage = document.createElement(\"IMG\") }(t), B(t, n, e), function (t, n, e) { var i = s(t, n.data_bg), a = s(t, n.data_bg_hidpi), r = o && a ? a : i; r && (t.style.backgroundImage = 'url(\"'.concat(r, '\")'), m(t).setAttribute(\"src\", r), T(t, n, e)) }(t, n, e), function (t, n, e) { var i = s(t, n.data_bg_multi), a = s(t, n.data_bg_multi_hidpi), r = o && a ? a : i; r && (t.style.backgroundImage = r, function (t, n, e) { p(t, n.class_applied), f(t, \"applied\"), F(t, n), n.unobserve_completed && E(t, n), b(n.callback_applied, t, e) }(t, n, e)) }(t, n, e) }, K = function (t, n, e) { !function (t) { return j.indexOf(t.tagName) > -1 }(t) ? J(t, n, e) : function (t, n, e) { B(t, n, e), G(t, n), T(t, n, e) }(t, n, e) }, Q = [\"IMG\", \"IFRAME\"], W = function (t) { return t.use_native && \"loading\" in HTMLImageElement.prototype }, X = function (t, n, e) { t.forEach((function (t) { return function (t) { return t.isIntersecting || t.intersectionRatio > 0 }(t) ? function (t, n, e, i) { b(e.callback_enter, t, n, i), function (t, n, e) { n.unobserve_entered && E(t, e) }(t, e, i), function (t) { return !g(t) }(t) || K(t, e, i) }(t.target, t, n, e) : function (t, n, e, i) { g(t) || (function (t, n, e, i) { e.cancel_on_exit && function (t) { return \"loading\" === d(t) }(t) && \"IMG\" === t.tagName && (q(t), function (t) { N(t, (function (t) { M(t) })), M(t) }(t), function (t) { N(t, (function (t) { O(t) })), O(t) }(t), h(t, e.class_loading), I(i, -1), _(t), b(e.callback_cancel, t, n, i)) }(t, n, e, i), b(e.callback_exit, t, n, i)) }(t.target, t, n, e) })) }, Y = function (t) { return Array.prototype.slice.call(t) }, Z = function (t) { return t.container.querySelectorAll(t.elements_selector) }, tt = function (t) { return function (t) { return \"error\" === d(t) }(t) }, nt = function (t, n) { return function (t) { return Y(t).filter(g) }(t || Z(n)) }, et = function (t, e) { var a = c(t); this._settings = a, this.loadingCount = 0, function (t, n) { i && !W(t) && (n._observer = new IntersectionObserver((function (e) { X(e, t, n) }), function (t) { return { root: t.container === document ? null : t.container, rootMargin: t.thresholds || t.threshold + \"px\" } }(t))) }(a, this), function (t, e) { n && window.addEventListener(\"online\", (function () { !function (t, n) { var e; (e = Z(t), Y(e).filter(tt)).forEach((function (n) { h(n, t.class_error), _(n) })), n.update() }(t, e) })) }(a, this), this.update(e) }; return et.prototype = { update: function (t) { var n, a, o = this._settings, r = nt(t, o); A(this, r.length), !e && i ? W(o) ? function (t, n, e) { t.forEach((function (t) { -1 !== Q.indexOf(t.tagName) && (t.setAttribute(\"loading\", \"lazy\"), function (t, n, e) { B(t, n, e), G(t, n), V(t, n), f(t, \"native\") }(t, n, e)) })), A(e, 0) }(r, o, this) : (a = r, function (t) { t.disconnect() }(n = this._observer), function (t, n) { n.forEach((function (n) { t.observe(n) })) }(n, a)) : this.loadAll(r) }, destroy: function () { this._observer && this._observer.disconnect(), Z(this._settings).forEach((function (t) { delete t.llOriginalAttrs })), delete this._observer, delete this._settings, delete this.loadingCount, delete this.toLoadCount }, loadAll: function (t) { var n = this, e = this._settings; nt(t, e).forEach((function (t) { K(t, e, n) })) } }, et.load = function (t, n) { var e = c(n); K(t, e) }, et.resetStatus = function (t) { _(t) }, n && function (t, n) { if (n) if (n.length) for (var e, i = 0; e = n[i]; i += 1)l(t, e); else l(t, n) }(et, window.lazyLoadOptions), et }));","/**\r\n * lodash (Custom Build) \r\n * Build: `lodash modularize exports=\"npm\" -o ./`\r\n * Copyright jQuery Foundation and other contributors \r\n * Released under MIT license \r\n * Based on Underscore.js 1.8.3 \r\n * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\r\n */\r\n\r\n/** Used as the `TypeError` message for \"Functions\" methods. */\r\nvar FUNC_ERROR_TEXT = 'Expected a function';\r\n\r\n/** Used as references for various `Number` constants. */\r\nvar NAN = 0 / 0;\r\n\r\n/** `Object#toString` result references. */\r\nvar symbolTag = '[object Symbol]';\r\n\r\n/** Used to match leading and trailing whitespace. */\r\nvar reTrim = /^\\s+|\\s+$/g;\r\n\r\n/** Used to detect bad signed hexadecimal string values. */\r\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\r\n\r\n/** Used to detect binary string values. */\r\nvar reIsBinary = /^0b[01]+$/i;\r\n\r\n/** Used to detect octal string values. */\r\nvar reIsOctal = /^0o[0-7]+$/i;\r\n\r\n/** Built-in method references without a dependency on `root`. */\r\nvar freeParseInt = parseInt;\r\n\r\n/** Detect free variable `global` from Node.js. */\r\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\r\n\r\n/** Detect free variable `self`. */\r\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\r\n\r\n/** Used as a reference to the global object. */\r\nvar root = freeGlobal || freeSelf || Function('return this')();\r\n\r\n/** Used for built-in method references. */\r\nvar objectProto = Object.prototype;\r\n\r\n/**\r\n * Used to resolve the\r\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\r\n * of values.\r\n */\r\nvar objectToString = objectProto.toString;\r\n\r\n/* Built-in method references for those with the same name as other `lodash` methods. */\r\nvar nativeMax = Math.max,\r\n nativeMin = Math.min;\r\n\r\n/**\r\n * Gets the timestamp of the number of milliseconds that have elapsed since\r\n * the Unix epoch (1 January 1970 00:00:00 UTC).\r\n *\r\n * @static\r\n * @memberOf _\r\n * @since 2.4.0\r\n * @category Date\r\n * @returns {number} Returns the timestamp.\r\n * @example\r\n *\r\n * _.defer(function(stamp) {\r\n * console.log(_.now() - stamp);\r\n * }, _.now());\r\n * // => Logs the number of milliseconds it took for the deferred invocation.\r\n */\r\nvar now = function () {\r\n return root.Date.now();\r\n};\r\n\r\n/**\r\n * Creates a debounced function that delays invoking `func` until after `wait`\r\n * milliseconds have elapsed since the last time the debounced function was\r\n * invoked. The debounced function comes with a `cancel` method to cancel\r\n * delayed `func` invocations and a `flush` method to immediately invoke them.\r\n * Provide `options` to indicate whether `func` should be invoked on the\r\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\r\n * with the last arguments provided to the debounced function. Subsequent\r\n * calls to the debounced function return the result of the last `func`\r\n * invocation.\r\n *\r\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\r\n * invoked on the trailing edge of the timeout only if the debounced function\r\n * is invoked more than once during the `wait` timeout.\r\n *\r\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\r\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\r\n *\r\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\r\n * for details over the differences between `_.debounce` and `_.throttle`.\r\n *\r\n * @static\r\n * @memberOf _\r\n * @since 0.1.0\r\n * @category Function\r\n * @param {Function} func The function to debounce.\r\n * @param {number} [wait=0] The number of milliseconds to delay.\r\n * @param {Object} [options={}] The options object.\r\n * @param {boolean} [options.leading=false]\r\n * Specify invoking on the leading edge of the timeout.\r\n * @param {number} [options.maxWait]\r\n * The maximum time `func` is allowed to be delayed before it's invoked.\r\n * @param {boolean} [options.trailing=true]\r\n * Specify invoking on the trailing edge of the timeout.\r\n * @returns {Function} Returns the new debounced function.\r\n * @example\r\n *\r\n * // Avoid costly calculations while the window size is in flux.\r\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\r\n *\r\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\r\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\r\n * 'leading': true,\r\n * 'trailing': false\r\n * }));\r\n *\r\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\r\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\r\n * var source = new EventSource('/stream');\r\n * jQuery(source).on('message', debounced);\r\n *\r\n * // Cancel the trailing debounced invocation.\r\n * jQuery(window).on('popstate', debounced.cancel);\r\n */\r\nfunction debounce(func, wait, options) {\r\n var lastArgs,\r\n lastThis,\r\n maxWait,\r\n result,\r\n timerId,\r\n lastCallTime,\r\n lastInvokeTime = 0,\r\n leading = false,\r\n maxing = false,\r\n trailing = true;\r\n\r\n if (typeof func != 'function') {\r\n throw new TypeError(FUNC_ERROR_TEXT);\r\n }\r\n wait = toNumber(wait) || 0;\r\n if (isObject(options)) {\r\n leading = !!options.leading;\r\n maxing = 'maxWait' in options;\r\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\r\n trailing = 'trailing' in options ? !!options.trailing : trailing;\r\n }\r\n\r\n function invokeFunc(time) {\r\n var args = lastArgs,\r\n thisArg = lastThis;\r\n\r\n lastArgs = lastThis = undefined;\r\n lastInvokeTime = time;\r\n result = func.apply(thisArg, args);\r\n return result;\r\n }\r\n\r\n function leadingEdge(time) {\r\n // Reset any `maxWait` timer.\r\n lastInvokeTime = time;\r\n // Start the timer for the trailing edge.\r\n timerId = setTimeout(timerExpired, wait);\r\n // Invoke the leading edge.\r\n return leading ? invokeFunc(time) : result;\r\n }\r\n\r\n function remainingWait(time) {\r\n var timeSinceLastCall = time - lastCallTime,\r\n timeSinceLastInvoke = time - lastInvokeTime,\r\n result = wait - timeSinceLastCall;\r\n\r\n return maxing ? nativeMin(result, maxWait - timeSinceLastInvoke) : result;\r\n }\r\n\r\n function shouldInvoke(time) {\r\n var timeSinceLastCall = time - lastCallTime,\r\n timeSinceLastInvoke = time - lastInvokeTime;\r\n\r\n // Either this is the first call, activity has stopped and we're at the\r\n // trailing edge, the system time has gone backwards and we're treating\r\n // it as the trailing edge, or we've hit the `maxWait` limit.\r\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\r\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\r\n }\r\n\r\n function timerExpired() {\r\n var time = now();\r\n if (shouldInvoke(time)) {\r\n return trailingEdge(time);\r\n }\r\n // Restart the timer.\r\n timerId = setTimeout(timerExpired, remainingWait(time));\r\n }\r\n\r\n function trailingEdge(time) {\r\n timerId = undefined;\r\n\r\n // Only invoke if we have `lastArgs` which means `func` has been\r\n // debounced at least once.\r\n if (trailing && lastArgs) {\r\n return invokeFunc(time);\r\n }\r\n lastArgs = lastThis = undefined;\r\n return result;\r\n }\r\n\r\n function cancel() {\r\n if (timerId !== undefined) {\r\n clearTimeout(timerId);\r\n }\r\n lastInvokeTime = 0;\r\n lastArgs = lastCallTime = lastThis = timerId = undefined;\r\n }\r\n\r\n function flush() {\r\n return timerId === undefined ? result : trailingEdge(now());\r\n }\r\n\r\n function debounced() {\r\n var time = now(),\r\n isInvoking = shouldInvoke(time);\r\n\r\n lastArgs = arguments;\r\n lastThis = this;\r\n lastCallTime = time;\r\n\r\n if (isInvoking) {\r\n if (timerId === undefined) {\r\n return leadingEdge(lastCallTime);\r\n }\r\n if (maxing) {\r\n // Handle invocations in a tight loop.\r\n timerId = setTimeout(timerExpired, wait);\r\n return invokeFunc(lastCallTime);\r\n }\r\n }\r\n if (timerId === undefined) {\r\n timerId = setTimeout(timerExpired, wait);\r\n }\r\n return result;\r\n }\r\n debounced.cancel = cancel;\r\n debounced.flush = flush;\r\n return debounced;\r\n}\r\n\r\n/**\r\n * Creates a throttled function that only invokes `func` at most once per\r\n * every `wait` milliseconds. The throttled function comes with a `cancel`\r\n * method to cancel delayed `func` invocations and a `flush` method to\r\n * immediately invoke them. Provide `options` to indicate whether `func`\r\n * should be invoked on the leading and/or trailing edge of the `wait`\r\n * timeout. The `func` is invoked with the last arguments provided to the\r\n * throttled function. Subsequent calls to the throttled function return the\r\n * result of the last `func` invocation.\r\n *\r\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\r\n * invoked on the trailing edge of the timeout only if the throttled function\r\n * is invoked more than once during the `wait` timeout.\r\n *\r\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\r\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\r\n *\r\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\r\n * for details over the differences between `_.throttle` and `_.debounce`.\r\n *\r\n * @static\r\n * @memberOf _\r\n * @since 0.1.0\r\n * @category Function\r\n * @param {Function} func The function to throttle.\r\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\r\n * @param {Object} [options={}] The options object.\r\n * @param {boolean} [options.leading=true]\r\n * Specify invoking on the leading edge of the timeout.\r\n * @param {boolean} [options.trailing=true]\r\n * Specify invoking on the trailing edge of the timeout.\r\n * @returns {Function} Returns the new throttled function.\r\n * @example\r\n *\r\n * // Avoid excessively updating the position while scrolling.\r\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\r\n *\r\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\r\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\r\n * jQuery(element).on('click', throttled);\r\n *\r\n * // Cancel the trailing throttled invocation.\r\n * jQuery(window).on('popstate', throttled.cancel);\r\n */\r\nfunction throttle(func, wait, options) {\r\n var leading = true,\r\n trailing = true;\r\n\r\n if (typeof func != 'function') {\r\n throw new TypeError(FUNC_ERROR_TEXT);\r\n }\r\n if (isObject(options)) {\r\n leading = 'leading' in options ? !!options.leading : leading;\r\n trailing = 'trailing' in options ? !!options.trailing : trailing;\r\n }\r\n return debounce(func, wait, {\r\n 'leading': leading,\r\n 'maxWait': wait,\r\n 'trailing': trailing\r\n });\r\n}\r\n\r\n/**\r\n * Checks if `value` is the\r\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\r\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\r\n *\r\n * @static\r\n * @memberOf _\r\n * @since 0.1.0\r\n * @category Lang\r\n * @param {*} value The value to check.\r\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\r\n * @example\r\n *\r\n * _.isObject({});\r\n * // => true\r\n *\r\n * _.isObject([1, 2, 3]);\r\n * // => true\r\n *\r\n * _.isObject(_.noop);\r\n * // => true\r\n *\r\n * _.isObject(null);\r\n * // => false\r\n */\r\nfunction isObject(value) {\r\n var type = typeof value;\r\n return !!value && (type == 'object' || type == 'function');\r\n}\r\n\r\n/**\r\n * Checks if `value` is object-like. A value is object-like if it's not `null`\r\n * and has a `typeof` result of \"object\".\r\n *\r\n * @static\r\n * @memberOf _\r\n * @since 4.0.0\r\n * @category Lang\r\n * @param {*} value The value to check.\r\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\r\n * @example\r\n *\r\n * _.isObjectLike({});\r\n * // => true\r\n *\r\n * _.isObjectLike([1, 2, 3]);\r\n * // => true\r\n *\r\n * _.isObjectLike(_.noop);\r\n * // => false\r\n *\r\n * _.isObjectLike(null);\r\n * // => false\r\n */\r\nfunction isObjectLike(value) {\r\n return !!value && typeof value == 'object';\r\n}\r\n\r\n/**\r\n * Checks if `value` is classified as a `Symbol` primitive or object.\r\n *\r\n * @static\r\n * @memberOf _\r\n * @since 4.0.0\r\n * @category Lang\r\n * @param {*} value The value to check.\r\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\r\n * @example\r\n *\r\n * _.isSymbol(Symbol.iterator);\r\n * // => true\r\n *\r\n * _.isSymbol('abc');\r\n * // => false\r\n */\r\nfunction isSymbol(value) {\r\n return typeof value == 'symbol' ||\r\n (isObjectLike(value) && objectToString.call(value) == symbolTag);\r\n}\r\n\r\n/**\r\n * Converts `value` to a number.\r\n *\r\n * @static\r\n * @memberOf _\r\n * @since 4.0.0\r\n * @category Lang\r\n * @param {*} value The value to process.\r\n * @returns {number} Returns the number.\r\n * @example\r\n *\r\n * _.toNumber(3.2);\r\n * // => 3.2\r\n *\r\n * _.toNumber(Number.MIN_VALUE);\r\n * // => 5e-324\r\n *\r\n * _.toNumber(Infinity);\r\n * // => Infinity\r\n *\r\n * _.toNumber('3.2');\r\n * // => 3.2\r\n */\r\nfunction toNumber(value) {\r\n if (typeof value == 'number') {\r\n return value;\r\n }\r\n if (isSymbol(value)) {\r\n return NAN;\r\n }\r\n if (isObject(value)) {\r\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\r\n value = isObject(other) ? (other + '') : other;\r\n }\r\n if (typeof value != 'string') {\r\n return value === 0 ? value : +value;\r\n }\r\n value = value.replace(reTrim, '');\r\n var isBinary = reIsBinary.test(value);\r\n return (isBinary || reIsOctal.test(value))\r\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\r\n : (reIsBadHex.test(value) ? NAN : +value);\r\n}\r\n\r\ndefine(function (require, exports, module) {\r\n module.exports = throttle;\r\n});","/*\r\n * MIT License\r\n * \r\n * Copyright (c) 2017 jackyr\r\n * \r\n * Permission is hereby granted, free of charge, to any person obtaining a copy\r\n * of this software and associated documentation files (the \"Software\"), to deal\r\n * in the Software without restriction, including without limitation the rights\r\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\r\n * copies of the Software, and to permit persons to whom the Software is\r\n * furnished to do so, subject to the following conditions:\r\n * \r\n * The above copyright notice and this permission notice shall be included in all\r\n * copies or substantial portions of the Software.\r\n * \r\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\r\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\r\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\r\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\r\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\r\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\r\n * SOFTWARE.\r\n *\r\n*/\r\n\r\n'use strict';\r\n(function (root, factory) {\r\n if (typeof define === 'function' && define.amd) {\r\n define([], factory);\r\n } else if (typeof exports === 'object') {\r\n module.exports = factory();\r\n } else {\r\n root.MultiClamp = root.MultiClamp || factory();\r\n }\r\n}(this, function () {\r\n function int(str) {\r\n return parseInt(str, 10);\r\n }\r\n function num(str) {\r\n return (str + '').replace(/[^\\d.]/g, '') - 0;\r\n }\r\n function accFix(num) {\r\n return Math.round(num * 100) / 100;\r\n }\r\n function setText(elm, text) {\r\n return 'textContent' in elm ? elm.textContent = text : elm.innerText = text;\r\n }\r\n function getText(elm) {\r\n return 'textContent' in elm ? elm.textContent : elm.innerText;\r\n }\r\n function getStyle(elm, style) {\r\n if (window.getComputedStyle) return window.getComputedStyle(elm, null).getPropertyValue(style);\r\n return elm.currentStyle.getAttribute(style.replace(/-(\\w)/g, function (v, v1) {\r\n return v1.toUpperCase();\r\n }));\r\n }\r\n function getHeight(elm) {\r\n var height = getStyle(elm, 'height');\r\n if (height.indexOf('px') > -1) return num(height);\r\n return accFix(num(elm.clientHeight) - num(getStyle(elm, 'padding-top')) - num(getStyle(elm, 'padding-bottom')));\r\n }\r\n function getElement(html) {\r\n if (/^<[\\w\\W]+>$/.test(html)) {\r\n var tempNode = document.createElement('div');\r\n tempNode.innerHTML = html;\r\n return tempNode.firstElementChild || tempNode.firstChild;\r\n } else {\r\n return html;\r\n }\r\n }\r\n\r\n var MultiClamp = function (element, option) {\r\n if (!element) return;\r\n this.element = element.length ? element[0] : element;\r\n this.originalOption = option || {};\r\n this.originalElement = this.element.cloneNode(true);\r\n\r\n this.preInit(this.originalOption);\r\n this.init();\r\n };\r\n MultiClamp.prototype = {\r\n constructor: MultiClamp,\r\n reload: function (option) {\r\n if (option) {\r\n if (option.useOriginalText) {\r\n this.element.innerHTML = this.originalElement.innerHTML;\r\n }\r\n if (this.element.style.display === '-webkit-box') {\r\n var cssStyleList = ['display', 'overflow', 'WebkitLineClamp', 'WebkitBoxOrient'];\r\n for (var i = 0; i < cssStyleList.length; i++) {\r\n this.element.style[cssStyleList[i]] = this.originalElement.style[cssStyleList[i]];\r\n }\r\n }\r\n var reloadOption = {};\r\n for (var key in this.originalOption) reloadOption[key] = this.originalOption[key];\r\n for (var k in option) reloadOption[k] = option[k];\r\n this.preInit(reloadOption);\r\n }\r\n this.init();\r\n },\r\n preInit: function (option) {\r\n this.option = {\r\n ellipsis: 'ellipsis' in option ? option.ellipsis : '...',\r\n clamp: 'clamp' in option ? option.clamp : 3,\r\n reverse: 'reverse' in option ? !!option.reverse : false,\r\n splitByWords: 'splitByWords' in option ? !!option.splitByWords : false,\r\n disableCssClamp: 'disableCssClamp' in option ? !!option.disableCssClamp : false,\r\n onClampStart: 'onClampStart' in option && typeof option.onClampStart === 'function'\r\n ? option.onClampStart : function () { },\r\n onClampEnd: 'onClampEnd' in option && typeof option.onClampEnd === 'function'\r\n ? option.onClampEnd : function () { }\r\n };\r\n if ('lineTextLen' in option) this.option.lineTextLen = option.lineTextLen;\r\n\r\n if (this.option.clamp === 'auto') {\r\n this.autoClamp = true;\r\n } else {\r\n this.option.clamp = int(this.option.clamp);\r\n if (isNaN(this.option.clamp) || this.option.clamp < 1) {\r\n throw new Error('Invaild clamp number!');\r\n }\r\n this.autoClamp = false;\r\n }\r\n\r\n this.useCssClamp = !this.option.disableCssClamp\r\n && !this.autoClamp\r\n && !this.option.reverse\r\n && !this.option.splitByWords\r\n && this.option.ellipsis === '...'\r\n && typeof document.body.style.webkitLineClamp !== 'undefined';\r\n },\r\n init: function () {\r\n if (this.useCssClamp) {\r\n var cssClampStyle = {\r\n display: '-webkit-box',\r\n overflow: 'hidden',\r\n WebkitLineClamp: this.option.clamp,\r\n WebkitBoxOrient: 'vertical'\r\n };\r\n for (var i in cssClampStyle) {\r\n this.element.style[i] = cssClampStyle[i];\r\n }\r\n } else {\r\n this.contentText = getText(this.element);\r\n this.ellipsis = getElement(this.option.ellipsis);\r\n this.clamp();\r\n }\r\n },\r\n getSingleLineHeight: function () {\r\n var lineHeight = getStyle(this.element, 'line-height');\r\n var self = this;\r\n\r\n if (lineHeight.indexOf('px') > -1) {\r\n return num(lineHeight);\r\n } else if (!isNaN(lineHeight)) {\r\n var fontSize = getStyle(this.element, 'font-size');\r\n if (fontSize.indexOf('px') > -1) return accFix(num(fontSize) * lineHeight);\r\n if (fontSize.indexOf('pt') > -1) return accFix(num(fontSize) * 4 / 3 * lineHeight);\r\n return createSingleLineAndGetHeight();\r\n } else {\r\n return createSingleLineAndGetHeight();\r\n }\r\n\r\n function createSingleLineAndGetHeight() {\r\n var contentHTML = self.element.innerHTML;\r\n self.element.innerHTML = '.';\r\n var height = getHeight(self.element);\r\n self.element.innerHTML = contentHTML;\r\n return height;\r\n }\r\n },\r\n clamp: function () {\r\n var self = this;\r\n var singleLineHeight, currentHeight, maxHeight, heightStyle;\r\n\r\n singleLineHeight = this.getSingleLineHeight();\r\n\r\n if (this.contentText === '' || !singleLineHeight) {\r\n doNotNeedToClamp();\r\n return;\r\n }\r\n\r\n if (this.autoClamp) {\r\n maxHeight = getHeight(this.element);\r\n this.option.clamp = int(maxHeight / singleLineHeight);\r\n heightStyle = this.element.style.height;\r\n this.element.style.height = 'auto';\r\n } else {\r\n maxHeight = accFix(singleLineHeight * this.option.clamp);\r\n }\r\n\r\n currentHeight = getHeight(this.element);\r\n\r\n if (!currentHeight || !maxHeight || currentHeight <= maxHeight) {\r\n if (this.autoClamp) this.element.style.height = heightStyle;\r\n doNotNeedToClamp();\r\n return;\r\n }\r\n\r\n var onClampStartReturnValue = this.option.onClampStart.call(this, {\r\n needClamp: true\r\n });\r\n\r\n if (onClampStartReturnValue === undefined || !!onClampStartReturnValue) {\r\n var trunk = this.option.splitByWords ? this.contentText.match(/\\w+|\\W+?/g) : this.contentText;\r\n var defaultIncrease = int(this.option.lineTextLen || Math.min(20, this.contentText.length / this.option.clamp)) * this.option.clamp;\r\n\r\n this.trunkSlice(trunk, maxHeight, defaultIncrease, defaultIncrease, false);\r\n\r\n if (this.autoClamp) this.element.style.height = heightStyle;\r\n\r\n this.option.onClampEnd.call(this, {\r\n didClamp: true\r\n });\r\n } else {\r\n if (this.autoClamp) this.element.style.height = heightStyle;\r\n doNotNeedToClamp(true);\r\n }\r\n\r\n function doNotNeedToClamp(isForcePrevent) {\r\n if (!isForcePrevent) self.option.onClampStart.call(self, {\r\n needClamp: false\r\n });\r\n self.option.onClampEnd.call(self, {\r\n didClamp: false\r\n });\r\n }\r\n },\r\n trunkSlice: function (trunk, maxHeight, increase, len, isDecrease) {\r\n var self = this;\r\n var slicedTrunk = this.option.reverse ? trunk.slice(trunk.length - len) : trunk.slice(0, len);\r\n\r\n fill(this.option.splitByWords ? slicedTrunk.join('') : slicedTrunk);\r\n\r\n var i;\r\n if (getHeight(this.element) > maxHeight) {\r\n i = isDecrease ? increase : int(increase / 2) || 1;\r\n this.trunkSlice(trunk, maxHeight, i, len - i, true);\r\n } else {\r\n if (increase === 1 && isDecrease) {\r\n if (this.option.splitByWords && /\\s/.test(slicedTrunk[this.option.reverse ? 0 : slicedTrunk.length - 1])) {\r\n fill((this.option.reverse ? slicedTrunk.slice(1) : slicedTrunk.slice(0, slicedTrunk.length - 1)).join(''), true);\r\n } else {\r\n fill(this.option.splitByWords ? slicedTrunk.join('') : slicedTrunk, true);\r\n }\r\n return;\r\n }\r\n i = isDecrease ? int(increase / 2) || 1 : increase;\r\n this.trunkSlice(trunk, maxHeight, i, len + i, false);\r\n }\r\n\r\n function fill(text, isLast) {\r\n if (typeof self.ellipsis === 'object') {\r\n setText(self.element, text);\r\n if (self.option.reverse) {\r\n self.element.insertBefore(isLast ? self.ellipsis : self.ellipsis.cloneNode(true), self.element.firstChild);\r\n } else {\r\n self.element.appendChild(isLast ? self.ellipsis : self.ellipsis.cloneNode(true));\r\n }\r\n } else {\r\n if (self.option.reverse) {\r\n setText(self.element, self.ellipsis + text);\r\n } else {\r\n setText(self.element, text + self.ellipsis);\r\n }\r\n }\r\n }\r\n },\r\n };\r\n\r\n return MultiClamp;\r\n}));","/*\r\n* AJ - 20181026\r\n* Added createTag on blurring\r\n*\r\n* KT - 20190315\r\n* Added option to turn on/off autoselect\r\n*/\r\n\r\n/*\r\n* jQuery UI Tag-it!\r\n*\r\n* @version v2.0 (06/2011)\r\n*\r\n* Copyright 2011, Levy Carneiro Jr.\r\n* Released under the MIT license.\r\n* http://aehlke.github.com/tag-it/LICENSE\r\n*\r\n* Homepage:\r\n* http://aehlke.github.com/tag-it/\r\n*\r\n* Authors:\r\n* Levy Carneiro Jr.\r\n* Martin Rehfeld\r\n* Tobias Schmidt\r\n* Skylar Challand\r\n* Alex Ehlke\r\n*\r\n* Maintainer:\r\n* Alex Ehlke - Twitter: @aehlke\r\n*\r\n* Dependencies:\r\n* jQuery v1.4+\r\n* jQuery UI v1.8+\r\n*/\r\n(function ($) {\r\n\r\n\t$.widget('ui.tagit', {\r\n\t\toptions: {\r\n\t\t\tallowDuplicates: false,\r\n\t\t\tcaseSensitive: true,\r\n\t\t\tfieldName: 'tags',\r\n\t\t\tplaceholderText: null, // Sets `placeholder` attr on input field.\r\n\t\t\treadOnly: false, // Disables editing.\r\n\t\t\tremoveConfirmation: false, // Require confirmation to remove tags.\r\n\t\t\ttagLimit: null, // Max number of tags allowed (null for unlimited).\r\n\r\n\t\t\t// Used for autocomplete, unless you override `autocomplete.source`.\r\n\t\t\tavailableTags: [],\r\n\r\n\t\t\t// Use to override or add any options to the autocomplete widget.\r\n\t\t\t//\r\n\t\t\t// By default, autocomplete.source will map to availableTags,\r\n\t\t\t// unless overridden.\r\n\t\t\tautocomplete: {},\r\n\r\n\t\t\t// Shows autocomplete before the user even types anything.\r\n\t\t\tshowAutocompleteOnFocus: false,\r\n\r\n\t\t\t// When enabled, quotes are unneccesary for inputting multi-word tags.\r\n\t\t\tallowSpaces: false,\r\n\r\n\t\t\t// The below options are for using a single field instead of several\r\n\t\t\t// for our form values.\r\n\t\t\t//\r\n\t\t\t// When enabled, will use a single hidden field for the form,\r\n\t\t\t// rather than one per tag. It will delimit tags in the field\r\n\t\t\t// with singleFieldDelimiter.\r\n\t\t\t//\r\n\t\t\t// The easiest way to use singleField is to just instantiate tag-it\r\n\t\t\t// on an INPUT element, in which case singleField is automatically\r\n\t\t\t// set to true, and singleFieldNode is set to that element. This\r\n\t\t\t// way, you don't need to fiddle with these options.\r\n\t\t\tsingleField: false,\r\n\r\n\t\t\t// This is just used when preloading data from the field, and for\r\n\t\t\t// populating the field with delimited tags as the user adds them.\r\n\t\t\tsingleFieldDelimiter: ',',\r\n\r\n\t\t\t// Set this to an input DOM node to use an existing form field.\r\n\t\t\t// Any text in it will be erased on init. But it will be\r\n\t\t\t// populated with the text of tags as they are created,\r\n\t\t\t// delimited by singleFieldDelimiter.\r\n\t\t\t//\r\n\t\t\t// If this is not set, we create an input node for it,\r\n\t\t\t// with the name given in settings.fieldName.\r\n\t\t\tsingleFieldNode: null,\r\n\r\n\t\t\t// Whether to animate tag removals or not.\r\n\t\t\tanimate: true,\r\n\r\n\t\t\t// Optionally set a tabindex attribute on the input that gets\r\n\t\t\t// created for tag-it.\r\n\t\t\ttabIndex: null,\r\n\r\n\t\t\t// Event callbacks.\r\n\t\t\tbeforeTagAdded: null,\r\n\t\t\tafterTagAdded: null,\r\n\r\n\t\t\tbeforeTagRemoved: null,\r\n\t\t\tafterTagRemoved: null,\r\n\r\n\t\t\tonTagClicked: null,\r\n\t\t\tonTagLimitExceeded: null,\r\n\r\n\r\n\t\t\t// DEPRECATED:\r\n\t\t\t//\r\n\t\t\t// /!\\ These event callbacks are deprecated and WILL BE REMOVED at some\r\n\t\t\t// point in the future. They're here for backwards-compatibility.\r\n\t\t\t// Use the above before/after event callbacks instead.\r\n\t\t\tonTagAdded: null,\r\n\t\t\tonTagRemoved: null,\r\n\t\t\t// `autocomplete.source` is the replacement for tagSource.\r\n\t\t\ttagSource: null\r\n\t\t\t// Do not use the above deprecated options.\r\n\t\t},\r\n\r\n\t\t_create: function () {\r\n\t\t\t// for handling static scoping inside callbacks\r\n\t\t\tvar that = this;\r\n\r\n\t\t\t// There are 2 kinds of DOM nodes this widget can be instantiated on:\r\n\t\t\t// 1. UL, OL, or some element containing either of these.\r\n\t\t\t// 2. INPUT, in which case 'singleField' is overridden to true,\r\n\t\t\t// a UL is created and the INPUT is hidden.\r\n\t\t\tif (this.element.is('input')) {\r\n\t\t\t\tthis.tagList = $('
      ').insertAfter(this.element);\r\n\t\t\t\tthis.options.singleField = true;\r\n\t\t\t\tthis.options.singleFieldNode = this.element;\r\n\t\t\t\tthis.element.addClass('tagit-hidden-field');\r\n\t\t\t} else {\r\n\t\t\t\tthis.tagList = this.element.find('ul, ol').andSelf().last();\r\n\t\t\t}\r\n\r\n\t\t\tthis.tagInput = $('').addClass('ui-widget-content');\r\n\r\n\t\t\tif (this.options.readOnly) this.tagInput.attr('disabled', 'disabled');\r\n\r\n\t\t\tif (this.options.tabIndex) {\r\n\t\t\t\tthis.tagInput.attr('tabindex', this.options.tabIndex);\r\n\t\t\t}\r\n\r\n\t\t\tif (this.options.placeholderText) {\r\n\t\t\t\tthis.tagInput.attr('placeholder', this.options.placeholderText);\r\n\t\t\t}\r\n\r\n\t\t\tif (!this.options.autocomplete.source) {\r\n\t\t\t\tthis.options.autocomplete.source = function (search, showChoices) {\r\n\t\t\t\t\tvar filter = search.term.toLowerCase();\r\n\t\t\t\t\tvar choices = $.grep(this.options.availableTags, function (element) {\r\n\t\t\t\t\t\t// Only match autocomplete options that begin with the search term.\r\n\t\t\t\t\t\t// (Case insensitive.)\r\n\t\t\t\t\t\treturn (element.toLowerCase().indexOf(filter) === 0);\r\n\t\t\t\t\t});\r\n\t\t\t\t\tif (!this.options.allowDuplicates) {\r\n\t\t\t\t\t\tchoices = this._subtractArray(choices, this.assignedTags());\r\n\t\t\t\t\t}\r\n\t\t\t\t\tshowChoices(choices);\r\n\t\t\t\t};\r\n\t\t\t}\r\n\r\n\t\t\tif (this.options.showAutocompleteOnFocus) {\r\n\t\t\t\tthis.tagInput.focus(function (event, ui) {\r\n\t\t\t\t\tthat._showAutocomplete();\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (typeof this.options.autocomplete.minLength === 'undefined') {\r\n\t\t\t\t\tthis.options.autocomplete.minLength = 0;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Bind autocomplete.source callback functions to this context.\r\n\t\t\tif ($.isFunction(this.options.autocomplete.source)) {\r\n\t\t\t\tthis.options.autocomplete.source = $.proxy(this.options.autocomplete.source, this);\r\n\t\t\t}\r\n\r\n\t\t\t// DEPRECATED.\r\n\t\t\tif ($.isFunction(this.options.tagSource)) {\r\n\t\t\t\tthis.options.tagSource = $.proxy(this.options.tagSource, this);\r\n\t\t\t}\r\n\r\n\t\t\tthis.tagList\r\n\t\t\t\t.addClass('tagit')\r\n\t\t\t\t.addClass('ui-widget ui-widget-content ui-corner-all')\r\n\t\t\t\t// Create the input field.\r\n\t\t\t\t.append($('
    • ').append(this.tagInput))\r\n\t\t\t\t.click(function (e) {\r\n\t\t\t\t\tvar target = $(e.target);\r\n\t\t\t\t\tif (target.hasClass('tagit-label')) {\r\n\t\t\t\t\t\tvar tag = target.closest('.tagit-choice');\r\n\t\t\t\t\t\tif (!tag.hasClass('removed')) {\r\n\t\t\t\t\t\t\tthat._trigger('onTagClicked', e, { tag: tag, tagLabel: that.tagLabel(tag) });\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// Sets the focus() to the input field, if the user\r\n\t\t\t\t\t\t// clicks anywhere inside the UL. This is needed\r\n\t\t\t\t\t\t// because the input field needs to be of a small size.\r\n\t\t\t\t\t\tthat.tagInput.focus();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t// Single field support.\r\n\t\t\tvar addedExistingFromSingleFieldNode = false;\r\n\t\t\tif (this.options.singleField) {\r\n\t\t\t\tif (this.options.singleFieldNode) {\r\n\t\t\t\t\t// Add existing tags from the input field.\r\n\t\t\t\t\tvar node = $(this.options.singleFieldNode);\r\n\t\t\t\t\tvar tags = node.val().split(this.options.singleFieldDelimiter);\r\n\t\t\t\t\tnode.val('');\r\n\t\t\t\t\t$.each(tags, function (index, tag) {\r\n\t\t\t\t\t\tthat.createTag(tag, null, true);\r\n\t\t\t\t\t\taddedExistingFromSingleFieldNode = true;\r\n\t\t\t\t\t});\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// Create our single field input after our list.\r\n\t\t\t\t\tthis.options.singleFieldNode = $('');\r\n\t\t\t\t\tthis.tagList.after(this.options.singleFieldNode);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// Add existing tags from the list, if any.\r\n\t\t\tif (!addedExistingFromSingleFieldNode) {\r\n\t\t\t\tthis.tagList.children('li').each(function () {\r\n\t\t\t\t\tif (!$(this).hasClass('tagit-new')) {\r\n\t\t\t\t\t\tthat.createTag($(this).text(), $(this).attr('class'), true);\r\n\t\t\t\t\t\t$(this).remove();\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t// Events.\r\n\t\t\tthis.tagInput\r\n\t\t\t\t.keydown(function (event) {\r\n\t\t\t\t\t// Backspace is not detected within a keypress, so it must use keydown.\r\n\t\t\t\t\tif (event.which == $.ui.keyCode.BACKSPACE && that.tagInput.val() === '') {\r\n\t\t\t\t\t\tvar tag = that._lastTag();\r\n\t\t\t\t\t\tif (!that.options.removeConfirmation || tag.hasClass('remove')) {\r\n\t\t\t\t\t\t\t// When backspace is pressed, the last tag is deleted.\r\n\t\t\t\t\t\t\tthat.removeTag(tag);\r\n\t\t\t\t\t\t} else if (that.options.removeConfirmation) {\r\n\t\t\t\t\t\t\ttag.addClass('remove ui-state-highlight');\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t} else if (that.options.removeConfirmation) {\r\n\t\t\t\t\t\tthat._lastTag().removeClass('remove ui-state-highlight');\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\t// Comma/Space/Enter are all valid delimiters for new tags,\r\n\t\t\t\t\t// except when there is an open quote or if setting allowSpaces = true.\r\n\t\t\t\t\t// Tab will also create a tag, unless the tag input is empty,\r\n\t\t\t\t\t// in which case it isn't caught.\r\n\t\t\t\t\tif (\r\n\t\t\t\t\t\t(event.which === $.ui.keyCode.COMMA && event.shiftKey === false) ||\r\n\t\t\t\t\t\tevent.which === $.ui.keyCode.ENTER ||\r\n\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\tevent.which == $.ui.keyCode.TAB &&\r\n\t\t\t\t\t\t\tthat.tagInput.val() !== ''\r\n\t\t\t\t\t\t) ||\r\n\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\tevent.which == $.ui.keyCode.SPACE &&\r\n\t\t\t\t\t\t\tthat.options.allowSpaces !== true &&\r\n\t\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t\t$.trim(that.tagInput.val()).replace(/^s*/, '').charAt(0) != '\"' ||\r\n\t\t\t\t\t\t\t\t(\r\n\t\t\t\t\t\t\t\t\t$.trim(that.tagInput.val()).charAt(0) == '\"' &&\r\n\t\t\t\t\t\t\t\t\t$.trim(that.tagInput.val()).charAt($.trim(that.tagInput.val()).length - 1) == '\"' &&\r\n\t\t\t\t\t\t\t\t\t$.trim(that.tagInput.val()).length - 1 !== 0\r\n\t\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t\t)\r\n\t\t\t\t\t\t)\r\n\t\t\t\t\t) {\r\n\t\t\t\t\t\t// Enter submits the form if there's no text in the input.\r\n\t\t\t\t\t\tif (!(event.which === $.ui.keyCode.ENTER && that.tagInput.val() === '')) {\r\n\t\t\t\t\t\t\tevent.preventDefault();\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t// Autocomplete will create its own tag from a selection and close automatically.\r\n\t\t\t\t\t\tif (!(that.options.autocomplete.autoFocus && that.tagInput.data('autocomplete-open'))) {\r\n\t\t\t\t\t\t\tthat.tagInput.autocomplete('close');\r\n\t\t\t\t\t\t\tthat.createTag(that._cleanedInput());\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t}).blur(function (e) {\r\n\t\t\t\t\t// Create a tag when the element loses focus.\r\n\t\t\t\t\t// If autocomplete is enabled and suggestion was clicked, don't add it.\r\n\t\t\t\t\tif (!that.tagInput.data('autocomplete-open')) {\r\n\t\t\t\t\t\tthat.createTag(that._cleanedInput());\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t// AJ - 20181026\r\n\t\t\t\t\t\tvar children = that.tagInput && that.tagInput.autocomplete ? that.tagInput.autocomplete('widget').children('.ui-menu-item') : [];\r\n\r\n\t\t\t\t\t\t// KT - 20190315, turn on/off autoselect\r\n\t\t\t\t\t\tif (children.length && that.tagInput.parents('.form-element').data('autoselect')) {\r\n\t\t\t\t\t\t\tthat.createTag(children.first().text());\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t// Autocomplete.\r\n\t\t\tif (this.options.availableTags || this.options.tagSource || this.options.autocomplete.source) {\r\n\t\t\t\tvar autocompleteOptions = {\r\n\t\t\t\t\tselect: function (event, ui) {\r\n\t\t\t\t\t\tthat.createTag(ui.item.value);\r\n\t\t\t\t\t\t// Preventing the tag input to be updated with the chosen value.\r\n\t\t\t\t\t\treturn false;\r\n\t\t\t\t\t}\r\n\t\t\t\t};\r\n\t\t\t\t$.extend(autocompleteOptions, this.options.autocomplete);\r\n\r\n\t\t\t\t// tagSource is deprecated, but takes precedence here since autocomplete.source is set by default,\r\n\t\t\t\t// while tagSource is left null by default.\r\n\t\t\t\tautocompleteOptions.source = this.options.tagSource || autocompleteOptions.source;\r\n\r\n\t\t\t\tthis.tagInput.autocomplete(autocompleteOptions).bind('autocompleteopen.tagit', function (event, ui) {\r\n\t\t\t\t\tthat.tagInput.data('autocomplete-open', true);\r\n\t\t\t\t}).bind('autocompleteclose.tagit', function (event, ui) {\r\n\t\t\t\t\tthat.tagInput.data('autocomplete-open', false);\r\n\t\t\t\t});\r\n\r\n\t\t\t\tthis.tagInput.autocomplete('widget').addClass('tagit-autocomplete');\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tdestroy: function () {\r\n\t\t\t$.Widget.prototype.destroy.call(this);\r\n\r\n\t\t\tthis.element.unbind('.tagit');\r\n\t\t\tthis.tagList.unbind('.tagit');\r\n\r\n\t\t\tthis.tagInput.removeData('autocomplete-open');\r\n\r\n\t\t\tthis.tagList.removeClass([\r\n\t\t\t\t'tagit',\r\n\t\t\t\t'ui-widget',\r\n\t\t\t\t'ui-widget-content',\r\n\t\t\t\t'ui-corner-all',\r\n\t\t\t\t'tagit-hidden-field'\r\n\t\t\t].join(' '));\r\n\r\n\t\t\tif (this.element.is('input')) {\r\n\t\t\t\tthis.element.removeClass('tagit-hidden-field');\r\n\t\t\t\tthis.tagList.remove();\r\n\t\t\t} else {\r\n\t\t\t\tthis.element.children('li').each(function () {\r\n\t\t\t\t\tif ($(this).hasClass('tagit-new')) {\r\n\t\t\t\t\t\t$(this).remove();\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$(this).removeClass([\r\n\t\t\t\t\t\t\t'tagit-choice',\r\n\t\t\t\t\t\t\t'ui-widget-content',\r\n\t\t\t\t\t\t\t'ui-state-default',\r\n\t\t\t\t\t\t\t'ui-state-highlight',\r\n\t\t\t\t\t\t\t'ui-corner-all',\r\n\t\t\t\t\t\t\t'remove',\r\n\t\t\t\t\t\t\t'tagit-choice-editable',\r\n\t\t\t\t\t\t\t'tagit-choice-read-only'\r\n\t\t\t\t\t\t].join(' '));\r\n\r\n\t\t\t\t\t\t$(this).text($(this).children('.tagit-label').text());\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (this.singleFieldNode) {\r\n\t\t\t\t\tthis.singleFieldNode.remove();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\treturn this;\r\n\t\t},\r\n\r\n\t\t_cleanedInput: function () {\r\n\t\t\t// Returns the contents of the tag input, cleaned and ready to be passed to createTag\r\n\t\t\treturn $.trim(this.tagInput.val().replace(/^\"(.*)\"$/, '$1'));\r\n\t\t},\r\n\r\n\t\t_lastTag: function () {\r\n\t\t\treturn this.tagList.find('.tagit-choice:last:not(.removed)');\r\n\t\t},\r\n\r\n\t\t_tags: function () {\r\n\t\t\treturn this.tagList.find('.tagit-choice:not(.removed)');\r\n\t\t},\r\n\r\n\t\tassignedTags: function () {\r\n\t\t\t// Returns an array of tag string values\r\n\t\t\tvar that = this;\r\n\t\t\tvar tags = [];\r\n\t\t\tif (this.options.singleField) {\r\n\t\t\t\ttags = $(this.options.singleFieldNode).val().split(this.options.singleFieldDelimiter);\r\n\t\t\t\tif (tags[0] === '') {\r\n\t\t\t\t\ttags = [];\r\n\t\t\t\t}\r\n\t\t\t} else {\r\n\t\t\t\tthis._tags().each(function () {\r\n\t\t\t\t\ttags.push(that.tagLabel(this));\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\treturn tags;\r\n\t\t},\r\n\r\n\t\t_updateSingleTagsField: function (tags) {\r\n\t\t\t// Takes a list of tag string values, updates this.options.singleFieldNode.val to the tags delimited by this.options.singleFieldDelimiter\r\n\t\t\t$(this.options.singleFieldNode).val(tags.join(this.options.singleFieldDelimiter)).trigger('change');\r\n\t\t},\r\n\r\n\t\t_subtractArray: function (a1, a2) {\r\n\t\t\tvar result = [];\r\n\t\t\tfor (var i = 0; i < a1.length; i++) {\r\n\t\t\t\tif ($.inArray(a1[i], a2) == -1) {\r\n\t\t\t\t\tresult.push(a1[i]);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn result;\r\n\t\t},\r\n\r\n\t\ttagLabel: function (tag) {\r\n\t\t\t// Returns the tag's string label.\r\n\t\t\tif (this.options.singleField) {\r\n\t\t\t\treturn $(tag).find('.tagit-label:first').text();\r\n\t\t\t} else {\r\n\t\t\t\treturn $(tag).find('input:first').val();\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\t_showAutocomplete: function () {\r\n\t\t\tthis.tagInput.autocomplete('search', '');\r\n\t\t},\r\n\r\n\t\t_findTagByLabel: function (name) {\r\n\t\t\tvar that = this;\r\n\t\t\tvar tag = null;\r\n\t\t\tthis._tags().each(function (i) {\r\n\t\t\t\tif (that._formatStr(name) == that._formatStr(that.tagLabel(this))) {\r\n\t\t\t\t\ttag = $(this);\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\treturn tag;\r\n\t\t},\r\n\r\n\t\t_isNew: function (name) {\r\n\t\t\treturn !this._findTagByLabel(name);\r\n\t\t},\r\n\r\n\t\t_formatStr: function (str) {\r\n\t\t\tif (this.options.caseSensitive) {\r\n\t\t\t\treturn str;\r\n\t\t\t}\r\n\t\t\treturn $.trim(str.toLowerCase());\r\n\t\t},\r\n\r\n\t\t_effectExists: function (name) {\r\n\t\t\treturn Boolean($.effects && ($.effects[name] || ($.effects.effect && $.effects.effect[name])));\r\n\t\t},\r\n\r\n\t\tcreateTag: function (value, additionalClass, duringInitialization) {\r\n\t\t\tvar that = this;\r\n\r\n\t\t\tvalue = $.trim(value);\r\n\r\n\t\t\tif (this.options.preprocessTag) {\r\n\t\t\t\tvalue = this.options.preprocessTag(value);\r\n\t\t\t}\r\n\r\n\t\t\tif (value === '') {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tif (!this.options.allowDuplicates && !this._isNew(value)) {\r\n\t\t\t\tvar existingTag = this._findTagByLabel(value);\r\n\t\t\t\tif (this._trigger('onTagExists', null, {\r\n\t\t\t\t\texistingTag: existingTag,\r\n\t\t\t\t\tduringInitialization: duringInitialization\r\n\t\t\t\t}) !== false) {\r\n\t\t\t\t\tif (this._effectExists('highlight')) {\r\n\t\t\t\t\t\texistingTag.effect('highlight');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.options.tagLimit && this._tags().length >= this.options.tagLimit) {\r\n\t\t\t\tthis._trigger('onTagLimitExceeded', null, { duringInitialization: duringInitialization });\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\tvar label = $(this.options.onTagClicked ? '
      ' : '').text(value);\r\n\r\n\t\t\t// Create tag.\r\n\t\t\tvar tag = $('
    • ')\r\n\t\t\t\t.addClass('tagit-choice ui-widget-content ui-state-default ui-corner-all')\r\n\t\t\t\t.addClass(additionalClass)\r\n\t\t\t\t.append(label);\r\n\r\n\t\t\tif (this.options.readOnly) {\r\n\t\t\t\ttag.addClass('tagit-choice-read-only');\r\n\t\t\t} else {\r\n\t\t\t\ttag.addClass('tagit-choice-editable');\r\n\t\t\t\t// Button for removing the tag.\r\n\t\t\t\tvar removeTagIcon = $('')\r\n\t\t\t\t\t.addClass('ui-icon ui-icon-close');\r\n\t\t\t\tvar removeTag = $('\\xd7') // \\xd7 is an X\r\n\t\t\t\t\t.addClass('tagit-close')\r\n\t\t\t\t\t.append(removeTagIcon)\r\n\t\t\t\t\t.click(function (e) {\r\n\t\t\t\t\t\t// Removes a tag when the little 'x' is clicked.\r\n\t\t\t\t\t\tthat.removeTag(tag);\r\n\t\t\t\t\t});\r\n\t\t\t\ttag.append(removeTag);\r\n\t\t\t}\r\n\r\n\t\t\t// Unless options.singleField is set, each tag has a hidden input field inline.\r\n\t\t\tif (!this.options.singleField) {\r\n\t\t\t\tvar escapedValue = label.html();\r\n\t\t\t\ttag.append('');\r\n\t\t\t}\r\n\r\n\t\t\tif (this._trigger('beforeTagAdded', null, {\r\n\t\t\t\ttag: tag,\r\n\t\t\t\ttagLabel: this.tagLabel(tag),\r\n\t\t\t\tduringInitialization: duringInitialization\r\n\t\t\t}) === false) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.options.singleField) {\r\n\t\t\t\tvar tags = this.assignedTags();\r\n\t\t\t\ttags.push(value);\r\n\t\t\t\tthis._updateSingleTagsField(tags);\r\n\t\t\t}\r\n\r\n\t\t\t// DEPRECATED.\r\n\t\t\tthis._trigger('onTagAdded', null, tag);\r\n\r\n\t\t\tthis.tagInput.val('');\r\n\r\n\t\t\t// Insert tag.\r\n\t\t\tthis.tagInput.parent().before(tag);\r\n\r\n\t\t\tthis._trigger('afterTagAdded', null, {\r\n\t\t\t\ttag: tag,\r\n\t\t\t\ttagLabel: this.tagLabel(tag),\r\n\t\t\t\tduringInitialization: duringInitialization\r\n\t\t\t});\r\n\r\n\t\t\tif (this.options.showAutocompleteOnFocus && !duringInitialization) {\r\n\t\t\t\tsetTimeout(function () { that._showAutocomplete(); }, 0);\r\n\t\t\t}\r\n\t\t},\r\n\r\n\t\tremoveTag: function (tag, animate) {\r\n\t\t\tanimate = typeof animate === 'undefined' ? this.options.animate : animate;\r\n\r\n\t\t\ttag = $(tag);\r\n\r\n\t\t\t// DEPRECATED.\r\n\t\t\tthis._trigger('onTagRemoved', null, tag);\r\n\r\n\t\t\tif (this._trigger('beforeTagRemoved', null, { tag: tag, tagLabel: this.tagLabel(tag) }) === false) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tif (this.options.singleField) {\r\n\t\t\t\tvar tags = this.assignedTags();\r\n\t\t\t\tvar removedTagLabel = this.tagLabel(tag);\r\n\t\t\t\ttags = $.grep(tags, function (el) {\r\n\t\t\t\t\treturn el != removedTagLabel;\r\n\t\t\t\t});\r\n\t\t\t\tthis._updateSingleTagsField(tags);\r\n\t\t\t}\r\n\r\n\t\t\tif (animate) {\r\n\t\t\t\ttag.addClass('removed'); // Excludes this tag from _tags.\r\n\t\t\t\tvar hide_args = this._effectExists('blind') ? ['blind', { direction: 'horizontal' }, 'fast'] : ['fast'];\r\n\r\n\t\t\t\tvar thisTag = this;\r\n\t\t\t\thide_args.push(function () {\r\n\t\t\t\t\ttag.remove();\r\n\t\t\t\t\tthisTag._trigger('afterTagRemoved', null, { tag: tag, tagLabel: thisTag.tagLabel(tag) });\r\n\t\t\t\t});\r\n\r\n\t\t\t\ttag.fadeOut('fast').hide.apply(tag, hide_args).dequeue();\r\n\t\t\t} else {\r\n\t\t\t\ttag.remove();\r\n\t\t\t\tthis._trigger('afterTagRemoved', null, { tag: tag, tagLabel: this.tagLabel(tag) });\r\n\t\t\t}\r\n\r\n\t\t},\r\n\r\n\t\tremoveTagByLabel: function (tagLabel, animate) {\r\n\t\t\tvar toRemove = this._findTagByLabel(tagLabel);\r\n\t\t\tif (!toRemove) {\r\n\t\t\t\tthrow \"No such tag exists with the name '\" + tagLabel + \"'\";\r\n\t\t\t}\r\n\t\t\tthis.removeTag(toRemove, animate);\r\n\t\t},\r\n\r\n\t\tremoveAll: function () {\r\n\t\t\t// Removes all tags.\r\n\t\t\tvar that = this;\r\n\t\t\tthis._tags().each(function (index, tag) {\r\n\t\t\t\tthat.removeTag(tag, false);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t});\r\n})(jQuery);\r\n","define([\r\n 'base', 'booking', 'booking_widget', 'booking_stepone', 'booking_steptwo', 'booking_stepthree',\r\n 'campaign', 'dirrty', 'postslist', 'certificate', 'quotation', 'countries', 'flexmenu', 'expatriate',\r\n 'techequip', 'yearlyproduct', 'replace',\r\n 'healthdeclaration', 'nhcpayment', 'monitorpage', 'responsive_swipe', 'claims_widget', 'pricecheck',\r\n 'pagination_simple', 'auth', 'erv_pricebreakdown', 'fileuploadhelper', 'ajax_helper', 'tabs', 'hero_image'\r\n], function (\r\n base, booking, booking_widget, booking_stepone, booking_steptwo, booking_stepthree,\r\n campaign, dirrty, postslist, certificate, quotation, countries, flexmenu, expatriate,\r\n techequip, yearlyproduct, replace,\r\n healthdeclaration, nhcpayment, monitorpage, responsive_swipe, claims_widget, pricecheck,\r\n pagination_simple, auth, erv_pricebreakdown, fileuploadhelper, ajax_helper, tabs, hero_image,\r\n) {\r\n return {\r\n 'base': base,\r\n 'booking': booking,\r\n 'booking_widget': booking_widget,\r\n 'booking_stepone': booking_stepone,\r\n 'booking_steptwo': booking_steptwo,\r\n 'booking_stepthree': booking_stepthree,\r\n 'campaign': campaign,\r\n 'dirrty': dirrty,\r\n 'postslist': postslist,\r\n 'certificate': certificate,\r\n 'quotation': quotation,\r\n 'countries': countries,\r\n 'flexmenu': flexmenu,\r\n 'expatriate': expatriate,\r\n 'techequip': techequip,\r\n 'yearlyproduct': yearlyproduct,\r\n 'replace': replace,\r\n 'healthdeclaration': healthdeclaration,\r\n 'nhcpayment': nhcpayment,\r\n 'monitorpage': monitorpage,\r\n 'responsive_swipe': responsive_swipe,\r\n 'claims_widget': claims_widget,\r\n 'pricecheck': pricecheck,\r\n 'pagination_simple': pagination_simple,\r\n 'auth': auth,\r\n 'erv_pricebreakdown': erv_pricebreakdown,\r\n 'fileuploadhelper': fileuploadhelper,\r\n 'ajax_helper': ajax_helper,\r\n 'tabs': tabs,\r\n 'hero_image': hero_image,\r\n }\r\n});\r\n","module.exports = {\r\n \"small-min-width\": \"0px\",\r\n \"small-max-width\": \"767px\",\r\n \"medium-min-width\": \"768px\",\r\n \"medium-max-width\": \"992px\",\r\n \"large-min-width\": \"993px\",\r\n \"large-max-width\": \"1402px\"\r\n}","/**\r\n * ExpandCollapseBlock logic\r\n * Accordion mode (single panel open) vs. standard mode (multiple panels can be open).\r\n */\r\n\r\n// Add type definitions for UMD with AMD property\r\ndeclare function define(\r\n dependencies: string[],\r\n factory: (...args: any[]) => any\r\n): void;\r\ndeclare function define(\r\n factory: (...args: any[]) => any\r\n): void;\r\ndeclare namespace define {\r\n const amd: boolean;\r\n}\r\n\r\n(function (root, factory) {\r\n if (typeof define === 'function' && define.amd) {\r\n // AMD\r\n define([], factory);\r\n } else if (typeof module === 'object' && typeof module.exports === 'object') {\r\n // CommonJS\r\n module.exports = factory();\r\n } else {\r\n // Browser globals\r\n root.ExpandCollapse = factory();\r\n }\r\n}(typeof self !== 'undefined' ? self : this, function () {\r\n\r\n interface ToggleContext {\r\n trigger: HTMLElement;\r\n parent: HTMLElement;\r\n triggerText: HTMLElement | undefined;\r\n moreText: string;\r\n lessText: string;\r\n target: HTMLElement | undefined;\r\n shouldBeVisibleAtStart: boolean;\r\n }\r\n\r\n const SELECTORS = {\r\n READ_TOGGLE: '[data-js=\"read-toggle\"]',\r\n READ_TARGET: '[data-js=\"read-target\"]',\r\n NO_JS_CLASS: 'erv-no-js',\r\n TOGGLE_TEXT_CLASS: '.toggle-text',\r\n CONTROL_PANEL_CLASS: '.control-panel',\r\n EXPAND_COLLAPSE_CONTAINER: '.expand-collapse-container',\r\n EXPAND_COLLAPSE_NESTED: '.expand-collapse-nested',\r\n };\r\n\r\n const CLASSNAMES = {\r\n NOJS_SHOW: 'nojs-show',\r\n DEAD: 'dead',\r\n QUESTION: 'question',\r\n SHOW_ALL: 'show-all',\r\n IS_EXPANDED: 'is-expanded',\r\n SELECTED: 'selected',\r\n SHOW: 'show',\r\n COLLAPSE: 'collapse',\r\n };\r\n\r\n const DATA_ATTRIBUTES = {\r\n STATE: 'data-state',\r\n ACCORDION: 'data-accordion',\r\n IS_VISIBLE_AT_START: 'data-is-visible-at-start',\r\n MORE_TEXT: 'data-moretext',\r\n LESS_TEXT: 'data-lesstext',\r\n PANEL_MORE: 'panelmore',\r\n PANEL_LESS: 'panelless',\r\n OVERRIDE_MORE_LESS: 'data-overridemoreless',\r\n PANEL_MORE_ATTRIBUTE: 'data-panelmore',\r\n PANEL_LESS_ATTRIBUTE: 'data-panelless',\r\n };\r\n\r\n const STATES = {\r\n MORE: 'more',\r\n LESS: 'less',\r\n };\r\n\r\n // ---------- CONTEXT CREATION ----------\r\n function buildToggleContext(trigger: HTMLElement): ToggleContext | undefined {\r\n const parent = trigger.parentElement;\r\n if (!parent) return undefined;\r\n\r\n const triggerTextElement = trigger.querySelector(SELECTORS.TOGGLE_TEXT_CLASS)!;\r\n const moreText = trigger.getAttribute(DATA_ATTRIBUTES.MORE_TEXT) || '';\r\n const lessText = trigger.getAttribute(DATA_ATTRIBUTES.LESS_TEXT) || '';\r\n const targetElement = getTarget(trigger, parent);\r\n\r\n return {\r\n trigger,\r\n parent,\r\n triggerText: triggerTextElement,\r\n moreText,\r\n lessText,\r\n target: targetElement ?? undefined,\r\n shouldBeVisibleAtStart: trigger.getAttribute(DATA_ATTRIBUTES.IS_VISIBLE_AT_START) === 'True',\r\n };\r\n }\r\n\r\n // ---------- INITIAL VISIBILITY ----------\r\n function applyInitialVisibility(ctx: ToggleContext): void {\r\n if (isNoJsModeActive()) return;\r\n\r\n const { trigger, target, shouldBeVisibleAtStart, moreText, lessText, triggerText, parent } = ctx;\r\n\r\n if (!shouldBeVisibleAtStart) {\r\n hideTarget(target);\r\n if (triggerText && moreText) {\r\n triggerText.textContent = moreText;\r\n }\r\n updateTriggerState(trigger, STATES.MORE);\r\n updateControlPanelText(trigger, DATA_ATTRIBUTES.PANEL_MORE);\r\n } else {\r\n parent.classList.add(CLASSNAMES.IS_EXPANDED);\r\n if (triggerText && lessText) {\r\n triggerText.textContent = lessText;\r\n }\r\n updateTriggerState(trigger, STATES.LESS);\r\n updateControlPanelText(trigger, DATA_ATTRIBUTES.PANEL_LESS);\r\n revealTarget(target);\r\n }\r\n\r\n target?.classList.remove(CLASSNAMES.NOJS_SHOW);\r\n\r\n if (isTargetEffectivelyEmpty(target) && !trigger.classList.contains(CLASSNAMES.SHOW_ALL)) {\r\n markAsDead(trigger);\r\n }\r\n }\r\n\r\n // ---------- TOGGLE BEHAVIOR ----------\r\n function setToggleBehavior(ctx: ToggleContext): void {\r\n const { trigger, parent, target, moreText, lessText, triggerText } = ctx;\r\n\r\n trigger.addEventListener('click', (evt) => {\r\n evt.preventDefault();\r\n if (isDead(trigger)) return;\r\n\r\n if (isQuestion(trigger)) {\r\n parent.classList.toggle(CLASSNAMES.SELECTED);\r\n }\r\n\r\n const currentState = getCurrentState(trigger);\r\n\r\n if (currentState === STATES.MORE) {\r\n updatePanelState(trigger, parent, target, lessText, triggerText, STATES.LESS, DATA_ATTRIBUTES.PANEL_LESS);\r\n if (isAccordionMode(trigger) && isTopLevelAccordionTrigger(trigger)) {\r\n closeOtherOpenPanelsInAccordion(trigger);\r\n }\r\n } else {\r\n updatePanelState(trigger, parent, target, moreText, triggerText, STATES.MORE, DATA_ATTRIBUTES.PANEL_MORE);\r\n }\r\n });\r\n }\r\n\r\n // ---------- PANEL STATE UPDATE ----------\r\n function updatePanelState(\r\n trigger: HTMLElement,\r\n parent: HTMLElement,\r\n target: HTMLElement | undefined,\r\n newText: string,\r\n triggerText: HTMLElement | undefined,\r\n newState: string,\r\n panelStateDataAttr: string\r\n ): void {\r\n if (triggerText && newText) {\r\n triggerText.textContent = newText;\r\n }\r\n\r\n updateTriggerState(trigger, newState);\r\n parent.classList.toggle(CLASSNAMES.IS_EXPANDED, newState === STATES.LESS);\r\n updateControlPanelText(trigger, panelStateDataAttr);\r\n\r\n newState === STATES.LESS ? revealTarget(target) : hideTarget(target);\r\n }\r\n\r\n // ---------- ACCORDION MODE HELPERS ----------\r\n function isAccordionMode(trigger: HTMLElement): boolean {\r\n const container = trigger.closest(SELECTORS.EXPAND_COLLAPSE_CONTAINER);\r\n return container?.getAttribute(DATA_ATTRIBUTES.ACCORDION) === 'true';\r\n }\r\n\r\n function isTopLevelAccordionTrigger(trigger: HTMLElement): boolean {\r\n return !trigger.closest(SELECTORS.EXPAND_COLLAPSE_NESTED);\r\n }\r\n\r\n /**\r\n * Close any other open panels in the same accordion container.\r\n */\r\n function closeOtherOpenPanelsInAccordion(currentTrigger: HTMLElement): void {\r\n const container = currentTrigger.closest(SELECTORS.EXPAND_COLLAPSE_CONTAINER);\r\n if (!container) return;\r\n\r\n const allToggles = Array.from(container.querySelectorAll(SELECTORS.READ_TOGGLE));\r\n const isOpen = (toggle: HTMLElement) => getCurrentState(toggle) === STATES.LESS;\r\n\r\n allToggles.forEach((toggle) => {\r\n if (toggle !== currentTrigger && isOpen(toggle)) {\r\n toggle.click();\r\n }\r\n });\r\n }\r\n\r\n // ---------- CONTROL PANEL TEXT UPDATE ----------\r\n function updateControlPanelText(trigger: HTMLElement, dataSelector: string): void {\r\n const overrideMoreLess = trigger.hasAttribute(DATA_ATTRIBUTES.OVERRIDE_MORE_LESS);\r\n const hasPanelMore = trigger.hasAttribute(DATA_ATTRIBUTES.PANEL_MORE_ATTRIBUTE);\r\n const hasPanelLess = trigger.hasAttribute(DATA_ATTRIBUTES.PANEL_LESS_ATTRIBUTE);\r\n\r\n if (overrideMoreLess || !hasPanelMore || !hasPanelLess) return;\r\n\r\n const controlPanel = trigger.querySelector(SELECTORS.CONTROL_PANEL_CLASS);\r\n if (!controlPanel) return;\r\n\r\n const text = trigger.getAttribute(`data-${dataSelector}`) || '';\r\n controlPanel.textContent = text;\r\n }\r\n\r\n // ---------- STATE / VISIBILITY UTILS ----------\r\n function getTarget(trigger: HTMLElement, parent: HTMLElement): HTMLElement | null{\r\n let targetElement: HTMLElement | null = parent.querySelector(SELECTORS.READ_TARGET);\r\n\r\n if (!targetElement && !trigger.classList.contains(CLASSNAMES.SHOW_ALL)) {\r\n targetElement = parent.parentElement?.querySelector(SELECTORS.READ_TARGET) ?? null;\r\n }\r\n\r\n return targetElement;\r\n }\r\n\r\n function isNoJsModeActive(): boolean {\r\n return document.documentElement.classList.contains(SELECTORS.NO_JS_CLASS);\r\n }\r\n\r\n function updateTriggerState(trigger: HTMLElement, state: string): void {\r\n trigger.setAttribute(DATA_ATTRIBUTES.STATE, state);\r\n }\r\n\r\n function getCurrentState(trigger: HTMLElement): string {\r\n return trigger.getAttribute(DATA_ATTRIBUTES.STATE) || STATES.MORE;\r\n }\r\n\r\n function revealTarget(target: HTMLElement | undefined): void {\r\n if (!target) return;\r\n target.classList.remove(CLASSNAMES.COLLAPSE);\r\n target.classList.add(CLASSNAMES.SHOW);\r\n }\r\n\r\n function hideTarget(target: HTMLElement | undefined): void {\r\n if (!target) return;\r\n target.classList.remove(CLASSNAMES.SHOW);\r\n target.classList.add(CLASSNAMES.COLLAPSE);\r\n }\r\n\r\n function isTargetEffectivelyEmpty(target: HTMLElement | undefined): boolean {\r\n return !target?.textContent;\r\n }\r\n\r\n function markAsDead(trigger: HTMLElement): void {\r\n trigger.classList.add(CLASSNAMES.DEAD);\r\n }\r\n\r\n function isQuestion(trigger: HTMLElement): boolean {\r\n return trigger.classList.contains(CLASSNAMES.QUESTION);\r\n }\r\n\r\n function isDead(trigger: HTMLElement): boolean {\r\n return trigger.classList.contains(CLASSNAMES.DEAD);\r\n }\r\n\r\n // ---------- ENTRY & EXPORT ----------\r\n function initExpandCollapse(): void {\r\n const readToggleElements = document.querySelectorAll(SELECTORS.READ_TOGGLE);\r\n\r\n readToggleElements.forEach((trigger) => {\r\n const context = buildToggleContext(trigger);\r\n if (!context) return;\r\n\r\n applyInitialVisibility(context);\r\n setToggleBehavior(context);\r\n });\r\n }\r\n\r\n // Return the public API\r\n return {\r\n initExpandCollapse: initExpandCollapse\r\n };\r\n}));","module.exports = window.jQuery;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","var inProgress = {};\nvar dataWebpackPrefix = \"ERV.Web:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = function(url, done, key, chunkId) {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = function(prev, event) {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach(function(fn) { return fn(event); });\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = function(chunkId) {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce(function(promises, key) {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = function(chunkId) {\n\t// return url for filenames based on template\n\treturn \"script/\" + chunkId + \".js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = function(chunkId) {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.p = \"/assets/dist/\";","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t4152: 0,\n\t8627: 0,\n\t8750: 0\n};\n\n__webpack_require__.f.j = function(chunkId, promises) {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise(function(resolve, reject) { installedChunkData = installedChunks[chunkId] = [resolve, reject]; });\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = function(event) {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n// no on chunks loaded\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunkERV_Web\"] = self[\"webpackChunkERV_Web\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(209);\n"],"names":["define","$","ERVFramework","Forms","AjaxHelper","this","forms","framework","prototype","submitForm","$form","successCallback","failCallback","completed","manualType","manualUrl","self","url","attr","type","hasClass","activateLoading","ajax","data","serialize","success","status","initGenericAlert","message","complete","deactivateLoading","Auth","settings","Settings","login","acquireToken","client","loginPopup","scopes","B2CScopes","then","authenticationResult","accessToken","error","acquireTokenPopup","catch","popupError","logout","authenticator","Msal","msalConfig","auth","clientId","ClientId","authority","Authority","knownAuthorities","redirectUri","location","origin","cache","cacheLocation","system","loggerOptions","loggerCallback","loglevel","containsPii","console","log","piiLoggingEnabled","logLevel","LogLevel","Verbose","Promise","resolve","reject","PublicClientApplication","createPublicClientApplication","msalInstance","ERVResponsive","ERVCommon","ERVTracking","ERVValidationExtensions","ERVTranslate","ModuleRepository","Polyfill","CHUNKS","$ervBody","init","common","responsive","find","length","require","ervAutosuggest","default","moduleName","highlight","heroElement","document","querySelector","on","window","requireScripts","forEach","scriptDetails","_scriptDetails$split2","_slicedToArray","split","initParams","includes","chunkName","callback","resolveChunk","Object","keys","ERVPriceBreakdown","ERVBooking","tracking","priceBreakdown","$bookingContainer","history","checks","isCriOs","pushState","pathname","e","preventDefault","parents","valid","submit","is","trackEvent","val","$renewal","prop","stopPropagation","validationSummary","setErrorFieldLabels","$this","$parent","$choiceContainer","removeClass","toggleClass","click","trigger","Common","ERVBookingRules","$bookingWidget","calculateTotalValue","$inputs","total","each","$input","current","parseInt","isNaN","businessTravelDaysRule","checkValue","first","addClass","travelingPeopleNotHigherThanTotalPeople","$childElement","inputVal","$container","$totalPeople","totalPeopleVal","$summary","$summaryLi","remove","syncMedicalAndExcess","showExcess","isSe","isFamily","isDk","$peopleCount","$ages","$isFamily","Number","disableFormElementsInContainer","isExtendedCarTechnicalEquipment","$addonFormElement","$addonCheckbox","$totalPrice","price","hasReachedPeopleLimit","$categoryForm","peopleCount","initHomeInsurance","$step1","$homeInsuranceLightBox","$stepTwo","replace","days","setTimeout","popup","openPopup","elementParse","item","src","magnificPopup","close","dateInput","not","date","Date","setDate","getDate","toLocaleDate","isNisCancellation","overwriteChecked","$oneForAllContainer","$inputAllForOneCheckBox","$inputAllForOneContainer","$cancellationPerPersonPriceContainer","checked","$amountOfPeopleContainer","undefined","peoplecount","currentCategoryForm","hasDailyTravel","$hasDailyTravel","ERVProductHelper","ERVWarList","ERVResponsiveCommon","ExpandCollapse","BookingStepOne","productHelper","bookingRules","warlist","responsiveCommon","initContinueTriggers","$products","initCompareContinueTriggers","$compareSection","$product","parent","scrollTo","offset","isDeviceSize","height","initEventhandlers","productEventHandlers","$selectSection","productId","productIndex","index","$productTds","setupSelectCompareView","$compareRadio","$compareExport","encodeURIComponent","WebKitFix","documentElement","style","$option","getProducts","$editorBody","guid","activateLoadingHorizontal","href","html","initTooltips","translate","initNoTranslate","initExpandCollapse","$containers","responsiveTable","initSmall","initLarger","deactivateLoadingHorizontal","BookingStepThree","addOnsSubmitWithTracking","details","sum","$options","text","indexOf","$popupButton","closest","cancelSubmit","$link","initPaymentOrder","$mobilePayLabel","isMobileDevice","prependTo","$apsisForm","cookieName","CookieStrings","SentToApsis","cookies","get","set","expires","neverExpires","path","dirrty","preventLeaving","ERVPostalHelper","Masking","BookingStepTwo","backendDomain","postalHelper","$triggerParent","displayIndex","$firstName","$lastName","last","$responsibleDropDownItem","$copyTriggerContainer","$checkbox","$additionalRenewal","value","Math","round","MaskingCPRNumber","MaskingCVRNumber","URL","referrer","scrollingElement","body","scrollTop","scrollHeight","BookingWidget","$bookingWidgetButton","$ageTemplate","$personPriceTemplate","$countryTemplate","$categoryForms","$NordicCancellationTotalInput","$fileUploadNameInput","useWebComponents","updatePriceAmountPerPerson","totalSum","totalSumAsInt","$individualInputs","indvidualSum","floor","indvidualRest","rest","$firstInput","updateAmountOfPeoplePerson","$trigger","addPerson","selector","templateSelector","$template","containerSelector","$amountOfPeople","$inputPersonCount","$valueContainer","currentCount","addPeopleFields","$html","insertAfter","rules","required","regex","min","setupCancellationOneForAll","availableTags","initTagIt","countries","available","$countryContainer","tagit","autocomplete","delay","minLength","autoFocus","allowSpaces","allowDuplicates","allowNewTags","triggerKeys","beforeTagAdded","event","ui","inArray","tagLabel","afterTagAdded","tag","grep","label","iso","append","ervTagit","tagitAfterAddedValidation","target","dispatchEvent","inputEvent","ERV","ConfigurationSettings","GTranslate","afterTagRemoved","country","tagitAfterRemovedValidation","changeManuallyFileView","$typeInput","$parentInsuranceFields","$currentManuallyViews","$currentFileUploadViews","resetFileUpload","setupRulesForManually","setupRulesForFileUpload","i","$fileUploads","FileUploadHelper","initCheckFile","initAmountOfPeopleControl","eventName","updateCategoryForm","isAllForOne","ceil","$currentForm","clearErrors","$fakeFileUpload","isWide","$bookingWidgetContent","$resultSection","hasResult","fileUploadEventHandlers","initAmountOfPeopleControlSimple","ervPersonFileCheckedReset","$removeInput","persons","$currentCategoryForm","$amountOfPeopleAdd","$ageInputsContainer","$amountInputsContainer","hasAgeInputs","hasAmountInputs","Age","blur","CoverSum","clearFileUpload","removeAttr","forced","$agesFields","$personPricesFields","$select","removeValidation","selectedOptionSelector","selected","displayGroup","buttonname","hasFileUpload","hidePeople","maxItems","categoryId","setupAddonElements","foundOneEmpty","$manuallyFileContainer","$currentManuallyMoveViews","setupFileUploadIfExists","after","$addonInputContainer","$addonTrigger","initMainContentFix","$maxItemsLabel","appendTo","$radioUpload","$label","trim","children","$fileuploadChecked","map","push","Tracking","ERVCampaign","InsuranceCertificate","$formInputContainer","$policyNumberInput","deleteIncluded","$person","deletedIndex","refreshIncluded","$includedList","filter","newIndex","addIncluded","currentIndex","$includePersonTemplate","messages","setupEventHandlingAfterSearch","change","$radio","$additionalAddress","requiredif","dependentproperty","targetvalue","keyup","initPickers","setupEventHandling","certificateType","newWin","open","write","always","keyCode","ClaimsWidget","$widget","ajaxHelper","$target","$languagePicker","ERVTriggers","ERVFormatting","LazyLoad","ErgoTriggers","triggers","formatting","ergoTriggers","initDataUrl","$elements","tagName","toLowerCase","fixAnchorOffset","hostname","hash","headerHeight","slice","animate","top","decimalAdjust","exp","NaN","toString","overrideMath","round10","floor10","ceil10","sortArrayByName","childrenSelector","sort","a","b","nameA","innerText","nameB","initLazyLoad","overrideSelector","handle","elements_selector","callback_enter","el","callback_loaded","clearTimeout","equalizeTeasers","isInEpiEditMode","initPreferredSiteSection","ErvCommonUtils","Countries","$countrySearchContainer","tagLimit","tagitBeforeAdded","focus","tagitAutocompleteEvents","$newTagitInput","initGridalicious","$urlElement","itemWidth","gridalicious","gutter","width","datepicker","regional","sv","closeText","prevText","nextText","currentText","monthNames","monthNamesShort","dayNamesShort","dayNames","dayNamesMin","weekHeader","firstDay","isRTL","showMonthAfterYear","yearSuffix","dateFormat","da","fi","nb","EpiserverFormsHelpers","selectors","$fileUploadWrapper","$fileUploadInput","$fileUploadFakeInputInnerWrapper","handleFileInputChange","$fakeInput","labelText","handleFileInputModification","files","file","name","join","scrollToTheTopOfForm","$workingForm","css","adjustScrollByTheTopOffset","scrollBy","adjustWindowScrollTop","$$epiforms","bindEvents","handleTopMenuSectionClick","$currentList","wasExpanded","end","handleSubListClick","navigateToHref","$header","isArrowClick","offsetX","isInTopMenuSections","isInSubListWrapper","isInLevelOne","shouldToggleExpand","ready","API_URL","SUGGESTIONS_CONTAINER_SELECTOR","clearSuggestionsContainer","getSingleSuggestionHtml","suggestion","txt","linkUrl","title","content","thumbnailUrl","concat","createElement","innerHTML","renderSuggestions","searchInputId","id","Error","getSuggestionContainerByInputId","showNoResultsState","suggestionDTO","validatedSuggestion","LinkUrl","Title","Content","ThumbnailUrl","getValidSuggestionData","element","multiclamp","clamp","getAttribute","currentRequest","getSuggestions","_event$target","beforeSend","abort","done","fail","xhr","warn","statusText","throttle","SUGGESTION_SELECTOR","ERVChecks","test","navigator","userAgent","isIos","match","isSafari","isIE","msIE","ua","oldIE","newIE","isWebkitBrowser","isIEEdge","isElementInViewport","$el","adjustHeight","rect","getBoundingClientRect","left","bottom","innerHeight","right","innerWidth","ERVCustomValidationSummary","errorAlreadyExists","$errors","exists","updateErrorsSummary","validator","$updateSingleInput","clear","singleUpdate","$ul","_step","_iterator","_createForOfIteratorHelper","errorList","s","n","err","f","createNewErrorsSummary","$elementToPrependTo","Translation","ErrorSummaryHeader","_step2","_iterator2","prepend","updateErrorFieldsLabels","$errorElements","$error","errorKey","hasSpecificMessage","$element","$elementParent","$messageContainer","$errorsAfterRemove","$visibleErrorMessages","addDays","valueOf","dd","mm","getMonth","getFullYear","reverseShortDate","dayFirst","dateArr","Cookies","Popup","tooltip","position","my","at","using","level","msMaxTouchPoints","$closeContainer","show","duration","classes","$sectionLinksLists","PreferredSection","firstLink","errorMessage","$lightbox","$button","alert","$additionalInformation","$serverErrorMessage","$mainInformation","heading","hideMainDescription","equalizeTeasersTimeoutId","wait","$teasers","$images","$contents","$pricings","matchHeight","byRow","equalizeParent","$children","max","ERVPopup","callbacks","closeInside","modal","items","preloader","alignTop","fixedContentPos","closeBtnInside","closeMarkup","PriceHelper","priceBreakdownData","priceHelper","setPersonData","$field","$productBox","dataPerson","$visibleAddonContainer","$persons","baseprice","excess","extras","isInput","excessprice","showMedical","setPricesInPricebreakdown","currency","$personContainer","totalPersons","$basePerson","$totalPerson","$extrasContainer","totalPerson","setExcess","hasExcess","presetExcess","$li","empty","setTaxDiscountAndTotal","discount","tax","$lightboxTotal","$lightboxTax","$lightboxDiscount","formatPrice","totalPrice","pullPriceFromProductBox","$selectedFields","$excessContainer","$needs","needsLimit","hasPresetExcess","prevAll","initPriceBreakdown","Framework","ERVTagit","Event","createEvent","initEvent","availableCountryTags","initCountryList","$currentTagit","tagitAfterAdded","tagitAfterRemoved","$targetParent","$tagitHidden","$autoCompleteInput","$autoCompleteCorner","off","$tagitElement","$tagitUl","$hiddenField","createFunctionWithTimeout","timeout","called","fn","initCustomEvents","category","action","initErrorHandling","onerror","msg","lineNo","columnNo","pop","JSON","stringify","hasGA","ga","getAll","cb","send","hitCallback","IsDev","googleTranslateElementInit","googleTranslateSelect","google","TranslateElement","pageLanguage","includedLanguages","layout","InlineLayout","VERTICAL","$body","defaultCurrency","pattern","RegExp","$price","translation","eval","p","c","k","r","String","fromCharCode","erv_breakpoints","isLargeDevice","getDeviceSize","initTogglers","$expandTriggers","execTrigger","$linkList","expanded","getCorrectLeftMarginValue","offsetLeft","offsetRight","outerWidth","preventWindowOverflow","leftMargin","$listItems","$sublist","$list","initTriggers","$iconContainer","initDropDowns","dropdown","$toggle","ulOffset","spaceUp","spaceDown","$dropDown","mouseup","has","print","BookingRules","setDefaults","ignore","validClass","methods","number","optional","addMethod","unobtrusive","adapters","add","options","parameters","$control","actualvalue","call","$controlWithNameMatchingAndChecked","params","otherproperty","param","$otherProp","otherDate","$visibleLabel","_","parameter","validatefrom","validateFrom","parseFloat","floatValue","EPSILON","patternfrom","longname","patternName","removeData","parse","Expatriate","deleteAge","$age","refreshAges","$ageList","addAge","insertBefore","fileAlreadyUploaded","fileName","$uploadedFilesList","setupUploadedFilesSectionHeader","$heading","$headingParentField","setupCheckedFile","validFile","$uploadContainer","$currentUploaded","$currentNotUploaded","result","FileName","statusFromData","$validation","$genericError","Message","hideErrors","deleteUploadedFile","$file","$selectFile","removeFileUrl","setupSingleFile","deleteCheckedFile","$parentContainer","$parentField","$disableUpload","$disableUploadContainer","$currentCheckbox","$currentDocumentElement","$currentButtonContainer","$currentButton","$currentReasonContainer","$currentReasonInput","updateUploadedFiles","dataGuid","fileOriginalName","parseJSON","Files","Guid","OriginalFileName","elementFileToList","updateCheckedFile","Persons","originalFileName","isAllowedFile","extension","ext","triggerUploadHandler","uploadFilesHandler","addFileParams","documentType","addFileUrl","fileupload","dataType","Status","checkFileHandler","$uploadContainerParent","checkFileUrl","initUploadFiles","$uploadContainers","ERVFlexMenu","breaks","updateNav","availableSpace","$nav","$vlinks","$hlinks","resizeId","$window","resize","newWidth","il8n","ValidationSummary","ERVForms","datepickerTranslations","episerverFormsHelpers","changeMonth","changeYear","numberOfMonths","minDate","showAnim","onSelect","dateValidation","initFormWithLoader","$showLoaders","setEnterTriggerClick","which","calendarBeforeShow","$datePickerDiv","wrap","$wrapperInner","resetSmallDeviceCalendar","calendarOnClose","initDatePicker","initTimePicker","initFormSelects","size","initResetButtons","initInputNumbersOnly","charCode","unwrap","autocompleteFix","$picker","timepicker","show2400","timeFormat","selectOnBlur","scrollDefault","key","$start","$end","isValidFormat","getMaxDaysInFuture","getMaxYearsInFuture","calculateMaxDate","selectedValue","selectedDate","setFullYear","getDateFormat","placeholder","setupFutureDatePicker","minStartDate","beforeShow","onClose","minEndDate","maxDate","$withinInput","fixEnterAndValidation","yearRange","$startPeriod","$endPeriod","disable","setupDropdownTogglers","$togglers","$triggerElement","$childrenContainer","setupRadioTogglers","parentSelector","$childrenContainer2","childrenContainerCount","rawValue","updateValidation","form","shouldSubmit","themeDark","loadingElement","bind","submitHandler","addEventListener","ERVHealthDeclaration","ViewData","TopImagePartial","sources","srcset","imageUrl","small","media","big","input","domain","maxLength","MonitorPage","dashTypeSpecifics","$block","triggerValue","currentNumber","limit","setLogsClasses","setSalesClasses","triggerWarning","shouldTrigger","warningSound","warningBlink","audio","currentTime","paused","ended","readyState","promise","play","animationLoops","intervalId","setInterval","fadeOut","fadeIn","clearInterval","speed","getDashData","$fetchBlock","blockId","initDashBoard","escapeRegExp","str","initGetLog","$dateToUpdate","query","entries","NHCPayment","initEventHandlers","$invoiceSection","$accountSection","$submitButton","$noInvoices","PaginationSimple","updateVisibleItems","pageSize","itemSelector","$results","$hits","$hit","updateButton","buttonClickHandler","visibleCount","refreshSpecific","buttonSelector","$buttons","ErvCommon","getCities","updateAdress","getCityNames","postalCodesFile","contentType","cityNames","Cities","autoSelectCountry","translatePostalCodeToCountryCode","autoSelectClaimsOnlineCountry","postalInput","postalcleaned","ZipCode","cityNameTarget","Name","siblings","ERVPostslist","currentPageIndex","rootPageId","isErgoThemeActive","loadMorePosts","newPageIndex","postType","selectedCategories","$postlistContainer","hasMorePosts","totalPostsListPages","Translate","PriceCheck","$priceCheckBlock","$annual","annualPrice","togglePrice","$errorLabels","$slider","sliderUnits","age","visitorSelected","$destinationsNis","$destinationVisitor","$info","Accounting","getExcessInput","$excessInput","AddTaxAndDiscount","$currentItem","currentDiscount","currentTax","$discountRate","roundedDiscount","updatePrice","isAdded","calculateTaxAndDiscount","changedPrice","$priceContainer","$currentPriceContainer","oldPrice","updateTotalPrice","updatePriceCancellation","previousPrice","getIncludedExcessPrice","adjustment","calculateTotalPriceInContainer","includedExcessPrice","$inputsToCalculate","disabled","$optionsToCalculate","inputPrice","inputExcessPrice","calculateAddOnExcessTotalPriceInContainer","withDecimals","presentedPrice","orglang","formatNumber","ERVPriceHelper","ProductHelper","changeView","view","updatePriceAfterAddonChange","$currentAddonsView","currentBasePrice","currentTotalPrice","syncSelectedAddonsWithView","$selectedAddonsList","$alreadyExists","$liToAdd","syncSelectedCancellationWithView","$optionSelected","$clearThese","toggleExcessContainer","syncExcessBetweenNeeds","$medicalInput","updateName","$currentProduct","changedName","$nameContainer","oldName","updateAfterAnnual","$containerTripByTripDetails","$containerAnnualDetails","$excessTrigger","$tooltipSubtitle","subtitle","priceAnnualAddonsAndCancellation","priceTripByTripAddonsAndCancellation","priceAnnual","priceTripByTrip","priceDiff","$annualDocuments","isPositive","$subtitle","updateAfterNeed","$currentSameView","$currentIndividualView","updateAfterExcess","$inputsToUpdate","excessPrice","$priceSpan","currentPrice","newPrice","$allProducts","addOnExcessPriceInContainer","previouslySelectedCancellationPrice","$selected","Quotation","deleteCompany","$company","refreshCompanies","$companyList","addCompany","$companyTemplate","showEmployeesFields","$childrenContainers","setUpAmountOfEmployeesToggler","ReplaceHtml","replaceHtml","pathName","pathNameArr","substring","firstPathName","testFix","$ervLoaded","$data","$footer","cssLink","cssLinks","elt","rel","getCssLink","$head","scripts","scriptStr","script","j","outerHTML","getGTMScript","ResponsiveDeviceMenu","ResponsiveMainSearch","ResponsiveCommon","ResponsiveFooter","ResponsiveMainMenu","ResponsiveCountries","Responsive","deviceSize","fixDateNoClickBookingWidget","$dateInputContainers","$dateInputs","$dateIcons","resizeSmall","$bookingWidgetSelectProduct","$tableCompareContainers","deviceMenu","initSmallerDevice","mainSearch","initSmallDevice","footer","mainMenu","setBookingSummaryDetails","resizeMedium","initLargerDevice","removeEventListener","initLargerDevices","resizeLarge","initLargeDevice","doneResizing","medium","large","isLargeBreakpoint","$bookingsummarydetails","isVisibleAtStart","isClosed","shouldOpen","fixedMode","cssClass","pageScrollTop","pageYOffset","fixSwipe","swipe","mql","matchMedia","addListener","m","changedDeviceSize","ResponsiveTable","$what","unbind","scrollIntoView","getOffset","elRect","pageXOffset","matches","$stackElement","ERVAutosuggest","$menuTrigger","$menu","stopImmediatePropagation","fixedElement","disp","display","targetId","contains","$footerLinkListTriggers","$linkLists","$searchContainer","$searchButton","$searchInput","hideSearchInput","isSuggestion","$activeElement","activeElement","relatedTarget","resetAll","$swipes","$swipewraps","ervSwipers","$swipe","$bullets","swiper","Swipe","startSlide","autoRestart","partial","continuous","eq","$image","transitionEnd","slide","kill","setupDeconstructed","$tablesContainer","$table","setSelectedColumn","setControlDots","simpleSwipeDetection","addEventListeners","$controls","$controlDotsContainer","$lis","selectedIndex","getSelectedIndex","$columnHeaders","columnSelected","colspan","$cells","$cell","tearDownDeconstructed","removeEventListeners","$headerColumns","$currentColumn","$newSelectedColumn","next","prev","direction","startX","startTime","touchObj","changedTouches","pageX","getTime","distX","abs","handleSwipe","Tabs","setActiveTabAndContent","$tabContainer","$tabContents","hashNumber","elementIndex","matchingContent","replaceState","initTabsEventHandlers","$tabs","setupTabs","setupHash","$hashElement","scrollToTabs","$content","TechEquip","$summaryInsuredTotal","$summaryPremie","$summaryTax","$summaryTotal","deleteEquipment","$equip","refreshEquipment","refreshPrice","getTotalInsuredPrice","$dataHolder","totalInsuredPrice","totalCostFactor","premie","totalPremie","totalTax","totalCost","initPrice","$equipList","addEquipment","$equipTemplate","whatToUpdate","WarList","warlistRules","isCorp","warriskCountries","applyRules","beforeClose","afterClose","YearlyProduct","setCountryDayValidation","isSet","$daysAreSet","initAtLeastOneCountryDaySet","t","jQuery","o","arguments","apply","Gal","_init","getCSSWidth","clearfix","animationOptions","effect","queue","_setName","gridArr","gridArrAppend","gridArrPrepend","setArr","setGrid","setOptions","cols","itemCount","prependCount","isPrepending","appendCount","resetCount","ifCallback","box","extend","makeArray","isResizing","w","boxArr","_setCols","_renderGrid","smartresize","charAt","random","diff","gutterRight","gutterLeft","paddingRight","paddingLeft","paddingBottom","padding","h","d","marginBottom","zoom","opacity","_updateAfterPrepend","_renderItem","_collectItems","reverse","unshift","withResolvers","res","rej","root","_typeof","global","_document","container","isScrolling","interval","start","delta","auto","noop","offloadFn","threshhold","cancel","throttledFn","context","args","isCancelable","cancelable","Element","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","ownerDocument","querySelectorAll","browser","passiveEvents","supportsPassive","opts","defineProperty","touch","DocumentTouch","transitions","temp","props","slides","slidePos","partialPos","containerWidth","dir","slideDir","currentStyle","getComputedStyle","getPropertyValue","throttledSetup","setup","events","handleEvent","move","touches","isMouseEvent","x","y","pageY","time","passive","runDragStart","getPos","scale","disableScroll","stop","circle","isValidSlide","isPastBounds","hidden","middle","runCallback","runDragEnd","restart","runTransitionEnd","begin","to","enable","getNumSlides","detachEvents","onresize","attachEvents","draggable","cloneNode","clone","appendChild","setAttribute","removeAttribute","Array","percentage","offsetWidth","pos","visibility","dragStart","dragEnd","slideSpeed","natural_direction","dist","webkitTransitionDuration","MozTransitionDuration","msTransitionDuration","OTransitionDuration","transitionDuration","webkitTransform","msTransform","MozTransform","OTransform","transform","from","timer","timeElap","parentElement","removeChild","Zepto","factory","z","q","charCodeAt","substr","u","v","hasOwnProperty","format","neg","zero","version","symbol","decimal","thousand","precision","grouping","isArray","unformat","toFixed","pow","g","l","A","formatMoney","formatColumn","module","exports","accounting","singleDs","Dirrty","isDirty","saveInitialValues","setEvents","submitting","leavingMessage","checkValues","initialValue","setDirty","setClean","fireEvents","wasJustClean","wasJustDirty","defaults","onDirty","onClean","property","_groups","elements","_apply","_throttle","_maintainScroll","_beforeUpdate","_afterUpdate","_rows","_parse","_parseOptions","outerHeight","overflow","_applyDataApi","_update","nodeName","isFunction","isPlainObject","axis","onAfter","over","contentWindow","margin","onAfterFirst","Tween","propHooks","scrollLeft","elem","interrupt","_last","now","validate","onsubmit","validateDelegate","submitButton","currentForm","debug","pendingRequest","formSubmitted","focusInvalid","removeAttrs","staticRules","normalizeRule","normalizeRules","classRules","attributeRules","dataRules","expr","blank","filled","unchecked","constructor","groups","errorClass","errorElement","errorContainer","errorLabelContainer","ignoreTitle","onfocusin","lastActive","focusCleanup","blockFocusCleanup","unhighlight","addWrapper","errorsFor","hide","onfocusout","checkable","submitted","onkeyup","elementValue","lastElement","onclick","parentNode","findByName","remote","email","dateISO","digits","creditcard","equalTo","maxlength","minlength","rangelength","range","autoCreateRanges","labelContainer","errorContext","containers","valueCache","pending","invalid","reset","invalidHandler","checkForm","errorMap","triggerHandler","showErrors","prepareForm","currentElements","check","validationTargetFor","clean","prepareElement","numberOfInvalids","toHide","successList","defaultShowErrors","resetForm","objectLength","findLastActive","errors","toShow","method","formatAndAdd","customDataMessage","attributes","customMessage","findDefined","defaultMessage","wrapper","showLabel","validElements","invalidElements","idOrName","errorPlacement","getLength","depend","dependTypes","string","startRequest","stopRequest","previousValue","old","classRuleSettings","addClassRules","depends","originalMessage","mode","port","ajaxPrefilter","ajaxSettings","lastIndexOf","proxy","attachValidation","parseElement","adapt","__dummy__","addBack","addBool","addMinMax","addSingleVal","exec","other","toUpperCase","additionalfields","nonalphamin","registeredInModuleLoader","OldCookies","api","noConflict","converter","setMilliseconds","getMilliseconds","toUTCString","decodeURIComponent","escape","stringifiedAttributes","attributeName","cookie","rdecode","parts","json","read","getJSON","withConverter","assign","devicePixelRatio","threshold","thresholds","data_src","data_srcset","data_sizes","data_bg","data_bg_hidpi","data_bg_multi","data_bg_multi_hidpi","data_poster","class_applied","class_loading","class_loaded","class_error","unobserve_completed","unobserve_entered","cancel_on_exit","callback_exit","callback_applied","callback_loading","callback_error","callback_finish","callback_cancel","use_native","CustomEvent","detail","instance","initCustomEvent","classList","className","llTempImage","E","_observer","unobserve","I","loadingCount","toLoadCount","L","llOriginalAttrs","sizes","O","C","M","N","R","IMG","IFRAME","VIDEO","load","G","T","D","V","P","S","llEvLisnrs","U","H","B","J","backgroundImage","F","K","Q","W","HTMLImageElement","Y","Z","tt","nt","et","_settings","IntersectionObserver","isIntersecting","intersectionRatio","X","rootMargin","update","disconnect","observe","loadAll","destroy","resetStatus","lazyLoadOptions","FUNC_ERROR_TEXT","NAN","symbolTag","reTrim","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","freeGlobal","freeSelf","Function","objectToString","nativeMax","nativeMin","debounce","func","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","TypeError","invokeFunc","thisArg","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","remainingWait","debounced","isInvoking","leadingEdge","toNumber","isObject","flush","isSymbol","isObjectLike","isBinary","Symbol","iterator","int","num","accFix","setText","elm","textContent","getText","getStyle","v1","getHeight","clientHeight","getElement","tempNode","firstElementChild","firstChild","MultiClamp","option","originalOption","originalElement","preInit","reload","useOriginalText","cssStyleList","reloadOption","ellipsis","splitByWords","disableCssClamp","onClampStart","onClampEnd","lineTextLen","autoClamp","useCssClamp","webkitLineClamp","cssClampStyle","WebkitLineClamp","WebkitBoxOrient","contentText","getSingleLineHeight","lineHeight","createSingleLineAndGetHeight","fontSize","contentHTML","singleLineHeight","currentHeight","maxHeight","heightStyle","doNotNeedToClamp","onClampStartReturnValue","needClamp","trunk","defaultIncrease","trunkSlice","didClamp","isForcePrevent","increase","len","isDecrease","slicedTrunk","fill","isLast","widget","caseSensitive","fieldName","placeholderText","readOnly","removeConfirmation","showAutocompleteOnFocus","singleField","singleFieldDelimiter","singleFieldNode","tabIndex","beforeTagRemoved","onTagClicked","onTagLimitExceeded","onTagAdded","onTagRemoved","tagSource","_create","that","tagList","andSelf","tagInput","source","search","showChoices","term","choices","_subtractArray","assignedTags","_showAutocomplete","_trigger","addedExistingFromSingleFieldNode","node","tags","createTag","keydown","BACKSPACE","_lastTag","removeTag","COMMA","shiftKey","ENTER","TAB","SPACE","_cleanedInput","autocompleteOptions","select","Widget","_tags","_updateSingleTagsField","a1","a2","_findTagByLabel","_formatStr","_isNew","_effectExists","Boolean","effects","additionalClass","duringInitialization","preprocessTag","existingTag","removeTagIcon","escapedValue","before","removedTagLabel","hide_args","thisTag","dequeue","removeTagByLabel","toRemove","removeAll","base","booking","booking_widget","booking_stepone","booking_steptwo","booking_stepthree","campaign","postslist","certificate","quotation","flexmenu","expatriate","techequip","yearlyproduct","healthdeclaration","nhcpayment","monitorpage","responsive_swipe","claims_widget","pricecheck","pagination_simple","erv_pricebreakdown","fileuploadhelper","ajax_helper","tabs","hero_image","SELECTORS","READ_TOGGLE","READ_TARGET","NO_JS_CLASS","TOGGLE_TEXT_CLASS","CONTROL_PANEL_CLASS","EXPAND_COLLAPSE_CONTAINER","EXPAND_COLLAPSE_NESTED","CLASSNAMES","NOJS_SHOW","DEAD","QUESTION","SHOW_ALL","IS_EXPANDED","SELECTED","SHOW","COLLAPSE","DATA_ATTRIBUTES","STATE","ACCORDION","IS_VISIBLE_AT_START","MORE_TEXT","LESS_TEXT","PANEL_MORE","PANEL_LESS","OVERRIDE_MORE_LESS","PANEL_MORE_ATTRIBUTE","PANEL_LESS_ATTRIBUTE","STATES","MORE","LESS","buildToggleContext","triggerTextElement","moreText","lessText","targetElement","getTarget","triggerText","shouldBeVisibleAtStart","applyInitialVisibility","ctx","isNoJsModeActive","updateTriggerState","updateControlPanelText","revealTarget","hideTarget","isTargetEffectivelyEmpty","markAsDead","setToggleBehavior","evt","isDead","isQuestion","toggle","getCurrentState","updatePanelState","isAccordionMode","isTopLevelAccordionTrigger","closeOtherOpenPanelsInAccordion","newText","newState","panelStateDataAttr","currentTrigger","allToggles","isOpen","dataSelector","overrideMoreLess","hasAttribute","hasPanelMore","hasPanelLess","controlPanel","state","__webpack_module_cache__","inProgress","dataWebpackPrefix","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","getter","__esModule","definition","enumerable","chunkId","all","reduce","promises","miniCssF","globalThis","obj","needAttach","getElementsByTagName","charset","nc","onScriptComplete","onload","doneFns","head","toStringTag","nmd","paths","installedChunks","installedChunkData","errorType","realSrc","request","webpackJsonpCallback","parentChunkLoadingFunction","chunkIds","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}