{"version":3,"file":"utils.js","sources":["utils.js"],"sourcesContent":["if (window.location.hash) {\n // console.log(window.location.hash);\n\n var targetElement = document.querySelector(window.location.hash);\n if (targetElement) {\n var topNav = document.querySelector(\"#header\");\n\n var topNavHeight = topNav ? topNav.offsetHeight : 0;\n\n // console.log('topNavHeight', topNavHeight);\n // console.log('targetElement', targetElement.getBoundingClientRect().top + window.pageYOffset);\n var scrollToPosition =\n targetElement.getBoundingClientRect().top +\n window.pageYOffset -\n topNavHeight;\n window.scroll({\n top: scrollToPosition,\n behavior: \"smooth\",\n });\n }\n}\n\nconst validationPatterns = {\n phoneNumber: /^((\\(\\d{3}\\)?)|(\\d{3}))([\\s-./]?)(\\d{3})([\\s-./]?)(\\d{4})$/,\n pinNumber: /^([1-9](?=.*[0-9]).{3,5})$/,\n passcodeNumber:\n /^(?!.*(\\d)\\1{2})(?!.*(012|123|234|345|456|567|678|789|890|901|210|321|432|543|654|765|876|987|098|109))([1-9](?=.*[0-9]).{3,5})$/,\n ssNumber: /^([0-9]{9})$/,\n strongPassword:\n /^(?!.*(123|234|345))(?=.*[A-Z])(?=.*[a-z])(?=.*[0-9]).{7,20}$/,\n zipCode: /^[0-9]{5}(?:-[0-9]{4})?$/,\n emailUsername: /^[a-zA-Z0-9.-]+$/,\n emailAddress:\n /(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])/,\n};\n\n(function ($) {\n // Open My Account modal\n $('a[href*=\"#ns-account-login\"]').click(function (e) {\n if ($(\"#loginModal\").length) {\n e.preventDefault();\n $(\"#loginModal\").modal(\"show\");\n }\n });\n\n // Validate form field\n $(\n \"input[data-validate-pattern]:required, select[data-validate-pattern]:required, textarea[data-validate-pattern]:required\"\n ).each(function () {\n $(this).on(\"change keyup blur focus\", function () {\n var vPattern = $(this).attr(\"data-validate-pattern\");\n if (vPattern in validationPatterns) {\n if (validationPatterns[vPattern].test($(this).val())) {\n // Is valid input\n $(this).removeClass(\"is-invalid\");\n $(this).addClass(\"is-valid\");\n } else {\n // Is invalid input\n $(this).addClass(\"is-invalid\");\n $(this).removeClass(\"is-valid\");\n }\n }\n });\n });\n\n // Add field matching validation\n $(\n \"input[data-validate-match]:required, select[data-validate-match]:required, textarea[data-validate-match]:required\"\n ).each(function () {\n $(this).on(\"change keyup blur focus\", function () {\n var matchingElement = $(this).attr(\"data-validate-match\");\n // console.log(\"match eval:\", matchingElement, $(this).val(), $(matchingElement).val());\n if ($(this).val() === $(matchingElement).val()) {\n // Is valid input\n $(this).removeClass(\"is-invalid\");\n $(this).addClass(\"is-valid\");\n } else {\n // Is invalid input\n $(this).addClass(\"is-invalid\");\n $(this).removeClass(\"is-valid\");\n }\n });\n });\n\n // Remove the doing_wp_cron thing\n setTimeout(function () {\n var hash = $(location).attr(\"hash\");\n // console.log(\"hash\", hash);\n history.replaceState &&\n history.replaceState(\n null,\n \"\",\n location.pathname +\n location.search\n .replace(/[\\?&]doing_wp_cron=[^&]+/, \"\")\n .replace(/^&/, \"?\") +\n hash\n );\n }, 500);\n\n $(\".button.help\").click(function (e) {\n e.preventDefault();\n });\n\n // $('a:empty').each(function() {\n // $(this).remove();\n // });\n\n // capture user id\n if (urlParamNS(\"sid\")) {\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n event: \"authentication\",\n userID: urlParamNS(\"sid\"),\n });\n // console.log(\"GTM: User ID - Authentication \" + urlParamNS(\"sid\"));\n }\n\n var urlParams = new URLSearchParams(window.location.search);\n\n if (urlParams.get(\"agent\") !== null) {\n var agentID = urlParams.get(\"agent\");\n sessionStorage.setItem(\"lumos_agent_id\", agentID);\n }\n\n if (sessionStorage.getItem(\"lumos_agent_id\") !== null) {\n $(\"[data-referral]\").removeClass(\"hide\");\n $(\"#account_service_agent_id\").val(\n sessionStorage.getItem(\"lumos_agent_id\")\n );\n }\n})(jQuery);\n\njQuery(document).ready(function ($) {\n if (urlParamNS(\"tune_offer_id\")) {\n // sessionStorage.setItem('tune_offer_id', urlParamNS('tune_offer_id'));\n\n // console.log(\"Set Tune Offer\", urlParamNS(\"tune_offer_id\"));\n var cookieExpires = 30; // days\n Cookies.set(\"lumos_tune_offer_id\", urlParamNS(\"tune_offer_id\"), {\n expires: cookieExpires,\n });\n }\n});\n\nfunction toggleAddressChecker() {\n $(\"#addressCheckerModal\").modal(\"show\");\n}\n\nfunction formatDate(objDate) {\n var d = objDate;\n // console.log(d);\n if (!(objDate instanceof Date)) {\n d = new Date(objDate);\n }\n // console.log(d);\n return d.getMonth() + 1 + \"/\" + d.getDate() + \"/\" + d.getFullYear();\n} // end formatDate()\n\nfunction convertDateForIos(date) {\n var arr = date.split(/[- :]/);\n date = new Date(arr[0], arr[1] - 1, arr[2], arr[3], arr[4], arr[5]);\n return date;\n}\n\nfunction formatDateAPI(date) {\n var d = date;\n if (!(date instanceof Date)) {\n d = new Date(date);\n }\n var month = \"\" + (d.getMonth() + 1),\n day = \"\" + d.getDate(),\n year = d.getFullYear(),\n hour = \"\" + d.getHours(),\n minute = \"\" + d.getMinutes(),\n second = \"\" + d.getSeconds();\n\n if (month.length < 2) month = \"0\" + month;\n if (day.length < 2) day = \"0\" + day;\n\n if (hour.length < 2) hour = \"0\" + hour;\n if (minute.length < 2) minute = \"0\" + minute;\n if (second.length < 2) second = \"0\" + second;\n\n return [year, month, day].join(\"-\") + \" \" + [hour, minute, second].join(\":\");\n}\n\nfunction formatPhone(phone) {\n var phone_format = String(phone);\n phone_format = phone_format.replace(/\\D[^\\.]/g, \"\");\n phone_format =\n phone_format.slice(0, 3) +\n \"-\" +\n phone_format.slice(3, 6) +\n \"-\" +\n phone_format.slice(6);\n\n return phone_format;\n} // formatPhone(phone)\n\nfunction countProperties(obj) {\n var count = 0;\n\n for (var property in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, property)) {\n count++;\n }\n }\n return count;\n}\n\nfunction isCookiesEnabled() {\n var cookieEnabled = navigator.cookieEnabled;\n if (!cookieEnabled) {\n document.cookie = \"testcookie\";\n cookieEnabled = document.cookie.indexOf(\"testcookie\") != -1;\n }\n return cookieEnabled;\n}\n\nfunction urlParamNS(name) {\n var results = new RegExp(\"[?&]\" + name + \"=([^&#]*)\", \"i\").exec(\n window.location.href\n );\n if (results == null) {\n return null;\n }\n return decodeURI(results[1]) || 0;\n}\n\nfunction logNSEvent(event_label) {\n var $ = jQuery;\n\n // Existing API call\n // $.ajax({\n // url: '/wp-content/themes/lumos-tidewater/api_helper.php',\n // method: 'POST',\n // contentType: 'application/x-www-form-urlencoded',\n // data: {\n // 'action': 'ns_event_log',\n // 'event': event_label,\n // 'event_url': window.location.href\n // },\n // success: function(result) {\n // console.log(result);\n // }\n // });\n //\n // // New API call\n // var journeyDetails = {\n // details: event_label\n // };\n //\n // $.ajax({\n // url: '/wp-json/journey-log/v1/log',\n // method: 'POST',\n // contentType: 'application/json',\n // data: JSON.stringify({ journey_details: JSON.stringify(journeyDetails) }),\n // success: function(result) {\n // console.log(result.message);\n // },\n // error: function(error) {\n // console.error('Error logging customer journey:', error);\n // }\n // });\n}\n\n// (function(){\n// // Save the original method in a private variable\n// var _privateLog = console.log;\n// // Redefine console.log method with a custom function\n// console.log = function (message) {\n// // Here execute something with the given message or arguments variable\n// // alert(\"Our Custom Log Says: \" + message);\n// // if(typeof hj !== \"undefined\") {\n// // // Fire HotJar event\n// // var eventLog = 'ConsoleLog: ' + JSON.stringify(message);\n// // hj('event', eventLog);\n// // }\n//\n// /**\n// Note: If you want to preserve the same action as the original method does\n// then use the following line :\n//\n// we use apply to invoke the method on console using the original arguments.\n// Simply calling _privateLog(message) would fail because LOG depends on the console\n// */\n// _privateLog.apply(console, arguments);\n// };\n// })();\n\nvar lsLabel_full_address = \"lumos_address_full_address\",\n lsLabel_place_id = \"lumos_address_place_id\",\n lsLabel_location_id = \"lumos_location_id\",\n lsLabel_address_id = \"lumos_address_id\",\n lsLabel_address_status = \"lumos_address_status\",\n lsLabel_address_check_decline = \"lumos_address_check_decline\",\n lsLabel_address_city = \"lumos_address_city\",\n lsLabel_address_city_id = \"lumos_address_city_id\",\n lsLabel_address_state = \"lumos_address_state\",\n lsLabel_address_state_id = \"lumos_address_state_id\",\n lsLabel_address_street = \"lumos_address_street\",\n lsLabel_address_street_id = \"lumos_address_street_id\",\n lsLabel_address_zip = \"lumos_address_zip\",\n lsLabel_address_house_num = \"lumos_address_house_num\",\n lsLabel_address_apt_num = \"lumos_address_apt_num\",\n lsLabel_address_multigig = \"lumos_address_multigig\",\n lsLabel_address_iqport = \"lumos_address_iqport\",\n lsLabel_address_market = \"lumos_address_market\",\n lsLabel_address_tech_stack = \"lumos_address_tech_stack\",\n lsLabel_address_promotion_zone = \"lumos_address_promotion_zone\";\n\nlsLabel_address_newstack = \"lumos_address_newstack\";\nlsLabel_address_supportsvideo = \"lumos_address_supportsvideo\";\nlsLabel_address_precisely_id = \"lumos_address_precisely_id\";\nlsLabel_address_universaladdress_id = \"lumos_address_universaladdress_id\";\n\nfunction setAddressCookieData(addressData) {\n if (\n addressData.SupportsGigabit ||\n addressData.LumosService ||\n addressData.NewStack\n ) {\n // localStorage.setItem(lsLabel_place_id, placeID);\n localStorage.setItem(lsLabel_location_id, addressData.LocationID);\n localStorage.setItem(lsLabel_address_id, addressData.Id);\n // if(addressData.UniversalAddressID) {\n // localStorage.setItem(lsLabel_address_id, addressData.UniversalAddressID);\n // }\n localStorage.setItem(lsLabel_full_address, addressData.FullAddress);\n localStorage.setItem(lsLabel_address_status, true);\n\n // console.log(addressData.City, \"address data city\");\n localStorage.setItem(lsLabel_address_city, addressData.City);\n localStorage.setItem(lsLabel_address_city_id, addressData.CityID);\n localStorage.setItem(lsLabel_address_state, addressData.State);\n localStorage.setItem(lsLabel_address_state_id, addressData.StateID);\n localStorage.setItem(lsLabel_address_street, addressData.Address);\n localStorage.setItem(lsLabel_address_street_id, addressData.StreetID);\n localStorage.setItem(lsLabel_address_zip, addressData.Zip);\n localStorage.setItem(lsLabel_address_house_num, addressData.HouseNum);\n localStorage.setItem(lsLabel_address_apt_num, addressData.ApartmentNum);\n localStorage.setItem(lsLabel_address_iqport, addressData.IQPort);\n localStorage.setItem(\n lsLabel_address_promotion_zone,\n addressData.PromotionZone\n );\n localStorage.setItem(lsLabel_address_check_decline, 1);\n\n var cookieExpires = 1;\n Cookies.set(\"STYXKEY_lumos_promo_zone\", addressData.PromotionZone, {\n expires: cookieExpires,\n });\n\n localStorage.setItem(lsLabel_address_multigig, addressData.MultiGIG);\n var cookieExpires = 1;\n Cookies.set(\"STYXKEY_lumos_address_multigig\", addressData.MultiGIG, {\n expires: cookieExpires,\n });\n localStorage.setItem(lsLabel_address_newstack, addressData.NewStack);\n localStorage.setItem(\n lsLabel_address_supportsvideo,\n addressData.SupportsVideo\n );\n localStorage.setItem(lsLabel_address_precisely_id, addressData.PreciselyID);\n localStorage.setItem(\n lsLabel_address_universaladdress_id,\n addressData.UniversalAddressID\n );\n\n $(\"[data-multigig-notice]\").addClass(\"hide\");\n } else {\n // localStorage.setItem(lsLabel_place_id, placeID);\n localStorage.setItem(lsLabel_location_id, \"-1\");\n localStorage.setItem(lsLabel_address_id, \"-1\");\n localStorage.setItem(lsLabel_address_status, false);\n\n localStorage.setItem(lsLabel_address_check_decline, 1);\n }\n\n // Dispatch custom event\n const event = new Event(\"lumosAddressChange\");\n window.dispatchEvent(event);\n\n checkAddressLS();\n}\n\nfunction checkAddressLS() {\n if (\n localStorage.getItem(lsLabel_full_address) &&\n localStorage.getItem(lsLabel_full_address).length\n ) {\n // console.log(localStorage.getItem(lsLabel_full_address));\n\n // Adjust for the show-for-cookie field\n $(\"[data-show-for-cookie]\").each(function () {\n var dataCookie = $(this).attr(\"data-show-for-cookie\");\n\n if (\n localStorage.getItem(dataCookie) &&\n localStorage.getItem(dataCookie) !== \"null\" &&\n localStorage.getItem(dataCookie) !== \"0\"\n ) {\n $(this).removeClass(\"hide\");\n // Alert\n $('[data-cookie-alert=\"' + dataCookie + '\"]').addClass(\"hide\");\n } else {\n $(this).addClass(\"hide\");\n if ($(this).find(\"input\").prop(\"checked\")) {\n if ($(this).prev().find(\"input\").length) {\n $(this).prev().find(\"input\").prop(\"checked\", true).change();\n }\n // Alert\n $('[data-cookie-alert=\"' + dataCookie + '\"]').removeClass(\"hide\");\n }\n }\n });\n\n $(\".show-for-feac\").each(function () {\n $(this).addClass(\"show\");\n });\n\n $(\".hide-for-feac\").each(function () {\n $(this).addClass(\"hide\");\n });\n\n $(\"[data-hide-for-cookie]\").each(function () {\n var dataCookie = $(this).attr(\"data-hide-for-cookie\");\n\n // console.log(dataCookie);\n // console.log(localStorage.getItem(dataCookie));\n\n if (\n localStorage.getItem(dataCookie) &&\n localStorage.getItem(dataCookie) !== \"null\" &&\n localStorage.getItem(dataCookie) !== \"0\"\n ) {\n $(this).addClass(\"hide\");\n // console.log(\"set hide\");\n } else {\n // console.log(\"remove hide\");\n $(this).removeClass(\"hide\");\n }\n });\n\n $(\"#availability-status .full-address\").text(\n localStorage.getItem(lsLabel_full_address)\n );\n $(\"#availability-status .check\").css({ display: \"none\" });\n $(\"#availability-status .avail-icon.alert\").css({ display: \"none\" });\n\n $(\".button.next-step\").each(function () {\n $(this).attr(\"data-state\", localStorage.getItem(\"lumos_address_state\"));\n });\n\n // send state data to gtm\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push({\n \"data-state\": localStorage.getItem(\"lumos_address_state\"),\n });\n\n if (localStorage.getItem(lsLabel_address_status) !== \"false\") {\n $(\"#availability-status .avail-icon.no\").css({ display: \"none\" });\n $(\"#availability-status .avail-icon.yes\").css({\n display: \"inline-block\",\n });\n\n if ($(\"#account_service_geocoded\").length) {\n $(\"#account_service_geocoded\").val(\n localStorage.getItem(lsLabel_full_address)\n );\n $(\"#account_service_geocoded_visible\").val(\n localStorage.getItem(\"lumos_address_street\") +\n \" \" +\n localStorage.getItem(\"lumos_address_state\") +\n \", \" +\n localStorage.getItem(\"lumos_address_city\") +\n \" \" +\n localStorage.getItem(\"lumos_address_zip\")\n );\n\n $(\"#service_address_final\").text(\n localStorage.getItem(lsLabel_full_address)\n );\n\n $(\"#account_service_check_address\").text(\"Change Address\");\n // $('#address-checker').removeClass('open');\n }\n } else {\n $(\"#availability-status .avail-icon.no\").css({\n display: \"inline-block\",\n });\n $(\"#availability-status .avail-icon.yes\").css({ display: \"none\" });\n\n if ($(\"#account_service_geocoded\").length) {\n $(\"#account_service_geocoded\").val(\"\");\n $(\"#account_service_geocoded_visible\").val(\"\");\n $(\"#account_service_check_address\").text(\"Set Address\");\n }\n }\n\n $(\"#availability-status .avail-icon.edit\").css({\n display: \"inline-block\",\n });\n } else {\n $(\"#availability-status .avail-icon.alert\").css({\n display: \"inline-block\",\n });\n $(\"#availability-status .avail-icon.no\").css({ display: \"none\" });\n $(\"#availability-status .avail-icon.yes\").css({ display: \"none\" });\n\n $(\"#availability-status .check\").css({ display: \"inline-block\" });\n $(\"#availability-status .full-address\").text(\"\");\n\n $(\"#availability-status .avail-icon.edit\").css({ display: \"none\" });\n\n $(\".show-for-feac\").each(function () {\n $(this).removeClass(\"show\");\n });\n\n $(\".hide-for-feac\").each(function () {\n $(this).removeClass(\"hide\");\n });\n }\n}\n\nfunction isNumeric(str) {\n if (typeof str != \"string\") return false; // we only process strings!\n return (\n !isNaN(str) && // use type coercion to parse the _entirety_ of the string (`parseFloat` alone does not do this)...\n !isNaN(parseFloat(str))\n ); // ...and ensure strings of whitespace fail\n}\n\nfunction pushGA4Address(event, addObj) {\n // console.log('GA4 Push', event, addObj);\n // gtag('event', event, addObj);\n\n var ga4DL = {\n event: event,\n addObj,\n };\n\n // console.log(\"GA4 Push\", event, ga4DL);\n\n window.dataLayer = window.dataLayer || [];\n window.dataLayer.push(ga4DL);\n}\n\nfunction logJourney(eventDetails) {\n // Modify eventDetails object to add in email\n eventDetails.user_email = localStorage.getItem(\"lumos_address_email\") || \"\";\n // get all local storage values, append to a local_storage_data\n var local_storage_data = {};\n for (var i = 0; i < localStorage.length; i++) {\n var key = localStorage.key(i);\n local_storage_data[key] = localStorage.getItem(key);\n }\n eventDetails.local_storage_data = JSON.stringify(local_storage_data);\n // Make API call to backend\n $.ajax({\n url: \"/wp-json/journey-log/v1/log\",\n method: \"POST\",\n contentType: \"application/json\",\n data: JSON.stringify({ journey_details: eventDetails }),\n success: function (result) {\n // console.log(result.message);\n },\n error: function (error) {\n console.error(\"Error logging customer journey:\", error);\n },\n });\n}\nasync function updatePageProducts() {\n // envConsoleLog(\"updatePageProducts\");\n return new Promise((resolve, reject) => {\n $.ajax({\n url: \"/wp-admin/admin-ajax.php\",\n type: \"POST\",\n data: {\n action: \"update_card_slider\",\n },\n success: function (response) {\n // envConsoleLog(\"updatePageProducts response\", response);\n if (\n $(\".wf-speed-cards:not(.shop-fiber):not(.business-cards)\").length > 0\n ) {\n try {\n $(\n \".wf-speed-cards:not(.shop-fiber):not(.business-cards)\"\n ).replaceWith(response);\n initSpeedCardSlider();\n initSpeedSliderFunctions();\n resolve(); // Resolve the promise\n } catch (e) {\n envConsoleLog(e);\n reject(e); // Reject the promise if there's an error\n }\n } else {\n resolve();\n }\n },\n error: function (error) {\n envConsoleLog(\"AJAX error:\", error);\n reject(error); //handle AJAX errors\n },\n });\n });\n}\n\nfunction updateDisclaimerSection(promoDisclaimer) {\n jQuery.ajax({\n url: \"/wp-admin/admin-ajax.php\",\n type: \"POST\",\n data: {\n action: \"fetch_disclaimer\",\n promoDisclaimer: promoDisclaimer,\n },\n success: function (response) {\n envConsoleLog(\"disclaimer promoDisclaimer\", promoDisclaimer);\n jQuery(\"#disclaimer-section\").replaceWith(response);\n },\n error: function (xhr, status, error) {\n console.error(\"An error occurred: \" + error);\n },\n });\n}\n\n// update products on page load to ensure data from js is setting products\n$(document).ready(function () {\n if (!$(\".wf-speed-cards .card.no_sales_info\").length > 0) {\n // updatePageProducts();\n } else {\n setEqualCardHeight();\n }\n});\n\nfunction setEqualCardHeight() {\n let noSalesInfoCards = document.querySelectorAll(\n \".speed-cards-carousel .card.no_sales_info\"\n );\n\n if (noSalesInfoCards.length == 0) {\n let max_height = 0;\n\n // console.log(\"setEqualCardHeight\");\n\n let flashSaleInfos = document.querySelectorAll(\n \".speed-cards-carousel .card .flash-sale-info\"\n );\n\n // console.log(\"no sale info\", noSalesInfoCards);\n\n // console.log(flashSaleInfos.length, noSalesInfoCards.length);\n if (!flashSaleInfos.length && !noSalesInfoCards.length) {\n return; // skip if no flash sale infos and no cards with .no_sales_info\n }\n\n let anyHidden = Array.from(\n document.querySelectorAll(\".flash-sale-info\")\n ).some((el) => {\n return window.getComputedStyle(el).display === \"none\";\n });\n if (anyHidden) {\n // console.log(\"hidden\");\n return;\n }\n\n //set flash sale info heights equal to tallest\n document\n .querySelectorAll(\".speed-cards-carousel .flash-sale-info\")\n .forEach((el) => {\n el.style.height = \"auto!important\";\n });\n\n document\n .querySelectorAll(\".speed-cards-carousel .flash-sale-info\")\n .forEach((el) => {\n var height = el.offsetHeight;\n if (height > max_height) {\n max_height = height;\n }\n });\n\n document\n .querySelectorAll(\".speed-cards-carousel .flash-sale-info\")\n .forEach((el) => {\n el.style.height = max_height + \"px!important\";\n });\n\n //set margin top to 75% of the height of flash-sale-info\n document.querySelectorAll(\".speed-cards-carousel .card\").forEach((card) => {\n card.style.marginTop = max_height * 0.75 + \"px\";\n });\n }\n\n if (noSalesInfoCards.length > 0) {\n // console.log(\"no sales info cards\");\n let card_max_height = 0;\n //set card heights equal to tallest\n document.querySelectorAll(\".speed-cards-carousel .card\").forEach((el) => {\n el.style.height = \"auto!important\";\n });\n\n document.querySelectorAll(\".speed-cards-carousel .card\").forEach((el) => {\n var height = el.offsetHeight;\n if (height > card_max_height) {\n card_max_height = height;\n }\n });\n\n document.querySelectorAll(\".speed-cards-carousel .card\").forEach((el) => {\n el.style.height = card_max_height + \"px\";\n });\n }\n}\nwindow.addEventListener(\"resize\", setEqualCardHeight);\n\n// Function to find the tallest floating-info element\nfunction findTallestFloatingInfo() {\n let maxHeight = 0;\n document\n .querySelectorAll(\".speed-cards-carousel .card .floating-info\")\n .forEach((element) => {\n if (element.offsetHeight > maxHeight) {\n maxHeight = element.offsetHeight;\n }\n });\n return maxHeight;\n}\n\n// Adjust the margin top of each .card\nfunction adjustCardMargin() {\n const tallestInfoHeight = findTallestFloatingInfo();\n const additionalMargin = 15;\n document.querySelectorAll(\".speed-cards-carousel .card\").forEach((card) => {\n card.style.marginTop = tallestInfoHeight + additionalMargin + \"px\";\n });\n}\n\ntry {\n // Listener for focus event on elements with class .tt-input\n $(document).on(\"focus\", \".wf-address-checker .typeahead\", function () {\n // check window width\n if (window.innerWidth < 768) {\n var $this = $(this);\n var container = $this.closest(\".header-address-checker\");\n var checkButton = container.find(\".check-address\");\n\n //ensure the check button is visible\n checkButton[0].scrollIntoView({ behavior: \"smooth\", block: \"center\" });\n }\n });\n} catch (e) {\n console.error(e);\n}\n\n// Check on page load for a local storage addr data, clear out addr cookies if not found\n$(document).ready(function () {\n if (!localStorage.getItem(\"lumos_address_market\")) {\n Cookies.remove(\"STYXKEY_lumos_promo_zone\");\n Cookies.remove(\"STYXKEY_lumos_address_multigig\");\n Cookies.remove(\"STYXKEY_lumos_address_market\");\n }\n});\n\n\n// update broadband labels UPI data on addr\nfunction refreshUPIData() {\n console.log(\"refreshUPIData\");\n // hide labels container\n let techStack = localStorage.getItem(\"lumos_address_tech_stack\");\n if (techStack) {\n // get the address_id from the localStorage\n let address_id = localStorage.getItem(\"lumos_address_id\");\n if (\n localStorage.getItem(\"lumos_address_universaladdress_id\") &&\n localStorage.getItem(\"lumos_address_universaladdress_id\") != \"null\"\n ) {\n address_id = localStorage.getItem(\"lumos_address_universaladdress_id\");\n }\n\n // get_plans_by_address ajax call\n $.ajax({\n url: \"/wp-content/themes/lumos-tidewater/api_helper.php\",\n method: \"POST\",\n contentType: \"application/x-www-form-urlencoded\",\n async: false, // no async necessary\n data: {\n action: \"get_plans_by_address\",\n address_id: address_id,\n feature_id: null,\n },\n success: function (response) {\n // for each item in labels container, check the element's [data-upi] attr, compare it with each return in data[].unique_plan_id, hide labels that are not in the data\n let data = JSON.parse(response).Data;\n let labels = $(\".wf-speed-cards .broadband-label\");\n\n\n labels.each(function(index, element) {\n // Get the closest .card ancestor's data-name\n var $element = $(element);\n // if there is a slide-wrapper, or get the ancestor slick-slide and look for .shop-now-checkbox which will have data-name\n if ($element.closest('.slide-wrapper').length) {\n var $card = $element.closest('.slide-wrapper').find('> .card');\n } else {\n var $card = $element.closest('.slick-slide').find('.shop-now-checkbox');\n }\n var dataName = $card.data('name');\n \n // Find the matching data where service_plan_name matches data-name\n var matchingData = data.find(function(item) {\n return item.service_plan_name === dataName;\n });\n \n // If matching data is found, update the data-upi of a descendant of the element\n if (matchingData) {\n $element.find('[data-upi]').text(matchingData.unique_plan_id);\n }\n });\n \n },\n error: function (error) {\n console.error(\"AJAX error:\", error);\n },\n });\n }\n}\n"],"names":["targetElement","topNav","topNavHeight","scrollToPosition","window","location","hash","document","querySelector","offsetHeight","getBoundingClientRect","top","pageYOffset","scroll","behavior","validationPatterns","phoneNumber","pinNumber","passcodeNumber","ssNumber","strongPassword","zipCode","emailUsername","emailAddress","toggleAddressChecker","$","modal","formatDate","objDate","d","Date","getMonth","getDate","getFullYear","convertDateForIos","date","arr","split","formatDateAPI","month","day","year","hour","getHours","minute","getMinutes","second","getSeconds","length","join","formatPhone","phone","phone_format","String","replace","slice","countProperties","obj","property","count","Object","prototype","hasOwnProperty","call","isCookiesEnabled","cookieEnabled","navigator","cookie","indexOf","urlParamNS","name","results","RegExp","exec","href","decodeURI","logNSEvent","event_label","jQuery","click","e","preventDefault","each","this","on","vPattern","attr","test","val","removeClass","addClass","matchingElement","setTimeout","history","replaceState","pathname","search","dataLayer","push","event","userID","urlParams","URLSearchParams","get","agentID","sessionStorage","setItem","getItem","ready","Cookies","set","expires","lsLabel_full_address","lsLabel_place_id","lsLabel_location_id","lsLabel_address_id","lsLabel_address_status","lsLabel_address_check_decline","lsLabel_address_city","lsLabel_address_city_id","lsLabel_address_state","lsLabel_address_state_id","lsLabel_address_street","lsLabel_address_street_id","lsLabel_address_zip","lsLabel_address_house_num","lsLabel_address_apt_num","lsLabel_address_multigig","lsLabel_address_iqport","lsLabel_address_market","lsLabel_address_tech_stack","lsLabel_address_promotion_zone","setAddressCookieData","addressData","SupportsGigabit","LumosService","NewStack","localStorage","LocationID","Id","FullAddress","City","CityID","State","StateID","Address","StreetID","Zip","HouseNum","ApartmentNum","IQPort","PromotionZone","MultiGIG","lsLabel_address_newstack","lsLabel_address_supportsvideo","SupportsVideo","lsLabel_address_precisely_id","PreciselyID","lsLabel_address_universaladdress_id","UniversalAddressID","Event","dispatchEvent","checkAddressLS","dataCookie","find","prop","prev","change","text","css","display","data-state","isNumeric","str","isNaN","parseFloat","pushGA4Address","addObj","ga4DL","logJourney","eventDetails","user_email","local_storage_data","i","key","JSON","stringify","ajax","url","method","contentType","data","journey_details","success","result","error","async","updatePageProducts","Promise","resolve","reject","type","action","response","replaceWith","initSpeedCardSlider","initSpeedSliderFunctions","envConsoleLog","updateDisclaimerSection","promoDisclaimer","xhr","status","setEqualCardHeight","let","noSalesInfoCards","querySelectorAll","max_height","Array","from","some","getComputedStyle","el","forEach","style","height","card","marginTop","card_max_height","findTallestFloatingInfo","maxHeight","element","adjustCardMargin","tallestInfoHeight","addEventListener","innerWidth","closest","scrollIntoView","block","refreshUPIData","address_id","feature_id","parse","Data","index","$element","dataName","matchingData","item","service_plan_name","unique_plan_id","remove"],"mappings":"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"}