// source --> https://fbpcommunity.org/wp-content/plugins/learnpress-certificates/assets/dist/js/frontend/certificates.min.js?ver=4.1.2 
!function(e){let t,n,o,a,i,c,r,s,l,d;window.LP_Certificate=function(t,n){let o,a,i,c,l,d={width:0,height:0,templateWidth:0,templateHeight:0,ratio:1},f=e(t),u=null,p="certificate",m=0,h=0;function g(){if(h++,h===m){const o=n.template,p=new Image,m={};void 0!==localize_lp_cer_js&&(new RegExp("^"+localize_lp_cer_js.base_url).test(o)||(p.crossOrigin="Anonymous",m.crossOrigin="Anonymous")),p.onload=function(){d={width:this.width,height:this.height},fabric.Image.fromURL(p.src,(function(o){u.backgroundImage=o,u.setHeight(d.height),u.setWidth(d.width),u.setZoom(d.ratio),u.calcOffset(),u.renderAll(),function(){const t={format:"png",multiplier:1/u.getZoom(),quality:1},n=u.toDataURL(t),o=e('<img class="certificate-result" />').insertBefore("#"+f[0].id);l=e(".certificate-result"),o.attr("src",n),setTimeout((function(){o.width()>a&&l.css("width","100%")}),100)}(),s.length&&function(){const t={action:"lpCertCreateImage",data64:l.attr("src"),name_image:n.key_cer};e.ajax({url:localize_lp_cer_js.url_ajax,data:t,method:"post",dataType:"json",beforeSend(){i.append('<li class="fa fa-spinner">Loading share social...</li>')},success(t){1===t.code&&(e.each(r,(function(n){const o=e(this).find("a"),a=o.attr("href")+t.url_cert;o.attr("href",a)})),r.show())},complete(){i.find(".fa-spinner").remove()},error(e){console.log(e)}})}(),i.length&&(c=i.find(".download"));const p=document.querySelector(t);p&&p.querySelector(".lp-data-config-cer").classList.add("loaded"),e(document).triggerHandler("learn-press/certificates/loaded")}),m)},p.src=o}}o=e(window).height(),a=e(window).width(),i=e(".certificate-actions"),u||(u=f.find("canvas"),u=new fabric.Canvas(u.get(0)),u.selection=!1,e.each(n.layers,(function(e){m++})),e.each(n.layers,(function(t,n){n.type&&e.isPlainObject(n)&&function(t){t.text=function(e){const t=document.createElement("div");return t.innerHTML=e,0===t.childNodes.length?"":t.childNodes[0].nodeValue}(t.text)||"";const n=e.extend({fontSize:24,left:0,top:0,lineHeight:1,originX:"center",originY:"center",fontFamily:"Helvetica",fieldType:"custom",qr_size:40},t);t.text;let o=null;try{const e=/^(https?|s?ftp):\/\//i.test(t.text);if("verified-link"===t.fieldType&&e){const e=new Image;e.crossOrigin="Anonymous",e.onload=function(){o=new fabric.Image(null,n),o.setSrc(e.src,(function(){}),{crossOrigin:"Anonymous"}),u.add(o),g()},e.src=t.text}else{const e=e=>e.replace(/(?![^\n]{1,64}$)([^\n]{1,64})\s/g,"$1\n");o=new fabric.Text("",n),o.text=e(o.text),u.add(o),g()}}catch(e){console.log(e)}}(n)}))),e(document).on("click",'[data-cert="'+f.attr("id")+'"]',(function(t){t.preventDefault(),function(){if(c.length){const t=c.data("type-download");void 0!==n.name&&(p=n.name),"pdf"===t?(l=e(".certificate-result"),l.length&&function(e,t){const n=new Image;n.onError=function(){alert('Cannot load image: "'+e+'"')},n.onload=function(){t(n,n.width,n.height)},n.src=e}(l.attr("src"),(function(e,t,n){let o,a,i;t>=n?(o=new jsPDF("l","mm",[t,n],!0),a=o.internal.pageSize.getWidth(),i=n*a/t):(o=new jsPDF("p","mm",[t,n],!0),a=o.internal.pageSize.getWidth(),i=o.internal.pageSize.getHeight()),o.addImage(e,"jpg",0,0,a,i,"","FAST"),o.save(p+".pdf")}))):function(){const e={format:"png",multiplier:1/u.getZoom()},t=function(e){const t=atob(e.split(",")[1]),n=e.split(",")[0].split(":")[1].split(";")[0],o=new ArrayBuffer(t.length),a=new Uint8Array(o);for(let e=0;e<t.length;e++)a[e]=t.charCodeAt(e);return new Blob([o],{type:n})}(u.toDataURL()),n=new FormData;p+=".png",n.append("files",t,p),downloadjs(u.toDataURL(e),p)}()}}()})),this.$canvas=u},e(document).ready((function(){if(t=e("html, body"),n=e(".lp-data-config-cer"),o=e("input[name=f_auto_show_cer_popup_first]"),a=e('form[name="certificate-form-button"]'),i=e("#certificate-popup"),c=e(".single-certificate-content"),r=e(".share-social-cert"),s=e("input[name=need_upload_cert_img_to_server]"),l=e("form[name=form-lp-cert-add-to-cart-woo]"),d=e("form[name=form-lp-cert-purchase]"),r.hide(),o.length||a.css("display","inline-block"),n.length)try{e.each(n,(function(t){const n=JSON.parse(e(this).val())||{};e(this).val("");const o="#"+e(this).closest("div").attr("id");LP_Certificate(o,n)}))}catch(e){console.log(e)}!function(){if(i.length){function n(){i.fadeOut((function(){t.css("overflow","auto")}))}function c(){t.css("overflow","hidden"),i.fadeIn()}e(document).on("learn-press/certificates/loaded",(function(){i.addClass("ready").hide(),t.on("keyup",(function(e){27===e.keyCode&&n()})).on("click",".close-popup",(function(e){n(),e.preventDefault()})),a.on("submit",(function(e){e.preventDefault(),c()})),o.length&&c()}))}}(),document.addEventListener("submit",(function(t){const n=t.target;"form-lp-cert-purchase"===n.getAttribute("name")?(t.preventDefault(),function(e){let t="",n="";const o=new FormData(e),a=Object.fromEntries(o.entries()),i=e.querySelector(".btn-purchase-certificate");i.classList.add("loading");const c=document.createElement("div");c.classList.add("learn-press-message"),wp.apiFetch({path:"/lp/v1/certificate/purchase",method:"POST",data:a}).then((o=>{const{data:a}=o;n=o.status,t=o.message,c.classList.add(n),c.innerHTML=t,e.insertAdjacentElement("beforeend",c),void 0!==n&&"success"===n&&a.redirect&&setTimeout((function(){window.location.href=a.redirect}),800)})).catch((t=>{c.classList.add("error"),c.innerHTML=t.message,e.insertAdjacentElement("beforeend",c)})).then((()=>{i.remove()}))}(n)):"form-lp-cert-add-to-cart-woo"===n.getAttribute("name")&&(t.preventDefault(),function(t){const n=lpData.urlParams.lang?`?lang=${lpData.urlParams.lang}`:"",o=t.querySelector(".btn-add-cert-to-cart-woo"),a=new FormData(t),i=Object.fromEntries(a.entries());i.action="lp_cert_add_to_cart_woo",e.ajax({url:localize_lp_cer_js.url_ajax+n,data:i,method:"post",beforeSend(){o.classList.add("loading")},success(e){1===e.code?void 0!==e.redirect_to?window.location.replace(e.redirect_to):(t.closest(".wrapper-lp-cert-add-to-cart-woo").insertAdjacentHTML("beforeend",e.button_view_cart),t.remove()):alert(e.message)},error(e){console.log(e)},complete(){o.classList.remove("loading")}})}(n))}))}))}(jQuery);