` } }) customElements.define('pack-input', class extends ProductMixin(LitElement) { createRenderRoot() { return this } // createProductHoverEvent () { // this.dispatchEvent(new CustomEvent('product-hover', { detail: {id:this.id}, bubbles: true, composed: true }) ) // } // createProductUnHoverEvent () { // this.dispatchEvent(new CustomEvent('product-unhover', { bubbles: true, composed: true }) ) // } render() { const { id, selected, image, tooltip, disabled, unavailable, color, name , joinPrice , monthlyPrice} = this if (tooltip !== undefined) { if (id == 49) { return html` ` } else { return html` ` } } else if (id == 14) { return html` ` } } }) customElements.define('mix-input', class extends ProductMixin(LitElement) { createRenderRoot() { return this } render() { const { id, selected, image, tooltip, disabled, unavailable } = this if (tooltip !== undefined) { return html` ` } else { return html` ` } } }) customElements.define('mix-input-list-item', class extends ProductMixin(LitElement) { createRenderRoot() { return this } render() { const { id, selected, image, tooltip, disabled, unavailable, color, name } = this return html`
this.dispatchEvent(productChangeEvent(id, checked))}" type="checkbox" data-academy="${`${id}`}" name="${`P${id}`}" value="1" .checked="${selected}" ?disabled="${disabled}">
${name}
` } }) customElements.define('mix-input-list-item-add', class extends ProductMixin(LitElement) { createRenderRoot() { return this } render() { const { id, selected, image, tooltip, disabled, unavailable, color, name } = this return html`
this.dispatchEvent(productChangeEvent(id, checked))}" type="checkbox" name="${`${id}`}" data-academy="${`${id}`}" value="1" .checked="${selected}" ?disabled="${disabled}">
${name}
` } }) customElements.define('addon-input', class extends ProductMixin(LitElement) { createRenderRoot() { return this } render() { const { id, selected, joinPrice, image, name, tooltip, disabled, unavailable, includedWithPack} = this /*switch (id) { case 2007: if (unavailable == 1) { return } return html` ` case 2039: return html` ` case 2027: return html` ` case 2031: return html` ` case 2046: return html` ` case 2048: return html` ` */ // case 2003: // return html` // // ` //default: return html` ` //} } }) customElements.define('addon-group-secondary', class extends ProductMixin(LitElement) { createRenderRoot() { return this } render() { const { id, selected, joinPrice, name, addonGroupParentName, tooltip, disabled } = this return html` ` } }) customElements.define('addon-group-primary', class extends ProductMixin(LitElement) { createRenderRoot() { return this } render() { const { id, selected, joinPrice, image, name, tooltip, disabled } = this return html` ` } }) customElements.define('mix-selection', class extends CartMixin(LitElement) { createRenderRoot() { return this } getMixes() { return optionalSort(Object.values(this.products)).filter(({type}) => type == 'mixOption') } render() { if (this.products[2049].selected) { return html` ` } } }) customElements.define('mix-selection-lists', class extends CartMixin(LitElement) { createRenderRoot() { return this } getMixes() { const list = optionalSort(Object.values(this.products)).filter(({type}) => type == 'mixOption') return list; } getMixesAdd() { const list = optionalSort(Object.values(this.products)).filter(({type}) => type == 'mixOptionAdd') return list; } render() { if (this.products[2049].selected) { return html` ` } } }) customElements.define('product-selection', class extends CartMixin(LitElement) { createRenderRoot() { return this } getshowAll() { return showAllProducts; } getPacks() { if (showAllProducts) { //console.log("rr5"); //console.log(optionalSort(Object.values(this.products)).filter(({ type }) => type == 'pack')); // console.log("-----0-----"); // console.log(optionalSort(Object.values(this.products)).filter(({ type }) => type == 'pack').filter(({id})=> (id != 14 && id != 2059 && id != 2049 && id != 49)).filter(({unavailable})=> unavailable != 1)); return optionalSort(Object.values(this.products)).filter(({ type }) => type == 'pack') } else { //console.log("rr4"); //console.log(optionalSort(Object.values(this.products)).filter(({ type }) => type == 'pack').filter(({ isShow }) => isShow == true)); // console.log("-----4444-----"); // console.log(optionalSort(Object.values(this.products)).filter(({ type }) => type == 'pack').filter(({ isShow }) => isShow == true).filter(({id})=> (id != 14 && id != 2059 && id != 2049 && id != 49)).filter(({unavailable})=> unavailable != 1)); return optionalSort(Object.values(this.products)).filter(({ type }) => type == 'pack').filter(({ isShow }) => isShow == true) } // return optionalSort(Object.values(this.products)).filter(({type}) => type == 'pack') } getMixes() { return optionalSort(Object.values(this.products)).filter(({type}) => type == 'mixOption') } getIncludedAddons() { return optionalSort(Object.values(this.products)).filter(({type}) => type == 'includedAddon').filter(({id}) => !Object.values(this.products).some(({addonGroupParent}) => addonGroupParent == id)) } getAddonGroups() { return optionalSort(Object.values(this.products)).filter(({type,id,name}) => type == 'includedAddon').map(({name,...p}) => ({ ...p, name, secondary: Object.values(this.products) .filter(({addonGroupParent}) => addonGroupParent == p.id) .map(p => ({...p, addonGroupParentName: name})) })).filter(({secondary}) => secondary.length) } render() { return html` ` } }) // function elitePack() { // return html` //
// //
    //
    // ` // } // function eliteCanadaPack() { // return html` //
    // //
      //
      // ` // } customElements.define('pack-item', class extends CartMixin(LitElement) { createRenderRoot() { return this } getMixesIncluded() { return optionalSort(Object.values(this.products)).filter(({type}) => type == 'mixOption').filter(({selected})=> selected == true) } getMixesAdded() { return optionalSort(Object.values(this.products)).filter(({type}) => type == 'mixOptionAdd').filter(({selected})=> selected == true) } render() { const { joinPrice, id, name } = this if (id == 2049) { return html`

      ${name}

      $${joinPrice}
      ${this.getMixesAdded().map(({ id, name, joinPrice }) => html``)} ` } else { return html`

      ${name}

      $${joinPrice}
      ` } } }) customElements.define('mix-pack-item', class extends CartMixin(LitElement) { createRenderRoot() { return this } getMixesIncluded() { return optionalSort(Object.values(this.products)).filter(({type}) => type == 'mixOption').filter(({selected})=> selected == true) } getMixesAdded() { return optionalSort(Object.values(this.products)).filter(({type}) => type == 'mixOptionAdd').filter(({selected})=> selected == true) } render() { if (this.products[2049].selected) { return html`
      IMpowered
      $${joinPrice}
        ${this.getMixesIncluded().map(({ id, name, joinPrice }) => html``)}
      ${this.getMixesAdded().map(({ id, name,joinPrice }) => html``)}
      ` } } }) customElements.define('mix-pack-subitem', class extends CartMixin(LitElement) { createRenderRoot() { return this } render() { const { id, name, joinPrice } = this return html`
    • ${name}
    • ` } }) customElements.define('mix-pack-subitem-added', class extends CartMixin(LitElement) { createRenderRoot() { return this } render() { const { id, name, joinPrice } = this return html`

      ${unsafeHTML(name)}

      $${joinPrice}
      ` } }) customElements.define('included-addon', class extends ProductMixin(LitElement) { createRenderRoot() { return this } render() { const { id, joinPrice, name } = this return html`

      ${unsafeHTML(name)}

      $${joinPrice}
      ` } }) customElements.define('included-addon-by-default', class extends ProductMixin(LitElement) { createRenderRoot() { return this } render() { const { joinPrice, name } = this return html`

      ${unsafeHTML(name)}

      ${joinPrice}
      ` } }) customElements.define('optional-addon', class extends ProductMixin(LitElement) { createRenderRoot() { return this } render() { const { joinPrice, image, name, addonGroupParentName } = this return html`

      ${name}

      $${joinPrice}
      ` } }) customElements.define('shopping-cart', class extends CartMixin(LitElement) { createRenderRoot() { return this } getPacks() { const myPacks = optionalSort(Object.values(this.products)).filter(({type,selected}) => type == 'pack' && selected) //console.log("GET PACKS ASDF"); //console.log(myPacks); return myPacks; } getIncludedAddons() { return optionalSort(Object.values(this.products)).filter(({type,selected}) => type == 'includedAddon' && selected) } getIncludedByDefaultAddons(packs) { return optionalSort(Object.values(this.products)).filter(({type, includedIn}) => { let selectedPacks = packs.map(p => p.id); return type === 'includedAddon' && includedIn.filter(value => selectedPacks.includes(value)).length > 0 }); } getOptionalAddons() { return optionalSort(Object.values(this.products)) .filter(({type,selected}) => type == 'optionalAddon' && selected) .map( ({addonGroupParent,...p}) => ({ addonGroupParent, ...p, image: this.products[addonGroupParent].image, addonGroupParentName: this.products[addonGroupParent].name }) ) } getTax() { return 0; } getTotal () { return this.getSubTotal() + this.getTax() - this.getPaymentTypeDiscount(); } getPaymentTypeDiscount() { if (document.forms['JOIN'].elements['PAYMENT_TYPE'].value == 15 && (this.products[2008].selected || this.products[2026].selected || this.products[29].selected || this.products[2047].selected)) { return 0; } else { return 0; } } getSubTotal() { return Object.values(this.products).filter(({selected}) => selected).map(({joinPrice}) => joinPrice).map(parseFloat).reduce((a,x) => a + x, 0) } getDiscount() { return this.getFullPrice() - this.getSubTotal() } getFullPrice() { return Object.values(this.products).filter(({selected}) => selected).map(({joinPrice}) => joinPrice).map(parseFloat).reduce((a,x) => a + x, 0) } getNextPayment() { if(this.products[2049].selected){ const notIncludedList = [2067,2068,2092]; return Object.values(this.products).filter(({id, selected}) => selected && notIncludedList.indexOf(id) == -1).map(({monthlyPrice}) => monthlyPrice).map(parseFloat).reduce((a,x) => a + x, 0) } else { return Object.values(this.products).filter(({selected}) => selected).map(({monthlyPrice}) => monthlyPrice).map(parseFloat).reduce((a,x) => a + x, 0) } } shouldBeExpanded() { return Object.values(this.products).some(({type,selected}) => type == 'pack' && selected) } isExpanded() { return ['#cart-sidebar','.wizard-sidebar'].map(document.querySelector.bind(document)).every(t => t.classList.contains('expanded')) } expand() { ['#cart-sidebar','.wizard-sidebar'].map(document.querySelector.bind(document)).forEach(t => t.classList.add('expanded')) document.getElementById("wizard-cart-fixed").classList.add("expanded-fixed"); } unExpand() { ['#cart-sidebar','.wizard-sidebar'].map(document.querySelector.bind(document)).forEach(t => t.classList.remove('expanded')) } render() { const cartAvalara = false; if (cartAvalara) { var packs = this.getPacks(); isAvalaraDataValid().then(isValid => { if (isValid){ getTaxResult(false, packs).then(result => { if (result >= 0) { let taxesIncluded = document.querySelector('.tax-info'); if (result > 0){ taxesIncluded.hidden = false; } else { taxesIncluded.hidden = true; } let taxes = document.getElementById("count-taxes"); taxes.hidden = false; let taxesTax = document.getElementById("count-taxes-tax"); taxesTax.innerHTML = "$" + result; let dollar = '$'; let countTotal = this.getTotal().toFixed(2); countTotal = parseFloat(countTotal) + result; document.querySelector('.count-total').innerText = dollar + countTotal.toFixed(2); let shouldPay = this.getTotal().toFixed(2); shouldPay = parseFloat(shouldPay) + result; document.querySelector('.count-should-pay').innerText = dollar + shouldPay.toFixed(2); document.getElementById('agree1').innerText = (parseFloat(this.getTotal().toFixed(2)) + result).toFixed(2); } else { result = 0; let taxesIncluded = document.querySelector('.tax-info'); taxesIncluded.hidden = true; let taxes = document.getElementById("count-taxes"); taxes.hidden = true; let dollar = '$'; let countTotal = this.getTotal().toFixed(2); countTotal = parseFloat(countTotal) + result; document.querySelector('.count-total').innerText = dollar + countTotal.toFixed(2); let shouldPay = this.getTotal().toFixed(2); shouldPay = parseFloat(shouldPay) + result; document.querySelector('.count-should-pay').innerText = dollar + shouldPay.toFixed(2); document.getElementById('agree1').innerText = (parseFloat(this.getTotal().toFixed(2)) + result).toFixed(2); } }); getTaxResult(true, packs).then(result => { if (result >= 0) { let dollar = '$'; let nextPayment = this.getNextPayment().toFixed(2); nextPayment = parseFloat(nextPayment) + result; document.querySelector('.count-next-payment').innerText = dollar + nextPayment.toFixed(2); document.getElementById('agree1Monthly').innerText = (parseFloat(this.getNextPayment().toFixed(2)) + result).toFixed(2); } else { result = 0; let dollar = '$'; let nextPayment = this.getNextPayment().toFixed(2); nextPayment = parseFloat(nextPayment) + result; document.querySelector('.count-next-payment').innerText = dollar + nextPayment.toFixed(2); document.getElementById('agree1Monthly').innerText = (parseFloat(this.getNextPayment().toFixed(2)) + result).toFixed(2); } }); } }); } if (this.shouldBeExpanded()) { if (!this.isExpanded()) { this.expand() } } else { if (this.isExpanded) { this.unExpand() } } document.querySelector('.count-total').innerText = `$${this.getTotal().toFixed(2)}` document.getElementById('agree1').innerText = this.getTotal().toFixed(2); document.getElementById('agree1Monthly').innerText = this.getNextPayment().toFixed(2); return html`

      shopping cart

      ${this.getPacks().filter(({id})=> (id !=2049)).map(({ joinPrice, id, name }) => html``)} ${this.getPacks().filter(({id})=> (id ==2049)).map(({ joinPrice, id, name }) => html``)}
      ${this.getIncludedByDefaultAddons(this.getPacks()).map(({ name }) => html``)} ${this.getPacks().flatMap(({ additionalIncludedNotes }) => additionalIncludedNotes).map(note => html``)}
      ${this.getIncludedAddons().map(({ joinPrice, name, id }) => html``)}
      ${this.getOptionalAddons().map(({ joinPrice, image, name, addonGroupParentName }) => html``)}

      Sub Total $${this.getFullPrice().toFixed(2)}

      ${this.getDiscount() > 0 ? html`

      discount $${this.getDiscount().toFixed(2)}

      ` : ''}

      YOU PAY $${this.getTotal().toFixed(2)}

      next payment

      28-day Billing Cycle

      $${this.getNextPayment().toFixed(2)}

      ` } })
      package confirm your agreement account payment
      Confirm Your Agreement

      Please confirm the contents of your order and agree to policies and statements below.

      Please do not attempt additional orders while pending orders are still processing.
      • When my initial enrollment order is placed IYOVIA or its payment processor will automatically charge my credit or debit card or other payment method for my initial Membership fee and my first recurring Membership fee plus taxes and, if applicable, handling fees, and then for the same amount as the first recurring Membership fee (unless I change my order) every 28 days until I cancel my Membership.
      • I can change or cancel my Membership at any time by contacting Customer Service by email at [email protected], online through my virtual office, or by mail to 120 White Plains Rd, Suite 420, Tarrytown, NY 10591. Refunds are subject to the IYOVIA Refund Policy.
      • My cancellation notice must be received at least 7 days prior to my next charging date.
      • When my initial enrollment order is placed IYOVIA or its payment processor will automatically charge my credit or debit card or other payment method for my initial IBO fee and my first recurring IBO fee plus taxes and, if applicable, handling fees, and then for the same amount as the first recurring IBO fee (unless I change my order) every 28 days until I cancel my IBO Agreement.
      • I can cancel my IBO Agreement at any time by contacting Customer Service by email at [email protected], online through my virtual office, or by mail to 120 White Plains Rd, Suite 420, Tarrytown, NY 10591.
      • My cancellation notice must be received at least 7 days prior to my next charging date.
      To print or download a copy of your documents please click on the links.
      enter your information

      Account Type:


      Company Name:

      Service Address

      payment type
      Please do not attempt additional orders while pending orders are still processing.
      ${this.checkState()}
      ` break default: return html`
      billing info
      ${this.ccState()}
      ` break } } }) customElements.define('payment-details', class extends LitElement { static get properties() { return { paymentType: { type: Number } } } createRenderRoot() { return this } render() { switch (this.paymentType) { case 4: return html` Bitcoin

      Payment instructions will be on the next Model.

      ` break case 3: return html` Skrill

      Skrill is a third party payment site that is used by iMarketsLive to accept payments.

      Upon confirming your information and agreeing to our policies, we will direct you to to the Skrill site to complete your order.

      ` break case 6: return html` Bitcoin Payment instructions will be on the next Model. ` break case 7: return html` Pay Using Cash at a Local Retail Location (South America)

      South American customers pay using cash at a local retail location through our third party payment provider Skrill.

      Upon confirming your information and agreeing to our policies, we will direct you to to the Skrill site to complete your order.

      ` break case 8: return html` Pay Using Instant Bank Transfer (South America)

      South American customers pay using instant bank transfers through our third party payment provider Skrill.

      Upon confirming your information and agreeing to our policies, we will direct you to to the Skrill site to complete your order.

      ` break case 14: return html` USDT Payment instructions will be on the next Model. ` break case 15: return html` Tron USDT Payment instructions will be on the next Model. ` break case 16: return html` Your country and payment option will appear after you confirm your order. ` break case 17: return html` Crypto Payment instructions will be on the next Model. ` break case 11: return html`

      Note: ACH payments take 7-10 business days to clear depending on your bank. Once your funds have cleared within 7-10 business days, your back office will be created and your product will be shipped.

      Check Info
      ` break case 18: return html` PayPal

      Upon confirming your information and agreeing to our policies, we will direct you to to the PayPal site to complete your order.

      ` break default: return html`

      ` break; } } })