/** Shopify CDN: Minification failed

Line 16:8 Expected identifier but found "log("
Line 22:0 Comments in CSS use "/* ... */" instead of "//"
Line 104:8 Comments in CSS use "/* ... */" instead of "//"
Line 110:8 Comments in CSS use "/* ... */" instead of "//"
Line 153:4 Comments in CSS use "/* ... */" instead of "//"
Line 159:2 Comments in CSS use "/* ... */" instead of "//"
Line 347:8 Expected ":"
Line 426:14 Comments in CSS use "/* ... */" instead of "//"
Line 447:86 Comments in CSS use "/* ... */" instead of "//"
Line 450:8 Comments in CSS use "/* ... */" instead of "//"
... and 69 more hidden warnings

**/
console.log("Here in grid");
var strVid = "";
var iTextCount = 0;
var strNote ="";
const storefronttoken = '50ddf974b05d6d34e1bcbd2f8ba2f14c';

//globalNote

$(document).on('click', '.gridAddToCart',async function (event)
{
    event.preventDefault();
    strVid = event.target.getAttribute("vid");
    console.log(event.target.parentElement.children);

    var strImgURL = event.target.parentElement.parentElement.parentElement.children[0].children[0].src;
    var strTitle = event.target.parentElement.parentElement.parentElement.children[0].children[1].children[0];
    var strSku = event.target.parentElement.parentElement.parentElement.children[0].children[1].children[1];

    var addedProductName = document.getElementById("addedProductName");
    var addedProductSku = document.getElementById("addedProductSku");
    var addedImg = document.getElementById("addedImg");
    var addedProductQty = document.getElementById("addedProductQty");

    console.log(globalToken);
    if (globalToken == "") 
    {
      await getCart();
    }
    iTextCount = parseInt(event.target.parentElement.children[1].value);
    var temp = strVid.split("gid://shopify/ProductVariant/"); 
    strVid = temp[1];

    addedProductName.innerText = strTitle.innerText
    addedProductSku.innerText = strSku.innerText
    addedProductQty.innerText = "X " +iTextCount
    addedImg.src = strImgURL

    if(milled.checked == true)
    {
        strNote = "Mill";
    }
    else
    {
        try
        {
          var activeItem = document.getElementsByClassName("activeFilterItem");
          strNote = activeItem[0].attributes.value.nodeValue;

          if(marine.checked == true)
          {
            strNote = strNote + " Marine" 
          }

        }
        catch(e)
        {
          var preGrid = document.getElementById("activeColourDisplay");
          strNote = preGrid.className;
          if(strNote == "Mill" && milled.checked == false)
          {
              strNote ="";
          }
          if(marine.checked == true)
          {
            strNote = strNote + " Marine" 
          }
          else
          {
            strNote = strNote.replace(" Marine", "");
            strNote = strNote.replace(" MARINE", "");
          }
          if(strNote.includes("MARINE Marine"))
          {
            strNote = strNote.replace("MARINE Marine", "MARINE");

          }
          if(strNote.includes(" Marine Marine"))
          {
            strNote = strNote.replace("Marine Marine", "MARINE");
          }
        }
       
    }

    if(strNote.length > 1)
    {
      if(iTextCount > 0)
      {
        //GHEHG awaithere
        event.target.classList.add("spinnerLoad");
        event.target.classList.remove("gridAddToCart");
        await graphCart(strVid, iTextCount);
        event.target.classList.remove("spinnerLoad");
        event.target.classList.add("gridAddToCart");
        //removerherge4
      }
      else
      {
        var modal = document.getElementById("myModal");

        var alertContent = document.getElementById("alertContent");
        alertContent.innerHTML = "<h3>Alert</h3><p>Please Add Quantity</p>"
        window.onclick = function(event) 
        {
          if (event.target == modal) {
            modal.style.display = "none";
          }
        }
        var span = document.getElementsByClassName("close")[0];
        modal.style.display = "block";

        span.onclick = function() 
        {
          modal.style.display = "none";
        }
      }
    }
    else
    {
        var modal = document.getElementById("myModal");
        var alertContent = document.getElementById("alertContent");
        alertContent.innerHTML = "<h3>Alert</h3><p>Please Select A finish</p>"
        window.onclick = function(event) 
        {
          if (event.target == modal) {
            modal.style.display = "none";
          }
        }
        var span = document.getElementsByClassName("close")[0];
        modal.style.display = "block";

        span.onclick = function() 
        {
          modal.style.display = "none";
        }
    }

    //await getCartGrid();
})

