BX.namespace("BX.Sale.OrderAjaxComponent");(function(){"use strict";if(BX.Sale&&BX.Sale.Input&&BX.Sale.Input.Utils){BX.Sale.Input.Utils.asMultiple=function(e){if(e===undefined||e===null||e===""){return[]}else if(e.constructor===Array){var t=0,i=e.length,s;for(;t(\S*)<\/a>/g,"$1");var t=BX.parseJSON(e),i=false;if(t&&t.order){e=t.order;this.result.SHOW_AUTH=e.SHOW_AUTH;this.result.AUTH=e.AUTH;if(this.result.SHOW_AUTH){this.editAuthBlock();this.showAuthBlock();this.animateScrollTo(this.authBlockNode)}else{if(e.REDIRECT_URL&&e.REDIRECT_URL.length){if(this.params.USE_ENHANCED_ECOMMERCE==="Y"){this.setAnalyticsDataLayer("purchase",e.ID)}i=true;location.href=e.REDIRECT_URL}this.showErrors(e.ERROR,true,true)}}if(!i){this.endLoader();this.disallowOrderSave()}},startLoader:function(){if(this.BXFormPosting===true)return false;this.BXFormPosting=true;if(!this.loadingScreen){this.loadingScreen=new BX.PopupWindow("loading_screen",null,{overlay:{backgroundColor:"white",opacity:1},events:{onAfterPopupShow:BX.delegate(function(){BX.cleanNode(this.loadingScreen.popupContainer);BX.removeClass(this.loadingScreen.popupContainer,"popup-window");this.loadingScreen.popupContainer.appendChild(BX.create("IMG",{props:{src:this.templateFolder+"/images/loader.gif"}}));this.loadingScreen.popupContainer.removeAttribute("style");this.loadingScreen.popupContainer.style.display="block"},this)}});BX.addClass(this.loadingScreen.overlay.element,"bx-step-opacity")}this.loadingScreen.overlay.element.style.opacity="0";this.loadingScreen.show();this.loadingScreen.overlay.element.style.opacity="0.6";return true},endLoader:function(){this.BXFormPosting=false;if(this.loadingScreen&&this.loadingScreen.isShown()){this.loadingScreen.close()}},htmlspecialcharsEx:function(e){return e.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(//g,">").replace(/"/g,""")},saveFiles:function(){if(this.result.ORDER_PROP&&this.result.ORDER_PROP.properties){var e=this.result.ORDER_PROP.properties,t,i;for(t=0;ta.bottom)r=a.bottom-window.innerHeight+17;new BX.easing({duration:t||800,start:{scroll:s},finish:{scroll:r},transition:BX.easing.makeEaseOut(BX.easing.transitions.quad),step:BX.delegate(function(e){window.scrollTo(0,e.scroll)},this)}).animate()},checkKeyPress:function(e){if(e.keyCode==13){var t=e.target||e.srcElement,i=t.getAttribute("data-send"),s,a;if(!i){s=t.getAttribute("data-next");if(s){a=this.orderBlockNode.querySelector("input[name="+s+"]");a&&a.focus()}return BX.PreventDefault(e)}}},getSizeString:function(e,t){var i=1024*1024*1024,s=1024*1024,a=1024,r;e=parseInt(e);t=parseInt(t);if(e>i)r=parseFloat(e/i).toFixed(t)+" Gb";else if(e>s)r=parseFloat(e/s).toFixed(t)+" Mb";else if(e>a)r=parseFloat(e/a).toFixed(t)+" Kb";else r=e+" B";return r},getFileAccepts:function(e){var t=[],i=e.split(","),s,a;var r={json:"application/json",javascript:"application/javascript","octet-stream":"application/octet-stream",ogg:"application/ogg",pdf:"application/pdf",zip:"application/zip",gzip:"application/gzip",aac:"audio/aac",mp3:"audio/mpeg",gif:"image/gif",jpeg:"image/jpeg",png:"image/png",svg:"image/svg+xml",tiff:"image/tiff",css:"text/css",csv:"text/csv",html:"text/html",plain:"text/plain",php:"text/php",xml:"text/xml",mpeg:"video/mpeg",mp4:"video/mp4",quicktime:"video/quicktime",flv:"video/x-flv",doc:"application/msword",docx:"application/msword",xls:"application/vnd.ms-excel",xlsx:"application/vnd.ms-excel"};for(s=0;s";i=e.split(t);i=BX.util.array_unique(i);for(s=0;s");var s=e.querySelector(".alert.alert-danger"),a;if(s&&t.length){BX.cleanNode(s);s.appendChild(BX.create("DIV",{html:t}));a=!this.hasErrorSection[e.id];if(a){s.style.opacity=0;s.style.display="";new BX.easing({duration:300,start:{opacity:0},finish:{opacity:100},transition:BX.easing.makeEaseOut(BX.easing.transitions.quad),step:function(e){s.style.opacity=e.opacity/100},complete:function(){s.removeAttribute("style")}}).animate()}else s.style.display="";if(!!i)BX.addClass(e,"bx-step-error")}},showErrors:function(e,t,i){var s=this.orderBlockNode.querySelectorAll("div.alert.alert-danger"),a,r,o;for(r=0;ro.top)window.scrollBy(0,-(o.height+20));e.style.display="none";BX.cleanNode(e);e.removeAttribute("class");e.removeAttribute("style")}}).animate()}}},checkPreload:function(e){var t;switch(e.id){case this.regionBlockNode.id:t=this.result.LAST_ORDER_DATA&&this.result.LAST_ORDER_DATA.PERSON_TYPE;break;case this.paySystemBlockNode.id:t=this.result.LAST_ORDER_DATA&&this.result.LAST_ORDER_DATA.PAY_SYSTEM;break;case this.deliveryBlockNode.id:t=this.result.LAST_ORDER_DATA&&this.result.LAST_ORDER_DATA.DELIVERY;break;case this.pickUpBlockNode.id:t=this.result.LAST_ORDER_DATA&&this.result.LAST_ORDER_DATA.PICK_UP;break;default:t=true}return t},checkBlockErrors:function(e){var t,i,s,a,r,o;if(t=BX(e.id+"-hidden")){i=t.querySelector("div.alert.alert-danger");s=i&&i.style.display!="none";a=t.querySelector("div.alert.alert-warning.alert-show");if(!s){r=t.querySelectorAll("div.tooltip");for(o=0;o"+this.params.MESS_DELIVERY_CALC_ERROR_TITLE+"";if(this.params.MESS_DELIVERY_CALC_ERROR_TEXT.length)s+="
"+this.params.MESS_DELIVERY_CALC_ERROR_TEXT+"";this.showBlockWarning(this.deliveryBlockNode,s);this.showBlockWarning(this.deliveryHiddenBlockNode,s);if(this.activeSectionId!=this.deliveryBlockNode.id){BX.addClass(this.deliveryBlockNode,"bx-step-completed");BX.bind(this.deliveryBlockNode.querySelector(".alert.alert-warning"),"click",BX.proxy(this.showByClick,this))}}else if(BX.hasClass(this.deliveryBlockNode,"bx-step-warning")&&this.activeSectionId!=this.deliveryBlockNode.id){BX.removeClass(this.deliveryBlockNode,"bx-step-warning")}if(!this.result.WARNING||!this.options.showWarnings)return;for(i in this.result.WARNING){if(this.result.WARNING.hasOwnProperty(i)){switch(i.toUpperCase()){case"DELIVERY":if(this.deliveryBlockNode.getAttribute("data-visited")==="true"){this.showBlockWarning(this.deliveryBlockNode,this.result.WARNING[i],true);this.showBlockWarning(this.deliveryHiddenBlockNode,this.result.WARNING[i],true)}break;case"PAY_SYSTEM":if(this.paySystemBlockNode.getAttribute("data-visited")==="true"){this.showBlockWarning(this.paySystemBlockNode,this.result.WARNING[i],true);this.showBlockWarning(this.paySystemHiddenBlockNode,this.result.WARNING[i],true)}break}}}},notifyAboutWarnings:function(e){if(!BX.type.isDomNode(e))return;switch(e.id){case this.deliveryBlockNode.id:this.showBlockWarning(this.deliveryBlockNode,this.result.WARNING.DELIVERY,true);break;case this.paySystemBlockNode.id:this.showBlockWarning(this.paySystemBlockNode,this.result.WARNING.PAY_SYSTEM,true);break}},showBlockWarning:function(e,t,i){var s=e.querySelector(".alert.alert-danger"),a="",r,o,l;if(s){if(BX.type.isString(t)){a=t}else{for(r in t){if(t.hasOwnProperty(r)&&t[r]){a+=t[r]+"
"}}}if(!a){return}l=e.querySelectorAll(".alert.alert-warning");for(r in l){if(l.hasOwnProperty(r)&&BX.type.isDomNode(l[r])){if(l[r].innerHTML.indexOf(a)!==-1){return}}}o=BX.create("DIV",{props:{className:"alert alert-warning"+(!!i?" alert-hide":" alert-show")},html:a});BX.prepend(o,s.parentNode);BX.addClass(e,"bx-step-warning")}},showPagination:function(e,t){if(!t||!e)return;var i,s=[],a,r,o,l,n;switch(e){case"delivery":i=this.deliveryPagination;break;case"paySystem":i=this.paySystemPagination;break;case"pickUp":i=this.pickUpPagination;break}if(i.pages.length>1){s.push(BX.create("LI",{attrs:{"data-action":"prev","data-entity":e},props:{className:"bx-pag-prev"},html:i.pageNumber==1?""+this.params.MESS_NAV_BACK+"":''+this.params.MESS_NAV_BACK+"",events:{click:BX.proxy(this.doPagination,this)}}));for(a=0;a'+r+"",events:{click:BX.proxy(this.doPagination,this)}}))}s.push(BX.create("LI",{attrs:{"data-action":"next","data-entity":e},props:{className:"bx-pag-next"},html:i.pageNumber==i.pages.length?""+this.params.MESS_NAV_FORWARD+"":''+this.params.MESS_NAV_FORWARD+"",events:{click:BX.proxy(this.doPagination,this)}}));l=this.params.TEMPLATE_THEME||"";n=BX.create("DIV",{props:{className:"bx-pagination"+(l?" bx-"+l:"")},children:[BX.create("DIV",{props:{className:"bx-pagination-container"},children:[BX.create("UL",{children:s})]})]});t.appendChild(BX.create("DIV",{style:{clear:"both"}}));t.appendChild(n)}},doPagination:function(e){var t=e.target||e.srcElement,i=t.tagName=="LI"?t:BX.findParent(t,{tagName:"LI"}),s=i.getAttribute("data-action"),a=i.getAttribute("data-entity"),r;if(BX.hasClass(i,"bx-active"))return BX.PreventDefault(e);if(s=="prev"||s=="next"){r=parseInt(BX.findParent(i).querySelector(".bx-active").getAttribute("data-action"));s=s=="next"?++r:--r}if(a=="delivery")this.showDeliveryItemsPage(s);else if(a=="paySystem")this.showPaySystemItemsPage(s);else if(a=="pickUp")this.showPickUpItemsPage(s);return BX.PreventDefault(e)},showDeliveryItemsPage:function(e){this.getCurrentPageItems("delivery",e);var t=this.getSelectedDelivery(),i,s,a,r;if(t&&t.ID){i=this.deliveryBlockNode.querySelector("input[type=hidden][name=DELIVERY_ID]");if(!i){i=BX.create("INPUT",{props:{type:"hidden",name:"DELIVERY_ID",value:t.ID}})}}s=this.deliveryBlockNode.querySelector(".bx-soa-pp-item-container");BX.cleanNode(s);if(BX.type.isDomNode(i))BX.prepend(i,BX.findParent(s));for(a=0;a0){if(t<=0||t>i.pages.length)return;i.pageNumber=t;i.currentPage=i.pages.slice(i.pageNumber-1,i.pageNumber)[0]}},initPropsListForLocation:function(){if(BX.saleOrderAjax&&this.result.ORDER_PROP&&this.result.ORDER_PROP.properties){var e,t,i,s;BX.saleOrderAjax.cleanUp();for(e=0;e0){s.altLocationPropId=parseInt(i.INPUT_FIELD_LOCATION);this.deliveryLocationInfo.city=i.INPUT_FIELD_LOCATION}if(!this.deliveryLocationInfo.loc&&i.IS_LOCATION=="Y")this.deliveryLocationInfo.loc=i.ID;if(!this.deliveryLocationInfo.zip&&i.IS_ZIP=="Y"){s.isZip=true;this.deliveryLocationInfo.zip=i.ID}BX.saleOrderAjax.addPropertyDesc({id:i.ID,attributes:s})}}}},bindEvents:function(){BX.bind(this.orderSaveBlockNode.querySelector("[data-save-button]"),"click",BX.proxy(this.clickOrderSaveAction,this));BX.bind(window,"scroll",BX.proxy(this.totalBlockScrollCheck,this));BX.bind(window,"resize",BX.throttle(function(){this.totalBlockResizeCheck();this.alignBasketColumns();this.basketBlockScrollCheck();this.mapsReady&&this.resizeMapContainers()},50,this));BX.addCustomEvent("onDeliveryExtraServiceValueChange",BX.proxy(this.sendRequest,this))},initFirstSection:function(){var e=this.orderBlockNode.querySelector(".bx-soa-section.bx-active");BX.addClass(e,"bx-selected");this.activeSectionId=e.id},initOptions:function(){var e,t,i;this.initPropsListForLocation();this.propertyCollection=new BX.Sale.PropertyCollection(BX.merge({publicMode:true},this.result.ORDER_PROP));this.fadedPropertyCollection=new BX.Sale.PropertyCollection(BX.merge({publicMode:true},this.result.ORDER_PROP));if(this.options.propertyValidation)this.initValidation();this.initPagination();this.options.showPreviewPicInBasket=false;this.options.showDetailPicInBasket=false;this.options.showPropsInBasket=false;this.options.showPriceNotesInBasket=false;if(this.result.GRID&&this.result.GRID.HEADERS){e=this.result.GRID.HEADERS;for(t=0;t0;this.options.showPriceWithoutDiscount=parseFloat(i.ORDER_PRICE)0;this.options.showTaxList=i.TAX_LIST&&i.TAX_LIST.length;this.options.showPayedFromInnerBudget=i.PAYED_FROM_ACCOUNT_FORMATED&&i.PAYED_FROM_ACCOUNT_FORMATED.length}},reachGoal:function(e,t){var i=this.params.YM_GOALS_COUNTER||"",s=this.params.USE_YM_GOALS=="Y"&&typeof window["yaCounter"+i]!=="undefined",a;if(s){a=this.getGoalId(e,t);window["yaCounter"+i].reachGoal(a)}},getGoalId:function(e,t){if(!e)return"";if(e=="initialization")return this.params.YM_GOALS_INITIALIZE;if(e=="order")return this.params.YM_GOALS_SAVE_ORDER;var i="",s=e=="edit";if(!t||!t.id)return"";switch(t.id){case this.basketBlockNode.id:i=s?this.params.YM_GOALS_EDIT_BASKET:this.params.YM_GOALS_NEXT_BASKET;break;case this.regionBlockNode.id:i=s?this.params.YM_GOALS_EDIT_REGION:this.params.YM_GOALS_NEXT_REGION;break;case this.paySystemBlockNode.id:i=s?this.params.YM_GOALS_EDIT_PAY_SYSTEM:this.params.YM_GOALS_NEXT_PAY_SYSTEM;break;case this.deliveryBlockNode.id:i=s?this.params.YM_GOALS_EDIT_DELIVERY:this.params.YM_GOALS_NEXT_DELIVERY;break;case this.pickUpBlockNode.id:i=s?this.params.YM_GOALS_EDIT_PICKUP:this.params.YM_GOALS_NEXT_PICKUP;break;case this.propsBlockNode.id:i=s?this.params.YM_GOALS_EDIT_PROPERTIES:this.params.YM_GOALS_NEXT_PROPERTIES;break}return i},isPriceChanged:function(e){var t=this.result.TOTAL.ORDER_TOTAL_LEFT_TO_PAY===null||this.result.TOTAL.ORDER_TOTAL_LEFT_TO_PAY===""?this.result.TOTAL.ORDER_TOTAL_PRICE:this.result.TOTAL.ORDER_TOTAL_LEFT_TO_PAY,i=e.order.TOTAL.ORDER_TOTAL_LEFT_TO_PAY===null?e.order.TOTAL.ORDER_TOTAL_PRICE:e.order.TOTAL.ORDER_TOTAL_LEFT_TO_PAY;this.options.totalPriceChanged=parseFloat(t)!=parseFloat(i)},initValidation:function(){if(!this.result.ORDER_PROP||!this.result.ORDER_PROP.properties)return;var e=this.result.ORDER_PROP.properties,t={},i;for(i in e){if(e.hasOwnProperty(i))t[e[i].ID]=e[i]}this.validation.properties=t},initPagination:function(){var e,t,i,s;if(this.result.DELIVERY){this.result.DELIVERY=this.getDeliverySortedArray(this.result.DELIVERY);if(this.options.deliveriesPerPage>0&&this.result.DELIVERY.length>this.options.deliveriesPerPage){e=this.result.DELIVERY.slice();t=Math.ceil(e.length/this.options.deliveriesPerPage);i=[];for(s=0;s0&&this.result.PAY_SYSTEM.length>this.options.paySystemsPerPage){e=this.result.PAY_SYSTEM.slice();t=Math.ceil(e.length/this.options.paySystemsPerPage);i=[];for(s=0;s=0&&this.result.DELIVERY){for(s=0;s0;e=this.result.DELIVERY[s].STORE_MAIN.length>this.options.pickUpsPerPage;if(t)i=this.getPickUpInfoArray(this.result.DELIVERY[s].STORE_MAIN);break}}}if(t){if(this.options.pickUpsPerPage>0&&e){a=i.slice();r=Math.ceil(a.length/this.options.pickUpsPerPage);o=[];for(s=0;s0)n=r.top-d/2;else{if(o.top>a)n=o.top;else n=o.bottom+6-i+s;if(n+window.innerHeight>r.bottom+25+l)n=r.bottom+25+l-window.innerHeight}n-=this.isMobile?50:0}new BX.easing({duration:t?800:600,start:{height:i,scrollTop:a},finish:{height:s,scrollTop:n},transition:BX.easing.makeEaseOut(BX.easing.transitions.quad),step:function(i){e.style.height=i.height+"px";if(t)window.scrollTo(0,i.scrollTop)},complete:function(){e.style.height=""}}).animate();this.checkBlockErrors(e)},show:function(e){if(!e||!e.id||this.activeSectionId==e.id)return;this.activeSectionId=e.id;BX.removeClass(e,"bx-step-error bx-step-warning");switch(e.id){case this.authBlockNode.id:this.authBlockNode.style.display="";BX.addClass(this.authBlockNode,"bx-active");break;case this.basketBlockNode.id:this.editActiveBasketBlock(true);this.alignBasketColumns();break;case this.regionBlockNode.id:this.editActiveRegionBlock(true);break;case this.deliveryBlockNode.id:this.editActiveDeliveryBlock(true);break;case this.paySystemBlockNode.id:this.editActivePaySystemBlock(true);break;case this.pickUpBlockNode.id:this.editActivePickUpBlock(true);break;case this.propsBlockNode.id:this.editActivePropsBlock(true);break}if(e.getAttribute("data-visited")==="false"){this.showBlockErrors(e);this.notifyAboutWarnings(e)}e.setAttribute("data-visited","true");BX.addClass(e,"bx-selected");BX.removeClass(e,"bx-step-completed")},showByClick:function(e){var t=e.target||e.srcElement,i=BX.findParent(t,{className:"bx-active"}),s=BX(this.activeSectionId),a=BX.GetWindowScrollPos().scrollTop;if(!i||BX.hasClass(i,"bx-selected"))return BX.PreventDefault(e);this.reachGoal("edit",i);s&&this.fade(s);this.show(i);setTimeout(BX.delegate(function(){if(BX.pos(i).top0){BX.addClass(this.deliveryBlockNode,"bx-active");this.deliveryBlockNode.removeAttribute("style")}else{BX.removeClass(this.deliveryBlockNode,"bx-active");this.deliveryBlockNode.style.display="none"}this.orderSaveBlockNode.style.display=this.result.SHOW_AUTH?"none":"";this.mobileTotalBlockNode.style.display=this.result.SHOW_AUTH?"none":"";this.checkPickUpShow();var e=this.orderBlockNode.querySelectorAll(".bx-soa-section.bx-active"),t;for(t in e){if(e.hasOwnProperty(t)){this.editSection(e[t])}}this.editTotalBlock();this.totalBlockFixFont();this.showErrors(this.result.ERROR,false);this.showWarnings()},editSection:function(e){if(!e||!e.id)return;if(this.result.SHOW_AUTH&&e.id!=this.authBlockNode.id&&e.id!=this.basketBlockNode.id)e.style.display="none";else if(e.id!=this.pickUpBlockNode.id)e.style.display="";var t=e.id==this.activeSectionId,i=e.querySelector(".bx-soa-section-title-container"),s,a;BX.unbindAll(i);if(this.result.SHOW_AUTH){BX.bind(i,"click",BX.delegate(function(){this.animateScrollTo(this.authBlockNode);this.addAnimationEffect(this.authBlockNode,"bx-step-good")},this))}else{BX.bind(i,"click",BX.proxy(this.showByClick,this));s=i.querySelector(".bx-soa-editstep");s&&BX.bind(s,"click",BX.proxy(this.showByClick,this))}a=e.querySelector(".alert.alert-danger");this.hasErrorSection[e.id]=a&&a.style.display!="none";switch(e.id){case this.authBlockNode.id:this.editAuthBlock();break;case this.basketBlockNode.id:this.editBasketBlock(t);break;case this.regionBlockNode.id:this.editRegionBlock(t);break;case this.paySystemBlockNode.id:this.editPaySystemBlock(t);break;case this.deliveryBlockNode.id:this.editDeliveryBlock(t);break;case this.pickUpBlockNode.id:this.editPickUpBlock(t);break;case this.propsBlockNode.id:this.editPropsBlock(t);break}if(t)e.setAttribute("data-visited","true")},editAuthBlock:function(){if(!this.authBlockNode)return;var e=this.authBlockNode.querySelector(".bx-soa-section-content"),t,i;if(BX.hasClass(e,"reg")){t=e;e=BX.firstChild(this.authHiddenBlockNode)}else t=BX.firstChild(this.authHiddenBlockNode);BX.cleanNode(e);BX.cleanNode(t);if(this.result.SHOW_AUTH){this.getErrorContainer(e);this.editAuthorizeForm(e);this.editSocialContent(e);this.getAuthReference(e);this.getErrorContainer(t);this.editRegistrationForm(t);this.getAuthReference(t)}else{BX.onCustomEvent("OnBasketChange");this.closeAuthBlock()}if(this.result.OK_MESSAGE&&this.result.OK_MESSAGE.length){this.toggleAuthForm({target:this.authBlockNode.querySelector("input[type=submit]")});i=BX.create("DIV",{props:{className:"alert alert-success"},text:this.result.OK_MESSAGE.join()});this.result.OK_MESSAGE="";BX.prepend(i,this.authBlockNode.querySelector(".bx-soa-section-content"))}},editAuthorizeForm:function(e){var t,i,s,a,r;t=this.createAuthFormInputContainer(BX.message("STOF_LOGIN"),BX.create("INPUT",{attrs:{"data-next":"USER_PASSWORD"},props:{className:"form-control",name:"USER_LOGIN",type:"text",value:this.result.AUTH.USER_LOGIN,maxlength:"30"},events:{keypress:BX.proxy(this.checkKeyPress,this)}}));i=this.createAuthFormInputContainer(BX.message("STOF_PASSWORD"),BX.create("INPUT",{attrs:{"data-send":true},props:{className:"form-control",name:"USER_PASSWORD",type:"password",value:"",maxlength:"30"},events:{keypress:BX.proxy(this.checkKeyPress,this)}}));s=BX.create("DIV",{props:{className:"form-check mb-3"},children:[BX.create("INPUT",{props:{className:"form-check-input",id:"authRememberCheckbox",type:"checkbox",name:"USER_REMEMBER",value:"Y"}}),BX.create("LABEL",{attrs:{className:"form-check-label",for:"authRememberCheckbox"},text:BX.message("STOF_REMEMBER")})]});a=BX.create("DIV",{children:[BX.create("INPUT",{props:{id:"do_authorize",type:"hidden",name:"do_authorize",value:"N"}}),BX.create("INPUT",{props:{type:"submit",className:"btn btn-lg btn-primary",value:BX.message("STOF_ENTER")},events:{click:BX.delegate(function(e){BX("do_authorize").value="Y";this.sendRequest("showAuthForm");return BX.PreventDefault(e)},this)}}),BX.create("A",{props:{className:"btn btn-link",href:this.params.PATH_TO_AUTH+"?forgot_password=yes&back_url="+encodeURIComponent(document.location.href)},text:BX.message("STOF_FORGET_PASSWORD")})]});r=BX.create("DIV",{props:{className:"bx-authform"},children:[BX.create("H3",{props:{className:"bx-title"},text:BX.message("STOF_AUTH_REQUEST")}),t,i,s,a]});e.appendChild(BX.create("DIV",{props:{className:"col-md-6"},children:[r]}))},createAuthFormInputContainer:function(e,t,i){if(i)e+='*';var s=BX.create("LABEL",{children:[e]});return BX.create("DIV",{props:{className:"form-group mb-3"},children:[s,t]})},editRegistrationForm:function(e){if(!this.result.AUTH)return;var t=[];t.push(BX.create("H3",{props:{className:"bx-title"},text:BX.message("STOF_REG_REQUEST")}));t.push(this.createAuthFormInputContainer(BX.message("STOF_NAME"),BX.create("INPUT",{attrs:{"data-next":"NEW_LAST_NAME"},props:{name:"NEW_NAME",type:"text",size:40,value:this.result.AUTH.NEW_NAME||""},events:{keypress:BX.proxy(this.checkKeyPress,this)}}),true));t.push(this.createAuthFormInputContainer(BX.message("STOF_LASTNAME"),BX.create("INPUT",{attrs:{"data-next":"NEW_EMAIL"},props:{name:"NEW_LAST_NAME",type:"text",size:40,value:this.result.AUTH.NEW_LAST_NAME||""},events:{keypress:BX.proxy(this.checkKeyPress,this)}}),true));t.push(this.createAuthFormInputContainer(BX.message("STOF_EMAIL"),BX.create("INPUT",{attrs:{"data-next":"captcha_word"},props:{name:"NEW_EMAIL",type:"text",size:40,value:this.result.AUTH.NEW_EMAIL||""},events:{keypress:BX.proxy(this.checkKeyPress,this)}}),this.result.AUTH.new_user_email_required=="Y"));if(this.result.AUTH.new_user_registration_email_confirmation!="Y"){t.push(BX.create("LABEL",{props:{for:"NEW_GENERATE_N"},children:[BX.create("INPUT",{attrs:{checked:!this.authGenerateUser},props:{id:"NEW_GENERATE_N",type:"radio",name:"NEW_GENERATE",value:"N"}}),BX.message("STOF_MY_PASSWORD")],events:{change:BX.delegate(function(){var e=this.authBlockNode.querySelector(".generated");e.style.display="";this.authGenerateUser=false},this)}}));t.push(BX.create("BR"));t.push(BX.create("LABEL",{props:{for:"NEW_GENERATE_Y"},children:[BX.create("INPUT",{attrs:{checked:this.authGenerateUser},props:{id:"NEW_GENERATE_Y",type:"radio",name:"NEW_GENERATE",value:"Y"}}),BX.message("STOF_SYS_PASSWORD")],events:{change:BX.delegate(function(){var e=this.authBlockNode.querySelector(".generated");e.style.display="none";this.authGenerateUser=true},this)}}))}t.push(BX.create("DIV",{props:{className:"generated"},style:{display:this.authGenerateUser?"none":""},children:[this.createAuthFormInputContainer(BX.message("STOF_LOGIN"),BX.create("INPUT",{props:{name:"NEW_LOGIN",type:"text",size:30,value:this.result.AUTH.NEW_LOGIN||""},events:{keypress:BX.proxy(this.checkKeyPress,this)}}),true),this.createAuthFormInputContainer(BX.message("STOF_PASSWORD"),BX.create("INPUT",{props:{name:"NEW_PASSWORD",type:"password",size:30},events:{keypress:BX.proxy(this.checkKeyPress,this)}}),true),this.createAuthFormInputContainer(BX.message("STOF_RE_PASSWORD"),BX.create("INPUT",{props:{name:"NEW_PASSWORD_CONFIRM",type:"password",size:30},events:{keypress:BX.proxy(this.checkKeyPress,this)}}),true)]}));if(this.result.AUTH.captcha_registration=="Y"){t.push(BX.create("DIV",{props:{className:"bx-authform-formgroup-container"},children:[BX.create("DIV",{props:{className:"bx-authform-label-container"},children:[BX.create("SPAN",{props:{className:"bx-authform-starrequired"},text:"*"}),BX.message("CAPTCHA_REGF_PROMT"),BX.create("DIV",{props:{className:"bx-captcha"},children:[BX.create("INPUT",{props:{name:"captcha_sid",type:"hidden",value:this.result.AUTH.capCode||""}}),BX.create("IMG",{props:{src:"/bitrix/tools/captcha.php?captcha_sid="+this.result.AUTH.capCode,alt:""}})]})]}),BX.create("DIV",{props:{className:"bx-authform-input-container"},children:[BX.create("INPUT",{attrs:{"data-send":true},props:{name:"captcha_word",type:"text",size:"30",maxlength:"50",value:""},events:{keypress:BX.proxy(this.checkKeyPress,this)}})]})]}))}t.push(BX.create("DIV",{props:{className:"bx-authform-formgroup-container"},children:[BX.create("INPUT",{props:{id:"do_register",name:"do_register",type:"hidden",value:"N"}}),BX.create("INPUT",{props:{type:"submit",className:"btn btn-lg btn-primary",value:BX.message("STOF_REGISTER")},events:{click:BX.delegate(function(e){BX("do_register").value="Y";this.sendRequest("showAuthForm");return BX.PreventDefault(e)},this)}}),BX.create("A",{props:{className:"btn btn-link",href:""},text:BX.message("STOF_DO_AUTHORIZE"),events:{click:BX.delegate(function(e){this.toggleAuthForm(e);return BX.PreventDefault(e)},this)}})]}));e.appendChild(BX.create("DIV",{props:{className:"col-md-12"},children:[BX.create("DIV",{props:{className:"bx-authform"},children:t})]}))},editSocialContent:function(e){if(!BX("bx-soa-soc-auth-services"))return;var t=[],i=BX("bx-soa-soc-auth-services").querySelector(".bx-authform-social");if(i){if(this.socServiceHiddenNode===false){this.socServiceHiddenNode=i.innerHTML;BX.remove(i)}t.push(BX.create("DIV",{props:{className:"bx-authform-social"},html:'

'+BX.message("SOA_DO_SOC_SERV")+"

"+this.socServiceHiddenNode}));t.push(BX.create("hr",{props:{className:"bxe-light"}}))}if(this.result.AUTH.new_user_registration==="Y"){t.push(BX.create("DIV",{props:{className:"bx-soa-reg-block"},children:[BX.create("P",{html:this.params.MESS_REGISTRATION_REFERENCE}),BX.create("A",{props:{className:"btn btn-primary btn-lg"},text:BX.message("STOF_DO_REGISTER"),events:{click:BX.delegate(function(e){this.toggleAuthForm(e);return BX.PreventDefault(e)},this)}})]}))}e.appendChild(BX.create("DIV",{props:{className:"col-md-6"},children:t}))},getAuthReference:function(e){e.appendChild(BX.create("DIV",{props:{className:"row"},children:[BX.create("DIV",{props:{className:"bx-soa-reference col"},children:[this.params.MESS_AUTH_REFERENCE_1,BX.create("BR"),this.params.MESS_AUTH_REFERENCE_2,BX.create("BR"),this.params.MESS_AUTH_REFERENCE_3]})]}))},toggleAuthForm:function(e){if(!e)return;var t=e.target||e.srcElement,i=BX.findParent(t,{className:"bx-soa-section"}),s=BX.findParent(t,{className:"bx-soa-section-content"}),a=BX.firstChild(this.authHiddenBlockNode);new BX.easing({duration:100,start:{opacity:100},finish:{opacity:0},transition:BX.easing.makeEaseOut(BX.easing.transitions.quad),step:function(e){s.style.opacity=e.opacity/100}}).animate();this.authHiddenBlockNode.appendChild(s);BX.cleanNode(i);i.appendChild(BX.create("DIV",{props:{className:"bx-soa-section-title-container"},children:[BX.create("div",{attrs:{"data-entity":"section-title"},props:{className:"bx-soa-section-title"},html:BX.hasClass(a,"reg")?this.params.MESS_REG_BLOCK_NAME:this.params.MESS_AUTH_BLOCK_NAME})]}));a.style.opacity=0;i.appendChild(a);setTimeout(function(){new BX.easing({duration:100,start:{opacity:0},finish:{opacity:100},transition:BX.easing.makeEaseOut(BX.easing.transitions.quart),step:function(e){a.style.opacity=e.opacity/100},complete:function(){a.style.height="";a.style.opacity=""}}).animate()},110);this.animateScrollTo(i)},alignBasketColumns:function(){if(!this.basketBlockNode)return;var e=0,t,i=0,s,a=BX.GetWindowInnerSize(),r,o;if(a.innerWidth>580&&a.innerWidth<992){r=this.basketBlockNode.querySelectorAll(".bx-soa-basket-info");o=100;if(r.length){s=r[0].querySelectorAll(".bx-soa-item-properties");if(s.length&&s[0].style.width!="")return;i=s.length;if(i>0){i=i>4?4:i;o=parseInt(o/i);for(;e'+i+""}if(this.options.showPropsInBasket&&s.length){for(var r in s){if(s.hasOwnProperty(r)){var o=s[r].NAME||"",l=s[r].VALUE||"";a.push(BX.create("DIV",{props:{className:"bx-soa-item-td-title"},style:{textAlign:"left"},text:o}));a.push(BX.create("DIV",{props:{className:"bx-soa-item-td-text"},style:{textAlign:"left"},text:l}))}}}return BX.create("DIV",{props:{className:"bx-soa-item-content"},children:a.length?[BX.create("DIV",{props:{className:"bx-soa-item-title"},html:i}),BX.create("DIV",{props:{className:"bx-scu-container"},children:a})]:[BX.create("DIV",{props:{className:"bx-soa-item-title"},html:i})]})},createBasketItemColumn:function(e,t,i){if(!e||!t)return;var s=t.columns[e.id]?t.columns:t.data,a=BX.util.in_array(e.id,["QUANTITY","PRICE_FORMATED","DISCOUNT_PRICE_PERCENT_FORMATED","SUM"]),r=BX.create("DIV",{props:{className:"bx-soa-item-td-text"}}),o,l;if(e.id==="PRICE_FORMATED"){r.appendChild(BX.create("STRONG",{props:{className:"bx-price"},html:s.PRICE_FORMATED}));if(parseFloat(s.DISCOUNT_PRICE)>0){r.appendChild(BX.create("BR"));r.appendChild(BX.create("STRONG",{props:{className:"bx-price-old"},html:s.BASE_PRICE_FORMATED}))}if(this.options.showPriceNotesInBasket&&i){r.appendChild(BX.create("BR"));r.appendChild(BX.create("SMALL",{text:s.NOTES}))}}else if(e.id==="SUM"){r.appendChild(BX.create("STRONG",{props:{className:"bx-price all"},html:s.SUM}));if(parseFloat(s.DISCOUNT_PRICE)>0){r.appendChild(BX.create("BR"));r.appendChild(BX.create("STRONG",{props:{className:"bx-price-old"},html:s.SUM_BASE_FORMATED}))}}else if(e.id==="DISCOUNT"){r.appendChild(BX.create("STRONG",{props:{className:"bx-price"},text:s.DISCOUNT_PRICE_PERCENT_FORMATED}))}else if(e.id==="DETAIL_PICTURE"){o=this.getImageSources(t.data,e.id),l=BX.create("IMG",{props:{src:o&&o.src_1x||this.defaultBasketItemLogo}});if(o&&o.src_1x&&o.src_orig){BX.bind(l,"click",BX.delegate(function(e){this.popupShow(e,o.src_orig)},this))}r.appendChild(l)}else if(BX.util.in_array(e.id,["QUANTITY","WEIGHT_FORMATED","DISCOUNT_PRICE_PERCENT_FORMATED"])){r.appendChild(BX.create("SPAN",{html:s[e.id]}))}else if(e.id==="PREVIEW_TEXT"){if(s["PREVIEW_TEXT_TYPE"]==="html"){r.appendChild(BX.create("SPAN",{html:s["PREVIEW_TEXT"]||""}))}else{r.appendChild(BX.create("SPAN",{text:s["PREVIEW_TEXT"]||""}))}}else{var n=s[e.id],c=[];if(BX.type.isArray(n)){for(var p in n){if(n.hasOwnProperty(p)){if(n[p].type=="image")c.push(this.getImageContainer(n[p].value,n[p].source));else if(n[p].type=="linked"){r.appendChild(BX.create("SPAN",{html:n[p].value_format}));r.appendChild(BX.create("BR"))}else if(n[p].value){r.appendChild(BX.create("SPAN",{html:n[p].value}));r.appendChild(BX.create("BR"))}}}if(c.length){r.appendChild(BX.create("DIV",{props:{className:"bx-scu-list"},children:[BX.create("UL",{props:{className:"bx-scu-itemlist"},children:c})]}))}}else if(n){r.appendChild(BX.create("SPAN",{html:BX.util.htmlspecialchars(n)}))}}return BX.create("DIV",{props:{className:"bx-soa-item-td bx-soa-item-properties"+(a?" bx-text-right":"")},children:[BX.create("DIV",{props:{className:"bx-soa-item-td-title d-none d-md-block d-lg-none"},text:e.name}),r]})},createBasketItemHiddenColumn:function(e,t){if(!e||!t)return;var i=t.columns[e.id]?t.columns:t.data,s=BX.create("TD",{props:{className:"bx-soa-info-text"}}),a,r,o;if(e.id==="PROPS"){var l=[],n=t.data.PROPS;if(n&&n.length){for(o in n){if(n.hasOwnProperty(o)){var c=n[o].NAME||"",p=n[o].VALUE||"";if(p.length==0)continue;l.push(BX.create("TR",{props:{className:"bx-soa-info-line"},children:[BX.create("TD",{props:{className:"bx-soa-info-title"},text:c+":"}),BX.create("TD",{props:{className:"bx-soa-info-text"},html:BX.util.htmlspecialchars(p)})]}))}}return l}else return}else if(e.id==="PRICE_FORMATED"){s.appendChild(BX.create("STRONG",{props:{className:"bx-price"},html:i.PRICE_FORMATED}));if(parseFloat(i.DISCOUNT_PRICE)>0){s.appendChild(BX.create("BR"));s.appendChild(BX.create("STRONG",{props:{className:"bx-price-old"},html:i.BASE_PRICE_FORMATED}))}}else if(e.id==="SUM")s.appendChild(BX.create("STRONG",{props:{className:"bx-price all"},text:i.SUM}));else if(e.id==="DISCOUNT")s.appendChild(BX.create("STRONG",{props:{className:"bx-price"},text:i.DISCOUNT_PRICE_PERCENT_FORMATED}));else if(e.id==="DETAIL_PICTURE"||e.id==="PREVIEW_PICTURE"){a=this.getImageSources(t.data,e.id),r=BX.create("IMG",{props:{src:a&&a.src_1x||this.defaultBasketItemLogo},style:{maxWidth:"50%"}});if(a&&a.src_1x&&a.src_orig){BX.bind(r,"click",BX.delegate(function(e){this.popupShow(e,a.src_orig)},this))}s.appendChild(r)}else if(BX.util.in_array(e.id,["QUANTITY","WEIGHT_FORMATED","DISCOUNT_PRICE_PERCENT_FORMATED"])){s.appendChild(BX.create("SPAN",{html:i[e.id]}))}else if(e.id==="PREVIEW_TEXT"){if(i["PREVIEW_TEXT_TYPE"]==="html"){s.appendChild(BX.create("SPAN",{html:i["PREVIEW_TEXT"]||""}))}else{s.appendChild(BX.create("SPAN",{text:i["PREVIEW_TEXT"]||""}))}}else{var h=i[e.id],d=[];if(BX.type.isArray(h)){for(o in h){if(h.hasOwnProperty(o)){if(h[o].type=="image")d.push(this.getImageContainer(h[o].value,h[o].source));else if(h[o].type=="linked"){s.appendChild(BX.create("SPAN",{html:h[o].value_format}));s.appendChild(BX.create("BR"))}else if(h[o].value){s.appendChild(BX.create("SPAN",{html:h[o].value}));s.appendChild(BX.create("BR"))}else return}}if(d.length){s.appendChild(BX.create("DIV",{props:{className:"bx-scu-list"},children:[BX.create("UL",{props:{className:"bx-scu-itemlist"},children:d})]}))}}else if(h){s.appendChild(BX.create("SPAN",{html:BX.util.htmlspecialchars(h)}))}else{return}}return BX.create("TR",{props:{className:"bx-soa-info-line"},children:[BX.create("TD",{props:{className:"bx-soa-info-title"},text:e.name+":"}),s]})},popupShow:function(e,t,i){if(this.popup)this.popup.destroy();var s=this;this.popup=new BX.PopupWindow("bx-soa-image-popup",null,{lightShadow:true,offsetTop:0,offsetLeft:0,closeIcon:{top:"3px",right:"10px"},autoHide:true,bindOptions:{position:"bottom"},closeByEsc:true,zIndex:100,events:{onPopupShow:function(){BX.create("IMG",{props:{src:i||t},events:{load:function(){var e=BX("bx-soa-image-popup-content");if(e){var t=BX.GetWindowInnerSize(),i=this.isMobile?.5:.9,a,r;BX.cleanNode(e);e.appendChild(this);a=e.offsetHeight;r=e.offsetWidth;if(a>t.innerHeight*i){e.style.height=t.innerHeight*i+"px";e.style.width=r*(t.innerHeight*i/a)+"px";a=e.offsetHeight;r=e.offsetWidth}if(r>t.innerWidth*i){e.style.width=t.innerWidth*i+"px";e.style.height=a*(t.innerWidth*i/r)+"px"}e.style.height=e.offsetHeight+"px";e.style.width=e.offsetWidth+"px";s.popup.adjustPosition()}}}})},onPopupClose:function(){this.destroy()}},content:BX.create("DIV",{props:{id:"bx-soa-image-popup-content"},children:[BX.create("IMG",{props:{src:this.templateFolder+"/images/loader.gif"}})]})});this.popup.show()},getImageContainer:function(e,t){return BX.create("LI",{props:{className:"bx-img-item"},children:[BX.create("DIV",{props:{className:"bx-scu-itemColorBlock"},children:[BX.create("DIV",{props:{className:"bx-img-itemColor"},style:{backgroundImage:"url("+e+")"}})],events:{click:BX.delegate(function(i){this.popupShow(i,e,t)},this)}})]})},editCoupons:function(e){var t=this.getCouponsList(true),i=this.getCouponsLabel(true),s=BX.create("DIV",{props:{className:"bx-soa-coupon-block"},children:[BX.create("DIV",{props:{className:"bx-soa-coupon-input"},children:[BX.create("INPUT",{props:{className:"form-control bx-ios-fix",type:"text"},events:{change:BX.delegate(function(e){var t=BX.getEventTarget(e);if(t&&t.value){this.sendRequest("enterCoupon",t.value);t.value=""}},this)}})]}),BX.create("SPAN",{props:{className:"bx-soa-coupon-item"},children:t})]});e.appendChild(BX.create("DIV",{props:{className:"bx-soa-coupon"},children:[i,s]}))},editCouponsFade:function(e){if(this.result.COUPON_LIST.length<1)return;var t=this.getCouponsList(false),i,s;if(t.length){i=this.getCouponsLabel(false);s=BX.create("DIV",{props:{className:"bx-soa-coupon-block"},children:[BX.create("DIV",{props:{className:"bx-soa-coupon-list"},children:[BX.create("DIV",{props:{className:"bx-soa-coupon-item"},children:[i].concat(t)})]})]});e.appendChild(BX.create("DIV",{props:{className:"bx-soa-coupon bx-soa-coupon-item-fixed"},children:[s]}))}},getCouponsList:function(e){var t=[],i;for(i=0;i1){s+=""+this.params.MESS_PERSON_TYPE+": "+BX.util.htmlspecialchars(t.NAME)+"
"}if(t){c="PROPS_FADE_LIST_"+t.ID;a=this.params[c]||[]}for(p in this.result.ORDER_PROP.properties){if(this.result.ORDER_PROP.properties.hasOwnProperty(p)){if(this.result.ORDER_PROP.properties[p].IS_LOCATION=="Y"&&this.result.ORDER_PROP.properties[p].ID==this.deliveryLocationInfo.loc){r=this.result.ORDER_PROP.properties[p]}else if(this.result.ORDER_PROP.properties[p].IS_ZIP=="Y"&&this.result.ORDER_PROP.properties[p].ID==this.deliveryLocationInfo.zip){n=this.result.ORDER_PROP.properties[p];for(h=0;h"+BX.util.htmlspecialchars(r.NAME)+": "+BX.util.htmlspecialchars(d)+"
";if(n&&l.length)s+=""+BX.util.htmlspecialchars(n.NAME)+": "+BX.util.htmlspecialchars(l);e.innerHTML+=s;if(this.regionBlockNode.getAttribute("data-visited")=="true"){u=this.isValidRegionBlock();if(u.length){BX.addClass(this.regionBlockNode,"bx-step-error");this.showError(this.regionBlockNode,u)}else BX.removeClass(this.regionBlockNode,"bx-step-error")}BX.bind(e.querySelector(".alert.alert-danger"),"click",BX.proxy(this.showByClick,this));BX.bind(e.querySelector(".alert.alert-warning"),"click",BX.proxy(this.showByClick,this))},getSelectedPersonType:function(){var e,t,i,s,a=this.result.PERSON_TYPE.length;if(a==1){e=this.regionBlockNode.querySelector("input[type=hidden][name=PERSON_TYPE]");if(!e)e=this.regionHiddenBlockNode.querySelector("input[type=hidden][name=PERSON_TYPE]")}else if(a==2){e=this.regionBlockNode.querySelector("input[type=radio][name=PERSON_TYPE]:checked");if(!e)e=this.regionHiddenBlockNode.querySelector("input[type=radio][name=PERSON_TYPE]:checked")}else{e=this.regionBlockNode.querySelector("select[name=PERSON_TYPE] > option:checked");if(!e)e=this.regionHiddenBlockNode.querySelector("select[name=PERSON_TYPE] > option:checked")}if(e){i=e.value;for(s in this.result.PERSON_TYPE){if(this.result.PERSON_TYPE[s].ID==i){t=this.result.PERSON_TYPE[s];break}}}return t},getDeliveryLocationInput:function(e){var t,i,s,a,r,o,l,n,c,p,h,d,u;for(r in this.result.ORDER_PROP.properties){if(this.result.ORDER_PROP.properties.hasOwnProperty(r)){t=this.result.ORDER_PROP.properties[r];if(t.IS_LOCATION=="Y"){i=t.ID;s=parseInt(t.INPUT_FIELD_LOCATION);break}}}a=this.locations[i];if(a&&a[0]&&a[0].output){this.regionBlockNotEmpty=true;l='";n=a[0].output;c=BX.create("DIV",{attrs:{"data-property-id-row":i},props:{className:"form-group bx-soa-location-input-container"},style:{visibility:"hidden"},html:l+n.HTML});e.appendChild(c);e.appendChild(BX.create("INPUT",{props:{type:"hidden",name:"RECENT_DELIVERY_VALUE",value:a[0].lastValue}}));for(r in n.SCRIPT)if(n.SCRIPT.hasOwnProperty(r))BX.evalGlobal(n.SCRIPT[r].JS)}if(a&&a[0]&&a[0].showAlt&&s>0){for(r in this.result.ORDER_PROP.properties){if(parseInt(this.result.ORDER_PROP.properties[r].ID)==s){o=this.result.ORDER_PROP.properties[r];break}}}if(o){u=BX.create("DIV",{attrs:{"data-property-id-row":o.ID},props:{className:"form-group bx-soa-location-input-container"}});p=o.REQUIRED=="Y"?'* ':"";p+=BX.util.htmlspecialchars(o.NAME);h=BX.create("LABEL",{attrs:{for:"altProperty"},props:{className:"bx-soa-custom-label"},html:p});d=BX.create("INPUT",{props:{id:"altProperty",type:"text",placeholder:o.DESCRIPTION,autocomplete:"city",className:"form-control bx-soa-customer-input bx-ios-fix",name:"ORDER_PROP_"+o.ID,value:o.VALUE}});u.appendChild(h);u.appendChild(d);e.appendChild(u);this.bindValidation(o.ID,u)}this.getZipLocationInput(e);if(a&&a[0]){e.appendChild(BX.create("DIV",{props:{className:"bx-soa-reference"},html:this.params.MESS_REGION_REFERENCE}))}},getLocationString:function(e){if(!e)return"";var t=e.querySelector(".bx-ui-sls-route"),i="",s,a,r;if(t&&t.value&&t.value.length)i=t.value;else{s=e.querySelectorAll(".bx-ui-combobox-fake.bx-combobox-fake-as-input");for(a=s.length;a--;){if(s[a].innerHTML.indexOf("...")>=0)continue;if(s[a].innerHTML.indexOf("---")>=0){r=BX("altProperty");if(r&&r.value.length)i+=r.value;continue}if(i.length)i+=", ";i+=s[a].innerHTML}if(i.length==0)i=BX.message("SOA_NOT_SPECIFIED")}return i},getZipLocationInput:function(e){var t,i,s,a,r,o;for(i in this.result.ORDER_PROP.properties){if(this.result.ORDER_PROP.properties.hasOwnProperty(i)&&this.result.ORDER_PROP.properties[i].IS_ZIP=="Y"){t=this.result.ORDER_PROP.properties[i];break}}if(t){this.regionBlockNotEmpty=true;s=BX.create("DIV",{props:{className:"form-group bx-soa-location-input-container"}});s.setAttribute("data-property-id-row",t.ID);a=t.REQUIRED=="Y"?'* ':"";a+=BX.util.htmlspecialchars(t.NAME);r=BX.create("LABEL",{attrs:{for:"zipProperty"},props:{className:"bx-soa-custom-label"},html:a});o=BX.create("INPUT",{props:{id:"zipProperty",type:"text",placeholder:t.DESCRIPTION,autocomplete:"zip",className:"form-control bx-soa-customer-input bx-ios-fix",name:"ORDER_PROP_"+t.ID,value:t.VALUE}});s.appendChild(r);s.appendChild(o);e.appendChild(s);e.appendChild(BX.create("input",{props:{id:"ZIP_PROPERTY_CHANGED",name:"ZIP_PROPERTY_CHANGED",type:"hidden",value:this.result.ZIP_PROPERTY_CHANGED||"N"}}));this.bindValidation(t.ID,s)}},getPersonTypeSortedArray:function(e){var t=[],i;for(i in e){if(e.hasOwnProperty(i)){t.push(e[i])}}return t.sort(function(e,t){return parseInt(e.SORT)-parseInt(t.SORT)})},getPersonTypeControl:function(e){if(!this.result.PERSON_TYPE)return;this.result.PERSON_TYPE=this.getPersonTypeSortedArray(this.result.PERSON_TYPE);var t=this.result.PERSON_TYPE.length,i,s,a,r,o=[],l,n=false;if(t>1){r=BX.create("DIV",{props:{className:"form-check-group"},children:[BX.create("LABEL",{props:{className:"bx-soa-custom-label"},html:this.params.MESS_PERSON_TYPE})]});e.appendChild(r);e=r}if(t>2){for(a in this.result.PERSON_TYPE){if(this.result.PERSON_TYPE.hasOwnProperty(a)){i=this.result.PERSON_TYPE[a];o.push(BX.create("OPTION",{props:{value:i.ID,selected:i.CHECKED=="Y"},text:i.NAME}));if(i.CHECKED=="Y")s=i.ID}}e.appendChild(BX.create("SELECT",{props:{name:"PERSON_TYPE",className:"form-control"},children:o,events:{change:BX.proxy(this.sendRequest,this)}}));this.regionBlockNotEmpty=true}else if(t==2){for(a in this.result.PERSON_TYPE){if(this.result.PERSON_TYPE.hasOwnProperty(a)){i=this.result.PERSON_TYPE[a];var c=BX.create("div",{attrs:{className:"form-check"},children:[BX.create("INPUT",{attrs:{className:"form-check-input",id:"radio"+i.ID,checked:i.CHECKED=="Y"},props:{type:"radio",name:"PERSON_TYPE",value:i.ID}}),BX.create("LABEL",{attrs:{className:"form-check-label",for:"radio"+i.ID},text:BX.util.htmlspecialchars(i.NAME),events:{change:BX.proxy(this.sendRequest,this)}})],events:{change:BX.proxy(this.sendRequest,this)}});e.appendChild(c);n=true;if(i.CHECKED=="Y")s=i.ID}}this.regionBlockNotEmpty=true}else{for(a in this.result.PERSON_TYPE)if(this.result.PERSON_TYPE.hasOwnProperty(a))e.appendChild(BX.create("INPUT",{props:{type:"hidden",name:"PERSON_TYPE",value:this.result.PERSON_TYPE[a].ID}}))}if(s){e.appendChild(BX.create("INPUT",{props:{type:"hidden",name:"PERSON_TYPE_OLD",value:s}}))}},getProfilesControl:function(e){var t=BX.util.object_keys(this.result.USER_PROFILES).length,i,s,a=[],r,o;if(t){if(this.params.ALLOW_USER_PROFILES==="Y"&&(t>1||this.params.ALLOW_NEW_PROFILE==="Y")){this.regionBlockNotEmpty=true;s=BX.create("LABEL",{props:{className:"bx-soa-custom-label"},html:this.params.MESS_SELECT_PROFILE});for(i in this.result.USER_PROFILES){if(this.result.USER_PROFILES.hasOwnProperty(i)){a.unshift(BX.create("OPTION",{props:{value:this.result.USER_PROFILES[i].ID,selected:this.result.USER_PROFILES[i].CHECKED==="Y"},html:this.result.USER_PROFILES[i].NAME}))}}if(this.params.ALLOW_NEW_PROFILE==="Y"){a.unshift(BX.create("OPTION",{props:{value:0},text:BX.message("SOA_PROP_NEW_PROFILE")}))}r=BX.create("INPUT",{props:{type:"hidden",value:"N",id:"profile_change",name:"profile_change"}});o=BX.create("SELECT",{props:{className:"form-control",name:"PROFILE_ID"},children:a,events:{change:BX.delegate(function(){BX("profile_change").value="Y";this.sendRequest()},this)}});e.appendChild(BX.create("DIV",{props:{className:"form-group bx-soa-location-input-container"},children:[s,r,o]}))}else{for(i in this.result.USER_PROFILES){if(this.result.USER_PROFILES.hasOwnProperty(i)&&this.result.USER_PROFILES[i].CHECKED==="Y"){e.appendChild(BX.create("INPUT",{props:{name:"PROFILE_ID",type:"hidden",value:this.result.USER_PROFILES[i].ID}}))}}}}},editPaySystemBlock:function(e){if(!this.paySystemBlockNode||!this.paySystemHiddenBlockNode||!this.result.PAY_SYSTEM)return;if(e)this.editActivePaySystemBlock(true);else this.editFadePaySystemBlock();this.initialized.paySystem=true},editActivePaySystemBlock:function(e){var t=e?this.paySystemBlockNode:this.paySystemHiddenBlockNode,i,s;if(this.initialized.paySystem){BX.remove(BX.lastChild(t));t.appendChild(BX.firstChild(this.paySystemHiddenBlockNode))}else{i=t.querySelector(".bx-soa-section-content");if(!i){i=this.getNewContainer();t.appendChild(i)}else BX.cleanNode(i);this.getErrorContainer(i);s=BX.create("DIV",{props:{className:"bx-soa-pp row"}});this.editPaySystemItems(s);i.appendChild(s);this.editPaySystemInfo(s);if(this.params.SHOW_COUPONS_PAY_SYSTEM=="Y")this.editCoupons(i);this.getBlockFooter(i)}},editFadePaySystemBlock:function(){var e=this.paySystemBlockNode.querySelector(".bx-soa-section-content"),t;if(this.initialized.paySystem){this.paySystemHiddenBlockNode.appendChild(e)}else{this.editActivePaySystemBlock(false);BX.remove(BX.lastChild(this.paySystemBlockNode))}t=this.getNewContainer(true);this.paySystemBlockNode.appendChild(t);this.editFadePaySystemContent(t);if(this.params.SHOW_COUPONS_PAY_SYSTEM=="Y")this.editCouponsFade(t)},editPaySystemItems:function(e){if(!this.result.PAY_SYSTEM||this.result.PAY_SYSTEM.length<=0)return;var t=BX.create("DIV",{props:{className:"order-md-1 order-2 col-md-7 bx-soa-pp-item-container"}}),i=BX.create("DIV",{props:{className:"row"}}),s,a;for(a=0;a0){h=BX.create("UL",{props:{className:"bx-soa-pp-list"},children:[BX.create("LI",{children:[BX.create("DIV",{props:{className:"bx-soa-pp-list-termin"},html:this.params.MESS_PRICE+":"}),BX.create("DIV",{props:{className:"bx-soa-pp-list-description"},text:"~"+r.PRICE_FORMATTED})]})]})}s=BX.create("DIV",{children:[n,c,p,h]})}if(i&&s)a=BX.create("HR",{props:{className:"bxe-light"}});t.appendChild(BX.create("DIV",{props:{className:"bx-soa-pp-company"},children:[i,a,s]}));e.appendChild(t)},getInnerPaySystem:function(){if(!this.result.CURRENT_BUDGET_FORMATED||!this.result.PAY_CURRENT_ACCOUNT||!this.result.INNER_PAY_SYSTEM)return;var e=this.params.ONLY_FULL_PAY_FROM_ACCOUNT&&this.params.ONLY_FULL_PAY_FROM_ACCOUNT=="Y",t=this.result.PAY_CURRENT_ACCOUNT&&this.result.PAY_CURRENT_ACCOUNT=="Y",i=this.result.INNER_PAY_SYSTEM,s,a,r,o,l,n,c,p;if(this.params.SHOW_PAY_SYSTEM_INFO_NAME=="Y"){r=BX.create("DIV",{props:{className:"bx-soa-pp-company-subTitle"},text:i.NAME})}a=BX.create("DIV",{props:{className:"bx-soa-pp-company-image"}});s=this.getImageSources(i,"LOGOTIP");if(s&&s.src_2x){a.setAttribute("style","background-image: url("+s.src_1x+");"+"background-image: -webkit-image-set(url("+s.src_1x+") 1x, url("+s.src_2x+") 2x)")}else{s=s&&s.src_1x||this.defaultPaySystemLogo;a.setAttribute("style","background-image: url("+s+");")}o=BX.create("DIV",{props:{className:"bx-soa-pp-company-logo"},children:[BX.create("DIV",{props:{className:"bx-soa-pp-company-graf-container"},children:[BX.create("INPUT",{props:{type:"checkbox",className:"bx-soa-pp-company-checkbox",name:"PAY_CURRENT_ACCOUNT",value:"Y",checked:t}}),a],events:{click:BX.proxy(this.selectPaySystem,this)}})]});if(i.DESCRIPTION&&i.DESCRIPTION.length){l=BX.create("DIV",{props:{className:"bx-soa-pp-company-block"},children:[BX.create("DIV",{props:{className:"bx-soa-pp-company-desc"},html:i.DESCRIPTION})]})}n=BX.create("INPUT",{props:{type:"hidden",name:"PAY_CURRENT_ACCOUNT",value:"N"}});c=this.params.MESS_INNER_PS_BALANCE+' '+this.result.CURRENT_BUDGET_FORMATED+"
"+(e?BX.message("SOA_PAY_ACCOUNT3"):"");p=BX.create("DIV",{props:{className:"bx-soa-pp-company-desc"},html:c});return BX.create("DIV",{props:{className:"bx-soa-pp-inner-ps"+(t?" bx-selected":"")},children:[n,r,o,l,p]})},editFadePaySystemContent:function(e){var t=this.getSelectedPaySystem(),i=this.paySystemHiddenBlockNode.querySelector("div.alert.alert-danger"),s=this.paySystemHiddenBlockNode.querySelector("div.alert.alert-warning.alert-show"),a="",r,o;if(i)e.appendChild(BX.create("div",{props:{className:"col-12"},children:[i.cloneNode(true)]}));else this.getErrorContainer(e);if(s&&s.innerHTML)e.appendChild(s.cloneNode(true));if(this.isSelectedInnerPayment()){r=this.getImageSources(this.result.INNER_PAY_SYSTEM,"LOGOTIP");o=r&&r.src_1x||this.defaultPaySystemLogo;a+='
';a+='';a+=""+this.result.INNER_PAY_SYSTEM.NAME+"
";a+="
"}if(t&&t.NAME){r=this.getImageSources(t,"PSA_LOGOTIP");o=r&&r.src_1x||this.defaultPaySystemLogo;a+='
';a+='';a+=""+BX.util.htmlspecialchars(t.NAME)+"";a+="
"}if(!a.length)a=""+BX.message("SOA_PS_SELECT_ERROR")+"";e.innerHTML+=a;e.appendChild(BX.create("DIV",{style:{clear:"both"}}));BX.bind(e.querySelector(".alert.alert-danger"),"click",BX.proxy(this.showByClick,this));BX.bind(e.querySelector(".alert.alert-warning"),"click",BX.proxy(this.showByClick,this))},getSelectedPaySystem:function(){var e=this.paySystemBlockNode.querySelector("input[type=checkbox][name=PAY_SYSTEM_ID]:checked"),t=null,i,s;if(!e)e=this.paySystemHiddenBlockNode.querySelector("input[type=checkbox][name=PAY_SYSTEM_ID]:checked");if(!e)e=this.paySystemHiddenBlockNode.querySelector("input[type=hidden][name=PAY_SYSTEM_ID]");if(e){i=e.value;for(s=0;s=0){c=BX.create("LI",{children:[BX.create("DIV",{props:{className:"bx-soa-pp-list-termin"},html:this.params.MESS_PRICE+":"}),BX.create("DIV",{props:{className:"bx-soa-pp-list-description"},children:this.getDeliveryPriceNodes(i)})]})}if(i.PERIOD_TEXT&&i.PERIOD_TEXT.length){p=BX.create("LI",{children:[BX.create("DIV",{props:{className:"bx-soa-pp-list-termin"},html:this.params.MESS_PERIOD+":"}),BX.create("DIV",{props:{className:"bx-soa-pp-list-description"},html:i.PERIOD_TEXT})]})}h=BX.create("DIV",{style:{clear:"both"}});d=BX.create("UL",{props:{className:"bx-soa-pp-list"},children:[c,p]});u=this.getDeliveryExtraServices(i);if(u.length){f=BX.create("DIV",{props:{className:"bx-soa-pp-company-block"},children:u})}t.appendChild(BX.create("DIV",{props:{className:"bx-soa-pp-company"},children:[o,l,n,h,f,d]}));e.appendChild(t);if(this.params.DELIVERY_NO_AJAX!="Y")this.deliveryCachedInfo[i.ID]=i},getDeliveryPriceNodes:function(e){var t;if(typeof e.DELIVERY_DISCOUNT_PRICE!=="undefined"&&parseFloat(e.DELIVERY_DISCOUNT_PRICE)!=parseFloat(e.PRICE)){if(parseFloat(e.DELIVERY_DISCOUNT_PRICE)>parseFloat(e.PRICE))t=[e.DELIVERY_DISCOUNT_PRICE_FORMATED];else t=[e.DELIVERY_DISCOUNT_PRICE_FORMATED,BX.create("BR"),BX.create("SPAN",{props:{className:"bx-price-old"},html:e.PRICE_FORMATED})]}else{t=[e.PRICE_FORMATED]}return t},getDeliveryExtraServices:function(e){var t=[],i=false,s,a,r,o,l;for(s in e.EXTRA_SERVICES){if(!e.EXTRA_SERVICES.hasOwnProperty(s))continue;a=e.EXTRA_SERVICES[s];if(!a.canUserEditValue)continue;if(a.editControl.indexOf("this.checked")==-1){o=BX.create("LABEL",{html:BX.util.htmlspecialchars(a.name)+(a.price?" ("+a.priceFormatted+")":"")});if(s==0)i=true;r=BX.create("DIV",{props:{className:"form-group bx-soa-pp-field"},html:a.editControl+(a.description&&a.description.length?'
'+BX.util.htmlspecialchars(a.description)+"
":"")});BX.prepend(o,r);l=r.querySelector("input[type=text]");if(!l)l=r.querySelector("select");if(l)BX.addClass(l,"form-control")}else{r=BX.create("DIV",{props:{className:"checkbox"},children:[BX.create("LABEL",{html:a.editControl+BX.util.htmlspecialchars(a.name)+(a.price?" ("+a.priceFormatted+")":"")+(a.description&&a.description.length?'
'+BX.util.htmlspecialchars(a.description)+"
":"")})]})}t.push(r)}i&&t.unshift(BX.create("BR"));return t},editFadeDeliveryBlock:function(){var e=this.deliveryBlockNode.querySelector(".bx-soa-section-content"),t;if(this.initialized.delivery){this.deliveryHiddenBlockNode.appendChild(e)}else{this.editActiveDeliveryBlock(false);BX.remove(BX.lastChild(this.deliveryBlockNode))}t=this.getNewContainer(true);this.deliveryBlockNode.appendChild(t);this.editFadeDeliveryContent(t);if(this.params.SHOW_COUPONS_DELIVERY=="Y")this.editCouponsFade(t)},createDeliveryItem:function(e){var t=e.CHECKED=="Y",i=parseInt(e.ID),s=[BX.create("INPUT",{props:{id:"ID_DELIVERY_ID_"+i,name:"DELIVERY_ID",type:"checkbox",className:"bx-soa-pp-company-checkbox",value:i,checked:t}})],a=this.deliveryCachedInfo[i],r,o,l,n,c;c=BX.create("DIV",{props:{className:"bx-soa-pp-company-image"}});r=this.getImageSources(e,"LOGOTIP");if(r&&r.src_2x){c.setAttribute("style","background-image: url("+r.src_1x+");"+"background-image: -webkit-image-set(url("+r.src_1x+") 1x, url("+r.src_2x+") 2x)")}else{r=r&&r.src_1x||this.defaultDeliveryLogo;c.setAttribute("style","background-image: url("+r+");")}s.push(c);if(e.PRICE>=0||typeof e.DELIVERY_DISCOUNT_PRICE!=="undefined"){s.push(BX.create("DIV",{props:{className:"bx-soa-pp-delivery-cost"},html:typeof e.DELIVERY_DISCOUNT_PRICE!=="undefined"?e.DELIVERY_DISCOUNT_PRICE_FORMATED:e.PRICE_FORMATED}))}else if(a&&(a.PRICE>=0||typeof a.DELIVERY_DISCOUNT_PRICE!=="undefined")){s.push(BX.create("DIV",{props:{className:"bx-soa-pp-delivery-cost"},html:typeof a.DELIVERY_DISCOUNT_PRICE!=="undefined"?a.DELIVERY_DISCOUNT_PRICE_FORMATED:a.PRICE_FORMATED}))}o=BX.create("DIV",{props:{className:"bx-soa-pp-company-graf-container"+(e.CALCULATE_ERRORS||a&&a.CALCULATE_ERRORS?" bx-bd-waring":"")},children:s});if(this.params.SHOW_DELIVERY_LIST_NAMES=="Y"){l=BX.create("DIV",{props:{className:"bx-soa-pp-company-smalltitle"},text:this.params.SHOW_DELIVERY_PARENT_NAMES!="N"?e.NAME:e.OWN_NAME})}n=BX.create("DIV",{props:{className:"bx-soa-pp-company col-6"},children:[o,l],events:{click:BX.proxy(this.selectDelivery,this)}});t&&BX.addClass(n,"bx-selected");if(t&&this.result.LAST_ORDER_DATA.PICK_UP)this.lastSelectedDelivery=i;return n},editFadeDeliveryContent:function(e){var t=this.getSelectedDelivery(),i=this.params.SHOW_DELIVERY_PARENT_NAMES!="N"?t.NAME:t.OWN_NAME,s=this.deliveryHiddenBlockNode.querySelector("div.alert.alert-danger"),a=this.deliveryHiddenBlockNode.querySelector("div.alert.alert-warning.alert-show"),r,o,l,n,c;if(s&&s.innerHTML)e.appendChild(s.cloneNode(true));else this.getErrorContainer(e);if(a&&a.innerHTML)e.appendChild(a.cloneNode(true));if(t&&t.NAME){o=this.getImageSources(t,"LOGOTIP");l=o&&o.src_1x||this.defaultDeliveryLogo;n=[BX.create("IMG",{props:{src:l,alt:""},style:{height:"18px"}}),BX.create("STRONG",{text:i})];if(this.params.DELIVERY_FADE_EXTRA_SERVICES=="Y"&&BX.util.object_keys(t.EXTRA_SERVICES).length){n.push(BX.create("BR"));for(c in t.EXTRA_SERVICES){if(t.EXTRA_SERVICES.hasOwnProperty(c)){r=t.EXTRA_SERVICES[c];if(r.value&&r.value!="N"&&r.canUserEditValue){n.push(BX.create("BR"));n.push(BX.create("STRONG",{text:r.name+": "}));n.push(r.viewControl)}}}}e.appendChild(BX.create("DIV",{props:{className:"row"},children:[BX.create("DIV",{props:{className:"col-sm-9 bx-soa-pp-company-selected"},children:n}),BX.create("DIV",{props:{className:"col-sm bx-soa-pp-price"},children:this.getDeliveryPriceNodes(t)})]}))}else e.appendChild(BX.create("STRONG",{text:BX.message("SOA_DELIVERY_SELECT_ERROR")}));e.appendChild(BX.create("DIV",{style:{clear:"both"}}));BX.bind(e.querySelector(".alert.alert-danger"),"click",BX.proxy(this.showByClick,this));BX.bind(e.querySelector(".alert.alert-warning"),"click",BX.proxy(this.showByClick,this))},selectDelivery:function(e){if(!this.orderBlockNode)return;var t=e.target||e.srcElement,i=BX.hasClass(t,"bx-soa-pp-company")?t:BX.findParent(t,{className:"bx-soa-pp-company"}),s=this.deliveryBlockNode.querySelector(".bx-soa-pp-company.bx-selected"),a,r;if(BX.hasClass(i,"bx-selected"))return BX.PreventDefault(e);if(i){a=i.querySelector("input[type=checkbox]");BX.addClass(i,"bx-selected");a.checked=true}if(s){r=s.querySelector("input[type=checkbox]");BX.removeClass(s,"bx-selected");r.checked=false}this.sendRequest()},getSelectedDelivery:function(){var e=this.deliveryBlockNode.querySelector("input[type=checkbox][name=DELIVERY_ID]:checked"),t=false,i,s;if(!e)e=this.deliveryHiddenBlockNode.querySelector("input[type=checkbox][name=DELIVERY_ID]:checked");if(!e)e=this.deliveryHiddenBlockNode.querySelector("input[type=hidden][name=DELIVERY_ID]");if(e){i=e.value;for(s in this.result.DELIVERY){if(this.result.DELIVERY[s].ID==i){t=this.result.DELIVERY[s];break}}}return t},activatePickUp:function(e){if(!this.pickUpBlockNode||!this.pickUpHiddenBlockNode)return;this.pickUpBlockNode.style.display="";this.pickUpBlockNode.querySelector('[data-entity="section-title"]').innerHTML=''+BX.util.htmlspecialchars(e);if(BX.hasClass(this.pickUpBlockNode,"bx-active"))return;BX.addClass(this.pickUpBlockNode,"bx-active");this.pickUpBlockNode.style.display=""},deactivatePickUp:function(){if(!this.pickUpBlockNode||!this.pickUpHiddenBlockNode)return;if(!BX.hasClass(this.pickUpBlockNode,"bx-active"))return;BX.removeClass(this.pickUpBlockNode,"bx-active");this.pickUpBlockNode.style.display="none"},editPickUpBlock:function(e){if(!this.pickUpBlockNode||!this.pickUpHiddenBlockNode||!BX.hasClass(this.pickUpBlockNode,"bx-active")||!this.result.DELIVERY)return;this.initialized.pickup=false;if(e)this.editActivePickUpBlock(true);else this.editFadePickUpBlock();this.initialized.pickup=true},editActivePickUpBlock:function(e){var t=e?this.pickUpBlockNode:this.pickUpHiddenBlockNode,i,s;if(this.initialized.pickup){BX.remove(BX.lastChild(t));t.appendChild(BX.firstChild(this.pickUpHiddenBlockNode));if(this.params.SHOW_NEAREST_PICKUP==="Y"&&this.maps&&!this.maps.maxWaitTimeExpired){this.maps.maxWaitTimeExpired=true;this.initPickUpPagination();this.editPickUpList(true);this.pickUpFinalAction()}if(this.maps&&!this.pickUpMapFocused){this.pickUpMapFocused=true;setTimeout(BX.proxy(this.maps.pickUpMapFocusWaiter,this.maps),200)}}else{i=t.querySelector(".bx-soa-section-content");if(!i){i=this.getNewContainer();t.appendChild(i)}BX.cleanNode(i);s=BX.create("DIV",{props:{className:"col"}});this.editPickUpMap(s);this.editPickUpLoader(s);i.appendChild(BX.create("DIV",{props:{className:"bx_soa_pickup row"},children:[s]}));if(this.params.SHOW_PICKUP_MAP!="Y"||this.params.SHOW_NEAREST_PICKUP!="Y"){this.initPickUpPagination();this.editPickUpList(true);this.pickUpFinalAction()}this.getBlockFooter(i)}},editFadePickUpBlock:function(){var e=this.pickUpBlockNode.querySelector(".bx-soa-section-content"),t;if(this.initialized.pickup){this.pickUpHiddenBlockNode.appendChild(e)}else{this.editActivePickUpBlock(false);BX.remove(BX.lastChild(this.pickUpBlockNode))}t=this.getNewContainer();this.pickUpBlockNode.appendChild(t);this.editFadePickUpContent(t)},editFadePickUpContent:function(e){var t=this.getSelectedPickUp(),i="",s,a;if(t){if(this.params.SHOW_STORES_IMAGES=="Y"){s=this.getImageSources(t,"IMAGE_ID");a=s.src_1x||this.defaultStoreLogo;i+=''}i+=""+BX.util.htmlspecialchars(t.TITLE)+"";if(t.ADDRESS)i+="
"+BX.message("SOA_PICKUP_ADDRESS")+": "+BX.util.htmlspecialchars(t.ADDRESS);if(t.PHONE)i+="
"+BX.message("SOA_PICKUP_PHONE")+": "+BX.util.htmlspecialchars(t.PHONE);if(t.SCHEDULE)i+="
"+BX.message("SOA_PICKUP_WORK")+": "+BX.util.htmlspecialchars(t.SCHEDULE);if(t.DESCRIPTION)i+="
"+BX.message("SOA_PICKUP_DESC")+": "+BX.util.htmlspecialchars(t.DESCRIPTION);e.innerHTML=i;if(this.params.SHOW_STORES_IMAGES=="Y"){BX.bind(e.querySelector(".bx-soa-pickup-preview-img"),"click",BX.delegate(function(e){this.popupShow(e,s&&s.src_orig||a)},this))}}},getPickUpInfoArray:function(e){if(!e||e.length<=0)return[];var t=[],i;for(i=0;i=this.options.pickUpMap.minToShowNearestBlock){this.editPickUpRecommendList(e.geoObjects.get(0))}this.initPickUpPagination();this.editPickUpList(true);this.pickUpFinalAction()},geoLocationFailCallback:function(){this.initPickUpPagination();this.editPickUpList(true);this.pickUpFinalAction()},initMaps:function(){this.maps=BX.Sale.OrderAjaxComponent.Maps.init(this);if(this.maps){this.mapsReady=true;this.resizeMapContainers();if(this.params.SHOW_PICKUP_MAP==="Y"&&BX("pickUpMap")){var e=this.getSelectedDelivery();if(e&&e.STORE&&e.STORE.length){var t=this.getPickUpInfoArray(e.STORE)}if(t&&t.length){var i=this.getSelectedPickUp();this.maps.initializePickUpMap(i);if(this.params.SHOW_NEAREST_PICKUP==="Y"){this.maps.showNearestPickups(BX.proxy(this.geoLocationSuccessCallback,this),BX.proxy(this.geoLocationFailCallback,this))}this.maps.buildBalloons(t)}}if(this.params.SHOW_MAP_IN_PROPS==="Y"&&BX("propsMap")){var s=this.getPropertyMapData();this.maps.initializePropsMap(s)}}},getPropertyMapData:function(){var e,t,i;var s=this.options.propertyMap.defaultMapPosition;for(i in this.result.ORDER_PROP.properties){if(this.result.ORDER_PROP.properties.hasOwnProperty(i)){e=this.result.ORDER_PROP.properties[i];if(e.IS_LOCATION=="Y"){t=e.ID;break}}}if(this.locations[t]&&this.locations[t][0]&&this.locations[t][0].coordinates){e=this.locations[t][0].coordinates;var a=parseFloat(e.LONGITUDE),r=parseFloat(e.LATITUDE);if(!isNaN(a)&&!isNaN(r)&&a!=0&&r!=0){s.lon=a;s.lat=r}}return s},resizeMapContainers:function(){var e=BX("pickUpMap"),t=BX("propsMap"),i=this.propsBlockNode,s,a;if(i&&(e||t)){s=i.clientWidth;a=parseInt(s/16*9);if(this.params.SHOW_PICKUP_MAP==="Y"&&e){e.style.height=a+"px"}if(this.params.SHOW_MAP_IN_PROPS==="Y"&&t){t.style.height=a+"px"}}},editPickUpMap:function(e){e.appendChild(BX.create("DIV",{props:{id:"pickUpMap"},style:{width:"100%",marginBottom:"10px"}}))},editPickUpLoader:function(e){e.appendChild(BX.create("DIV",{props:{id:"pickUpLoader",className:"text-center"},children:[BX.create("IMG",{props:{src:this.templateFolder+"/images/loader.gif"}})]}))},editPickUpList:function(e){if(!this.pickUpPagination.currentPage||!this.pickUpPagination.currentPage.length)return;BX.remove(BX("pickUpLoader"));var t=BX.create("DIV",{props:{className:"bx-soa-pickup-list main"}}),i=BX("BUYER_STORE"),s,a,r,o=false,l,n,c,p;if(i)s=i.value;l=this.pickUpBlockNode.querySelector(".bx-soa-pickup-list.recommend");if(!l)l=this.pickUpHiddenBlockNode.querySelector(".bx-soa-pickup-list.recommend");if(!l||!l.querySelector(".bx-soa-pickup-list-item.bx-selected")){n=this.getSelectedDelivery();if(n&&n.STORE){for(r=0;r.col");if(!a)a=this.pickUpBlockNode.querySelector(".bx_soa_pickup>.col");a.appendChild(BX.create("DIV",{props:{className:"bx-soa-pickup-subTitle"},html:this.params.MESS_PICKUP_LIST}));a.appendChild(t)}else{a=this.pickUpBlockNode.querySelector(".bx-soa-pickup-list.main");BX.insertAfter(t,a);BX.remove(a)}this.pickUpPagination.show&&this.showPagination("pickUp",t)},pickUpFinalAction:function(){var e=this.getSelectedDelivery(),t;if(e){t=this.lastSelectedDelivery!==parseInt(e.ID);this.lastSelectedDelivery=parseInt(e.ID)}if(t&&this.pickUpBlockNode.id!==this.activeSectionId){if(this.pickUpBlockNode.id!==this.activeSectionId){this.editFadePickUpContent(BX.lastChild(this.pickUpBlockNode))}BX.removeClass(this.pickUpBlockNode,"bx-step-completed")}this.maps&&this.maps.pickUpFinalAction()},getStoreInfoHtml:function(e){var t="";if(e.ADDRESS)t+=BX.message("SOA_PICKUP_ADDRESS")+": "+BX.util.htmlspecialchars(e.ADDRESS)+"
";if(e.PHONE)t+=BX.message("SOA_PICKUP_PHONE")+": "+BX.util.htmlspecialchars(e.PHONE)+"
";if(e.SCHEDULE)t+=BX.message("SOA_PICKUP_WORK")+": "+BX.util.htmlspecialchars(e.SCHEDULE)+"
";if(e.DESCRIPTION)t+=BX.message("SOA_PICKUP_DESC")+": "+BX.util.htmlspecialchars(e.DESCRIPTION)+"
";return t},createPickUpItem:function(e,t){t=t||{};var i="bx-soa-pickup-l-item-detail",s="bx-soa-pickup-l-item-btn",a,r,o,l,n;if(this.params.SHOW_STORES_IMAGES==="Y"){r=this.getImageSources(e,"IMAGE_ID");n=r&&r.src_1x||this.defaultStoreLogo;a=BX.create("IMG",{props:{src:n,className:"bx-soa-pickup-l-item-img"},events:{click:BX.delegate(function(e){this.popupShow(e,r&&r.src_orig||n)},this)}})}else{i+=" no-image";s+=" no-image"}o=this.getStoreInfoHtml(e);l=BX.create("DIV",{props:{className:"bx-soa-pickup-list-item",id:"store-"+e.ID},children:[BX.create("DIV",{props:{className:"bx-soa-pickup-l-item-adress"},children:t.distance?[BX.util.htmlspecialchars(e.ADDRESS)," ( ~"+t.distance+" "+BX.message("SOA_DISTANCE_KM")+" ) "]:[BX.util.htmlspecialchars(e.ADDRESS)]}),BX.create("DIV",{props:{className:i},children:[a,BX.create("DIV",{props:{className:"bx-soa-pickup-l-item-name"},text:e.TITLE}),BX.create("DIV",{props:{className:"bx-soa-pickup-l-item-desc"},html:o})]}),BX.create("DIV",{props:{className:s},children:[BX.create("A",{props:{href:"",className:"btn btn-sm btn-primary"},html:this.params.MESS_SELECT_PICKUP,events:{click:BX.delegate(function(e){this.selectStore(e);this.clickNextAction(e)},this)}})]})],events:{click:BX.proxy(this.selectStore,this)}});if(t.selected)BX.addClass(l,"bx-selected");return l},editPickUpRecommendList:function(e){if(!this.maps||!this.maps.canUseRecommendList()||!e){return}BX.remove(BX("pickUpLoader"));var t=BX.create("DIV",{props:{className:"bx-soa-pickup-list recommend"}}),i=BX("BUYER_STORE"),s=this.getSelectedDelivery();var a,r,o,l,n,c;var p=this.maps.getRecommendedStoreIds(e);for(a=0;a.col");if(!c){c=this.pickUpBlockNode.querySelector(".bx_soa_pickup>.col")}c.appendChild(BX.create("DIV",{props:{className:"bx-soa-pickup-subTitle"},html:this.params.MESS_NEAREST_PICKUP_LIST}));c.appendChild(t)},selectStore:function(e){var t,i=BX("BUYER_STORE"),s,a,r,o,l,n,c,p;if(BX.type.isString(e)){t=BX("store-"+e);if(!t){for(r=0;rt.OWN_NAME.toLowerCase()?1:e.OWN_NAME.toLowerCase()"+BX.message("SOA_ORDER_PROPS")+""}else{l=this.fadedPropertyCollection.getGroupIterator();while(r=l()){n=r.getIterator();while(o=n()){for(c=0;c"+BX.util.htmlspecialchars(e.getName())+": "}else{BX.addClass(s,"form-group bx-soa-customer-field");if(e.isRequired())a+='* ';a+=BX.util.htmlspecialchars(e.getName());if(o.length&&r!="STRING"&&r!="NUMBER"&&r!="DATE")a+=" ("+BX.util.htmlspecialchars(o)+")";l=BX.create("LABEL",{attrs:{for:"soa-property-"+e.getId()},props:{className:"bx-soa-custom-label"},html:a});s.setAttribute("data-property-id-row",e.getId());s.appendChild(l)}switch(r){case"LOCATION":this.insertLocationProperty(e,s,i);break;case"DATE":this.insertDateProperty(e,s,i);break;case"FILE":this.insertFileProperty(e,s,i);break;case"STRING":this.insertStringProperty(e,s,i);break;case"ENUM":this.insertEnumProperty(e,s,i);break;case"Y/N":this.insertYNProperty(e,s,i);break;case"NUMBER":this.insertNumberProperty(e,s,i)}t.appendChild(s)},insertLocationProperty:function(e,t,i){var s,a,r,o,l,n,c,p,h=[];if(e.getId()in this.locations){if(i){s=this.propsHiddenBlockNode.querySelector('[data-property-id-row="'+e.getId()+'"]');if(s){a=s.querySelectorAll("div.bx-soa-loc");for(c=0;c")}else{n=BX.create("DIV",{props:{className:"soa-property-container"}});s=this.locations[e.getId()];for(c=0;c'});BX.insertAfter(s,t);BX.remove(i.querySelector("input[type=button]"));BX.bind(s,"click",BX.delegate(function(t){var i=t.target||t.srcElement,s=BX.findParent(i,{tagName:"DIV",className:"input-group"});BX.calendar({node:s.querySelector(".input-group-append"),field:s.querySelector("input[type=text]").name,form:"",bTime:e.TIME==="Y",bHideTime:false})},this))},isValidForm:function(){if(!this.options.propertyValidation)return true;var e=this.isValidRegionBlock(),t=this.isValidPropertiesBlock(),i=false,s,a;if(e.length){i=true;this.animateScrollTo(this.regionBlockNode,800,50)}if(t.length&&!i){if(this.activeSectionId==this.propsBlockNode.id){s=this.propsBlockNode.querySelectorAll("div.tooltip");for(a=0;a")}this.showValidationResult(e.inputs,i);return i},bindValidation:function(e,t){if(!this.validation.properties||!this.validation.properties[e])return;var i=this.validation.properties[e],s=this.getValidationData(i,t),a,r;if(s&&s.inputs&&s.action){for(a=0;a");if(s){a=s.querySelector("div.tooltip-inner")}else{a=BX.create("DIV",{props:{className:"tooltip-inner"}});s=BX.create("DIV",{props:{id:"tooltip-"+e,className:"bx-soa-tooltip bx-soa-tooltip-static bx-soa-tooltip-danger tooltip top"},children:[BX.create("DIV",{props:{className:"tooltip-arrow"}}),a]});r=t.parentNode.querySelector("div.quick-locations");if(r)t=r;BX.insertAfter(s,t)}a.innerHTML=i;if(s.getAttribute("data-state")!="opened"){s.setAttribute("data-state","opened");s.style.opacity=0;s.style.display="block";new BX.easing({duration:150,start:{opacity:0},finish:{opacity:100},transition:BX.easing.transitions.quad,step:function(e){s.style.opacity=e.opacity/100}}).animate()}},closeErrorTooltip:function(e){var t=BX("tooltip-"+e);if(t){t.setAttribute("data-state","closed");new BX.easing({duration:150,start:{opacity:100},finish:{opacity:0},transition:BX.easing.transitions.quad,step:function(e){t.style.opacity=e.opacity/100},complete:function(){t.style.display="none"}}).animate()}},showValidationResult:function(e,t){if(!e||!e.length||!t)return;var i=BX.type.isElementNode(e[0])?e[0]:e[0][0],s=BX.findParent(i,{tagName:"DIV",className:"form-group"}),a=s.querySelector("label"),r,o,l;if(a)r=a.getAttribute("for");for(l=0;l"));else this.closeErrorTooltip(r)},validateString:function(e,t,i){if(!e||!t)return[];var s=e.value,a=[],r=BX.util.htmlspecialchars(t.NAME),o=!!i?BX.message("SOA_FIELD")+' "'+r+'"':BX.message("SOA_FIELD"),l;if(t.MULTIPLE==="Y")return a;if(t.REQUIRED==="Y"&&s.length===0)a.push(o+" "+BX.message("SOA_REQUIRED"));if(s.length){if(t.MINLENGTH&&t.MINLENGTH>s.length)a.push(BX.message("SOA_MIN_LENGTH")+' "'+r+'" '+BX.message("SOA_LESS")+" "+t.MINLENGTH+" "+BX.message("SOA_SYMBOLS"));if(t.MAXLENGTH&&t.MAXLENGTH()[\]\.,;:\s@\"]+(\.[^<>()[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/i;if(!l.test(s)){a.push(BX.message("SOA_INVALID_EMAIL"))}}}if(s.length>0&&t.PATTERN&&t.PATTERN.length){l=new RegExp(t.PATTERN);if(!l.test(s))a.push(o+" "+BX.message("SOA_INVALID_PATTERN"))}}return a},validateLocation:function(e,t,i){if(!e||!t)return[];var s=BX.findParent(e,{tagName:"DIV",className:"form-group"}),a=this.getLocationString(s),r=[],o=!!i?BX.message("SOA_FIELD")+' "'+BX.util.htmlspecialchars(t.NAME)+'"':BX.message("SOA_FIELD");if(t.MULTIPLE=="Y"&&t.IS_LOCATION!=="Y")return r;if(t.REQUIRED=="Y"&&(a.length==0||a==BX.message("SOA_NOT_SPECIFIED")))r.push(o+" "+BX.message("SOA_REQUIRED"));return r},validateCheckbox:function(e,t,i){if(!e||!t)return[];var s=[],a=!!i?BX.message("SOA_FIELD")+' "'+BX.util.htmlspecialchars(t.NAME)+'"':BX.message("SOA_FIELD");if(t.MULTIPLE=="Y")return s;if(t.REQUIRED=="Y"&&!e.checked)s.push(a+" "+BX.message("SOA_REQUIRED"));return s},validateNumber:function(e,t,i){if(!e||!t)return[];var s=e.value,a=[],r=BX.util.htmlspecialchars(t.NAME),o=!!i?BX.message("SOA_FIELD")+' "'+r+'"':BX.message("SOA_FIELD"),l,n;if(t.MULTIPLE=="Y")return a;if(t.REQUIRED=="Y"&&s.length==0)a.push(o+" "+BX.message("SOA_REQUIRED"));if(s.length){if(!/[0-9]|\./.test(s))a.push(o+" "+BX.message("SOA_NOT_NUMERIC"));if(t.MIN&&parseFloat(t.MIN)>parseFloat(s))a.push(BX.message("SOA_MIN_VALUE")+' "'+r+'" '+parseFloat(t.MIN));if(t.MAX&&parseFloat(t.MAX)0){l=Math.abs(parseFloat(s)-(t.MIN&&parseFloat(t.MIN)>0?parseFloat(t.MIN):0));n=(l/parseFloat(t.STEP)).toPrecision(12);if(n!=parseInt(n))a.push(o+" "+BX.message("SOA_NUM_STEP")+" "+t.STEP)}}return a},validateEnum:function(e,t,i){if(!e||!t)return[];var s=[],a=[],r,o=!!i?BX.message("SOA_FIELD")+' "'+BX.util.htmlspecialchars(t.NAME)+'"':BX.message("SOA_FIELD");if(t.MULTIPLE=="Y")return a;for(r=0;r1?p[p.length-1].toLowerCase():"";if(t.ACCEPT.length>0&&(h.length==0||t.ACCEPT.indexOf(h)=="-1"))s.push(BX.message("SOA_BAD_EXTENSION")+' "'+c+'" ('+BX.util.htmlspecialchars(t.ACCEPT)+")");if(n.size>parseInt(t.MAXSIZE))s.push(BX.message("SOA_MAX_SIZE")+' "'+c+'" ('+this.getSizeString(t.MAXSIZE,1)+")")}}return s},validateDate:function(e,t,i){if(!e||!t)return[];var s=e.value,a=[],r=BX.util.htmlspecialchars(t.NAME),o=!!i?BX.message("SOA_FIELD")+' "'+r+'"':BX.message("SOA_FIELD");if(t.MULTIPLE=="Y")return a;if(t.REQUIRED=="Y"&&s.length==0)a.push(o+" "+BX.message("SOA_REQUIRED"));return a},editPropsMap:function(e){var t=BX.create("DIV",{props:{className:"col-sm-12"},style:{marginBottom:"10px"}}),i=BX.create("DIV",{props:{id:"propsMap"},style:{width:"100%"}});t.appendChild(i);e.appendChild(t)},editPropsComment:function(e){var t,i,s,a;t=BX.create("DIV",{props:{className:"col-sm-12"}});i=BX.create("LABEL",{attrs:{for:"orderDescription"},props:{className:"bx-soa-customer-label"},html:this.params.MESS_ORDER_DESC});s=BX.create("TEXTAREA",{props:{id:"orderDescription",cols:"4",className:"form-control bx-soa-customer-textarea bx-ios-fix",name:"ORDER_DESCRIPTION"},text:this.result.ORDER_DESCRIPTION?this.result.ORDER_DESCRIPTION:""});a=BX.create("DIV",{props:{className:"form-group bx-soa-customer-field"},children:[i,s]});t.appendChild(a);e.appendChild(t)},editTotalBlock:function(){if(!this.totalInfoBlockNode||!this.result.TOTAL)return;var e=this.result.TOTAL,t,i={},s,a,r,o,l,n,c=this.params.SHOW_TOTAL_ORDER_BUTTON==="Y";BX.cleanNode(this.totalInfoBlockNode);if(parseFloat(e.ORDER_PRICE)===0){t=this.params.MESS_PRICE_FREE;i.free=true}else{t=e.ORDER_PRICE_FORMATED}if(this.options.showPriceWithoutDiscount){t+='
'+e.PRICE_WITHOUT_DISCOUNT+""}this.totalInfoBlockNode.appendChild(this.createTotalUnit(BX.message("SOA_SUM_SUMMARY"),t,i));if(this.options.showOrderWeight){this.totalInfoBlockNode.appendChild(this.createTotalUnit(BX.message("SOA_SUM_WEIGHT_SUM"),e.ORDER_WEIGHT_FORMATED))}if(this.options.showTaxList){for(r=0;rparseFloat(o.DELIVERY_DISCOUNT_PRICE)){n+='
'+o.PRICE_FORMATED+""}}if(this.result.DELIVERY.length){this.totalInfoBlockNode.appendChild(this.createTotalUnit(BX.message("SOA_SUM_DELIVERY"),n,i))}if(this.options.showDiscountPrice){s=this.params.MESS_ECONOMY;if(e.DISCOUNT_PERCENT_FORMATED&&parseFloat(e.DISCOUNT_PERCENT_FORMATED)>0)s+=e.DISCOUNT_PERCENT_FORMATED;this.totalInfoBlockNode.appendChild(this.createTotalUnit(s+":",e.DISCOUNT_PRICE_FORMATED,{highlighted:true}))}if(this.options.showPayedFromInnerBudget){this.totalInfoBlockNode.appendChild(this.createTotalUnit(BX.message("SOA_SUM_IT"),e.ORDER_TOTAL_PRICE_FORMATED));this.totalInfoBlockNode.appendChild(this.createTotalUnit(BX.message("SOA_SUM_PAYED"),e.PAYED_FROM_ACCOUNT_FORMATED));this.totalInfoBlockNode.appendChild(this.createTotalUnit(BX.message("SOA_SUM_LEFT_TO_PAY"),e.ORDER_TOTAL_LEFT_TO_PAY_FORMATED,{total:true}))}else{this.totalInfoBlockNode.appendChild(this.createTotalUnit(BX.message("SOA_SUM_IT"),e.ORDER_TOTAL_PRICE_FORMATED,{total:true}))}if(parseFloat(e.PAY_SYSTEM_PRICE)>=0&&this.result.DELIVERY.length){this.totalInfoBlockNode.appendChild(this.createTotalUnit(BX.message("SOA_PAYSYSTEM_PRICE"),"~"+e.PAY_SYSTEM_PRICE_FORMATTED))}if(!this.result.SHOW_AUTH){this.totalInfoBlockNode.appendChild(BX.create("DIV",{props:{className:"bx-soa-cart-total-button-container"+(!c?" d-block d-sm-none":"")},children:[BX.create("A",{props:{href:"javascript:void(0)",className:"btn btn-primary btn-lg btn-order-save"},html:this.params.MESS_ORDER,events:{click:BX.proxy(this.clickOrderSaveAction,this)}})]}))}this.editMobileTotalBlock()},editMobileTotalBlock:function(){if(this.result.SHOW_AUTH)BX.removeClass(this.mobileTotalBlockNode,"d-block d-sm-none");else BX.addClass(this.mobileTotalBlockNode,"d-block d-sm-none");BX.cleanNode(this.mobileTotalBlockNode);this.mobileTotalBlockNode.appendChild(this.totalInfoBlockNode.cloneNode(true));BX.bind(this.mobileTotalBlockNode.querySelector("a.bx-soa-price-not-calc"),"click",BX.delegate(function(){this.animateScrollTo(this.deliveryBlockNode)},this));BX.bind(this.mobileTotalBlockNode.querySelector("a.btn-order-save"),"click",BX.proxy(this.clickOrderSaveAction,this))},createTotalUnit:function(e,t,i){var s,a="bx-soa-cart-total-line";e=e||"";t=t||"";i=i||{};if(i.error){s=[BX.create("A",{props:{className:"bx-soa-price-not-calc"},html:t,events:{click:BX.delegate(function(){this.animateScrollTo(this.deliveryBlockNode)},this)}})]}else if(i.free){s=[BX.create("SPAN",{props:{className:"bx-soa-price-free"},html:t})]}else{s=[t]}if(i.total){a+=" bx-soa-cart-total-line-total"}if(i.highlighted){a+=" bx-soa-cart-total-line-highlighted"}return BX.create("DIV",{props:{className:a},children:[BX.create("SPAN",{props:{className:"bx-soa-cart-t"},text:e}),BX.create("SPAN",{props:{className:"bx-soa-cart-d"+(!!i.total&&this.options.totalPriceChanged?" bx-soa-changeCostSign":"")},children:s})]})},basketBlockScrollCheckEvent:function(e){var t=e.target||e.srcElement,i=t.scrollLeft,s=t.scrollWidth-(i+t.clientWidth),a=t.parentNode;if(i==0)BX.removeClass(a,"bx-soa-table-fade-left");else BX.addClass(a,"bx-soa-table-fade-left");if(s==0)BX.removeClass(a,"bx-soa-table-fade-right");else BX.addClass(a,"bx-soa-table-fade-right")},basketBlockScrollCheck:function(){var e=this.orderBlockNode.querySelectorAll("div.bx-soa-table-fade"),t,i,s,a,r,o,l,n,c=false;for(r=0;ri;if(c){o=BX.firstChild(t);l=o.scrollLeft;n=o.scrollWidth-(l+o.clientWidth);if(l==0)BX.removeClass(t,"bx-soa-table-fade-left");else BX.addClass(t,"bx-soa-table-fade-left");if(n==0)BX.removeClass(t,"bx-soa-table-fade-right");else BX.addClass(t,"bx-soa-table-fade-right");if(l==0&&n==0)BX.addClass(t,"bx-soa-table-fade-right")}else BX.removeClass(t,"bx-soa-table-fade-left bx-soa-table-fade-right")}},totalBlockScrollCheck:function(){if(!this.totalInfoBlockNode||!this.totalGhostBlockNode)return;var e=BX.GetWindowScrollPos().scrollTop,t=BX.pos(this.totalGhostBlockNode).top,i=BX.pos(this.orderBlockNode).bottom,s;if(i-this.totalBlockNode.offsetHeightt&&!BX.hasClass(this.totalInfoBlockNode,"bx-soa-cart-total-fixed")){s=this.totalInfoBlockNode.offsetWidth;BX.addClass(this.totalInfoBlockNode,"bx-soa-cart-total-fixed");this.totalGhostBlockNode.style.paddingTop=this.totalInfoBlockNode.offsetHeight+"px";this.totalInfoBlockNode.style.width=s+"px"}else if(efp = $file; } else { CheckDirPath($file); $this->fp = fopen($file, "wb"); } if(is_resource($this->fp)) { $res = $this->HTTPQuery('GET', $url); if (!is_resource($file)) { fclose($this->fp); unset($this->fp); } return $res && ($this->status == 200); } return false; } /** * @deprecated Use Bitrix\Main\Web\HttpClient */ public function Get($url) { if ($this->HTTPQuery('GET', $url)) { return $this->result; } return false; } /** * @deprecated Use Bitrix\Main\Web\HttpClient */ public function Post($url, $arPostData) { $postdata = CHTTP::PrepareData($arPostData); if($this->HTTPQuery('POST', $url, $postdata)) { return $this->result; } return false; } public static function PrepareData($arPostData, $prefix = '') { $str = ''; if(!is_array($arPostData)) { $str = $arPostData; } else { foreach ($arPostData as $key => $value) { $name = $prefix == "" ? urlencode($key) : $prefix."[".urlencode($key)."]"; if(is_array($value)) { $str .= CHTTP::PrepareData($value, $name); } else { $str .= '&'.$name.'='.urlencode($value); } } } if($prefix == '' && substr($str, 0, 1) == '&') { $str = substr($str, 1); } return $str; } /** * @deprecated Use Bitrix\Main\Web\HttpClient */ public function HTTPQuery($method, $url, $postdata = '') { if(is_resource($this->fp)) $file_pos = ftell($this->fp); $this->redirectsMade = 0; while (true) { $this->url = $url; $arUrl = $this->ParseURL($url); if (!$this->Query($method, $arUrl['host'], $arUrl['port'], $arUrl['path_query'], $postdata, $arUrl['proto'])) { return false; } if( $this->follow_redirect && isset($this->headers['Location']) && strlen($this->headers['Location']) > 0 ) { $url = $this->headers['Location']; if($this->redirectsMade < $this->redirectMax) { //When writing to file we have to discard //redirect body if(is_resource($this->fp)) { /** @noinspection PhpUndefinedVariableInspection */ ftruncate($this->fp, $file_pos); fseek($this->fp, $file_pos, SEEK_SET); } $this->redirectsMade++; continue; } else { trigger_error("Maximum number of redirects (".$this->redirectMax.") has been reached at URL ".$url, E_USER_WARNING); return false; } } else { break; } } return true; } /** * @deprecated Use Bitrix\Main\Web\HttpClient */ public function Query($method, $host, $port, $path, $postdata = false, $proto = '', $post_content_type = 'N', $dont_wait_answer = false) { $this->status = 0; $this->result = ''; $this->headers = array(); $this->cookies = array(); $fp = fsockopen($proto.$host, $port, $this->errno, $this->errstr, $this->http_timeout); if ($fp) { $strRequest = "$method $path HTTP/1.0\r\n"; $strRequest .= "Connection: close\r\n"; $strRequest .= "User-Agent: {$this->user_agent}\r\n"; $strRequest .= "Accept: */*\r\n"; $strRequest .= "Host: $host\r\n"; $strRequest .= "Accept-Language: en\r\n"; foreach ($this->additional_headers as $key => $value) $strRequest .= $key.": ".$value."\r\n"; if ($method == 'POST' || $method == 'PUT') { if ('N' !== $post_content_type) $strRequest .= $post_content_type == '' ? '' : "Content-type: ".$post_content_type."\r\n"; else $strRequest.= "Content-type: application/x-www-form-urlencoded\r\n"; if(!array_key_exists("Content-Length", $this->additional_headers)) $strRequest.= "Content-Length: ".CUtil::BinStrlen($postdata) . "\r\n"; } $strRequest .= "\r\n"; fwrite($fp, $strRequest); if ($method == 'POST' || $method == 'PUT') { if(is_resource($postdata)) { while(!feof($postdata)) fwrite($fp, fread($postdata, 1024*1024)); } else { fwrite($fp, $postdata); } } if ($dont_wait_answer) { fclose($fp); return true; } $headers = ""; while(!feof($fp)) { $line = fgets($fp, 4096); if($line == "\r\n" || $line === false) { //$line = fgets($fp, 4096); break; } $headers .= $line; } $this->ParseHeaders($headers); if(is_resource($this->fp)) { while(!feof($fp)) { $buf = fread($fp, 40960); if ($buf === false) break; fwrite($this->fp, $buf); fflush($this->fp); } } else { $this->result = ""; while(!feof($fp)) { $buf = fread($fp, 4096); if ($buf === false) break; $this->result .= $buf; } } fclose($fp); return true; } /** @global CMain $APPLICATION */ global $APPLICATION; $APPLICATION->ThrowException( GetMessage('HTTP_CLIENT_ERROR_CONNECT', array( '%ERRSTR%' => $this->errstr, '%ERRNO%' => $this->errno, '%HOST%' => $host, '%PORT%' => $port, ) ) ); return false; } public function SetAuthBasic($user, $pass) { $this->additional_headers['Authorization'] = "Basic ".base64_encode($user.":".$pass); } /** * @deprecated Use Bitrix\Main\Web\Uri */ public static function ParseURL($url) { $arUrl = parse_url($url); $arUrl['proto'] = ''; if (array_key_exists('scheme', $arUrl)) { $arUrl['scheme'] = strtolower($arUrl['scheme']); } else { $arUrl['scheme'] = 'http'; } if (!array_key_exists('port', $arUrl)) { if ($arUrl['scheme'] == 'https') { $arUrl['port'] = 443; } else { $arUrl['port'] = 80; } } if ($arUrl['scheme'] == 'https') { $arUrl['proto'] = 'ssl://'; } $arUrl['path_query'] = array_key_exists('path', $arUrl) ? $arUrl['path'] : '/'; if (array_key_exists('query', $arUrl) && strlen($arUrl['query']) > 0) { $arUrl['path_query'] .= '?' . $arUrl['query']; } return $arUrl; } public function ParseHeaders($strHeaders) { $arHeaders = explode("\n", $strHeaders); foreach ($arHeaders as $k => $header) { if ($k == 0) { if (preg_match(',HTTP\S+ (\d+),', $header, $arFind)) { $this->status = intval($arFind[1]); } } elseif(strpos($header, ':') !== false) { $arHeader = explode(':', $header, 2); if ($arHeader[0] == 'Set-Cookie') { if (($pos = strpos($arHeader[1], ';')) !== false && $pos > 0) { $cookie = trim(substr($arHeader[1], 0, $pos)); } else { $cookie = trim($arHeader[1]); } $arCookie = explode('=', $cookie, 2); $this->cookies[$arCookie[0]] = rawurldecode($arCookie[1]); } else { $this->headers[$arHeader[0]] = trim($arHeader[1]); } } } } public function setFollowRedirect($follow) { $this->follow_redirect = $follow; } public function setRedirectMax($n) { $this->redirectMax = $n; } /** * @deprecated Use Bitrix\Main\Web\HttpClient */ public static function sGet($url, $follow_redirect = false) //static get { $ob = new CHTTP(); $ob->setFollowRedirect($follow_redirect); return $ob->Get($url); } /** * @deprecated Use Bitrix\Main\Web\HttpClient */ public static function sPost($url, $arPostData, $follow_redirect = false) //static post { $ob = new CHTTP(); $ob->setFollowRedirect($follow_redirect); return $ob->Post($url, $arPostData); } public function SetAdditionalHeaders($arHeader=array()) { foreach($arHeader as $name => $value) { $name = str_replace(array("\r","\n"), "", $name); $value = str_replace(array("\r","\n"), "", $value); $this->additional_headers[$name] = $value; } } /** Static Get with the ability to add headers and set the http timeout * @deprecated Use Bitrix\Main\Web\HttpClient * @static * @param $url * @param array $arHeader * @param int $httpTimeout * @return bool|string */ public static function sGetHeader($url, $arHeader = array(), $httpTimeout = 0) { $httpTimeout = intval($httpTimeout); $ob = new CHTTP(); if(!empty($arHeader)) $ob->SetAdditionalHeaders($arHeader); if($httpTimeout > 0) $ob->http_timeout = $httpTimeout; return $ob->Get($url); } /** Static Post with the ability to add headers and set the http timeout * @deprecated Use Bitrix\Main\Web\HttpClient * @static * @param $url * @param $arPostData * @param array $arHeader * @param int $http_timeout * @return bool|string */ public static function sPostHeader($url, $arPostData, $arHeader = array(), $http_timeout = 0) { $http_timeout = intval($http_timeout); $ob = new CHTTP(); if(!empty($arHeader)) $ob->SetAdditionalHeaders($arHeader); if($http_timeout > 0) $ob->http_timeout = $http_timeout; return $ob->Post($url, $arPostData); } public static function SetStatus($status) { $bCgi = (stristr(php_sapi_name(), "cgi") !== false); if($bCgi && (!defined("BX_HTTP_STATUS") || BX_HTTP_STATUS == false)) header("Status: ".$status); else header($_SERVER["SERVER_PROTOCOL"]." ".$status); self::$lastSetStatus = $status; } public static function GetLastStatus() { return self::$lastSetStatus; } public static function SetAuthHeader($bDigestEnabled=true) { self::SetStatus('401 Unauthorized'); if(defined('BX_HTTP_AUTH_REALM')) $realm = BX_HTTP_AUTH_REALM; else $realm = "Bitrix Site Manager"; header('WWW-Authenticate: Basic realm="'.$realm.'"'); if($bDigestEnabled !== false && COption::GetOptionString("main", "use_digest_auth", "N") == "Y") { // On first try we found that we don't know user digest hash. Let ask only Basic auth first. if($_SESSION["BX_HTTP_DIGEST_ABSENT"] !== true) header('WWW-Authenticate: Digest realm="'.$realm.'", nonce="'.uniqid().'"'); } } public static function ParseAuthRequest() { $sDigest = ''; if(isset($_SERVER['PHP_AUTH_USER']) && $_SERVER['PHP_AUTH_USER'] <> '') { // Basic Authorization PHP module return array("basic"=>array( "username"=>CUtil::ConvertToLangCharset($_SERVER['PHP_AUTH_USER']), "password"=>CUtil::ConvertToLangCharset($_SERVER['PHP_AUTH_PW']), )); } elseif(isset($_SERVER['PHP_AUTH_DIGEST']) && $_SERVER['PHP_AUTH_DIGEST'] <> '') { // Digest Authorization PHP module $sDigest = $_SERVER['PHP_AUTH_DIGEST']; } else { if(isset($_SERVER['REDIRECT_REMOTE_USER']) || isset($_SERVER['REMOTE_USER'])) { $res = (isset($_SERVER['REDIRECT_REMOTE_USER'])? $_SERVER['REDIRECT_REMOTE_USER'] : $_SERVER['REMOTE_USER']); if($res <> '') { if(preg_match('/^\x20*Basic\x20+([a-zA-Z0-9+\/=]+)\s*$/D', $res, $matches)) { // Basic Authorization PHP FastCGI (CGI) $res = trim($matches[1]); $res = base64_decode($res); $res = CUtil::ConvertToLangCharset($res); list($user, $pass) = explode(':', $res, 2); if(strpos($user, $_SERVER['HTTP_HOST']."\\") === 0) $user = str_replace($_SERVER['HTTP_HOST']."\\", "", $user); elseif(strpos($user, $_SERVER['SERVER_NAME']."\\") === 0) $user = str_replace($_SERVER['SERVER_NAME']."\\", "", $user); return array("basic"=>array( "username"=>$user, "password"=>$pass, )); } elseif(preg_match('/^\x20*Digest\x20+(.*)$/sD', $res, $matches)) { // Digest Authorization PHP FastCGI (CGI) $sDigest = trim($matches[1]); } } } } if($sDigest <> '' && ($data = self::ParseDigest($sDigest))) return array("digest"=>$data); return false; } public static function ParseDigest($sDigest) { $data = array(); $needed_parts = array('nonce'=>1, 'username'=>1, 'uri'=>1, 'response'=>1); $keys = implode('|', array_keys($needed_parts)); //from php help preg_match_all('@('.$keys.')=(?:([\'"])([^\2]+?)\2|([^\s,]+))@', $sDigest, $matches, PREG_SET_ORDER); foreach ($matches as $m) { $data[$m[1]] = ($m[3]? $m[3] : $m[4]); unset($needed_parts[$m[1]]); } return ($needed_parts? false : $data); } public static function urlAddParams($url, $add_params, $options = array()) { if(count($add_params)) { $params = array(); foreach($add_params as $name => $value) { if($options["skip_empty"] && !strlen($value)) continue; if($options["encode"]) $params[] = urlencode($name).'='.urlencode($value); else $params[] = $name.'='.$value; } if(count($params)) { $p1 = strpos($url, "?"); if($p1 === false) $ch = "?"; else $ch = "&"; $p2 = strpos($url, "#"); if($p2===false) { $url = $url.$ch.implode("&", $params); } else { $url = substr($url, 0, $p2).$ch.implode("&", $params).substr($url, $p2); } } } return $url; } public static function urlDeleteParams($url, $delete_params, $options = array()) { $url_parts = explode("?", $url, 2); if(count($url_parts) == 2 && strlen($url_parts[1]) > 0) { if($options["delete_system_params"]) $delete_params = array_merge($delete_params, \Bitrix\Main\HttpRequest::getSystemParameters()); $params_pairs = explode("&", $url_parts[1]); foreach($params_pairs as $i => $param_pair) { $name_value_pair = explode("=", $param_pair, 2); if(count($name_value_pair) == 2 && in_array($name_value_pair[0], $delete_params)) unset($params_pairs[$i]); } if(empty($params_pairs)) return $url_parts[0]; else return $url_parts[0]."?".implode("&", $params_pairs); } return $url; } public static function urnEncode($str, $charset = false) { /** @global CMain $APPLICATION */ global $APPLICATION; $result = ''; $arParts = preg_split("#(://|:\\d+/|/|\\?|=|&)#", $str, -1, PREG_SPLIT_DELIM_CAPTURE); if($charset === false) { foreach($arParts as $i => $part) { $result .= ($i % 2) ? $part : rawurlencode($part); } } else { foreach($arParts as $i => $part) { $result .= ($i % 2) ? $part : rawurlencode($APPLICATION->ConvertCharset($part, LANG_CHARSET, $charset)); } } return $result; } public static function urnDecode($str, $charset = false) { /** @global CMain $APPLICATION */ global $APPLICATION; $result = ''; $arParts = preg_split("#(://|:\\d+/|/|\\?|=|&)#", $str, -1, PREG_SPLIT_DELIM_CAPTURE); if($charset === false) { foreach($arParts as $i => $part) { $result .= ($i % 2) ? $part : rawurldecode($part); } } else { foreach($arParts as $i => $part) { $result .= ($i % 2) ? $part : rawurldecode($APPLICATION->ConvertCharset($part, LANG_CHARSET, $charset)); } } return $result; } // search for /../ and ulrencoded /../ public static function isPathTraversalUri($uri) { if (($pos = strpos($uri, "?")) !== false) $uri = substr($uri, 0, $pos); $uri = trim($uri); return preg_match("#(?:/|2f|^|\\\\|5c)(?:(?:%0*(25)*2e)|\\.){2,}(?:/|%0*(25)*2f|\\\\|%0*(25)*5c|$)#i", $uri) ? true : false; } } function GetMenuTypes($site=false, $default_value=false) { if($default_value === false) $default_value = "left=".GetMessage("main_tools_menu_left").",top=".GetMessage("main_tools_menu_top"); $mt = COption::GetOptionString("fileman", "menutypes", $default_value, $site); if (!$mt) return Array(); $armt_ = unserialize(stripslashes($mt)); $armt = Array(); if (is_array($armt_)) { foreach($armt_ as $key => $title) { $key = trim($key); if (strlen($key) == 0) continue; $armt[$key] = trim($title); } return $armt; } $armt_ = explode(",", $mt); for ($i = 0, $c = count($armt_); $i < $c; $i++) { $pos = strpos($armt_[$i], '='); if ($pos === false) continue; $key = trim(substr($armt_[$i], 0, $pos)); if (strlen($key) == 0) continue; $armt[$key] = trim(substr($armt_[$i], $pos + 1)); } return $armt; } function SetMenuTypes($armt, $site = '', $description = false) { return COption::SetOptionString('fileman', "menutypes", addslashes(serialize($armt)), $description, $site); } function ParseFileContent($filesrc, $params = array()) { ///////////////////////////////////// // Parse prolog, epilog, title ///////////////////////////////////// $filesrc = trim($filesrc); $prolog = $epilog = ''; $php_doubleq = false; $php_singleq = false; $php_comment = false; $php_star_comment = false; $php_line_comment = false; $php_st = "<"."?"; $php_ed = "?".">"; if($params["use_php_parser"] && substr($filesrc, 0, 2) == $php_st) { $phpChunks = PHPParser::getPhpChunks($filesrc); if (!empty($phpChunks)) { $prolog = $phpChunks[0]; $filesrc = substr($filesrc, strlen($prolog)); } } elseif(substr($filesrc, 0, 2)==$php_st) { $fl = strlen($filesrc); $p = 2; while($p < $fl) { $ch2 = substr($filesrc, $p, 2); $ch1 = substr($ch2, 0, 1); if($ch2==$php_ed && !$php_doubleq && !$php_singleq && !$php_star_comment) { $p+=2; break; } elseif(!$php_comment && $ch2=="//" && !$php_doubleq && !$php_singleq) { $php_comment = $php_line_comment = true; $p++; } elseif($php_line_comment && ($ch1=="\n" || $ch1=="\r" || $ch2=="?>")) { $php_comment = $php_line_comment = false; } elseif(!$php_comment && $ch2=="/*" && !$php_doubleq && !$php_singleq) { $php_comment = $php_star_comment = true; $p++; } elseif($php_star_comment && $ch2=="*/") { $php_comment = $php_star_comment = false; $p++; } elseif(!$php_comment) { if(($php_doubleq || $php_singleq) && $ch2=="\\\\") { $p++; } elseif(!$php_doubleq && $ch1=='"') { $php_doubleq=true; } elseif($php_doubleq && $ch1=='"' && substr($filesrc, $p-1, 1)!='\\') { $php_doubleq=false; } elseif(!$php_doubleq) { if(!$php_singleq && $ch1=="'") { $php_singleq=true; } elseif($php_singleq && $ch1=="'" && substr($filesrc, $p-1, 1)!='\\') { $php_singleq=false; } } } $p++; } $prolog = substr($filesrc, 0, $p); $filesrc = substr($filesrc, $p); } elseif(preg_match("'(.*?.*?)(.*)$'is", $filesrc, $reg)) { $prolog = $reg[1]; $filesrc= $reg[2]; } $title = PHPParser::getPageTitle($filesrc, $prolog); $arPageProps = array(); if(strlen($prolog)) { if (preg_match_all("'\\\$APPLICATION->SetPageProperty\\(([\"\\'])(.*?)(? $m1) { $arPageProps[UnEscapePHPString($m1, $out[1][$i])] = UnEscapePHPString($out[4][$i], $out[3][$i]); } } } if(substr($filesrc, -2) == "?".">") { if (isset($phpChunks) && count($phpChunks) > 1) { $epilog = $phpChunks[count($phpChunks)-1]; $filesrc = substr($filesrc, 0, -strlen($epilog)); } else { $p = strlen($filesrc) - 2; $php_start = "<"."?"; while(($p > 0) && (substr($filesrc, $p, 2) != $php_start)) $p--; $epilog = substr($filesrc, $p); $filesrc = substr($filesrc, 0, $p); } } return array( "PROLOG" => $prolog, "TITLE" => $title, "PROPERTIES" => $arPageProps, "CONTENT" => $filesrc, "EPILOG" => $epilog, ); } function EscapePHPString($str, $encloser = '"') { if($encloser == "'") { $from = array("\\", "'"); $to = array("\\\\", "\\'"); } else { $from = array("\\", "\$", "\""); $to = array("\\\\", "\\\$", "\\\""); } return str_replace($from, $to, $str); } function UnEscapePHPString($str, $encloser = '"') { if($encloser == "'") { $from = array("\\\\", "\\'"); $to = array("\\", "'"); } else { $from = array("\\\\", "\\\$", "\\\""); $to = array("\\", "\$", "\""); } return str_replace($from, $to, $str); } function CheckSerializedData($str, $max_depth = 200) { if(preg_match('/(^|;)[OC]\\:\\+{0,1}\\d+:/', $str)) // serialized objects { return false; } // check max depth in PHP 5.3.0 and earlier if(!version_compare(phpversion(),"5.3.0",">")) { $str1 = preg_replace('/[^{}]+/'.BX_UTF_PCRE_MODIFIER, '', $str); $cnt = 0; for ($i=0,$len=strlen($str1);$i<$len;$i++) { // we've just cleared all possible utf-symbols, so we can use [] syntax if ($str1[$i]=='}') $cnt--; else { $cnt++; if ($cnt > $max_depth) break; } } return $cnt <= $max_depth; } else { return true; } } function NormalizePhone($number, $minLength = 10) { $minLength = intval($minLength); if ($minLength <= 0 || strlen($number) < $minLength) { return false; } if (strlen($number) >= 10 && substr($number, 0, 2) == '+8') { $number = '00'.substr($number, 1); } $number = preg_replace("/[^0-9\#\*,;]/i", "", $number); if (strlen($number) >= 10) { if (substr($number, 0, 2) == '80' || substr($number, 0, 2) == '81' || substr($number, 0, 2) == '82') { } else if (substr($number, 0, 2) == '00') { $number = substr($number, 2); } else if (substr($number, 0, 3) == '011') { $number = substr($number, 3); } else if (substr($number, 0, 1) == '8') { $number = '7'.substr($number, 1); } else if (substr($number, 0, 1) == '0') { $number = substr($number, 1); } } return $number; } function bxmail($to, $subject, $message, $additional_headers="", $additional_parameters="", \Bitrix\Main\Mail\Context $context=null) { if (empty($context)) { $context = new \Bitrix\Main\Mail\Context(); } $event = new \Bitrix\Main\Event( 'main', 'OnBeforePhpMail', array( 'arguments' => (object) array( 'to' => &$to, 'subject' => &$subject, 'message' => &$message, 'additional_headers' => &$additional_headers, 'additional_parameters' => &$additional_parameters, 'context' => &$context, ), ) ); $event->send(); if(function_exists("custom_mail")) return custom_mail($to, $subject, $message, $additional_headers, $additional_parameters, $context); if($additional_parameters!="") return @mail($to, $subject, $message, $additional_headers, $additional_parameters); return @mail($to, $subject, $message, $additional_headers); } function bx_accelerator_reset() { if(defined("BX_NO_ACCELERATOR_RESET")) return; if(function_exists("accelerator_reset")) accelerator_reset(); elseif(function_exists("wincache_refresh_if_changed")) wincache_refresh_if_changed(); } class UpdateTools { public static function CheckUpdates() { global $USER; if(LICENSE_KEY == "DEMO") return; $days_check = intval(COption::GetOptionString('main', 'update_autocheck')); if($days_check > 0) { CUtil::SetPopupOptions('update_tooltip', array('display'=>'on')); $update_res = unserialize(COption::GetOptionString('main', '~update_autocheck_result')); if(!is_array($update_res)) $update_res = array("check_date"=>0, "result"=>false); if(time() > $update_res["check_date"]+$days_check*86400) { if($USER->CanDoOperation('install_updates')) { require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/classes/general/update_client.php"); $result = CUpdateClient::IsUpdateAvailable($arModules, $strError); $modules = array(); foreach($arModules as $module) $modules[] = $module["@"]["ID"]; if($strError <> '' && COption::GetOptionString('main', 'update_stop_autocheck', 'N') == 'Y') COption::SetOptionString('main', 'update_autocheck', ''); COption::SetOptionString('main', '~update_autocheck_result', serialize(array( "check_date"=>time(), "result"=>$result, "error"=>$strError, "modules"=>$modules, ))); } } } } public static function SetUpdateResult() { COption::SetOptionString('main', '~update_autocheck_result', serialize(array( "check_date"=>time(), "result"=>false, "error"=>"", "modules"=>array(), ))); } public static function SetUpdateError($strError) { $update_res = unserialize(COption::GetOptionString('main', '~update_autocheck_result')); if(!is_array($update_res)) $update_res = array("check_date"=>0, "result"=>false); if($strError <> '') $update_res["result"] = false; $update_res["error"] = $strError; COption::SetOptionString('main', '~update_autocheck_result', serialize($update_res)); } public static function GetUpdateResult() { $update_res = false; if(intval(COption::GetOptionString('main', 'update_autocheck')) > 0) $update_res = unserialize(COption::GetOptionString('main', '~update_autocheck_result')); if(!is_array($update_res)) $update_res = array("result"=>false, "error"=>"", "modules"=>array()); $update_res['tooltip'] = ''; if($update_res["result"] == true || $update_res["error"] <> '') { $updOptions = CUtil::GetPopupOptions('update_tooltip'); if($updOptions['display'] <> 'off') { if($update_res["result"] == true) $update_res['tooltip'] = GetMessage("top_panel_updates").(($n = count($update_res["modules"])) > 0? GetMessage("top_panel_updates_modules", array("#MODULE_COUNT#"=>$n)) : ''); elseif($update_res["error"] <> '') $update_res['tooltip'] = GetMessage("top_panel_updates_err").' '.$update_res["error"].'
'.GetMessage("top_panel_updates_settings").''; } } return $update_res; } } class CSpacer { var $iMaxChar; var $symbol; function __construct($iMaxChar, $symbol) { $this->iMaxChar = $iMaxChar; $this->symbol = $symbol; } function InsertSpaces($string) { return preg_replace_callback('/(^|>)([^<>]+)(<|$)/', array($this, "__InsertSpacesCallback"), $string); } function __InsertSpacesCallback($arMatch) { return $arMatch[1].preg_replace("/([^() \\n\\r\\t%!?{}\\][-]{".$this->iMaxChar."})/".BX_UTF_PCRE_MODIFIER,"\\1".$this->symbol, $arMatch[2]).$arMatch[3]; } } function ini_get_bool($param) { $val = ini_get($param); return ($val == '1' || strtolower($val) == 'on'); } /** * Sorting array by column. * You can use short mode: Collection::sortByColumn($arr, 'value'); This is equal Collection::sortByColumn($arr, array('value' => SORT_ASC)) * * Pay attention: if two members compare as equal, their relative order in the sorted array is undefined. The sorting is not stable. * * More example: * Collection::sortByColumn($arr, array('value' => array(SORT_NUMERIC, SORT_ASC), 'attr' => SORT_DESC), array('attr' => 'strlen'), 'www'); * * @param array $array * @param string|array $columns * @param string|array $callbacks * @param bool $preserveKeys If false numeric keys will be re-indexed. If true - preserve. * @param null $defaultValueIfNotSetValue If value not set - use $defaultValueIfNotSetValue (any cols) */ function sortByColumn(array &$array, $columns, $callbacks = '', $defaultValueIfNotSetValue = null, $preserveKeys = false) { \Bitrix\Main\Type\Collection::sortByColumn($array, $columns, $callbacks, $defaultValueIfNotSetValue, $preserveKeys); } function getLocalPath($path, $baseFolder = "/bitrix") { $root = rtrim($_SERVER["DOCUMENT_ROOT"], "\\/"); static $hasLocalDir = null; if($hasLocalDir === null) { $hasLocalDir = is_dir($root."/local"); } if($hasLocalDir && file_exists($root."/local/".$path)) { return "/local/".$path; } elseif(file_exists($root.$baseFolder."/".$path)) { return $baseFolder."/".$path; } return false; } /** * Set session expired, e.g. if you want to destroy session after this hit * @param bool $pIsExpired */ function setSessionExpired($pIsExpired = true) { $_SESSION["IS_EXPIRED"] = $pIsExpired; } /** * @return bool */ function isSessionExpired() { return isset($_SESSION["IS_EXPIRED"]) && $_SESSION["IS_EXPIRED"] === true; }
Fatal error: Uncaught Error: Class 'CHTTP' not found in /home/admin/web/on-lineclimat.ru/public_html/bitrix/modules/main/include/urlrewrite.php:114 Stack trace: #0 /home/admin/web/on-lineclimat.ru/public_html/bitrix/urlrewrite.php(2): include_once() #1 {main} thrown in /home/admin/web/on-lineclimat.ru/public_html/bitrix/modules/main/include/urlrewrite.php on line 114