var productCodeRules=minerva_configurator_vars.product_code_rules;function updateConfigurationRecap(){var e=jQuery("#pills-recap"),o=0;getComponentsCtx().each((function(a,t){var n=jQuery(t),r=n.data("component-id"),i=(n.data("component-type"),getActiveSurfaceCtx(n)),l=(i.data("surface-code"),jQuery(".surface-label",i).text().trim()),s=getActiveColorCtx(i),d=s.data("color-code"),c=""!=s.attr("title")?s.attr("title"):s.attr("data-original-title"),u=getColorPaletteCtx(s),m=jQuery('.tech-specs.component[data-component-id="'+r+'"]',e);o"," ")+" - "+l)}));var a=getRefillOptionsCtx(),t=getSelectedRefillCtx(a),n=t.data("refill-id"),r=getInkColorOptionsCtx(a,n),i=getActiveInkColorCtx(r),l=i.data("option"),s=getRefillDiameterOptionsCtx(a,n),d=getRefillDiameterOptionCtx(l,"=",s),c=getSelectedDiameterCtx(d),u=getRefillColorOptionsCtx(a,n),m=getActiveRefillColorCtx(u),p="";u.length>0&&-1==jQuery("label",t.closest(".refill-radio")).text().toLowerCase().indexOf(jQuery("label",m).text().trim().toLowerCase())&&(p=" - "+jQuery("label",m).text().trim());var f=[jQuery("label",t.closest(".refill-radio")).html()+p,jQuery("label",i).text().trim(),jQuery("label",c).text().trim()];jQuery(".tech-specs.refill",e).each((function(e,o){var a=jQuery(o);jQuery(".value",a).html(f[e])})),jQuery(".tech-specs .moq-value",e).html(o),jQuery(".tech-specs.model .product-code",e).text(getProductCode()),jQuery(".selected-model .product-code").text(getProductCode()),jQuery("#saved-configurations-container").fadeOut(),QRCodeEnabled?jQuery(".tech-specs .qrcode",e).show():jQuery(".tech-specs .qrcode",e).hide()}function getConfigurationData(e){var o=getModelId(),a=getModelFullName(),t=getModelSlug(),n=jQuery("#pills-recap"),r=jQuery(".tech-specs.model .model",n).text().trim(),i=jQuery(".tech-specs.model .product-code",n).text().trim();i=r+" "+i;var l=new Array;getComponentsCtx().each((function(e,o){var a=jQuery(o),t=getActiveSurfaceCtx(a),n=getActiveColorCtx(t),r={componentLabel:a.data("component-label"),componentId:a.data("component-id"),surfaceCode:t.data("surface-code"),surfaceId:t.data("surface-id"),colorCode:n.data("asset-color-code")};l.push(r)}));var s=new Array,d=new Array;jQuery('.pen-preview.imprint .print-area[data-visible="true"]').each((function(e,o){var a=jQuery(o),t=a.data("area-id"),n=a.data("area-code"),r=jQuery('#v-pills-printareas-tab .nav-link[data-area-id="'+t+'"] a').text().trim();if(-1==jQuery.inArray(t,d)&&jQuery(".print-area-content",a).length>0){var i=jQuery(".print-area-content span",a),l=i.length>0?"text":"image",c="";if("text"==l){var u=i.hasClass("input")?i.text():i.html(),m=i.css("font-weight");"400"!=m&&"normal"!=m||(m="normal"),"700"!=m&&"bold"!=m||(m="bold"),c={text:u,fontFamily:i.css("font-family"),fontSize:parseInt(i.css("font-size")),fontWeight:m,fontStyle:i.css("font-style"),fontColor:rgb2hex(i.css("color")),textAlign:i.css("text-align"),textRotation:i.parent().data("text-rotation")}}else{var p=jQuery(".print-area-content img",a).attr("src");c={base64:p},jQuery.each(printAreaContentInfo[t],(function(e,o){c[e]=o}))}var f=1==a.data("movable")?a.css("top"):"",g={areaLabel:r,areaId:t,areaCode:n,dataType:l,dataContent:c,topOffset:f};s.push(g)}d.push(t)}));var c=getRefillOptionsCtx(),u=getSelectedRefillCtx(c),m=u.data("refill-id"),p=getInkColorOptionsCtx(c,m),f=getActiveInkColorCtx(p),g=f.data("option"),v=getRefillDiameterOptionsCtx(c,m),y=getRefillDiameterOptionCtx(g,"=",v),h=getSelectedDiameterCtx(y),C=getRefillColorOptionsCtx(c,m),_=getActiveRefillColorCtx(C),j={refillLabel:jQuery("label",u.closest(".refill-radio")).html(),refillId:m,optionId:g,colorName:f.data("color-name"),ballDiameter:jQuery("label",h).text().trim(),refillColorCode:C.length>0?_.data("color-code"):""},Q=parseInt(jQuery(".tech-specs .moq-value",jQuery("#pills-recap")).text());switch(e){case"string":var w={productCode:i,penModelName:a,penModelId:o,penModelSlug:t,components:l,imprint:s,writingSystem:j,moq:Q,qrcode:QRCodeEnabled};return JSON.stringify(w);case"array":w=[];var x={productCode:i,penModelName:a,penModelId:o,penModelSlug:t,components:l,writingSystem:j,moq:Q,qrcode:QRCodeEnabled},b={imprint:s};return w.push(JSON.stringify(x)),w.push(JSON.stringify(b)),w;case"shortObj":return jQuery.each(l,(function(e,o){delete o.componentLabel})),[{penModelId:o,penModelSlug:t,components:l},{imprint:[]}]}}function getHTMLConfigurationSummary(){var e=jQuery("#pills-recap"),o=""}function getConfigurationSummary(){var e=jQuery("#pills-recap"),o=jQuery(".tech-specs.model .model",e).text().trim(),a=jQuery(".tech-specs.model .product-code",e).text().trim(),t=jQuery(".tech-specs.model",e).data("family-code"),n=jQuery(".tech-specs.model .writing-system",e).text().trim(),r="",i=new Array,l=o.substring(t.length)+" "+a;r+=t,i.push(t.length),r+=l+"\n",i.push(l.length),r+=n+"\n",jQuery(".tech-specs.component",e).each((function(e,o){var a=jQuery(o);"none"!=a.css("display")&&(r+=jQuery(".label",a).text().trim()+" "+jQuery(".value",a).text().trim(),jQuery(".qrcode",a).length>0&&"none"!=jQuery(".qrcode",a).css("display")&&(r+=jQuery(".qrcode",a).text()),r+="\n")}));var s=[];return jQuery(".tech-specs.refill",e).each((function(e,o){var a=jQuery(o);s.push({label:jQuery(".label",a).text().trim(),value:jQuery(".value",a).text().trim()})})),r+=s[0].label+" "+s[0].value+", ",r+=s[1].value+" "+s[1].label.replace("colour:","").trim().toLowerCase()+", ",r+=s[2].value+"\n",r+="\n",r+=jQuery(".tech-specs.moq p",e).text().trim(),i.push(r),i}function saveConfiguration(e,o,a){var t=getConfigurationData("array"),n=jQuery("#cfgname").val()?jQuery("#cfgname").val():Math.floor(1e4*Math.random()+1),r=getHTMLConfigurationSummary(),i="png",l=[];function s(e,o,a,t){var n=jQuery.Deferred();return createPreviewTemplate(e,o,a,t,!0,"all",(function(e){l.push(e),n.resolve()})),n.promise()}jQuery.when(s("hi",!1,.5,i)).done((function(){jQuery.when(s("hi",!0,1,i)).done((function(){var s={cfgData:t,cfgName:n,summary:r,imagesBase64:l,format:i,scope:a};if(is_defined(Cookies.get("instance"))){var d=JSON.parse(Cookies.get("instance"));s.userId=d.userId,_saveConfiguration(s,e,o)}else userId((function(a){s.userId=a,_saveConfiguration(s,e,o)}),(function(e){console.log(e)}))}))}))}function _saveConfiguration(e,o,a){var t=jQuery.now(),n=(getModelShortName(),getModelId()),r=getModelSlug(),i=getFullProductCode().replace(/ /g,"-"),l=(getModelTagName(),"uid"+e.userId+"_"+r+"_"+i+"_"+t),s=l+"_low."+e.format,d=l+"_hi."+e.format,c={title:[{value:e.cfgName}],type:[{target_id:"pen_configuration"}],field_model:[{value:getModelFullName()}],field_penid:[{value:n}],field_pen_image_conf:[{value:s}],field_pen_image_conf_text:[{value:d}],field_pen_text:[{value:e.summary}],field_jsonconfiguration:[{value:e.cfgData[0]}],field_jsonextendedconfiguration:[{value:e.cfgData[1]}]};if(is_defined(Cookies.get("dealer"))){var u=JSON.parse(Cookies.get("dealer"));c.field_dealer_frame=[{value:u.nid}]}var m=e.imagesBase64[0],p=e.imagesBase64[1];checkConnect((function(t,n){if(t)if(is_defined(Cookies.get("instance"))){var r=JSON.parse(Cookies.get("instance"));n=r.token,__saveConfiguration(c,m,p,s,d,e.format,n,o,a)}else userInfo(e.userId,(function(t){__saveConfiguration(c,m,p,s,d,e.format,n,o,a)}),(function(e){a(e)}));else if("anonymous"==e.scope){displayLoading(!1,null),a({status:503,responseText:"Unexpected error occurred [connect/save]",courtesyMessage:"Please reload the page and try again"})}else jQuery("#save-modal").modal("hide"),showLoginModal(),displayLoading(!1,null)}),(function(e){a(e)}))}function __saveConfiguration(e,o,a,t,n,r,i,l,s){createNode(e,i,(function(e){var i=e.nid[0].value;savePreviewImagesToFile(o,a,t,n,r,(function(){l(i)}),(function(e){s(e)}))}),(function(e){s(e)}))}function savePreviewImagesToFile(e,o,a,t,n,r,i){var l=base64ToBlob(e),s=base64ToBlob(o),d=new FormData;d.append("action","minerva_save_preview_to_file"),d.append("lowresFilename",a),d.append("hiresFilename",t),d.append("format",n),d.append("lowresImageFile",l),d.append("hiresImageFile",s),jQuery.ajax({url:minerva_common_vars.ajaxurl,type:"POST",contentType:!1,processData:!1,cache:!1,dataType:"json",data:d,success:function(e){e.lowres.success&&e.hires.success?r():i(e)},error:function(e){i(e)}})}function downloadPreviewImage(e,o,a,t,n){var r,i=jQuery("#pills-recap"),l=jQuery(".tech-specs.model .model",i).text().replace(".","_"),s=jQuery(".tech-specs.model .product-code",i).text(),d=getPrimaryComponentCtx(),c=getActiveSurfaceCtx(d),u=getActiveColorCtx(c),m=u.data("color-code"),p=(u.data("asset-color-code"),null);a=!is_defined(a)||a,t=is_defined(t)?t:"all",n=!is_defined(n)||n;var f="png";m.indexOf("-")>-1&&(m=m.substr(m.indexOf("-")+1)),r="Prodir_"+l+"_"+s+"_"+m,jQuery.when(function(e,o,a,t,n,r){var i=jQuery.Deferred();return createPreviewTemplate(e,o,a,t,n,r,(function(e){p=e,i.resolve()})),i.promise()}(e,a,o,f,n,t)).done((function(){for(var e=p.replace("data:image/png;base64,","");e.length%4>0;)p+="=";"==="==p.slice(-3)&&(p=p.slice(0,-1)),displayLoading(!1,null),jQuery("#download-modal").modal("show"),jQuery("#download-modal .modal-body img").attr("src",p).attr("alt",r).css("width","100%")}))}function updateUI(e){is_defined(e)&&e?(jQuery(".btnLogin").closest("div").hide(),jQuery(".btnSave").closest("div").show(),jQuery(".btnLogout").closest("div").show()):(jQuery(".btnLogin").closest("div").show(),jQuery(".btnSave").closest("div").hide(),jQuery(".btnLogout").closest("div").hide())}function showLoginModal(){jQuery("#login-modal").modal("show")}function showSaveModal(e){!is_defined(e)||is_defined(e)&&e?jQuery("#save-modal").modal("show"):jQuery("#save-modal").modal("hide")}jQuery(document).ready((function(e){e(".btnLogin").click((function(){showLoginModal()})),e("#login-modal").on("shown.bs.modal",(function(o){e("#username").focus()})),e("#login-modal").on("hidden.bs.modal",(function(o){var a=e(this);e(".status",a).html(""),e("#username",a).val(""),e("#password",a).val("")})),e("#login-form").on("submit",(function(o){if(o.preventDefault(),customValidation(e("#login-form"))){var a={name:e("#login-form #username").val(),pass:e("#login-form #password").val()};displayLoading(!0,"login"),login(a,(function(o){e("#login-modal").modal("toggle"),displayLoading(!1,null),updateUI(o),showSaveModal()}),(function(o){displayLoading(!1,null),console.log(o);var a=o.responseJSON;if(is_defined(a)){var t=a.message;"Sorry, unrecognized username or password."==t?e("#login-form .status").html("

"+minerva_drupal_vars.wrong_login+"

"):"This route can only be accessed by anonymous users."==t||showErrorMessage(o,e("#response-modal"))}}))}})),e(".btnSave").click((function(){showSaveModal()})),e("#save-modal").on("shown.bs.modal",(function(o){e("#cfgname").focus()})),e("#save-modal").on("hidden.bs.modal",(function(o){var a=e(this);e(".status",a).html(""),e("#cfgname",a).val("")})),e("#save-form").on("submit",(function(o){o.preventDefault(),customValidation(e("#save-form"))&&(displayLoading(!0,"save"),saveConfiguration((function(o){e("#save-modal").modal("toggle"),displayLoading(!1,null),is_defined(Cookies.get("nodeId"))?updateCookie("nodeId",o):createCookie("nodeId",o,"session"),e("#saved-configurations-container").fadeIn();var a=1e13*(Math.random()+"");e("body").append('
')}),(function(o){displayLoading(!1,null),showSaveModal(!1),console.log(o);var a=o.responseJSON;is_defined(a)&&"Access denied for user anonymous"==a?e("#save-form .status").html("

"+minerva_drupal_vars.wrong_save+"

"):showErrorMessage(o,e("#response-modal"))}),""))})),e(".btnLogout").click((function(){displayLoading(!0,"logout"),logout((function(){displayLoading(!1,null),updateUI(!1),e("#saved-configurations-container").fadeOut()}),(function(o){displayLoading(!1,null),showErrorMessage(o,e("#response-modal")),console.log(o)}))})),e(".btnDownloadPreview").on("click",(function(){var o=e(this),a=o.data("res"),t=o.data("resize")||1;displayLoading(!0,"download"),downloadPreviewImage(a,t)})),e("#download-modal img").click((function(o){download(e("#download-modal img").attr("src"),e("#download-modal img").attr("alt")+".png","image/png"),e("#download-modal").modal("hide")})),e("#download-modal .btnDownload").click((function(o){download(e("#download-modal img").attr("src"),e("#download-modal img").attr("alt")+".png","image/png")})),e("#download-modal").on("hidden.bs.modal",(function(o){e("#preview-canvas-container").html(''),e("#download-modal .modal-body img").attr("src","").attr("alt","")})),e(".btnSupport").on("click",(function(){displayLoading(!0,"init");var o=e(".selected-model .model").text().trim(),a=(""!=o&&o.toLowerCase(),null),t=Cookies.get("wp-wpml_current_language"),n=(!!is_defined(Cookies.get("dealer"))&&JSON.parse(Cookies.get("dealer")),is_defined(Cookies.get("dealer"))?minerva_drupal_vars.endpoints.support_dealer:minerva_drupal_vars.endpoints.support);if(is_defined(Cookies.get("instance"))){var r=JSON.parse(Cookies.get("instance"));a=r.userId?r.userId:null}if(a)displayLoading(!0,"save"),saveConfiguration((function(o){n=n.replace("{nid}",o),a==minerva_drupal_vars.anonymous_user.uid?logout((function(){displayLoading(!0,"redirect"),location.href=minerva_drupal_vars.host+"/"+t+n}),(function(o){displayLoading(!1,null),showErrorMessage(o,e("#response-modal")),console.log(o)})):(displayLoading(!0,"redirect"),location.href=minerva_drupal_vars.host+"/"+t+n)}),(function(o){displayLoading(!1,null),showErrorMessage(o,e("#response-modal")),console.log(o)}),"");else{var i={name:minerva_drupal_vars.anonymous_user.name,pass:minerva_drupal_vars.anonymous_user.pass};login(i,(function(){displayLoading(!0,"save"),saveConfiguration((function(o){n=n.replace("{nid}",o),logout((function(){displayLoading(!0,"redirect"),location.href=minerva_drupal_vars.host+"/"+t+n}),(function(o){displayLoading(!1,null),showErrorMessage(o,e("#response-modal")),console.log(o)}))}),(function(o){displayLoading(!1,null),showErrorMessage(o,e("#response-modal")),console.log(o)}),"anonymous")}),(function(o){displayLoading(!1,null),showErrorMessage(o,e("#response-modal")),console.log(o)}))}}))}));