(function(){BX.namespace("BX.rest");if(!!BX.rest.AppLayout){return}BX.rest.AppLayout=function(e){this.params={firstRun:!!e.firstRun,appHost:e.appHost,appPort:e.appPort,appProto:e.appProto,authId:e.authId,authExpires:e.authExpires,refreshId:e.refreshId,placement:e.placement,formName:e.formName,frameName:e.frameName,loaderName:e.loaderName,layoutName:e.layoutName,ajaxUrl:e.ajaxUrl,controlUrl:e.controlUrl,isAdmin:!!e.isAdmin,staticHtml:!!e.staticHtml,id:e.id,appId:e.appId,appV:e.appV,appI:e.appI,appSid:e.appSid,memberId:e.memberId,restPath:e.restPath,proto:e.proto,userOptions:e.userOptions,appOptions:e.appOptions,placementId:!!e.placementId?e.placementId:0,placementOptions:e.placementOptions};this.userSelectorControl=[null,null];this.userSelectorControlCallback=null;this.bAccessLoaded=false;this._appOptionsStack=[];this._inited=false;this._destroyed=false;this.deniedInterface=[];this.selectUserCallback_1_value=[];this.messageInterface=new(BX.rest.AppLayout.initializePlacement(this.params.placement));BX.bind(window,"message",BX.proxy(this.receiveMessage,this))};BX.rest.AppLayout.openApplication=function(e,t,a,s){var r=BX.message("REST_APPLICATION_URL").replace("#ID#",parseInt(e));r=BX.util.add_url_param(r,{_r:Math.random()});var n={};if(t&&typeof t==="object"){for(var i in t){if(!t.hasOwnProperty(i)){continue}if(i.search("bx24_")===0){var o=i.replace("bx24_","");n[o]=t[i];delete t[i]}}if(t.hasOwnProperty("options")){if(typeof t.options==="object"){appOptions=t.options}if(t.hasOwnProperty("params")){t=t.params}}}var p={ID:e,PLACEMENT_OPTIONS:t,POPUP:1};if(!!a){if(typeof a.PLACEMENT!=="undefined"){p.PLACEMENT=a.PLACEMENT}if(typeof a.PLACEMENT_ID!=="undefined"){p.PLACEMENT_ID=a.PLACEMENT_ID}}var l={url:r,anchor:null,target:null};var c=BX.SidePanel.Instance.getUrlRule(r,l);var u=c&&c.options?BX.clone(c.options):{};u["cacheable"]=false;u["contentCallback"]=function(e){var t=new top.BX.Promise;top.BX.ajax.post(e.url,{sessid:BX.bitrix_sessid(),site:BX.message("SITE_ID"),PARAMS:{template:"",params:p}},(function(e){t.fulfill(e)}));return t};u["events"]=u["events"]?u["events"]:{};u["events"]["onClose"]=function(){if(!!s){s()}};var f=["width","leftBoundary","title","label"];for(var h in n){if(!n.hasOwnProperty(h)){continue}for(var d in f){if(h===f[d]){switch(h){case"leftBoundary":if(BX.type.isNumber(n[h])){u["customLeftBoundary"]=Number(n[h])}break;case"width":if(BX.type.isNumber(n[h])){u["width"]=Number(n[h])}break;case"title":if(BX.type.isString(n[h])){u["title"]=String(n[h])}break;case"label":var m=n[h];if(BX.type.isObject(m)){var B={aqua:"#06bab1",green:"#a5de00",orange:"#ffa801",brown:"#b57051",pink:"#f968b6",blue:"#2eceff",grey:"#a1a6ac",violet:"#6b52cc"};if(m.hasOwnProperty("bgColor")){var X="";for(var I in B){if(m.bgColor===I){X=B[I];break}}n[h]["bgColor"]=X}u["label"]=n[h]}break}}}}BX.SidePanel.Instance.open(r,u);var y=top.BX.SidePanel.Instance.getTopSlider();top.BX.addCustomEvent(top,"Rest:AppLayout:ApplicationInstall",(function(r,n){n.redirect=false;y.close(false,(function(){BX.rest.AppLayout.openApplication(e,t,a,s)}))}))};BX.rest.AppLayout.openPath=function(e,t,a){var s=BX.type.isString(t["path"])?t["path"]:"";var r=/^\/(crm\/(deal|lead|contact|company|type)|marketplace|company\/personal\/user\/[0-9]+|workgroups\/group\/[0-9]+)\//;if(!BX.browser.IsMobile()){if(s!==""&&r.test(s)){var n="from=rest_placement&from_app="+e;s+=(s.indexOf("?")===-1?"?":"&")+n;var i={url:s,anchor:null,target:null};var o=BX.SidePanel.Instance.getUrlRule(s,i);var p=o&&o.options?BX.clone(o.options):{};p["cacheable"]=false;if(!("events"in p)){p["events"]={}}p["events"]["onClose"]=function(){if(!!a&&BX.type.isFunction(a)){a({result:"close"})}};BX.SidePanel.Instance.open(s,p)}else{if(!!a&&BX.type.isFunction(a)){a({result:"error",errorCode:"PATH_NOT_AVAILABLE"})}}}else{a({result:"error",errorCode:"METHOD_NOT_SUPPORTED_ON_DEVICE"})}};BX.rest.AppLayout.prototype={init:function(){if(!this._inited&&!!document.forms[this.params.formName]){var e=BX(this.params.loaderName);BX.bind(BX(this.params.frameName),"load",(function(){BX.addClass(e,"app-loading-msg-loaded");BX.removeClass(this,"app-loading");BX.remove(e)}));if(this.params.staticHtml){BX(this.params.frameName).src=document.forms[this.params.formName].action}else{document.forms[this.params.formName].submit()}this._inited=true}},destroy:function(){BX.unbind(window,"message",BX.proxy(this.receiveMessage,this));if(BX(this.params.frameName)){BX(this.params.frameName).parentNode.removeChild(BX(this.params.frameName))}this._destroyed=true},query:function(e,t){var a={sessid:BX.bitrix_sessid(),site:BX.message("SITE_ID"),PARAMS:{template:"",params:{ID:this.params.id}}};if(!!e){a=BX.mergeEx(a,e)}return BX.ajax({dataType:"json",method:"POST",url:this.params.ajaxUrl,data:a,onsuccess:t})},receiveMessage:function(t){t=t||window.event;if(t.origin!==this.params.appProto+"://"+this.params.appHost&&t.origin+":"+this.params.appPort!==this.params.appProto+"://"+this.params.appHost||!BX.type.isString(t.data)&&!BX.type.isObject(t.data)){return}var a={},s=[],r="",n="",i=false;if(BX.type.isObject(t.data)){n=t.data.method;r=t.data.appSid;i=t.data.callback;s=!!t.data.params?t.data.params:[]}else{a=e(t.data,":");n=a[0];i=a[2];r=a[3];if(a[1]){s=JSON.parse(a[1])}}if(r!=this.params.appSid){return}if(!!this.messageInterface[n]&&!BX.util.in_array(n,this.deniedInterface)){var o=!i?BX.DoNothing:BX.delegate((function(e){var t=BX(this.params.frameName);if(!!t&&!!t.contentWindow){t.contentWindow.postMessage(i+":"+(typeof e=="undefined"?"":JSON.stringify(e)),this.params.appProto+"://"+this.params.appHost)}}),this);this.messageInterface[n].apply(this,[s,o,this])}},denyInterface:function(e){this.deniedInterface=BX.util.array_merge(this.deniedInterface,e)},allowInterface:function(e){var t=[];for(var a=0;a0){var e=this._appOptionsStack;this._appOptionsStack=[];var t=[];for(var a=0;a0){BX.defer(this.userSelectorControl[0].close,this.userSelectorControl[0])();if(!!this.userSelectorControlCallback){this.userSelectorControlCallback.apply(this,[t[0]])}}},selectUserCallback_1:function(e){if(e===true){var t=BX.util.array_values(this.selectUserCallback_1_value);BX.defer(this.userSelectorControl[1].close,this.userSelectorControl[1])();if(!!this.userSelectorControlCallback){this.userSelectorControlCallback.apply(this,[t])}}else{this.selectUserCallback_1_value=e}},hideUpdate:function(e,t){BX.userOptions.save("app_options","params_"+this.params.appId+"_"+this.params.appV,"skip_update_"+e,1);t()}};BX.rest.AppLayout.initizalizePlacementInterface=function(e){var t=function(){};BX.extend(t,e);t.prototype.events=BX.clone(t.superclass.events);return t};BX.rest.AppLayout.initializePlacement=function(e){e=(e+"").toUpperCase();if(!BX.rest.AppLayout.placementInterface[e]){BX.rest.AppLayout.placementInterface[e]=BX.rest.AppLayout.initizalizePlacementInterface(e==="DEFAULT"?BX.rest.AppLayout.MessageInterface:BX.rest.AppLayout.MessageInterfacePlacement)}return BX.rest.AppLayout.placementInterface[e]};BX.rest.AppLayout.initializePlacementByEvent=function(e,t){BX.addCustomEvent(t,(function(t){var a=BX.rest.AppLayout.initializePlacement(e);if(!!t.events){for(var s=0;s=0){window.scrollTo(BX.GetWindowScrollPos().scrollLeft,parseInt(e.scroll))}t(e)},setUserOption:function(e,t){this.params.userOptions[e.name]=e.value;BX.userOptions.save("app_options","options_"+this.params.appId,e.name,e.value);t(e)},setAppOption:function(e,t){if(this.params.isAdmin){this._appOptionsStack.push([e.name,e.value,t]);BX.defer(this.sendAppOptions,this)()}},setInstall:function(e,t){BX.userOptions.save("app_options","params_"+this.params.appId+"_"+this.params.appV,"install",!!e["install"]?1:0);t(e)},setInstallFinish:function(e,t){var a={action:"set_installed",v:typeof e.value=="undefined"||e.value!==false?"Y":"N"};this.query(a,BX.delegate((function(e){var t={redirect:true};top.BX.onCustomEvent(top,"Rest:AppLayout:ApplicationInstall",[a.v,t],false);if(t.redirect){window.location=BX.util.add_url_param(window.location.href,{install_finished:!!e.result?"Y":"N"})}}),this))},selectUser:function(e,t){this.userSelectorControlCallback=t;var a=parseInt(e.mult+0);if(a){if(this.userSelectorControl[a]){this.userSelectorControl[a].close();this.userSelectorControl[a].destroy();this.userSelectorControl[a]=null}}else if(!!this.userSelectorControl[a]){this.userSelectorControl[a].show();return}var s={name:"USER_"+a,onchange:"user_selector_cb_"+parseInt(Math.random()*1e5),site_id:BX.message("SITE_ID")};if(a){s.mult=true}window[s.onchange]=BX.delegate(this["selectUserCallback_"+a],this);this.loadControl("user_selector",s,BX.delegate((function(t){this.userSelectorControl[a]=BX.PopupWindowManager.create("app-user-popup-"+a,null,{autoHide:true,content:t,zIndex:5e3});if(a){this.userSelectorControl[a].setButtons([new BX.PopupWindowButton({text:BX.message("REST_ALT_USER_SELECT"),className:"popup-window-button-accept",events:{click:function(){window[s.onchange](true)}}})])}this.userSelectorControl[parseInt(e.mult+0)].show();BX("USER_"+a+"_selector_content").style.display="block"}),this))},selectAccess:function(e,t){if(!this.bAccessLoaded){this.loadControl("access_selector",{},BX.defer((function(){this.bAccessLoaded=true;BX.defer(this.messageInterface.selectAccess,this)(e,t)}),this))}else{BX.Access.Init({groups:{disabled:true}});e.value=e.value||[];var a={};for(var s=0;s