{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/scripts/components/jquery.calendario.js","webpack:///./src/scripts/components/calendar.js","webpack:///./src/scripts/components/modal.js","webpack:///./src/scripts/components/keypad.js","webpack:///./src/scripts/components/timer.js","webpack:///./src/scripts/components/internal-booking.js","webpack:///./src/scripts/components/internal-keypad.js","webpack:///./src/scripts/app.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","$","window","undefined","length","ajax","url","type","dataType","data","pageid","success","res","Calendario","options","element","this","$el","_init","defaults","weeks","weekabbrs","months","monthabbrs","displayWeekAbbr","displayMonthAbbr","startIn","onDayClick","$content","dateProperties","extend","today","Date","month","isNaN","getMonth","year","getFullYear","caldata","_generateTemplate","_initEvents","self","on","$cell","idx","index","children","dateProp","day","text","monthname","weekday","weekdayname","callback","rowClass","head","_getHead","body","_getBody","rowTotal","$cal","append","find","remove","end","html","pos","j","monthLength","getDate","firstDay","startingDay","getDay","isPrevious","inner","content","strdate","dayData","strtoday","isWeekend","toLowerCase","tempDiv","document","createElement","innerHTML","hasFullClass","querySelector","cellClasses","console","log","_isValidDate","date","replace","parseInt","substring","_move","period","dir","getYear","getMonthName","getCell","row","Math","floor","eq","setData","gotoNow","goto","gotoPreviousMonth","gotoPreviousYear","gotoNextMonth","gotoNextYear","logError","message","error","fn","calendario","instance","args","Array","slice","arguments","each","isFunction","charAt","apply","jQuery","calendar","uniqid","selectedDates","totalPrices","totalPricesVAT","calcPriceWithVAT","newPrice","forEach","slot","price","products","product","totalprice","percentage","val","uuidv4","random","toString","addSlotsToModal","slots","empty","slotsWrapper","daySelected","pluckByIdDate","Id","StartTime","EndTime","Color","Price","addClass","inArr","id","startTime","endTime","exists","UpdatePrice","addPickedDates","bookings","group_to_values","reduce","obj","item","push","groups","keys","map","productsText","booking","array","_loop","_loop2","k","x","amount","show","join","updateMonthYear","$month","cal","$year","objectifyForm","formArray","returnArray","validateForm","required","filter","hasAttribute","removeClass","allRequired","transEndEventName","Modernizr","prefixed","$contentEl","hasClass","moment","format","getAvalibleslots","calData","AvailableDatesOnBookedDates","v","CalendarSlots","Slots","hasAFullDay","some","event","FullDay","toggleClass","selectedDate","selectedSlotId","hasProducts","hide","button","not","css","totalProductPrice","total","selectedProducts","multiAmount","productPrice","productname","isSelected","ischecked","prop","productItem","selectAmount","productName","bookingId","$events","csstransitions","e","preventDefault","serializeArray","bookinginfo","JSON","stringify","Cookies","set","coupon","response","location","fetch","method","then","redirected","href","json","session","stripe","redirectToCheckout","sessionId","result","alert","catch","makePayment","discountCode","contentType","SendInvoice","pkkey","Stripe","getElementById","newVatPrice","pageId","code","discount_pct","discount","insertAfter","fillform","user","currentpriceVat","currentpriceExVat","discountPrice","Discount","newpriceVAT","Name","Phone","Email","Company","Cvr","Address","City","Zip","InvoiceEmail","modal","num","password","pass","addBooking","parse","closeModal","keyup","keyCode","keypad","timer","internalbooking","interval","clearInterval","setInterval","reloadpage","starttime","countdowntime","currentBookingTime","now","isDelete","allowBooking","getMinutes","setMinutes","setHours","getHours","hour","minut","setTimer","miuntes","hours","getBookingTime","getInternalCalendarData","setClockDate","changeTitle","CheckFreeSlots","fadeIn","click","increase","minutes","changeHour","changeMinut","reload","pin","Success","Title","Message","setTimeout","count","trim","currenttimeAndDate","time","reset","countdown","countdownNow","timeLeft","days","seconds","PageId","xhrFields","withCredentials","crossDomain","Isbusy","setBusy","delay","substr","sidebar","isFirst","nextBooking","BookedDate","diff","isInternal","IsCalendarUser","BookingID","showBookings","CurrentBookings","fadeOut","complete","slotsData","MinutSlots","_this","Length","Free","internalkeypad","addEventListener"],"mappings":"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","file":"app.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 1);\n","/**\r\n * jquery.calendario.js v1.0.0\r\n * http://www.codrops.com\r\n *\r\n * Licensed under the MIT license.\r\n * http://www.opensource.org/licenses/mit-license.php\r\n * \r\n * Copyright 2012, Codrops\r\n * http://www.codrops.com\r\n */\r\n;( function( $, window, undefined ) {\r\n\t\r\n\t'use strict';\r\n\r\n\tif ($(\".custom-calendar-wrap\").length > 0) {\r\n\t\tgetslots();\r\n\t}\r\n\tvar slots = [];\r\n\t$.Calendario = function( options, element ) {\r\n\t\tthis.$el = $( element );\r\n\t\tthis._init( options );\r\n\t\t\r\n\t};\r\n\t// the options\r\n\t$.Calendario.defaults = {\r\n\t\t/*\r\n\t\tyou can also pass:\r\n\t\tmonth : initialize calendar with this month (1-12). Default is today.\r\n\t\tyear : initialize calendar with this year. Default is today.\r\n\t\tcaldata : initial data/content for the calendar.\r\n\t\t*/\r\n\t\t// year: 2019,\r\n\t\t// month: 1,\r\n\t\t// format:\r\n\t\t// {\r\n\t\t// \t'DD-MM-YYYY' : 'HTML Content'\r\n\t\t// },\r\n\t\tweeks : [ 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday' ],\r\n\t\tweekabbrs : [ 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' ],\r\n\t\tmonths : [ 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December' ],\r\n\t\tmonthabbrs : [ 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec' ],\r\n\t\t// choose between values in options.weeks or options.weekabbrs\r\n\t\tdisplayWeekAbbr : false,\r\n\t\t// choose between values in options.months or options.monthabbrs\r\n\t\tdisplayMonthAbbr : false,\r\n\t\t// left most day in the calendar\r\n\t\t// 0 - Sunday, 1 - Monday, ... , 6 - Saturday\r\n\t\tstartIn : 1,\r\n\t\tonDayClick : function( $el, $content, dateProperties ) { \r\n\t\t\t\r\n\t\t}\r\n\t};\r\n\r\n\t$.Calendario.prototype = {\r\n\r\n\t\t_init : function( options ) {\r\n\t\t\t\r\n\t\t\t// options\r\n\t\t\tthis.options = $.extend( true, {}, $.Calendario.defaults, options );\r\n\r\n\t\t\tthis.today = new Date();\r\n\t\t\tthis.month = ( isNaN( this.options.month ) || this.options.month == null) ? this.today.getMonth() : this.options.month - 1;\r\n\t\t\tthis.year = ( isNaN( this.options.year ) || this.options.year == null) ? this.today.getFullYear() : this.options.year;\r\n\t\t\tthis.caldata = this.options.caldata || {};\r\n\t\t\tthis._generateTemplate();\r\n\t\t\tthis._initEvents();\r\n\r\n\t\t},\r\n\t\t_initEvents : function() {\r\n\r\n\t\t\tvar self = this;\r\n\r\n\t\t\tthis.$el.on( 'click.calendario', 'div.fc-row > div', function() {\r\n\r\n\t\t\t\tvar $cell = $( this ),\r\n\t\t\t\t\tidx = $cell.index(),\r\n\t\t\t\t\t$content = $cell.children( 'div' ),\r\n\t\t\t\t\tdateProp = {\r\n\t\t\t\t\t\tday : $cell.children( 'span.fc-date' ).text(),\r\n\t\t\t\t\t\tmonth : self.month + 1,\r\n\t\t\t\t\t\tmonthname : self.options.displayMonthAbbr ? self.options.monthabbrs[ self.month ] : self.options.months[ self.month ],\r\n\t\t\t\t\t\tyear : self.year,\r\n\t\t\t\t\t\tweekday : idx + self.options.startIn,\r\n\t\t\t\t\t\tweekdayname : self.options.weeks[ idx + self.options.startIn ]\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\tif( dateProp.day ) {\r\n\t\t\t\t\tself.options.onDayClick( $cell, $content, dateProp );\r\n\t\t\t\t}\r\n\r\n\t\t\t} );\r\n\r\n\t\t},\r\n\t\t// Calendar logic based on http://jszen.blogspot.pt/2007/03/how-to-build-simple-calendar-with.html\r\n\t\t_generateTemplate : function( callback ) {\r\n\r\n\t\t\tvar head = this._getHead(),\r\n\t\t\t\tbody = this._getBody(),\r\n\t\t\t\trowClass;\r\n\r\n\t\t\tswitch( this.rowTotal ) {\r\n\t\t\t\tcase 4 : rowClass = 'fc-four-rows'; break;\r\n\t\t\t\tcase 5 : rowClass = 'fc-five-rows'; break;\r\n\t\t\t\tcase 6 : rowClass = 'fc-six-rows'; break;\r\n\t\t\t}\r\n\r\n\t\t\tthis.$cal = $( '
' ).append( head, body );\r\n\r\n\t\t\tthis.$el.find( 'div.fc-calendar' ).remove().end().append( this.$cal );\r\n\r\n\t\t\tif( callback ) { callback.call(); }\r\n\r\n\t\t},\r\n\t\t_getHead : function() {\r\n\t\t\tvar html = '
';\r\n\t\t\r\n\t\t\tfor ( var i = 0; i <= 6; i++ ) {\r\n\r\n\t\t\t\tvar pos = i + this.options.startIn,\r\n\t\t\t\t\tj = pos > 6 ? pos - 6 - 1 : pos;\r\n\r\n\t\t\t\thtml += '
';\r\n\t\t\t\thtml += this.options.displayWeekAbbr ? this.options.weekabbrs[ j ] : this.options.weeks[ j ];\r\n\t\t\t\thtml += '
';\r\n\r\n\t\t\t}\r\n\r\n\t\t\thtml += '
';\r\n\r\n\t\t\treturn html;\r\n\r\n\t\t},\r\n\t\t_getBody : function() {\r\n\t\t\tvar d = new Date( this.year, this.month + 1, 0 ),\r\n\t\t\t\t// number of days in the month\r\n\t\t\t\tmonthLength = d.getDate(),\r\n\t\t\t\tfirstDay = new Date( this.year, this.month, 1 );\r\n\r\n\t\t\t// day of the week\r\n\t\t\tthis.startingDay = firstDay.getDay();\r\n\r\n\t\t\tvar html = '
',\r\n\t\t\t\t// fill in the days\r\n\t\t\t\tday = 1;\r\n\t\t\t// this loop is for weeks (rows)\r\n\t\t\tfor ( var i = 0; i < 7; i++ ) {\r\n\t\t\t\t// this loop is for weekdays (cells)\r\n\t\t\t\tfor ( var j = 0; j <= 6; j++ ) {\r\n\t\t\t\t\tvar isPrevious = false;\r\n\t\t\t\t\tvar pos = this.startingDay - this.options.startIn,\r\n\t\t\t\t\t\tp = pos < 0 ? 6 + pos + 1 : pos,\r\n\t\t\t\t\t\tinner = '',\r\n\t\t\t\t\t\ttoday = this.month === this.today.getMonth() && this.year === this.today.getFullYear() && day === this.today.getDate(),\r\n\t\t\t\t\t\t \r\n\t\t\t\t\t\tcontent = '';\r\n\t\t\t\t\tif ( day <= monthLength && ( i > 0 || j >= p ) ) {\r\n\r\n\t\t\t\t\t\tinner += '' + day + '' + this.options.weekabbrs[ j + this.options.startIn > 6 ? j + this.options.startIn - 6 - 1 : j + this.options.startIn ] + '';\r\n\r\n\t\t\t\t\t\t// this day is:\r\n\t\t\t\t\t\tvar strdate = ( this.month + 1 < 10 ? '0' + ( this.month + 1 ) : this.month + 1 ) + '-' + ( day < 10 ? '0' + day : day ) + '-' + this.year,\r\n\t\t\t\t\t\tdayData = this.caldata[ strdate ];\r\n\t\t\t\t\t\tvar strtoday = this.year + '-'+ ( this.month + 1 < 10 ? '0' + ( this.month + 1 ) : this.month + 1 ) + '-' + ( day < 10 ? '0' + day : day );\r\n\t\t\t\t\t\tisPrevious = this.today > new Date(strtoday) ? true : false;\r\n\t\t\t\t\t\tif( dayData ) {\r\n\t\t\t\t\t\t\tcontent = dayData;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tvar disableWeekend = $(\"body\").data(\"weekends\").toLowerCase() == \"false\" ? false : true;\r\n\t\t\t\t\t\tvar isWeekend = disableWeekend && (j == 5 || j == 6) ? true : false;\r\n\t\t\t\t\t\tif( content !== '' ) {\r\n\t\t\t\t\t\t\tinner += '
' + content + '
';\r\n\t\t\t\t\t\t} else if(!isPrevious) {\r\n\t\t\t\t\t\t\tvar slotmarks = '';\r\n\t\t\t\t\t\t\t// $.each( slots, function( key, value ) {\r\n // slotmarks += ''\r\n // });\r\n\t\t\t\t\t\t\t// inner += '
'+slotmarks+'
';\r\n\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t++day;\r\n\r\n\t\t\t\t\t}\r\n\t\t\t\t\telse {\r\n\t\t\t\t\t\ttoday = false;\r\n\t\t\t\t\t}\r\n\t\t\t\t\t\r\n\t\t\t\t\t\r\n\t\t\t\t\t// Opret en midlertidig DOM-container\r\n\t\t\t\t\tvar tempDiv = document.createElement(\"div\");\r\n\t\t\t\t\ttempDiv.innerHTML = content;\r\n\r\n\t\t\t\t\t// Find elementet med klassen 'full'\r\n\t\t\t\t\tvar hasFullClass = tempDiv.querySelector(\".full\") !== null;\r\n\r\n\t\t\t\t\tvar cellClasses = today ? 'fc-today ' : '';\r\n\t\t\t\t\tcellClasses += isPrevious || isWeekend || hasFullClass ? \"fc-previous \" : \"\";\r\n\t\t\t\t\tconsole.log(content)\r\n\t\t\t\t\tif( content !== '' ) {\r\n\t\t\t\t\t\tcellClasses += 'fc-content';\r\n\t\t\t\t\t} else if(!isPrevious){\r\n\t\t\t\t\t\tcellClasses += 'fc-open';\r\n\t\t\t\t\t}\r\n\t\t\t\t\thtml += cellClasses !== '' ? '
' : '
';\r\n\t\t\t\t\thtml += inner;\r\n\t\t\t\t\thtml += '
';\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\t// stop making rows if we've run out of days\r\n\t\t\t\tif (day > monthLength) {\r\n\t\t\t\t\tthis.rowTotal = i + 1;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t} \r\n\t\t\t\telse {\r\n\t\t\t\t\thtml += '
';\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t\thtml += '
';\r\n\t\t\treturn html;\r\n\r\n\t\t},\r\n\t\t// based on http://stackoverflow.com/a/8390325/989439\r\n\t\t_isValidDate : function( date ) {\r\n\r\n\t\t\tdate = date.replace(/-/gi,'');\r\n\t\t\tvar month = parseInt( date.substring( 0, 2 ), 10 ),\r\n\t\t\t\tday = parseInt( date.substring( 2, 4 ), 10 ),\r\n\t\t\t\tyear = parseInt( date.substring( 4, 8 ), 10 );\r\n\r\n\t\t\tif( ( month < 1 ) || ( month > 12 ) ) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\telse if( ( day < 1 ) || ( day > 31 ) ) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\telse if( ( ( month == 4 ) || ( month == 6 ) || ( month == 9 ) || ( month == 11 ) ) && ( day > 30 ) ) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\telse if( ( month == 2 ) && ( ( ( year % 400 ) == 0) || ( ( year % 4 ) == 0 ) ) && ( ( year % 100 ) != 0 ) && ( day > 29 ) ) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\t\t\telse if( ( month == 2 ) && ( ( year % 100 ) == 0 ) && ( day > 29 ) ) {\r\n\t\t\t\treturn false;\r\n\t\t\t}\r\n\r\n\t\t\treturn {\r\n\t\t\t\tday : day,\r\n\t\t\t\tmonth : month,\r\n\t\t\t\tyear : year\r\n\t\t\t};\r\n\r\n\t\t},\r\n\t\t_move : function( period, dir, callback ) {\r\n\r\n\t\t\tif( dir === 'previous' ) {\r\n\t\t\t\t\r\n\t\t\t\tif( period === 'month' ) {\r\n\t\t\t\t\tthis.year = this.month > 0 ? this.year : --this.year;\r\n\t\t\t\t\tthis.month = this.month > 0 ? --this.month : 11;\r\n\t\t\t\t}\r\n\t\t\t\telse if( period === 'year' ) {\r\n\t\t\t\t\tthis.year = --this.year;\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\t\t\telse if( dir === 'next' ) {\r\n\r\n\t\t\t\tif( period === 'month' ) {\r\n\t\t\t\t\tthis.year = this.month < 11 ? this.year : ++this.year;\r\n\t\t\t\t\tthis.month = this.month < 11 ? ++this.month : 0;\r\n\t\t\t\t}\r\n\t\t\t\telse if( period === 'year' ) {\r\n\t\t\t\t\tthis.year = ++this.year;\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t\tthis._generateTemplate( callback );\r\n\r\n\t\t},\r\n\t\t/************************* \r\n\t\t******PUBLIC METHODS *****\r\n\t\t**************************/\r\n\t\tgetYear : function() {\r\n\t\t\treturn this.year;\r\n\t\t},\r\n\t\tgetMonth : function() {\r\n\t\t\treturn this.month + 1;\r\n\t\t},\r\n\t\tgetMonthName : function() {\r\n\t\t\treturn this.options.displayMonthAbbr ? this.options.monthabbrs[ this.month ] : this.options.months[ this.month ];\r\n\t\t},\r\n\t\t// gets the cell's content div associated to a day of the current displayed month\r\n\t\t// day : 1 - [28||29||30||31]\r\n\t\tgetCell : function( day ) {\r\n\r\n\t\t\tvar row = Math.floor( ( day + this.startingDay - this.options.startIn ) / 7 ),\r\n\t\t\t\tpos = day + this.startingDay - this.options.startIn - ( row * 7 ) - 1;\r\n\r\n\t\t\treturn this.$cal.find( 'div.fc-body' ).children( 'div.fc-row' ).eq( row ).children( 'div' ).eq( pos ).children( 'div' );\r\n\r\n\t\t},\r\n\t\tsetData : function( caldata ) {\r\n\t\t\tcaldata = caldata || {};\r\n\t\t\t$.extend( this.caldata, caldata );\r\n\t\t\tthis._generateTemplate();\r\n\r\n\t\t},\r\n\t\t// goes to today's month/year\r\n\t\tgotoNow : function( callback ) {\r\n\r\n\t\t\tthis.month = this.today.getMonth();\r\n\t\t\tthis.year = this.today.getFullYear();\r\n\t\t\tthis._generateTemplate( callback );\r\n\r\n\t\t},\r\n\t\t// goes to month/year\r\n\t\tgoto : function( month, year, callback ) {\r\n\r\n\t\t\tthis.month = month;\r\n\t\t\tthis.year = year;\r\n\t\t\tthis._generateTemplate( callback );\r\n\r\n\t\t},\r\n\t\tgotoPreviousMonth : function( callback ) {\r\n\t\t\tthis._move( 'month', 'previous', callback );\r\n\t\t},\r\n\t\tgotoPreviousYear : function( callback ) {\r\n\t\t\tthis._move( 'year', 'previous', callback );\r\n\t\t},\r\n\t\tgotoNextMonth : function( callback ) {\r\n\t\t\tthis._move( 'month', 'next', callback );\r\n\t\t},\r\n\t\tgotoNextYear : function( callback ) {\r\n\t\t\tthis._move( 'year', 'next', callback );\r\n\t\t}\r\n\r\n\t};\r\n\t\r\n\tvar logError = function( message ) {\r\n\r\n\t\tif ( window.console ) {\r\n\r\n\t\t\twindow.console.error( message );\r\n\t\t\r\n\t\t}\r\n\r\n\t};\r\n\t\r\n\t$.fn.calendario = function( options ) {\r\n\r\n\t\tvar instance = $.data( this, 'calendario' );\r\n\t\t\r\n\t\tif ( typeof options === 'string' ) {\r\n\t\t\t\r\n\t\t\tvar args = Array.prototype.slice.call( arguments, 1 );\r\n\t\t\t\r\n\t\t\tthis.each(function() {\r\n\t\t\t\r\n\t\t\t\tif ( !instance ) {\r\n\r\n\t\t\t\t\tlogError( \"cannot call methods on calendario prior to initialization; \" +\r\n\t\t\t\t\t\"attempted to call method '\" + options + \"'\" );\r\n\t\t\t\t\treturn;\r\n\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tif ( !$.isFunction( instance[options] ) || options.charAt(0) === \"_\" ) {\r\n\r\n\t\t\t\t\tlogError( \"no such method '\" + options + \"' for calendario instance\" );\r\n\t\t\t\t\treturn;\r\n\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\tinstance[ options ].apply( instance, args );\r\n\t\t\t\r\n\t\t\t});\r\n\t\t\r\n\t\t} \r\n\t\telse {\r\n\t\t\r\n\t\t\tthis.each(function() {\r\n\t\t\t\t\r\n\t\t\t\tif ( instance ) {\r\n\r\n\t\t\t\t\tinstance._init();\r\n\t\t\t\t\r\n\t\t\t\t}\r\n\t\t\t\telse {\r\n\r\n\t\t\t\t\tinstance = $.data( this, 'calendario', new $.Calendario( options, this ) );\r\n\t\t\t\t\r\n\t\t\t\t}\r\n\r\n\t\t\t});\r\n\t\t\r\n\t\t}\r\n\t\t\r\n\t\treturn instance;\r\n\t\t\r\n\t};\r\n\tfunction getslots() {\r\n\t\t$.ajax({\r\n\t\t\turl: \"/umbraco/api/Calendar/GetSlots\",\r\n\t\t\ttype: 'GET',\r\n\t\t\tdataType: 'json', // added data type\r\n\t\t\tdata: {\r\n\t\t\t\tpageid: $(\"body\").data(\"pageid\")\r\n\t\t\t},\r\n\t\t\tsuccess: function (res) {\r\n\t\t\t\tslots = res;\r\n\t\t\t}\r\n\t\t});\r\n\t}\r\n} )( jQuery, window );\r\n","// import './modernizr';\r\nimport './jquery.calendario';\r\n\r\nexport function calendar() {\r\n\t$(function () {\r\n\t\tvar selectedDates = [];\r\n\t\tvar totalPrices = 0;\r\n\t\tvar totalPricesVAT = 0;\r\n\r\n\t\tfunction calcPriceWithVAT() {\r\n\t\t\tvar newPrice = 0;\r\n\t\t\tselectedDates.forEach(element => {\r\n\t\t\t\tnewPrice += element.slot.price;\r\n\t\t\t\tif(element.products != undefined && element.products.length) {\r\n\t\t\t\t\telement.products.forEach(product => {\r\n\t\t\t\t\t\tnewPrice += product.totalprice;\r\n\t\t\t\t\t});\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\ttotalPrices = newPrice;\r\n\t\t\tvar percentage = $('input[name=percentage]').val();\r\n\t\t\ttotalPricesVAT = totalPrices * 1.25;\r\n\t\t\tif (percentage > 0) {\r\n\t\t\t\ttotalPricesVAT = totalPricesVAT - ((totalPricesVAT / 100) * percentage);\r\n\t\t\t}\r\n\t\t}\r\n\t\tfunction uuidv4() {\r\n\t\t\treturn 'xxxxxxxxxxxx4xxxyxxxxxxxxxxxxxxx'.replace(/[xy]/g, function (c) {\r\n\t\t\t\tvar r = Math.random() * 16 | 0,\r\n\t\t\t\t\tv = c == 'x' ? r : (r & 0x3 | 0x8);\r\n\t\t\t\treturn v.toString(16);\r\n\t\t\t});\r\n\t\t}\r\n\r\n\t\tif ($(\".custom-calendar-wrap\").length > 0) {\r\n\t\t\tvar transEndEventNames = {\r\n\t\t\t\t'WebkitTransition': 'webkitTransitionEnd',\r\n\t\t\t\t'MozTransition': 'transitionend',\r\n\t\t\t\t'OTransition': 'oTransitionEnd',\r\n\t\t\t\t'msTransition': 'MSTransitionEnd',\r\n\t\t\t\t'transition': 'transitionend'\r\n\t\t\t},\r\n\t\t\t\ttransEndEventName = transEndEventNames[Modernizr.prefixed('transition')],\r\n\t\t\t\t$wrapper = $('#custom-inner'),\r\n\t\t\t\t$calendar = $('#calendar'),\r\n\t\t\t\tcal = $calendar.calendario({\r\n\t\t\t\t\tonDayClick: function ($el, $contentEl, dateProperties) {\r\n\t\t\t\t\t\tif ($el.hasClass(\"fc-today\") || $el.hasClass(\"fc-previous\") || $contentEl.find(\"span\").hasClass(\"full\")) {\r\n\t\t\t\t\t\t\treturn;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tdateProperties.day = dateProperties.day.length == 1 ? \"0\" + dateProperties.day : dateProperties.day\r\n\t\t\t\t\t\tvar pageId = $(\"body\").data(\"pageid\");\r\n\t\t\t\t\t\tvar date = dateProperties.day + \" \" + dateProperties.monthname + \" \" + dateProperties.year;\r\n\t\t\t\t\t\tvar formatDate = moment(date, \"DD MMMM yyyy\").format('DD-MM-yyyy');\r\n\r\n\t\t\t\t\t\tgetAvalibleslots(date)\r\n\t\t\t\t\t},\r\n\t\t\t\t\tcaldata: SetDates(),\r\n\t\t\t\t\tdisplayWeekAbbr: true\r\n\t\t\t\t}),\r\n\t\t\t\t$month = $('#custom-month').html(cal.getMonthName()),\r\n\t\t\t\t$year = $('#custom-year').html(cal.getYear());\r\n\r\n\t\t\tfunction getAvalibleslots(date) {\r\n\t\t\t\t$.ajax({\r\n\t\t\t\t\turl: \"/umbraco/api/Calendar/CheckAvaliableSlots\",\r\n\t\t\t\t\ttype: 'GET',\r\n\t\t\t\t\tdataType: 'json', // added data type\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\tpageid: $(\"body\").data(\"pageid\"),\r\n\t\t\t\t\t\tdate: date\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsuccess: function (slots) {\r\n\t\t\t\t\t\taddSlotsToModal(date, slots)\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\tfunction addSlotsToModal(date, slots) {\r\n\t\t\t\tvar dateWrapper = $(\".date\");\r\n\t\t\t\t\r\n\r\n\t\t\t\t$(\".modal-content\").empty();\r\n\t\t\t\t$(\".modal-content\").append(\"

\" + date + \"

\")\r\n\t\t\t\t$(\".modal-content\").append(\"\");\r\n\t\t\t\tvar slotsWrapper = $(\".modal-slots\");\r\n\t\t\t\t$(\".modal-content\").append(`\r\n \r\n `)\r\n\t\t\t\t$(\".modal-content\").append(`\r\n\t\t\t\t\t\r\n\t\t\t\t`);\r\n\t\t\t\tvar daySelected = false;\r\n\r\n\t\t\t\t$.each(slots, function (key, value) {\r\n\r\n\t\t\t\t\tvar checkIfAddedBefore = pluckByIdDate(selectedDates, value.Id, date, value.StartTime, value.EndTime, true);\r\n\t\t\t\t\tif (checkIfAddedBefore == undefined) {\r\n\t\t\t\t\t\tslotsWrapper.append(`\r\n
\r\n
\r\n

` + value.StartTime + ` - ` + value.EndTime + `

\r\n
\r\n

` + value.Price + ` DKK

\r\n \r\n \r\n
\r\n `)\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdaySelected = true;\r\n\t\t\t\t\t\tslotsWrapper.append(`\r\n
\r\n
\r\n

` + value.StartTime + ` - ` + value.EndTime + `

\r\n
\r\n

` + value.Price + ` DKK

\r\n \r\n \r\n\r\n
\r\n `)\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tif (daySelected) {\r\n\t\t\t\t\t$(\".addBooking\").addClass(\"deactive\");\r\n\t\t\t\t}\r\n\t\t\t\t$(\".mask\").addClass(\"active\");\r\n\t\t\t}\r\n\r\n\t\t\tvar selectedDate = 0;\r\n\t\t\tvar selectedSlotId = 0;\r\n\r\n\t\t\t$(document).on(\"click\", \".addBooking\", function () {\r\n\t\t\t\tvar hasProducts = $(\".modal\").data(\"hasproducts\");\r\n\t\t\t\tconsole.log(hasProducts)\r\n\t\t\t\tif(hasProducts != 'False') {\r\n\t\t\t\t\t$(\".modal-content\").hide();\r\n\t\t\t\t\t$(\".modal-products\").show();\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$(\".mask\").removeClass(\"active\");\r\n\t\t\t\t}\r\n\t\t\t\tvar button = $(\"button.done\");\r\n\t\t\t\tif (!button.hasClass(\"active\")) {\r\n\t\t\t\t\tbutton.addClass(\"active\")\r\n\t\t\t\t}\r\n\t\t\t\t$('.addBooking').not(this).addClass(\"deactive\");\r\n\t\t\t\tif ($(this).hasClass(\"deactive\")) {\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t\tvar id = $(this).data(\"id\");\r\n\t\t\t\tvar date = $(this).data(\"date\");\r\n\r\n\t\t\t\tselectedDate = date;\r\n\t\t\t\tselectedSlotId = id;\r\n\r\n\t\t\t\tvar startTime = $(this).data(\"start\");\r\n\t\t\t\tvar endTime = $(this).data(\"end\");\r\n\t\t\t\tvar price = $(this).data(\"price\");\r\n\t\t\t\tvar booking = {\r\n\t\t\t\t\t\"id\": id,\r\n\t\t\t\t\t\"date\": date,\r\n\t\t\t\t\t\"slot\": {\r\n\t\t\t\t\t\t\"startTime\": startTime,\r\n\t\t\t\t\t\t\"endTime\": endTime,\r\n\t\t\t\t\t\t\"price\": price,\r\n\t\t\t\t\t\t\"id\": id\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\r\n\t\t\t\tvar exists = pluckByIdDate(selectedDates, id, date, startTime, endTime, true)\r\n\t\t\t\tif (exists == undefined) {\r\n\t\t\t\t\tselectedDates.push(booking);\r\n\t\t\t\t\ttotalPrices += price;\r\n\t\t\t\t\tcalcPriceWithVAT()\r\n\t\t\t\t}\r\n\r\n\t\t\t\tif (selectedDates.length > 0) {\r\n\t\t\t\t\t$(\".button-next\").css('display', 'flex');\r\n\t\t\t\t\t$(\".booking\").show();\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$('*[data-id=\"' + id + '\"]').toggleClass(\"showbtn\").toggleClass(\"hidebtn\");\r\n\t\t\t\taddPickedDates(selectedDates)\r\n\t\t\t\tUpdatePrice();\r\n\r\n\t\t\t});\r\n\t\t\t$(document).on(\"click\", \".removeBooking\", function () {\r\n\t\t\t\tvar button = $(\"button.done\");\r\n\t\t\t\tif (button.hasClass(\"active\")) {\r\n\t\t\t\t\tbutton.removeClass(\"active\")\r\n\t\t\t\t}\r\n\t\t\t\t$('.addBooking').removeClass(\"deactive\");\r\n\t\t\t\tvar id = $(this).data(\"id\");\r\n\t\t\t\tvar date = $(this).data(\"date\");\r\n\t\t\t\tvar startTime = $(this).data(\"start\");\r\n\t\t\t\tvar endTime = $(this).data(\"end\");\r\n\t\t\t\tvar price = $(this).data(\"price\");\r\n\r\n\t\t\t\tvar exists = pluckByIdDate(selectedDates, id, date, startTime, endTime)\r\n\t\t\t\tif (exists != undefined) {\r\n\t\t\t\t\tvar totalProductPrice = exists.products.reduce((total, item) => total + item.totalprice, 0);\r\n\t\t\t\t\tselectedDates = selectedDates.filter(item => item !== exists);\r\n\t\t\t\t\ttotalPrices -= price;\r\n\t\t\t\t\ttotalPrices -= totalProductPrice;\r\n\t\t\t\t\tcalcPriceWithVAT()\r\n\t\t\t\t}\r\n\t\t\t\t$('*[data-id=\"' + id + '\"]').toggleClass(\"showbtn\").toggleClass(\"hidebtn\");\r\n\r\n\t\t\t\tif (selectedDates.length > 0) {\r\n\t\t\t\t\t$(\".button-next\").css('display', 'flex');\r\n\t\t\t\t\t$(\".booking\").show();\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$(\".button-next\").hide();\r\n\t\t\t\t\t$(\".booking\").hide();\r\n\t\t\t\t}\r\n\t\t\t\taddPickedDates(selectedDates)\r\n\t\t\t\tUpdatePrice();\r\n\r\n\t\t\t});\r\n\r\n\t\t\t// Product add\r\n\t\t\t$(document).on(\"click\", \".save-product\", function () {\r\n\t\t\t\tvar selectedProducts = [];\r\n\t\t\t\tvar products = $(\".product\");\r\n\t\t\t\tproducts.each(function (index, element) {\r\n\t\t\t\t\tvar multiAmount = $(element).data(\"productamount\");\r\n\t\t\t\t\tvar productPrice = $(element).data(\"productprice\");\r\n\t\t\t\t\tvar productname = $(element).data(\"productname\");\r\n\t\t\t\t\tvar amount = 1;\r\n\t\t\t\t\tvar isSelected = false;\r\n\t\t\t\t\tvar ischecked = $(element).find('input[type=\"checkbox\"]').prop('checked');\r\n\r\n\t\t\t\t\tif (multiAmount) {\r\n\t\t\t\t\t\tamount = $(element).find(\".product-amount\").val()\r\n\t\t\t\t\t\tisSelected = amount > 0 ? true : false;\r\n\t\t\t\t\t} else if (!multiAmount && ischecked) {\r\n\t\t\t\t\t\tisSelected = true;\r\n\t\t\t\t\t}\r\n\t\t\t\t\tvar productItem = {\r\n\t\t\t\t\t\tname: productname,\r\n\t\t\t\t\t\tprice: productPrice,\r\n\t\t\t\t\t\tselectAmount: multiAmount,\r\n\t\t\t\t\t\tamount: amount,\r\n\t\t\t\t\t\ttotalprice: productPrice * amount\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (isSelected) {\r\n\t\t\t\t\t\tselectedProducts.push(productItem);\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tvar currentBooking = selectedDates.find(x => x.id == selectedSlotId && x.date == selectedDate);\r\n\t\t\t\tcurrentBooking.products = selectedProducts;\r\n\r\n\t\t\t\tvar totalProductPrice = selectedProducts.reduce((total, item) => total + item.totalprice, 0);\r\n\t\t\t\ttotalPrices += totalProductPrice;\r\n\t\t\t\tUpdatePrice()\r\n\t\t\t\taddPickedDates(selectedDates)\r\n\r\n\r\n\t\t\t\t$(\".modal-content\").show();\r\n\t\t\t\t$(\".modal-products\").hide();\r\n\t\t\t\t$(\".mask\").removeClass(\"active\");\r\n\t\t\t\t$(\".button-next\").hide();\r\n\t\t\t\t$(\".calendar\").hide();\r\n\t\t\t\t$(\".calendar-form\").show();\r\n\t\t\t\t$(\".button-back\").css('display', 'flex');\r\n\t\t\t\t$('input[type=\"checkbox\"]').prop('checked', false);\r\n\t\t\t\t$('select').prop('selectedIndex', 0);\r\n\t\t\t});\r\n\r\n\t\t\t$(document).on(\"click\", \".skip-product\", function () {\r\n\t\t\t\tconsole.log(\"REmove\")\r\n\t\t\t\t$('input[type=\"checkbox\"]').prop('checked', false);\r\n\t\t\t\t$('select').prop('selectedIndex', 0);\r\n\r\n\t\t\t\t$(\".modal-content\").show();\r\n\t\t\t\t$(\".modal-products\").hide();\r\n\t\t\t\t$(\".mask\").removeClass(\"active\");\r\n\t\t\t\t$(\".button-next\").hide();\r\n\t\t\t\t$(\".calendar\").hide();\r\n\t\t\t\t$(\".calendar-form\").show();\r\n\t\t\t\t$(\".button-back\").css('display', 'flex');\r\n\t\t\t});\r\n\r\n\t\t\t// Product add\r\n\r\n\r\n\t\t\t// Check if object is in array\r\n\t\t\tfunction pluckByIdDate(inArr, id, date, startTime, endTime, exists) {\r\n\t\t\t\tfor (var i = 0; i < inArr.length; i++) {\r\n\t\t\t\t\tif (inArr[i].slot.startTime == startTime && inArr[i].slot.endTime == endTime && inArr[i].id == id && inArr[i].date == date) {\r\n\t\t\t\t\t\treturn inArr[i];\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\tfunction UpdatePrice() {\r\n\t\t\t\tcalcPriceWithVAT()\r\n\r\n\t\t\t\t$('input[name=price]').val(totalPricesVAT);\r\n\t\t\t\tif (totalPrices > 0) {\r\n\t\t\t\t\t$(\".booking\").html(\"Pay\");\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$(\".booking\").html(\"Book\");\r\n\t\t\t\t}\r\n\r\n\r\n\t\t\t}\r\n\r\n\t\t\tfunction addPickedDates(bookings) {\r\n\t\t\t\tvar price = 0;\r\n\r\n\t\t\t\tvar group_to_values = bookings.reduce(function (obj, item) {\r\n\t\t\t\t\tobj[item.date] = obj[item.date] || [];\r\n\t\t\t\t\tobj[item.date].push(item.slot);\r\n\t\t\t\t\treturn obj;\r\n\t\t\t\t}, {});\r\n\r\n\t\t\t\tvar groups = Object.keys(group_to_values).map(function (key) {\r\n\t\t\t\t\treturn { id: group_to_values[key].id, date: key, slots: group_to_values[key] };\r\n\t\t\t\t});\r\n\t\t\t\t$(\".receipt-bookings\").empty();\r\n\t\t\t\t$(\".receipt__total\").empty();\r\n\t\t\t\tvar array = [];\r\n\t\t\t\tfor (let i = 0; i < groups.length; i++) {\r\n\t\t\t\t\tarray.push(\"

\" + groups[i].date + \"

\");\r\n\t\t\t\t\tarray.push(\"
\")\r\n\t\t\t\t\tfor (let k = 0; k < groups[i].slots.length; k++) {\r\n\t\t\t\t\t\tvar productsText = \"\";\r\n\t\t\t\t\t\tvar booking = bookings.find(x => x.id == groups[i].slots[k].id);\r\n\t\t\t\t\t\tif (booking.products != undefined && booking.products.length > 0) {\r\n\t\t\t\t\t\t\tfor (let i = 0; i < booking.products.length; i++) {\r\n\t\t\t\t\t\t\t\tconst p = booking.products[i];\r\n\t\t\t\t\t\t\t\tprice += p.totalprice;\r\n\t\t\t\t\t\t\t\tproductsText += `\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t
`+ p.amount + ` x ` + p.name + `
\r\n\t\t\t\t\t\t\t\t\t\t
`+ p.totalprice + ` DKK Ex. VAT\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}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tarray.push(`\r\n\t\t\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t
` + groups[i].slots[k].startTime + ` - ` + groups[i].slots[k].endTime + `
\r\n\t\t\t\t\t\t\t\t\t\t\t
` + groups[i].slots[k].price + ` DKK Ex. VAT\r\n\t\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\t`+ productsText\r\n\t\t\t\t\t\t\t+ `\r\n `)\r\n\r\n\t\t\t\t\t\tprice += groups[i].slots[k].price;\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tarray.push(\"
\")\r\n\t\t\t\t}\r\n\r\n\t\t\t\t$('input[name=baseprice]').val(price);\r\n\t\t\t\t$('input[name=price]').val(totalPricesVAT);\r\n\t\t\t\t$(\".receipt__total\").show();\r\n\t\t\t\t$(\".receipt-bookings\").html(array.join(''));\r\n\t\t\t\t$(\".receipt__total\").html(`\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
Total
\r\n\t\t\t\t\t\t
` + totalPrices + ` DKK \r\n\t\t\t\t\t\tex. VAT\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t
Total VAT incl.
\r\n\t\t\t\t\t\t
` + totalPricesVAT + ` DKK \r\n\t\t\t\t\t\tincl. VAT\r\n\t\t\t\t\t\t
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t`);\r\n\t\t\t}\r\n\r\n\t\t\t$(document).on(\"click\", \".removeProducts\", function () {\r\n\t\t\t\t\tvar productName = $(this).data(\"productname\");\r\n\t\t\t\t\tvar bookingId = $(this).data(\"bookeddate\");\r\n\t\t\t\t\tvar booking = selectedDates.find(x => x.id == bookingId);\r\n\r\n\t\t\t\t\tbooking.products = booking.products.filter(obj => obj.name !== productName);\r\n\t\t\t\t\tcalcPriceWithVAT()\r\n\t\t\t\t\t\r\n\t\t\t\t\taddPickedDates(selectedDates)\r\n\t\t\t\t\tconsole.log(booking)\r\n\t\t\t});\r\n\r\n\t\t\t$('#custom-next').on('click', function () {\r\n\t\t\t\tcal.gotoNextMonth(updateMonthYear);\r\n\t\t\t});\r\n\t\t\t$('#custom-prev').on('click', function () {\r\n\t\t\t\tcal.gotoPreviousMonth(updateMonthYear);\r\n\t\t\t});\r\n\t\t\t$('#custom-current').on('click', function () {\r\n\t\t\t\tcal.gotoNow(updateMonthYear);\r\n\t\t\t});\r\n\t\t\tfunction updateMonthYear() {\r\n\t\t\t\t$month.html(cal.getMonthName());\r\n\t\t\t\t$year.html(cal.getYear());\r\n\t\t\t}\r\n\t\t\t$(document).on(\"click\", \".custom-content-close\", function () {\r\n\t\t\t\thideEvents();\r\n\t\t\t});\r\n\r\n\r\n\t\t\tfunction objectifyForm(formArray) { // serialize data function\r\n\t\t\t\tvar returnArray = {};\r\n\t\t\t\tfor (var i = 0; i < formArray.length; i++) {\r\n\t\t\t\t\treturnArray[formArray[i]['name']] = formArray[i]['value'];\r\n\t\t\t\t}\r\n\t\t\t\treturn returnArray;\r\n\t\t\t}\r\n\t\t\t// button next step\r\n\r\n\t\t\t$(document).on(\"click\", \".button-next\", function (e) {\r\n\t\t\t\t$(\".button-back\").css('display', 'flex');\r\n\t\t\t\t$(\".button-next\").hide();\r\n\t\t\t\t$(\".calendar\").hide();\r\n\t\t\t\t$(\".calendar-form\").show();\r\n\t\t\t\t$(\".step2\").addClass(\"active\");\r\n\t\t\t\t$(\".indicator-line\").remove(\"active\");\r\n\t\t\t\t$(\".indicator-line\").addClass(\"active\");\r\n\r\n\t\t\t});\r\n\t\t\t$(document).on(\"click\", \".button-back\", function (e) {\r\n\t\t\t\t$(\".button-back\").hide();\r\n\t\t\t\t$(\".button-next\").css('display', 'flex');\r\n\t\t\t\t$(\".calendar\").show();\r\n\t\t\t\t$(\".calendar-form\").hide();\r\n\t\t\t\t$(\".step2\").removeClass(\"active\");\r\n\t\t\t\t$(\".indicator-line\").remove(\"active\");\r\n\r\n\t\t\t});\r\n\r\n\t\t\t// Sent to user to payment\r\n\t\t\t$(document).on(\"click\", \".booking\", function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tvar isvalid = validateForm();\r\n\t\t\t\tif (isvalid) {\r\n\t\t\t\t\t$(\".calendar-loader\").toggleClass(\"hide\");\r\n\t\t\t\t\tvar data = objectifyForm($('.calendarform').serializeArray());\r\n\t\t\t\t\tdata[\"uniqid\"] = uuidv4();\r\n\t\t\t\t\tdata[\"selecteddates\"] = selectedDates;\r\n\t\t\t\t\tvar bookinginfo = JSON.stringify(data);\r\n\t\t\t\t\tCookies.set('booking', bookinginfo);\r\n\t\t\t\t\tvar pageid = $(\"body\").data(\"pageid\");\r\n\t\t\t\t\tmakePayment(data.price, data.discountCode, pageid)\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\t$(document).on(\"click\", \".invoice\", function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tvar isvalid = validateForm();\r\n\t\t\t\tif (isvalid) {\r\n\t\t\t\t\t$(\".calendar-loader\").toggleClass(\"hide\");\r\n\t\t\t\t\tvar data = objectifyForm($('.calendarform').serializeArray());\r\n\t\t\t\t\tdata[\"uniqid\"] = uuidv4();\r\n\t\t\t\t\tdata[\"selecteddates\"] = selectedDates;\r\n\t\t\t\t\tdata[\"isPaid\"] = false;\r\n\t\t\t\t\tvar bookinginfo = JSON.stringify(data);\r\n\t\t\t\t\tCookies.set('booking', bookinginfo);\r\n\t\t\t\t\tconsole.log(data)\r\n\t\t\t\t\tSendInvoice(bookinginfo)\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t\tfunction SendInvoice(bookinginfo) {\r\n\t\t\t\t$.ajax({\r\n\t\t\t\t\turl: \"/umbraco/api/Calendar/ForInvoice\",\r\n\t\t\t\t\tcontentType: \"application/json; charset=UTF-8\",\r\n\t\t\t\t\ttype: 'POST',\r\n\t\t\t\t\tdataType: 'json',\r\n\t\t\t\t\tdata: bookinginfo,\r\n\t\t\t\t\terror: function (data) {\r\n\t\t\t\t\t\tconsole.log(\"Error: \", data)\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsuccess: function (response) {\r\n\t\t\t\t\t\twindow.location.replace(response)\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\r\n\r\n\r\n\t\t\tfunction validateForm() {\r\n\t\t\t\tvar required = $('input,textarea,select').filter(function () { return this.value == \"\" && this.hasAttribute('required') });\r\n\t\t\t\t$(\"input\").removeClass(\"notvalid\")\r\n\t\t\t\tvar allRequired = true;\r\n\t\t\t\trequired.each(function () {\r\n\t\t\t\t\tif ($(this).val() == '') {\r\n\t\t\t\t\t\tallRequired = false;\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\t$(this).removeClass(\"notvalid\")\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tif (!allRequired) {\r\n\t\t\t\t\trequired.addClass(\"notvalid\")\r\n\t\t\t\t\treturn false;\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t//Pay for the booking\r\n\t\t\tfunction makePayment(price, coupon, pageid) {\r\n\t\t\t\tif (price == 0) {\r\n\t\t\t\t\t$.ajax({\r\n\t\t\t\t\t\turl: '/umbraco/surface/payment/GetSuccessPage?pageId=' + pageid,\r\n\t\t\t\t\t\ttype: 'GET',\r\n\t\t\t\t\t\tsuccess: function (response) {\r\n\t\t\t\t\t\t\twindow.location.replace(response)\r\n\t\t\t\t\t\t},\r\n\t\t\t\t\t\terror: function (data) {\r\n\t\t\t\t\t\t\tconsole.log(\"Error: \", data)\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\tfetch('/umbraco/surface/payment/MakeAPayment?pageId=' + pageid + '&coupon=' + coupon + '&price=' + price, { method: 'POST' })\r\n\t\t\t\t\t\t.then(function (response) {\r\n\t\t\t\t\t\t\tif (response.url != undefined && response.redirected) {\r\n\t\t\t\t\t\t\t\twindow.location.href = response.url;\r\n\t\t\t\t\t\t\t} else if (response != null) {\r\n\t\t\t\t\t\t\t\treturn response.json();\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.then(function (session) {\r\n\t\t\t\t\t\t\tif (session != null) {\r\n\t\t\t\t\t\t\t\treturn stripe.redirectToCheckout({ sessionId: session.id });\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}).then(function (result) {\r\n\t\t\t\t\t\t\t// If `redirectToCheckout` fails due to a browser or network\r\n\t\t\t\t\t\t\t// error, you should display the localized error message to your\r\n\t\t\t\t\t\t\t// customer using `error.message`.\r\n\t\t\t\t\t\t\tif (result.error) {\r\n\t\t\t\t\t\t\t\talert(result.error.message);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}).catch(function (error) {\r\n\t\t\t\t\t\t\tconsole.error('Error:', error);\r\n\t\t\t\t\t\t});\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\r\n\t\t\tvar pkkey = $(\".custom-calendar-wrap\").data(\"publishkey\");\r\n\t\t\tvar stripe = Stripe(pkkey);\r\n\t\t\tvar checkoutButton = document.getElementById('checkout-button');\r\n\r\n\r\n\t\t\tfunction hideEvents() {\r\n\r\n\t\t\t\tvar $events = $('#custom-content-reveal');\r\n\t\t\t\tif ($events.length > 0) {\r\n\r\n\t\t\t\t\t$events.css('top', '100%');\r\n\t\t\t\t\tModernizr.csstransitions ? $events.on(transEndEventName, function () {\r\n\t\t\t\t\t\t$(this).remove();\r\n\t\t\t\t\t}) : $events.remove();\r\n\r\n\t\t\t\t}\r\n\r\n\t\t\t}\r\n\r\n\t\t\tfunction SetDates() {\r\n\t\t\t\t$.ajax({\r\n\t\t\t\t\turl: \"/umbraco/api/calendar/GetCal\",\r\n\t\t\t\t\ttype: 'GET',\r\n\t\t\t\t\tdataType: 'json', // added data type\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\tpageid: $(\"body\").data(\"pageid\")\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsuccess: function (res) {\r\n\t\t\t\t\t\tvar calData = {};\r\n\t\t\t\t\t\tif (res.AvailableDatesOnBookedDates != null) {\r\n\t\t\t\t\t\t\t$.each(res.AvailableDatesOnBookedDates, function (key, v) {\r\n\t\t\t\t\t\t\t\tvar slot = \"\";\r\n\t\t\t\t\t\t\t\tconsole.log(res.CalendarSlots)\r\n\t\t\t\t\t\t\t\tconsole.log(v.Slots)\r\n\t\t\t\t\t\t\t\tvar hasAFullDay = v.Slots.some(function(event) {\r\n\t\t\t\t\t\t\t\t\treturn event.FullDay === true;\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\tif (v.Slots.length < (res.CalendarSlots.length - 1) && !hasAFullDay) {\r\n\r\n\t\t\t\t\t\t\t\t\t$.each(v.Slots, function (key, value) {\r\n\t\t\t\t\t\t\t\t\t\tslot += ''\r\n\t\t\t\t\t\t\t\t\t});\r\n\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\telse {\r\n\t\t\t\t\t\t\t\t\tslot += '';\r\n\t\t\t\t\t\t\t\t\t$.each(v.Slots, function (key, value) {\r\n\t\t\t\t\t\t\t\t\t\tslot += ''\r\n\t\t\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t\t\tcalData[v.Date] = slot\r\n\t\t\t\t\t\t\t});\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tcal.setData(calData);\r\n\t\t\t\t\t\t$(\".calendar-loader\").toggleClass(\"hide\");\r\n\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).on(\"click\", \".removeCoupon\", function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tvar pageId = $(\"body\").data(\"pageid\");\r\n\r\n\t\t\t\tvar newVatPrice = totalPrices * 1.25;\r\n\t\t\t\t$('input[name=price]').val(newVatPrice);\r\n\t\t\t\t$(\".receipt__list-row--total-discount\").remove();\r\n\t\t\t\t$(\".receipt__list-row--total-vat .receipt__cost\").html(`\r\n\t\t\t\t\t` + totalPrices + ` DKK\r\n\t\t\t\t\tincl. VAT\r\n\t\t\t\t`)\r\n\t\t\t\tif (totalPrices > 0) {\r\n\t\t\t\t\t$(\".booking\").html(\"Pay\");\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$(\".booking\").html(\"Book\");\r\n\t\t\t\t}\r\n\t\t\t\t$(\".removeCoupon\").hide();\r\n\t\t\t\t$(\"#couponcode\").val(\"\");\r\n\t\t\t});\r\n\t\t\t$(document).on(\"click\", \".addCode\", function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tvar pageId = $(\"body\").data(\"pageid\");\r\n\t\t\t\tvar code = $(\"#couponcode\").val();\r\n\t\t\t\tvar price = totalPrices;\r\n\t\t\t\tvar newVatPrice = price * 1.25;\r\n\t\t\t\t$.ajax({\r\n\t\t\t\t\turl: \"/umbraco/surface/payment/GetCoupon?pageId=\" + pageId + \"&code=\" + code,\r\n\t\t\t\t\tcontentType: \"application/json; charset=UTF-8\",\r\n\t\t\t\t\ttype: 'Get',\r\n\t\t\t\t\tdataType: 'json',\r\n\t\t\t\t\t// data: JSON.stringify(data),\r\n\t\t\t\t\terror: function (data) {\r\n\t\t\t\t\t\tconsole.log(\"Error: \", data)\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsuccess: function (response) {\r\n\t\t\t\t\t\tvar discount_pct = response;\r\n\t\t\t\t\t\tif (discount_pct > 0) {\r\n\t\t\t\t\t\t\tvar discount = (price * discount_pct / 100);\r\n\t\t\t\t\t\t\tconsole.log(\"Discount: \", discount)\r\n\t\t\t\t\t\t\tvar newPrice = price - discount;\r\n\t\t\t\t\t\t\tvar newVatPrice = newPrice * 1.25;\r\n\t\t\t\t\t\t\t$(\".receipt__list-row--total-discount\").remove();\r\n\t\t\t\t\t\t\t$(\".receipt__list-row--total-vat .receipt__cost\").html(`\r\n\t\t\t\t\t\t\t\t` + newVatPrice + ` DKK\r\n\t\t\t\t\t\t\t\tincl. VAT\r\n\t\t\t\t\t\t\t`)\r\n\t\t\t\t\t\t\t$('input[name=price]').val(newVatPrice);\r\n\r\n\t\t\t\t\t\t\tif (newPrice > 0) {\r\n\t\t\t\t\t\t\t\t$(\".booking\").html(\"Pay\");\r\n\t\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t\t$(\".booking\").html(\"Book\");\r\n\t\t\t\t\t\t\t}\r\n\r\n\t\t\t\t\t\t\t$(\".removeCoupon\").show();\r\n\t\t\t\t\t\t\t$(\"#couponcode\").removeClass(\"notvalid\");\r\n\t\t\t\t\t\t\t$(`\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t\t
Discount (`+ discount_pct + `%)
\r\n\t\t\t\t\t\t\t\t
`+ discount + ` DKK
\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t\t\t` ).insertAfter(\".receipt__list-row--total\");\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t$(\".receipt__list-row--total-discount\").remove();\r\n\t\t\t\t\t\t\t$(\"#couponcode\").addClass(\"notvalid\");\r\n\t\t\t\t\t\t\t$('input[name=price]').val(newVatPrice);\r\n\t\t\t\t\t\t\t$(\".removeCoupon\").hide();\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\r\n\t\t\t});\r\n\t\t}\r\n\t\t// KEYPAD\r\n\t\tif ($(\".custom-calendar-wrap\").length > 0) { // Member login\r\n\t\t\t$(document).on(\"click\", \".member-login\", function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\t$(\".mask\").addClass(\"active\");\r\n\t\t\t\t$(\".modal\").addClass(\"pin\");\r\n\t\t\t\tvar modal = $(\".modal\");\r\n\t\t\t\tmodal.empty();\r\n\t\t\t\tmodal.append(`\r\n\t\t\t\t\t\t\t
\r\n\t\t\t\t\t`)\r\n\t\t\t\tmodal.append(`\r\n\t\t\t\t\t\t\t\t\t\r\n\t\t\t\t\t\t\t`)\r\n\t\t\t\t$(\"#PINcode\").html(\"
\" + \"\" + \"
\" + \"\" + \"\" + \"\" + \"
\" + \"\" + \"\" + \"\" + \"
\" + \"\" + \"\" + \"\" + \"
\" + \"\" + \"\" + \"\" + \"
\");\r\n\r\n\t\t\t});\r\n\r\n\t\t\t$(document).on(\"click\", \".num\", function (e) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\tvar num = $(this);\r\n\t\t\t\tvar v = $(\"#PINbox\").val();\r\n\t\t\t\t$(\"#PINbox\").val(v + num.val());\r\n\t\t\t});\r\n\r\n\t\t\t$(document).on(\"click\", \".enter\", function (e) {\r\n\t\t\t\tvar pass = $(\"#PINbox\").val();\r\n\t\t\t\tif (pass == \"\") {\r\n\t\t\t\t\talert(\"Enter a PIN\");\r\n\t\t\t\t} else {\r\n\t\t\t\t\tGetuser(pass);\r\n\t\t\t\t};\r\n\t\t\t});\r\n\t\t\t$(document).on(\"click\", \".clear\", function (e) {\r\n\t\t\t\t$(\"#PINbox\").val(\"\");\r\n\t\t\t});\r\n\r\n\t\t\tfunction Getuser(password) {\r\n\t\t\t\t$.ajax({\r\n\t\t\t\t\turl: \"/umbraco/api/member/GetMember\",\r\n\t\t\t\t\ttype: 'GET',\r\n\t\t\t\t\tdataType: 'json', // added data type\r\n\t\t\t\t\tdata: {\r\n\t\t\t\t\t\tpassword: password\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsuccess: function (user) {\r\n\t\t\t\t\t\tif (user == null) {\r\n\t\t\t\t\t\t\t$(\"#PINbox\").addClass(\"error\")\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\t$(\"#PINbox\").removeClass(\"error\")\r\n\t\t\t\t\t\t\t$(\".mask\").removeClass(\"active\");\r\n\t\t\t\t\t\t\t$(\".modal\").removeClass(\"pin\");\r\n\t\t\t\t\t\t\tfillform(user)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\t$(\"#PINbox\").val(\"\");\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t\tfunction fillform(user) {\r\n\t\t\t\tvar totalProductPrice = 0;\r\n\t\t\t\tfor (let i = 0; i < selectedDates.length; i++) {\r\n\t\t\t\t\tvar products = selectedDates[i].products;\r\n\t\t\t\t\tif (products != undefined) {\r\n\t\t\t\t\t\tfor (let k = 0; k < selectedDates[i].products.length; k++) {\r\n\t\t\t\t\t\t\ttotalProductPrice += selectedDates[i].products[k].totalprice;\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\t$(\".receipt__list-row--total-discount\").remove();\r\n\t\t\t\t$(\".invoice\").show();\r\n\t\t\t\tvar currentpriceVat = $('input[name=baseprice]').val() * 1.25;\r\n\t\t\t\tvar currentpriceExVat = $('input[name=baseprice]').val();\r\n\r\n\t\t\t\tvar discountPrice = (currentpriceExVat / 100 * user.Discount)\r\n\t\t\t\tvar newpriceEXVAT = currentpriceExVat - discountPrice;\r\n\t\t\t\tvar newpriceVAT = (currentpriceVat - (currentpriceVat / 100 * user.Discount))\r\n\r\n\t\t\t\t$('input[name=name]').val(user.Name)\r\n\t\t\t\t$('input[name=phone]').val(user.Phone)\r\n\t\t\t\t$('input[name=email]').val(user.Email)\r\n\t\t\t\t$('input[name=company]').val(user.Company)\r\n\t\t\t\t$('input[name=cvr]').val(user.Cvr)\r\n\t\t\t\t$('input[name=address]').val(user.Address)\r\n\t\t\t\t$('input[name=city]').val(user.City)\r\n\t\t\t\t$('input[name=zip]').val(user.Zip)\r\n\t\t\t\t$('input[name=invoiceemail]').val(user.InvoiceEmail)\r\n\t\t\t\t$('input[name=isCalendarUser]').val(true)\r\n\t\t\t\t$('input[name=price]').val(newpriceVAT)\r\n\t\t\t\t$('input[name=percentage]').val(user.Discount)\r\n\r\n\t\t\t\t$(`\r\n\t\t\t\t\t
\r\n\t\t\t\t\t\t\t
Discount (`+ user.Discount + `%)
\r\n\t\t\t\t\t\t\t
`+ discountPrice + ` DKK
\r\n\t\t\t\t\t
\r\n\t\t\t\t\t` ).insertAfter(\".receipt__list-row--total\");\r\n\r\n\t\t\t\t$(\".receipt__list-row--total-vat .receipt__cost\").html(`\r\n\t\t\t\t` + newpriceVAT + ` DKK\r\n\t\t\t\tincl. VAT\r\n\t\t\t`)\r\n\r\n\t\t\t\tif (newpriceVAT > 0) {\r\n\t\t\t\t\t$(\".booking\").html(\"Pay\");\r\n\t\t\t\t} else {\r\n\t\t\t\t\t$(\".booking\").html(\"Book\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\t//KEYPAD\r\n\t\t// Add the booking to after success page \r\n\t\tfunction addBooking(data) {\r\n\t\t\tif (Cookies.get('booking') != undefined) {\r\n\t\t\t\t$.ajax({\r\n\t\t\t\t\turl: \"/umbraco/api/calendar/AddBooking\",\r\n\t\t\t\t\tcontentType: \"application/json; charset=UTF-8\",\r\n\t\t\t\t\ttype: 'Post',\r\n\t\t\t\t\tdataType: 'json',\r\n\t\t\t\t\tdata: JSON.stringify(data),\r\n\t\t\t\t\terror: function (data) {\r\n\t\t\t\t\t\tconsole.log(\"Error: \", data)\r\n\t\t\t\t\t},\r\n\t\t\t\t\tsuccess: function (response) {\r\n\t\t\t\t\t\tCookies.remove('booking');\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t} else {\r\n\t\t\t\twindow.location.replace(\"/\")\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\tif ($(\".success-page\").length > 0) {\r\n\t\t\tif (Cookies.get('booking') != undefined) {\r\n\t\t\t\tvar data = JSON.parse(Cookies.get('booking'));\r\n\t\t\t\taddBooking(data)\r\n\t\t\t} else {\r\n\t\t\t\twindow.location.replace(\"/\")\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t\tif ($(\".error-page\").length > 0) {\r\n\t\t\tif (Cookies.get('booking') != undefined) {\r\n\t\t\t\tvar data = JSON.parse(Cookies.get('booking'));\r\n\t\t\t\tvar pageId = $(\"body\").data(\"pageid\");\r\n\t\t\t\tdeleteEvent(data.uniqid, pageId)\r\n\t\t\t} else {\r\n\t\t\t\twindow.location.replace(\"/\")\r\n\t\t\t}\r\n\t\t\tfunction deleteEvent(uniqid, pageid) { // Cookies.set('booking', userinfo);\r\n\t\t\t\t$.ajax({\r\n\t\t\t\t\turl: \"/umbraco/api/calendar/DeleteBookingById?pageId=\" + pageid + \"&id=\" + uniqid,\r\n\t\t\t\t\ttype: 'GET',\r\n\t\t\t\t\tdataType: 'json', // added data type\r\n\t\t\t\t\tsuccess: function (res) {\r\n\t\t\t\t\t\tif (res) {\r\n\t\t\t\t\t\t\tCookies.remove('booking')\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t},\r\n\t\t\t\t\terror: function (error) {\r\n\t\t\t\t\t\tconsole.log(\"E: \", error)\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t}\r\n\t});\r\n}\r\n\r\nexport default calendar;\r\n","export function modal() {\r\n // Click function for show the Modal\r\n $(\".show\").on(\"click\", function () {\r\n });\r\n $(document).on(\"click\",\".show\",function() {\r\n $(\".mask\").addClass(\"active\");\r\n });\r\n // Function for close the Modal\r\n\r\n function closeModal() {\r\n $(\".mask\").removeClass(\"active\");\r\n }\r\n\r\n // Call the closeModal function on the clicks/keyboard\r\n\r\n $(document).on(\"click\",\".close, .mask, .done\",function() {\r\n closeModal();\r\n });\r\n\r\n $(document).keyup(function (e) {\r\n if (e.keyCode == 27) {\r\n closeModal();\r\n }\r\n });\r\n\r\n \r\n}\r\n\r\nexport default modal;\r\n","export function keypad() {\r\n \r\n}\r\n\r\nexport default keypad;\r\n","\r\nexport function timer() {\r\n \r\n \r\n\r\n}\r\n\r\nexport default timer;","\r\nexport function internalbooking() {\r\n \r\n if (!$(\".internal-wrapper\").length) {\r\n return;\r\n }\r\n var interval;\r\n var timer = function(){\r\n clearInterval(interval);\r\n interval = setInterval(function(){\r\n reloadpage();\r\n }, 30000);\r\n };\r\n\r\n var starttime = \"\";\r\n var countdowntime = \"\";\r\n var currentBookingTime = new Date();\r\n var now = new Date();\r\n var number = 15;\r\n \r\n var isDelete = false;\r\n var allowBooking = $(\".internal-wrapper\").data(\"allowbooking\") == \"True\" ? true : false\r\n optimizeTime()\r\n setTimer();\r\n getBookingTime();\r\n \r\n $(function () {\r\n getInternalCalendarData(starttime);\r\n\r\n });\r\n\r\n function optimizeTime() {\r\n if (now.getMinutes() < 30) {\r\n now.setMinutes(30);\r\n } else {\r\n now.setHours(now.getHours() + 1, 0);\r\n }\r\n }\r\n function setClockDate() {\r\n var currenttimeAndDate = new Date();\r\n var date = moment(currenttimeAndDate).format(\"MMM Do YYYY\");\r\n var day = moment(currenttimeAndDate).format(\"dddd\");\r\n var time = moment(currenttimeAndDate).format(\"HH:mm\");\r\n $(\".time-wrapper .time\").html(\"

\" + time + \"

\")\r\n $(\".time-wrapper .date\").html(\"

\" + day + \"

\" + date + \"

\")\r\n }\r\n setClockDate();\r\n setInterval(function () { \r\n setClockDate() \r\n getInternalCalendarData(starttime);\r\n }, \r\n 30000);\r\n\r\n\r\n\r\n function setTimer() {\r\n var hour = now.getHours().toString().length == 1 ? \"0\" + now.getHours() : now.getHours();\r\n $(\".hour\").html(hour)\r\n var minut = now.getMinutes() < 10 ? \"0\" + now.getMinutes() : now.getMinutes();\r\n $(\".minut\").html(minut)\r\n }\r\n\r\n\r\n function getBookingTime() {\r\n if (currentBookingTime.getMinutes() < 30) {\r\n currentBookingTime.setMinutes(0);\r\n } else {\r\n currentBookingTime.setHours(currentBookingTime.getHours() + 0, 0);\r\n }\r\n\r\n var miuntes = currentBookingTime.getMinutes().toString().length == 1 ? \"0\" + currentBookingTime.getMinutes() : currentBookingTime.getMinutes();\r\n var hours = currentBookingTime.getHours().toString().length == 1 ? \"0\" + currentBookingTime.getHours() : currentBookingTime.getHours();\r\n starttime = hours + \":\" + miuntes;\r\n }\r\n\r\n \r\n $(document).on(\"click\", \".avaliable-hour-slots span\", function () {\r\n timer()\r\n if(!$(this).hasClass(\"notActive\")) {\r\n $(\".avaliable-hour-slots span\").removeClass(\"active\");\r\n \r\n $(this).addClass(\"active\");\r\n $(\".intern-book\").show();\r\n \r\n $(\".booking-bottom button\").addClass(\"active\");\r\n }\r\n });\r\n\r\n $(document).on(\"click\", \".internal-booking\", function () {\r\n if(!allowBooking) {return;}\r\n timer()\r\n changeTitle(\"Add booking for today\", false);\r\n $(\".internal-booking\").hide();\r\n $(\".internal-sidebar\").removeClass(\"color-green\");\r\n $(\".internal-sidebar\").addClass(\"color-blue\");\r\n\r\n\r\n CheckFreeSlots();\r\n $(\".new-booking-form\").css(\"display\", \"flex\")\r\n .hide()\r\n .fadeIn();\r\n });\r\n\r\n\r\n \r\n\r\n $('#previous').click(function(){\r\n //go back to previous slide and reset time\r\n clearInterval(interval);\r\n \r\n });\r\n $(document).on(\"click\", \".intern-book\", function () {\r\n if(!$(this).hasClass(\"notActive\")) {\r\n var length = $(\".avaliable-hour-slots .active\").text();\r\n var startTime = $(\".hour\").text() + \":\" + $(\".minut\").text();\r\n var text = \"Confirm \" + length + \" from \" + startTime + \" today\";\r\n changeTitle(text, false);\r\n $(\".new-booking-form\").hide();\r\n $(\".internal-login\").css(\"display\", \"flex\").hide().fadeIn();\r\n isDelete = false;\r\n timer()\r\n }\r\n \r\n\r\n });\r\n\r\n function changeTitle(text, reset) {\r\n if (reset) {\r\n $(\".header-title h1\").html($(\".header-title h1\").data(\"title\"))\r\n $(\".header-title span\").removeClass(\"active\");\r\n } else {\r\n $(\".header-title span\").addClass(\"active\");\r\n $(\".header-title h1\").html(text)\r\n }\r\n }\r\n function countdown(date) {\r\n var endTime = new Date(date);\r\n endTime = (Date.parse(endTime) / 1000);\r\n\r\n var countdownNow = new Date();\r\n countdownNow = (Date.parse(countdownNow) / 1000);\r\n\r\n var timeLeft = endTime - countdownNow;\r\n\r\n var days = Math.floor(timeLeft / 86400);\r\n var hours = Math.floor((timeLeft - (days * 86400)) / 3600);\r\n var minutes = Math.floor((timeLeft - (days * 86400) - (hours * 3600)) / 60);\r\n var seconds = Math.floor((timeLeft - (days * 86400) - (hours * 3600) - (minutes * 60)));\r\n\r\n if (hours < \"10\") { hours = \"0\" + hours; }\r\n if (minutes < \"10\") { minutes = \"0\" + minutes; }\r\n if (seconds < \"10\") { seconds = \"0\" + seconds; }\r\n\r\n if(hours == 0) {\r\n $(\".countdown-hour\").html(\"\");\r\n\r\n } else {\r\n $(\".countdown-hour\").html(hours + \" hour\");\r\n }\r\n\r\n if(minutes == 0) {\r\n $(\".countdown-minut\").html(\"Soon\");\r\n\r\n } else {\r\n \r\n $(\".countdown-minut\").html(parseInt(minutes)+1 + \" min\");\r\n\r\n }\r\n if(seconds <= 0) {\r\n $(\"next-meeting\").hide();\r\n }\r\n }\r\n\r\n function getInternalCalendarData(time) {\r\n var pageid = $(\"body\").data(\"pageid\");\r\n $.ajax({\r\n url: \"/umbraco/api/InternalCalendar/GetInternalCalendar\",\r\n contentType: \"application/json; charset=UTF-8\",\r\n type: 'Get',\r\n dataType: 'json',\r\n data: {\r\n PageId: pageid,\r\n StartTime: time\r\n },\r\n xhrFields: {\r\n withCredentials: true\r\n },\r\n crossDomain: true,\r\n error: function (data) {\r\n console.log(\"Error: \", data)\r\n },\r\n success: function (response) {\r\n if (response.Isbusy) {\r\n countdowntime = response.EndTime;\r\n setBusy()\r\n countdown(moment(new Date).format(\"dd MMMM yyyy\") + \" \" + countdowntime); \r\n setInterval(function () { countdown(moment(new Date).format(\"dd MMMM yyyy\") + \" \" + countdowntime); }, 60000);\r\n $(\".next-meeting\").delay(1000).fadeIn();\r\n setTimeChanger(response.EndTime)\r\n } else if(!allowBooking) {\r\n setBusy()\r\n }\r\n else {\r\n setNotBusy()\r\n $(\".next-meeting\").hide();\r\n }\r\n showBookings(response.CurrentBookings)\r\n $(\".calendar-loader\").fadeOut(300);\r\n },\r\n complete: function () {\r\n //call the 'doSomeRequest' when current one is complete\r\n // setTimeout(getInternalCalendarData(\"13:00 \"), 9000);\r\n }\r\n });\r\n }\r\n\r\n // setInterval(function () { getInternalCalendarData(\"21:00\") }, 1000);\r\n function showBookings(bookings) {\r\n $(\".sidebar-bookings\").empty();\r\n var sidebar = \"\";\r\n var isFirst = true;\r\n if(bookings.length > 0) {\r\n jQuery.each(bookings, function (index, booking) {\r\n var date = \"Today\";\r\n var now = moment(moment().format(\"DD MMMM YYYY\"), \"DD MMMM YYYY\");\r\n var nextBooking = moment(booking[0].BookedDate, \"DD MMMM YYYY\")\r\n var dif = now.diff(nextBooking,\"days\")\r\n switch (dif) {\r\n case 0:\r\n date = \"Today\"\r\n break;\r\n case -1:\r\n date = \"Tomorrow\"\r\n break;\r\n default:\r\n date = moment(booking[0].BookedDate, \"DD MMMM YYYY\").format(\"MMM Do\")\r\n break;\r\n }\r\n sidebar += \"

\" + date + \"

\"\r\n sidebar += \"\";\r\n if(isFirst) {\r\n sidebar += \"
\"\r\n }\r\n isFirst = false;\r\n });\r\n } else {\r\n sidebar = '

No meetings planned

';\r\n }\r\n $(\".sidebar-bookings\").append(sidebar);\r\n }\r\n\r\n function setBusy() {\r\n $(\".internal-sidebar\").removeClass(\"color-green\");\r\n $(\".internal-sidebar\").addClass(\"color-red\");\r\n\r\n $(\".internal-booking\").removeClass(\"color-green\");\r\n $(\".internal-booking\").addClass(\"color-red\");\r\n $(\".isfree\").hide();\r\n\r\n $(\".isbusy\").show();\r\n }\r\n function setNotBusy() {\r\n $(\".internal-sidebar\").removeClass(\"color-red\");\r\n $(\".internal-sidebar\").addClass(\"color-green\");\r\n\r\n $(\".internal-booking\").removeClass(\"color-red\");\r\n $(\".internal-booking\").addClass(\"color-green\");\r\n $(\".isbusy\").hide();\r\n $(\".isfree\").show();\r\n }\r\n function CheckFreeSlots() {\r\n var starttime = $(\".hour\").text() + \":\" + $(\".minut\").text();\r\n var pageid = $(\"body\").data(\"pageid\");\r\n $.ajax({\r\n url: \"/umbraco/api/InternalCalendar/GetInternalCalendar\",\r\n contentType: \"application/json; charset=UTF-8\",\r\n type: 'Get',\r\n dataType: 'json',\r\n data: {\r\n PageId: pageid,\r\n StartTime: starttime\r\n },\r\n error: function (data) {\r\n console.log(\"Error: \", data)\r\n },\r\n success: function (response) {\r\n var slotsData = response.MinutSlots;\r\n var slots = $(\".avaliable-hour-slots span\");\r\n \r\n slots.each(function() {\r\n var isFree = slotsData.find(x => x.Length.toString() == $(this).data(\"length\")).Free;\r\n if(!isFree) {\r\n $(this).addClass(\"notActive\");\r\n if($(this).hasClass(\"active\")) {\r\n $(\".intern-book\").addClass(\"notActive\");\r\n }\r\n } else {\r\n $(this).removeClass(\"notActive\");\r\n if($(this).hasClass(\"active\")) {\r\n $(\".intern-book\").removeClass(\"notActive\");\r\n }\r\n }\r\n });\r\n \r\n }\r\n });\r\n }\r\n\r\n\r\n //Set time selector\r\n\r\n function setTimeChanger(endTime) {\r\n var hour = endTime.substr(0, 2);\r\n var minutes = endTime.substr(endTime.length-2, 2)\r\n now.setMinutes(minutes);\r\n now.setHours(hour);\r\n $(\".hour\").html(endTime.substr(0, 2))\r\n $(\".minut\").html(minutes)\r\n }\r\n function changeHour(increase) {\r\n var minutes = now.getMinutes();\r\n if (increase) {\r\n var hour = now.getHours() + 1;\r\n now.setMinutes(minutes);\r\n now.setHours(hour);\r\n } else {\r\n var hour = now.getHours() - 1;\r\n now.setMinutes(minutes);\r\n now.setHours(hour);\r\n }\r\n\r\n var hour = now.getHours().toString().length == 1 ? \"0\" + now.getHours() : now.getHours();\r\n $(\".hour\").html(hour)\r\n\r\n }\r\n\r\n function changeMinut(increase) {\r\n\r\n var hour = now.getHours();\r\n if (increase) {\r\n var minutes = now.getMinutes() + number;\r\n now.setMinutes(minutes);\r\n now.setHours(hour);\r\n } else {\r\n var minutes = now.getMinutes() - number;\r\n now.setMinutes(minutes);\r\n now.setHours(hour);\r\n }\r\n var minut = now.getMinutes() < 10 ? \"0\" + now.getMinutes() : now.getMinutes();\r\n $(\".minut\").html(minut)\r\n\r\n }\r\n $(function () {\r\n\r\n $(document).on(\"click\", \".changehours\", function () {\r\n timer();\r\n var increase = $(this).data(\"type\")\r\n changeHour(increase)\r\n CheckFreeSlots()\r\n });\r\n\r\n $(document).on(\"click\", \".changeminutes\", function () {\r\n timer();\r\n var increase = $(this).data(\"type\");\r\n changeMinut(increase)\r\n CheckFreeSlots()\r\n });\r\n\r\n });\r\n\r\n $(document).on(\"click\", \".header-title span.active\", function () {\r\n location.reload();\r\n });\r\n\r\n\r\n\r\n // Delete internal booking \r\n $(document).on(\"click\", \".deletebookings\", function () {\r\n timer();\r\n changeTitle(\"Back to main screen\", false)\r\n $(this).addClass(\"deleteThis\")\r\n $(\".internal-booking\").hide();\r\n $(\".new-booking-form\").hide();\r\n $(\".internal-sidebar\").removeClass(\"color-green\");\r\n $(\".internal-sidebar\").addClass(\"color-blue\");\r\n $(\".internal-login\").css(\"display\", \"flex\").hide().fadeIn();\r\n isDelete = true;\r\n });\r\n \r\n $(document).on(\"click\", \".delete-booking\", function () {\r\n $(\".finish-booking\").removeClass(\"active\");\r\n $(\".delete-booking\").removeClass(\"active\");\r\n var pin = $(\".pin\");\r\n var code = \"\";\r\n jQuery.each(pin, function (index, k) {\r\n code = $(\".pin\").text();\r\n });\r\n var pageid = $(\"body\").data(\"pageid\");\r\n var id = $(\".deletebookings.deleteThis\").data(\"id\");\r\n\r\n var data = {\r\n \"PageId\": pageid,\r\n \"Pin\": code,\r\n \"Id\": id\r\n }\r\n $.ajax({\r\n url: \"/umbraco/api/InternalCalendar/DeleteInternalBooking\",\r\n contentType: \"application/json; charset=UTF-8\",\r\n type: 'Get',\r\n dataType: 'json',\r\n data: data,\r\n error: function (data) {\r\n console.log(\"Error: \", data)\r\n },\r\n success: function (response) {\r\n if (!response.Success) {\r\n $(\".errorTitle\").html(response.Title);\r\n $(\".errorMessage\").html(response.Message);\r\n $(\".password\").addClass(\"error\")\r\n $(\".delete-booking\").addClass(\"active\");\r\n $(\".success-msg\").hide()\r\n } else {\r\n $(\".successTitle\").html(response.Title);\r\n $(\".successMessage\").html(response.Message);\r\n $(\".error-msg\").hide();\r\n $(\".success-msg\").css(\"display\", \"flex\").hide().fadeIn();\r\n setTimeout(reloadpage, 3000)\r\n\r\n }\r\n }\r\n });\r\n });\r\n\r\n\r\n\r\n // Keypad and ADD booking\r\n\r\n var count = 0;\r\n $(document).on(\"click\", \".keypad span\", function () {\r\n timer()\r\n if (count < 4) {\r\n var key = $(this).text();\r\n $(\".pin\").eq(count).html(key.trim())\r\n count++;\r\n // count == 4 ? count = 0 : count;\r\n if (count == 4 && !isDelete) {\r\n $(\".finish-booking\").addClass(\"active\");\r\n } else if(count == 4 && isDelete) {\r\n $(\".delete-booking\").addClass(\"active\");\r\n }\r\n else {\r\n $(\".delete-booking\").removeClass(\"active\");\r\n $(\".finish-booking\").removeClass(\"active\");\r\n }\r\n }\r\n\r\n });\r\n $(document).on(\"click\", \".keypad .reset\", function () {\r\n timer()\r\n $(\".pin\").html(\"\");\r\n $(\".delete-booking\").removeClass(\"active\");\r\n $(\".finish-booking\").removeClass(\"active\");\r\n $(\".password\").removeClass(\"error\")\r\n count = 0;\r\n });\r\n\r\n\r\n $(document).on(\"click\", \".finish-booking\", function () {\r\n timer();\r\n $(\".finish-booking\").removeClass(\"active\");\r\n var pin = $(\".pin\");\r\n var code = \"\";\r\n jQuery.each(pin, function (index, k) {\r\n code = $(\".pin\").text();\r\n });\r\n var pageid = $(\"body\").data(\"pageid\");\r\n var length = $(\".avaliable-hour-slots .active\").data(\"length\");\r\n var startTime = $(\".hour\").text() + \":\" + $(\".minut\").text();\r\n\r\n var data = {\r\n \"PageId\": pageid,\r\n \"ClientPin\": code,\r\n \"StartTime\": startTime,\r\n \"Length\": length\r\n }\r\n $.ajax({\r\n url: \"/umbraco/api/InternalCalendar/AddBooking\",\r\n contentType: \"application/json; charset=UTF-8\",\r\n type: 'Post',\r\n dataType: 'json',\r\n data: JSON.stringify(data),\r\n error: function (data) {\r\n console.log(\"Error: \", data)\r\n },\r\n success: function (response) {\r\n if (!response.Success) {\r\n $(\".errorTitle\").html(response.Title);\r\n $(\".errorMessage\").html(response.Message);\r\n $(\".error-msg\").css(\"display\", \"flex\").hide().fadeIn();\r\n // setTimeout(function(){ $(\".error-msg\").fadeOut() }, 3000);\r\n $(\".password\").addClass(\"error\");\r\n $(\".success-msg\").hide()\r\n $(\".finish-booking\").addClass(\"active\");\r\n setTimeout(reloadpage, 5000)\r\n\r\n } else {\r\n $(\".successTitle\").html(response.Title);\r\n $(\".successMessage\").html(response.Message);\r\n $(\".error-msg\").hide();\r\n $(\".success-msg\").css(\"display\", \"flex\").hide().fadeIn();\r\n setTimeout(reloadpage, 3000)\r\n\r\n }\r\n }\r\n });\r\n });\r\n function reloadpage() {\r\n location.reload();\r\n }\r\n}\r\n\r\nexport default internalbooking;","\r\nexport function internalkeypad() {\r\n \r\n\r\n // use setTimeout() to execute\r\n}\r\n\r\nexport default internalkeypad;","/*\r\n * @title App\r\n * @description Application entry point\r\n */\r\n\r\n// Modules\r\nimport calendar from './components/calendar';\r\nimport modal from './components/modal';\r\nimport keypad from './components/keypad';\r\nimport timer from './components/timer';\r\nimport internalbooking from './components/internal-booking';\r\nimport internalkeypad from './components/internal-keypad.js';\r\n\r\ndocument.addEventListener('DOMContentLoaded', function() {\r\n timer();\r\n internalkeypad();\r\n internalbooking();\r\n calendar();\r\n modal();\r\n keypad();\r\n})\r\n\r\n"],"sourceRoot":""}