To give you the best possible experience, this site uses cookies. Using your site means your agree to our use of cookies. We have published a new cookies policy, which you should need to find out more about the cookies we use. View Cookies Policy.
Mali's Jewellery | Personalized Gifts for the Special Someone in Your Life
Personalized Gifts

Looking for something unique and special? Something that will really show off your personality? Check out our customized jewelry! Each piece is handmade with the best handpicked materials so you know it's of the highest quality. Plus, it's anti-tarnish, allergy-free, and environmentally friendly. And because it's handmade in Canada, you know it's made with love and pride. So go ahead and treat yourself to something special - you deserve it!

View Left Column

21 products

Grid
Grid-2
List
List-2
Catelog

Active filters

14K Solid Gold Initial Paperclip Bracelet - Mali's Canadian Jewellery  Mali's  1  Metal Part: 14K Yellow Gold  - Gold Calligraph14K Solid Gold Initial Paperclip Bracelet - Mali's Canadian Jewellery
      MERCHANTS
      4 equal payments with  Klarna <p...
      $275.00Price
      Add To Compare
      14K Solid Gold Initial Paperclip Bracelet - Mali's Canadian Jewellery  Mali's  1  Metal Part: 14K Yellow Gold  - Gold Calligraph14K Solid Gold Initial Paperclip Bracelet - Mali's Canadian Jewellery
          MERCHANTS
          4 equal payments with  Klarna <p...
          $275.00Price
          Add To Compare
            Add To Compare
            MERCHANTS
            $119.00
            Birth Flower Necklace - | Mali's Canadian Jewelry Mali's 1 Metal Part: Sterling Silver - Birth Flower Necklace - Engraved SilverBirth Flower Necklace - | Mali's Canadian Jewelry
                Add To Compare
                MERCHANTS
                $119.00
                Birth Flower Necklace - | Mali's Canadian Jewelry Mali's 1 Metal Part: Sterling Silver - Birth Flower Necklace - Engraved SilverBirth Flower Necklace - | Mali's Canadian Jewelry
                    MERCHANTS
                    4 equal payments with  Klarna ...
                    $119.00Price
                    Add To Compare
                    Birth Flower Necklace - | Mali's Canadian Jewelry Mali's 1 Metal Part: Sterling Silver - Birth Flower Necklace - Engraved SilverBirth Flower Necklace - | Mali's Canadian Jewelry
                        MERCHANTS
                        4 equal payments with  Klarna ...
                        $119.00Price
                        Add To Compare
                        Mali's Sterling Silver Gucci Hollow Chain Necklace- Canadian Fine Jewellery  Mali's  1  Metal Part: Sterling Silver  - Silver GuMali's Sterling Silver Gucci Hollow Chain Necklace- Canadian Fine Jewellery
                            Home
                            4 equal payments with  Klarna ...
                            $109.00Price
                            Add To Compare
                            Mali's Sterling Silver Gucci Hollow Chain Necklace- Canadian Fine Jewellery  Mali's  1  Metal Part: Sterling Silver  - Silver GuMali's Sterling Silver Gucci Hollow Chain Necklace- Canadian Fine Jewellery
                                $109.00Price
                                Add To Compare
                                • new
                                Add To Compare
                                Siblings Name Necklace| Mali's Canadian JewelrySiblings Name Necklace| Mali's Canadian Jewelry
                                • new
                                  Add To Compare
                                  Siblings Name Necklace| Mali's Canadian JewelrySiblings Name Necklace| Mali's Canadian Jewelry
                                  • new
                                    Home
                                    4 equal payments with  Klarna ...
                                    $99.00Price
                                    Add To Compare
                                    Siblings Name Necklace| Mali's Canadian JewelrySiblings Name Necklace| Mali's Canadian Jewelry
                                    • New
                                      Home
                                      4 equal payments with  Klarna ...
                                      $99.00Price
                                      Add To Compare
                                      • new
                                      Add To Compare
                                      Sterling Silver Bar Necklace- | Mali's Canadian JewelrySterling Silver Bar Necklace- | Mali's Canadian Jewelry
                                      • new
                                        Add To Compare
                                        Sterling Silver Bar Necklace- | Mali's Canadian JewelrySterling Silver Bar Necklace- | Mali's Canadian Jewelry
                                        • new
                                          Home
                                          4 equal payments with  Klarna ...
                                          $99.00Price
                                          Add To Compare
                                          Sterling Silver Bar Necklace- | Mali's Canadian JewelrySterling Silver Bar Necklace- | Mali's Canadian Jewelry
                                          • New
                                            Home
                                            4 equal payments with  Klarna ...
                                            $99.00Price
                                            Add To Compare
                                            • new
                                            Add To Compare
                                            Sterling Silver Round Locket - | Mali's Canadian Jewelry Mali's 1 Metal Part: Sterling Silver - Engravable Sterling Silver RoundSterling Silver Round Locket - | Mali's Canadian Jewelry
                                            • new
                                              Add To Compare
                                              Sterling Silver Round Locket - | Mali's Canadian Jewelry Mali's 1 Metal Part: Sterling Silver - Engravable Sterling Silver RoundSterling Silver Round Locket - | Mali's Canadian Jewelry
                                              • new
                                                Home
                                                4 equal payments with  Klarna ...
                                                $99.00Price
                                                Add To Compare
                                                Sterling Silver Round Locket - | Mali's Canadian Jewelry Mali's 1 Metal Part: Sterling Silver - Engravable Sterling Silver RoundSterling Silver Round Locket - | Mali's Canadian Jewelry
                                                • New
                                                  Home
                                                  4 equal payments with  Klarna ...
                                                  $99.00Price
                                                  Add To Compare
                                                  • new
                                                  Add To Compare
                                                  Sterling Silver Heart Locket - | Mali's Canadian Jewelry Mali's 1 Metal Part: Sterling Silver - Engravable Sterling Silver HeartSterling Silver Heart Locket - | Mali's Canadian Jewelry
                                                  • new
                                                    Add To Compare
                                                    Sterling Silver Heart Locket - | Mali's Canadian Jewelry Mali's 1 Metal Part: Sterling Silver - Engravable Sterling Silver HeartSterling Silver Heart Locket - | Mali's Canadian Jewelry
                                                    • new
                                                      Home
                                                      4 equal payments with  Klarna ...
                                                      $99.00Price
                                                      Add To Compare
                                                      Sterling Silver Heart Locket - | Mali's Canadian Jewelry Mali's 1 Metal Part: Sterling Silver - Engravable Sterling Silver HeartSterling Silver Heart Locket - | Mali's Canadian Jewelry
                                                      • New
                                                        Home
                                                        4 equal payments with  Klarna ...
                                                        $99.00Price
                                                        Add To Compare
                                                        Mali's Sterling Silver Mariner Chain Necklace- Canadian Fine Jewellery  Mali's  1  Metal Part: Sterling Silver  - Mali's SterlinMali's Sterling Silver Mariner Chain Necklace- Canadian Fine Jewellery
                                                            Home
                                                            4 equal payments with  Klarna ...
                                                            $99.00Price
                                                            Add To Compare
                                                            Mali's Sterling Silver Mariner Chain Necklace- Canadian Fine Jewellery  Mali's  1  Metal Part: Sterling Silver  - Mali's SterlinMali's Sterling Silver Mariner Chain Necklace- Canadian Fine Jewellery
                                                                $99.00Price
                                                                Add To Compare
                                                                  Add To Compare
                                                                  Sterling Silver vertical Bar - Mali's Canadian Jewellery  Mali's  1  Metal Part: Sterling Silver  - Engravable 3D Vertical NecklSterling Silver vertical Bar - Mali's Canadian Jewellery
                                                                      Add To Compare
                                                                      Sterling Silver vertical Bar - Mali's Canadian Jewellery  Mali's  1  Metal Part: Sterling Silver  - Engravable 3D Vertical NecklSterling Silver vertical Bar - Mali's Canadian Jewellery
                                                                          Home
                                                                          4 equal payments with  Klarna ...
                                                                          $99.00Price
                                                                          Add To Compare
                                                                          Sterling Silver vertical Bar - Mali's Canadian Jewellery  Mali's  1  Metal Part: Sterling Silver  - Engravable 3D Vertical NecklSterling Silver vertical Bar - Mali's Canadian Jewellery
                                                                              Home
                                                                              4 equal payments with  Klarna ...
                                                                              $99.00Price
                                                                              Add To Compare
                                                                                Add To Compare
                                                                                Silver Medical ID Bracelet - | Mali's Canadian Jewellery  Mali's  1  Metal Part: Sterling Silver  - Sterling Silver Medical ID ASilver Medical ID Bracelet - | Mali's Canadian Jewellery
                                                                                    Add To Compare
                                                                                    Silver Medical ID Bracelet - | Mali's Canadian Jewellery  Mali's  1  Metal Part: Sterling Silver  - Sterling Silver Medical ID ASilver Medical ID Bracelet - | Mali's Canadian Jewellery
                                                                                        Home
                                                                                        Unisex Engravable sterling silver medical ID alert bracelet - Durable  - Hypoallergenic - Tag size : 45 * 10 mm - Available Sizes 5'' - 11'' Crafted in Canada
                                                                                        $99.00Price
                                                                                        Add To Compare
                                                                                        Silver Medical ID Bracelet - | Mali's Canadian Jewellery  Mali's  1  Metal Part: Sterling Silver  - Sterling Silver Medical ID ASilver Medical ID Bracelet - | Mali's Canadian Jewellery
                                                                                            Home
                                                                                            Unisex Engravable sterling silver medical ID alert bracelet - Durable  - Hypoallergenic - Tag size : 45 * 10 mm - Available Sizes 5'' - 11'' Crafted in Canada
                                                                                            $99.00Price
                                                                                            Add To Compare
                                                                                              Add To Compare
                                                                                              EngraveName Leather Bracelet- | Mali's Canadian Jewellery  Mali's  1  Metal Part: Stainless Steel  - Engravable Braided Leather EngraveName Leather Bracelet- | Mali's Canadian Jewellery
                                                                                                  Add To Compare
                                                                                                  EngraveName Leather Bracelet- | Mali's Canadian Jewellery  Mali's  1  Metal Part: Stainless Steel  - Engravable Braided Leather EngraveName Leather Bracelet- | Mali's Canadian Jewellery
                                                                                                      MERCHANTS
                                                                                                      4 equal payments with  <span class="logo" style="font-family:'Klarna...
                                                                                                      $99.00Price
                                                                                                      Add To Compare
                                                                                                      EngraveName Leather Bracelet- | Mali's Canadian Jewellery  Mali's  1  Metal Part: Stainless Steel  - Engravable Braided Leather EngraveName Leather Bracelet- | Mali's Canadian Jewellery
                                                                                                          MERCHANTS
                                                                                                          4 equal payments with  <span class="logo" style="font-family:'Klarna...
                                                                                                          $99.00Price
                                                                                                          Add To Compare
                                                                                                            Add To Compare
                                                                                                            Sterling Silver Oval Locket - | Mali's Fashion Jewelry Mali's 1 Metal Part: Sterling Silver - Engravable Sterling Silver Oval LoSterling Silver Oval Locket - | Mali's Canadian Jewelry
                                                                                                                Add To Compare
                                                                                                                Sterling Silver Oval Locket - | Mali's Fashion Jewelry Mali's 1 Metal Part: Sterling Silver - Engravable Sterling Silver Oval LoSterling Silver Oval Locket - | Mali's Canadian Jewelry
                                                                                                                    Home
                                                                                                                    4 equal payments with  Klarna ...
                                                                                                                    $99.00Price
                                                                                                                    Add To Compare
                                                                                                                    Sterling Silver Oval Locket - | Mali's Fashion Jewelry Mali's 1 Metal Part: Sterling Silver - Engravable Sterling Silver Oval LoSterling Silver Oval Locket - | Mali's Canadian Jewelry
                                                                                                                        Home
                                                                                                                        4 equal payments with  Klarna ...
                                                                                                                        $99.00Price
                                                                                                                        Add To Compare
                                                                                                                          Add To Compare
                                                                                                                          Personalized Gifts
                                                                                                                          $99.00
                                                                                                                          Personalized Name Necklace - | Mali's Canadian Jewelry Mali's 1 Metal Part: Gold Vermeil - Personalized Name Necklace - | Mali'sPersonalized  Name Necklace - | Mali's Canadian Jewelry
                                                                                                                              Add To Compare
                                                                                                                              Personalized Gifts
                                                                                                                              $99.00
                                                                                                                              Personalized Name Necklace - | Mali's Canadian Jewelry Mali's 1 Metal Part: Gold Vermeil - Personalized Name Necklace - | Mali'sPersonalized  Name Necklace - | Mali's Canadian Jewelry
                                                                                                                                  Personalized Gifts
                                                                                                                                  4 equal payments with  <span class="logo" style="font-family:'Klarna...
                                                                                                                                  $99.00Price
                                                                                                                                  Add To Compare
                                                                                                                                  Personalized Name Necklace - | Mali's Canadian Jewelry Mali's 1 Metal Part: Gold Vermeil - Personalized Name Necklace - | Mali'sPersonalized  Name Necklace - | Mali's Canadian Jewelry
                                                                                                                                      Personalized Gifts
                                                                                                                                      4 equal payments with  <span class="logo" style="font-family:'Klarna...
                                                                                                                                      $99.00Price
                                                                                                                                      Add To Compare
                                                                                                                                      Sterling Silver Zodiac Necklace -| Mali's Canadian Jewellery Mali's 11 Metal Part: Sterling Silver - Round Silver Zodiac Silver Sterling Silver Zodiac Necklace -| Mali's Canadian Jewellery
                                                                                                                                          Home
                                                                                                                                          4 equal payments with  Klarna ...
                                                                                                                                          $99.00Price
                                                                                                                                          Add To Compare
                                                                                                                                          Sterling Silver Zodiac Necklace -| Mali's Canadian Jewellery Mali's 11 Metal Part: Sterling Silver - Round Silver Zodiac Silver Sterling Silver Zodiac Necklace -| Mali's Canadian Jewellery
                                                                                                                                              $99.00Price
                                                                                                                                              Add To Compare
                                                                                                                                              Mali's Sterling Silver Paperclip Chain Necklace- Canadian Fine Jewellery  Mali's  1  Metal Part: Sterling Silver  - Mali's SterlMali's Sterling Silver Paperclip Chain Necklace- Canadian Fine Jewellery
                                                                                                                                                  Home
                                                                                                                                                  4 equal payments with  Klarna ...
                                                                                                                                                  $89.00Price
                                                                                                                                                  Add To Compare
                                                                                                                                                  Mali's Sterling Silver Paperclip Chain Necklace- Canadian Fine Jewellery  Mali's  1  Metal Part: Sterling Silver  - Mali's SterlMali's Sterling Silver Paperclip Chain Necklace- Canadian Fine Jewellery
                                                                                                                                                      $89.00Price
                                                                                                                                                      Add To Compare
                                                                                                                                                        Add To Compare
                                                                                                                                                        Silver Medical ID Necklace - | Mali's Canadian Jewellery  Mali's  1  Metal Part: Sterling Silver  - Sterling Silver Medical ID ASilver Medical ID Necklace - | Mali's Canadian Jewellery
                                                                                                                                                            Add To Compare
                                                                                                                                                            Silver Medical ID Necklace - | Mali's Canadian Jewellery  Mali's  1  Metal Part: Sterling Silver  - Sterling Silver Medical ID ASilver Medical ID Necklace - | Mali's Canadian Jewellery
                                                                                                                                                                Home
                                                                                                                                                                Unisex Engravable sterling silver medical ID alert necklace - Durable  - Hypoallergenic - Pendant size : 25 * 25mm - Chain Length:  16'' - 20'' Crafted in Canada
                                                                                                                                                                $89.00Price
                                                                                                                                                                Add To Compare
                                                                                                                                                                Silver Medical ID Necklace - | Mali's Canadian Jewellery  Mali's  1  Metal Part: Sterling Silver  - Sterling Silver Medical ID ASilver Medical ID Necklace - | Mali's Canadian Jewellery
                                                                                                                                                                    Home
                                                                                                                                                                    Unisex Engravable sterling silver medical ID alert necklace - Durable  - Hypoallergenic - Pendant size : 25 * 25mm - Chain Length:  16'' - 20'' Crafted in Canada
                                                                                                                                                                    $89.00Price
                                                                                                                                                                    Add To Compare
                                                                                                                                                                      Add To Compare
                                                                                                                                                                      Infinity Macrame Bracelet - | Mali's Canadian Jewellery  Mali's  1  Metal Part: Sterling Silver  - Infinity Silver macrame braceInfinity Macrame Bracelet - | Mali's Canadian Jewellery
                                                                                                                                                                          Add To Compare
                                                                                                                                                                          Infinity Macrame Bracelet - | Mali's Canadian Jewellery  Mali's  1  Metal Part: Sterling Silver  - Infinity Silver macrame braceInfinity Macrame Bracelet - | Mali's Canadian Jewellery
                                                                                                                                                                              Home
                                                                                                                                                                              4 equal payments with  Klarna ...
                                                                                                                                                                              $89.00Price
                                                                                                                                                                              Add To Compare
                                                                                                                                                                              Infinity Macrame Bracelet - | Mali's Canadian Jewellery  Mali's  1  Metal Part: Sterling Silver  - Infinity Silver macrame braceInfinity Macrame Bracelet - | Mali's Canadian Jewellery
                                                                                                                                                                                  Home
                                                                                                                                                                                  4 equal payments with  Klarna ...
                                                                                                                                                                                  $89.00Price
                                                                                                                                                                                  Add To Compare
                                                                                                                                                                                  Sterling Silver Birthstone Name Bracelet - | Mali's Customized Jewellery  Mali's  1  Metal Part: Sterling Silver  - Silver BirthSterling Silver Birthstone Name Bracelet - | Mali's Customized Jewellery
                                                                                                                                                                                      Home
                                                                                                                                                                                      4 equal payments with  Klarna ...
                                                                                                                                                                                      $79.00Price
                                                                                                                                                                                      Add To Compare
                                                                                                                                                                                      Sterling Silver Birthstone Name Bracelet - | Mali's Customized Jewellery  Mali's  1  Metal Part: Sterling Silver  - Silver BirthSterling Silver Birthstone Name Bracelet - | Mali's Customized Jewellery
                                                                                                                                                                                          $79.00Price
                                                                                                                                                                                          Add To Compare
                                                                                                                                                                                          Half Round Sterling Silver Band- | Mali's Canadian Jewellery  Mali's  1  Metal Part: Sterling Silver  - 4mm Sterling Silver weddHalf Round Sterling Silver Band- | Mali's Canadian Jewellery
                                                                                                                                                                                              Home
                                                                                                                                                                                              Engravable Sterling silver wedding band  Width: 4 mm Thickness: 2 mm Size 3 - 12.5 Free Engraving Crafted in Canada
                                                                                                                                                                                              $59.00Price
                                                                                                                                                                                              Add To Compare
                                                                                                                                                                                              Half Round Sterling Silver Band- | Mali's Canadian Jewellery  Mali's  1  Metal Part: Sterling Silver  - 4mm Sterling Silver weddHalf Round Sterling Silver Band- | Mali's Canadian Jewellery
                                                                                                                                                                                                  Home
                                                                                                                                                                                                  Engravable Sterling silver wedding band  Width: 4 mm Thickness: 2 mm Size 3 - 12.5 Free Engraving Crafted in Canada
                                                                                                                                                                                                  $59.00Price
                                                                                                                                                                                                  Add To Compare
                                                                                                                                                                                                  Sterling Silver CZ Birthstone Post Earrings- | Mali's Canadian Jewellery Mali's 5 Metal Part: Sterling Silver - Sterling Silver Sterling Silver CZ Birthstone Post Earrings- | Mali's Canadian Jewellery
                                                                                                                                                                                                      Home
                                                                                                                                                                                                      4 equal payments with  Klarna ...
                                                                                                                                                                                                      $49.00Price
                                                                                                                                                                                                      Add To Compare
                                                                                                                                                                                                      Sterling Silver CZ Birthstone Post Earrings- | Mali's Canadian Jewellery Mali's 5 Metal Part: Sterling Silver - Sterling Silver Sterling Silver CZ Birthstone Post Earrings- | Mali's Canadian Jewellery
                                                                                                                                                                                                          $49.00Price
                                                                                                                                                                                                          Add To Compare
                                                                                                                                                                                                            Add To Compare
                                                                                                                                                                                                            Birth Flower Stud Earrings- | Mali's Fashion Jewelry  Mali's  9  Metal Part: Sterling Silver  - Birth Month Flower and blossom eBirth Flower Stud Earrings- | Mali's Canadian Jewelry
                                                                                                                                                                                                                Add To Compare
                                                                                                                                                                                                                Birth Flower Stud Earrings- | Mali's Fashion Jewelry  Mali's  9  Metal Part: Sterling Silver  - Birth Month Flower and blossom eBirth Flower Stud Earrings- | Mali's Canadian Jewelry
                                                                                                                                                                                                                    MERCHANTS
                                                                                                                                                                                                                    4 equal payments with  Klarna ...
                                                                                                                                                                                                                    $49.00Price
                                                                                                                                                                                                                    Add To Compare
                                                                                                                                                                                                                    Birth Flower Stud Earrings- | Mali's Fashion Jewelry  Mali's  9  Metal Part: Sterling Silver  - Birth Month Flower and blossom eBirth Flower Stud Earrings- | Mali's Canadian Jewelry
                                                                                                                                                                                                                        MERCHANTS
                                                                                                                                                                                                                        4 equal payments with  Klarna ...
                                                                                                                                                                                                                        $49.00Price
                                                                                                                                                                                                                        Add To Compare
                                                                                                                                                                                                                        '); } else if (el.find('input[name="captcha_type"]').first().val() == 'v3') { var captchaKey = el.find('input[name="captcha_site_key"]').first().val(); el.prepend(''); } } } function isIE() { ua = navigator.userAgent; /* MSIE used to detect old browsers and Trident used to newer ones*/ var is_ie = ua.indexOf("MSIE ") > -1 || ua.indexOf("Trident/") > -1; return is_ie; } function ets_abancart_mouseleave(event) { var y, _ie = isIE(); if (_ie) { y = event.clientY || event.screenY || event.pageY; } else { y = event.clientY; } if ((y > -5 && !_ie) || (_ie && y > 5)) { return; } ets_abancart_timeout = setTimeout(ets_abancart_leavewebsite, 0); } function ets_abancart_mouseenter() { if (ets_abancart_timeout) { clearTimeout(ets_abancart_timeout); ets_abancart_timeout = null; } } function ets_abancart_keydown(e) { if (ets_abancart_disable_keydown || !e.metaKey || e.keyCode !== 76) { return; } ets_abancart_disable_keydown = true; ets_abancart_timeout = setTimeout(ets_abancart_leavewebsite, ets_abancart_delay); } //display a success/error/notice message function showSuccessMessage(msg) { $.growl.notice({title: "", message: msg}); } function showErrorMessage(msg) { $.growl.error({title: "", message: msg}); } /*----------END LEAVE WEBSITE----------*/ var ets_ab_fn = { init: function () { if (typeof ETSFavico !== "undefined") { window.favicon = new ETSFavico({ animation: 'popFade', bgColor: ETS_ABANCART_BACKGROUND_COLOR, textColor: ETS_ABANCART_TEXT_COLOR, }); ets_ab_fn.loadAjax(true); } ets_ab_fn.initCampaign(); ets_ab_fn.saveCart(); }, initCampaign: function () { if (ETS_ABANCART_CAMPAIGNS) { ETS_ABANCART_CAMPAIGNS.forEach(function (item) { ets_ab_fn.setCampaign(item); }); } if (ETS_ABANCART_COOKIE_CAMPAIGNS) { ETS_ABANCART_COOKIE_CAMPAIGNS.forEach(function (item) { ets_ab_fn.setCampaignCookie(item); }); } }, clearTimeout: function (id, isRemove) { if (typeof ETS_ABANCART_QUEUE[id] !== "undefined") { clearTimeout(ETS_ABANCART_QUEUE[id]); if (isRemove) delete ETS_ABANCART_QUEUE[id]; } }, setCampaign: function (item) { ets_ab_fn.clearTimeout(item.id_ets_abancart_reminder); ETS_ABANCART_QUEUE[item.id_ets_abancart_reminder] = setTimeout( function () { ets_ab_fn.request(parseInt(item.id_ets_abancart_reminder), item.campaign_type); } , parseInt((parseFloat(item.lifetime) > 0 ? parseFloat(item.lifetime) * 1000 : 0)) ); }, setCampaignCookie: function (item) { ets_ab_fn.clearTimeout(item.id_ets_abancart_reminder); var timeOut = 0; if (typeof item.lifetime !== "undefined" || parseFloat(item.redisplay) >= 0) { if (typeof item.lifetime !== "undefined") { timeOut = item.lifetime * 1000; } else { timeOut = parseFloat(item.redisplay) > 0 ? parseFloat(item.redisplay) * 1000 : 0; } ETS_ABANCART_QUEUE[item.id_ets_abancart_reminder] = setTimeout( function () { ets_ab_fn.request(parseInt(item.id_ets_abancart_reminder), item.type); } , timeOut ); } }, mergeCampaign: function (reminder, campaigns, action, isCookie) { var flag = 0; if (campaigns.length > 0) { campaigns.forEach(function (item) { if (isCookie) { if (item.length > 0) { item.forEach(function (rem) { if (parseInt(rem.id_ets_abancart_reminder) === parseInt(reminder.id_ets_abancart_reminder)) { flag = 1; return true; } }); } } else { if (parseInt(item.id_ets_abancart_reminder) === parseInt(reminder.id_ets_abancart_reminder)) { flag = 1; } } if (flag > 0) return true; }); } if (flag < 1) { switch (action) { case 'add': if (isCookie) ets_ab_fn.setCampaignCookie(reminder); else ets_ab_fn.setCampaign(reminder); break; case 'delete': ets_ab_fn.removeCampaign(reminder); break; } } }, restCampaigns: function (campaigns) { if (ETS_ABANCART_CAMPAIGNS.length > 0) { ETS_ABANCART_CAMPAIGNS.forEach(function (item) { ets_ab_fn.mergeCampaign(item, campaigns, 'delete'); }) } if (campaigns.length > 0) { campaigns.forEach(function (item) { ets_ab_fn.mergeCampaign(item, ETS_ABANCART_CAMPAIGNS, 'add'); }); } }, restCookieCampaigns: function (campaigns) { if (ETS_ABANCART_COOKIE_CAMPAIGNS.length > 0) { ETS_ABANCART_COOKIE_CAMPAIGNS.forEach(function (item) { ets_ab_fn.mergeCampaign(item, campaigns, 'delete', true); }); } if (campaigns.length > 0) { campaigns.forEach(function (item) { if (item.length > 0) { item.forEach(function (rem) { ets_ab_fn.mergeCampaign(rem, ETS_ABANCART_COOKIE_CAMPAIGNS, 'add'); }); } }); } }, removeCampaign: function (id) { ets_ab_fn.clearTimeout(id, true); delete ETS_ABANCART_REQUEST[id]; }, ajaxState: function () { var flag = 0, first = 0, requestQueue = Object.keys(ETS_ABANCART_REQUEST); if (requestQueue.length > 0) { requestQueue.forEach(function (key) { if (parseInt(first) <= 0) first = ETS_ABANCART_REQUEST[key].id; if (ETS_ABANCART_REQUEST[key].state > 0) { flag = 1; return true; } }); } return flag <= 0 ? first : 0; }, request: function (id, campaign_type) { if (ETS_ABANCART_LINK_AJAX && parseInt(id) > 0) { ETS_ABANCART_REQUEST[id] = { type: 'post', url: ETS_ABANCART_LINK_AJAX, dataType: 'json', data: 'renderDisplay&id_ets_abancart_reminder=' + id + '&campaign_type=' + campaign_type, state: 0, id: id }; var nextId = ets_ab_fn.ajaxState(); if (parseInt(nextId) > 0) ets_ab_fn.doRequestAjax(id); } }, doRequestAjax: function (id) { var request = ETS_ABANCART_REQUEST[id]; request.state = 1; request.success = function (json) { delete ETS_ABANCART_REQUEST[id]; if (json) { if (json.campaigns) ets_ab_fn.restCampaigns(json.campaigns); if (json.cookies) ets_ab_fn.restCookieCampaigns(json.cookies); if (json.redisplay < 0 && json.id_ets_abancart_reminder > 0) { ets_ab_fn.removeCampaign(json.id_ets_abancart_reminder); } else { switch (json.type) { case 'popup': ets_ab_fn.popup(json, id); break; case 'bar': ets_ab_fn.bar(json, id); break; case 'browser': ets_ab_fn.browser(json, id); break; } } } } $.ajax(request); }, views: function (id, json, group_class) { if (id && json) { // FIRST: var overloadEl = '.ets_abancart_' + json.type + '_overload'; if ($('.ets_abancart_' + json.type + '_overload').length <= 0) { $('body').prepend('
                                                                                                                                                                                                                        '); } // NEXT: var _container = $('body .ets_abancart_' + json.type + '_overload'); _container .attr({'data-id': id, 'data-type': json.type}) .addClass('active') .find('.ets_abancart_wrapper') .html('
                                                                                                                                                                                                                        ' + json.html + '
                                                                                                                                                                                                                        ') .prepend((json.type === 'popup' ? '

                                                                                                                                                                                                                        ' + json.title + '

                                                                                                                                                                                                                        ' : '')) ; /*---HIGHLIGHT BAR---*/ if (json.type !== 'popup') { _container.attr('style', 'background-color: ' + json.background_color + '; color: ' + json.text_color); } var selectorContainer = _container.find('.ets_abancart_container'); if (json.type === 'bar') { selectorContainer = _container.find('.ets_abancart_width'); } selectorContainer.css('margin', '0 auto'); if (json.popup_width) selectorContainer.css('width', json.popup_width + 'px'); if (json.popup_height) { selectorContainer.css('height', json.popup_height + 'px'); selectorContainer.css('min-height', json.popup_height + 'px'); } if (json.border_radius) selectorContainer.css('border-radius', json.border_radius + 'px'); if (json.border_width) { selectorContainer.css('border-width', json.border_width + 'px'); selectorContainer.css('border-style', 'solid'); } if (json.border_color) selectorContainer.css('border-color', json.border_color); if (json.close_btn_color) { _container.find('.ets_abancart_close').find('style').remove(); _container.find('.ets_abancart_close').append(''); } if (json.vertical_align) { $(overloadEl + ' .ets-ac-popup-body p, ' + overloadEl + ' .ets-ac-popup-body a,' + overloadEl + ' .ets-ac-popup-body div:not(.ets_abancart_product_list_table)').css('text-align', 'inherit'); $(overloadEl + ' .ets-ac-popup-body').css('text-align', json.vertical_align); } if (json.font_size) { $('' + overloadEl + ' .ets-ac-popup-body,' + overloadEl + ' .ets-ac-popup-body p, ' + overloadEl + ' .ets-ac-popup-body a,' + overloadEl + ' .ets-ac-popup-body div').css('font-size', json.font_size + 'px'); } if (json.padding) { if (json.popup_width) { if (json.type === 'bar') { selectorContainer.css('padding', json.padding + 'px'); } else $('' + overloadEl + ' .ets-ac-popup-body').css('padding', json.padding + 'px'); } } if (json.overlay_bg) { var color = json.overlay_bg; if (json.overlay_bg_opacity) { var rgbColor = etsAcHexToRgb(json.overlay_bg); color = 'rgba(' + rgbColor.r + ',' + rgbColor.g + ',' + rgbColor.b + ',' + json.overlay_bg_opacity + ')'; } $('.ets_abancart_popup_overload').css('background-color', color); } ets_ab_fn.countdown(); ets_ab_fn.countdown2(); if ($('.ets_ac_datepicker').length) { $('.ets_ac_datepicker').removeClass('hasDatepicker'); $('.ets_ac_datepicker').datepicker({dateFormat: 'yy-mm-dd'}); } if ($('.ets_ac_datetimepicker').length) { $('.ets_ac_datetimepicker').removeClass('hasDatepicker'); $('.ets_ac_datetimepicker').datetimepicker({ prevText: '', nextText: '', dateFormat: 'yy-mm-dd', currentText: 'Now', closeText: 'Done', ampm: false, amNames: ['AM', 'A'], pmNames: ['PM', 'P'], timeFormat: 'hh:mm:ss tt', formatTime: 'hh:mm:ss tt', timeSuffix: '', timeOnlyTitle: 'Choose Time', timeText: 'Time', hourText: 'Hour', minuteText: 'Minute', }); } etsAcOnLoadRecaptcha(); } }, popup: function (json, id) { ets_ab_fn.views(id, json, 'ets_abancart_popup'); }, bar: function (json, id) { ets_ab_fn.views(id, json, ''); }, browser: function (json, id) { if (json && id) { var notification; if (!("Notification" in window)) { //alert("This browser does not support desktop notification 1"); } else if (Notification.permission === "granted") { ets_ab_fn.setNotification(notification, json, id); } else if (Notification.permission !== "denied" && ETS_ABANCART_HAS_BROWSER) { Notification.requestPermission().then(function (permission) { if (permission === "granted") { ets_ab_fn.setNotification(notification, json, id); } }); } } }, setNotification: function (notification, json, id) { // New notification. notification = new Notification(json.title, {icon: json.icon, body: json.html}); // Event click. notification.onclick = function () { if (typeof json.code !== "undefined" && json.code) { $.ajax({ type: 'post', url: ETS_ABANCART_LINK_AJAX, dataType: 'json', data: 'add_cart_rule&discount_code=' + json.code, success: function (json) { if (json) { if (json.errors) { showErrorMessage(json.errors) } else { window.location.href = json.link_checkout; } } }, }); } }; // Event close. notification.onclose = function () { if (id) { $.ajax({ type: 'post', url: ETS_ABANCART_LINK_AJAX, dataType: 'json', data: 'type=browser&redisplay=1&id=' + id, }); } }; }, close: function (type, json) { $('body .ets_abancart_' + type + '_overload.active').remove(); if (parseFloat(json.redisplay) > 0) { ETS_ABANCART_QUEUE[json.id_ets_abancart_reminder] = setTimeout(function () { ets_ab_fn.request(json.id_ets_abancart_reminder, type); }, parseFloat(json.redisplay) * 1000); } }, countdown: function () { var clock = $('.ets_abancart_count_down_clock'); var style = clock.attr('data-style') || ''; if (clock.length > 0) { clock.countdown(parseInt(clock.data('date')) * 1000).on('update.countdown', function (event) { $(this).html(event.strftime('' + (event.offset.weeks > 0 ? '%-w week%!w ' : '') + (event.offset.days > 0 ? '%-d day%!d ' : '') + '%H hr ' + '%M min ' + '%S sec ')); }); } }, countdown2: function () { var clock = $('.ets_ac_evt_countdown2'); var style = clock.attr('data-style') || ''; if (clock.length > 0) { clock.countdown(parseInt(clock.data('date')) * 1000).on('update.countdown', function (event) { $(this).html(event.strftime('' + (event.offset.weeks > 0 ? '%-w week%!w ' : '') + (event.offset.days > 0 ? '%-d day%!d ' : '') + '%H hr ' + '%M min ' + '%S sec ')); }); } }, saveCart: function () { if ((ETS_ABANCART_LIFE_TIME >= 0 || $('#ets_abancart_cart_save.active').length > 0) && ETS_ABANCART_LINK_SHOPPING_CART) { setTimeout(function () { $.ajax({ type: 'POST', dataType: 'json', url: ETS_ABANCART_LINK_SHOPPING_CART, data: 'init', success: function (json) { $('#ets_abancart_cart_save.active').removeClass('active'); if (json) { if ($('body .ets_abancart_shopping_cart_overload').length <= 0) { $('body').prepend('
                                                                                                                                                                                                                        '); } if (json.html) $('body .ets_abancart_shopping_cart_overload').addClass('active').find('.ets_abancart_wrapper').html(json.html); } }, error: function () { $('#ets_abancart_cart_save.active').removeClass('active'); } }); }, $('#ets_abancart_cart_save.active').length > 0 ? 0 : ETS_ABANCART_LIFE_TIME * 1000); } }, exitPopupSaveCart: function (notReDisplay) { var notReDisplay = notReDisplay || true; $('.ets_abancart_shopping_cart_overload.active').removeClass('active'); if (notReDisplay && ETS_ABANCART_LINK_SHOPPING_CART) { $('#save_cart_form .bootstrap').remove(); $.ajax({ type: 'post', url: ETS_ABANCART_LINK_SHOPPING_CART, dataType: 'json', data: 'ajax=1&offCart', success: function () { }, error: function () { } }); } }, exitPopupCart: function () { $('.ets_abancart_display_shopping_cart_overload.active').removeClass('active'); }, loadAjax: function (initialized) { if (typeof ETS_ABANCART_BROWSER_TAB_ENABLED === "undefined" || !ETS_ABANCART_BROWSER_TAB_ENABLED) return; if (initialized) { favicon.badge(parseInt(ETS_ABANCART_PRODUCT_TOTAL)); } else if (ETS_ABANCART_LINK_AJAX && typeof favicon !== "undefined") { $.ajax({ type: 'POST', dataType: 'JSON', url: ETS_ABANCART_LINK_AJAX, data: 'favicon&ajax=1', success: function (json) { if (json) { favicon.badge(parseInt(json.product_total)); } } }); } }, exitPopupLeave: function () { $('.ets_abancart_leave_website_overload.active').removeClass('active'); $('.ets_abancart_leave_website_overload .ets_abancart_wrapper.active').remove(); }, copyToClipboard: function (el) { var $temp = $(""); $("body").append($temp); $temp.val(el.text().trim()).select(); document.execCommand("copy"); $temp.remove(); showSuccessMessage(ETS_ABANCART_COPIED_MESSAGE); setTimeout(function () { el.removeClass('copy'); }, 300); }, }; $(document).ready(function () { if ($('.ets_ac_datepicker').length) { $('.ets_ac_datepicker').datepicker({dateFormat: 'yy-mm-dd'}); } if ($('.ets_ac_datetimepicker').length) { $('.ets_ac_datetimepicker').datetimepicker({ prevText: '', nextText: '', dateFormat: 'yy-mm-dd', currentText: 'Now', closeText: 'Done', ampm: false, amNames: ['AM', 'A'], pmNames: ['PM', 'P'], timeFormat: 'hh:mm:ss tt', formatTime: 'hh:mm:ss tt', timeSuffix: '', timeOnlyTitle: 'Choose Time', timeText: 'Time', hourText: 'Hour', minuteText: 'Minute', }); } if ($('.ets_speed_dynamic_hook').length < 1) { ets_ab_fn.init(); } $(document).on("hooksLoaded", function () { Object.keys(ETS_ABANCART_QUEUE).forEach(function (i) { clearTimeout(ETS_ABANCART_QUEUE[i]); delete ETS_ABANCART_QUEUE[i]; }); ets_ab_fn.init(); }); /*---favicon---*/ $(document).ajaxComplete(function (event, xhr, settings) { if (typeof settings.data !== "undefined" && (settings.data.toString().match(/(qty=\d+)/i) && settings.data.toString().match(/(add=\d+)/i) || settings.url.match(/(id_product=\d+)/i) && settings.url.match(/(update=\d+)/i) || settings.url.match(/(id_product=\d+)/i) && settings.url.match(/(delete=\d+)/i))) { ets_ab_fn.loadAjax(false); } var nextId = ets_ab_fn.ajaxState(); if (parseInt(nextId) > 0) ets_ab_fn.doRequestAjax(nextId); }); /*---end favicon---*/ $(document).on('click', '.ets_abancart_box .ets_abancart_box_discount', function (ev) { ev.preventDefault(); ets_ab_fn.copyToClipboard($(this)); }); $(document).on('click', '.ets_abancart_leave_website_overload .ets_abancart_close', function (ev) { ev.preventDefault(); ets_ab_fn.exitPopupLeave(); var btn = $(this); if (!btn.hasClass('active') && ETS_ABANCART_LINK_AJAX) { $.ajax({ type: 'post', url: ETS_ABANCART_LINK_AJAX, dataType: 'json', data: 'leave_closed', success: function (json) { btn.removeClass('active'); }, }); } }); $(document).on('click', '.ets_abancart_shopping_cart_overload .ets_abancart_create_account', function (ev) { ev.preventDefault(); if ($('#id_customer').length > 0 && parseInt($('#id_customer').val()) <= 0) { $('.ets_abancart_form_login').fadeOut(); $('.ets_abancart_form_create').fadeIn(); } }); $(document).on('click', '.ets_abancart_view_shopping_cart', function (ev) { ev.preventDefault(); var btn = $(this); if (!btn.hasClass('active') && btn.attr('href') != '') { btn.addClass('active'); $.ajax({ type: 'POST', url: btn.attr('href'), dataType: 'json', data: 'ajax=1', success: function (json) { btn.removeClass('active'); if (json) { if ($('body .ets_abancart_display_shopping_cart_overload').length <= 0) { $('body').prepend('
                                                                                                                                                                                                                        '); } $('body .ets_abancart_display_shopping_cart_overload').addClass('active').find('.ets_abancart_wrapper').html(json.html); } }, error: function () { btn.removeClass('active'); } }); } }); $(document).on('click', '.ets_abancart_display_shopping_cart_overload .ets_abancart_close, .ets_abancart_display_shopping_cart_overload .ets_abancart_cancel', function (ev) { ev.preventDefault(); ets_ab_fn.exitPopupCart(); }); $(document).on('click', '.ets_abancart_load_this_cart', function (ev) { ev.preventDefault(); var btn = $(this); if (!btn.hasClass('active') && btn.attr('href') != '') { btn.addClass('active'); $.ajax({ type: 'POST', url: btn.attr('href'), dataType: 'json', data: 'ajax=1', success: function (json) { btn.removeClass('active'); if (json) { if (json.errors) $('body .ets_abancart_display_shopping_cart_overload').prepend(json.errors); else window.location.href = json.link_checkout; } }, error: function () { btn.removeClass('active'); } }); } }); $(document).on('click', '.ets_abancart_shopping_cart_overload .ets_abancart_close', function (ev) { ev.preventDefault(); ets_ab_fn.exitPopupSaveCart(); }); $(document).on('click', '.ets_abancart_shopping_cart_overload button[id=submit_cart]', function (ev) { ev.preventDefault(); var btn = $(this), form = $('#save_cart_form'); btn.parents('form#save_cart_form').find('input.cart_name').removeClass('error'); if (!btn.hasClass('active') && form.attr('action')) { btn.addClass('active'); var formData = new FormData(form.get(0)); formData.append('ajax', 1); $('#save_cart_form .bootstrap').remove(); $.ajax({ type: 'post', url: form.attr('action'), dataType: 'json', data: formData, processData: false, contentType: false, success: function (json) { btn.removeClass('active'); if (json) { if (json.not_logged && parseInt($('#id_customer').val()) <= 0) { $('.ets_abancart_form_login').fadeIn(); $('.ets_abancart_form_save_cart').fadeOut(); } else if (json.errors) { form.prepend(json.errors); btn.parents('form#save_cart_form').find('input#cart_name').addClass('error').focus(); } else { if (json.msg) showSuccessMessage(json.msg); $('#ets_abancart_cart_save').remove(); ets_ab_fn.exitPopupSaveCart(false); } } }, error: function () { btn.removeClass('active'); } }); } }); $(document).on('change', 'input#cart_name', function (e) { if ($(this).val() != '') { $(this).removeClass('error'); } else { $(this).addClass('error'); } }); $(document).on('click', '.ets_abancart_shopping_cart_overload button[name=submitLogin]', function (ev) { ev.preventDefault(); var btn = $(this), form = $('#login_form'); if (!btn.hasClass('active') && form.attr('action')) { btn.addClass('active'); var formData = new FormData(form.get(0)); formData.append('cart_name', $('#cart_name').val()); formData.append('ajax', 1); $('#login_form .bootstrap').remove(); $.ajax({ type: 'post', url: form.attr('action'), dataType: 'json', data: formData, processData: false, contentType: false, success: function (json) { btn.removeClass('active'); if (json) { if (json.errors) form.prepend(json.errors); else window.location.reload(); } }, error: function () { btn.removeClass('active'); } }); } }); $(document).on('click', '.ets_abancart_shopping_cart_overload button[name=submitCreate]', function (ev) { ev.preventDefault(); var btn = $(this), form = $('#create_form'); if (!btn.hasClass('active') && form.attr('action')) { btn.addClass('active'); var formData = new FormData(form.get(0)); formData.append('cart_name', $('#cart_name').val()); formData.append('ajax', 1); $('#login_form .bootstrap').remove(); $.ajax({ type: 'post', url: form.attr('action'), dataType: 'json', data: formData, processData: false, contentType: false, success: function (json) { btn.removeClass('active'); if (json) { if (json.errors) form.prepend(json.errors); else window.location.reload(); } }, error: function () { btn.removeClass('active'); window.location.reload(); } }); } }); $(document).on('click', '#ets_abancart_cart_save', function (ev) { ev.preventDefault(); if (!$(this).hasClass('active')) { $(this).addClass('active'); ets_ab_fn.saveCart(); } }); $(document).on('click', '.ets_abancart_close:not(.leave), .ets_abancart_no_thanks', function (ev) { ev.preventDefault(); var btn = $(this), overload = btn.parents('.ets_abancart_overload'), id = overload.attr('data-id'), type = overload.attr('data-type'); $('body .ets_abancart_' + type + '_overload.active').remove(); if (!btn.hasClass('active') && ETS_ABANCART_LINK_AJAX && id) { $.ajax({ type: 'post', url: ETS_ABANCART_LINK_AJAX, dataType: 'json', data: 'type=' + type + '&redisplay=1&id=' + id + (btn.hasClass('ets_abancart_no_thanks') ? '&closed=1' : ''), success: function (json) { if (json) { ets_ab_fn.close(type, json); } } }); } }); $(document).on('click', '.ets_abancart_leave_website_overload .ets_abancart_no_thanks', function (ev) { ev.preventDefault(); var btn = $(this), overload = btn.parents('.ets_abancart_overload'); overload.remove(); if (!btn.hasClass('active') && ETS_ABANCART_LINK_AJAX) { btn.addClass('active'); $.ajax({ type: 'post', url: ETS_ABANCART_LINK_AJAX, dataType: 'json', data: 'offLeave', success: function (json) { btn.removeClass('active'); if (json) { } }, error: function () { btn.removeClass('active'); } }); } }); $(document).on('click', '.ets_abancart_overload .ets_abancart_add_discount', function (ev) { ev.preventDefault(); var btn = $(this), overload = btn.parents('.ets_abancart_overload'), discount_code = btn.data('code'); if (!btn.hasClass('active') && ETS_ABANCART_LINK_AJAX) { $.ajax({ type: 'post', url: ETS_ABANCART_LINK_AJAX, dataType: 'json', data: 'add_cart_rule&discount_code=' + discount_code, success: function (json) { if (json) { if (json.errors) { //overload.prepend(json.errors); showErrorMessage(json.errors); } else window.location.href = json.link_checkout; } } }); } }); $(document).keyup(function (e) { if (e.keyCode === 27) { ets_ab_fn.exitPopupCart(); ets_ab_fn.exitPopupSaveCart(); } }); $(document).mouseup(function (e) { var displayShoppingCart = $('.ets_abancart_display_shopping_cart_overload.active .ets_abancart_container'), displayCartSave = $('.ets_abancart_shopping_cart_overload.active .ets_abancart_shopping_cart'); if (displayShoppingCart.length > 0 && !displayShoppingCart.is(e.target) && displayShoppingCart.has(e.target).length === 0) { ets_ab_fn.exitPopupCart(); } if (displayCartSave.length > 0 && !displayCartSave.is(e.target) && displayCartSave.has(e.target).length === 0) { ets_ab_fn.exitPopupSaveCart(); } }); $(document).on('click', '.ets_abancart_delete_cart, .ets_abancart_delete', function (ev) { var btn = $(this); if (!confirm(btn.data('confirm'))) { ev.preventDefault(); } }); $(document).on('click', '.js-ets-ac-btn-submit-lead-form', function (e) { var $this = $(this); if ($this.hasClass('loading')) { return false; } if ($this.closest('form').find('.ets_ac_captchav2').length && typeof grecaptcha !== 'undefined') { if (!grecaptcha.getResponse()) { $this.closest('.ets-ac-lead-form-field-shortcode').find('.form-errors').html('
                                                                                                                                                                                                                        '); return false; } } var formData = new FormData(); var inputDatas = $this.closest('form').serializeArray(); $.each(inputDatas, function (i, el) { if ($this.closest('form').find('[name="' + el.name + '"]').attr('type') == 'file') { var fileItem = $this.closest('form').find('[name=' + el.name + ']')[0].files; if (fileItem.length) { formData.append(el.name, fileItem[0]); } } else { formData.append(el.name, el.value); } }); $this.closest('form').find('input[type=file]').each(function () { var fileItem = $(this)[0].files; if (fileItem.length) { formData.append($(this).attr('name'), fileItem[0]); } }); formData.append('submitEtsAcLeadForm', 1); $.ajax({ url: ETS_AC_LINK_SUBMIT_LEAD_FORM + (ETS_AC_LINK_SUBMIT_LEAD_FORM.indexOf('?') !== -1 ? '&ajax=1' : '?ajax=1'), type: 'POST', dataType: 'json', data: formData, processData: false, contentType: false, dataType: 'json', beforeSend: function () { $this.addClass('loading'); $this.prop('disabled', true); }, success: function (res) { if (res.success) { if (res.display_thankyou_page) { $this.closest('.ets_abancart_wrapper').html(res.thankyou); if ($('.ets_abancart_popup_overload .ets_abancart_close').length) { $('.ets_abancart_popup_overload .ets_abancart_close').addClass('thankyou-page'); } } else { $this.closest('.ets-ac-lead-form-field-shortcode').html('
                                                                                                                                                                                                                        ' + res.message + '
                                                                                                                                                                                                                        '); } } else { var msg = ''; $.each(res.message, function (i, el) { msg += '
                                                                                                                                                                                                                      • ' + el + '
                                                                                                                                                                                                                      • '; }); $this.closest('.ets-ac-lead-form-field-shortcode').find('.form-errors').html('
                                                                                                                                                                                                                        '); } }, complete: function () { $this.removeClass('loading'); $this.prop('disabled', false); } }); return false; }); $(document).on('click', '.ets-ac-btn-submit-lead-form ', function () { var $this = $(this); if ($this.closest('form').find('.ets_ac_captchav2').length && typeof grecaptcha !== 'undefined') { if (!grecaptcha.getResponse()) { $this.closest('form').find('.ets_ac_captchav2').parent().find('.form-error-item').remove(); $this.closest('form').find('.ets_ac_captchav2').after('

                                                                                                                                                                                                                        ' + ETS_AC_TRANS.captchv2_invalid + '

                                                                                                                                                                                                                        '); return false; } } }); $(document).mouseleave(function () { setTimeout(ets_abancart_leavewebsite, 0) }); }); function etsAcHexToRgb(hex) { // Expand shorthand form (e.g. "03F") to full form (e.g. "0033FF") var shorthandRegex = /^#?([a-f\d])([a-f\d])([a-f\d])$/i; hex = hex.replace(shorthandRegex, function (m, r, g, b) { return r + r + g + g + b + b; }); var result = /^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})$/i.exec(hex); return result ? { r: parseInt(result[1], 16), g: parseInt(result[2], 16), b: parseInt(result[3], 16) } : null; }
                                                                                                                                                                                                                        ", "gi"), ''); next_head = next_head.replace(new RegExp("", "gi"), ''); next_head = next_head.replace(new RegExp("", "gi"), ''); return next_head; }, updateUrlHead: function(updateAll, i) { tv_log('updateUrlHead'); if (!this.isBlocklayeredActiv) { $('head').find('title').remove(); $('head').find('meta').remove(); } if (updateAll) { if (!this.isBlocklayeredActiv) { if (this.pushStateAvailable) { window.history.pushState({ tvcmsinfinitescroll: 1 }, '', this.ajaxUrl); } $('head').prepend(this.next_head); } else { if (this.pushStateAvailable) { window.history.pushState({ tvcmsinfinitescroll: 1 }, '', this.ajaxUrl); } this.busy = true; } if ('object' == typeof _gaq) _gaq.push(['_trackPageview', this.ajaxUrl]); } else { if (this.pushStateAvailable) { window.history.pushState({ tvcmsinfinitescroll: 1 }, '', this.offset_pages[i].url); } if (typeof this.offset_pages[i].head == 'object') $('head').prepend(this.offset_pages[i].head.html()); else $('head').prepend(this.offset_pages[i].head); } }, determineURL: function() { tv_log('determineURL'); var location = window.location.href; var current = -1; for (var i = this.offset_pages.length - 1; i >= 0; i--) { if ($(window).scrollTop() <= this.offset_pages[i].offset) current = i; } if (current > -1 && location != this.offset_pages[current].url && location != this.offset_pages[current].url + '#') this.updateUrlHead(false, current); customImgLazyLoad(); }, getAjaxUrlFromPagination: function() { var url = $(this.pagination_wrapper + ' ' + this.next_button + ':not(.disabled)').attr('href'); if (url !== '' && url !== window.location.href) { this.ajaxUrl = url; this.offset = $(this.product_wrapper + ' ' + this.product_elem + ':last').offset(); } else { this.ajaxUrl = false; this.offset = false; } tv_log('getAjaxUrlFromPagination ajaxUrl: ' + this.ajaxUrl); tv_log(this.offset); }, getUrlParamPage: function() { var currentUrl = window.location.href; var p = 1; if (this.has_facetedSearch) { var page = currentUrl.substring(currentUrl.indexOf('?') + 1, currentUrl.length); var page_split = page.split('&'); for (var i = 0; i < page_split.length; i++) { if (page_split[i].indexOf('page=') != -1) { p = page_split[i].substring(5, page_split[i].length); } } } else if (!this.isBlocklayeredActiv) { var page = currentUrl.substring(currentUrl.indexOf('?') + 1, currentUrl.length); var page_split = page.split('&'); for (var i = 0; i < page_split.length; i++) { if (page_split[i].indexOf('p=') != -1) { p = page_split[i].substring(2, page_split[i].length); } } } else { var page = currentUrl.substring(currentUrl.indexOf('#/') + 2, currentUrl.length); var page_split = page.split('/'); for (var i = 0; i < page_split.length; i++) { if (page_split[i].indexOf('page-') != -1) { p = page_split[i].substring(5, currentUrl.length); } } } tv_log('getUrlParamPage: ' + p); return parseInt(p); }, makeUrlWithPage: function(p) { var the_url = ''; var baseUrl = ''; var paramsUrl = ''; var currentUrl = window.location.href; if (this.has_facetedSearch) { baseUrl = currentUrl.substring(0, currentUrl.indexOf('?')); paramsUrl = currentUrl.substring(currentUrl.indexOf('?') + 1, currentUrl.length); var paramsSplit = paramsUrl.split('&'); paramsUrl = ''; for (var i = 0; i < paramsSplit.length; i++) { if (paramsSplit[i].indexOf('page=') != -1) { if (p > 1) { if (paramsUrl !== '') { paramsUrl += '&'; } paramsUrl += 'page=' + p; } } else { if (paramsUrl !== '') { paramsUrl += '&'; } paramsUrl += paramsSplit[i]; } } the_url = baseUrl; if (paramsUrl !== '') { the_url += '?' + paramsUrl; } } else if (!this.isBlocklayeredActiv) { baseUrl = window.location.href.substring(0, window.location.href.indexOf('?')); paramsUrl = currentUrl.substring(currentUrl.indexOf('?') + 1, currentUrl.length); var paramsSplit = paramsUrl.split('&'); paramsUrl = ''; for (var i = 0; i < paramsSplit.length; i++) { if (paramsSplit[i].indexOf('p=') != -1) { if (p > 1) { if (paramsUrl !== '') { paramsUrl += '&'; } paramsUrl += 'p=' + p; } } else { if (paramsUrl !== '') { paramsUrl += '&'; } paramsUrl += paramsSplit[i]; } } the_url = baseUrl; if (paramsUrl !== '') { the_url += '?' + paramsUrl; } } else { baseUrl = window.location.href.substring(0, window.location.href.indexOf('#/')); paramsUrl = currentUrl.substring(currentUrl.indexOf('#/') + 2, currentUrl.length); var paramsSplit = paramsUrl.split('/'); paramsUrl = ''; for (var i = 0; i < paramsSplit.length; i++) { if (paramsSplit[i].indexOf('page-') != -1) { if (paramsUrl !== '') { if (i > 0) { paramsUrl += '/'; } paramsUrl += 'page-' + p; } } else { if (paramsUrl !== '') { paramsUrl += '/'; } paramsUrl += paramsSplit[i]; } } the_url = baseUrl; if (paramsUrl !== '') { the_url += '#/' + paramsUrl; } } tv_log('makeUrlWithPage (i = ' + p + '): ' + the_url); return the_url; }, reassign_offset: function() { this.offset = $(this.product_wrapper + ':visible ' + this.product_elem + ':last').offset(); if (this.offset_pages.length === 0) { return; } for (var i = 0; i < this.offset_pages.length; i++) { if ($(this.product_wrapper + ' ' + '.tv-last-' + i).length > 0) { this.offset_pages[i].offset = $(this.product_wrapper + ' ' + '.tv-last-' + i).offset().top + $(this.product_wrapper + ' ' + this.product_elem + ':last').height() - $(window).height(); } } tv_log('reassign_offset done'); }, redefineOffset: function() { var self = this; if (this.offset) { this.timerOffset = setInterval(function() { var lastOffsetTop = self.offset.top; tv_log('lastOffsetTop : ' + lastOffsetTop); tv_log('redefineOffset'); self.reassign_offset(); var new_lastOffsetTop = self.offset.top; tv_log('new_lastOffsetTop : ' + new_lastOffsetTop); if (new_lastOffsetTop == lastOffsetTop) { clearInterval(self.timerOffset); } }, 400); } customImgLazyLoad();}, stopActivity: function() { if (this.ajax_request) this.ajax_request.abort(); this.busy = false; this.products = false; this.offset_pages = []; this.current_page = 1; this.loader.fadeOut('fast'); this.button.fadeOut('fast'); this.back_top_button.fadeOut('fast'); tv_log('stopActivity'); }, bindPopstate: function() { var self = this; $(window).on('popstate', function(event) { tv_log('popstate'); var state = event.originalEvent.state; if (state !== null && state.tvcmsinfinitescroll && !self.isBlocklayeredActiv) { window.location = document.location.pathname; } }); }, newXHR: function() { var self = TvcmsInfiniteScroll; var realXHR = new oldXHR(); realXHR.addEventListener("load", function(event) { var req_xhr = event.target; var xhr_response_header = req_xhr.getResponseHeader("content-type") || ""; if (req_xhr.readyState == 4 && req_xhr.status == 200) { if (xhr_response_header && xhr_response_header == 'application/json') { var json = JSON.parse(req_xhr.responseText); if (json.rendered_facets !== undefined) { tv_log('bind xhr request. Stop activity'); setTimeout(function() { self.init(); }, 25); } } } }, false); realXHR.addEventListener("send", function(event) { tv_log('send'); }); return realXHR; }, init_blocklayered: function() { var self = this; tv_log('init_blocklayered'); if (!self.isBlocklayeredActiv) { self.stopActivity(); } self.busy = false; $(self.pagination_wrapper).hide(); var $first = $(self.product_wrapper + ' ' + self.product_elem + ':first'); var currentUrl = window.location.href; var currentBaseUrl = currentUrl.substring(0, currentUrl.indexOf('#/')); var currentLayeredUrl = currentUrl.substring(currentUrl.indexOf('#/'), currentUrl.length); if (currentLayeredUrl == '#/' || !currentLayeredUrl) { if (self.pushStateAvailable) { window.history.pushState({ tvcmsinfinitescroll: 1 }, '', currentUrl.replace('#/', '')); } self.init(); return false; } if (self.current_page && self.layeredProducts && currentUrl.indexOf('/page-') != -1 && (self.current_page + 1) == self.getUrlParamPage()) { self.busy = true; $(self.product_wrapper).prepend(self.layeredProducts); $('html,body').stop().animate({ scrollTop: $first.offset().top }, 400); setTimeout(function() { self.busy = false; }, 450); } self.layeredProducts = $(self.product_wrapper + ' ' + self.product_elem); if (currentUrl.indexOf('/page-') != -1 || currentUrl.indexOf('?page=') != -1) self.current_page = self.current_page + 1; else self.current_page = 1; self.checkScrollMethod(); self.offset = $(self.product_wrapper + ' ' + self.product_elem + ':last').offset(); self.redefineOffset(); self.ajaxUrl = $(self.pagination_wrapper + ' ' + self.next_button + ':not(.disabled)').attr('href'); tv_log('ajaxUrl from the pagination next button : ' + self.ajaxUrl); if (self.ajaxUrl) { var next_url = ''; if (currentLayeredUrl.indexOf('/page-') == -1) next_url = currentLayeredUrl + '/page-2'; else { var urlSplit = currentLayeredUrl.split('/'); p = 1; for (var i = 0; i < urlSplit.length; i++) { if (urlSplit[i].indexOf('page-') != -1) { p = parseInt(urlSplit[i].substring(5, urlSplit[i].length)); p++; urlSplit[i] = 'page-' + p; } if (urlSplit[i] != '#') next_url += '/'; next_url += urlSplit[i]; } } self.ajaxUrl = currentBaseUrl + next_url; tv_log('ajaxUrl after custom edit : ' + self.ajaxUrl); if (self.method == 'button' && self.shouldDisplayButton()) { self.button.fadeIn(); } } else { self.addEndButton(); } } }; if (typeof tv_params != 'undefined' && $(tv_params.product_wrapper).length !== 0 && $(tv_params.pagination_wrapper).length !== 0) { TvcmsInfiniteScroll = $.extend(TvcmsInfiniteScroll, tv_params); TvcmsInfiniteScroll.initialize(); } function tv_log(text) { if (TvcmsInfiniteScroll.debug) { console.log(text); } } });