(function(){ try {const reservationMenu = {};reservationMenu.style=`data:text/css;base64,OnJvb3R7LS1peC1hY2NlbnQtYmx1ZTojMjY0MzdhOy0taXgtYWNjZW50LXJlZDojOWExZTFlOy0taXgtYWNjZW50LWNvbG9yOnZhcigtLWl4LWFjY2VudC1ibHVlKX0jaXgtaXhyYS1jb25maXJtLWUtc3RhdHVze3dpZHRoOjQwMHB4O2JvcmRlcjpub25lO21hcmdpbi10b3A6MTBweDtib3JkZXI6MnB4IHNvbGlkIHZhcigtLWl4LWFjY2VudC1jb2xvcik7Y29sb3I6dmFyKC0taXgtYWNjZW50LWNvbG9yKSAhaW1wb3J0YW50O2ZvbnQtc2l6ZToxLjE0M2VtO2hlaWdodDoxMjBweDtmbG9hdDpsZWZ0O2JveC1zaXppbmc6Ym9yZGVyLWJveDttYXJnaW4tbGVmdDpjYWxjKDUwJSAtIDIwMHB4KTttYXJnaW4tdG9wOjIwcHh9I2l4LWl4cmEtY29uZmlybS1lLWluZm97d2lkdGg6MTAwJTt0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tdG9wOjM0cHg7Zm9udC1zaXplOjIxcHg7Zm9udC1mYW1pbHk6cm9ib3RvU2xhYjtmb250LXdlaWdodDo1MDA7dGV4dC10cmFuc2Zvcm06dXBwZXJjYXNlfSNpeC1peHJhLWNvbmZpcm0tZS1tc2d7d2lkdGg6MTAwJTt0ZXh0LWFsaWduOmNlbnRlcjttYXJnaW4tdG9wOjEwcHh9I2l4LWl4cmEtY2FuY2VsLXN0YXR1c3t3aWR0aDo0MDBweDtib3JkZXI6bm9uZTttYXJnaW4tdG9wOjEwcHg7Ym9yZGVyOjJweCBzb2xpZCB2YXIoLS1peC1hY2NlbnQtY29sb3IpO2NvbG9yOnZhcigtLWl4LWFjY2VudC1jb2xvcikgIWltcG9ydGFudDtmb250LXNpemU6MS4xNDNlbTtoZWlnaHQ6MTQwcHg7ZmxvYXQ6bGVmdDtib3gtc2l6aW5nOmJvcmRlci1ib3g7bWFyZ2luLWxlZnQ6Y2FsYyg1MCUgLSAyMDBweCk7bWFyZ2luLXRvcDoyMHB4fSNpeC1peHJhLWNhbmNlbC1pbmZve3dpZHRoOjEwMCU7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luLXRvcDoyNXB4O2ZvbnQtc2l6ZToyMXB4O2ZvbnQtZmFtaWx5OnJvYm90b1NsYWI7Zm9udC13ZWlnaHQ6NTAwO3RleHQtdHJhbnNmb3JtOnVwcGVyY2FzZX0jaXgtaXhyYS1jYW5jZWwtbXNne3dpZHRoOjEwMCU7dGV4dC1hbGlnbjpjZW50ZXI7bWFyZ2luLXRvcDoxMHB4fSNpeC1peHJhLWNhbmNlbC1idG57Ym9yZGVyLXJhZGl1czo5OTk5cHg7b3ZlcmZsb3c6aGlkZGVuO2Rpc3BsYXk6aW5saW5lLWJsb2NrO2NvbG9yOnZhcigtLWl4LWFjY2VudC1jb2xvcik7YmFja2dyb3VuZDojZmZmO2JvcmRlcjoxcHggc29saWQgI2U4ZThlODt0ZXh0LXRyYW5zZm9ybTp1cHBlcmNhc2U7Zm9udC1zaXplOi44NTdlbTtwYWRkaW5nOjEwcHggMTVweDt0ZXh0LWRlY29yYXRpb246bm9uZTtwb3NpdGlvbjpyZWxhdGl2ZTstd2Via2l0LXRyYW5zaXRpb246YWxsIC4zcyBlYXNlIDBzO3RyYW5zaXRpb246YWxsIC4zcyBlYXNlIDBzO3dpZHRoOjE3MHB4O21hcmdpbi1sZWZ0OmNhbGMoNTAlIC0gODVweCk7bWFyZ2luLXRvcDoxNXB4O2N1cnNvcjpwb2ludGVyfSNpeC1peHJhLWNhbmNlbC1idG46aG92ZXJ7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kLWNvbG9yOnZhcigtLWl4LWFjY2VudC1jb2xvcik7Ym9yZGVyLWNvbG9yOnZhcigtLWl4LWFjY2VudC1jb2xvcil9QG1lZGlhKG1heC13aWR0aDo2MDBweCl7I2l4LWl4cmEtY29uZmlybS1lLXN0YXR1c3t3aWR0aDoxMDAlO21hcmdpbi1sZWZ0OjB9I2l4LWl4cmEtY2FuY2VsLXN0YXR1c3t3aWR0aDoxMDAlO21hcmdpbi1sZWZ0OjB9fUBtZWRpYShtaW4td2lkdGg6NjQxcHgpeyNpeC1ib29raW5nLWV4dGVybmFsLW1lbnV7d2lkdGg6NjAwcHg7Ym94LXNpemluZzpib3JkZXItYm94fSNpeC1ib29raW5nLWV4dGVybmFsLW1lbnUgLml4LWJvb2tpbmctZXh0ZXJuYWwtbWVudS1idG57Ym9yZGVyOm5vbmU7YmFja2dyb3VuZC1jb2xvcjojZjRmNGY0O3dpZHRoOjEwMCU7ZmxvYXQ6bGVmdDttYXJnaW4tdG9wOjEwcHg7Zm9udC1zaXplOjFlbTtwYWRkaW5nOjA7Ym94LXNpemluZzpib3JkZXItYm94O2N1cnNvcjpwb2ludGVyfSNpeC1ib29raW5nLWV4dGVybmFsLW1lbnUgLml4LWJvb2tpbmctZXh0ZXJuYWwtbWVudS1idG4gLml4LWJvb2tpbmctZXh0ZXJuYWwtbWVudS1idG4taWNvbntwb3NpdGlvbjphYnNvbHV0ZX0jaXgtYm9va2luZy1leHRlcm5hbC1tZW51IC5peC1ib29raW5nLWV4dGVybmFsLW1lbnUtYnRuOmhvdmVye2JhY2tncm91bmQtY29sb3I6IzIzNTI3Y30jaXgtYm9va2luZy1leHRlcm5hbC1tZW51IC5peC1ib29raW5nLWV4dGVybmFsLW1lbnUtYnRuOmhvdmVyIC5peC1ib29raW5nLWV4dGVybmFsLW1lbnUtYnRuLXRleHR7Y29sb3I6I2ZmZjt0ZXh0LXNoYWRvdzowIDFweCAwIHZhcigtLWl4LWFjY2VudC1jb2xvcil9I2l4LWJvb2tpbmctZXh0ZXJuYWwtbWVudSAuaXgtYm9va2luZy1leHRlcm5hbC1tZW51LWJ0biAuaXgtYm9va2luZy1leHRlcm5hbC1tZW51LWJ0bi10ZXh0e2NvbG9yOnZhcigtLWl4LWFjY2VudC1jb2xvcik7Zm9udC1zaXplOjEuMTQzZW07Zm9udC1mYW1pbHk6cm9ib3RvU2xhYjtmb250LXdlaWdodDo1MDA7cGFkZGluZy10b3A6MjBweDtwYWRkaW5nLWJvdHRvbToyMHB4O2NvbG9yOnZhcigtLWl4LWFjY2VudC1jb2xvcik7dGV4dC1zaGFkb3c6MCAxcHggMCAjZmZmO3RyYW5zaXRpb246Y29sb3IgLjNzIGVhc2UgMHM7bGluZS1oZWlnaHQ6MWVtfSNpeC1ib29raW5nLWV4dGVybmFsLW1lbnUgLml4LWJvb2tpbmctZXh0ZXJuYWwtbWVudS1idG4gLml4LWJvb2tpbmctZXh0ZXJuYWwtbWVudS1idG4tb2ZmbGluZXtkaXNwbGF5Om5vbmU7Zm9udC1mYW1pbHk6IlJvYm90byIsc2Fucy1zZXJpZjtmb250LXNpemU6Ljg4ZW19I2l4LWJvb2tpbmctZXh0ZXJuYWwtbWVudSAuaXgtYm9va2luZy1leHRlcm5hbC1tZW51LWJ0bltkaXNhYmxlZD0iIl17YmFja2dyb3VuZC1jb2xvcjpyZ2JhKDI0NCwyNDQsMjQ0LC41KTtjdXJzb3I6bm90LWFsbG93ZWR9I2l4LWJvb2tpbmctZXh0ZXJuYWwtbWVudSAuaXgtYm9va2luZy1leHRlcm5hbC1tZW51LWJ0bltkaXNhYmxlZD0iIl0gLml4LWJvb2tpbmctZXh0ZXJuYWwtbWVudS1idG4tdGV4dHtwYWRkaW5nLWJvdHRvbTo1cHg7b3BhY2l0eTouNTt0ZXh0LXNoYWRvdzpub25lfSNpeC1ib29raW5nLWV4dGVybmFsLW1lbnUgLml4LWJvb2tpbmctZXh0ZXJuYWwtbWVudS1idG5bZGlzYWJsZWQ9IiJdOmhvdmVye2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDQsMjQ0LDI0NCwuNSl9I2l4LWJvb2tpbmctZXh0ZXJuYWwtbWVudSAuaXgtYm9va2luZy1leHRlcm5hbC1tZW51LWJ0bltkaXNhYmxlZD0iIl06aG92ZXIgLml4LWJvb2tpbmctZXh0ZXJuYWwtbWVudS1idG4tdGV4dHtjb2xvcjp2YXIoLS1peC1hY2NlbnQtY29sb3IpO3RleHQtc2hhZG93Om5vbmV9I2l4LWJvb2tpbmctZXh0ZXJuYWwtbWVudSAuaXgtYm9va2luZy1leHRlcm5hbC1tZW51LWJ0bltkaXNhYmxlZD0iIl0gLml4LWJvb2tpbmctZXh0ZXJuYWwtbWVudS1idG4tb2ZmbGluZXtkaXNwbGF5OmJsb2NrO3BhZGRpbmctYm90dG9tOjIwcHg7Y29sb3I6IzU3NTc1NztvcGFjaXR5Oi42fSNpeC1ib29raW5nLWV4dGVybmFsLW1lbnUgI2l4LWJvb2tpbmctZXh0ZXJuYWwtbWVudS1lcnJvcnt3aWR0aDo2MDBweDtiYWNrZ3JvdW5kLWNvbG9yOiNjODY5Njk7Y29sb3I6I2ZmZjtwYWRkaW5nOjEwcHg7cGFkZGluZy1sZWZ0OjIwcHg7Ym94LXNpemluZzpib3JkZXItYm94O29wYWNpdHk6MDstd2Via2l0LXRyYW5zaXRpb246b3BhY2l0eSAuNHMgZWFzZS1pbi1vdXQ7LW1vei10cmFuc2l0aW9uOm9wYWNpdHkgLjRzIGVhc2UtaW4tb3V0Oy1tcy10cmFuc2l0aW9uOm9wYWNpdHkgLjRzIGVhc2UtaW4tb3V0Oy1vLXRyYW5zaXRpb246b3BhY2l0eSAuNHMgZWFzZS1pbi1vdXQ7dHJhbnNpdGlvbjpvcGFjaXR5IC40cyBlYXNlLWluLW91dDtmb250LWZhbWlseTpSdWJpazt2aXNpYmlsaXR5OmhpZGRlbn0jaXgtYm9va2luZy1leHRlcm5hbC1tZW51IC5peC1ib29raW5nLW1lbnUtdmlzaWJsZS1lcnJvcnt2aXNpYmlsaXR5OnZpc2libGUgIWltcG9ydGFudDtvcGFjaXR5OjEgIWltcG9ydGFudH0jaXgtYm9va2luZy1leHRlcm5hbC1tZW51ICNpeC1tZW51LXZpZGVve21hcmdpbjozMHB4IGF1dG87d2lkdGg6NjAwcHg7bWFyZ2luLWxlZnQ6MH0jaXgtYm9va2luZy1leHRlcm5hbC1tZW51IC5peC1tZW51LW9mZmxpbmUtbGluZXtmb250LXNpemU6Ljk4ZW07dG9wOjkwcHg7bGVmdDo1MCU7bWFyZ2luLXRvcDo1cHg7ZGlzcGxheTpub25lfSNpeC1ib29raW5nLWV4dGVybmFsLW1lbnUgI2l4LWV4dC1tZW51LWJ0bi1jb250YWluZXIgLml4LW1lbnUtYnRue3dpZHRoOjEwMCU7YmFja2dyb3VuZDojZWZlZmVmICFpbXBvcnRhbnQ7Ym9yZGVyOm5vbmU7bWFyZ2luLXRvcDoxMHB4O2JvcmRlcjoycHggc29saWQgdmFyKC0taXgtYWNjZW50LWNvbG9yKTtjb2xvcjp2YXIoLS1peC1hY2NlbnQtY29sb3IpICFpbXBvcnRhbnQ7Zm9udC1zaXplOjEuMTQzZW07aGVpZ2h0OjEyMHB4O2Zsb2F0OmxlZnQ7Y3Vyc29yOnBvaW50ZXI7Ym94LXNpemluZzpib3JkZXItYm94fSNpeC1ib29raW5nLWV4dGVybmFsLW1lbnUgI2l4LWV4dC1tZW51LWJ0bi1jb250YWluZXIgLml4LW1lbnUtYnRuW2Rpc2FibGVkXXtjdXJzb3I6bm90LWFsbG93ZWQ7b3BhY2l0eTouNH0jaXgtYm9va2luZy1leHRlcm5hbC1tZW51ICNpeC1leHQtbWVudS1idG4tY29udGFpbmVyIC5peC1tZW51LWJ0bltkaXNhYmxlZF0gLml4LW1lbnUtb2ZmbGluZS1saW5le2Rpc3BsYXk6YmxvY2t9I2l4LWJvb2tpbmctZXh0ZXJuYWwtbWVudSBoM3twYWRkaW5nLXRvcDoyMHB4O2Zsb2F0OmxlZnQ7d2lkdGg6MTAwJX19QG1lZGlhKG1heC13aWR0aDo2NDBweCl7I2l4LWJvb2tpbmctZXh0ZXJuYWwtbWVudXt3aWR0aDoxMDAlO2JveC1zaXppbmc6Ym9yZGVyLWJveH0jaXgtYm9va2luZy1leHRlcm5hbC1tZW51IC5peC1ib29raW5nLWV4dGVybmFsLW1lbnUtYnRue2JvcmRlcjpub25lO2JhY2tncm91bmQtY29sb3I6I2Y0ZjRmNDt3aWR0aDoxMDAlO2Zsb2F0OmxlZnQ7bWFyZ2luLXRvcDoxMHB4O2ZvbnQtc2l6ZToxZW07cGFkZGluZzowO2JveC1zaXppbmc6Ym9yZGVyLWJveDtjdXJzb3I6cG9pbnRlcn0jaXgtYm9va2luZy1leHRlcm5hbC1tZW51IC5peC1ib29raW5nLWV4dGVybmFsLW1lbnUtYnRuIC5peC1ib29raW5nLWV4dGVybmFsLW1lbnUtYnRuLWljb257cG9zaXRpb246YWJzb2x1dGV9I2l4LWJvb2tpbmctZXh0ZXJuYWwtbWVudSAuaXgtYm9va2luZy1leHRlcm5hbC1tZW51LWJ0bjpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOiMyMzUyN2N9I2l4LWJvb2tpbmctZXh0ZXJuYWwtbWVudSAuaXgtYm9va2luZy1leHRlcm5hbC1tZW51LWJ0bjpob3ZlciAuaXgtYm9va2luZy1leHRlcm5hbC1tZW51LWJ0bi10ZXh0e2NvbG9yOiNmZmY7dGV4dC1zaGFkb3c6MCAxcHggMCB2YXIoLS1peC1hY2NlbnQtY29sb3IpfSNpeC1ib29raW5nLWV4dGVybmFsLW1lbnUgLml4LWJvb2tpbmctZXh0ZXJuYWwtbWVudS1idG4gLml4LWJvb2tpbmctZXh0ZXJuYWwtbWVudS1idG4tdGV4dHtjb2xvcjp2YXIoLS1peC1hY2NlbnQtY29sb3IpO2ZvbnQtc2l6ZToxLjE0M2VtO2ZvbnQtZmFtaWx5OnJvYm90b1NsYWI7Zm9udC13ZWlnaHQ6NTAwO3BhZGRpbmctdG9wOjIwcHg7cGFkZGluZy1ib3R0b206MjBweDtjb2xvcjp2YXIoLS1peC1hY2NlbnQtY29sb3IpO3RleHQtc2hhZG93OjAgMXB4IDAgI2ZmZjt0cmFuc2l0aW9uOmNvbG9yIC4zcyBlYXNlIDBzO2xpbmUtaGVpZ2h0OjFlbX0jaXgtYm9va2luZy1leHRlcm5hbC1tZW51IC5peC1ib29raW5nLWV4dGVybmFsLW1lbnUtYnRuIC5peC1ib29raW5nLWV4dGVybmFsLW1lbnUtYnRuLW9mZmxpbmV7ZGlzcGxheTpub25lO2ZvbnQtZmFtaWx5OiJSb2JvdG8iLHNhbnMtc2VyaWY7Zm9udC1zaXplOi44OGVtfSNpeC1ib29raW5nLWV4dGVybmFsLW1lbnUgLml4LWJvb2tpbmctZXh0ZXJuYWwtbWVudS1idG5bZGlzYWJsZWQ9IiJde2JhY2tncm91bmQtY29sb3I6cmdiYSgyNDQsMjQ0LDI0NCwuNSk7Y3Vyc29yOm5vdC1hbGxvd2VkfSNpeC1ib29raW5nLWV4dGVybmFsLW1lbnUgLml4LWJvb2tpbmctZXh0ZXJuYWwtbWVudS1idG5bZGlzYWJsZWQ9IiJdIC5peC1ib29raW5nLWV4dGVybmFsLW1lbnUtYnRuLXRleHR7cGFkZGluZy1ib3R0b206NXB4O29wYWNpdHk6LjU7dGV4dC1zaGFkb3c6bm9uZX0jaXgtYm9va2luZy1leHRlcm5hbC1tZW51IC5peC1ib29raW5nLWV4dGVybmFsLW1lbnUtYnRuW2Rpc2FibGVkPSIiXTpob3ZlcntiYWNrZ3JvdW5kLWNvbG9yOnJnYmEoMjQ0LDI0NCwyNDQsLjUpfSNpeC1ib29raW5nLWV4dGVybmFsLW1lbnUgLml4LWJvb2tpbmctZXh0ZXJuYWwtbWVudS1idG5bZGlzYWJsZWQ9IiJdOmhvdmVyIC5peC1ib29raW5nLWV4dGVybmFsLW1lbnUtYnRuLXRleHR7Y29sb3I6dmFyKC0taXgtYWNjZW50LWNvbG9yKTt0ZXh0LXNoYWRvdzpub25lfSNpeC1ib29raW5nLWV4dGVybmFsLW1lbnUgLml4LWJvb2tpbmctZXh0ZXJuYWwtbWVudS1idG5bZGlzYWJsZWQ9IiJdIC5peC1ib29raW5nLWV4dGVybmFsLW1lbnUtYnRuLW9mZmxpbmV7ZGlzcGxheTpibG9jaztwYWRkaW5nLWJvdHRvbToyMHB4O2NvbG9yOiM1NzU3NTc7b3BhY2l0eTouNn0jaXgtYm9va2luZy1leHRlcm5hbC1tZW51ICNpeC1ib29raW5nLWV4dGVybmFsLW1lbnUtZXJyb3J7d2lkdGg6NjAwcHg7YmFja2dyb3VuZC1jb2xvcjojYzg2OTY5O2NvbG9yOiNmZmY7cGFkZGluZzoxMHB4O3BhZGRpbmctbGVmdDoyMHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtvcGFjaXR5OjA7LXdlYmtpdC10cmFuc2l0aW9uOm9wYWNpdHkgLjRzIGVhc2UtaW4tb3V0Oy1tb3otdHJhbnNpdGlvbjpvcGFjaXR5IC40cyBlYXNlLWluLW91dDstbXMtdHJhbnNpdGlvbjpvcGFjaXR5IC40cyBlYXNlLWluLW91dDstby10cmFuc2l0aW9uOm9wYWNpdHkgLjRzIGVhc2UtaW4tb3V0O3RyYW5zaXRpb246b3BhY2l0eSAuNHMgZWFzZS1pbi1vdXQ7Zm9udC1mYW1pbHk6UnViaWs7dmlzaWJpbGl0eTpoaWRkZW59I2l4LWJvb2tpbmctZXh0ZXJuYWwtbWVudSAuaXgtYm9va2luZy1tZW51LXZpc2libGUtZXJyb3J7dmlzaWJpbGl0eTp2aXNpYmxlICFpbXBvcnRhbnQ7b3BhY2l0eToxICFpbXBvcnRhbnR9I2l4LWJvb2tpbmctZXh0ZXJuYWwtbWVudSAjaXgtbWVudS12aWRlb3ttYXJnaW46MzBweCBhdXRvO3dpZHRoOjYwMHB4O21hcmdpbi1sZWZ0OjB9I2l4LWJvb2tpbmctZXh0ZXJuYWwtbWVudSAuaXgtbWVudS1vZmZsaW5lLWxpbmV7Zm9udC1zaXplOi45OGVtO3RvcDo5MHB4O2xlZnQ6NTAlO21hcmdpbi10b3A6NXB4O2Rpc3BsYXk6bm9uZX0jaXgtYm9va2luZy1leHRlcm5hbC1tZW51ICNpeC1leHQtbWVudS1idG4tY29udGFpbmVyIC5peC1tZW51LWJ0bnt3aWR0aDoxMDAlO2JhY2tncm91bmQ6I2VmZWZlZiAhaW1wb3J0YW50O2JvcmRlcjpub25lO21hcmdpbi10b3A6MTBweDtib3JkZXI6MnB4IHNvbGlkIHZhcigtLWl4LWFjY2VudC1jb2xvcik7Y29sb3I6dmFyKC0taXgtYWNjZW50LWNvbG9yKSAhaW1wb3J0YW50O2ZvbnQtc2l6ZToxLjE0M2VtO2hlaWdodDoxMjBweDtmbG9hdDpsZWZ0O2N1cnNvcjpwb2ludGVyO2JveC1zaXppbmc6Ym9yZGVyLWJveH0jaXgtYm9va2luZy1leHRlcm5hbC1tZW51ICNpeC1leHQtbWVudS1idG4tY29udGFpbmVyIC5peC1tZW51LWJ0bjpudGgtY2hpbGQoMm4pe21hcmdpbi1sZWZ0OjB9I2l4LWJvb2tpbmctZXh0ZXJuYWwtbWVudSAjaXgtZXh0LW1lbnUtYnRuLWNvbnRhaW5lciAuaXgtbWVudS1idG5bZGlzYWJsZWRde2N1cnNvcjpub3QtYWxsb3dlZDtvcGFjaXR5Oi40fSNpeC1ib29raW5nLWV4dGVybmFsLW1lbnUgI2l4LWV4dC1tZW51LWJ0bi1jb250YWluZXIgLml4LW1lbnUtYnRuW2Rpc2FibGVkXSAuaXgtbWVudS1vZmZsaW5lLWxpbmV7ZGlzcGxheTpibG9ja30jaXgtYm9va2luZy1leHRlcm5hbC1tZW51IGgze3BhZGRpbmctdG9wOjIwcHg7ZmxvYXQ6bGVmdDt3aWR0aDoxMDAlfX1Aa2V5ZnJhbWVzIHNwaW57MCAlIHt0cmFuc2Zvcm06cm90YXRlKDBkZWcpfTEwMCAlIHt0cmFuc2Zvcm06cm90YXRlKDM2MGRlZyl9QG1lZGlhKG1heC13aWR0aDo2MDBweCl7Lml4LXJtZW1jdC1zdWItdGl0bGV7d2lkdGg6MTAwJTtmb250LXdlaWdodDo1MDA7ZGlzcGxheTpibG9jaztjb2xvcjp2YXIoLS1peC1hY2NlbnQtY29sb3IpO2ZvbnQtZmFtaWx5OnJvYm90b1NsYWI7Zm9udC1zaXplOjEuMTQzZW07Ym94LXNpemluZzpib3JkZXItYm94O21hcmdpbi10b3A6MjBweDttYXJnaW4tYm90dG9tOjEwcHh9I2l4LXJtZW1jdC1vbGQtZGF0ZXt3aWR0aDoxMDAlO2JvcmRlcjoxcHggc29saWQgdmFyKC0taXgtYWNjZW50LWNvbG9yKTtmb250LWZhbWlseTpSb2JvdG87cGFkZGluZzo4cHggMjBweCA4cHggMjBweDstd2Via2l0LXRyYW5zaXRpb246YmFja2dyb3VuZCAuM3MgZWFzZSAwcyxib3JkZXIgLjNzIGVhc2UgMHM7dHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4zcyBlYXNlIDBzLGJvcmRlciAuM3MgZWFzZSAwcztib3gtc2l6aW5nOmJvcmRlci1ib3g7YmFja2dyb3VuZDojZmZmO2NvbG9yOnZhcigtLWl4LWFjY2VudC1jb2xvcik7bWFyZ2luLXRvcDoyMHB4O2JveC1zaXppbmc6Ym9yZGVyLWJveH0jaXgtcm1lbWN0LW5ldy1kYXRle3dpZHRoOjEwMCU7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1peC1hY2NlbnQtY29sb3IpO2ZvbnQtZmFtaWx5OlJvYm90bztwYWRkaW5nOjhweCAyMHB4IDhweCAyMHB4Oy13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4zcyBlYXNlIDBzLGJvcmRlciAuM3MgZWFzZSAwczt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjNzIGVhc2UgMHMsYm9yZGVyIC4zcyBlYXNlIDBzO2JveC1zaXppbmc6Ym9yZGVyLWJveDtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6dmFyKC0taXgtYWNjZW50LWNvbG9yKTtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZmxvYXQ6bGVmdH0jaXgtcm1lbWN0LWJ0bi1uZXctZGF0ZXtiYWNrZ3JvdW5kOnZhcigtLWl4LWFjY2VudC1jb2xvcik7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1peC1hY2NlbnQtY29sb3IpO2ZvbnQtZmFtaWx5OlJvYm90bztwYWRkaW5nOjhweCAyMHB4IDhweCAyMHB4O2NvbG9yOiNmZmY7LXdlYmtpdC10cmFuc2l0aW9uOmJhY2tncm91bmQgLjNzIGVhc2UgMHMsYm9yZGVyIC4zcyBlYXNlIDBzO3RyYW5zaXRpb246YmFja2dyb3VuZCAuM3MgZWFzZSAwcyxib3JkZXIgLjNzIGVhc2UgMHM7Y3Vyc29yOnBvaW50ZXI7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOjE2MHB4O3RleHQtYWxpZ246Y2VudGVyO21hcmdpbi10b3A6MjBweDtmbG9hdDpsZWZ0fSNpeC1ybWVtY3QtYnRuLWJhY2t7ZGlzcGxheTpmbGV4O2hlaWdodDozNnB4O3dpZHRoOjM2cHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1peC1hY2NlbnQtY29sb3IpO2NvbG9yOiNmZmY7YmFja2dyb3VuZDp2YXIoLS1peC1hY2NlbnQtY29sb3IpO2JvcmRlci1yYWRpdXM6MDt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6MTZweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y3Vyc29yOnBvaW50ZXI7dGV4dC1hbGlnbjpjZW50ZXI7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24tY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2Zsb2F0OmxlZnR9I2l4LXJtZW1jdC1idG4tbmV4dHtkaXNwbGF5OmZsZXg7aGVpZ2h0OjM2cHg7d2lkdGg6MzZweDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWl4LWFjY2VudC1jb2xvcik7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOnZhcigtLWl4LWFjY2VudC1jb2xvcik7Ym9yZGVyLXJhZGl1czowO3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZToxNnB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtjdXJzb3I6cG9pbnRlcjt0ZXh0LWFsaWduOmNlbnRlcjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7ZmxvYXQ6bGVmdH0uY2FsZW5kYXItYnRuLWRpc2FibGVke2N1cnNvcjpub3QtYWxsb3dlZCAhaW1wb3J0YW50O29wYWNpdHk6LjR9I2l4LXJtZW1jdC1jYWxlbmRhci1ib3h7d2lkdGg6MTAwJTtmbG9hdDpsZWZ0fSNpeC1ybWVtY3QtY2FsZW5kYXItcHJlLWxvYWRlci1pbWd7aGVpZ2h0OjM2cHg7bWFyZ2luLXRvcDoxMHB4O21hcmdpbi1ib3R0b206MjBweDthbmltYXRpb24tbmFtZTpzcGluO2FuaW1hdGlvbi1kdXJhdGlvbjozMDAwbXM7YW5pbWF0aW9uLWl0ZXJhdGlvbi1jb3VudDppbmZpbml0ZTthbmltYXRpb24tdGltaW5nLWZ1bmN0aW9uOmxpbmVhcn0jaXgtcm1lbWN0LXByZS1sb2FkZXJ7d2lkdGg6Y2FsYygxMDAlIC0gNzRweCk7dGV4dC1hbGlnbjpjZW50ZXI7ZmxvYXQ6bGVmdH0jaXgtcm1lbWN0LWNvbHVtbnN7ZmxvYXQ6bGVmdDttYXJnaW4tYm90dG9tOjIwcHg7d2lkdGg6Y2FsYygxMDAlIC0gNzRweCl9Lml4LXJtZW1jdC1jb2x1bW57d2lkdGg6MzMlO2Zsb2F0OmxlZnQ7dGV4dC1hbGlnbjpjZW50ZXJ9I3ZpZXctbmV3LWRhdGV7d2lkdGg6MTAwJX0uaXgtcm1lbWN0LWRheS1ib3h7d2lkdGg6MTAwJTtmb250LXdlaWdodDo1MDA7ZGlzcGxheTpibG9jaztjb2xvcjp2YXIoLS1peC1hY2NlbnQtY29sb3IpO2ZvbnQtZmFtaWx5OnJvYm90b1NsYWI7Zm9udC1zaXplOjEuMTQzZW07Ym94LXNpemluZzpib3JkZXItYm94fS5peC1ybWVtY3QtZGF0ZS1ib3h7Y29sb3I6IzU3NTc1NzttYXJnaW4tYm90dG9tOjEwcHh9Lml4LXJtZW1jdC1zbG90c3tkaXNwbGF5OmZsZXg7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2FsaWduLWl0ZW1zOmNlbnRlcn0uaXgtcm1lbWN0LXNsb3R7d2lkdGg6Y2FsYygxMDAlIC0gMjBweCk7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1peC1hY2NlbnQtY29sb3IpO2ZvbnQtZmFtaWx5OlJvYm90bztwYWRkaW5nOjhweCAyMHB4IDhweCAyMHB4Oy13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4zcyBlYXNlIDBzLGJvcmRlciAuM3MgZWFzZSAwczt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjNzIGVhc2UgMHMsYm9yZGVyIC4zcyBlYXNlIDBzO2N1cnNvcjpwb2ludGVyO2JveC1zaXppbmc6Ym9yZGVyLWJveDtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6dmFyKC0taXgtYWNjZW50LWNvbG9yKTttYXJnaW4tdG9wOjEwcHg7Ym94LXNpemluZzpib3JkZXItYm94O2ZvbnQtc2l6ZToxLjFlbX0uZGF0ZXRpbWUtYm94LWFjdGl2ZXtjb2xvcjojZmZmO2JhY2tncm91bmQ6dmFyKC0taXgtYWNjZW50LWNvbG9yKX0jaXgtcm1lbWN0LW1haW57d2lkdGg6MTAwJTttYXJnaW4tbGVmdDowfS5peC1peHJhLXFye2hlaWdodDozMjBweDttYXJnaW4tbGVmdDpjYWxjKDUwJSAtIDE2MHB4KTttYXJnaW4tdG9wOjQwcHh9fUBtZWRpYShtaW4td2lkdGg6NjAxcHgpey5peC1ybWVtY3Qtc3ViLXRpdGxle3dpZHRoOjEwMCU7Zm9udC13ZWlnaHQ6NTAwO2Rpc3BsYXk6YmxvY2s7Y29sb3I6dmFyKC0taXgtYWNjZW50LWNvbG9yKTtmb250LWZhbWlseTpyb2JvdG9TbGFiO2ZvbnQtc2l6ZToxLjE0M2VtO2JveC1zaXppbmc6Ym9yZGVyLWJveDttYXJnaW4tdG9wOjIwcHg7bWFyZ2luLWJvdHRvbToxMHB4fSNpeC1ybWVtY3Qtb2xkLWRhdGV7d2lkdGg6NjAwcHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1peC1hY2NlbnQtY29sb3IpO2ZvbnQtZmFtaWx5OlJvYm90bztwYWRkaW5nOjhweCAyMHB4IDhweCAyMHB4Oy13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4zcyBlYXNlIDBzLGJvcmRlciAuM3MgZWFzZSAwczt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjNzIGVhc2UgMHMsYm9yZGVyIC4zcyBlYXNlIDBzO2JveC1zaXppbmc6Ym9yZGVyLWJveDtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6dmFyKC0taXgtYWNjZW50LWNvbG9yKTttYXJnaW4tdG9wOjIwcHg7Ym94LXNpemluZzpib3JkZXItYm94fSNpeC1ybWVtY3QtbmV3LWRhdGV7d2lkdGg6NjAwcHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1peC1hY2NlbnQtY29sb3IpO2ZvbnQtZmFtaWx5OlJvYm90bztwYWRkaW5nOjhweCAyMHB4IDhweCAyMHB4Oy13ZWJraXQtdHJhbnNpdGlvbjpiYWNrZ3JvdW5kIC4zcyBlYXNlIDBzLGJvcmRlciAuM3MgZWFzZSAwczt0cmFuc2l0aW9uOmJhY2tncm91bmQgLjNzIGVhc2UgMHMsYm9yZGVyIC4zcyBlYXNlIDBzO2JveC1zaXppbmc6Ym9yZGVyLWJveDtiYWNrZ3JvdW5kOiNmZmY7Y29sb3I6dmFyKC0taXgtYWNjZW50LWNvbG9yKTtib3gtc2l6aW5nOmJvcmRlci1ib3g7ZmxvYXQ6bGVmdH0jaXgtcm1lbWN0LWJ0bi1uZXctZGF0ZXtiYWNrZ3JvdW5kOnZhcigtLWl4LWFjY2VudC1jb2xvcik7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1peC1hY2NlbnQtY29sb3IpO2ZvbnQtZmFtaWx5OlJvYm90bztwYWRkaW5nOjhweCAyMHB4IDhweCAyMHB4O2NvbG9yOiNmZmY7LXdlYmtpdC10cmFuc2l0aW9uOmJhY2tncm91bmQgLjNzIGVhc2UgMHMsYm9yZGVyIC4zcyBlYXNlIDBzO3RyYW5zaXRpb246YmFja2dyb3VuZCAuM3MgZWFzZSAwcyxib3JkZXIgLjNzIGVhc2UgMHM7Y3Vyc29yOnBvaW50ZXI7Ym94LXNpemluZzpib3JkZXItYm94O3dpZHRoOjE2MHB4O3RleHQtYWxpZ246Y2VudGVyO21hcmdpbi10b3A6MjBweDtmbG9hdDpsZWZ0fSNpeC1ybWVtY3QtYnRuLWJhY2t7ZGlzcGxheTpmbGV4O2hlaWdodDozNnB4O3dpZHRoOjM2cHg7Ym9yZGVyOjFweCBzb2xpZCB2YXIoLS1peC1hY2NlbnQtY29sb3IpO2NvbG9yOiNmZmY7YmFja2dyb3VuZDp2YXIoLS1peC1hY2NlbnQtY29sb3IpO2JvcmRlci1yYWRpdXM6MDt0ZXh0LWFsaWduOmNlbnRlcjtmb250LXNpemU6MTZweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Y3Vyc29yOnBvaW50ZXI7dGV4dC1hbGlnbjpjZW50ZXI7ZmxleC1kaXJlY3Rpb246Y29sdW1uO2p1c3RpZnktY29udGVudDpjZW50ZXI7YWxpZ24tY29udGVudDpjZW50ZXI7YWxpZ24taXRlbXM6Y2VudGVyO2Zsb2F0OmxlZnR9I2l4LXJtZW1jdC1idG4tbmV4dHtkaXNwbGF5OmZsZXg7aGVpZ2h0OjM2cHg7d2lkdGg6MzZweDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWl4LWFjY2VudC1jb2xvcik7Y29sb3I6I2ZmZjtiYWNrZ3JvdW5kOnZhcigtLWl4LWFjY2VudC1jb2xvcik7Ym9yZGVyLXJhZGl1czowO3RleHQtYWxpZ246Y2VudGVyO2ZvbnQtc2l6ZToxNnB4O2JveC1zaXppbmc6Ym9yZGVyLWJveDtjdXJzb3I6cG9pbnRlcjt0ZXh0LWFsaWduOmNlbnRlcjtmbGV4LWRpcmVjdGlvbjpjb2x1bW47anVzdGlmeS1jb250ZW50OmNlbnRlcjthbGlnbi1jb250ZW50OmNlbnRlcjthbGlnbi1pdGVtczpjZW50ZXI7ZmxvYXQ6bGVmdH0uY2FsZW5kYXItYnRuLWRpc2FibGVke2N1cnNvcjpub3QtYWxsb3dlZCAhaW1wb3J0YW50O29wYWNpdHk6LjR9I2l4LXJtZW1jdC1jYWxlbmRhci1ib3h7d2lkdGg6NjAwcHg7ZmxvYXQ6bGVmdH0jaXgtcm1lbWN0LXByZS1sb2FkZXJ7d2lkdGg6Y2FsYygxMDAlIC0gNzRweCk7ZmxvYXQ6bGVmdDt0ZXh0LWFsaWduOmNlbnRlcn0jaXgtcm1lbWN0LWNhbGVuZGFyLXByZS1sb2FkZXItaW1ne2hlaWdodDozNnB4O21hcmdpbi10b3A6MTBweDttYXJnaW4tYm90dG9tOjIwcHg7YW5pbWF0aW9uLW5hbWU6c3BpbjthbmltYXRpb24tZHVyYXRpb246MzAwMG1zO2FuaW1hdGlvbi1pdGVyYXRpb24tY291bnQ6aW5maW5pdGU7YW5pbWF0aW9uLXRpbWluZy1mdW5jdGlvbjpsaW5lYXJ9I2l4LXJtZW1jdC1jb2x1bW5ze2Zsb2F0OmxlZnQ7bWFyZ2luLWJvdHRvbToyMHB4O3dpZHRoOmNhbGMoMTAwJSAtIDc0cHgpfS5peC1ybWVtY3QtY29sdW1ue3dpZHRoOjMzJTtmbG9hdDpsZWZ0O3RleHQtYWxpZ246Y2VudGVyfSN2aWV3LW5ldy1kYXRle3dpZHRoOjYwMHB4fS5peC1ybWVtY3QtZGF5LWJveHt3aWR0aDoxMDAlO2ZvbnQtd2VpZ2h0OjUwMDtkaXNwbGF5OmJsb2NrO2NvbG9yOnZhcigtLWl4LWFjY2VudC1jb2xvcik7Zm9udC1mYW1pbHk6cm9ib3RvU2xhYjtmb250LXNpemU6MS4xNDNlbTtib3gtc2l6aW5nOmJvcmRlci1ib3h9Lml4LXJtZW1jdC1kYXRlLWJveHtjb2xvcjojNTc1NzU3O21hcmdpbi1ib3R0b206MTBweH0uaXgtcm1lbWN0LXNsb3Rze2Rpc3BsYXk6ZmxleDtmbGV4LWRpcmVjdGlvbjpjb2x1bW47YWxpZ24taXRlbXM6Y2VudGVyfS5peC1ybWVtY3Qtc2xvdHt3aWR0aDoxNDBweDtib3JkZXI6MXB4IHNvbGlkIHZhcigtLWl4LWFjY2VudC1jb2xvcik7Zm9udC1mYW1pbHk6Um9ib3RvO3BhZGRpbmc6OHB4IDIwcHggOHB4IDIwcHg7LXdlYmtpdC10cmFuc2l0aW9uOmJhY2tncm91bmQgLjNzIGVhc2UgMHMsYm9yZGVyIC4zcyBlYXNlIDBzO3RyYW5zaXRpb246YmFja2dyb3VuZCAuM3MgZWFzZSAwcyxib3JkZXIgLjNzIGVhc2UgMHM7Y3Vyc29yOnBvaW50ZXI7Ym94LXNpemluZzpib3JkZXItYm94O2JhY2tncm91bmQ6I2ZmZjtjb2xvcjp2YXIoLS1peC1hY2NlbnQtY29sb3IpO21hcmdpbi10b3A6MTBweDtib3gtc2l6aW5nOmJvcmRlci1ib3g7Zm9udC1zaXplOjEuMWVtfS5kYXRldGltZS1ib3gtYWN0aXZle2NvbG9yOiNmZmY7YmFja2dyb3VuZDp2YXIoLS1peC1hY2NlbnQtY29sb3IpfSNpeC1ybWVtY3QtbWFpbnt3aWR0aDo2MDBweDttYXJnaW4tbGVmdDpjYWxjKDUwJSAtIDMwMHB4KX0uaXgtaXhyYS1xcntoZWlnaHQ6MzIwcHg7bWFyZ2luLWxlZnQ6Y2FsYyg1MCUgLSAxNjBweCk7bWFyZ2luLXRvcDo0MHB4fX0=`;reservationMenu.settings=JSON.parse(`{"videoUrl":"https://www.youtube.com/embed/2BMAz8AshUk","buttons":[{"line1":"WIZYTA W CZYTELNI AKT","line2":" ","form":0,"active":false,"offlineMessage":"Formularz chwilowo nie czynny"}]}`);
const ThisStaticFieldIsResultOfNotHavingEnoughTimeToDoneBetterJobOnRenderThisInterfaceSorryForEnyoneWhoWantOrWhatIsWarsedMustEditThisCode = `
Szybka instrukcja umawiania wizyty w sądzie
1.
Naciśnij przycisk wyboru miejsca rezerwacji wizyty.
2.
Wpisz swoje dane osobowe w wolnych polach.
2.1.
Jeżeli wybrałeś opcję Czytelnia Akt, będziesz musiał wypełnić dodatkowe pola dotyczące interesujących Cię dokumentów.
3.
Wybierz odpowiadający Ci termin wizyty w wyświetlonym kalendarzu.
UWAGA: Kalendarz pokazuje tylko dostępne terminy.
Dodatkowe informacje
Potwierdzenie wizyty przez interesanta
Po zakończeniu rezerwacji na podany przez Ciebie adres email zostanie wysłana wiadomość automatyczna.Potwierdź swoje dane, poprzez wybranie przycisku
“Potwierdź email”.
Masz na to 60 minut, jeżeli tego nie zrobisz rezerwacja zostanie anulowana.
Potwierdzenie wizyty przez pracownika
Twoja rezerwacja zostaje przekazana do potwierdzenia przez pracownika sądu.
Jeżeli wybrany przez Ciebie termin zostanie ostatecznie zaakceptowany, na Twój adres email zostanie wysłana wiadomość potwierdzająca wraz ze specjalnym kodem QR.
Realizacja wizyty
Przyjdź w umówionym terminie do siedziby sądu, potwierdź swoją obecność, skanując kod QR lub wpisując numer rezerwacji - zrób to na urządzeniu - biletomacie.
By dowiedzieć się więcej o szczegółach rezerwacji, możesz obejrzeć ten film instruktażowy:
`;
const videoTags = [
``
];
class ClientCalendar {
constructor(passedGuid) {
this.prepareHtml()
; (async () => {
const DaysOfWeek = Object.freeze({
0: 'Niedziela',
1: 'Poniedziałek',
2: 'Wtorek',
3: 'Środa',
4: 'Czwartek',
5: 'Piątek',
6: 'Sobota',
Sunday: 0,
Monday: 1,
Tuesday: 2,
Wednesday: 3,
Thursday: 4,
Friday: 5,
Saturday: 6
})
const RoomType = Object.freeze({
0: 'IncorrectType',
1: 'PaperSignature',
2: 'ElectronicSignature',
IncorrectType: 0,
PaperSignature: 1,
ElectronicSignature: 2
})
class TimeManager {
static toDate(date) {
// date ma format 2023-06-27T00:00:00
const [datePart, timePart] = date.split('T')
const [year, month, day] = datePart.split('-')
return new Date(year, parseInt(month) - 1, day)
//return new Date(parseInt(apiDate.replace('/Date(', '').split('+')[0]))
}
static toTimeString(timespan) {
const [hours, minutes, seconds] = timespan.split(':');
return `${hours}:${minutes}`
/*
const normalize = apiTime.replace('PT', '').split('H')
let hours = parseInt(normalize[0])
let minutes = parseInt(normalize[1]) || 0
if (hours < 10)
hours = `0${hours}`
if (minutes < 10)
minutes = `0${minutes}`
return `${hours}:${minutes}`*/
}
static nextDays(date, days) {
return new Date(date.getFullYear(), date.getMonth(), date.getDate() + days)
}
static shortDateString(date) {
let day = date.getDate()
let month = date.getMonth()
day = (day < 10) ? `0${day}` : day
month = monthsOfYear[month]
return `${day} ${month}`
}
static toApiDate(date) {
//return `/Date(${date.getTime()}+200)/`
let year = date.getFullYear()
let months = parseInt(date.getMonth()) + 1
let day = date.getDate()
if (parseInt(months) < 10)
months = `0${parseInt(months)}`
if (parseInt(day) < 10)
day = `0${parseInt(day)}`
return `${year}-${months}-${day}T00:00:00`
}
}
class DateRangeHistory {
static get maxIndex() { return 5 }
constructor() {
this.history = []
this.index = -1
}
get triple() {
return this.history[this.index]
}
set triple(triple) {
this.history[this.index] = triple
}
init(triple) {
this.history = [triple]
this.index = 0
}
next() {
this.index++
}
previous() {
this.index--
}
isCurrentFirst() {
return this.index === 0
}
isCurrentLast() {
return this.index == DateRangeHistory.maxIndex
}
}
const
baseUrl = `${ixMenu.homeURL}/`,
url = `${ixMenu.homeURL}/ChangeReservationTerm`,
infoUrl = `${ixMenu.homeURL}/GetReservationBasicInfo`,
pureGuid = passedGuid,
guid = `guid=${pureGuid}`,
calendarHistory = new DateRangeHistory(),
monthsOfYear = ['Stycznia', 'Lutego', 'Marca', 'Kwietnia', 'Maja', 'Czerwca', 'Lipca', 'Sierpnia', 'Września', 'Października', 'Listopada', 'Grudnia'],
daysOfWeek = ['Niedziela', 'Poniedziałek', 'Wtorek', 'Środa', 'Czwartek', 'Piątek', 'Sobota']
, $ix = 'ix-booking',
// dom create helper objects
$div = 'div', $input = 'input', $label = 'label', $form = 'form', $span = 'span',
$select = 'select', $option = 'option', $button = 'button', $img = 'img',
// dom request helper object
$id = 'id', $cls = 'class', $query = 'query'
;
let
// main dom container
container,
/** form id */
formId,
// dom object for form styles
style,
// added signatures
selectedSignatures = [],
// incremented id for selected signatures
signaturesIID = 0,
// max items u can add to signature table
maxSignaturesCount,
// references
subformCtx,
// TODO: add comennt to this variable
apiUrl,
// current slot set loaded for calendar
slotSet,
//
currentWeek,
//
selectedRoomType = 1,
// uzywany do historii przewijania jako punkt startowy
firstWeek,
// ilość przewininięć kalendarza
calendarPage = 0,
// selected slot
currentSlot,
//
calendarPreloadDelay = 620,
basicInfo
;
const hide = (...nodes) => nodes.forEach(node => node.style.display = 'none')
const show = (...nodes) => nodes.forEach(node => node.style.display = 'block')
const spawn = namespace => dom => options => {
let { id, cls, txt, val, on, src } = options || {}
const element = document.createElement(dom)
element.id = id ? (namespace ? `${namespace}-${id}` : id) : ''
cls = cls ? (namespace ? `${namespace}-${cls}` : cls) : ''
if (cls)
element.classList.add(cls)
element.innerText = txt || ''
if ((val != undefined) && (val != null))
element.value = val
if ((on != undefined) && (on != null))
element.disabled = !on
if (src)
element.src = src
return element
}
const get = namespace => method => query => {
switch (method) {
case 'id':
return document.getElementById(namespace ? `${namespace}-${query}` : query)
break
case 'class':
return Array.from(document.getElementsByClassName(namespace ? `${namespace}-${query}` : query))
break
case 'query':
return Array.from(document.querySelectorAll(query))
break
}
}
const getBasicInfo = async () => {
console.log('getBasicInfo', infoUrl + '?' + guid)
const res = await fetch(infoUrl + '?' + guid, {
headers: { 'Content-Type': 'application/json' }
})
return res.json()
}
const showMessage = msg => {
document.getElementById('details').innerText = msg
document.getElementById('details').style.display = 'block'
document.getElementById('result-box').classList.remove('box-error')
document.getElementById('result-box').classList.add('box-message')
document.getElementById('result-box').innerText = 'Sukces'
}
const showError = err => {
document.getElementById('details').innerText = err
document.getElementById('details').style.display = 'block'
document.getElementById('result-box').classList.add('box-error')
document.getElementById('result-box').classList.remove('box-message')
document.getElementById('result-box').innerText = 'Niepowodzenie'
}
const getFirstSlot = async (selectedRoomType, divisionId) => {
let req = { RoomType: (selectedRoomType == RoomType.PaperSignature) ? null : selectedRoomType, DivisionId: divisionId }
const res = await fetch(`${baseUrl}GetFirstFreeTimeWindow`, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(req)
})
return res.json()
}
const getSlots = async (start, end, roomType, devisionId) => {
let req = {
//DateFrom: `/Date(${start.getTime()}+200)/`,
DateFrom: TimeManager.toApiDate(start),
//DateTo: `/Date(${end.getTime()}+0200)/`,
DateTo: TimeManager.toApiDate(end),
RoomType: roomType === RoomType.PaperSignature ? null : roomType,
DivisionId: devisionId
}
const res = await fetch(`${baseUrl}GetAvailableTimeWindows`, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(req)
})
return res.json()
}
const onFirstFreeSlot = (res, ok, nope) => {
const date1 = TimeManager.toDate(res.dateValue)
let date2 = TimeManager.nextDays(date1, 1)
let date3
if (date2.getDay() === DaysOfWeek.Sunday) {
date2 = TimeManager.nextDays(date1, 2)
return ok([date1, date2, TimeManager.nextDays(date2, 1)])
} else if (date2.getDay() === DaysOfWeek.Saturday) {
getSlots(date2, date2).then(data => {
if (data.length == 0) {
date2 = new Date(date2.getFullYear(), date2.getMonth(), date2.getDate() + 2)
return ok([date1, date2, new Date(date2.getFullYear(), date2.getMonth(), date2.getDate() + 1)])
} else {
date3 = new Date(date2.getFullYear(), date2.getMonth(), date2.getDate() + 2)
return ok([date1, date2, date3])
}
}).catch(error => {
nope(error)
})
}
date3 = new Date(date2.getFullYear(), date2.getMonth(), date2.getDate() + 1)
if (date3.getDay() == 0) {
// niedziela
return ok([date1, date2, new Date(date3.getFullYear(), date3.getMonth(), date3.getDate() + 1)])
} else if (date3.getDay() == 6) {
// sobota
getSlots(date3, date3).then(data => {
if (data.length == 0) {
// pusta sobota
return ok([date1, date2, new Date(date3.getFullYear(), date3.getMonth(), date3.getDate() + 2)])
} else {
// "pełna sobota"
return ok([date1, date2, date3])
}
}).catch(error => {
nope(error)
})
}
return ok([date1, date2, date3])
}
const assignSlotSet = set => {
set.forEach(e => {
e.DateValue = TimeManager.toDate(e.dateValue)
e.EndTime = TimeManager.toTimeString(e.endTime)
e.StartTime = TimeManager.toTimeString(e.startTime)
})
slotSet = set
}
const existAsPaperSlot = reqSlot => slotSet.find(slot => {
if (slot.RoomType === RoomType.ElectronicSignature)
return false
if (slot.DateValue.getTime() != reqSlot.DateValue.getTime())
return false
if (slot.StartTime != reqSlot.StartTime)
return false
if (slot.EndTime != reqSlot.EndTime)
return false
return true
})
const setSelectedSlot = slot => {
get()($id)('ix-rmemct-btn-new-date').classList.remove('calendar-btn-disabled')
const nodeSelectedLabel = get()($id)('ix-rmemct-new-date')
currentSlot = slot
const date = slot.DateValue
nodeSelectedLabel.innerText = `Wybrano: ${DaysOfWeek[date.getDay()]}, ${date.getDate()} ${monthsOfYear[date.getMonth()]} ${date.getFullYear()}, ${slot.StartTime} - ${slot.EndTime}`
}
const getSelectedSlot = () => currentSlot
const renderCalendar = (selectedRoomType) => {
let properSlotSet = []
if (selectedRoomType == RoomType.PaperSignature) {
slotSet.forEach(slot => {
switch (slot.roomType) {
case RoomType.ElectronicSignature:
if (!existAsPaperSlot(slot)) {
properSlotSet.push(slot)
}
break
case RoomType.PaperSignature:
properSlotSet.push(slot)
break
}
})
} else {
properSlotSet = slotSet
}
let today = new Date()
today = new Date(today.getFullYear(), today.getMonth(), today.getDate())
//console.log(properSlotSet)
//window.s = properSlotSet
let [hours, minutes] = (new Date()).toLocaleTimeString('pl-PL').split(':')
let time = `${hours}:${minutes}`
properSlotSet = properSlotSet.filter(slot => (slot.DateValue.getTime() != today.getTime()) || (time < slot.StartTime))
let longColumnExist = false
const triple = calendarHistory.triple
const nodeColumnsBox = get()($id)('ix-rmemct-columns')
const columns = [nodeColumnsBox.children[0], nodeColumnsBox.children[1], nodeColumnsBox.children[2]]
for (let i = 0; i < 3; i++) {
columns[i].children[0].innerText = DaysOfWeek[triple[i].getDay()]
columns[i].children[1].innerText = TimeManager.shortDateString(triple[i])
const slotsForDay = []
properSlotSet.forEach(slot => {
if (slot.DateValue.getTime() == triple[i].getTime())
slotsForDay.push(slot)
})
columns[i].children[2].innerHTML = ''
for (const slot of properSlotSet) {
if (slot.DateValue.getTime() == triple[i].getTime()) {
const currentSlot = slot
const nodeSlot = spawn()($div)({ cls: 'ix-rmemct-slot', txt: `${slot.StartTime} - ${slot.EndTime}` })
columns[i].children[2].append(nodeSlot)
nodeSlot.addEventListener('click', event => {
if (event.target.disabled)
return
get()($cls)('datetime-box-active').forEach(node => node.classList.remove('datetime-box-active'))
event.target.classList.add('datetime-box-active')
setSelectedSlot(currentSlot)
get()($id)('ix-rmemct-btn-new-date').scrollIntoView({ behavior: "smooth" });
})
// zanacznie
const selectedSlot = getSelectedSlot()
if (
selectedSlot &&
(selectedSlot.DateValue.getTime() === currentSlot.DateValue.getTime()) &&
(selectedSlot.WindowNumber === currentSlot.WindowNumber)
) {
nodeSlot.classList.add('datetime-box-active')
}
}
}
}
const nodeBtnBack = get()($id)('ix-rmemct-btn-back')
const nodeBtnNext = get()($id)('ix-rmemct-btn-next')
if (calendarHistory.isCurrentFirst()) {
nodeBtnBack.disabled = true
nodeBtnBack.classList.add('calendar-btn-disabled')
nodeBtnNext.disabled = false
nodeBtnNext.classList.remove('calendar-btn-disabled')
} else if (calendarHistory.isCurrentLast()) {
nodeBtnBack.disabled = false
nodeBtnBack.classList.remove('calendar-btn-disabled')
nodeBtnNext.disabled = true
nodeBtnNext.classList.add('calendar-btn-disabled')
} else {
nodeBtnBack.disabled = false
nodeBtnBack.classList.remove('calendar-btn-disabled')
nodeBtnNext.disabled = false
nodeBtnNext.classList.remove('calendar-btn-disabled')
}
setTimeout(() => {
hide(get()($id)('ix-rmemct-pre-loader'))
show(get()($id)('ix-rmemct-columns'))
}, calendarPreloadDelay)
}
const iHaveNewTripple = (triple, callback) => {
return callback(triple)
}
const onNewFreeSlot = (current, ok, nope) => {
let date1 = new Date(current[2].getFullYear(), current[2].getMonth(), current[2].getDate() + 1)
if (date1.getDay == 0) {
date1 = new Date(current[2].getFullYear(), current[2].getMonth(), current[2].getDate() + 2)
return iHaveNewTripple([
date1,
new Date(date1.getFullYear(), date1.getMonth(), date1.getDate() + 1),
new Date(date1.getFullYear(), date1.getMonth(), date1.getDate() + 2)
], ok)
} else if (date1.getDay() == 6) {
getSlots(date1, date1, basicInfo.FirstChoice, basicInfo.DivisionId).then(data => {
if (data.length == 0) {
// pusta sobota
date1 = new Date(date1.getFullYear(), date1.getMonth(), date1.getDate() + 2)
return iHaveNewTripple([
date1,
new Date(date1.getFullYear(), date1.getMonth(), date1.getDate() + 1),
new Date(date1.getFullYear(), date1.getMonth(), date1.getDate() + 2)
], ok)
} else {
// "pełna" sobota
return iHaveNewTripple([
date1,
new Date(date1.getFullYear(), date1.getMonth(), date1.getDate() + 2),
new Date(date1.getFullYear(), date1.getMonth(), date1.getDate() + 3)
], ok)
}
}).catch(error => {
return nope(error)
})
}
let date2 = new Date(date1.getFullYear(), date1.getMonth(), date1.getDate() + 1)
let date3
if (date2.getDay() == 0) {
// niedziela naley siłowo dodać jeden dzień
date2 = new Date(date1.getFullYear(), date1.getMonth(), date1.getDate() + 2)
return iHaveNewTripple([date1, date2, new Date(date2.getFullYear(), date2.getMonth(), date2.getDate() + 1)], ok)
} else if (date2.getDay() == 6) {
// sobota
getSlots(date2, date2, basicInfo.FirstChoice, basicInfo.DivisionId).then(data => {
if (data.length == 0) {
// pusta sobota
date2 = new Date(date2.getFullYear(), date2.getMonth(), date2.getDate() + 2)
return iHaveNewTripple([date1, date2, new Date(date2.getFullYear(), date2.getMonth(), date2.getDate() + 1)], ok)
} else {
// "pełna" sobota
date3 = new Date(date2.getFullYear(), date2.getMonth(), date2.getDate() + 2)
return iHaveNewTripple([date1, date2, date3], ok)
}
}).catch(error => {
return nope(error)
})
}
date3 = new Date(date2.getFullYear(), date2.getMonth(), date2.getDate() + 1)
if (date3.getDay() == 0) {
// niedziela
return iHaveNewTripple([date1, date2, new Date(date3.getFullYear(), date3.getMonth(), date3.getDate() + 1)], ok)
} else if (date3.getDay() == 6) {
// sobota
getSlots(date3, date3, basicInfo.FirstChoice, basicInfo.DivisionId).then(data => {
if (data.length == 0) {
// pusta sobota
return iHaveNewTripple([date1, date2, new Date(date3.getFullYear(), date3.getMonth(), date3.getDate() + 2)], ok)
} else {
// "pełna sobota"
return iHaveNewTripple([date1, date2, date3])
}
}).catch(error => {
return nope(error)
})
}
return iHaveNewTripple([date1, date2, date3], ok)
}
const nodeBtnBack = get()($id)('ix-rmemct-btn-back')
const nodeBtnNext = get()($id)('ix-rmemct-btn-next')
const nodeColumnsBox = get()($id)('ix-rmemct-columns')
const nodePageLoader = get()($id)('ix-rmemct-pre-loader')
nodeBtnBack.addEventListener('click', event => {
if (event.target.disabled)
return
nodeBtnBack.disabled = true
nodeBtnNext.disabled = true
nodeBtnBack.classList.add('calendar-btn-disabled')
nodeBtnNext.classList.add('calendar-btn-disabled')
hide(nodeColumnsBox)
show(nodePageLoader)
calendarHistory.previous()
getSlots(calendarHistory.triple[0], calendarHistory.triple[2], basicInfo.firstChoice, basicInfo.divisionId).then(slots => {
assignSlotSet(slots)
renderCalendar(basicInfo.firstChoice)
})
})
nodeBtnNext.addEventListener('click', event => {
if (event.target.disabled)
return
nodeBtnBack.disabled = true
nodeBtnNext.disabled = true
nodeBtnBack.classList.add('calendar-btn-disabled')
nodeBtnNext.classList.add('calendar-btn-disabled')
hide(nodeColumnsBox)
show(nodePageLoader)
const oldTriple = calendarHistory.triple
calendarHistory.next()
const load = () => {
getSlots(calendarHistory.triple[0], calendarHistory.triple[2], basicInfo.firstChoice, basicInfo.divisionId).then(slots => {
assignSlotSet(slots)
renderCalendar(basicInfo.firstChoice)
})
}
if (calendarHistory.triple == undefined) {
onNewFreeSlot(oldTriple, triple => {
calendarHistory.triple = triple
load()
})
} else {
load()
}
})
const nodeBtnAction = get()($id)('ix-rmemct-btn-new-date')
const action = async (date, window) => {
const req = {
OperationGuid: pureGuid,
NewTerm: TimeManager.toApiDate(date),
TimeWindow: window
};
const res = await fetch(url, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify(req)
});
return res.json();
}
nodeBtnAction.addEventListener('click', event => {
action(getSelectedSlot().DateValue, getSelectedSlot().windowNumber).then(res => {
const { success: Success, message: Message } = res
hide(get()($id)('view-new-date'))
ixMenu.showConfirmEmailResponse(Success, Message)
}).catch(error => {
console.error(error)
hide(get()($id)('view-new-date'))
ixMenu.showConfirmEmailResponse(false, 'Błąd systemu. Spróbuj ponownie później')
})
})
const preLoader = get()($id)('ix-rmemct-pre-loader')
//show(preLoader)
const displayBasicInfo = () => {
const infoDiv = get()($id)('ix-rmemct-old-date')
const date = TimeManager.toDate(basicInfo.startDate)
let str = `${daysOfWeek[date.getDay()]}, ${date.getDate()} ${monthsOfYear[date.getMonth()]} ${date.getFullYear()} - ${TimeManager.toTimeString(basicInfo.startTime)}`
infoDiv.innerText = str
//console.log('Koniec wyświetlania basicInfo')
}
//
//console.log("Start: getBasicInfo")
getBasicInfo().then(res => {
basicInfo = res
displayBasicInfo()
//console.log("Run: getFirstSlot(", res.FirstChoice, res.DivisionId, ")")
getFirstSlot(res.firstChoice, res.divisionId).then(firstSlot => {
onFirstFreeSlot(firstSlot, triple => {
getSlots(triple[0], triple[2], res.firstChoice, res.divisionId).then(slots => {
assignSlotSet(slots)
calendarHistory.init(triple)
//hide(preLoader)
renderCalendar(res.firstChoice)
show(get()($id)('view-new-date'))
}).catch(error => {
console.error(error)
showError('Nie udało się znaleść wolnych terminów. Spróbuj ponownie później')
})
}, error => { console.error(error); showError('Nie udało się znaleść wolnych terminów. Spróbuj ponownie później') })
}).catch(error => { console.error(error); showError('Nie udało się znaleść wolnych terminów. Spróbuj ponownie później') })
}).catch(error => { console.error(error); showError('Coś poszło nie tak. Spróbuj ponownie później') })
})()
}
prepareHtml() {
ixMenu.DOM._container.innerHTML = `
Obecny termin rezerwacji
Wybierz nowy termin
Nie wybrano terminu
Zmień termin
`
}
}
class IRRouter {
static get actions() {
return Object.freeze({
default: 'm',
menu: 'm',
form: '0',
confirmEmail: '1',
cancelReservation: '2',
qr: '3',
acceptTerm: '4',
changeTerm: '5'
})
}
static get route() {
const { searchParams } = new URL(location.href)
let [ action, ...content ] = searchParams.get('ixra') || this.actions.default
content = content.join('')
return { action, content }
}
}
let ixMenu
class MenuButton {
constructor(settings) {
this.settings = settings
}
render(_container, _parent, homeURL) {
const { settings } = this
const _span = document.createElement('span')
const _line1 = ixMenu.constructor.domFromString(`${settings.line1}`)
const _line2 = ixMenu.constructor.domFromString(`${settings.line2}`)
const _line3 = ixMenu.constructor.domFromString(``)
_span.append(_line1, document.createElement('br'), _line2, document.createElement('br'), _line3)
const _btn = document.createElement('button')
_btn.classList.add('ix-menu-btn')
_btn.type = 'button'
_btn.disabled = !settings.active
_btn.append(_span)
_btn.onclick = ev => {
if (_btn.disabled)
return
_line1.innerText = "Łączenie..."
ixMenu.loadFormScript(settings.form, _engine => {
if (window.ixBookingLauncher) {
ixMenu.DOM._menu.style.display = 'none'
ixBookingLauncher(_parent, homeURL, settings.form)
} else {
if (_engine.remove instanceof Function)
_engine.remove()
_line1.innerText = settings.line1
ixMenu.DOM._errorMsg.innerText = 'Nie udało się połączyć z formularzem'
ixMenu.constructor.showPeriod(ixMenu.DOM._errorMsg, 3000)
}
}, _engine => {
if (_engine.remove instanceof Function)
_engine.remove()
_line1.innerText = settings.line1
ixMenu.DOM._errorMsg.innerText = 'Nie udało się połączyć z formularzem'
ixMenu.constructor.showPeriod(ixMenu.DOM._errorMsg, 3000)
})
}
//_container.append(_li)
_container.append(_btn)
}
}
class Menu {
static insertAfter (target, node) { target.parentNode.insertBefore(node,target.nextSibling) }
static insertBefore (target, node) { target.parentNode.insertBefore(node,target) }
static showPeriod (_node, time) {
_node.classList.add('ix-booking-menu-visible-error')
setTimeout(() => {
setTimeout(() => _node.classList.remove('ix-booking-menu-visible-error'), time)
}, 10)
}
static initStyle (_container, href) {
const _style = document.createElement('link')
_style.rel = 'stylesheet'
_style.href = href
this.insertBefore(_container, _style)
}
static run(_container, homeURL) {
const { actions, route: { action, content } } = IRRouter
ixMenu = new Menu(_container, reservationMenu.style, reservationMenu.settings, homeURL)
switch (action) {
case actions.form:
ixMenu.loadFormScript(content, _engine => ixBookingLauncher(_container, homeURL, content), () => { })
break
case actions.confirmEmail:
ixMenu.loadConfirm(content)
break
case actions.qr:
ixMenu.loadQr(content)
break
case actions.cancelReservation:
ixMenu.loadCancel(content)
break
case actions.acceptTerm:
ixMenu.loadAcceptTerm(content)
break
case actions.changeTerm:
ixMenu.loadChangeTerm(content)
break
default:
ixMenu.render()
}
}
constructor(_container, style, settings, homeURL) {
this.constructor.initStyle(_container, style)
this.DOM = { _container }
this.settings = settings
this.homeURL = homeURL
}
loadFormScript(id, callbackReady, callbackError) {
const { homeURL } = this
const { _container } = this.DOM
const scriptUrl = `${homeURL}/GetRestFormScript?formId=${id}&courtUnitId=${this.settings.courtUnit}&nocache=${parseInt(Math.random() * 1000000)}`
const _engine = document.createElement('script')
_engine.src = scriptUrl
_engine.onload = () => callbackReady(_engine)
_engine.onabort = _engine.oncancel = _engine.onerror = () => callbackError(_engine)
this.constructor.insertAfter(_container, _engine)
}
static domFromString(htmlString) {
const div = document.createElement('div')
div.innerHTML = htmlString.trim()
return div.firstChild
}
async confirmEmail(token) {
const { homeURL } = this
const res = await fetch(`${homeURL}/ConfirmReservationEmail?guid=${token}`, {
headers: { 'Content-Type': 'application/json' }
})
return await res.json()
}
showConfirmEmailResponse(Success, Message) {
const { _container } = this.DOM
const _status = document.createElement('div')
_status.id = 'ix-ixra-confirm-e-status'
_status.classList.add(Success ? 'ix-ixra-e-status-success' : 'ix-ixra-e-status-error')
const _info = document.createElement('div')
_info.id = 'ix-ixra-confirm-e-info'
_info.innerText = Success ? 'Sukces' : 'Niepowodzenie'
const _msg = document.createElement('div')
_msg.id = 'ix-ixra-confirm-e-msg'
_msg.innerText = Message
_status.append(_info, _msg)
_container.append(_status)
}
async loadConfirmEmail(token) {
let Success, Message
try {
({ success: Success, message: Message } = await this.confirmEmail(token))
} catch (ex) {
log.e('loadConfirmEmail')(ex)
Success = false
Message = 'Nie dało się wykonać akcji'
}
this.showConfirmEmailResponse(Success, Message)
}
async loadQr(num) {
const { homeURL } = this
const { _container } = this.DOM
const _qr = document.createElement('img')
_qr.classList.add('ix-ixra-qr')
_qr.src = `${homeURL}/GetQrCode?reservationNumber=${num}`
_container.append(_qr)
}
async cancelReservation(token) {
const { homeURL } = this
const res = await fetch(`${homeURL}/CancelReservation?guid=${token}`, {
headers: { 'Content-Type': 'application/json' }
})
return await res.json()
}
async loadConfirm(token) {
let confirmed;
const { _container } = this.DOM
const bStyles = window.getComputedStyle(document.body);
const popup = document.createElement('div');
popup.id = 'ix-ixra-confirm-popup-bg';
popup.style.background = bStyles.backgroundColor;
popup.style.height = '100vh';
popup.style.width = '100vw';
popup.style.position = 'fixed';
popup.style.top = '0';
popup.style.left = '0';
popup.style.bottom = '0';
popup.style.right = '0';
popup.style.zIndex = '100000000000';
popup.style.display = 'flex';
popup.style.flexDirection = 'row';
popup.style.justifyContent = 'center';
popup.style.alignItems = 'center';
const body = document.createElement('div');
body.id = 'ix-ixra-confirm-popup-body';
body.style.position = 'relative';
body.style.width = '400px';
const preLoader = document.createElement('img');
preLoader.style.marginLeft = '50%';
preLoader.style.transform = 'translateX(-50%)';
preLoader.src = 'data:image/gif;base64,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';
body.appendChild(preLoader);
popup.append(body);
_container.appendChild(popup);
const start = new Date();
try {
confirmed = await new Promise(async (r, rej) => {
// 20s
let resolved = false;
setTimeout(() => resolved || rej(), 20000);
try {
const res = await fetch(`${this.homeURL}/IsEmailConfirmed?guid=${token}`);
const data = await res.json();
if (data.status) {
resolved = true;
return r(data.status);
}
resolved = true;
return rej();
} catch (ex) {
resolved = true;
return rej();
}
});
} catch (ex) {}
const end = new Date();
if ((end.getTime() - start.getTime()) <= 1000)
await new Promise(r => setTimeout(r, (1000) - (end.getTime() - start.getTime())));
preLoader.remove();
const title = document.createElement('div');
title.id = 'ix-ixra-confirm-popup-title';
title.style.color = 'var(--ix-accent-color)';
title.style.fontFamily = 'robotoSlab';
title.style.width = '100%';
title.style.textAlign = 'center';
title.style.fontSize = '24px';
title.style.fontWeight = 'bold';
title.style.marginBottom = '20px';
body.appendChild(title);
if (confirmed === 0) {
title.innerText = 'Nie znaleziono rezerwacji o podanym identyfikatorze';
return;
}
if (confirmed === 1) {
title.innerText = 'Upłynął czas na potwierdzenie adresu e-mail';
return;
}
if (confirmed) {
const title = document.createElement('div');
title.id = 'ix-ixra-confirm-popup-title';
title.innerText = 'Adres e-mail został już potwierdzony';
title.style.color = 'var(--ix-accent-color)';
title.style.fontFamily = 'robotoSlab';
title.style.width = '100%';
title.style.textAlign = 'center';
title.style.fontSize = '24px';
title.style.fontWeight = 'bold';
title.style.marginBottom = '20px';
body.appendChild(title);
return;
}
title.innerText = 'Weryfikacja adresu e-mail';
const desc = document.createElement('div');
desc.id = 'ix-ixra-confirm-popup-desc';
desc.innerHTML = 'W celu potwierdzenia adresu email
kliknij w przycisk poniżej';
desc.style.fontFamily = 'roboto';
desc.style.fontSize = '16px';
desc.style.width = '100%';
desc.style.textAlign = 'center';
desc.style.marginBottom = '20px';
const btn = document.createElement('div');
btn.id = 'ix-ixra-confirm-popup-btn';
btn.innerText = 'Potwierdzam';
btn.style.fontFamily = 'roboto';
btn.style.fontSize = '16px';
btn.style.fontWeight = 'bold';
btn.style.color = 'white';
btn.style.backgroundColor = 'var(--ix-accent-color)';
btn.style.width = '178px';
btn.style.height = '47px';
btn.style.display = 'flex';
btn.style.flexDirection = 'row';
btn.style.justifyContent = 'center';
btn.style.alignItems = 'center';
btn.style.marginLeft = 'calc(50% - 89px)';
btn.style.cursor = 'pointer';
const msg = document.createElement('div');
msg.id = 'ix-ixra-confirm-popup-msg';
msg.style.textAlign = 'center';
msg.style.width = '100%';
msg.style.marginTop = '20px';
msg.style.fontFamily = 'roboto';
msg.style.fontSize = '16px';
msg.style.color = 'var(--ix-accent-color)';
msg.style.fontFamily = 'robotoSlab';
msg.style.fontSize = '24px';
msg.style.fontWeight = 'bold';
msg.style.lineHeight = '32px';
body.appendChild(title);
body.appendChild(desc);
body.appendChild(btn);
body.appendChild(msg);
btn.onclick = async () => {
let ok, msgText;
try {
({ success: ok, message: msgText } = await this.confirmEmail(token))
} catch (ex) {
log.e('loadConfirmEmail')(ex)
ok = false
msgText = 'Wykonanie akcji nie powiodło się
Proszę spróbować jeszcze raz';
}
desc.remove();
title.remove();
btn.remove();
msg.innerHTML = msgText;
}
}
async loadCancel(token) {
const { _container } = this.DOM
const bStyles = window.getComputedStyle(document.body);
const popup = document.createElement('div');
popup.id = 'ix-ixra-confirm-popup-bg';
popup.style.background = bStyles.backgroundColor;
popup.style.height = '100vh';
popup.style.width = '100vw';
popup.style.position = 'fixed';
popup.style.top = '0';
popup.style.left = '0';
popup.style.bottom = '0';
popup.style.right = '0';
popup.style.zIndex = '100000000000';
popup.style.display = 'flex';
popup.style.flexDirection = 'row';
popup.style.justifyContent = 'center';
popup.style.alignItems = 'center';
const body = document.createElement('div');
body.id = 'ix-ixra-confirm-popup-body';
body.style.position = 'relative';
body.style.width = '400px';
const title = document.createElement('div');
title.id = 'ix-ixra-confirm-popup-title';
title.style.color = 'var(--ix-accent-color)';
title.style.fontFamily = 'robotoSlab';
title.style.width = '100%';
title.style.textAlign = 'center';
title.style.fontSize = '24px';
title.style.fontWeight = 'bold';
title.style.marginBottom = '20px';
title.innerText = 'Anulowanie rezerwacji';
body.appendChild(title);
const desc = document.createElement('div');
desc.id = 'ix-ixra-confirm-popup-desc';
desc.innerHTML = 'W celu anulownia rezerwacji
kliknij w przycisk poniżej';
desc.style.fontFamily = 'roboto';
desc.style.fontSize = '16px';
desc.style.width = '100%';
desc.style.textAlign = 'center';
desc.style.marginBottom = '20px';
const btn = document.createElement('div');
btn.id = 'ix-ixra-confirm-popup-btn';
btn.innerText = 'Anuluję';
btn.style.fontFamily = 'roboto';
btn.style.fontSize = '16px';
btn.style.fontWeight = 'bold';
btn.style.color = 'white';
btn.style.backgroundColor = 'var(--ix-accent-color)';
btn.style.width = '178px';
btn.style.height = '47px';
btn.style.display = 'flex';
btn.style.flexDirection = 'row';
btn.style.justifyContent = 'center';
btn.style.alignItems = 'center';
btn.style.marginLeft = 'calc(50% - 89px)';
btn.style.cursor = 'pointer';
const msg = document.createElement('div');
msg.id = 'ix-ixra-confirm-popup-msg';
msg.style.textAlign = 'center';
msg.style.width = '100%';
msg.style.marginTop = '20px';
msg.style.fontFamily = 'roboto';
msg.style.fontSize = '16px';
msg.style.color = 'var(--ix-accent-color)';
msg.style.fontFamily = 'robotoSlab';
msg.style.fontSize = '24px';
msg.style.fontWeight = 'bold';
msg.style.lineHeight = '32px';
body.appendChild(title);
body.appendChild(desc);
body.appendChild(btn);
body.appendChild(msg);
popup.append(body);
_container.append(popup);
btn.onclick = async () => {
let Success, Message;
let msgText = '';
try {
({ success: Success, message: Message } = await this.cancelReservation(token));
msgText = 'Rezerwacja została anulowana';
} catch (ex) {
log.e('loadConfirmEmail')(ex)
msgText = 'Nie dało się wykonać akcji'
}
desc.remove();
title.remove();
btn.remove();
msg.innerHTML = msgText;
}
}
async acceptTerm(token) {
const { homeURL } = this
const res = await fetch(`${homeURL}/ConfirmReservationTerm?guid=${token}`, {
headers: { 'Content-Type': 'application/json' }
})
return await res.json()
}
async loadAcceptTerm(token) {
const { _container } = this.DOM
const bStyles = window.getComputedStyle(document.body);
const popup = document.createElement('div');
popup.id = 'ix-ixra-confirm-popup-bg';
popup.style.background = bStyles.backgroundColor;
popup.style.height = '100vh';
popup.style.width = '100vw';
popup.style.position = 'fixed';
popup.style.top = '0';
popup.style.left = '0';
popup.style.bottom = '0';
popup.style.right = '0';
popup.style.zIndex = '100000000000';
popup.style.display = 'flex';
popup.style.flexDirection = 'row';
popup.style.justifyContent = 'center';
popup.style.alignItems = 'center';
const body = document.createElement('div');
body.id = 'ix-ixra-confirm-popup-body';
body.style.position = 'relative';
body.style.width = '400px';
const title = document.createElement('div');
title.id = 'ix-ixra-confirm-popup-title';
title.style.color = 'var(--ix-accent-color)';
title.style.fontFamily = 'robotoSlab';
title.style.width = '100%';
title.style.textAlign = 'center';
title.style.fontSize = '24px';
title.style.fontWeight = 'bold';
title.style.marginBottom = '20px';
title.innerText = 'Potwierdzenie terminu';
body.appendChild(title);
const desc = document.createElement('div');
desc.id = 'ix-ixra-confirm-popup-desc';
desc.innerHTML = 'W celu potwierdzenia terminu
kliknij w przycisk poniżej';
desc.style.fontFamily = 'roboto';
desc.style.fontSize = '16px';
desc.style.width = '100%';
desc.style.textAlign = 'center';
desc.style.marginBottom = '20px';
const btn = document.createElement('div');
btn.id = 'ix-ixra-confirm-popup-btn';
btn.innerText = 'Potwierdzam';
btn.style.fontFamily = 'roboto';
btn.style.fontSize = '16px';
btn.style.fontWeight = 'bold';
btn.style.color = 'white';
btn.style.backgroundColor = 'var(--ix-accent-color)';
btn.style.width = '178px';
btn.style.height = '47px';
btn.style.display = 'flex';
btn.style.flexDirection = 'row';
btn.style.justifyContent = 'center';
btn.style.alignItems = 'center';
btn.style.marginLeft = 'calc(50% - 89px)';
btn.style.cursor = 'pointer';
const msg = document.createElement('div');
msg.id = 'ix-ixra-confirm-popup-msg';
msg.style.textAlign = 'center';
msg.style.width = '100%';
msg.style.marginTop = '20px';
msg.style.fontFamily = 'roboto';
msg.style.fontSize = '16px';
msg.style.color = 'var(--ix-accent-color)';
msg.style.fontFamily = 'robotoSlab';
msg.style.fontSize = '24px';
msg.style.fontWeight = 'bold';
msg.style.lineHeight = '32px';
body.appendChild(title);
body.appendChild(desc);
body.appendChild(btn);
body.appendChild(msg);
popup.append(body);
_container.append(popup);
btn.onclick = async () => {
let Success, Message, msgText;
try {
({ success: Success, message: Message } = await this.acceptTerm(token));
msgText = 'Termin został potwierdzony';
} catch (ex) {
log.e('loadConfirmEmail')(ex)
msgText = 'Nie dało się wykonać akcji';
}
desc.remove();
title.remove();
btn.remove();
msg.innerHTML = msgText;
}
}
async loadChangeTerm(content) {
setTimeout(() => new ClientCalendar(content), 100)
}
render() {
const { settings, homeURL } = this
const { _container } = this.DOM
const _menu = document.createElement('div')
_menu.id = 'ix-booking-external-menu'
_menu.classList.add('main-text')
const _errorMsg = document.createElement('div')
_errorMsg.id = 'ix-booking-external-menu-error'
_menu.append(_errorMsg)
this.constructor.insertBefore(_container, _menu)
const _buttonsContainerSupport = document.createElement('div')
_buttonsContainerSupport.id = 'ix-ext-menu-support'
const _buttonsContainer = document.createElement('div')
_buttonsContainer.id = 'ix-ext-menu-btn-container'
_buttonsContainerSupport.append(_buttonsContainer)
settings.buttons.forEach(btn => {
const button = new MenuButton(btn)
button.render(_buttonsContainer, _container, homeURL)
})
_menu.append(_buttonsContainerSupport)
_menu.insertAdjacentHTML('beforeend', ThisStaticFieldIsResultOfNotHavingEnoughTimeToDoneBetterJobOnRenderThisInterfaceSorryForEnyoneWhoWantOrWhatIsWarsedMustEditThisCode)
const [partOne, partTwo] = videoTags
if (settings?.videoUrl) {
_menu.insertAdjacentHTML('beforeend', `${partOne}${settings?.videoUrl}${partTwo}`)
} else {
document.getElementById('ix-video-label').style.display = 'none'
}
this.DOM.constructor.assign(this.DOM, { _menu, _errorMsg })
}
}
window.ixMenuLauncher = (...args) => Menu.run(...args);
} catch(e){ console.error(e); }})()