$(document).on('click', '#addAllGridOLD', async function (e)
{
  e.preventDefault();
  //Loop through
  console.log("Add All");

  var existingElements = document.querySelectorAll(".fixingCount");
  const productsWithQty = Array.from(existingElements).filter((inputCount) => inputCount.value > 0);
  if (globalToken == "") 
  {
    await getCart();
  }
  if(milled.checked == true)
  {
      strNote = "Mill";
  }
  else
  {
      try
      {
        var activeItem = document.getElementsByClassName("activeFilterItem");
        strNote = activeItem[0].attributes.value.nodeValue;

        if(marine.checked == true)
        {
          strNote = strNote + " Marine" 
        }

      }
      catch(e)
      {
        var preGrid = document.getElementById("activeColourDisplay");
        strNote = preGrid.className;
        if(strNote == "Mill" && milled.checked == false)
        {
            strNote ="";
        }
        if(marine.checked == true)
        {
          strNote = strNote + " Marine" 
        }
        else
        {
          strNote = strNote.replace(" Marine", "");
          strNote = strNote.replace(" MARINE", "");
        }
        if(strNote.includes("MARINE Marine"))
        {
          strNote = strNote.replace("MARINE Marine", "MARINE");

        }
        if(strNote.includes(" Marine Marine"))
        {
          strNote = strNote.replace("Marine Marine", "MARINE");
        }
      }
     
  }
  var items = [];

  if(strNote.length > 1)
  {
    var cartsize = document.getElementsByClassName("sidebar-cart-item")
    if(cartsize.length == 0 )
      {
          try 
          {
              $.ajax(
              {
                  url: "https://rocking-rhino-dev.myshopify.com/api/2025-01/graphql.json",
                  contentType: "application/json",
                  type:'POST',
                  async : false,
                  headers:{
                      "X-Shopify-Storefront-Access-Token": storefronttoken,
                      "Content-Type": "application/json"
                  },
                  data: JSON.stringify({
                  query:`mutation
                  {
                      cartNoteUpdate(cartId: "gid://shopify/Cart/${globalToken}", 
                      note: "${strNote}") 
                      {
                          cart 
                          {
                              note
                          }
                          userErrors 
                          {
                              field
                              message
                          }
                          warnings 
                          {
                              code
                          }
                      }
                  }`
                  }),
              }).done(function (response2) 
              {  
                  console.log(response2.data.cartNoteUpdate.cart.note);
                  var cartNote = response2.data.cartNoteUpdate.cart.note;
                  addItemGrid();
                  
              });
              
          }
          catch (error) {
              
          }
      }

      async function processArray(array) 
      {
        for (const inputElement of array) 
        {
          var strVid = inputElement.attributes.vid.value;
          strVid = strVid.replace('gid://shopify/ProductVariant/', '');

          await graphCart(strVid, inputElement.value);
          inputElement.value = 0;
        }
      }
         

      if(strNote == globalNote || globalNote == "" || globalNote == null)
      {
        if( globalNote == "" || globalNote == null)
        {
          var cartColourIcon = document.getElementById("activeColourDisplayCart");
          cartColourIcon.className = strNote.toUpperCase();
        }
        globalNote = strNote.toUpperCase();
        e.target.classList.add("spinnerLoad");
        await processArray(productsWithQty);
        e.target.classList.remove("spinnerLoad");
        renderCart();
      }
      else
      {
        var tempStr = globalNote;
        tempStr = tempStr.replaceAll("_"," ");
        
        var modal = document.getElementById("myModal");
        var alertContent = document.getElementById("alertContent");
        alertContent.innerHTML = "<h3>Alert</h3><p>Select " + tempStr + " as Finish or clear cart</p>"
        window.onclick = function(event) 
        {
          if (event.target == modal) {
            modal.style.display = "none";
          }
        }
        var span = document.getElementsByClassName("close")[0];
        modal.style.display = "block";

        span.onclick = function() 
        {
          modal.style.display = "none";
        }
        reject();
      }

  }
  else
  {
    var modal = document.getElementById("myModal");
    var alertContent = document.getElementById("alertContent");
    alertContent.innerHTML = "<h3>Alert</h3><p>Please Select A finish</p>"
    window.onclick = function(event) 
    {
      if (event.target == modal) {
        modal.style.display = "none";
      }
    }
    var span = document.getElementsByClassName("close")[0];
    modal.style.display = "block";

    span.onclick = function() 
    {
      modal.style.display = "none";
    }
    
  }


});


