function CMSPluginBigCalendar(id,calendarId,eventData,langCode,defaultView,availableEventTimeframes){let $this=this,request=new Request,tempDayNumber,start,end,calendar;let imageSrc=$(".captcha_image").attr("src");this.create=function(){calendar=new FullCalendar.Calendar(document.querySelector("."+id),{headerToolbar:{left:"prev,today,next",center:"title",right:"multiMonthYear,dayGridMonth,timeGridWeek,timeGridDay"},buttonIcons:false,views:{multiMonthYear:{eventTimeFormat:{hour:"numeric",minute:"2-digit",meridiem:false}},dayGridMonth:{titleFormat:{month:"long",year:"numeric"},eventTimeFormat:{hour:"numeric",minute:"2-digit",meridiem:false},dayMaxEventRows:6},timeGridWeek:{titleFormat:{day:"numeric",month:"long",year:"numeric"},slotMinTime:"06:00:00",slotLabelInterval:"00:30",slotLabelFormat:{hour:"numeric",minute:"numeric",omitZeroMinute:false,meridiem:"short"},eventTimeFormat:{hour:"numeric",minute:"2-digit",meridiem:false}},timeGridDay:{slotMinTime:"06:00:00",slotLabelInterval:"00:30",slotLabelFormat:{hour:"numeric",minute:"numeric",omitZeroMinute:false,meridiem:"short"},eventTimeFormat:{hour:"numeric",minute:"2-digit",meridiem:false}}},height:"auto",locale:langCode,initialView:defaultView,events:eventData,defaultTimedEventDuration:"01:00",eventMinHeight:20,eventDidMount:function(info){info.el.title=info.event.extendedProps.fullDescription},datesSet:function(info){document.querySelectorAll(".bigCalendar table").forEach(item=>{item.classList.add("table-static")});if(["timeGridWeek","timeGridDay"].includes(info.view.type)){availableEventTimeframes.forEach(function(availableEventTimeframe){start=new Date(info.view.activeStart);if(info.view.type==="timeGridWeek"){start.setDate(start.getDate()+availableEventTimeframe.dayNumber)}else{tempDayNumber=(availableEventTimeframe.dayNumber+1)%6;if(start.getDay()!==tempDayNumber){start=""}}end=new Date(start);if(start!==""&&end!==""){start.setHours(availableEventTimeframe.startHour);start.setMinutes(availableEventTimeframe.startMinute);end.setHours(availableEventTimeframe.endHour);end.setMinutes(availableEventTimeframe.endMinute);calendar.addEvent({title:"",start:start,end:end,allDay:false,display:"background",backgroundColor:availableEventTimeframe.colorValue,rendering:"background",classNames:["bigCalendarAvailableEventTimeframe"]})}});setTimeout(()=>{$(".bigCalendarAvailableEventTimeframe").removeAttr("title")},100)}}});calendar.render();$this.bindFormElements();window.dispatchEvent(new Event("bigCalendarLoaded"))};this.bindFormElements=function(){$("#addPublicEventForm").off("submit").off("reset").on("submit",function(event){event.stopPropagation;event.preventDefault;$this.addPublicEvent();return false}).on("reset",function(event){event.stopPropagation;event.preventDefault;let form=$("#addPublicEventForm");form.find('input:not(":hidden")').val("");form.find('textarea:not(":hidden")').val("");form.find('select:not(":hidden")').val("0");form.find("input").removeClass("error");form.find("textarea").removeClass("error");form.find("select").removeClass("error");return false});initTimepickerLang();$.timepicker.setDefaults({stepMinute:30,minuteMax:30,controlType:"select",oneLine:true,timeFormat:"hh:mm",showSecond:null,showMillisec:null,showMicrosec:null,showTimezone:null})};this.addPublicEvent=function(){let data=$("#addPublicEventForm").serialize();data+="&csrf_token="+getCsrfTokenJs();$("#addPublicEventAjaxLoader").show();$("#publicEventFormFields").attr("disabled","disabled");request.postPlugin("calendar","ADD_PUBLIC_EVENT",data,function(data){let form=$("#addPublicEventForm");$("#addPublicEventAjaxLoader").hide();$("#publicEventFormFields").removeAttr("disabled");form.find("input").removeClass("error");form.find("textarea").removeClass("error");$("#addPublicEventContainer").html(data.notice.html);if(data.notice.isSuccess===1){$("#addPublicEventForm input").not(":hidden").val("");$("#addPublicEventForm textarea").not(":hidden").val("");$("#addPublicEventForm select").not(":hidden").val("0");let startDate=data.savedEvent.event_date+"T"+data.savedEvent.event_start+":00",endDate=data.savedEvent.event_date+"T"+data.savedEvent.event_end+":00";if(data.savedEvent.event_recurring==="0"){let eventData={title:data.savedEvent.user_name+" "+data.savedEvent.user_surname,start:startDate,end:endDate,allDay:false,classNames:["bigCalendarEventInactivePublic"],extendedProps:{fullDescription:data.savedEvent.user_name+" "+data.savedEvent.user_surname}};calendar.addEvent(eventData);calendar.gotoDate(startDate)}else{data.savedDates.forEach(function(date){let eventData={title:data.savedEvent.user_name+" "+data.savedEvent.user_surname,start:date+"T"+data.savedEvent.event_start+":00",end:date+"T"+data.savedEvent.event_end+":00",allDay:false,classNames:["bigCalendarEventInactivePublic"],extendedProps:{fullDescription:data.savedEvent.user_name+" "+data.savedEvent.user_surname}};calendar.addEvent(eventData)});calendar.gotoDate(data.savedDates[0]+"T"+data.savedEvent.event_start+":00")}$(".captcha_image").attr("src",imageSrc+"?"+(new Date).getTime())}if(data.validationResult.event_recurring){$("#event_recurring").addClass("error")}if(data.validationResult.event_date){$("#event_date").addClass("error")}if(data.validationResult.event_start){$("#event_start").addClass("error")}if(data.validationResult.event_end){$("#event_end").addClass("error")}if(data.validationResult.user_name){$("#user_name").addClass("error")}if(data.validationResult.user_surname){$("#user_surname").addClass("error")}if(data.validationResult.user_email){$("#user_email").addClass("error")}if(data.validationResult.user_phone){$("#user_phone").addClass("error")}if(data.validationResult.calendar_id){$("#user_comment").addClass("error")}if(data.validationResult.captcha){$("#captcha").addClass("error");$(".captcha_image").attr("src",imageSrc+"?"+(new Date).getTime())}})};this.getCalendar=function(){return calendar}}