getStars() function getStars(){let stars=document.getElementById('starsss') let stars1=document.getElementById('starssss') let gitstar=document.getElementById('gitstar') let xhr=new XMLHttpRequest();xhr.open("GET",`https://api.github.com/repos/tooljet/tooljet`, true); xhr.responseType="json"; xhr.onload=()=>{ let status=xhr.status; if(status==200){stars.innerHTML=`${xhr.response.stargazers_count}`+' Stars'; stars1.innerHTML=`${xhr.response.stargazers_count}`+' Stars' gitstar=(xhr.response.stargazers_count/1000).toFixed(1);}} xhr.send()} var tabLinks=document.getElementsByClassName('a'); var activeTabContent,tempElement,calculatedAmountYear,calculatedAmountMonth,emailYearField,emailMonthField,c var perBuilder="",perEndUser="",builderYear="",enduserYear="",builderMonth="",enduserMonth="" var yearAmount=0,monthAmount=0 var myButton=document.getElementById('checkoutYear');var myButton1=document.getElementById('checkoutMonth') document.addEventListener('DOMContentLoaded',function(){builderYear=document.getElementById('builders-year').value=1;enduserYear=document.getElementById('endusers-year').value=1;builderMonth=document.getElementById('builders-month').value=1;enduserMonth=document.getElementById('endusers-month').value=1}) var popupButton=document.querySelectorAll('.link-block-p2, .button-62-bp') for (var i=0;i 0 ? [{price:'price_1NQThaKQYuDnBi4VD7Zis128',quantity:parseInt(builderMonth.value)}, {price:'price_1NQThzKQYuDnBi4VrVinQCXP',quantity:parseInt(enduserMonth.value)} ] : [{price:'price_1NQThaKQYuDnBi4VD7Zis128',quantity:parseInt(builderMonth.value)}] const itemsYear = enduserYear.value > 0 ? [ {price:'price_1NQTj2KQYuDnBi4V3cHaZnt2',quantity:parseInt(builderYear.value)}, {price:'price_1NQTjpKQYuDnBi4VUH6ulGJ4',quantity:parseInt(enduserYear.value)} ] : [{price:'price_1NQTj2KQYuDnBi4V3cHaZnt2',quantity:parseInt(builderYear.value)}] const url = 'https://c3xu0o8pcl.execute-api.us-east-2.amazonaws.com/Prod/stripe-payment'; if(perBuilder==="30"){ fwcrm.identify(emailMonthField.value,{DealValue:monthAmount.innerText.replace(/\$|\//g, ""),'Tried selfpay':1, 'tried_self_pay_on':currentDate}) FM.trackCustomEvent("Email for getting licence",{yes:true}) hj('identify',emailMonthField.value,{signedUp:'true'}) document.getElementById('checkoutMonth').innerText="Please wait..." const dataMonth = { lineItems:itemsMonth, customerEmail:emailMonthField.value, shouldAllowPromotionCode: true } setTimeout(()=>{ fetch(url, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(dataMonth), }) .then((response) => response.json()) .then(parsedResponse => { const parsedData = JSON.parse(parsedResponse.body); window.location.href=parsedData.paymentUrl }) .catch((err) => console.log(err)); },3000) }else{ fwcrm.identify(emailYearField.value,{DealValue:yearAmount.innerText.replace(/\$|\//g, ""),'Tried selfpay':1, 'tried_self_pay_on':currentDate}) FM.trackCustomEvent("Email for getting licence",{yes:true}) hj('identify', emailYearField.value,{signedUp:'true'}) document.getElementById('checkoutYear').innerText="Please wait..." const dataYear = { lineItems:itemsYear, customerEmail:emailYearField.value, shouldAllowPromotionCode: true } setTimeout(()=>{ fetch(url, { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify(dataYear), }) .then((response) => response.json()) .then(parsedResponse => { const parsedData = JSON.parse(parsedResponse.body); window.location.href=parsedData.paymentUrl }) .catch((err) => console.log(err)); },3000) } }) } const closeButtons=document.querySelectorAll('.button-56') closeButtons.forEach(button=>{button.addEventListener('click',event=>{event.preventDefault() const popupContainer=document.getElementById('popupContainer') popupContainer.style.display='none';});}) const calculate=(amountTotal,periodAmount,bMonth,eMonth,pBuilder,pEnduser,c)=>{ const num1=parseInt(bMonth.value)*30 const num2=parseInt(eMonth.value)*10 amountTotal=num1+num2 const amount=!isNaN(amountTotal)?amountTotal:!isNaN(num1)?num1:!isNaN(num2)?num2:0 periodAmount.textContent=`$${amount}/` off(amountTotal,num1,num2,c);} const calculate1=(periodAmountYear,amountTotalYear,bYear,eYear,pBuilder1,pEnduser1)=>{ const [num11,num12]=[parseInt(bYear.value)*parseInt(pBuilder1),parseInt(eYear.value)*parseInt(pEnduser1)] const [num7,num8]=[num11*12,num12*12] amountTotalYear=num7+num8 periodAmountYear.textContent=isNaN(amountTotalYear)?`$${isNaN(num7)?(isNaN(num8)?'0/':`${num8}/`):`${num7}/`}`:`$${amountTotalYear}/`;} const off=(a,n,m,c)=>{const amount=a||n||m c.innerText=`($${isNaN(amount)?'0':parseInt(amount)*12*20/100})`} const validationField=(email,bui,end,but)=>{const isValid=isValidEmail(email.value) email.style.border=isValid?"1px solid #D7DBDF":"1px solid red" const isFormValid=bui.value.trim()!==""&&end.value.trim()!==""&&isValid but.classList.toggle("disabled",!isFormValid) but.style.background=isFormValid?"#3e63dd":"#f1f3f5" but.style.color=isFormValid?"white":"#c1c8cd"} function isValidEmail(email){ var emailRegex=/^[^\s@]+@[^\s@]+\.[^\s@]+$/ return emailRegex.test(email)} function getURLParameter(name){name=name.replace(/[[]/, '\\[').replace(/[\]]/, '\\]') var regex=new RegExp('[\\?&]'+name+'=([^&#]*)') var results=regex.exec(location.search) return results===null?'':decodeURIComponent(results[1].replace(/\+/g, ' '));} function showContentBasedOnURLParameter(){var section1=document.getElementById('payment-success') var section2=document.getElementById('payment-failure') var urlParam=getURLParameter('payment') if(urlParam==='onpremise'){var [t,d,l,k]=['tp','t','l','k'].map(id=>document.getElementById(id)); [d,k].forEach(el=>el.classList.remove("w--current","w--tab-active")); [t,l].forEach(el=>el.classList.add("w--current","w--tab-active")); document.getElementById('m').style.display='flex' var [h,j]=['h-201','h-202'].map(id=>document.getElementById(id)) var newText=t.classList.contains("w--current")?"Purchase license":"Subscribe to Business Plan" h.innerText=j.innerText=newText }else{section1.style.display=urlParam==='success'?'block':'none' section2.style.display=urlParam==='failure'?'block':'none' }} window.addEventListener('popstate',showContentBasedOnURLParameter); showContentBasedOnURLParameter() const stickyHeaderElements=document.querySelectorAll('.sticky-header1') const handleScroll=()=>{stickyHeaderElements.forEach(stickyHeader=>{ const shouldAddShadow=stickyHeader.getBoundingClientRect().top<=0; stickyHeader.classList.toggle('shadow',shouldAddShadow); stickyHeader.dataset.isSticky=shouldAddShadow?'true':'false' });};window.addEventListener('scroll', handleScroll)