async function graphCart(variantID, iAddToCart)
{
  return new Promise(function(resolve, reject) 
  {
    var items = 
    {
        "id": variantID,
        "quantity": iAddToCart
    }

    function addItem() 
    {
      $.ajax({
         type: 'POST', 
         url: '/cart/add.js',
         dataType: 'json', 
         data:  items, 
         success: addToCartOk,
         error: function(XMLHttpRequest, textStatus) {
          console.log(XMLHttpRequest, textStatus);
        }
      });
    }
    function addToCartOk(product) 
    {
      getCart2();
      function getCart2() 
      {
        $.ajax({
          type: 'GET', 
          url: '/cart.js',
          success: getCartList2,
          error: function(XMLHttpRequest, textStatus) {
            console.log(XMLHttpRequest, textStatus);
          }
        });
      }
    
      function getCartList2(CartList)
      {
        iCartTotal = 0;
        var objTemp = JSON.parse(CartList);
        globalToken = objTemp.token;

        try 
        {
            $.ajax(
            {
                url: "https://rocking-rhino-dev.myshopify.com/api/2025-01/graphql.json",
                contentType: "application/json",
                type:'POST',
                async : false,
                headers:{
                    "X-Shopify-Storefront-Access-Token": storefronttoken,
                    "Content-Type": "application/json"
                },
                data: JSON.stringify({
                query:`mutation
                {
                  cartNoteUpdate(cartId: "gid://shopify/Cart/${globalToken}", 
                  note: "${strNote}") 
                  {
                    cart 
                    {
                      note
                    }
                    userErrors 
                    {
                      field
                      message
                    }
                    warnings 
                    {
                      code
                    }
                  }
                }`
                }),
            }).done(function (response2) 
            {  
              console.log(response2.data.cartNoteUpdate.cart.note);
              //addItemGrid();
                
            });
            
        }
        catch (error) {
          reject(error)
        }


        var obj = JSON.parse(CartList);
        var incoming = obj.items;

        var arrayLength = incoming.length;
        for (var i = 0; i < arrayLength; i++) 
        {
            iCartTotal = iCartTotal + parseFloat(incoming[i].line_price);
        }

        var iCartTotalTemp  = iCartTotal;

        var cartCountElement = document.getElementsByClassName("count-cart-sidebar"); // by class JS version
        cartCountElement[0].innerText= "("+ incoming.item_count+")";
      
        //Here I Rerender cart
    
        var emptycart =  document.getElementById("emptycartfiller");
        if (emptycart) 
        {
          document.getElementById("emptycartfiller").remove();
        }
                
        var cartitemlink = document.createElement('div');
        cartitemlink.classList.add("sidebar-cart-item");
        
        const price =  (product.original_price/100);
    
        function formatMoney(number) 
        {
            number = number.toFixed(2);
            const valueArray = number.split(".");
            var strNumber = '<span style="font-weight: bold; top: -0.6em !important; font-size: 1.5rem; position: relative; margin-right: 0px;color: #000;" class="poundSignSide">£ </span><span style="font-weight: bold; font-size: 3rem; position: relative; margin-right: 1px;color: #000;" class="poundActualSide">';
            strNumber = strNumber.concat(valueArray[0]);
            strNumber = strNumber.concat('</span> <span style="font-weight: bold; top: -0.6em !important; font-size: 1.5rem;margin-left: -2px; position: relative; margin-right: 0px;color: #000; class="poundActualSide">');
            strNumber = strNumber.concat(valueArray[1]);
            strNumber = strNumber.concat("</span>");
            return strNumber;
        }
        cartitemlink.id = product.id;
        
        //Look for item with the id remove it and repopulate 
        try 
        {
          const elem = document.getElementById(product.id).remove();
        } 
        catch (error) 
        {}

        cartitemlink.innerHTML ='<a class="cart-item-link"  href="'+ product.image 
        +'"><img height="200" width="200" class="sidebar-cart-img" src="' + product.image 
        +'" /></a><a class="cart-item-link"  href="'+ product.url 
        +'"><div class="sidebar-title-price-container"><span class="name"><p class="name-text">' +product.product_title 
        +'</p></span><div style="margin-top: -10px; margin-bottom: 10px;">'+ formatMoney(price) 
        +'<span style="font-weight: bold; font-size: 3rem; position: relative; margin-right: 1px;color: #000;" class="unitPrice"> x '+ product.quantity
        +'</span></div></div></a><span class="close-btn" js-preworn-close-modal=""><svg qty="'+product.quantity+'" vid="'+ product.id +
        '"class="remove-item-sidebar" width="25" viewBox="0 0 10 10"><path qty="'+product.quantity+'" vid="'+ product.id +'" d="M9.677 8.118a1.102 1.102 0 11-1.559 1.56L5 6.558 1.882 9.677a1.102 1.102 0 11-1.56-1.559L3.442 5 .323 1.882A1.102 1.102 0 111.882.322L5 3.442 8.118.323a1.102 1.102 0 111.56 1.559L6.558 5l3.118 3.118z" fill="red" fill-rule="nonzero"></path></svg></span></div>';
    
        var iCartTotalTemp  = iCartTotal/100;
        // var cartSideBarPrice = document.getElementById('cartSideBarPrice');
        var priceHTML = formatMoney(iCartTotalTemp);
        //cartSideBarPrice.innerHTML = priceHTML;
    
        var cartdiv = document.getElementsByClassName('guttercrest-flex-container')[0];
        cartdiv.appendChild(cartitemlink);
        
        console.log(document.getElementsByClassName('cart-count-bubble').length);
        if(document.getElementsByClassName('cart-count-bubble').length == 0)
        {
            var cartcountdiv  = document.createElement('div');
            cartcountdiv.classList.add("cart-count-bubble");
            cartcountdiv.innerHTML ='<span aria-hidden="true"></span><span class="visually-hidden"></span>';
            
            document.getElementById("cart-icon-bubble").appendChild(cartcountdiv);
        }

        //UpdateCartnot

        jQuery.getJSON('/cart.js', function (cart, textStatus) 
        {
            //the cart info is in the callback. the item_count is available as part of the callback
            //below I set my cartcount div with the current cart item_count
            var carttext=cart.item_count;
            jQuery(".cart-count-bubble").text(carttext);
            jQuery(".count-cart-sidebar").text(carttext);
        });  

        resolve()
      }
    }
    if(globalToken == "" || globalToken == null)
    {

      addItem();
    }
    else
    {
      if( globalNote == "" || globalNote == null)
        {
          var cartColourIcon = document.getElementById("activeColourDisplayCart");
          cartColourIcon.className = strNote;
        }
      try 
      {
        $.ajax({
          url: "https://rocking-rhino-dev.myshopify.com/api/2025-01/graphql.json",
          contentType: "application/json",
          type:'POST',
          async : false,
          headers:{
              "X-Shopify-Storefront-Access-Token": storefronttoken,
              "Content-Type": "application/json"
          },
          data: JSON.stringify({
          query:`query
          {
              cart(id: "gid://shopify/Cart/${globalToken}") 
              {
                  note
                  totalQuantity
              }
          }`
          }),
          }).done(async function (response) 
          {  
            try 
            {
              console.log(response.data.cart.note);
              var cartNote = response.data.cart.note;
              var cartSize = response.data.cart.totalQuantity;
              postCart();
            } 
            catch (error) 
            {
              console.log(error);
              var cartNote = "";
              var cartSize = 0;
            }

            function addItemGrid() 
            {
              
                var addedModal = document.getElementById("addedModal");
                addedModal.style.display = "block";
                var s = addedModal.style;
                s.opacity = 1;
                (function fade(){(s.opacity-=.1)<0?s.display="none":setTimeout(fade,240)})();
                $.ajax({
                type: 'POST', 
                url: '/cart/add.js',
                dataType: 'json', 
                data:  items, 
                success: addToCartGridOk,
                error: function(XMLHttpRequest, textStatus) {
                    console.log(XMLHttpRequest, textStatus);
                }
                });
            }

            function addToCartGridOk(product) 
            {
              try 
              {
                $.ajax({
                  url: "https://rocking-rhino-dev.myshopify.com/api/2025-01/graphql.json",
                  contentType: "application/json",
                  type:'POST',
                  async : false,
                  headers:{
                      "X-Shopify-Storefront-Access-Token": token,
                      "Content-Type": "application/json"
                  },
                  data: JSON.stringify({
                  query:`query
                  {
                      cart(id: "gid://shopify/Cart/${globalToken}") 
                      {
                      cost
                      {
                        totalAmount
                        {
                        amount 
                        }
                      }
                      totalQuantity
                      lines(first:250) {
                        edges {
                          node {
                            id
                            quantity
                            merchandise {
                              ... on ProductVariant {
                                id
                                  price
                                  {
                                      amount
                                  }
                                product
                                {
                                  tags
                                }
                              }
                            }
                          }
                        }
                      }
                    }
                  }`
                  }),
                  }).done(async function (response) 
                  {  
                      getCartList2(response);
                  })
              }
              catch(e)
              {
                console.log(e);
                console.log("In error need to handle");
              }


            
              function getCartList2(CartList)
              {
                iCartTotal = 0;
                try {
                  var incoming = CartList.data.cart.lines.edges;
                  var totalAmount = CartList.data.cart.cost.totalAmount.amount;
                } catch (error) {
                  var incoming = [];
                  var totalAmount = 0;
                  globalToken = "";
                }

  
                var arrayLength = incoming.length;
                for (var i = 0; i < arrayLength; i++) 
                {
                    iCartTotal = iCartTotal + parseFloat(incoming[i].node.merchandise.price.amount);
                }
        
                var iCartTotalTemp  = iCartTotal/100;
        
                var cartCountElement = document.getElementsByClassName("count-cart-sidebar"); // by class JS version
                cartCountElement[0].innerText= "("+ incoming.item_count+")";

                
                var vatAmount = (totalAmount*.2).toFixed(2);
                var PriceDiv = document.getElementById("sidecartprice");
                PriceDiv.innerHTML = `
                <div class="cartfooterprice"><span>VAT</span><span>£${vatAmount}</span></div>
                <div class="cartfooterprice"><span>Total (inc VAT)</span><span>£${totalAmount}</span></div>
                `;
                //Here I Rerender cart
            
                var emptycart =  document.getElementById("emptycartfiller");
                if (emptycart) 
                {
                    document.getElementById("emptycartfiller").remove();
                }
                        
                var cartitemlink = document.createElement('div');
                cartitemlink.classList.add("sidebar-cart-item");
                
                const price =  (product.original_price/100);
            
                function formatMoney(number) 
                {
                    number = number.toFixed(2);
                    const valueArray = number.split(".");
                    var strNumber = '<span style="font-weight: bold; top: -0.6em !important; font-size: 1.5rem; position: relative; margin-right: 0px;color: #000;" class="poundSignSide">£ </span><span style="font-weight: bold; font-size: 3rem; position: relative; margin-right: 1px;color: #000;" class="poundActualSide">';
                    strNumber = strNumber.concat(valueArray[0]);
                    strNumber = strNumber.concat('</span> <span style="font-weight: bold; top: -0.6em !important; font-size: 1.5rem;margin-left: -2px; position: relative; margin-right: 0px;color: #000; class="poundActualSide">');
                    strNumber = strNumber.concat(valueArray[1]);
                    strNumber = strNumber.concat("</span>");
                    return strNumber;
                }
                cartitemlink.id = product.id;
                
                //Look for item with the id remove it and repopulate 
                try 
                {
                    const elem = document.getElementById(product.id).remove();
                    
                } catch (error) 
                {
                    
                }


                cartitemlink.innerHTML ='<a class="cart-item-link"  href="'+ product.image 
                +'"><img height="200" width="200" class="sidebar-cart-img" src="' + product.image 
                +'" /></a><a class="cart-item-link"  href="'+ product.url 
                +'"><div class="sidebar-title-price-container"><span class="name"><p class="name-text">' +product.product_title 
                +'</p></span><div style="margin-top: -10px; margin-bottom: 10px;">'+ formatMoney(price) 
                +'<span style="font-weight: bold; font-size: 3rem; position: relative; margin-right: 1px;color: #000;" class="unitPrice"> x '+ product.quantity
                +'</span></div></div></a><span class="close-btn" js-preworn-close-modal=""><svg qty="'+product.quantity+'" vid="'+ product.id +
                '"class="remove-item-sidebar" width="25" viewBox="0 0 10 10"><path qty="'+product.quantity+'" vid="'+ product.id +'" d="M9.677 8.118a1.102 1.102 0 11-1.559 1.56L5 6.558 1.882 9.677a1.102 1.102 0 11-1.56-1.559L3.442 5 .323 1.882A1.102 1.102 0 111.882.322L5 3.442 8.118.323a1.102 1.102 0 111.56 1.559L6.558 5l3.118 3.118z" fill="red" fill-rule="nonzero"></path></svg></span></div>';
            
                var iCartTotalTemp  = iCartTotal/100;

                // var cartSideBarPrice = document.getElementById('cartSideBarPrice');
                    
                var priceHTML = formatMoney(iCartTotalTemp);
                //cartSideBarPrice.innerHTML = priceHTML;
            
                var cartdiv = document.getElementsByClassName('guttercrest-flex-container')[0];
                cartdiv.appendChild(cartitemlink);
                
                console.log(document.getElementsByClassName('icon-cart-empty').length);
                if(document.getElementsByClassName('cart-count-bubble').length == 0)
                {
                    var cartcountdiv  = document.createElement('div');
                    cartcountdiv.classList.add("cart-count-bubble");
                    cartcountdiv.innerHTML ='<span aria-hidden="true"></span><span class="visually-hidden"></span>';
                    
                    document.getElementById("cart-icon-bubble").appendChild(cartcountdiv);
                }

                jQuery.getJSON('/cart.js', function (cart, textStatus) 
                {
                    //the cart info is in the callback. the item_count is available as part of the callback
                    //below I set my cartcount div with the current cart item_count
                    var carttext="("+cart.item_count +")";
                    jQuery(".cart-count-bubble").text(carttext);
                    jQuery(".count-cart-sidebar").text(carttext);
                });
                cartFixingOnAdd();
                resolve();
              }
            }

            function postCart()
            {
              if(cartSize == 0 )
              {
                  try 
                  {
                      $.ajax(
                      {
                          url: "https://rocking-rhino-dev.myshopify.com/api/2025-01/graphql.json",
                          contentType: "application/json",
                          type:'POST',
                          async : false,
                          headers:{
                              "X-Shopify-Storefront-Access-Token": storefronttoken,
                              "Content-Type": "application/json"
                          },
                          data: JSON.stringify({
                          query:`mutation
                          {
                              cartNoteUpdate(cartId: "gid://shopify/Cart/${globalToken}", 
                              note: "${strNote}") 
                              {
                                  cart 
                                  {
                                      note
                                  }
                                  userErrors 
                                  {
                                      field
                                      message
                                  }
                                  warnings 
                                  {
                                      code
                                  }
                              }
                          }`
                          }),
                      }).done(function (response2) 
                      {  
                          console.log(response2.data.cartNoteUpdate.cart.note);
                          var cartNote = response2.data.cartNoteUpdate.cart.note;
                          addItemGrid();
                          
                      });
                      
                  }
                  catch (error) {
                    reject(error)
                  }
              }
              else
              {
                  if(strNote.toUpperCase() == cartNote.toUpperCase())
                  {
                      addItemGrid();
                  }
                  else
                  {
                      var tempStr = cartNote;
                      tempStr = tempStr.replaceAll("_"," ");

                      var modal = document.getElementById("myModal");
                      var alertContent = document.getElementById("alertContent");
                      alertContent.innerHTML = "<h3>Alert</h3><p>Select " + tempStr + " as Finish or clear cart</p>"
                      window.onclick = function(event) 
                      {
                        if (event.target == modal) {
                          modal.style.display = "none";
                        }
                      }
                      var span = document.getElementsByClassName("close")[0];
                      modal.style.display = "block";
              
                      span.onclick = function() 
                      {
                        modal.style.display = "none";
                      }
            
                      var strFindElement ='[evid="gid://shopify/ProductVariant/'+variantID+'"]';
                      var element = document.querySelector(strFindElement);
                      console.log(element);
                      element.classList.remove("spinnerLoad");
                      element.classList.add("gridAddToCart");
                      
                      resolve();

                  }
              }
            }


          });
      } 
      catch (error) 
      {
        console.log(error);
        reject(error)
      }

    }

  });

}   

