{"id":103,"date":"2022-11-30T15:09:43","date_gmt":"2022-11-30T14:09:43","guid":{"rendered":"https:\/\/newdemo.appointmentfree.eu\/?page_id=103"},"modified":"2022-11-30T15:09:43","modified_gmt":"2022-11-30T14:09:43","slug":"john-smith","status":"publish","type":"page","link":"https:\/\/demo.ebapp.it\/?page_id=103","title":{"rendered":"John Smith"},"content":{"rendered":"\n<div class=\"wrap plugin-container\">\n\n\t\n\t\n\t\n<!-- EMPLOYEE DETAILS -->\n\n\n<div class=\"vapempblock light-theme-background\" id=\"vapempblock1\">\n\n\t<div class=\"vapempinfoblock\">\n\n\t\t\t\t\t<div class=\"vapempimgdiv\">\n\t\t\t\t<a href=\"javascript: void(0);\" class=\"vapmodal\" onClick=\"vapOpenModalImage('https:\/\/demo.ebapp.it\/wp-content\/uploads\/vikappointments\/media\/john-smith.jpg', this);\">\n\t\t\t\t\t<img loading=\"lazy\" alt=\"Alberto Savano\" src=\"https:\/\/demo.ebapp.it\/wp-content\/uploads\/vikappointments\/media@small\/john-smith.jpg\" \/>\t\t\t\t<\/a>\n\t\t\t<\/div>\n\t\t\t\n\t\t<div class=\"vap-empmain-block\">\n\n\t\t\t<div class=\"vap-empheader-div\">\n\n\t\t\t\t<div class=\"vapempnamediv\">\n\t\t\t\t\t<a href=\"https:\/\/demo.ebapp.it\/?page_id=103&amp;id_employee=1\">\n\t\t\t\t\t\tAlberto Savano\t\t\t\t\t<\/a>\n\t\t\t\t<\/div>\n\n\t\t\t\t\n\t\t\t\t\n\t\t\t<\/div>\n\n\t\t\t<div class=\"vapempdescdiv\">\n\t\t\t\t\n<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Fusce accumsan elementum pretium. Pellentesque erat turpis, facilisis in scelerisque eget, maximus vitae est. Aenean dictum arcu a suscipit fringilla. Maecenas molestie suscipit lectus, vel iaculis purus consequat vitae. Vivamus vel dolor ac leo rutrum consectetur. Fusce hendrerit hendrerit fringilla. Sed dictum maximus lorem sed faucibus. Phasellus pharetra risus nec scelerisque varius. In eu nulla laoreet libero viverra condimentum vel in quam. Donec fermentum lectus at lobortis dignissim. Integer lorem libero, tempor et ante et, varius consequat dui. Aliquam convallis vel arcu et varius. Morbi turpis lorem, luctus nec venenatis eu, aliquet sit amet est.<\/p>\n<p>Interdum et malesuada fames ac ante ipsum primis in faucibus. Donec dictum semper enim, vitae ultricies quam blandit sed. Etiam pretium nisl ac tortor elementum, nec efficitur risus convallis. Maecenas nec iaculis lectus. Vivamus ligula dui, ullamcorper sed justo sed, congue consectetur augue. Vestibulum eget augue justo. Cras vitae feugiat eros. In neque odio, malesuada quis felis vitae, placerat iaculis dui. Mauris feugiat et lectus non fermentum.<\/p>\n\t\t\t<\/div>\n\t\t<\/div>\n\t\t\n\t<\/div>\n\t\n\t<\/div>\n\n<!-- CONTACT FORM -->\n\n\n<!-- SEARCH FORM -->\n\n<form name=\"empsearchform\" action=\"https:\/\/demo.ebapp.it\/?page_id=103&amp;id_employee=1\" method=\"post\" id=\"vapempsearchform\">\n\t\n\t<!-- FILTER BAR -->\n\n\t\n<div class=\"vapemployeeselect\">\n\t<select name=\"id_service\" id=\"vapsersel\">\n\t\t\t\t\t\t<optgroup label=\"Fitness\">\n\t\t\t\t\t\t\t\t<option value=\"2\" >\n\t\t\t\t\tPersonal Trainer \u20ac 35,00 (50 min.)\t\t\t\t<\/option>\n\t\t\t\t\t\t\t\t<option value=\"3\" >\n\t\t\t\t\tBody Check \u20ac 20,00 (20 min.)\t\t\t\t<\/option>\n\t\t\t\t\t\t\t\t<\/optgroup>\n\t\t\t\t\t\t\t\t<optgroup label=\"Corsi\">\n\t\t\t\t\t\t\t\t<option value=\"4\" >\n\t\t\t\t\tBody Pump (1 ora)\t\t\t\t<\/option>\n\t\t\t\t\t\t\t\t<\/optgroup>\n\t\t\t\t\t\t\t\t<optgroup label=\"Cardio\">\n\t\t\t\t\t\t\t\t<option value=\"7\" >\n\t\t\t\t\tRPM (1 ora)\t\t\t\t<\/option>\n\t\t\t\t\t\t\t\t<option value=\"8\" >\n\t\t\t\t\tSpinning (1 ora)\t\t\t\t<\/option>\n\t\t\t\t\t\t\t\t<option value=\"9\" >\n\t\t\t\t\tFunzionale (1 ora)\t\t\t\t<\/option>\n\t\t\t\t\t\t\t\t<\/optgroup>\n\t\t\t\t\t\t\t\t<optgroup label=\"Parrucchiere\">\n\t\t\t\t\t\t\t\t<option value=\"13\" >\n\t\t\t\t\tBarba e Capelli \u20ac 15,00 (1 ora)\t\t\t\t<\/option>\n\t\t\t\t\t\t\t\t<\/optgroup>\n\t\t\t\t\t\t\t\t<optgroup label=\"Floreale\">\n\t\t\t\t\t\t\t\t<option value=\"22\" >\n\t\t\t\t\tBouquet personalizzato \u20ac 5,00 (20 min.)\t\t\t\t<\/option>\n\t\t\t\t\t\t\t\t<\/optgroup>\n\t\t\t\t\t\t\t\t<option value=\"17\" selected=\"selected\">\n\t\t\t\t\tEpilazione Baffetti (5 min.)\t\t\t\t<\/option>\n\t\t\t\t\t\t\t\t<option value=\"18\" >\n\t\t\t\t\tEpilazione Gambaletto (15 min.)\t\t\t\t<\/option>\n\t\t\t\t\t\t\t\t<option value=\"19\" >\n\t\t\t\t\tEpilazione Baffetto + Gambaletto (20 min.)\t\t\t\t<\/option>\n\t\t\t\t\t<\/select>\n<\/div>\n\n\t<div class=\"vapmonthselect\">\n\t\t<select name=\"month\" id=\"vapmonthsel\">\n\t\t\t<option value=\"2026-04-01\">Aprile<\/option>\n<option value=\"2026-05-01\">Maggio<\/option>\n<option value=\"2026-06-01\">Giugno<\/option>\n<option value=\"2026-07-01\">Luglio<\/option>\n<option value=\"2026-08-01\">Agosto<\/option>\n<option value=\"2026-09-01\">Settembre<\/option>\n\t\t<\/select>\n\t<\/div>\n\t\t\n<script>\n\n\t(function($) {\n\t\t'use strict';\n\n\t\t$(function() {\n\t\t\t$('#vapsersel').select2({\n\t\t\t\tallowClear: false,\n\t\t\t\twidth: 300,\n\t\t\t});\n\n\t\t\t$('#vapmonthsel, #vapserpeopleselect').select2({\n\t\t\t\tminimumResultsForSearch: -1,\n\t\t\t\tallowClear: false,\n\t\t\t\twidth: 150,\n\t\t\t});\n\n\t\t\t$('#vapsersel, #vapmonthsel, .vap-empsearch-locval').on('change', () => {\n\t\t\t\tdocument.empsearchform.submit();\n\t\t\t});\n\t\t\t\n\t\t\t\t\t});\n\t})(jQuery);\n\n\tfunction vapUpdateServiceRate(rate) {\n\t\t\/**\n\t\t * @todo \tShould the rate be updated\n\t\t * \t\t\talso in case the new cost has been \n\t\t * \t\t\tnullified (free)?\n\t\t *\/\n\n\t\tif (rate > 0) {\n\t\t\t\/\/ update only if the rate is higher than 0\n\t\t\tjQuery('#vapratebox').html(Currency.getInstance().format(rate));\n\t\t}\n\t}\n\n<\/script>\n\n\t<!-- CALENDARS -->\n\n\t\n<div class=\"vapallcaldiv\">\n\t\t\t<div class=\"vapcalendardiv\">\n\n\t\t\t<!-- MONTH TABLE -->\n\n\t\t\t<table class=\"vapcaltable\">\n\n\t\t\t\t<thead class=\"vaptheadcal\">\n\n\t\t\t\t\t<!-- MONTH NAME - YEAR -->\n\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t<td colspan=\"7\" style=\"text-align: center;\">\n\t\t\t\t\t\t\tAprile - 2026\t\t\t\t\t\t<\/td>\n\t\t\t\t\t<\/tr>\n\n\t\t\t\t\t<!-- DAYS OF THE WEEK -->\n\n\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<th class=\"vapthtabcal\">Lun<\/th>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<th class=\"vapthtabcal\">Mar<\/th>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<th class=\"vapthtabcal\">Mer<\/th>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<th class=\"vapthtabcal\">Gio<\/th>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<th class=\"vapthtabcal\">Ven<\/th>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<th class=\"vapthtabcal\">Sab<\/th>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t<th class=\"vapthtabcal\">Dom<\/th>\n\t\t\t\t\t\t\t\t\t\t\t\t<\/tr>\n\n\t\t\t\t<\/thead>\n\n\t\t\t\t<!-- DAYS OF THE MONTH -->\n\t\t\t\t\n\t\t\t\t<tbody class=\"vaptbodycal\">\n\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"vaptdnoday\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"vapdivday\"> <\/div>\n\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"vaptdnoday\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"vapdivday\"> <\/div>\n\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"vaptdday vaptdgrey\" data-day=\"2026-04-01\">\n\t\t\t\t\t\t\t\t\t\t<a href=\"javascript:void(0)\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"vapdivday\">\n\t\t\t\t\t\t\t\t\t\t\t\t1\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"vaptdday vaptdgrey\" data-day=\"2026-04-02\">\n\t\t\t\t\t\t\t\t\t\t<a href=\"javascript:void(0)\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"vapdivday\">\n\t\t\t\t\t\t\t\t\t\t\t\t2\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"vaptdday vaptdgrey\" data-day=\"2026-04-03\">\n\t\t\t\t\t\t\t\t\t\t<a href=\"javascript:void(0)\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"vapdivday\">\n\t\t\t\t\t\t\t\t\t\t\t\t3\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"vaptdday vaptdgrey\" data-day=\"2026-04-04\">\n\t\t\t\t\t\t\t\t\t\t<a href=\"javascript:void(0)\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"vapdivday\">\n\t\t\t\t\t\t\t\t\t\t\t\t4\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"vaptdday vaptdgrey\" data-day=\"2026-04-05\">\n\t\t\t\t\t\t\t\t\t\t<a href=\"javascript:void(0)\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"vapdivday\">\n\t\t\t\t\t\t\t\t\t\t\t\t5\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"vaptdday vaptdgrey\" data-day=\"2026-04-06\">\n\t\t\t\t\t\t\t\t\t\t<a href=\"javascript:void(0)\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"vapdivday\">\n\t\t\t\t\t\t\t\t\t\t\t\t6\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"vaptdday vaptdgrey\" data-day=\"2026-04-07\">\n\t\t\t\t\t\t\t\t\t\t<a href=\"javascript:void(0)\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"vapdivday\">\n\t\t\t\t\t\t\t\t\t\t\t\t7\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"vaptdday vaptdgrey\" data-day=\"2026-04-08\">\n\t\t\t\t\t\t\t\t\t\t<a href=\"javascript:void(0)\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"vapdivday\">\n\t\t\t\t\t\t\t\t\t\t\t\t8\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"vaptdday vaptdgrey\" data-day=\"2026-04-09\">\n\t\t\t\t\t\t\t\t\t\t<a href=\"javascript:void(0)\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"vapdivday\">\n\t\t\t\t\t\t\t\t\t\t\t\t9\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"vaptdday vaptdgrey\" data-day=\"2026-04-10\">\n\t\t\t\t\t\t\t\t\t\t<a href=\"javascript:void(0)\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"vapdivday\">\n\t\t\t\t\t\t\t\t\t\t\t\t10\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"vaptdday vaptdgrey\" data-day=\"2026-04-11\">\n\t\t\t\t\t\t\t\t\t\t<a href=\"javascript:void(0)\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"vapdivday\">\n\t\t\t\t\t\t\t\t\t\t\t\t11\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"vaptdday vaptdgrey\" data-day=\"2026-04-12\">\n\t\t\t\t\t\t\t\t\t\t<a href=\"javascript:void(0)\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"vapdivday\">\n\t\t\t\t\t\t\t\t\t\t\t\t12\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"vaptdday vaptdgrey\" data-day=\"2026-04-13\">\n\t\t\t\t\t\t\t\t\t\t<a href=\"javascript:void(0)\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"vapdivday\">\n\t\t\t\t\t\t\t\t\t\t\t\t13\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"vaptdday vaptdgreen\" data-day=\"2026-04-14\">\n\t\t\t\t\t\t\t\t\t\t<a href=\"javascript:void(0)\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"vapdivday\">\n\t\t\t\t\t\t\t\t\t\t\t\t14\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"vaptdday vaptdgreen\" data-day=\"2026-04-15\">\n\t\t\t\t\t\t\t\t\t\t<a href=\"javascript:void(0)\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"vapdivday\">\n\t\t\t\t\t\t\t\t\t\t\t\t15\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"vaptdday vaptdgreen\" data-day=\"2026-04-16\">\n\t\t\t\t\t\t\t\t\t\t<a href=\"javascript:void(0)\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"vapdivday\">\n\t\t\t\t\t\t\t\t\t\t\t\t16\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"vaptdday vaptdgreen\" data-day=\"2026-04-17\">\n\t\t\t\t\t\t\t\t\t\t<a href=\"javascript:void(0)\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"vapdivday\">\n\t\t\t\t\t\t\t\t\t\t\t\t17\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"vaptdday vaptdgrey\" data-day=\"2026-04-18\">\n\t\t\t\t\t\t\t\t\t\t<a href=\"javascript:void(0)\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"vapdivday\">\n\t\t\t\t\t\t\t\t\t\t\t\t18\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"vaptdday vaptdgrey\" data-day=\"2026-04-19\">\n\t\t\t\t\t\t\t\t\t\t<a href=\"javascript:void(0)\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"vapdivday\">\n\t\t\t\t\t\t\t\t\t\t\t\t19\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"vaptdday vaptdgreen\" data-day=\"2026-04-20\">\n\t\t\t\t\t\t\t\t\t\t<a href=\"javascript:void(0)\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"vapdivday\">\n\t\t\t\t\t\t\t\t\t\t\t\t20\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"vaptdday vaptdgreen\" data-day=\"2026-04-21\">\n\t\t\t\t\t\t\t\t\t\t<a href=\"javascript:void(0)\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"vapdivday\">\n\t\t\t\t\t\t\t\t\t\t\t\t21\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"vaptdday vaptdgreen\" data-day=\"2026-04-22\">\n\t\t\t\t\t\t\t\t\t\t<a href=\"javascript:void(0)\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"vapdivday\">\n\t\t\t\t\t\t\t\t\t\t\t\t22\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"vaptdday vaptdgreen\" data-day=\"2026-04-23\">\n\t\t\t\t\t\t\t\t\t\t<a href=\"javascript:void(0)\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"vapdivday\">\n\t\t\t\t\t\t\t\t\t\t\t\t23\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"vaptdday vaptdgreen\" data-day=\"2026-04-24\">\n\t\t\t\t\t\t\t\t\t\t<a href=\"javascript:void(0)\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"vapdivday\">\n\t\t\t\t\t\t\t\t\t\t\t\t24\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"vaptdday vaptdgrey\" data-day=\"2026-04-25\">\n\t\t\t\t\t\t\t\t\t\t<a href=\"javascript:void(0)\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"vapdivday\">\n\t\t\t\t\t\t\t\t\t\t\t\t25\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"vaptdday vaptdgrey\" data-day=\"2026-04-26\">\n\t\t\t\t\t\t\t\t\t\t<a href=\"javascript:void(0)\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"vapdivday\">\n\t\t\t\t\t\t\t\t\t\t\t\t26\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/tr>\n\t\t\t\t\t\t\t\t\t\t\t\t<tr>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"vaptdday vaptdgreen\" data-day=\"2026-04-27\">\n\t\t\t\t\t\t\t\t\t\t<a href=\"javascript:void(0)\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"vapdivday\">\n\t\t\t\t\t\t\t\t\t\t\t\t27\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"vaptdday vaptdgreen\" data-day=\"2026-04-28\">\n\t\t\t\t\t\t\t\t\t\t<a href=\"javascript:void(0)\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"vapdivday\">\n\t\t\t\t\t\t\t\t\t\t\t\t28\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"vaptdday vaptdgreen\" data-day=\"2026-04-29\">\n\t\t\t\t\t\t\t\t\t\t<a href=\"javascript:void(0)\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"vapdivday\">\n\t\t\t\t\t\t\t\t\t\t\t\t29\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"vaptdday vaptdgreen\" data-day=\"2026-04-30\">\n\t\t\t\t\t\t\t\t\t\t<a href=\"javascript:void(0)\">\n\t\t\t\t\t\t\t\t\t\t\t<div class=\"vapdivday\">\n\t\t\t\t\t\t\t\t\t\t\t\t30\t\t\t\t\t\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t\t\t\t\t<\/a>\n\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"vaptdnoday\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"vapdivday\"> <\/div>\n\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"vaptdnoday\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"vapdivday\"> <\/div>\n\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<td class=\"vaptdnoday\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"vapdivday\"> <\/div>\n\t\t\t\t\t\t\t\t\t<\/td>\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<\/tr>\n\t\t\t\t\t\t\n\t\t\t\t<\/tbody>\n\n\t\t\t<\/table>\n\n\t\t<\/div>\n\t\t<\/div>\n\n<script>\n\n\tjQuery(function($) {\n\t\t$('.vaptdday[data-day]').on('click', function() {\n\t\t\t\/\/ remove selection from any other cell\n\t\t\t$('.vaptdday').removeClass('vaptdselected');\n\t\t\t\/\/ auto-select clicked cell\n\t\t\t$(this).addClass('vaptdselected');\n\n\t\t\t\/\/ load timeline\n\t\t\tvapGetTimeline($(this).data('day'));\n\t\t});\n\t});\n\n<\/script>\n\n\t<!-- TIMELINE -->\n\n\t\n<div class=\"vaptimeline\" id=\"vaptimeline\">\n\t\t\t\t\n<\/div>\n\n\n<script>\n\n\tjQuery(function($) {\n\t\t\/\/ auto-load timeline in case a date was selected\n\t\tvapGetTimeline();\n\t});\n\n\t\tvar TIMELINE_XHR = null;\n\n\tfunction vapGetTimeline(date) {\n\t\tif (TIMELINE_XHR !== null) {\n\t\t\t\/\/ abort previous request\n\t\t\tTIMELINE_XHR.abort();\n\t\t}\n\n\t\tif (typeof date === 'undefined') {\n\t\t\t\/\/ recover stored date\n\t\t\tdate = jQuery('#vapdayselected').val();\n\n\t\t\tif (!date) {\n\t\t\t\t\/\/ no selected date\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t\/\/ auto-select clicked cell\n\t\t\tjQuery('.vaptdday[data-day=\"' + date + '\"]').addClass('vaptdselected');\n\t\t} else {\n\t\t\t\/\/ register selected date\n\t\t\tjQuery('#vapdayselected').val(date);\n\t\t}\n\n\t\t\/**\n\t\t * @see views\/employeesearch\/tmpl\/default.php\n\t\t *\/\n\t\tLAST_TIMESTAMP_USED = date;\n\t\t\n\t\t\/**\n\t\t * @see layouts\/blocks\/checkout.php\n\t\t *\/\n\t\tisTimeChoosen = false;\n\n\t\t\/\/ prepare timeline data\n\t\tlet data = {\n\t\t\tday:       date,\n\t\t\tid_emp:    1,\n\t\t\tid_ser:    17,\n\t\t\tpeople:    jQuery('#vapserpeopleselect').val(),\n\t\t\tadmin:     0,\n\t\t\tid_res:    0,\n\t\t\tlocations: [],\n\t\t};\n\n\t\t\/\/ unset hours and minutes as the checkin day has changed\n\t\tjQuery('#vapconfhourselected').val('');\n\t\tjQuery('#vapconfminselected').val('');\n\n\t\t\/\/ update input hidden holding the selected number of participants\n\t\tjQuery('#vappeopleselected').val(data.people);\n\n\t\t\/\/ flag used to check whether all the locations are selected\n\t\tlet all = true;\n\n\t\tjQuery('.vap-empsearch-locval').each(function() {\n\t\t\tif (jQuery(this).is(':checked')) {\n\t\t\t\tdata.locations.push(jQuery(this).val());\n\t\t\t} else {\n\t\t\t\t\/\/ at least one not selected\n\t\t\t\tall = false;\n\t\t\t}\n\t\t});\n\n\t\tif (all) {\n\t\t\t\/\/ all locations are selected, so we can ignore this filter\n\t\t\tdelete data.locations;\n\t\t}\n\n\t\tlet error = false;\n\n\t\tnew Promise((resolve, reject) => {\n\t\t\tTIMELINE_XHR = UIAjax.do(\n\t\t\t\t'https:\/\/demo.ebapp.it\/wp-admin\/admin-ajax.php?task=employeesearch.timelineajax&action=vikappointments&vik_ajax_client=site',\n\t\t\t\tdata,\n\t\t\t\t(resp) => {\n\t\t\t\t\tresolve(resp);\n\t\t\t\t},\n\t\t\t\t(err) => {\t\n\t\t\t\t\treject(err);\n\t\t\t\t}\n\t\t\t);\n\t\t}).then((resp) => {\n\t\t\tif (!resp.error) {\n\t\t\t\t\/\/ render timeline through the helper function\n\t\t\t\tvapRenderTimeline(resp.timeline, resp.html, resp.rate, data);\n\t\t\t} else {\n\t\t\t\t\/\/ register availability error\n\t\t\t\terror = resp.error;\n\t\t\t}\n\t\t}).catch((err) => {\n\t\t\tif (typeof err.responseText !== 'undefined') {\n\t\t\t\t\/\/ register response HTTP error message\n\t\t\t\terror = err.responseText || Joomla.JText._('VAPWAITLISTADDED0');\n\t\t\t} else {\n\t\t\t\terror = true;\n\t\t\t\t\/\/ we are probably handling an exception\n\t\t\t\tconsole.error(err);\t\n\t\t\t}\n\t\t}).finally(() => {\n\t\t\tTIMELINE_XHR = null;\n\n\t\t\tif (error !== false) {\n\t\t\t\tif (typeof error === 'string') {\n\t\t\t\t\t\/\/ Fill timeline box with fetched error message.\n\t\t\t\t\t\/\/ Wrap error in a <div> for individual styling.\n\t\t\t\t\tjQuery('#vaptimeline').html(\n\t\t\t\t\t\tjQuery('<div class=\"timeline-error\"><\/div>').html(error)\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t\/\/ unset selected date on error\n\t\t\t\tjQuery('#vapdayselected').val('');\n\n\t\t\t\t\/\/ hide wait list button\n\t\t\t\tjQuery('#vapwaitlistbox').hide();\n\t\t\t\t\/\/ hide add cart button\n\t\t\t\tjQuery('#vapadditembutton').hide();\n\t\t\t}\n\n\t\t\t\/\/ animate only in case the timeline is not visible\n\t\t\tvar px_to_scroll = isBoxOutOfMonitor(jQuery('#vaptimeline'), 60);\n\t\t\t\t\n\t\t\tif (px_to_scroll !== false) {\n\t\t\t\tjQuery('html,body').animate({scrollTop: \"+=\" + px_to_scroll}, {duration:'normal'});\n\t\t\t}\n\t\t});\n\t}\n\n\tvar HOUR_MIN_SELECTED = false;\n\n\tfunction vapRenderTimeline(timeline, html, newRate, request) {\n\t\tlet eventArgs = {\n\t\t\ttimeline: timeline,\n\t\t\thtml:     html,\n\t\t\tnewRate:  newRate,\n\t\t\trequest:  request,\n\t\t};\n\n\t\t\/\/ inject received parameters within the event to dispatch\n\t\tvar event = jQuery.Event('timeline.beforerender');\n\t\tevent.params = eventArgs;\n\t\t\n\t\t\/\/ trigger event before rendering the timeline\n\t\tjQuery(window).trigger(event);\n\n\t\t\/\/ fill timeline with fetched HTML\n\t\tjQuery('#vaptimeline').html(html);\n\n\t\t\/\/ update base cost\n\t\tif (newRate && typeof vapUpdateServiceRate !== 'undefined') {\n\t\t\t\/**\n\t\t\t * @see views\/employeesearch\/tmpl\/default_filterbar.php\n\t\t\t *\/\n\t\t\tvapUpdateServiceRate(newRate);\n\t\t}\n\n\t\tvar at_least_one_open   = false;\n\t\tvar at_least_one_closed = false;\n\n\t\t\/\/ iterate timeline levels\n\t\ttimeline.forEach((level) => {\n\t\t\t\/\/ iterate level times\n\t\t\tlevel.forEach((time) => {\n\t\t\t\tat_least_one_open   = at_least_one_open   || (time.status == 1);\n\t\t\t\tat_least_one_closed = at_least_one_closed || (time.status == 0);\n\t\t\t});\n\t\t});\n\n\t\t\/\/ display \"add to cart\" button only if the timeline\n\t\t\/\/ reports at least an available slot\n\t\tif (at_least_one_open) {\n\t\t\tjQuery('#vapadditembutton').show();\n\t\t} else {\n\t\t\tjQuery('#vapadditembutton').hide();\n\t\t}\n\n\t\t\/\/ display \"add to waiting list\" button only if the\n\t\t\/\/ timeline reports at least an occupied slot\n\t\tif (at_least_one_closed) {\n\t\t\tjQuery('#vapwaitlistbox').show();\n\t\t} else {\n\t\t\tjQuery('#vapwaitlistbox').hide();\n\t\t}\n\n\t\t\n\t\t\/\/ inject received parameters within the event to dispatch\n\t\tvar event = jQuery.Event('timeline.afterrender');\n\t\tevent.params = eventArgs;\n\t\t\n\t\t\/\/ trigger event after rendering the timeline\n\t\tjQuery(window).trigger(event);\n\t}\n\n\tfunction vapTimeClicked(hour, min, slot)\n\t{\n\t\tlet eventArgs = {\n\t\t\thour: hour,\n\t\t\tmin:  min,\n\t\t};\n\n\t\t\/\/ inject received parameters within the event to dispatch\n\t\tvar event = jQuery.Event('timeline.beforepicktime');\n\t\tevent.params = eventArgs;\n\t\t\n\t\t\/\/ trigger event before picking a time slot\n\t\tjQuery(slot).trigger(event);\n\n\t\t\/\/ get new rate as string\n\t\tvar newRate = '' + jQuery(slot).find('.vaptlblock1').data('rate');\n\n\t\tif (newRate.length && typeof vapUpdateServiceRate !== 'undefined') {\n\t\t\t\/**\n\t\t\t * Dispatch rate update only if the data is set.\n\t\t\t *\n\t\t\t * @see views\/employeesearch\/tmpl\/default_filterbar.php\n\t\t\t *\/\n\t\t\tvapUpdateServiceRate(parseFloat(newRate));\n\t\t}\n\t\t\n\t\tjQuery('#vapconfempselected').val(1);\n\t\tjQuery('#vapconfserselected').val(17);\n\t\tjQuery('#vapconfdayselected').val(jQuery('#vapdayselected').val());\n\t\tjQuery('#vapconfhourselected').val(hour);\n\t\tjQuery('#vapconfminselected').val(min);\n\t\tjQuery('#vapconfpeopleselected').val(jQuery('#vappeopleselected').val());\n\t\t\n\t\tjQuery('.vaptlblock1').removeClass('vaptimeselected');\n\t\tjQuery(slot).find('.vaptlblock1').addClass('vaptimeselected');\n\t\t\n\t\tvar opt_div = jQuery('.vapseroptionscont');\n\n\t\tif (opt_div.length > 0) {\n\t\t\topt_div.slideDown();\n\t\t}\n\t\t\n\t\tvar rec_div = jQuery('.vaprecurrencediv');\n\n\t\tif (rec_div.length > 0) {\n\t\t\trec_div.slideDown();\n\t\t}\n\t\t\n\t\tisTimeChoosen = true;\n\n\t\t\/\/ inject received parameters within the event to dispatch\n\t\tvar event = jQuery.Event('timeline.afterpicktime');\n\t\tevent.params = eventArgs;\n\t\t\n\t\t\/\/ trigger event after picking a time slot\n\t\tjQuery(slot).trigger(event);\n\t}\n\n<\/script>\n\n\n\t<!-- SERVICE DESCRIPTION -->\n\n\t\n\t<!-- OPTIONS -->\n\n\t\n\t<!-- CHECKOUT -->\n\n\t\n<div class=\"vapbookbuttondiv\">\n\n\t<div class=\"vapbooksuccessdiv\" style=\"display: none;\">\n\t\t<i class=\"fas fa-check-circle\"><\/i>\n\t\t<span id=\"booksuccess-msg\">Servizio aggiunto al Carrello!<\/span>\n\t<\/div>\n\n\t<div class=\"vapbookerrordiv\" style=\"display: none;\">\n\t\t<i class=\"fas fa-times-circle\"><\/i>\n\t\t<span id=\"bookerror-msg\">Prego scegli prima una data ed un orario<\/span>\n\t<\/div>\n\n\t<div class=\"vap-checkout-bar\">\n\n\t\t\n\t\t\t<div class=\"vapbookbuttoninnerdiv additem\">\n\t\t\t\t<button type=\"button\" class=\"vap-btn blue vapadditembutton\" id=\"vapadditembutton\" onClick=\"vapAddItemToCart();\">\n\t\t\t\t\tAggiungi Servizio al Carrello\t\t\t\t<\/button>\n\t\t\t<\/div>\n\n\t\t\n\t\t<div class=\"vapbookbuttoninnerdiv checkout\">\n\t\t\t<button type=\"button\" class=\"vap-btn green vapcheckoutbutton\" onClick=\"vapBookNow();\">\n\t\t\t\tPrenota ora\t\t\t<\/button>\n\t\t<\/div>\n\n\t<\/div>\n\n\t\n<\/div>\n\n\n<script>\n\n\tvar isTimeChoosen      = false;\n\tvar vapCheckoutProceed = 0;\n\n\tjQuery(function($) {\n\t\t$('#vaprepeatbyrecsel, #vapfornextrecsel').select2({\n\t\t\tminimumResultsForSearch: -1,\n\t\t\tallowClear: false,\n\t\t\twidth: 150,\n\t\t});\n\n\t\t$('#vapamountrecsel').select2({\n\t\t\tminimumResultsForSearch: -1,\n\t\t\tallowClear: false,\n\t\t\twidth: 70,\n\t\t});\n\t});\n\n\t\/**\n\t * Used to register the selected options within the DOM\n\t * or to return them as array.\n\t *\/\n\tfunction vapRegisterOptions(what) {\n\t\ttry\n\t\t{\n\t\t\tvar options = vapGetSelectedOptions();\n\t\t}\n\t\tcatch (error)\n\t\t{\n\t\t\tif (error == 'MissingRequiredOptionException')\n\t\t\t{\n\t\t\t\t\/\/ do not proceed as the customer forgot to fill\n\t\t\t\t\/\/ one or more required fields\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t\/\/ Proceed because the service doesn't own any option \n\t\t\t\/\/ and the function vapGetSelectedOptions() hasn't been declared.\n\t\t\t\/\/ Define an empty options array to avoid breaking the flow.\n\t\t\tvar options = [];\n\t\t}\n\n\t\tif (what === 'ajax') {\n\t\t\t\/\/ return options array\n\t\t\treturn options;\n\t\t}\n\n\t\toptions.forEach((opt) => {\n\t\t\tjQuery('#vapempconfirmapp').append(\n\t\t\t\t'<input type=\"hidden\" name=\"opt_id[]\" value=\"' + opt.id + '\" \/>'+\n\t\t\t\t'<input type=\"hidden\" name=\"opt_quantity[]\" value=\"' + opt.quantity + '\" \/>'+\n\t\t\t\t'<input type=\"hidden\" name=\"opt_var[]\" value=\"' + opt.variation + '\" \/>'\n\t\t\t);\n\t\t});\n\n\t\treturn true;\n\t}\n\n\t\/**\n\t * Used to book the selected details by submitting the form.\n\t *\/\n\tfunction vapBookNow() {\n\t\tif (isTimeChoosen) {\n\t\t\t\/\/ register options only in case the time has been selected\n\t\t\tif (vapRegisterOptions('submit') === false) {\n\t\t\t\t\/\/ missing some required options\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t\/\/ register recurrence only in case the time has been selected\n\t\t\tvar recurrence = vapGetSelectedRecurrence();\n\t\t\t\n\t\t\tif (recurrence) {\n\t\t\t\tjQuery('#vapempconfirmapp').append('<input type=\"hidden\" name=\"recurrence\" value=\"' + recurrence + '\" \/>');\n\t\t\t}\n\t\t}\n\n\t\tif (isTimeChoosen || vapCheckoutProceed) {\n\t\t\tdocument.confirmapp.submit();\n\t\t} else {\n\t\t\tvapDisplayWrongMessage(2500, Joomla.JText._('VAPBOOKNOTIMESELECTED'));\n\t\t}\n\t}\n\n\tvar _items_add_count   = 0;\n\tvar _items_timeout     = null;\n\tvar _items_bad_timeout = null;\n\n\t\/**\n\t * Used to book one or more services via AJAX.\n\t *\/\n\tfunction vapAddItemToCart() {\n\t\tif (!isTimeChoosen) {\n\t\t\treturn false;\n\t\t}\n\t\t\t\n\t\tvar id_ser = jQuery(\"#vapconfserselected\").val();\n\t\tvar id_emp = jQuery(\"#vapconfempselected\").val();\n\t\tvar day    = jQuery(\"#vapconfdayselected\").val();\n\t\tvar hour   = jQuery(\"#vapconfhourselected\").val();\n\t\tvar min    = jQuery(\"#vapconfminselected\").val();\n\t\tvar people = jQuery(\"#vapconfpeopleselected\").val();\n\t\t\n\t\t\/\/ get selected options\n\t\tvar options = vapRegisterOptions('ajax');\n\n\t\tif (options === false) {\n\t\t\t\/\/ missing some required options\n\t\t\treturn false;\n\t\t}\n\n\t\t\/\/ It doesn't matter if the checkout select exists\n\t\t\/\/ as the controller won't use this value (because the\n\t\t\/\/ checkout selection is disabled for this service).\n\t\tvar factor = jQuery('#vap-checkout-sel').val();\n\t\t\t\n\t\tvar recurrence = vapGetSelectedRecurrence();\n\t\t\n\t\t\/\/ use default URL\n\t\tvar _url = 'https:\/\/demo.ebapp.it\/wp-admin\/admin-ajax.php?task=cart.additem&action=vikappointments&vik_ajax_client=site';\n\t\t\n\t\tif (recurrence) {\n\t\t\t\/\/ user recurrence URL\n\t\t\t_url = 'https:\/\/demo.ebapp.it\/wp-admin\/admin-ajax.php?task=cart.addrecuritem&action=vikappointments&vik_ajax_client=site';\n\t\t} else {\n\t\t\t\/\/ set default \"no\" recurrence\n\t\t\trecurrence = [-1, -1, -1].join(',');\n\t\t}\n\t\t\n\t\tjQuery('.option-required').removeClass('vapoptred');\n\t\t\n\t\tUIAjax.do(\n\t\t\t_url,\n\t\t\t{\n\t\t\t\tid_ser:          id_ser,\n\t\t\t\tid_emp:          id_emp,\n\t\t\t\tdate:            day,\n\t\t\t\thour:            hour,\n\t\t\t\tmin:             min,\n\t\t\t\tpeople:          people,\n\t\t\t\toptions:         options,\n\t\t\t\trecurrence:      recurrence,\n\t\t\t\tduration_factor: factor,\n\t\t\t},\n\t\t\t(resp) => {\n\t\t\t\t\/\/ check if we have recurring items\n\t\t\t\tif (typeof resp.items !== 'undefined') {\n\t\t\t\t\t\/\/ ok count\n\t\t\t\t\tif (resp.count > 0) {\n\t\t\t\t\t\t\/\/ recurring appointments -> get number of items added\n\t\t\t\t\t\tvapDisplayRightMessage(resp.count);\n\n\t\t\t\t\t\t\/\/ we can proceed with the checkout\n\t\t\t\t\t\tvapCheckoutProceed = 1;\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tvar wrong = [];\n\n\t\t\t\t\t\/\/ fetch all error messages\n\t\t\t\t\tresp.items.forEach((item) => {\n\t\t\t\t\t\tif (item.status == 0) {\n\t\t\t\t\t\t\twrong.push(item.error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\t\n\t\t\t\t\tif (wrong.length) {\n\t\t\t\t\t\t\/\/ at least an error found, display a wrong message too\n\t\t\t\t\t\tvapDisplayWrongMessage(Math.max(wrong.length * 1500, 2500), wrong.join('<br \/>'));\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t\/\/ display message for one service only\n\t\t\t\t\tvapDisplayRightMessage(1);\n\n\t\t\t\t\t\/\/ we can proceed with the checkout\n\t\t\t\t\tvapCheckoutProceed = 1;\n\t\t\t\t}\n\n\t\t\t\t\/\/ inject received response within the event to dispatch\n\t\t\t\tvar event = jQuery.Event('vikappointments.cart.add');\n\t\t\t\tevent.params = resp;\n\n\t\t\t\t\/\/ trigger event\n\t\t\t\tjQuery(window).trigger(event);\n\t\t\t},\n\t\t\t(err) => {\n\t\t\t\tvapDisplayWrongMessage(0, err.responseText || Joomla.JText._('VAPBOOKNOTIMESELECTED'));\n\t\t\t}\n\t\t);\n\t}\n\n\tfunction vapDisplayRightMessage(count) {\n\t\tif (!jQuery('.vapbooksuccessdiv').is(':visible')) {\n\t\t\t_items_add_count = count;\n\t\t} else {\n\t\t\t_items_add_count++;\n\t\t}\n\n\t\tif (!_items_bad_timeout) {\n\t\t\t\/\/ no registered timer for error messages, auto hide them\n\t\t\tjQuery('.vapbookerrordiv').hide();\n\t\t}\n\t\t\n\t\tif (_items_add_count == 1) {\n\t\t\tjQuery('.vapbooksuccessdiv #booksuccess-msg').text(Joomla.JText._('VAPCARTITEMADDOK'));\n\t\t} else {\n\t\t\tjQuery('.vapbooksuccessdiv #booksuccess-msg').text(_items_add_count + ' ' + Joomla.JText._('VAPCARTMULTIITEMSADDOK'));\n\t\t}\n\t\t\n\t\tif (_items_timeout != null) {\n\t\t\tclearTimeout(_items_timeout);\n\t\t}\n\t\t\n\t\tjQuery('.vapbooksuccessdiv').stop(true, true).fadeIn();\n\n\t\t_items_timeout = setTimeout(function() {\n\t\t\tjQuery('.vapbooksuccessdiv').fadeOut();\n\t\t}, 2500);\n\t}\n\n\tfunction vapDisplayWrongMessage(ms, html) {\n\t\tif (_items_bad_timeout != null) {\n\t\t\tclearTimeout(_items_bad_timeout);\n\t\t}\n\n\t\tif (html) {\n\t\t\tjQuery('.vapbookerrordiv #bookerror-msg').html(html);\n\t\t}\n\t\t\n\t\tjQuery('.vapbookerrordiv').stop(true, true).fadeIn();\n\n\t\tif (ms > 0) {\n\t\t\t_items_bad_timeout = setTimeout(function() {\n\t\t\t\tjQuery('.vapbookerrordiv').fadeOut();\n\t\t\t}, ms);\n\t\t}\n\t}\n\n\tfunction vapRecurrenceSelectChanged() {\n\t\tvar val = jQuery('#vaprepeatbyrecsel').val();\n\t\t\n\t\tif (val > 0) { \n\t\t\tif (jQuery('#vapfornextrecsel option[value=\"' + val + '\"]').length > 0) {\n\t\t\t\t\/\/ update select to have the same interval\n\t\t\t\tjQuery('#vapfornextrecsel').select2('val', val);\n\n\t\t\t} else if (jQuery('#vapfornextrecsel').val() == \"0\") {\n\t\t\t\t\/\/ option not found, select the first index available\n\t\t\t\tjQuery('#vapfornextrecsel').prop('selectedIndex', 1);\n\t\t\t\t\/\/ update val on select2\n\t\t\t\tjQuery('#vapfornextrecsel').select2('val', jQuery('#vapfornextrecsel').val());\n\t\t\t}\n\t\t} else {\n\t\t\tjQuery('#vaprecokcheck').prop('checked', false);\n\t\t\tjQuery('.vaprecurrencenextdiv').hide();\n\t\t\tjQuery('.vaprecurrenceprediv').fadeIn();\n\t\t}\n\t}\n\n\tfunction vapRecurrenceConfirmValueChanged() {\n\t\t\/\/ change index\n\t\tjQuery('#vaprepeatbyrecsel').prop('selectedIndex', 1);\n\t\t\/\/ update val on select2\n\t\tjQuery('#vaprepeatbyrecsel').select2('val', jQuery('#vaprepeatbyrecsel').val());\n\t\t\/\/ trigger change to update [fornext] select\n\t\tvapRecurrenceSelectChanged();\n\n\t\tjQuery('.vaprecurrenceprediv').hide();\n\t\tjQuery('.vaprecurrencenextdiv').fadeIn();\n\t}\n\n\tfunction vapGetSelectedRecurrence() {\n\t\tvar enabled = 0;\n\n\t\tif (!enabled) {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar recurrence = [];\n\n\t\trecurrence.push(parseInt(jQuery('#vaprepeatbyrecsel').val()));\n\t\trecurrence.push(parseInt(jQuery('#vapfornextrecsel').val()));\n\t\trecurrence.push(parseInt(jQuery('#vapamountrecsel').val()));\n\n\t\tif (!recurrence[0]) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn recurrence.join(',');\n\t}\n\n<\/script>\n\t\n\t<input type=\"hidden\" name=\"id_employee\" value=\"1\" \/>\n\t<input type=\"hidden\" name=\"date\" value=\"\" id=\"vapdayselected\" \/>\n\t<input type=\"hidden\" name=\"people\" value=\"\" id=\"vappeopleselected\" \/>\n\t\n\t<input type=\"hidden\" name=\"task\" value=\"employeesearch\" \/>\n\t<input type=\"hidden\" name=\"option\" value=\"com_vikappointments\" \/>\n<\/form>\n\n<!-- CONFIRMATION FORM -->\n\n<form name=\"confirmapp\" action=\"https:\/\/demo.ebapp.it\/?page_id=106\" method=\"post\" id=\"vapempconfirmapp\">\n\t\n\t<input type=\"hidden\" name=\"id_service\" value=\"\" id=\"vapconfserselected\" \/>\n\t<input type=\"hidden\" name=\"id_employee\" value=\"\" id=\"vapconfempselected\" \/>\n\t<input type=\"hidden\" name=\"date\" value=\"\" id=\"vapconfdayselected\" \/>\n\t<input type=\"hidden\" name=\"hour\" value=\"\" id=\"vapconfhourselected\" \/>\n\t<input type=\"hidden\" name=\"min\" value=\"\" id=\"vapconfminselected\" \/>\n\t<input type=\"hidden\" name=\"people\" value=\"1\" id=\"vapconfpeopleselected\" \/>\n\t\n\t<input type=\"hidden\" name=\"from\" value=\"2\" \/>\n\t<input type=\"hidden\" name=\"view\" value=\"confirmapp\" \/>\n\t<input type=\"hidden\" name=\"option\" value=\"com_vikappointments\" \/>\n\t\n<\/form>\n\n<!-- REVIEWS -->\n\n\n<!-- WAITING LIST -->\n\n\n<script>\n\n\t\/**\n\t * @usedby \tviews\/employeesearch\/tmpl\/default_calendars.php\n\t * @usedby \tlayouts\/blocks\/checkout.php \t\n\t *\/\n\tvar LAST_TIMESTAMP_USED = null;\n\n<\/script>\n\n<\/div>\n\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"parent":102,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":[],"_links":{"self":[{"href":"https:\/\/demo.ebapp.it\/index.php?rest_route=\/wp\/v2\/pages\/103"}],"collection":[{"href":"https:\/\/demo.ebapp.it\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/demo.ebapp.it\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/demo.ebapp.it\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/demo.ebapp.it\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=103"}],"version-history":[{"count":0,"href":"https:\/\/demo.ebapp.it\/index.php?rest_route=\/wp\/v2\/pages\/103\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/demo.ebapp.it\/index.php?rest_route=\/wp\/v2\/pages\/102"}],"wp:attachment":[{"href":"https:\/\/demo.ebapp.it\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=103"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}