AnonSec Shell
Server IP : 85.193.89.191  /  Your IP : 52.15.219.15
Web Server : Apache
System : Linux 956367-cx40159.tmweb.ru 3.10.0-1160.105.1.el7.x86_64 #1 SMP Thu Dec 7 15:39:45 UTC 2023 x86_64
User : bitrix ( 600)
PHP Version : 8.1.27
Disable Function : NONE
MySQL : OFF  |  cURL : OFF  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /home/bitrix/www/bitrix/js/calendar/userfield/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME ]     

Current File : /home/bitrix/www/bitrix/js/calendar/userfield/resourcebooking.min.js
(function(){"use strict";BX.namespace("BX.Calendar.UserField");if(typeof BX.Calendar.UserField.ResourceBooking!=="undefined"||!BX.Main.UF||!BX.Main.UF.BaseType){return}var e=864e5,t,s,i=BX.date.convertBitrixFormat(BX.message("FORMAT_DATE")),a=BX.date.convertBitrixFormat(BX.message("FORMAT_DATETIME"));if(a.substr(0,i.length)===i)t=BX.util.trim(a.substr(i.length));else t=BX.date.convertBitrixFormat(BX.isAmPmMode()?"H:MI:SS T":"HH:MI:SS");s=t.replace(":s","");BX.Calendar.UserField.ResourceBooking=function(e){this.params=e;this.DOM={outerWrap:BX(e.controlId),valueInputs:[]};this.isNew=!this.params.value||!this.params.value.DATE_FROM;if(this.params.socnetDestination){BX.Calendar.UserField.ResourceBooking.prototype.socnetDestination=this.params.socnetDestination}};BX.extend(BX.Calendar.UserField.ResourceBooking,BX.Main.UF.BaseType);BX.Calendar.UserField.ResourceBooking.prototype.showEditLayout=function(){this.allValuesValue=null;this.DOM.dateTimeWrap=this.DOM.outerWrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-detail-wrap calendar-resourcebook-content-block-detail-wrap-flex"}}));var e,t,a=this.params.fullDay?1440:60,r;if(this.isNew){var o=BX.Calendar.UserField.ResourceBooking.getParamsFromHash(this.params.userfieldId);if(o&&o.length>1){e=BX.parseDate(o[0]);r=BX.parseDate(o[1]);if(e&&r){t=Math.round(Math.max((r.getTime()-e.getTime())/6e4,0))}}if(!e){e=new Date;var u=30,p=(u||10)*60*1e3,d=Math.ceil(e.getTime()/p)*p;e=new Date(d)}}else{e=BX.parseDate(this.params.value.DATE_FROM);r=BX.parseDate(this.params.value.DATE_TO);t=Math.round(Math.max((r.getTime()-e.getTime())/6e4,0))}if(!t){t=a}this.DOM.dateWrap=this.DOM.dateTimeWrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-detail-inner calendar-resourcebook-content-block-detail-wrap-down"}})).appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-detail"},html:'<div class="calendar-resourcebook-content-block-title"><span class="calendar-resourcebook-content-block-title-text">'+BX.message("USER_TYPE_RESOURCE_DATE_LABEL")+"</span></div>"}));this.DOM.fromInput=this.DOM.dateWrap.appendChild(BX.create("INPUT",{attrs:{value:BX.date.format(i,e.getTime()/1e3),placeholder:BX.message("USER_TYPE_RESOURCE_DATE_LABEL"),type:"text"},events:{click:BX.proxy(this.showSmallCalendar,this),change:BX.proxy(this.triggerUpdatePlanner,this)},props:{className:"calendar-resbook-date-input calendar-resbook-field-datetime"}}));this.DOM.emptyInput=this.DOM.dateWrap.appendChild(BX.create("INPUT",{attrs:{value:"",type:"text"},props:{className:"calendar-resbook-empty-input"}}));if(!this.params.fullDay){this.DOM.timeWrap=this.DOM.dateTimeWrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-detail-inner calendar-resourcebook-content-block-detail-wrap-down"}})).appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-detail"},html:'<div class="calendar-resourcebook-content-block-title"><span class="calendar-resourcebook-content-block-title-text">'+BX.message("USER_TYPE_RESOURCE_TIME_LABEL")+"</span></div>"}));this.DOM.timeFromInput=this.DOM.timeWrap.appendChild(BX.create("INPUT",{attrs:{value:BX.date.format(s,e.getTime()/1e3),placeholder:BX.message("USER_TYPE_RESOURCE_TIME_LABEL"),type:"text"},style:{width:"100px"},props:{className:"calendar-resbook-date-input calendar-resbook-field-datetime-menu"}}));this.fromTime=new c({input:this.DOM.timeFromInput,values:BX.Calendar.UserField.ResourceBooking.getSimpleTimeList(),onChangeCallback:BX.proxy((function(){this.triggerUpdatePlanner()}),this),onAfterMenuOpen:BX.proxy((function(t,s){if(!t&&s){var i,a,r=BX.Calendar.UserField.ResourceBooking.adaptTimeValue({h:e.getHours(),m:e.getMinutes()});if(r&&r.label){for(i=0;i<s.menuItems.length;i++){a=s.menuItems[i];if(a&&r.label===a.text&&a.layout){s.layout.menuContainer.scrollTop=a.layout.item.offsetTop-2}}}}}),this)})}if(this.params.useServices&&BX.type.isArray(this.params.serviceList)&&this.params.serviceList.length>0){if(this.params.fullDay){this.DOM.durationWrap=this.DOM.dateTimeWrap}else{this.DOM.durationWrap=this.DOM.outerWrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-detail-wrap calendar-resourcebook-content-block-detail-wrap-flex"}}))}this.DOM.servicesWrap=this.DOM.durationWrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-detail-inner calendar-resourcebook-content-block-detail-wrap-down"}})).appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-detail"},html:'<div class="calendar-resourcebook-content-block-title"><span class="calendar-resourcebook-content-block-title-text">'+BX.message("USER_TYPE_RESOURCE_SERVICE_LABEL")+"</span></div>"}));this.DOM.serviceInput=this.DOM.servicesWrap.appendChild(BX.create("INPUT",{attrs:{value:this.params.value.SERVICE_NAME||"",placeholder:BX.message("USER_TYPE_RESOURCE_SERVICE_LABEL"),type:"text"},style:{width:"200px"},props:{className:"calendar-resbook-date-input calendar-resbook-field-datetime-menu"}}));var h=[];this.params.serviceList.forEach((function(e){if(e.name!==""){h.push({value:e.duration,label:e.name})}}));if(this.isNew&&h.length>=1){this.DOM.serviceInput.value=h[0].label;t=parseInt(h[0].value)}this.serviceList=new c({input:this.DOM.serviceInput,values:h,onChangeCallback:BX.proxy((function(e){if(BX.type.isPlainObject(e)&&e.realValue){this.durationList.setValue(parseInt(e.realValue));this.duration=BX.Calendar.UserField.ResourceBooking.parseDuration(this.DOM.durationInput.value);this.triggerUpdatePlanner()}}),this)})}if(!this.DOM.durationWrap){this.DOM.durationWrap=this.DOM.dateTimeWrap}this.DOM.durationControlWrap=this.DOM.durationWrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-detail-inner calendar-resourcebook-content-block-detail-wrap-down"}})).appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-detail"},html:'<div class="calendar-resourcebook-content-block-title"><span class="calendar-resourcebook-content-block-title-text">'+BX.message("USER_TYPE_RESOURCE_DURATION_LABEL")+"</span></div>"}));this.DOM.durationInput=this.DOM.durationControlWrap.appendChild(BX.create("INPUT",{attrs:{value:t,placeholder:BX.message("USER_TYPE_RESOURCE_DURATION_LABEL"),type:"text"},style:{width:"90px"},props:{className:"calendar-resbook-date-input calendar-resbook-field-datetime-menu"}}));this.duration=parseInt(t);this.durationList=new c({input:this.DOM.durationInput,values:BX.Calendar.UserField.ResourceBooking.getDurationList(this.params.fullDay),value:t,onChangeCallback:BX.proxy((function(){this.duration=BX.Calendar.UserField.ResourceBooking.parseDuration(this.DOM.durationInput.value);this.triggerUpdatePlanner()}),this)});BX.bind(this.DOM.outerWrap,"click",BX.proxy(this.showPlannerPopup,this));BX.bind(this.DOM.fromInput,"focus",BX.proxy(this.showPlannerPopup,this));BX.bind(this.DOM.durationInput,"focus",BX.proxy(this.showPlannerPopup,this));if(this.params.useUsers){this.DOM.userSelectorWrap=this.DOM.outerWrap.appendChild(BX.create("DIV",{props:{className:"calendar-resbook-users-selector-wrap"}}));this.DOM.userSelectorWrap=this.DOM.outerWrap.appendChild(BX.create("DIV",{props:{className:"calendar-resourcebook-content-block-control-field"}}));var f=BX.message("USER_TYPE_RESOURCE_USERS_CONTROL_DEFAULT_NAME");this.DOM.userSelectorWrap.appendChild(BX.create("DIV",{props:{className:"calendar-resourcebook-content-block-title"}})).appendChild(BX.create("SPAN",{props:{className:"calendar-resourcebook-content-block-title-text"},text:f}));this.DOM.userListWrap=this.DOM.userSelectorWrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-control custom-field-item"}}));var m=[];if(this.params.value&&BX.type.isArray(this.params.value.ENTRIES)){this.params.value.ENTRIES.forEach((function(e){if(e.TYPE==="user"){m.push("U"+parseInt(e.RESOURCE_ID))}}))}this.userSelector=new n({wrapNode:this.DOM.userListWrap,socnetDestination:this.params.socnetDestination,itemsSelected:m,addMessage:BX.message("USER_TYPE_RESOURCE_SELECT_USER"),checkLimitCallback:BX.proxy(this.checkResourceCountLimitForNewEntries,this)});BX.addCustomEvent("OnResourceBookDestinationAddNewItem",BX.proxy(this.triggerUpdatePlanner,this));BX.addCustomEvent("OnResourceBookDestinationUnselect",BX.proxy(this.triggerUpdatePlanner,this))}if(this.params.useResources){this.DOM.resourcesWrap=this.DOM.outerWrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-control-field calendar-resourcebook-content-block-control-field-add"}}));var B=BX.message("USER_TYPE_RESOURCE_RESOURCE_CONTROL_DEFAULT_NAME");this.DOM.resourcesWrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-title"}})).appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-title-text"},text:B}));this.DOM.resourcesListWrap=this.DOM.resourcesWrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-control custom-field-item"}}));var k=[];if(this.params.value&&BX.type.isArray(this.params.value.ENTRIES)){this.params.value.ENTRIES.forEach((function(e){if(e.TYPE!=="user"){k.push({type:e.TYPE,id:parseInt(e.RESOURCE_ID)})}}))}this.resourceSelector=new l({outerWrap:this.DOM.resourcesWrap,blocksWrap:this.DOM.resourcesListWrap,values:k,resourceList:this.params.resourceList,onChangeCallback:BX.proxy((function(){this.triggerUpdatePlanner()}),this),checkLimitCallback:BX.proxy(this.checkResourceCountLimit,this)})}var X=this;setTimeout(BX.delegate((function(){BX.onCustomEvent(window,"onCrmEntityEditorUserFieldSetValidator",[this.params.controlId,function(e){if(!X.params.allowOverbooking&&X.isOverbooked()){if(e&&e.addError&&BX.Crm&&BX.Crm.EntityValidationError){e.addError(BX.Crm.EntityValidationError.create({field:this}))}}var t=new BX.Promise;t.fulfill();return t}])}),this),100);setTimeout(BX.proxy(this.onChangeValues,this),100)};BX.Calendar.UserField.ResourceBooking.prototype.showSmallCalendar=function(e){var t=e.target||e.srcElement;BX.calendar({node:t,field:t,bTime:false});BX.focus(t)};BX.Calendar.UserField.ResourceBooking.prototype.onChangeValues=function(){var e="",t=BX.isAmPmMode()?BX.message("FORMAT_DATETIME").replace(":SS",""):BX.message("FORMAT_DATETIME"),s,i="",r=this.duration*60,o=this.DOM.serviceInput?this.DOM.serviceInput.value:"",n=[];s=this.params.fullDay?BX.parseDate(this.DOM.fromInput.value):BX.parseDate(this.DOM.fromInput.value+" "+this.DOM.timeFromInput.value,false,false,t);if(BX.type.isDate(s)){if(this.params.useResources){n=n.concat(this.getSelectedResourceList())}if(this.params.useUsers){n=n.concat(this.getSelectedUserList())}i=BX.date.format(a,s.getTime()/1e3)}this.DOM.valueInputs.forEach((function(e){BX.remove(e)}));this.DOM.valueInputs=[];n.forEach((function(t){var s=t.type+"|"+t.id+"|"+i+"|"+r+"|"+o;e+=s+"#";this.DOM.valueInputs.push(this.DOM.outerWrap.appendChild(BX.create("INPUT",{attrs:{name:this.params.inputName,value:s,type:"hidden"}})))}),this);if(!n.length){this.DOM.valueInputs.push(this.DOM.outerWrap.appendChild(BX.create("INPUT",{attrs:{name:this.params.inputName,value:"empty",type:"hidden"}})))}if(this.allValuesValue!==null&&this.allValuesValue!==e){BX.onCustomEvent(window,"onCrmEntityEditorUserFieldExternalChanged",[this.params.controlId]);BX.fireEvent(this.DOM.emptyInput,"change")}this.allValuesValue=e};BX.Calendar.UserField.ResourceBooking.prototype.showPlannerPopup=function(){var e=[];if(this.params.value&&BX.type.isArray(this.params.value.ENTRIES)){this.params.value.ENTRIES.forEach((function(t){e.push(t.EVENT_ID)}))}BX.Calendar.UserField.ResourceBooking.plannerPopup.show({plannerId:this.params.plannerId,bindNode:this.DOM.outerWrap,plannerConfig:this.getPlannerConfig(),selector:this.getSelectorData(),selectorOnChangeCallback:BX.proxy(this.plannerSelectorOnChange,this),selectEntriesOnChangeCallback:BX.proxy(this.plannerSelectedEntriesOnChange,this),checkSelectorStatusCallback:BX.proxy(this.checkSelectorStatusCallback,this),currentEventList:e});this.triggerUpdatePlanner()};BX.Calendar.UserField.ResourceBooking.prototype.triggerUpdatePlanner=function(){if(BX.Calendar.UserField.ResourceBooking.plannerPopup.plannerId===this.params.plannerId&&BX.Calendar.UserField.ResourceBooking.plannerPopup.isShown()){BX.Calendar.UserField.ResourceBooking.plannerPopup.update({plannerId:this.params.plannerId,plannerConfig:this.getPlannerConfig(),selector:this.getSelectorData(),resourceList:this.getResourceList(),selectedResources:this.resourceSelector?this.resourceSelector.getSelectedValues():false,userList:this.getUserList(),selectedUsers:this.userSelector?this.userSelector.getSelectedValues():false},true)}this.onChangeValues()};BX.Calendar.UserField.ResourceBooking.prototype.getPlannerConfig=function(){if(!this.params.plannerConfig){this.params.plannerConfig={id:this.params.plannerId,selectEntriesMode:true,scaleLimitOffsetLeft:2,scaleLimitOffsetRight:2,maxTimelineSize:300,minEntryRows:300,entriesListWidth:120,timelineCellWidth:49,minWidth:300,accuracy:300,workTime:[parseInt(this.params.workTime[0]),parseInt(this.params.workTime[1])]}}this.params.plannerConfig.clickSelectorScaleAccuracy=Math.max(this.duration*60||300,3600);return this.params.plannerConfig};BX.Calendar.UserField.ResourceBooking.prototype.plannerSelectorOnChange=function(t){if(t.plannerId===this.params.plannerId){var a=t.dateFrom,r=t.dateTo;this.DOM.fromInput.value=BX.date.format(i,a.getTime()/1e3);if(this.DOM.timeFromInput){this.DOM.timeFromInput.value=BX.date.format(s,a.getTime()/1e3)}if(this.params.fullDay){this.duration=(r.getTime()-a.getTime()+e)/6e4}else{this.duration=(r.getTime()-a.getTime())/6e4}this.duration=parseInt(Math.round(Math.max(this.duration,0)));this.durationList.setValue(this.duration);this.onChangeValues()}};BX.Calendar.UserField.ResourceBooking.prototype.plannerSelectedEntriesOnChange=function(e){if(e.plannerId===this.params.plannerId&&BX.type.isArray(e.entries)){var t=[],s=[];e.entries.forEach((function(e){if(e.selected){if(e.type==="user"){s.push(e.id)}else{t.push({id:e.id,type:e.type})}}}));if(this.resourceSelector){this.resourceSelector.setValues(t,false)}if(this.userSelector){this.userSelector.setValues(s,false)}this.onChangeValues()}};BX.Calendar.UserField.ResourceBooking.prototype.checkSelectorStatusCallback=function(e){if(e.plannerId===this.params.plannerId&&!this.params.allowOverbooking){var t="calendar-resbook-error";this.overbooked=e.status==="busy";if(this.overbooked){if(!this.DOM.errorNode){this.DOM.errorNode=this.DOM.dateTimeWrap.appendChild(BX.create("div",{props:{className:"calendar-resbook-content-error-text"},text:BX.message("USER_TYPE_RESOURCE_BOOKED_ERROR")}))}if(this.DOM.fromInput){BX.addClass(this.DOM.fromInput,t)}if(this.DOM.timeFromInput){BX.addClass(this.DOM.timeFromInput,t)}setTimeout(BX.delegate((function(){BX.focus(this.DOM.fromInput)}),this),50)}else{if(this.DOM.errorNode){BX.remove(this.DOM.errorNode);this.DOM.errorNode=null}if(this.DOM.fromInput){BX.removeClass(this.DOM.fromInput,t)}if(this.DOM.timeFromInput){BX.removeClass(this.DOM.timeFromInput,t)}}}};BX.Calendar.UserField.ResourceBooking.prototype.getSelectorData=function(){var t=BX.isAmPmMode()?BX.message("FORMAT_DATETIME").replace(":SS",""):BX.message("FORMAT_DATETIME"),s,i,a=this.duration,r=BX.parseDate(this.DOM.fromInput.value+(this.DOM.timeFromInput?" "+this.DOM.timeFromInput.value:""),false,false,t);if(!a){a=this.params.fullDay?1440:60}if(!BX.type.isDate(r)){r=new Date}if(this.params.fullDay){i=new Date(r.getTime()+a*6e4-e)}else{i=new Date(r.getTime()+a*6e4)}s={from:r,to:i,fullDay:this.params.fullDay,updateScaleLimits:true};return s};BX.Calendar.UserField.ResourceBooking.prototype.getResourceList=function(){var e=[];if(this.resourceSelector){this.resourceSelector.getValues().forEach((function(t){e.push({id:parseInt(t.id),type:t.type,name:t.title})}))}return e};BX.Calendar.UserField.ResourceBooking.prototype.getSelectedResourceList=function(){var e=[];if(this.resourceSelector){this.resourceSelector.getSelectedValues().forEach((function(t){e.push({id:parseInt(t.id),type:t.type,name:t.title})}))}return e};BX.Calendar.UserField.ResourceBooking.prototype.getUserList=function(){var e=[],t={},s;if(this.userSelector){if(BX.type.isArray(this.params.userList)){this.params.userList.forEach((function(s){if(!t[s]){e.push({id:s,type:"user"});t[s]=true}}))}this.userSelector.getAttendeesCodesList().forEach((function(i){if(i.substr(0,1)==="U"){s=parseInt(i.substr(1));if(!t[s]){e.push({id:s,type:"user"});t[s]=true}}}))}return e};BX.Calendar.UserField.ResourceBooking.prototype.getSelectedUserList=function(){var e=[];if(this.userSelector){this.userSelector.getAttendeesCodesList().forEach((function(t){if(t.substr(0,1)==="U"){e.push({id:parseInt(t.substr(1)),type:"user"})}}))}return e};BX.Calendar.UserField.ResourceBooking.USER_TYPE_ID="resourcebooking";BX.Calendar.UserField.ResourceBooking.openExternalSettingsSlider=function(e){var t=new o;t.show(e)};BX.Calendar.UserField.ResourceBooking.getDurationList=function(e){var t=[5,10,15,20,25,30,40,45,50,60,90,120,180,240,300,360,1440,1440*2,1440*3,1440*4,1440*5,1440*6,1440*7,1440*10],s,i,a=[];for(i=0;i<t.length;i++){s=t[i];if(e&&s%1440!==0){continue}a.push({value:s,label:this.getDurationLabel(s)})}return a};BX.Calendar.UserField.ResourceBooking.getDurationLabel=function(e){var t;if(e%1440===0){t=BX.message("USER_TYPE_DURATION_X_DAY").replace("#NUM#",e/1440)}else if(e%60===0&&e!==60){t=BX.message("USER_TYPE_DURATION_X_HOUR").replace("#NUM#",e/60)}else{t=BX.message("USER_TYPE_DURATION_X_MIN").replace("#NUM#",e)}return t};BX.Calendar.UserField.ResourceBooking.parseDuration=function(e){var t=e,s=parseInt(e),i=false,a=new RegExp("(\\d)\\s*("+BX.message("USER_TYPE_DURATION_REGEXP_DAY")+").*","ig"),r=new RegExp("(\\d)\\s*("+BX.message("USER_TYPE_DURATION_REGEXP_HOUR")+").*","ig");e=e.replace(a,(function(e,t){i=true;return t}));if(i){e=s*1440}else{e=t.replace(r,(function(e,t){i=true;return t}));if(i){e=s*60}else{e=s}}return parseInt(e)||0};BX.Calendar.UserField.ResourceBooking.getSimpleTimeList=function(e){var t,s=[];for(t=0;t<24;t++){s.push({value:t*60,label:this.formatTime(t,0)});s.push({value:t*60+30,label:this.formatTime(t,30)})}BX.Calendar.UserField.ResourceBooking.getSimpleTimeList=function(){return s};return s};BX.Calendar.UserField.ResourceBooking.adaptTimeValue=function(e){e=parseInt(e.h*60)+parseInt(e.m);var t=BX.Calendar.UserField.ResourceBooking.getSimpleTimeList(),s=24*60,i=false,a;for(a=0;a<t.length;a++){if(Math.abs(t[a].value-e)<s){s=Math.abs(t[a].value-e);i=a;if(s<=15)break}}return t[i||0]};BX.Calendar.UserField.ResourceBooking.formatTime=function(e,t){var i=new Date;i.setHours(e,t,0);return BX.date.format(s,i.getTime()/1e3)};BX.Calendar.UserField.ResourceBooking.getSocnetDestination=function(){if(this.prototype.socnetDestination){return this.prototype.socnetDestination}return null};BX.Calendar.UserField.ResourceBooking.getLoader=function(e,t){return BX.create("DIV",{props:{className:t||"calendar-loader"},html:'<svg class="calendar-loader-circular"'+(e?'style="width: '+parseInt(e)+"px; height: "+parseInt(e)+'px;"':"")+' viewBox="25 25 50 50">'+'<circle class="calendar-loader-path" cx="50" cy="50" r="20" fill="none" stroke-miterlimit="10"/>'+'<circle class="calendar-loader-inner-path" cx="50" cy="50" r="20" fill="none" stroke-miterlimit="10"/>'+"</svg>"})};BX.Calendar.UserField.ResourceBooking.getParamsFromHash=function(e){var t,s,i=unescape(window.location.hash);if(i){s=new RegExp("#calendar:"+e+"\\|(.*)","ig").exec(i);if(s&&s.length>1){t=s[1].split("|")}}return t};BX.Calendar.UserField.ResourceBooking.showLimitationPopup=function(){if(top.BX.getClass("BX.UI.InfoHelper")){top.BX.UI.InfoHelper.show("limit_crm_booking")}};BX.Calendar.UserField.ResourceBooking.prototype.checkResourceCountLimitForNewEntries=function(e){return this.params.resourceLimit<=0||this.getTotalResourceCount()<this.params.resourceLimit};BX.Calendar.UserField.ResourceBooking.prototype.checkResourceCountLimit=function(e){return this.params.resourceLimit<=0||this.getTotalResourceCount()<=this.params.resourceLimit};BX.Calendar.UserField.ResourceBooking.prototype.getTotalResourceCount=function(){var e=0;if(this.params.useResources&&this.resourceSelector){e+=this.resourceSelector.getValues().length}if(this.params.useUsers){e+=this.getSelectedUserList().length}return e};BX.Calendar.UserField.ResourceBooking.prototype.isOverbooked=function(e){return this.overbooked};BX.Calendar.UserField.getResourceBookingCrmFormField=function(e){var t={};if(e.field.node&&BX.type.isDomNode(e.field.node)){t.outerWrap=e.field.node}else{throw new Error('The argument "params.field.node" must be a DOM node.')}t.innerWrap=t.outerWrap.querySelector(".crm-webform-resourcebooking-wrap");if(!t.innerWrap){throw new Error('Can\'t find necessary DOM node "div.crm-webform-resourcebooking-wrap"')}t.name=e.field.name;t.formName="FIELD["+e.field.name+"]";t.captionNode=e.field.lblCaption;t.entityFieldName=e.field.entity_field_name;t.entityName=e.field.dict.entity_field_name;t.settings={caption:e.field.captionValue||e.field.dict.caption,required:e.field.isRequired||e.field.dict.required,data:e.field.settingsData||[]};return new BX.Calendar.UserField.CrmFormResourceBookingField(t)};BX.Calendar.UserField.getResourceBookingFieldLive=function(e){if(!e.wrap||!BX.type.isDomNode(e.wrap)){throw new Error('The argument "params.wrap" must be a DOM node.')}return new BX.Calendar.UserField.CrmFormResourceBookingFieldLiveController(e)};BX.Calendar.UserField.fieldParamsCache={};BX.Calendar.UserField.getUserFieldParams=function(e){e=e||{};var t=e.fieldName||"",s=new BX.Promise;if(e.clearCache||!BX.Calendar.UserField.fieldParamsCache[e.fieldName]){BX.ajax.runAction("calendar.api.resourcebookingajax.getfieldparams",{data:{fieldname:e.fieldName,selectedUsers:e.selectedUsers||[]}}).then(BX.delegate((function(e){BX.Calendar.UserField.fieldParamsCache[t]=e.data;s.fulfill(e.data)}),this),(function(e){}))}else{s.fulfill(BX.Calendar.UserField.fieldParamsCache[t])}return s};BX.Calendar.UserField.getPluralMessage=function(e,t){var s,i;i=BX.message("LANGUAGE_ID")||"en";t=parseInt(t);if(t<0){t=-1*t}if(i){switch(i){case"de":case"en":s=t!==1?1:0;break;case"ru":case"ua":s=t%10===1&&t%100!==11?0:t%10>=2&&t%10<=4&&(t%100<10||t%100>=20)?1:2;break;default:s=1;break}}else{s=1}return BX.message(e+"_PLURAL_"+s)};function r(){}r.prototype={show:function(e){if(!e){e={}}this.params=e;this.bindNode=e.bindNode;this.plannerId=this.params.plannerId;this.config=this.params.plannerConfig;if(this.isShown()||!this.bindNode){return}if(this.lastPlannerIdShown&&this.lastPlannerIdShown!==this.plannerId){this.close({animation:false})}this.currentEntries=[];this.plannerWrap=BX.create("DIV",{attrs:{id:this.plannerId,className:"calendar-planner-wrapper"}});this.popup=new BX.PopupWindow(this.plannerId+"_popup",this.bindNode,{autoHide:false,closeByEsc:true,offsetTop:-parseInt(this.bindNode.offsetHeight)-20,offsetLeft:this.bindNode.offsetWidth+38,lightShadow:true,content:this.plannerWrap});this.popup.setAngle({offset:100,position:"left"});this.popup.show(true);this.lastPlannerIdShown=this.plannerId;var t=BX.pos(this.bindNode),s=BX.GetWindowSize();this.plannerWidth=s.innerWidth-t.right-160;this.config.width=this.plannerWidth;setTimeout(BX.delegate((function(){if(this.popup&&this.popup.popupContainer){BX.addClass(this.popup.popupContainer,"calendar-resbook-planner-popup");this.popup.popupContainer.style.width=0}}),this),1);setTimeout(BX.delegate((function(){if(this.popup&&this.popup.popupContainer){this.popup.popupContainer.style.width=this.plannerWidth+40+"px";BX.addClass(this.popup.popupContainer,"show")}BX.bind(document,"click",BX.proxy(this.handleClick,this))}),this),50);setTimeout(BX.proxy(this.showPlanner,this),350);BX.addCustomEvent(this.popup,"onPopupClose",BX.proxy(this.close,this))},update:function(t,s){if(!this.isShown()){return}var a=[],r,o,n,l={},c=this,u=BX.clone(c.config,true),p,d,h,f;if(BX.type.isPlainObject(this.lastUpdateParams)&&BX.type.isPlainObject(t)&&s!==true){for(o in t){if(t.hasOwnProperty(o)){this.lastUpdateParams[o]=t[o]}}t=this.lastUpdateParams}if(BX.type.isPlainObject(t)){this.lastUpdateParams=t}t.focusSelector=t.focusSelector!==false;if(t.from&&t.to){h=BX.parseDate(t.from);f=BX.parseDate(t.to);p=h.getTime();d=f.getTime()}else{if(t.selector.fullDay){p=t.selector.from.getTime()-e*12;d=t.selector.from.getTime()+e*14}else{p=t.selector.from.getTime()-e*3;d=t.selector.from.getTime()+e*5}h=new Date(p);f=new Date(d);u.scaleDateFrom=h;u.scaleDateTo=f}if(BX.type.isArray(t.userList)){for(r=0;r<t.userList.length;r++){n="U"+t.userList[r].id;if(!l[n]){a.push(n);l[n]=true}}}if(BX.type.isArray(t.selectedUsers)){for(r=0;r<t.selectedUsers.length;r++){n="U"+t.selectedUsers[r];if(!l[n]){a.push(n);l[n]=true}}}var m={codes:a,resources:t.resourceList,from:BX.date.format(i,p/1e3),to:BX.date.format(i,d/1e3),currentEventList:this.params.currentEventList||[]};if(this.checkUpdateParams(m)&&this.isShown()){this.showPlannerLoader();BX.ajax.runAction("calendar.api.resourcebookingajax.getplannerdata",{data:m}).then((function(e){c.hidePlannerLoader();if(c.lastRequestData){c.lastRequestData.response=e}c.currentEntries=e.data.entries;c.currentAccessibility=e.data.accessibility;c.currentLoadedDataFrom=h;c.currentLoadedDataTo=f;if(BX.type.isArray(e.data.entries)){e.data.entries.forEach((function(e){if(e.type==="user"&&t.selectedUsers.find((function(t){return parseInt(e.id)===parseInt(t)}))||e.type==="resource"&&t.selectedResources.find((function(t){return e.type===t.type&&parseInt(e.id)===parseInt(t.id)}))){e.selected=true}else{e.selected=false}}))}if(c.isShown()){BX.onCustomEvent("OnCalendarPlannerDoUpdate",[{plannerId:c.plannerId,config:u,focusSelector:t.focusSelector,selector:{from:t.selector.from,to:t.selector.to,fullDay:t.selector.fullDay,animation:t.focusSelector,updateScaleLimits:t.focusSelector},data:{entries:e.data.entries,accessibility:e.data.accessibility},loadedDataFrom:h,loadedDataTo:f,show:false}])}}),(function(e){}))}else if(BX.type.isPlainObject(this.lastRequestData.response)){var B=this.lastRequestData.response;c.currentEntries=B.data.entries;c.currentAccessibility=B.data.accessibility;c.currentLoadedDataFrom=h;c.currentLoadedDataTo=f;if(BX.type.isArray(B.data.entries)){B.data.entries.forEach((function(e){if(e.type==="user"&&t.selectedUsers.find((function(t){return parseInt(e.id)==parseInt(t)}))||e.type==="resource"&&t.selectedResources.find((function(t){return e.type===t.type&&parseInt(e.id)===parseInt(t.id)}))){e.selected=true}else{e.selected=false}}))}if(this.isShown()){BX.onCustomEvent("OnCalendarPlannerDoUpdate",[{plannerId:c.plannerId,config:u,focusSelector:t.focusSelector,selector:{from:t.selector.from,to:t.selector.to,fullDay:t.selector.fullDay,animation:t.focusSelector,updateScaleLimits:t.focusSelector},data:{entries:B.data.entries,accessibility:B.data.accessibility},loadedDataFrom:h,loadedDataTo:f,show:false}])}}},checkUpdateParams:function(e){var t=false;if(!this.lastRequestData||this.lastRequestPlannerId!==this.plannerId){t=true}if(!t&&e.from!==this.lastRequestData.from){t=true}if(!t&&BX.type.isArray(e.codes)&&BX.type.isArray(this.lastRequestData.codes)&&BX.util.array_diff(e.codes,this.lastRequestData.codes).length>0){t=true}if(!t&&BX.type.isArray(e.resources)&&BX.type.isArray(this.lastRequestData.resources)){if(e.resources.length!==this.lastRequestData.resources.length){t=true}else{var s={};e.resources.forEach((function(e){s[e.type+"_"+e.id]=true}));this.lastRequestData.resources.forEach((function(e){if(!s[e.type+"_"+e.id]){t=true}}))}}if(t){this.lastRequestData=e;this.lastRequestPlannerId=this.plannerId}return t},showPlanner:function(){this.planner=new CalendarPlanner(this.params.plannerConfig,{config:this.config,data:{accessibility:this.currentAccessibility||{},entries:this.currentEntries},selector:{from:this.params.selector.from,to:this.params.selector.to,fullDay:this.params.selector.fullDay,updateScaleLimits:true,updateScaleType:false,focus:true,RRULE:false,animation:false},loadedDataFrom:this.currentLoadedDataFrom,loadedDataTo:this.currentLoadedDataTo,focusSelector:true,plannerId:this.plannerId,show:true});if(BX.type.isFunction(this.params.selectorOnChangeCallback)){BX.addCustomEvent("OnCalendarPlannerSelectorChanged",this.params.selectorOnChangeCallback)}if(BX.type.isFunction(this.params.selectEntriesOnChangeCallback)){BX.addCustomEvent("OnCalendarPlannerSelectedEntriesOnChange",this.params.selectEntriesOnChangeCallback)}if(BX.type.isFunction(this.params.checkSelectorStatusCallback)){BX.addCustomEvent("OnCalendarPlannerSelectorStatusOnChange",this.params.checkSelectorStatusCallback)}BX.addCustomEvent("OnCalendarPlannerScaleChanged",BX.proxy((function(e){this.update({from:e.from,to:e.to,focusSelector:e.focusSelector===true})}),this))},showPlannerLoader:function(){if(this.planner&&this.planner.outerWrap){if(this.loader){BX.remove(this.loader)}this.loader=this.planner.outerWrap.appendChild(BX.Calendar.UserField.ResourceBooking.getLoader(150))}},hidePlannerLoader:function(){if(this.loader){BX.remove(this.loader);this.loader=false}},close:function(e){if(this.popup){if(e&&e.animation){BX.removeClass(this.popup.popupContainer,"show");setTimeout(BX.delegate((function(){e.animation=false;this.close(e)}),this),300)}else{BX.unbind(document,"click",BX.proxy(this.handleClick,this));BX.removeCustomEvent(this.popup,"onPopupClose",BX.proxy(this.close,this));this.popup.destroy();this.planner=null;this.popup=null}}},isShown:function(){return this.lastPlannerIdShown===this.plannerId&&this.popup&&this.popup.isShown&&this.popup.isShown()},getPlannerId:function(){if(typeof this.plannerId==="undefined"){this.plannerId="calendar-planner-"+Math.round(Math.random()*1e5)}return this.plannerId},getPlannerContainer:function(){return BX("calendar-planner-outer"+this.getPlannerId(),true)},refreshDateTimeView:function(e){},handleClick:function(e){var t=e.target||e.srcElement;if(this.isShown()&&!BX.isParentForNode(this.bindNode,t)&&!BX.isParentForNode(BX("BXSocNetLogDestination"),t)&&!BX.isParentForNode(this.popup.popupContainer,t)){if(!document.querySelector("div.popup-window-resource-select")){this.close({animation:true})}}}};function o(){this.id="calendar_custom_settings_"+Math.round(Math.random()*1e6);this.sliderId="calendar:resbook-settings-slider";this.SLIDER_WIDTH=400;this.SLIDER_DURATION=80;this.DOM={}}o.prototype={show:function(e){this.params=e;BX.SidePanel.Instance.open(this.sliderId,{contentCallback:BX.delegate(this.create,this),width:this.SLIDER_WIDTH,animationDuration:this.SLIDER_DURATION});BX.addCustomEvent("SidePanel.Slider:onClose",BX.proxy(this.hide,this));BX.addCustomEvent("SidePanel.Slider:onCloseComplete",BX.proxy(this.destroy,this))},close:function(){BX.SidePanel.Instance.close()},hide:function(e){if(e&&e.getSliderPage&&e.getSliderPage().getUrl()===this.sliderId){if(this.denyClose){e.denyAction()}else{BX.removeCustomEvent("SidePanel.Slider:onClose",BX.proxy(this.hide,this))}}},destroy:function(e){if(e&&e.getSliderPage&&e.getSliderPage().getUrl()===this.sliderId){BX.removeCustomEvent("SidePanel.Slider:onCloseComplete",BX.proxy(this.destroy,this));BX.SidePanel.Instance.destroy(this.sliderId)}},create:function(){var e=new BX.Promise;var t='<div class="webform-buttons calendar-form-buttons-fixed">'+'<span id="'+this.id+'_save" class="webform-small-button webform-small-button-blue">'+BX.message("USER_TYPE_RESOURCE_SAVE")+"</span>"+'<span id="'+this.id+'_close" class="webform-button-link">'+BX.message("USER_TYPE_RESOURCE_CLOSE")+"</span>"+"</div>"+'<div class="calendar-slider-calendar-wrap">'+'<div class="calendar-slider-header"><div class="calendar-head-area"><div class="calendar-head-area-inner"><div class="calendar-head-area-title">'+'<span class="calendar-head-area-name">'+BX.message("USER_TYPE_RESOURCE_SETTINGS")+"</span>"+"</div></div></div></div>"+'<div class="resource-booking-slider-workarea"><div class="resource-booking-slider-content"><div id="'+this.id+'_content" class="resource-booking-settings"></div></div></div></div>';e.fulfill(BX.util.trim(t));setTimeout(BX.delegate(this.initControls,this),100);return e},initControls:function(){this.DOM.content=BX(this.id+"_content");BX.bind(BX(this.id+"_save"),"click",BX.proxy(this.save,this));BX.bind(BX(this.id+"_close"),"click",BX.proxy(this.close,this));if(this.params&&BX.type.isArray(this.params.filterSelectValues)){this.DOM.fieldOuterWrap=this.DOM.content.appendChild(BX.create("DIV",{attrs:{className:"calendar-settings-control"}}));this.DOM.fieldOuterWrap.appendChild(BX.create("DIV",{attrs:{className:"calendar-settings-control-name"},text:BX.message("USER_TYPE_RESOURCE_FILTER_NAME")}));this.DOM.fieldSelect=this.DOM.fieldOuterWrap.appendChild(BX.create("DIV",{attrs:{className:"calendar-field-container calendar-field-container-select"}})).appendChild(BX.create("DIV",{attrs:{className:"calendar-field-block"}})).appendChild(BX.create("select",{attrs:{className:"calendar-field calendar-field-select"}}));this.params.filterSelectValues.forEach((function(e){this.DOM.fieldSelect.options.add(new Option(e.TEXT,e.VALUE,this.params.filterSelect===e.VALUE,this.params.filterSelect===e.VALUE))}),this)}},save:function(){var e=this.params.entityType||"none";BX.userOptions.save("calendar","resourceBooking",e,this.DOM.fieldSelect.value);this.close();BX.reload()}};function n(e){this.params=e||{};this.id=this.params.id||"user-selector-"+Math.round(Math.random()*1e5);this.wrapNode=this.params.wrapNode;this.destinationInputName=this.params.inputName||"EVENT_DESTINATION";this.params.selectGroups=false;this.addMessage=this.params.addMessage||BX.message("USER_TYPE_RESOURCE_ADD_USER");this.checkLimit=BX.type.isFunction(e.checkLimitCallback)?e.checkLimitCallback:false;if(BX.type.isArray(this.params.itemsSelected)){this.params.itemsSelected=this.convertAttendeesCodes(this.params.itemsSelected)}else{this.params.itemsSelected=this.getSocnetDestinationConfig("itemsSelected")}this.DOM={outerWrap:this.params.outerWrap,wrapNode:this.params.wrapNode};this.create()}n.prototype={create:function(){if(this.DOM.outerWrap){BX.addClass(this.DOM.outerWrap,"calendar-resourcebook-folding-block"+(this.params.shown!==false?" shown":""))}var e=this.id;BX.bind(this.wrapNode,"click",BX.delegate((function(t){var s=t.target||t.srcElement;if(s.className==="calendar-resourcebook-content-block-control-delete"){BX.SocNetLogDestination.deleteItem(s.getAttribute("data-item-id"),s.getAttribute("data-item-type"),e);var i=BX.findParent(s,{className:"calendar-resourcebook-content-block-control-inner"});if(i&&BX.hasClass(i,"shown")){BX.removeClass(i,"shown");setTimeout((function(){BX.remove(i)}),300)}}else{BX.SocNetLogDestination.openDialog(e)}}),this));this.socnetDestinationInputWrap=this.wrapNode.appendChild(BX.create("SPAN",{props:{className:"calendar-resourcebook-destination-input-box"}}));this.socnetDestinationInput=this.socnetDestinationInputWrap.appendChild(BX.create("INPUT",{props:{id:e+"-inp",className:"calendar-resourcebook-destination-input"},attrs:{value:"",type:"text"},events:{keydown:function(t){return BX.SocNetLogDestination.searchBeforeHandler(t,{formName:e,inputId:e+"-inp"})},keyup:function(t){return BX.SocNetLogDestination.searchHandler(t,{formName:e,inputId:e+"-inp",linkId:"event-grid-dest-add-link",sendAjax:true})}}}));this.socnetDestinationLink=this.wrapNode.appendChild(BX.create("DIV",{props:{className:"calendar-resourcebook-content-block-control-text calendar-resourcebook-content-block-control-text-add"},text:this.addMessage}));this.init()},show:function(){if(this.DOM.outerWrap){BX.addClass(this.DOM.outerWrap,"shown")}},hide:function(){if(this.DOM.outerWrap){BX.removeClass(this.DOM.outerWrap,"shown")}},isShown:function(){if(this.DOM.outerWrap){return BX.hasClass(this.DOM.outerWrap,"shown")}},init:function(){if(!this.socnetDestinationInput||!this.wrapNode)return;var e=this;this.params.items=this.getSocnetDestinationConfig("items");this.params.itemsLast=this.getSocnetDestinationConfig("itemsLast");if(this.params.selectGroups===false){this.params.items.groups={};this.params.items.department={};this.params.items.sonetgroups={}}BX.SocNetLogDestination.init({name:this.id,searchInput:this.socnetDestinationInput,extranetUser:false,userSearchArea:"I",bindMainPopup:{node:this.wrapNode,offsetTop:"5px",offsetLeft:"15px"},bindSearchPopup:{node:this.wrapNode,offsetTop:"5px",offsetLeft:"15px"},callback:{select:BX.proxy(this.selectCallback,this),unSelect:BX.proxy(this.unSelectCallback,this),openDialog:BX.proxy(this.openDialogCallback,this),closeDialog:BX.proxy(this.closeDialogCallback,this),openSearch:BX.proxy(this.openDialogCallback,this),closeSearch:function(){e.closeDialogCallback(true)}},items:this.params.items,itemsLast:this.params.itemsLast,itemsSelected:this.params.itemsSelected,departmentSelectDisable:this.params.selectGroups===false})},closeAll:function(){if(BX.SocNetLogDestination.isOpenDialog()){BX.SocNetLogDestination.closeDialog()}BX.SocNetLogDestination.closeSearch()},selectCallback:function(e,t){if(t==="users"){this.addUserBlock(e);BX.onCustomEvent("OnResourceBookDestinationAddNewItem",[e,this.id]);this.socnetDestinationInput.value=""}},addUserBlock:function(e,t){if(this.checkLimit&&!this.checkLimit()){return BX.Calendar.UserField.ResourceBooking.showLimitationPopup()}var s,i=this.wrapNode.querySelectorAll(".calendar-resourcebook-content-block-control-inner.shown");for(s=0;s<i.length;s++){if(i[s].getAttribute("data-id")===e.id){BX.remove(i[s])}}var a=this.wrapNode.appendChild(BX.create("DIV",{attrs:{"data-id":e.id,className:"calendar-resourcebook-content-block-control-inner green"},html:'<div class="calendar-resourcebook-content-block-control-text">'+e.name+"</div>"+'<div data-item-id="'+e.id+'" data-item-type="users" class="calendar-resourcebook-content-block-control-delete"></div>'+'<input type="hidden" name="'+this.destinationInputName+"[U][]"+'" value="'+e.id+'">'}));if(t!==false){setTimeout(BX.delegate((function(){BX.addClass(a,"shown")}),this),1)}else{BX.addClass(a,"shown")}this.wrapNode.appendChild(this.socnetDestinationInputWrap);this.wrapNode.appendChild(this.socnetDestinationLink)},unSelectCallback:function(e){var t=BX.findChildren(this.wrapNode,{attribute:{"data-id":e.id}},true);if(t!=null){for(var s=0;s<t.length;s++){BX.remove(t[s])}}BX.onCustomEvent("OnResourceBookDestinationUnselect",[e,this.id]);this.socnetDestinationInput.value="";this.socnetDestinationLink.innerHTML=this.addMessage},openDialogCallback:function(){BX.style(this.socnetDestinationInputWrap,"display","inline-block");BX.style(this.socnetDestinationLink,"display","none");BX.focus(this.socnetDestinationInput)},closeDialogCallback:function(e){if(!BX.SocNetLogDestination.isOpenSearch()&&this.socnetDestinationInput.value.length<=0){BX.style(this.socnetDestinationInputWrap,"display","none");BX.style(this.socnetDestinationLink,"display","inline-block");if(e===true)this.socnetDestinationInput.value="";if(BX.SocNetLogDestination.backspaceDisable||BX.SocNetLogDestination.backspaceDisable!=null)BX.unbind(window,"keydown",BX.SocNetLogDestination.backspaceDisable);BX.bind(window,"keydown",BX.SocNetLogDestination.backspaceDisable=function(e){if(e.keyCode===8){e.preventDefault();return false}});setTimeout((function(){BX.unbind(window,"keydown",BX.SocNetLogDestination.backspaceDisable);BX.SocNetLogDestination.backspaceDisable=null}),5e3)}},getCodes:function(){var e=this.wrapNode.getElementsByTagName("INPUT"),t=[],s,i;for(s=0;s<e.length;s++){i=BX.util.trim(e[s].value);if(i){t.push(e[s].value)}}return t},getAttendeesCodes:function(){var e=this.wrapNode.getElementsByTagName("INPUT"),t=[],s;for(s=0;s<e.length;s++){t.push(e[s].value)}return this.convertAttendeesCodes(t)},convertAttendeesCodes:function(e){var t={};if(BX.type.isArray(e)){e.forEach((function(e){if(e.substr(0,2)==="DR"){t[e]="department"}else if(e.substr(0,2)==="UA"){t[e]="groups"}else if(e.substr(0,2)==="SG"){t[e]="sonetgroups"}else if(e.substr(0,1)==="U"){t[e]="users"}}))}return t},getAttendeesCodesList:function(e){var t=[];if(!e)e=this.getAttendeesCodes();for(var s in e){if(e.hasOwnProperty(s)){t.push(s)}}return t},getSocnetDestinationConfig:function(e){var t,s=this.params.socnetDestination||{};if(e==="items"){t={users:s.USERS||{},groups:s.EXTRANET_USER==="Y"||s.DENY_TOALL?{}:{UA:{id:"UA",name:BX.message("USER_TYPE_RESOURCE_TO_ALL_USERS")}},sonetgroups:s.SONETGROUPS||{},department:s.DEPARTMENT||{},departmentRelation:s.DEPARTMENT_RELATION||{}}}else if(e==="itemsLast"&&s.LAST){t={users:s.LAST.USERS||{},groups:s.EXTRANET_USER==="Y"?{}:{UA:true},sonetgroups:s.LAST.SONETGROUPS||{},department:s.LAST.DEPARTMENT||{}}}else if(e==="itemsSelected"){t=s.SELECTED||{}}return t||{}},getSelectedValues:function(){var e=[],t,s=this.wrapNode.querySelectorAll("input");for(t=0;t<s.length;t++){if(s[t].type==="hidden"&&s[t].value){if(s[t].value.substr(0,1)==="U"){e.push(parseInt(s[t].value.substr(1)))}}}return e},setValues:function(e,t){var s,i,a;s=this.wrapNode.querySelectorAll(".calendar-resourcebook-content-block-control-inner.shown");for(i=0;i<s.length;i++){BX.remove(s[i])}for(i=0;i<e.length;i++){if(BX.SocNetLogDestination.obItems[this.id]["users"]){a=BX.SocNetLogDestination.obItems[this.id]["users"]["U"+e[i]];if(a){this.addUserBlock({id:"U"+e[i],name:a.name},false)}}}if(t!==false&&this.onChangeCallback&&BX.type.isFunction(this.onChangeCallback)){setTimeout(BX.proxy(this.onChangeCallback,this),100)}},getId:function(){return this.id}};function l(e){this.params=e||{};this.editMode=!!this.params.editMode;this.id=this.params.id||"resource-selector-"+Math.round(Math.random()*1e5);this.resourceList=BX.type.isArray(e.resourceList)?e.resourceList:[];this.checkLimit=BX.type.isFunction(e.checkLimitCallback)?e.checkLimitCallback:false;this.checkLimitForNew=BX.type.isFunction(e.checkLimitCallbackForNew)?e.checkLimitCallbackForNew:false;this.selectedValues=[];this.selectedValuesIndex={};this.selectedBlocks=[];this.newValues=[];this.DOM={outerWrap:this.params.outerWrap,blocksWrap:this.params.blocksWrap||false,listWrap:this.params.listWrap};if(this.editMode){this.DOM.controlsWrap=this.params.controlsWrap}else{this.DOM.arrowNode=BX.create("span",{props:{className:"calendar-resourcebook-content-block-detail-icon calendar-resourcebook-content-block-detail-icon-arrow"}})}this.onChangeCallback=this.params.onChangeCallback||null;this.create();this.setValues(e.values)}l.prototype={create:function(){BX.addClass(this.DOM.outerWrap,"calendar-resourcebook-resource-list-wrap calendar-resourcebook-folding-block"+(this.params.shown!==false?" shown":""));if(this.editMode){this.DOM.addButton=this.DOM.controlsWrap.appendChild(BX.create("span",{props:{className:"calendar-resource-content-block-add-link"},text:BX.message("USER_TYPE_RESOURCE_ADD"),events:{click:BX.delegate(this.addResourceBlock,this)}}));if(this.resourceList.length>0){this.DOM.selectButton=this.DOM.controlsWrap.appendChild(BX.create("span",{props:{className:"calendar-resource-content-block-add-link"},text:BX.message("USER_TYPE_RESOURCE_SELECT"),events:{click:BX.delegate(this.openResourcesPopup,this)}}))}}else{BX.bind(this.DOM.blocksWrap,"click",BX.delegate(this.handleBlockClick,this))}},show:function(){BX.addClass(this.DOM.outerWrap,"shown")},hide:function(){this.DOM.outerWrap.style.maxHeight="";BX.removeClass(this.DOM.outerWrap,"shown")},isShown:function(){return BX.hasClass(this.DOM.outerWrap,"shown")},handleBlockClick:function(e){var t=e.target||e.srcElement;if(t){var s=t.getAttribute("data-bx-remove-block");if(s){this.selectedBlocks.find((function(e,t){if(e.value===s){BX.removeClass(e.wrap,"shown");setTimeout(BX.delegate((function(){BX.remove(e.wrap)}),this),300);this.selectedBlocks=BX.util.deleteFromArray(this.selectedBlocks,t)}}),this);this.selectedValues.find((function(e,t){if(e.title===s){this.selectedValues=BX.util.deleteFromArray(this.selectedValues,t)}}),this);if(BX.type.isFunction(this.onChangeCallback)){setTimeout(BX.proxy(this.onChangeCallback,this),100)}this.checkBlockWrapState()}if(!s){this.openResourcesPopup()}}},openResourcesPopup:function(){if(!this.resourceList.length){return this.addResourceBlock()}if(this.isResourcesPopupShown()){return}var e=[];this.resourceList.forEach((function(t){if(t.deleted){return}e.push({text:BX.util.htmlspecialchars(t.title),dataset:{type:t.type,id:t.id,title:t.title},onclick:BX.delegate((function(e,t){var s,i=e.target||e.srcElement,a=t.layout.item.querySelector(".menu-popup-item-resource-checkbox"),r=this.resourceList.find((function(e){return parseInt(e.id)===parseInt(t.dataset.id)&&e.type===t.dataset.type}),this);if(r){if(i&&BX.hasClass(i,"calendar-resourcebook-content-block-control-delete")){this.removeResourceBlock({resource:r,trigerOnChange:true});this.selectedValues=this.getSelectedValues();this.checkResourceInputs();s=this.popupContainer.querySelector(".menu-popup-item-all-resources-checkbox");this.selectAllChecked=false;if(s){s.checked=false}var o=BX.findParent(i,{className:"menu-popup-item"});if(o){BX.addClass(o,"menu-popup-item-resource-remove-loader");var n=o.appendChild(BX.Calendar.UserField.ResourceBooking.getLoader(25));var l=o.querySelector(".menu-popup-item-text");if(l){l.innerHTML=BX.message("USER_TYPE_RESOURCE_DELETING")}}r.deleted=true;setTimeout(BX.delegate((function(){if(o){o.style.maxHeight="0"}if(!this.resourceList.find((function(e){return!e.deleted}))){BX.PopupMenu.destroy(this.id);this.DOM.selectButton.style.opacity=0;setTimeout(BX.delegate((function(){BX.remove(this.DOM.selectButton)}),this),500)}}),this),500)}else if(i&&(BX.hasClass(i,"menu-popup-item")||BX.hasClass(i,"menu-popup-item-resource-checkbox")||BX.hasClass(i,"menu-popup-item-inner"))){if(!BX.hasClass(i,"menu-popup-item-resource-checkbox")){a.checked=!a.checked}if(a.checked){this.addResourceBlock({resource:r,value:r.title,trigerOnChange:true});this.selectedValues=this.getSelectedValues()}else{this.removeResourceBlock({resource:r,trigerOnChange:true});this.selectedValues=this.getSelectedValues();this.checkResourceInputs();s=this.popupContainer.querySelector(".menu-popup-item-all-resources-checkbox");this.selectAllChecked=false;if(s){s.checked=false}}}}}),this)})}),this);if(e.length>1){e.push({text:BX.message("USER_TYPE_RESOURCE_SELECT_ALL"),onclick:BX.delegate((function(e,t){var s=e.target||e.srcElement;if(s&&(BX.hasClass(s,"menu-popup-item")||BX.hasClass(s,"menu-popup-item-resource-checkbox"))){var i=t.layout.item.querySelector(".menu-popup-item-resource-checkbox");if(BX.hasClass(s,"menu-popup-item")){i.checked=!i.checked}var a,r=this.popupContainer.querySelectorAll("input.menu-popup-item-resource-checkbox");this.selectAllChecked=i.checked;for(a=0;a<r.length;a++){r[a].checked=this.selectAllChecked}this.resourceList.forEach((function(e){if(e.deleted){return}if(this.selectAllChecked){this.addResourceBlock({resource:e,value:e.title,trigerOnChange:true})}else{this.removeResourceBlock({resource:e,trigerOnChange:true})}}),this);this.selectedValues=this.getSelectedValues();this.checkResourceInputs()}}),this)})}this.popup=BX.PopupMenu.create(this.id,this.DOM.selectButton||this.DOM.blocksWrap,e,{className:"popup-window-resource-select",closeByEsc:true,autoHide:false,offsetTop:0,offsetLeft:0});this.popup.show(true);this.popupContainer=this.popup.popupWindow.popupContainer;if(!this.editMode){this.popupContainer.style.width=parseInt(this.DOM.blocksWrap.offsetWidth)+"px"}BX.addCustomEvent(this.popup.popupWindow,"onPopupClose",BX.proxy((function(){BX.PopupMenu.destroy(this.id)}),this));this.popup.menuItems.forEach((function(e){var t;if(e.dataset&&e.dataset.type){t=this.selectedValues.find((function(t){return parseInt(t.id)===parseInt(e.dataset.id)&&t.type===e.dataset.type}));e.layout.item.className="menu-popup-item";e.layout.item.innerHTML='<div class="menu-popup-item-inner">'+'<div class="menu-popup-item-resource">'+'<input class="menu-popup-item-resource-checkbox" type="checkbox"'+(t?'checked="checked"':"")+' id="'+e.id+'">'+'<label class="menu-popup-item-text" for="'+e.id+'">'+BX.util.htmlspecialchars(e.dataset.title)+"</label>"+"</div>"+(this.editMode?'<div class="calendar-resourcebook-content-block-control-delete"></div>':"")+"</div>"}else{this.selectAllChecked=!this.resourceList.find((function(e){return!this.selectedValues.find((function(t){return parseInt(t.id)===parseInt(e.id)&&t.type===e.type}))}),this);e.layout.item.className="menu-popup-item menu-popup-item-resource-all";e.layout.item.innerHTML='<div class="menu-popup-item-inner">'+'<div class="menu-popup-item-resource">'+'<input class="menu-popup-item-resource-checkbox menu-popup-item-all-resources-checkbox" type="checkbox"'+(this.selectAllChecked?'checked="checked"':"")+' id="'+e.id+'">'+'<label class="menu-popup-item-text" for="'+e.id+'">'+BX.message("USER_TYPE_RESOURCE_SELECT_ALL")+"</label>"+"</div>"+"</div>"}}),this);setTimeout(BX.delegate((function(){BX.bind(document,"click",BX.proxy(this.handleClick,this))}),this),50)},addResourceBlock:function(e){if(!BX.type.isPlainObject(e)){e={}}if(e.resource&&(this.checkLimit&&!this.checkLimit()&&window.B24)||!e.resource&&(this.checkLimitForNew&&!this.checkLimitForNew()&&window.B24)){return BX.Calendar.UserField.ResourceBooking.showLimitationPopup()}var t=this,s;if(this.editMode){if(e.resource&&this.selectedValues.find((function(t){return t.id&&parseInt(t.id)===parseInt(e.resource.id)&&t.type===e.resource.type}))){return}if(!e.value){e.value=""}s={value:e.value,wrap:this.DOM.listWrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-detail calendar-resourcebook-outer-resource-wrap"}})).appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-detail-resource"}})).appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-detail-resource-inner calendar-resourcebook-content-block-detail-resource-inner-wide"}}))};s.input=s.wrap.appendChild(BX.create("input",{props:{className:"calendar-resourcebook-content-input",value:e.value,type:"text",placeholder:BX.message("USER_TYPE_RESOURCE_NAME")},dataset:{resourceType:e.resource?e.resource.type:"",resourceId:e.resource?e.resource.id:""}}));s.delButton=s.wrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-control-delete"},events:{click:function(){BX.remove(BX.findParent(this,{className:"calendar-resourcebook-outer-resource-wrap"}));t.selectedValues=t.getSelectedValues();t.checkResourceInputs()}}}));if(e.focusInput!==false){BX.focus(s.input)}}else{if(e.value&&this.selectedBlocks.find((function(t){return t.value&&t.value===e.value}))){return}s={value:e.value,resource:e.resource||false,wrap:this.DOM.blocksWrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-control-inner"+(e.animation?"":" shown")+(e.transparent?" transparent":"")},children:[BX.create("div",{props:{className:"calendar-resourcebook-content-block-control-text"},text:e.value||""}),BX.create("div",{attrs:{"data-bx-remove-block":e.value},props:{className:"calendar-resourcebook-content-block-control-delete"}})]}))};this.selectedBlocks.push(s);if(e.animation){setTimeout(BX.delegate((function(){BX.addClass(s.wrap,"shown")}),this),1)}if(e.trigerOnChange!==false&&this.onChangeCallback&&BX.type.isFunction(this.onChangeCallback)){setTimeout(BX.proxy(this.onChangeCallback,this),100)}this.checkBlockWrapState()}if(this.DOM.listWrap&&this.DOM.outerWrap){if(BX.hasClass(this.DOM.outerWrap,"shown")){this.DOM.outerWrap.style.maxHeight=Math.max(1e4,this.DOM.listWrap.childNodes.length*45+100)+"px"}else{this.DOM.outerWrap.style.maxHeight=""}}return s},removeResourceBlock:function(e){if(this.editMode){var t,s,i,a=this.DOM.listWrap.querySelectorAll(".calendar-resourcebook-content-input");for(i=0;i<a.length;i++){t=a[i].getAttribute("data-resource-type");s=a[i].getAttribute("data-resource-id");if(t===e.resource.type&&parseInt(s)===parseInt(e.resource.id)){BX.remove(BX.findParent(a[i],{className:"calendar-resourcebook-outer-resource-wrap"}))}}}else{if(e.resource){this.selectedBlocks.find((function(t,s){if(t.value===e.resource.title){BX.removeClass(t.wrap,"shown");setTimeout(BX.delegate((function(){BX.remove(t.wrap)}),this),300);this.selectedBlocks=BX.util.deleteFromArray(this.selectedBlocks,s)}}),this)}this.checkBlockWrapState();if(e.trigerOnChange!==false&&this.onChangeCallback&&BX.type.isFunction(this.onChangeCallback)){setTimeout(BX.proxy(this.onChangeCallback,this),100)}}},checkResourceInputs:function(){if(this.editMode){if(!this.selectedValues.length){this.addResourceBlock({animation:true})}}},checkBlockWrapState:function(){if(!this.editMode){if(!this.selectedBlocks.length){if(!this.DOM.emptyPlaceholder){this.DOM.emptyPlaceholder=this.DOM.blocksWrap.appendChild(BX.create("DIV",{props:{className:"calendar-resourcebook-content-block-control-empty"},html:'<span class="calendar-resourcebook-content-block-control-text">'+BX.message("USER_TYPE_RESOURCE_LIST_PLACEHOLDER")+"</span>"}))}else{this.DOM.emptyPlaceholder.className="calendar-resourcebook-content-block-control-empty";this.DOM.blocksWrap.appendChild(this.DOM.emptyPlaceholder)}setTimeout(BX.delegate((function(){if(BX.isNodeInDom(this.DOM.emptyPlaceholder)){BX.addClass(this.DOM.emptyPlaceholder,"show")}}),this),50)}else if(this.DOM.emptyPlaceholder){BX.remove(this.DOM.emptyPlaceholder)}}},handleClick:function(e){var t=e.target||e.srcElement;if(this.isResourcesPopupShown()&&!BX.isParentForNode(this.popupContainer,t)){this.closeResourcesPopup({animation:true})}},isResourcesPopupShown:function(){return this.popup&&this.popup.popupWindow&&this.popup.popupWindow.isShown&&this.popup.popupWindow.isShown()&&this.popup.popupWindow.popupContainer&&BX.isNodeInDom(this.popup.popupWindow.popupContainer)},closeResourcesPopup:function(e){if(this.popup){this.popup.close();this.popupContainer.style.maxHeight="";BX.unbind(document,"click",BX.proxy(this.handleClick,this))}},getValues:function(){return this.resourceList},addToSelectedValues:function(e){if(!this.selectedValues.find((function(t){return parseInt(t.id)===parseInt(e.id)&&t.type===e.type}))){this.selectedValues.push(e)}},getSelectedValues:function(){this.selectedValues=[];if(this.editMode){var e,t,s,i=this.DOM.listWrap.querySelectorAll(".calendar-resourcebook-content-input");for(s=0;s<i.length;s++){e=i[s].getAttribute("data-resource-type");t=i[s].getAttribute("data-resource-id");if(e&&t){this.selectedValues.push({type:e,id:t,title:i[s].value})}else{this.selectedValues.push({type:"resource",title:i[s].value})}}}else{this.selectedBlocks.forEach((function(e){this.selectedValues.push({type:e.resource.type,id:e.resource.id})}),this)}return this.selectedValues},getDeletedValues:function(){return this.resourceList.filter((function(e){return e.deleted}))},setValues:function(e,t){this.selectedBlocks.forEach((function(e){BX.remove(e.wrap)}));this.selectedBlocks=[];t=t!==false;if(BX.type.isArray(e)){e.forEach((function(e){var s=this.resourceList.find((function(t){return parseInt(t.id)===parseInt(e.id)&&t.type===e.type}),this);if(s){this.addResourceBlock({resource:s,value:s.title,trigerOnChange:t});this.addToSelectedValues(s)}}),this)}if(this.editMode){this.selectedValues=this.getSelectedValues();this.checkResourceInputs()}else{if(this.DOM.arrowNode){this.DOM.blocksWrap.appendChild(this.DOM.arrowNode)}}this.checkBlockWrapState()}};function c(e){this.id=e.id||"bx-select-input-"+Math.round(Math.random()*1e6);if(BX.type.isFunction(e.getValues)){this.getValues=e.getValues;this.values=this.getValues()}else{this.values=e.values||false}this.input=e.input;this.defaultValue=e.defaultValue||"";this.openTitle=e.openTitle||"";this.className=e.className||"";this.currentValue=e.value;this.currentValueIndex=e.valueIndex;this.onChangeCallback=BX.type.isFunction(e.onChangeCallback)?e.onChangeCallback:null;this.onAfterMenuOpen=e.onAfterMenuOpen||null;this.disabled=e.disabled;this.editable=e.editable!==false;this.setFirstIfNotFound=!!e.setFirstIfNotFound;if(this.onChangeCallback){BX.bind(this.input,"change",this.onChangeCallback);BX.bind(this.input,"keyup",this.onChangeCallback)}this.curInd=false;if(BX.type.isArray(this.values)){BX.bind(this.input,"click",BX.proxy(this.onClick,this));if(this.editable){BX.bind(this.input,"focus",BX.proxy(this.onFocus,this));BX.bind(this.input,"blur",BX.proxy(this.onBlur,this));BX.bind(this.input,"keyup",BX.proxy(this.onKeyup,this))}else{BX.bind(this.input,"focus",BX.proxy((function(){this.input.blur()}),this))}if(this.currentValueIndex===undefined&&this.currentValue!==undefined){this.currentValueIndex=-1;for(var t=0;t<this.values.length;t++){if(parseInt(this.values[t].value)===parseInt(this.currentValue)){this.currentValueIndex=t;break}}if(this.currentValueIndex===-1){this.currentValueIndex=this.setFirstIfNotFound?0:undefined}}}if(this.currentValueIndex!==undefined&&this.values[this.currentValueIndex]){this.input.value=this.values[this.currentValueIndex].label}}c.prototype={showPopup:function(){if(this.getValues){this.values=this.getValues()}if(this.shown||this.disabled||!this.values.length){return}var e=0,t=0,s=[],i,a=this;for(i=0;i<this.values.length;i++){if(this.values[i].delimiter){s.push(this.values[i])}else{if(this.currentValue&&this.values[i]&&this.values[i].value===this.currentValue.value||this.input.value===this.values[i].label){e=t}s.push({id:this.values[i].value+"_"+i,text:this.values[i].label,onclick:this.values[i].callback||function(e,t){return function(){a.input.value=t;a.popupMenu.close();a.onChange(e,t)}}(this.values[i].value,this.values[i].labelRaw||this.values[i].label)});t++}}this.popupMenu=BX.PopupMenu.create(this.id,this.input,s,{closeByEsc:true,autoHide:true,offsetTop:0,offsetLeft:0});this.popupMenu.popupWindow.setWidth(this.input.offsetWidth-2);var r=this.popupMenu.getPopupWindow().getContentContainer();BX.addClass(this.popupMenu.layout.menuContainer,"calendar-resourcebook-select-popup");this.popupMenu.show();var o=this.popupMenu.menuItems[e];if(o&&o.layout){r.scrollTop=o.layout.item.offsetTop-2}BX.addCustomEvent(this.popupMenu.popupWindow,"onPopupClose",(function(){BX.PopupMenu.destroy(a.id);a.shown=false}));this.input.select();if(BX.type.isFunction(this.onAfterMenuOpen)){this.onAfterMenuOpen(e,this.popupMenu)}this.shown=true},closePopup:function(){BX.PopupMenu.destroy(this.id);this.shown=false},onFocus:function(){setTimeout(BX.delegate((function(){if(!this.shown){this.showPopup()}}),this),200)},onClick:function(){if(this.shown){this.closePopup()}else{this.showPopup()}},onBlur:function(){setTimeout(BX.delegate(this.closePopup,this),200)},onKeyup:function(){setTimeout(BX.delegate(this.closePopup,this),50)},onChange:function(e){var t=this.input.value;BX.onCustomEvent(this,"onSelectInputChanged",[this,t,e]);if(BX.type.isFunction(this.onChangeCallback)){this.onChangeCallback({value:t,realValue:e})}},destroy:function(){if(this.onChangeCallback){BX.unbind(this.input,"change",this.onChangeCallback);BX.unbind(this.input,"keyup",this.onChangeCallback)}BX.unbind(this.input,"click",BX.proxy(this.onClick,this));BX.unbind(this.input,"focus",BX.proxy(this.onFocus,this));BX.unbind(this.input,"blur",BX.proxy(this.onBlur,this));BX.unbind(this.input,"keyup",BX.proxy(this.onKeyup,this));if(this.popupMenu)this.popupMenu.close();BX.PopupMenu.destroy(this.id);this.shown=false},setValue:function(e){this.input.value=e;if(BX.type.isArray(this.values)){var t=-1;for(var s=0;s<this.values.length;s++){if(this.values[s].value===e){t=s;break}}if(t!==-1){this.input.value=this.values[t].label;this.currentValueIndex=t}}},getValue:function(e){return this.input.value}};function u(e){this.params=e;this.outerWrap=this.create()}u.prototype={create:function(){var e=BX.create("span",{props:{className:"calendar-resourcebook-content-block-select calendar-resourcebook-mode-selector"}}),t=[{text:BX.message("USER_TYPE_RESOURCE_CHOOSE_RESOURCES"),onclick:BX.delegate((function(t,s){if(BX.type.isFunction(this.params.showResources)){this.params.showResources()}e.innerHTML=s.text;this.modeSwitcherPopup.close()}),this)},{text:BX.message("USER_TYPE_RESOURCE_CHOOSE_USERS"),onclick:BX.delegate((function(t,s){if(BX.type.isFunction(this.params.showUsers)){this.params.showUsers()}e.innerHTML=s.text;this.modeSwitcherPopup.close()}),this)},{text:BX.message("USER_TYPE_RESOURCE_CHOOSE_RESOURCES_AND_USERS"),onclick:BX.delegate((function(t,s){if(BX.type.isFunction(this.params.showResourcesAndUsers)){this.params.showResourcesAndUsers()}e.innerHTML=s.text;this.modeSwitcherPopup.close()}),this)}],s="mode-switcher-"+Math.round(Math.random()*1e5);BX.bind(e,"click",BX.proxy((function(){if(this.modeSwitcherPopup&&this.modeSwitcherPopup.popupWindow&&this.modeSwitcherPopup.popupWindow.isShown()){return this.modeSwitcherPopup.close()}this.modeSwitcherPopup=BX.PopupMenu.create(s,e,t,{closeByEsc:true,autoHide:true,offsetTop:0,offsetLeft:20,angle:true});this.modeSwitcherPopup.show();BX.addCustomEvent(this.modeSwitcherPopup.popupWindow,"onPopupClose",BX.delegate((function(){BX.PopupMenu.destroy(s);this.modeSwitcherPopup=null}),this))}),this));if(this.params.useUsers&&!this.params.useResources){e.innerHTML=BX.message("USER_TYPE_RESOURCE_CHOOSE_USERS")}else if(this.params.useUsers&&this.params.useResources){e.innerHTML=BX.message("USER_TYPE_RESOURCE_CHOOSE_RESOURCES_AND_USERS")}else{e.innerHTML=BX.message("USER_TYPE_RESOURCE_CHOOSE_RESOURCES")}return e},getOuterWrap:function(){return this.outerWrap}};function p(e){this.params=BX.type.isPlainObject(e)?e:{};this.outerCont=this.params.outerCont;this.fieldSettings=this.params.fieldSettings||{};this.create()}p.prototype={create:function(){this.serviceListOuterWrap=this.outerCont.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-detail-wrap calendar-resourcebook-service-list-wrap"}}));this.durationTitleId="duration-title-wrap-"+Math.round(Math.random()*1e5);this.servicesTitleWrap=this.serviceListOuterWrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-detail-inner"},html:'<div class="calendar-resourcebook-content-block-detail-resource">'+'<div class="calendar-resourcebook-content-block-title">'+'<span class="calendar-resourcebook-content-block-title-text">'+BX.message("USER_TYPE_RESOURCE_SERVICE_LABEL")+"</span>"+"</div>"+'<div id="'+this.durationTitleId+'" class="calendar-resourcebook-content-block-title calendar-resourcebook-content-block-duration-title">'+'<span class="calendar-resourcebook-content-block-title-text">'+BX.message("USER_TYPE_RESOURCE_DURATION_LABEL")+"</span>"+"</div>"+"</div>"}));this.serviceListRowsWrap=this.serviceListOuterWrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-detail-inner"}})).appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-detail"}}));BX.bind(this.serviceListRowsWrap,"click",BX.delegate(this.handlePopupClick,this));if(BX.type.isArray(this.fieldSettings.SERVICE_LIST)&&this.fieldSettings.SERVICE_LIST.length>0){this.fieldSettings.SERVICE_LIST.forEach((function(e){this.addRow(e,false)}),this)}else{this.addRow(false,false)}this.serviceListAddWrap=this.serviceListOuterWrap.appendChild(BX.create("div",{props:{className:"calendar-resource-content-block-add-field"}}));this.serviceAddButton=this.serviceListAddWrap.appendChild(BX.create("span",{props:{className:"calendar-resource-content-block-add-link calendar-resource-content-block-add-link-icon"},text:BX.message("USER_TYPE_RESOURCE_ADD_SERVICE"),events:{click:BX.delegate(this.addRow,this)}}));BX.bind(window,"resize",BX.proxy(this.checkDurationTitlePosition,this));this.checkDurationTitlePosition();this.show(this.fieldSettings.USE_SERVICES==="Y")},show:function(e){if(e){this.serviceListOuterWrap.style.display="";BX.addClass(this.serviceListOuterWrap,"show")}else{this.serviceListOuterWrap.style.display="none";BX.removeClass(this.serviceListOuterWrap,"show")}},addRow:function(e,t){t=t!==false;if(!BX.type.isPlainObject(e)){e={name:"",duration:this.getDefaultDuration()}}var s={outerWrap:this.serviceListRowsWrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-detail-resource calendar-resourcebook-service-row"}}))};if(t){setTimeout((function(){BX.addClass(s.outerWrap,"show")}),1)}else{BX.addClass(s.outerWrap,"show")}s.wrap=s.outerWrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-detail-resource-inner"}}));s.nameInput=s.wrap.appendChild(BX.create("input",{props:{className:"calendar-resourcebook-content-input calendar-resourcebook-service-input",placeholder:BX.message("USER_TYPE_RESOURCE_SERVICE_PLACEHOLDER"),type:"text",value:e.name},attrs:{}}));s.durationInput=s.wrap.appendChild(BX.create("input",{props:{className:"calendar-resbook-duration-input calendar-resbook-field-datetime-menu",type:"text",value:e.duration},attrs:{}}));s.durationList=new BX.Calendar.UserField.ResourceBooking.SelectInput({input:s.durationInput,getValues:BX.proxy((function(){var e=false;if(BX.type.isFunction(this.params.getFullDayValue)){e=this.params.getFullDayValue()}return BX.Calendar.UserField.ResourceBooking.getDurationList(e)}),this),value:e.duration});s.deleteWrap=s.wrap.appendChild(BX.create("DIV",{props:{className:"calendar-resourcebook-content-block-detail-delete"},html:'<span class="calendar-resourcebook-content-block-control-delete calendar-resourcebook-content-block-control-delete-detail"></span>'}));this.serviceListOuterWrap.style.maxHeight=Math.max(500,this.serviceListRowsWrap.childNodes.length*45+100)+"px"},checkDurationTitlePosition:function(e){if(e!==false){if(this.checkDurationTitlePositionTimeout){clearTimeout(this.checkDurationTitlePositionTimeout)}this.checkDurationTitlePositionTimeout=setTimeout(BX.delegate((function(){this.checkDurationTitlePosition(false)}),this),100);return}var t=this.serviceListOuterWrap.querySelector("input.calendar-resbook-duration-input");if(this.durationTitleId&&BX(this.durationTitleId)&&t){BX(this.durationTitleId).style.left=t.offsetLeft+15+"px"}},getDefaultDuration:function(){var e=false;if(BX.type.isFunction(this.params.getFullDayValue)){e=this.params.getFullDayValue()}return e?1440:30},clickHandler:function(e){var t=e.target||e.srcElement;if(BX.hasClass(t,"calendar-resourcebook-content-block-control-delete")||BX.hasClass(t,"calendar-resourcebook-content-block-detail-delete")){var s=BX.findParent(t,{className:"calendar-resourcebook-service-row"});if(s){BX.removeClass(s,"show");setTimeout((function(){BX.remove(s)}),500);this.checkServiceRows()}}},getValues:function(e){var t=[],s,i,a,r=this.serviceListRowsWrap.querySelectorAll(".calendar-resourcebook-service-row");for(a=0;a<r.length;a++){if(BX.hasClass(r[a],"show")){s=r[a].querySelector("input.calendar-resourcebook-service-input");i=r[a].querySelector("input.calendar-resbook-duration-input");if(s&&i){t.push({name:s.value,duration:BX.Calendar.UserField.ResourceBooking.parseDuration(i.value)})}}}return t},checkRows:function(){var e=this.getValues();if(!e.length){this.show(false);if(BX.type.isFunction(this.params.onFullClearHandler)){this.params.onFullClearHandler()}this.addRow(false,false)}},handlePopupClick:function(e){var t=e.target||e.srcElement;if(BX.hasClass(t,"calendar-resourcebook-content-block-control-delete")||BX.hasClass(t,"calendar-resourcebook-content-block-detail-delete")){var s=BX.findParent(t,{className:"calendar-resourcebook-service-row"});if(s){BX.removeClass(s,"show");setTimeout((function(){BX.remove(s)}),500);this.checkRows()}}}};function d(e){this.params=BX.type.isPlainObject(e)?e:{};this.DOM={outerWrap:this.params.outerWrap};BX.addClass(this.DOM.outerWrap,"fields enumeration field-item");this.create()}d.prototype={create:function(){this.DOM.select=this.DOM.outerWrap.appendChild(BX.create("select"));this.DOM.select.options.add(new Option(BX.message("USER_TYPE_LOADING_TIMEZONE_LIST"),this.params.selectedValue||"",true,true));this.getTimezoneList().then(BX.delegate((function(e){BX.remove(this.DOM.select.options[0]);e.forEach((function(e){var t=this.params.selectedValue?this.params.selectedValue===e.value:e.selected;this.DOM.select.options.add(new Option(e.label,e.value,t,t))}),this)}),this))},getTimezoneList:function(e){e=e||{};var t=new BX.Promise;if(!this.timezoneList||e.clearCache){BX.ajax.runAction("calendar.api.calendarajax.getTimezoneList").then(BX.delegate((function(e){this.timezoneList=[];for(var s in e.data){if(e.data.hasOwnProperty(s)){this.timezoneList.push({value:e.data[s].timezone_id,label:e.data[s].title,selected:e.data[s].default})}}t.fulfill(this.timezoneList)}),this),(function(e){}))}else{t.fulfill(this.timezoneList)}return t},getValue:function(){return this.DOM.select.value}};function h(e){this.params=BX.type.isPlainObject(e)?e:{};this.DOM={outerWrap:BX(this.params.outerWrapId),form:document.forms[this.params.formName]}}h.prototype={showLayout:function(){if(!this.DOM.outerWrap||!this.DOM.form)return;BX.bind(this.DOM.form,"submit",BX.proxy(this.onSubmit,this));BX.addClass(this.DOM.outerWrap,"calendar-resourcebook-content calendar-resourcebook-content-admin-settings");this.DOM.innerWrap=this.DOM.outerWrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-wrap"}})).appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-inner"}}));var e=BX.type.isPlainObject(this.params.settings)?this.params.settings:{},t=[],s=[];this.DOM.innerWrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block"},children:[BX.create("span",{props:{className:"calendar-resourcebook-content-block-title-text"},text:BX.message("USER_TYPE_RESOURCE_CHOOSE")}),new u({useResources:e.USE_RESOURCES==="Y",useUsers:e.USE_USERS==="Y",showUsers:BX.delegate((function(){this.resourceList.hide();this.userList.show()}),this),showResources:BX.delegate((function(){this.resourceList.show();this.userList.hide()}),this),showResourcesAndUsers:BX.delegate((function(){this.resourceList.show();this.userList.show()}),this)}).getOuterWrap()]}));this.DOM.optionWrap=this.DOM.innerWrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block"}}));this.resourcesWrap=this.DOM.optionWrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-control-field calendar-resourcebook-content-block-control-field-add"}}));this.resourcesTitleWrap=this.resourcesWrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-title"}})).appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-title-text"},text:BX.message("USER_TYPE_RESOURCE_RESOURCE_CONTROL_DEFAULT_NAME")+":"}));this.resourcesListWrap=this.resourcesWrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-new-entries-wrap calendar-resourcebook-content-block-detail-inner"}}));this.resourcesListLowControls=this.resourcesWrap.appendChild(BX.create("div",{props:{className:"calendar-resource-content-block-add-field"}}));if(e.RESOURCES&&BX.type.isPlainObject(e.RESOURCES["resource"])&&BX.type.isArray(e.RESOURCES["resource"].SECTIONS)){e.RESOURCES["resource"].SECTIONS.forEach((function(e){t.push({id:e.ID,title:e.NAME,type:e.CAL_TYPE})}))}if(BX.type.isArray(e.SELECTED_RESOURCES)){e.SELECTED_RESOURCES.forEach((function(e){s.push({id:e.id,type:e.type})}))}this.resourceList=new BX.Calendar.UserField.ResourceBooking.ResourceListSelector({shown:e.USE_RESOURCES==="Y",editMode:true,outerWrap:this.resourcesWrap,listWrap:this.resourcesListWrap,controlsWrap:this.resourcesListLowControls,values:s,resourceList:t,checkLimitCallback:BX.proxy(this.checkResourceCountLimit,this)});this.userSelectorWrap=this.DOM.optionWrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-control-field calendar-resourcebook-content-block-control-field-add"}}));this.usersTitleWrap=this.userSelectorWrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-title"}})).appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-title-text"},text:BX.message("USER_TYPE_RESOURCE_USERS_CONTROL_DEFAULT_NAME")+":"}));this.usersListWrap=this.userSelectorWrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-control custom-field-item"}}));var i=[];if(BX.type.isArray(e.SELECTED_USERS)){e.SELECTED_USERS.forEach((function(e){i.push("U"+parseInt(e))}))}this.userList=new BX.Calendar.UserField.ResourceBooking.UserSelector({shown:e.USE_USERS==="Y",outerWrap:this.userSelectorWrap,wrapNode:this.usersListWrap,socnetDestination:this.params.socnetDestination,itemsSelected:i});this.DOM.optionWrap.appendChild(BX.create("hr",{props:{className:"calendar-resbook-hr"}}));this.datetimeOptionsWrap=this.DOM.optionWrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-control-field calendar-resourcebook-content-block-control-field-add"}}));this.datetimeOptionsWrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-title"}})).appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-title-text"},text:BX.message("USER_TYPE_RESOURCE_DATETIME_BLOCK_TITLE")+":"}));this.datetimeOptionsInnerWrap=this.datetimeOptionsWrap.appendChild(BX.create("div",{props:{className:"calendar-resourcebook-content-block-options"}}));this.DOM.fulldayCheckBox=BX.create("input",{props:{type:"checkbox",checked:e.FULL_DAY==="Y"}});this.datetimeOptionsInnerWrap.appendChild(BX.create("label",{props:{className:"calendar-resourcebook-content-block-option"},children:[this.DOM.fulldayCheckBox,BX.create("span",{text:BX.message("USER_TYPE_RESOURCE_FULL_DAY")})]}));this.DOM.useServicedayCheckBox=BX.create("input",{props:{type:"checkbox",checked:e.USE_SERVICES==="Y"},events:{click:BX.delegate((function(){if(this.serviceList){this.serviceList.show(this.DOM.useServicedayCheckBox.checked)}}),this)}});this.datetimeOptionsInnerWrap.appendChild(BX.create("label",{props:{className:"calendar-resourcebook-content-block-option"},children:[this.DOM.useServicedayCheckBox,BX.create("span",{text:BX.message("USER_TYPE_RESOURCE_ADD_SERVICES")})]}));this.serviceList=new p({outerCont:this.datetimeOptionsInnerWrap,fieldSettings:e,getFullDayValue:BX.proxy((function(){return this.DOM.fulldayCheckBox.checked}),this)});this.DOM.optionWrap.appendChild(BX.create("hr",{props:{className:"calendar-resbook-hr"}}));this.DOM.overbookingCheckbox=BX.create("input",{props:{type:"checkbox",checked:e.ALLOW_OVERBOOKING==="Y"}});this.DOM.optionWrap.appendChild(BX.create("label",{props:{className:"calendar-resourcebook-content-block-option"},children:[this.DOM.overbookingCheckbox,BX.create("span",{text:BX.message("USER_TYPE_RESOURCE_OVERBOOKING")})]}))},onSubmit:function(e){if(!this.DOM.inputsWrap){this.DOM.inputsWrap=this.DOM.outerWrap.appendChild(BX.create("DIV"))}else{BX.cleanNode(this.DOM.inputsWrap)}var t=this.params.htmlControl.NAME;this.DOM.inputsWrap.appendChild(BX.create("INPUT",{attrs:{name:t+"[USE_USERS]",value:this.userList.isShown()?"Y":"N",type:"hidden"}}));this.DOM.inputsWrap.appendChild(BX.create("INPUT",{attrs:{name:t+"[USE_RESOURCES]",value:this.resourceList.isShown()?"Y":"N",type:"hidden"}}));this.DOM.inputsWrap.appendChild(BX.create("INPUT",{attrs:{name:t+"[USE_SERVICES]",value:this.DOM.useServicedayCheckBox.checked?"Y":"N",type:"hidden"}}));this.DOM.inputsWrap.appendChild(BX.create("INPUT",{attrs:{name:t+"[FULL_DAY]",value:this.DOM.fulldayCheckBox.checked?"Y":"N",type:"hidden"}}));this.DOM.inputsWrap.appendChild(BX.create("INPUT",{attrs:{name:t+"[ALLOW_OVERBOOKING]",value:this.DOM.overbookingCheckbox.checked?"Y":"N",type:"hidden"}}));if(this.resourceList){this.prepareFormDataInputs(this.DOM.inputsWrap,this.resourceList.getSelectedValues().concat(this.resourceList.getDeletedValues()),t+"[SELECTED_RESOURCES]")}if(this.userList){var s=[];this.userList.getAttendeesCodesList().forEach((function(e){if(e.substr(0,1)==="U"){s.push(parseInt(e.substr(1)))}}),this);this.prepareFormDataInputs(this.DOM.inputsWrap,s,t+"[SELECTED_USERS]")}if(this.DOM.useServicedayCheckBox.checked&&this.serviceList){this.prepareFormDataInputs(this.DOM.inputsWrap,this.serviceList.getValues(),t+"[SERVICE_LIST]")}},prepareFormDataInputs:function(e,t,s){t.forEach((function(t,i){if(BX.type.isPlainObject(t)){var a;for(a in t){if(t.hasOwnProperty(a)){e.appendChild(BX.create("INPUT",{attrs:{name:s+"["+i+"]["+a+"]",value:t[a],type:"hidden"}}))}}}else{e.appendChild(BX.create("INPUT",{attrs:{name:s+"["+i+"]",value:t,type:"hidden"}}))}}),this)}};BX.Calendar.UserField.ResourceBooking.SelectInput=c;BX.Calendar.UserField.ResourceBooking.ResourceListSelector=l;BX.Calendar.UserField.ResourceBooking.UserSelector=n;BX.Calendar.UserField.ResourceBooking.ServiceList=p;BX.Calendar.UserField.ResourceBooking.ModeSelector=u;BX.Calendar.UserField.ResourceBooking.AdminSettingsViewer=h;BX.Calendar.UserField.ResourceBooking.plannerPopup=new r;BX.Calendar.UserField.ResourceBooking.TimezoneSelector=d;if(!Array.prototype.find){Object.defineProperty(Array.prototype,"find",{value:function(e){if(this==null){throw new TypeError('"this" is null or not defined')}var t=Object(this);var s=t.length>>>0;if(typeof e!=="function"){throw new TypeError("predicate must be a function")}var i=arguments[1];var a=0;while(a<s){var r=t[a];if(e.call(i,r,a,t)){return r}a++}return undefined}})}})();
//# sourceMappingURL=resourcebooking.map.js

Anon7 - 2022
AnonSec Team