function renderCart() 
{
  getCartRender();
  
  function getCartRender() 
  {
    $.ajax({
      type: 'GET', 
      url: '/cart.js',
      success: getCartListRender,
      error: function(XMLHttpRequest, textStatus) {
        console.log(XMLHttpRequest, textStatus);
      }
    });
  }

  function getCartListRender(CartList)
  {
    $(".sidebar-cart-item").remove();
    iCartTotal = 0;
    var obj = JSON.parse(CartList);
    var incoming = obj.items;

    var strCartType = "";
    try {
      strCartType = obj.attributes.cartType;
    } catch (error) {
      
    }


    var arrayLength = incoming.length;
    for (var i = 0; i < arrayLength; i++) 
    {
        iCartTotal = iCartTotal + parseFloat(incoming[i].line_price);
    }


    var cartCountElement = document.getElementsByClassName("count-cart-sidebar"); // by class JS version
    cartCountElement[0].innerText= "("+ incoming.item_count+")";
    var cartCountElement = document.getElementsByClassName("count-cart-sidebar"); // by class JS version
    cartCountElement[0].innerText= "("+ incoming.item_count+")";
    
    var emptycart =  document.getElementById("emptycartfiller");
    if (emptycart) 
    {
        document.getElementById("emptycartfiller").remove();
    }
    var cartdiv = document.getElementsByClassName('guttercrest-flex-container')[0];

    function formatMoney(number) 
    {
        number = number.toFixed(2);
        const valueArray = number.split(".");
        var strNumber = '<span style="font-weight: bold; top: -0.6em !important; font-size: 1.5rem; position: relative; margin-right: 0px;color: #000;" class="poundSignSide">£ </span><span style="font-weight: bold; font-size: 3rem; position: relative; margin-right: 1px;color: #000;" class="poundActualSide">';
        strNumber = strNumber.concat(valueArray[0]);
        strNumber = strNumber.concat('</span> <span style="font-weight: bold; top: -0.6em !important; font-size: 1.5rem;margin-left: -2px; position: relative; margin-right: 0px;color: #000; class="poundActualSide">');
        strNumber = strNumber.concat(valueArray[1]);
        strNumber = strNumber.concat("</span>");
        return strNumber;
    }

    for (var k = 0; k < arrayLength; k++) 
    {
        var cartitemlink = document.createElement('div');
        cartitemlink.classList.add("sidebar-cart-item");
        
        const price =  (incoming[k].original_price/100);
    
        cartitemlink.id = incoming[k].id;
    
        cartitemlink.innerHTML ='<a class="cart-item-link"  href="'+ incoming[k].image 
        +'"><img height="200" width="200" class="sidebar-cart-img" src="' + incoming[k].image 
        +'" /></a><a class="cart-item-link"  href="'+ incoming[k].url 
        +'"><div class="sidebar-title-price-container"><span class="name"><p class="name-text">' +incoming[k].product_title 
        +'</p></span><div style="margin-top: -10px; margin-bottom: 10px;">'+ formatMoney(price) 
        +'<span style="font-weight: bold; font-size: 3rem; position: relative; margin-right: 1px;color: #000;" class="unitPrice"> x '+ incoming[k].quantity
        +'</span></div></div></a><span class="close-btn" js-preworn-close-modal=""><svg qty="'+incoming[k].quantity+'" vid="'+ incoming[k].id +
        '"class="remove-item-sidebar" width="25" viewBox="0 0 10 10"><path qty="'+incoming[k].quantity+'" vid="'+ incoming[k].id +'" d="M9.677 8.118a1.102 1.102 0 11-1.559 1.56L5 6.558 1.882 9.677a1.102 1.102 0 11-1.56-1.559L3.442 5 .323 1.882A1.102 1.102 0 111.882.322L5 3.442 8.118.323a1.102 1.102 0 111.56 1.559L6.558 5l3.118 3.118z" fill="red" fill-rule="nonzero"></path></svg></span></div>';
    
        cartdiv.appendChild(cartitemlink);


    }
    if(document.getElementsByClassName('cart-count-bubble').length == 0)
      {
          var cartcountdiv  = document.createElement('div');
          cartcountdiv.classList.add("cart-count-bubble");
          cartcountdiv.innerHTML ='<span aria-hidden="true"></span><span class="visually-hidden"></span>';
          
          document.getElementById("cart-icon-bubble").appendChild(cartcountdiv);
      }
      jQuery.getJSON('/cart.js', function (cart, textStatus) 
      {
          //the cart info is in the callback. the item_count is available as part of the callback
          //below I set my cartcount div with the current cart item_count
          var carttext="("+cart.item_count +")";
          jQuery(".cart-count-bubble").text(carttext);
          jQuery(".count-cart-sidebar").text(carttext);
      });  
  }
}

