(function(window){function OCMCheckoutModule(callback_fn){var modules={};var interface={shipping_input_selector:'input[name="shipping_method"]',shipping_container_selector:"div",shipping_key:"shipping_method",shippings_key:"shipping_methods",shipping_validate_route:/shipping_method\/save/,total_refresh_route:/payment_method\/save/i,xoffer_selector:"#collapse-checkout-confirm:prepend",order_data_keys:false,defer_update:false,city_selector:false,setShippingMethod:function(){},setTotals:function(){},refreshShipping:function(){},getOrderData:function(){},setOrderData:function(){},hideLoader:function(){},showLoader:function(){}};this.detectModule=function detectModule(){var name;if(window.qc&&window.qc.d_quickcheckout_store){name="qc_d"}else if(window.qc&&(window.qc.PaymentMethod||window.qc.ShippingMethod)){name="qc_d_latency"}else if(window._QuickCheckout||window._QuickCheckoutData){name="journal3"}else if($(".journal-checkout").length){name="journal2"}else if(window.validateShippingMethod||window.validatePaymentMethod){name="qc_msg"}else if(window.xcart){name="best_checkout"}else if($("#onepagecheckout").length){name="onepagecheckout"}else if($("#input-order-status").length&&$("#input-store").length){name="oc_admin"}else if($(".nicocheckout").length){name="nicocheckout"}else{name="default_oc"}return name};this.getDetail=function getDetail(){var name=this.detectModule(),_return=modules[name]();_return["name"]=name;return _return};modules["qc_d"]=function qc_d(){var _hideSpinner=qc.hideSpinner;qc.hideSpinner=function(){_hideSpinner();callback_fn.call(null)};function getOrderData(){return qc.d_quickcheckout_store.getState()}function setOrderData(original_data,modified_data,xshippingpro_methods){if(xshippingpro_methods&&Object.keys(xshippingpro_methods).length){qc.updateState(["session","shipping_methods"],modified_data.shipping_methods)}}function setTotals(){$(".qc-product-quantity")[0].dispatchEvent(new Event("change"))}function hideLoader(){setTimeout(function(){qc.hideLoader()},10)}function showLoader(){qc.showLoader()}return $.extend({},interface,{order_data_keys:["session"],getOrderData:getOrderData,setOrderData:setOrderData,setTotals:setTotals,hideLoader:hideLoader,showLoader:showLoader,defer_update:true,xoffer_selector:'div[data-name="cart"] .step:prepend',shipping_validate_route:/d_quickcheckout\/confirm/i,total_refresh_route:/payment_method|shipping_method|cart/i})};modules["qc_d_latency"]=function qc_d_latency(){function setTotals(){qc.shippingMethod.update($("#shipping_method_form").serializeArray())}return $.extend({},interface,{setTotals:setTotals,xoffer_selector:"#cart_view:prepend",total_refresh_route:/payment_method|shipping_method|cart/i})};modules["journal3"]=function journal3(){function getOrderData(){return _QuickCheckout._data}function setTotals(){_QuickCheckout.save()}function setShippingMethod(){_QuickCheckout.save()}return $.extend({},interface,{shipping_key:"shipping_code",order_data_keys:["order_data","response","response.order_data"],getOrderData:getOrderData,setTotals:setTotals,xoffer_selector:".cart-section:before",setShippingMethod:setShippingMethod,shipping_validate_route:/checkout\/save\&confirm=true/,total_refresh_route:/checkout\/save|cart_/i})};modules["journal2"]=function journal2(){function setTotals(){$(document).trigger("journal_checkout_reload_cart",true)}function setShippingMethod(){$(document).trigger("journal_checkout_shipping_changed",$(interface.shipping_input_selector+":checked").val())}function hideLoader(){triggerLoadingOff()}function showLoader(){triggerLoadingOn()}function refreshShipping(){$(document).trigger("journal_checkout_address_changed","payment")}return $.extend({},interface,{setTotals:setTotals,setShippingMethod:setShippingMethod,hideLoader:hideLoader,xoffer_selector:".checkout-cart:before",city_selector:"input[name='payment_city']",refreshShipping:refreshShipping,showLoader:showLoader,total_refresh_route:/cart/i})};modules["qc_msg"]=function qc_msg(){function setTotals(){$.get("index.php?route=extension/quickcheckout/cart",function(html){$("#cart1 .quickcheckout-content").html(html)})}function refreshShipping(){$("input[name='postcode']").trigger("focusout")}function hideLoader(){$("#button-payment-method").prop("disabled",false);$("#button-payment-method").button("reset");$(".fa-spinner").remove()}function showLoader(){$("#button-payment-method").prop("disabled",true);$("#button-payment-method").button("loading");$("#button-payment-method").after('')}return $.extend({},interface,{shipping_container_selector:"tr",setTotals:setTotals,hideLoader:hideLoader,showLoader:showLoader,xoffer_selector:"#cart1:before",city_selector:"input[name='city']",refreshShipping:refreshShipping,shipping_validate_route:/terms\/validate/i,total_refresh_route:/cart/i})};modules["best_checkout"]=function best_checkout(){function setTotals(){$('input[name^="quantity"').first().trigger("change")}function hideLoader(){hideBar()}function showLoader(){showBar()}return $.extend({},interface,{shipping_container_selector:"tr",setTotals:setTotals,hideLoader:hideLoader,showLoader:showLoader,shipping_validate_route:/validate&showpayment/i,xoffer_selector:"#totals:before",total_refresh_route:/payment_method|shipping_method|cart/i})};modules["onepagecheckout"]=function onepagecheckout(){function setTotals(){LoadCart()}function hideLoader(){$("#onepagecheckout #button-register").button("reset")}function showLoader(){$("#onepagecheckout #button-register").button("loading")}return $.extend({},interface,{setTotals:setTotals,hideLoader:hideLoader,showLoader:showLoader,shipping_validate_route:/validate\/validateForm/i,xoffer_selector:".content-shopping-cart:before",total_refresh_route:/cart/i})};modules["nicocheckout"]=function default_oc(){function setTotals(){$('input[name="shipping_method"]:checked').trigger("click")}return $.extend({},interface,{setTotals:setTotals,shipping_validate_route:/cart/i,xoffer_selector:".shipping-method:after",total_refresh_route:/cart/i})};modules["default_oc"]=function default_oc(){function setTotals(){$.get("index.php?route=checkout/confirm",function(html){$("#collapse-checkout-confirm .panel-body").html(html)})}return $.extend({},interface,{setTotals:setTotals})};modules["oc_admin"]=function oc_admin(){function setTotals(){$("#button-refresh").trigger("click")}return $.extend({},interface,{setTotals:setTotals,xoffer_selector:"#tab-total:prepend",total_refresh_route:/cart\/products/i})}}window.OCMCheckoutModule=OCMCheckoutModule})(window);(function(){function XshippingproEstimator(){var tpl={header:'
",country:'',zone:'",postal:'',btn:'",quote:'{title} {cost}
'};this.pouplateCountry=function(){if(_xshippingpro["country"]){var _options='";$.each(_xshippingpro["country"],function(i,item){var selected=_xshippingpro["meta"]["country_id"]==item.country_id?"selected":"";_options+=""});$("#xshippingpro-country").html(_options)}};this.initEvent=function(){$("#xshippingpro-country").on("change",_click_on_country);$("#estimate-xshipping").on("click",_click_on_button)};this.getQuoteBox=function(){var quote_box='';quote_box+=tpl.header;quote_box+='
';quote_box+='';if(_xshippingpro["meta"]["country"]){quote_box+=tpl.country}if(_xshippingpro["meta"]["zone"]){quote_box+=tpl.zone}if(_xshippingpro["meta"]["postal"]){quote_box+=tpl.postal}quote_box+="
";quote_box+=tpl.btn;quote_box+="
";return quote_box};function _click_on_country(){$('#xshippingpro-box input[type="text"], #xshippingpro-box select').removeClass("xshippingpro-error");var country_id=this.value||_xshippingpro["meta"]["country_id"];$.ajax({url:_xshippingpro["url"]["country"]+"&country_id="+country_id,dataType:"json",success:function(json){var _options='";if(json["zone"]){$.each(json["zone"],function(i,item){_options+='"})}$("#xshippingpro-zone").html(_options)}})}function _click_on_button(){$(".xshippingpro-quotes").remove();$('#xshippingpro-box input[type="text"], #xshippingpro-box select').removeClass("xshippingpro-error");var is_valid=true;$('#xshippingpro-box input[type="text"], #xshippingpro-box select').each(function(){if(!$(this).val()){is_valid=false;$(this).addClass("xshippingpro-error")}});if(!is_valid){return}var parent_inputs=$("#xshippingpro-box").parent().find('input[name="quantity"], input[name^="option"], select[name^="option"]').serializeArray();var data=$("#xshippingpro-box :input").serializeArray().concat(parent_inputs);$.ajax({url:_xshippingpro["url"]["estimate"],dataType:"json",data:data,type:"POST",beforeSend:function(){$("#estimate-xshipping").attr("disabled",true).find("i").css("display","inline")},complete:function(){$("#estimate-xshipping").attr("disabled",false).find("i").css("display","none")},success:function(json){var _shippping_data='';if(json&&json.quote){$.each(json.quote,function(i,item){_shippping_data+=tpl.quote.replace("{title}",item.title).replace("{cost}",item.text)})}else if(json&&json.message){_shippping_data+='
'+json.message+"
"}else{_shippping_data+='
'+_xshippingpro["lang"]["no_data"]+"
"}_shippping_data+="
";$("#xshippingpro-box").after(_shippping_data)}})}var quote_box=this.getQuoteBox();$(_xshippingpro["selectors"]["estimator"]).after(quote_box);this.pouplateCountry();this.initEvent();if(_xshippingpro["meta"]["country_id"]){_click_on_country()}}function XshippingproExtender(){var _error_template=' __MSG__
';var _request_cache={};var _request_counter=1;var _current_methods=[];var _grand_method_count=0;this.chmod=new OCMCheckoutModule(_onAjaxReqComplete).getDetail();this.shipping_key=this.chmod.shipping_key;this.shippings_key=this.chmod.shippings_key;this.xshippingpro_delimiter="xshippingpro.xshippingpro";this.option_delimiter=/_\d+/;this.option_present_regex=/xshippingpro\.xshippingpro\d+_\d+/;this.option_replace_regex=/xshippingpro\.xshippingpro\d+/;this.option_sanitize_regex=/&?_xshippingpro[%\w]+=xshippingpro\.xshippingpro\d+_\d+/;this.free_option_delimiter="!!--";this.user_data={};this.sub_options=_xshippingpro&&_xshippingpro["sub_options"]||false;this.free_options=[];this.desc=_xshippingpro&&_xshippingpro["desc"]||false;this.logo=_xshippingpro&&_xshippingpro["logo"]||false;this.city_rule=_xshippingpro&&_xshippingpro["city"]||false;this.payment_rule=_xshippingpro&&_xshippingpro["payment"]||false;this.force_update=false;this.scroll_top=false;this.node_zero_recheck=true;var _self=this;this.isXshipping=function isXshipping(code){return code.indexOf(this.xshippingpro_delimiter)!==-1};this.getTabIdFromCode=function getTabIdFromCode(code){return code.replace(this.xshippingpro_delimiter,"")};this.getTabIdFromOptionCode=function getTabIdFromOptionCode(code){code=code.replace(this.option_delimiter,"");return this.getTabIdFromCode(code)};this.getCodeFromOptionCode=function getCodeFromOptionCode(code){return code.replace(this.option_delimiter,"")};this.isOptionCode=function isOptionCode(code){return this.isXshipping(code)&&code.indexOf("_")!==-1};this.getOptionsByCode=function getOptionsByCode(code){var _dd="";var tab_id=this.getTabIdFromCode(code);var index=this.free_options.indexOf(tab_id);if(this.sub_options[tab_id]){_dd+='";$.each(this.sub_options[tab_id],function(i,item){var selected=_self.user_data.option==item.code?"selected":"";var title=index!==-1?item.title.replace(/\(.*\d+\)/,""):item.title;_dd+=""})}if(_dd){_dd='"}return _dd};this.isValidShippingCode=function isValidShippingCode(code){if(!$.isPlainObject(code)&&/<(tr|td|div|label|input|span).*\/>/.test(code)){this.force_update=true;return false}return true};this.validate=function validate(){$(".xshippingpro-option-error").remove();var is_valid=true,selected_node=$(this.chmod.shipping_input_selector+":checked"),code=selected_node.val();if(this.isXshipping(code)){var tab_id=this.getTabIdFromCode(code);if(this.sub_options[tab_id]){var option_node=$('select[name="_xshippingpro['+tab_id+'][option]"]');if(!option_node.length){this.setOptionByNode(selected_node);option_node=$('select[name="_xshippingpro['+tab_id+'][option]"]')}if(!this.user_data.option){is_valid=false;option_node.after(''+_xshippingpro["lang"]["error"]+"
")}}}return is_valid};this.setDescByNode=function setDescByNode(node,tab_id){var _desc,$this=$(node);if(!this.desc)return;if(this.desc[tab_id]){_desc=''+this.desc[tab_id]+"
";$this.closest(this.chmod.shipping_container_selector).after(_desc)}};this.setLogoByNode=function setLogoByNode(node,tab_id){var _logo,$this=$(node),img_regex=/\.(png|jpg|bmp|jpeg|webp|gif)/i;if(!this.logo)return;if(this.logo[tab_id]){_logo=img_regex.test(this.logo[tab_id])?'
':'';$this.after(_logo)}};this.setOptionByNode=function setOptionByNode(node){var $this=$(node),$closest=$this.closest(this.chmod.shipping_container_selector),code=$this.val();$(".xshippingpro-options").remove();if(/xshippingpro/.test(code)){var dd=this.getOptionsByCode(code);if(!dd)return;if($closest.next().hasClass("xshippingpro-desc")){$closest.next().after(dd)}else{$closest.after(dd)}}};this.parseAndGetData=function parseAndGetData(data,needle_key){var data_keys=this.chmod.order_data_keys,_return,i,keys,key;if(!needle_key){needle_key=this.shipping_key}if(!data||!$.isPlainObject(data)||data[needle_key]){_return=data}else if(data_keys&&$.isArray(data_keys)){for(i=0;i0&&$("div.xshippingpro-desc").length==0){is_changed=true}_current_methods=new_methods;if(is_changed){$(".xshippingpro-options, .xshippingpro-desc, .xshippingpro-logo, .xshippingpro-icon").remove();$.each(xshipping_nodes,function(i,node){var code=$(node).val(),text,closest;if(_self.isOptionCode(code)){closest=$(node).closest(_self.chmod.shipping_container_selector);text=closest.text();closest.remove();_self.updateOptionPriceInfo(text,code);if($(node).prop("checked")){_self.user_data.option=code;parent_code=_self.getCodeFromOptionCode(code);parent_node=$('input[value="'+parent_code+'"]');parent_node.prop("checked",true);_self.setOptionByNode(parent_node)}}else{tab_id=_self.getTabIdFromCode(code);if(_self.sub_options&&_self.sub_options[tab_id]){if($(node).prop("checked")){_self.setOptionByNode(node)}}_self.setDescByNode(node,tab_id);_self.setLogoByNode(node,tab_id)}});_self.deferUpdateBychmod();_self.force_update=false;_self.node_zero_recheck=true}else{selected_node=$(_self.chmod.shipping_input_selector+":checked");if(selected_node.length&&_self.isXshipping(selected_node.val())){_self.setOptionByNode(selected_node)}}}function _getJSONData(data){var _array=data.serializeArray(),json={};$.map(_array,function(item){json[item["name"]]=item["value"]});return json}function _flatten(data){var _return={};$.each(data,function(index,item){if(/\[\]$/.test(item.name)){var name=item.name.replace(/\[\]$/,"");if(!_return[name])_return[name]=[];_return[name].push(item.value)}else{_return[item.name]=item.value}});return _return}function _onAjaxSuccess(data,status,jqXhr){var order_data,xshippingpro_methods;if(_request_cache[jqXhr.xid]){order_data=_self.parseAndGetData(data);if(order_data&&order_data[_self.shipping_key]&&_self.isValidShippingCode(order_data[_self.shipping_key])){_self.revertToParentCode(order_data,false)}order_data=_self.parseAndGetData(data,_self.shippings_key);if(order_data&&order_data[_self.shippings_key]){xshippingpro_methods=_self.removeOptionMethods(order_data);_self.chmod.setOrderData(data,order_data,xshippingpro_methods)}_request_cache[jqXhr.xid].call(null,data,status,jqXhr);_request_cache[jqXhr.xid]=null}}function _onAjaxReq(options,originalOptions,jqXhr){var option_node;if(_self.sub_options){option_node=$(".xshippingpro-option").first();if(option_node.length){_self.user_data.option=option_node.val()}if(options.data&&options.data.indexOf("_xshippingpro")!==-1){options.data=options.data.replace(_self.option_sanitize_regex,"")}}if(options.data&&_self.user_data.option&&!_self.option_present_regex.test(options.data)&&options.data.indexOf(_self.getCodeFromOptionCode(_self.user_data.option))!==-1){options.data=options.data.replace(_self.option_replace_regex,_self.user_data.option)}if(_self.isValidationReq(options.url,option_node)&&(options.dataType=="json"||!options.dataType)){if(!_self.validate()){jqXhr.abort();_self.chmod.hideLoader();$("html, body").animate({scrollTop:_self.scroll_top.offset().top},1e3);return false}}if(options.dataType=="json"||!options.dataType){jqXhr.xid=_request_counter++;_request_cache[jqXhr.xid]=options.success;options.success=_onAjaxSuccess}}if(_xshippingpro["is_checkout"]){this.initEvent()}this.validate=this.validate.bind(this)}new XshippingproEstimator;new XshippingproExtender})();