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

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
            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
                        • 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
                                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
                                            • 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
                                                  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
                                                          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
                                                                  • 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
                                                                          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
                                                                                        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
                                                                                                    • 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
                                                                                                            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
                                                                                                                        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
                                                                                                                                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
                                                                                                                                        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
                                                                                                                                                  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
                                                                                                                                                              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
                                                                                                                                                                        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
                                                                                                                                                                                      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
                                                                                                                                                                                                    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
                                                                                                                                                                                                        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
                                                                                                                                                                                                            Home
                                                                                                                                                                                                            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
                                                                                                                                                                                                                Home
                                                                                                                                                                                                                4 equal payments with  Klarna ...
                                                                                                                                                                                                                $119.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...
                                                                                                                                                                                                                    $345.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...
                                                                                                                                                                                                                        $345.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); } } });