async function cartFixingOnAdd()
{

  var iLoad = 0;
  try 
  {
    $.ajax({
      url: "https://rocking-rhino-dev.myshopify.com/api/2025-01/graphql.json",
      contentType: "application/json",
      type:'POST',
      async : false,
      headers:{
          "X-Shopify-Storefront-Access-Token": token,
          "Content-Type": "application/json"
      },
      data: JSON.stringify({
      query:`query
      {
          cart(id: "gid://shopify/Cart/${globalToken}") 
          {
           lines(first:250) {
            edges {
              node {
                id
                quantity
                merchandise {
                  ... on ProductVariant {
                    id
                    product
                    {
                      tags
                    }
                  }
                }
              }
            }
          }
        }
      }`
      }),
      }).done(async function (response) 
      {  
        cartFixings = response.data.cart.lines.edges;
        var Score = 
        {
          bgfix:0,
          rivet:0,
          butyl:0,
          silicone:0,
          fb:0,
          pipeclip:0
        };

        var div = document.getElementById('fixingsParentContainer');
        div.style.display = "flex";
        //cartFixings =[];
    
        console.log("Here is null fixing error this needs a value");
        
        for (let index = 0; index < cartFixings.length; index++) 
        {
          var cartItemTags = cartFixings[index].node.merchandise.product.tags;
          var iQty = cartFixings[index].node.quantity;
    
          console.log(cartItemTags);
          for (let k = 0; k < cartItemTags.length; k++) 
          {
            var cartTag = cartItemTags[k];
            var tagValueArray = cartTag.split("_");
    
            if(tagValueArray[0] == "bgfix")
            {
              //tagValueArray[1] is the value
              var iValue =  parseInt(tagValueArray[1]);
              iValue = iValue*iQty;
              Score.bgfix = Score.bgfix + iValue;
            }
            if(tagValueArray[0] == "rivet")
            {
              var iValue =  parseInt(tagValueArray[1]);
              iValue = iValue*iQty;
              Score.rivet = Score.rivet + iValue;
            }
            if(tagValueArray[0] == "butyl")
            {
              var iValue =  parseInt(tagValueArray[1]);
              iValue = iValue*iQty;
              Score.butyl = Score.butyl + iValue;
            }
            if(tagValueArray[0] == "silicone")
            {
              var iValue =  parseInt(tagValueArray[1]);
              iValue = iValue*iQty;
              Score.silicone = Score.silicone + iValue;
            }
            if(tagValueArray[0] == "fb")
            {
              var iValue =  parseInt(tagValueArray[1]);
              iValue = iValue*iQty;
              Score.fb = Score.fb + iValue;
            }
            if(tagValueArray[0] == "pipeclip")
            {
              var iValue =  parseInt(tagValueArray[1]);
              iValue = iValue*iQty;
              Score.pipeclip = Score.pipeclip + iValue;
            }
          }
        }     

        try 
        {
          $.ajax({
            url: "https://rocking-rhino-dev.myshopify.com/api/2025-01/graphql.json",
            contentType: "application/json",
            type:'POST',
            async : false,
            headers:{
                "X-Shopify-Storefront-Access-Token": token,
                "Content-Type": "application/json"
            },
            data: JSON.stringify({
            query:`query
            {
              product(id: "gid://shopify/Product/9504787366230") 
              {
                tags
                title
                variants(first: 1)
                {
                  nodes
                  {
                    price{
                      amount
                    }
                  }
                }
                media(first: 1)
                {
                edges {
                    node {
                      ... on MediaImage {
                        image {
                          url
                        }
                      }
                    }}
                  }
              }
            }`
            }),
            }).done(function (response) 
            {
              const tags = response.data.product.tags;
              const substr = 'fb_';
              const subArr = tags.filter(str => str.includes(substr));
      
              var tagValueArray = subArr[0].split("_");
      
              var iValuefb = tagValueArray[1];
              iValuefb =  parseInt(tagValueArray[1]);
      
              console.log(iValuefb);
              console.log(Score.fb);
              
              var n = 0;
      
              var iCounterfb = Score.fb;
              if(iCounterfb <= 0)
              {
      
              }
              else
              {
                do 
                {
                  iCounterfb = iCounterfb + iValuefb;
                  if(iCounterfb <= 0)
                  {
                    n++;
                    break;
                  }
                  else
                  {
                    n++
                  }
                } 
                while (true)
              }
      
              // n is the count or these fixings
              iLoad = iLoad + n;

            });
        } 
        catch (error) 
        {
          console.log(error);
        }
    
        try 
        {
          $.ajax({
            url: "https://rocking-rhino-dev.myshopify.com/api/2025-01/graphql.json",
            contentType: "application/json",
            type:'POST',
            async : false,
            headers:{
                "X-Shopify-Storefront-Access-Token": token,
                "Content-Type": "application/json"
            },
            data: JSON.stringify({
            query:`query
            {
              product(id: "gid://shopify/Product/9504235356502") 
              {
                tags
                title
                variants(first: 1)
                {
                  nodes
                  {
                    price{
                      amount
                    }
                  }
                }
                media(first: 1)
                {
                edges {
                    node {
                      ... on MediaImage {
                        image {
                          url
                        }
                      }
                    }}
                  }
              }
            }`
          }),
          }).done(function (response) 
          {
          
            const tags = response.data.product.tags;
            const substr = 'rivet_';
            const subArr = tags.filter(str => str.includes(substr));
    
            var tagValueArray = subArr[0].split("_");
    
            var iValue = tagValueArray[1];
            iValue =  parseInt(tagValueArray[1]);
    
            let i = 0;
    
            var iCounter = Score.rivet;
    
            if(iCounter <= 0)
            {
    
            }
            else
            {
              do 
              {
                iCounter = iCounter + iValue;
                if(iCounter <= 0)
                {
                  i++;
                  break;
                }
                else
                {
                  i++
                }
              } 
              while (true)
            }
            iLoad = iLoad + i;
            // i is total to be added
  
          });
        } 
        catch (error) 
        {
          
        }

        var fixingCount = document.getElementById("fixingCount");
        if(iLoad == 0)
        {
          fixingCount.style.display = 'none';
        }
        else
        {
          fixingCount.style.display = 'flex';
          fixingCount.innerText = iLoad; 
        }
      });
  } 
  catch (error) 
  {
    console.log(error);
  }
}
