docs: function setFormDefaults($thisParagraph, i) {
        var thisID = 'mship-' + i;
        $thisParagraph.attr('id', thisID);
        var $newParagraphWithId = $('#'+ thisID);
  
        /** Check giving type before taking decision to hide select tag or not */
        var givingType = $newParagraphWithId.find("form").data("giving-type");
        if(givingType.toLowerCase() === "MONTHLY".toLowerCase()) {
          $newParagraphWithId.find('.form__fieldset').addClass("hide-select-tag");
        }
  
        var $thisForm = $newParagraphWithId.find('form');
        var cartID = $thisForm.data('cart-id');
        var clientID = $thisForm.data('client-id');
        var theseButtons = [];
  
        /* Set Box shadow colour */
        var colour = $newParagraphWithId.css("backgroundColor");
        if (colour) {
          $('.img-shadow', $newParagraphWithId).append("<style> " + "#" + thisID + " .img-shadow" + ":before {color:" + colour + "}" + "</style>");
        }
  
        var rowIDValue = getQueryString("rowID", url_string);
        var amountValue =  getQueryString("amount", url_string);
        var amount = parseFloat($newParagraphWithId.find(".select-amount-btn.active").text().replace(/\D/g, ""));
  
        $newParagraphWithId.attr("data-current-amount", amount);
        var position = $newParagraphWithId.find(".select-amount-btn.active").data("position");
  
        /* Add money buy description && currency */
        var descriptionCopies = $newParagraphWithId.find(".donation-copy").children();
  
        /* Populate moneybuyrows object with money buy value of each row */
        moneyBuyRows[thisID] =[];
        $newParagraphWithId.find('.select-amount-btn').each(function(i){
          var currentMoneyBuyValue = getMoneyBuyValue($(this));
          moneyBuyRows[thisID].push(currentMoneyBuyValue);
  
          // Cache all our button info for this paragraph in array, to pass to the main paragraph array
          var pos = $(this).data("position");
          theseButtons[pos] = {
            position: pos,
            amount: $(this).data("amount")
          }
        });
  
        /* Handle case where users are taken back to cr.com from donation */
        if( url_string.indexOf('&amount=') > -1 && amountValue.length > 0 && rowIDValue.length && url_string.indexOf('&rowID=') > -1  ) {
            $("#" + rowIDValue).find('.select-amount-btn').each(function (i) {
              var currentMoneyBuyValue = getMoneyBuyValue($(this));
              var $thisForm = $(this).parents('form');
  
              if (currentMoneyBuyValue === amountValue) {
                $("#" + rowIDValue).find('.select-amount-btn').removeClass('active');
                $(this).addClass('active');
                 moneyBuyDescriptionHandler(descriptionCopies, i + 1 );
              } else if (moneyBuyRows[rowIDValue].indexOf(amountValue) === -1 ) {
                $thisForm.find("input[name='membership_amount']").val(amountValue);
                $("#" + rowIDValue).find('.select-amount-btn').removeClass('active');
                $thisForm.find('.form__field--wrapper').addClass("active-input");
                $thisForm.find('.other-description').addClass('show-money-buy-copy');
              }
              document.getElementById(rowIDValue).scrollIntoView({ behavior: 'smooth'});
            })
        } else {
          moneyBuyDescriptionHandler(descriptionCopies, position);
        }
  
        // Cache all of these for ease-of-use later & prevent endless DOM traversal
        allRows[thisID] = {
          giving_type: givingType == 'MONTHLY' ? 'membership-payment': 'single-payment',
          cart_id: cartID,
          client_id: clientID,
          buttons: theseButtons
        };
  
        /* Pass the cached row to set up the dataLayer */
        dataLayer_init($newParagraphWithId, thisID);
  
        // If we've finished setting up all our rows, check for previous cookies
        if (i === totalRows - 1) {
          checkCookie();
        }
      }