PageSourceSearch

https://powerflodiesel.com/wp-content/plugins/autoshop-toolkit-mas…/js/call-swapper.js?ver=08%3A14%3A28%3A1028

js powerflodiesel.com collected 2026-10-04 20:15:12 UTC 4,549 bytes, 122 lines download raw bytes

1let phones = JSON.parse(asi_callswapper.tracking_numbers);
2let user_agent = asi_callswapper.user_agent;
3let tracking = "";
4let separator = ",";
5
6
7// Convert numbers to strings
8if(phones) {
9    phones.forEach(function(item, index) {
10        item.real = item.real.toString();
11        item.tracked = item.tracked.toString();
12        tracking += item.tracked;
13        if (index < phones.length - 1) {
14            tracking += separator;
15        }
16    });
17}
18
19var date = new Date();
20date.setTime(date.getTime() + (86400 * 30));
21expires = "; expires=" + date.toUTCString();
22document.cookie = "tracking=" + tracking + expires + "; path=/";
23document.addEventListener("DOMContentLoaded", function() {
24        if(phones) {
25            swapAndLinkNumbers();
26        }
27        // console.log(phones);
28
29        document.body.addEventListener("click", function(event) {
30            var target = event.target; // Get the clicked element
31        
32            // Check if the clicked element is an anchor or its parent is an anchor with an href attribute starting with "tel:"
33            if ((target.tagName === "A" && target.getAttribute("href") && target.getAttribute("href").startsWith("tel:")) ||
34                (target.parentElement.getAttribute("href") && target.parentElement.getAttribute("href").startsWith("tel:"))) {
35        
36                // Extract phone number from the href attribute of the anchor element
37                var href= target.getAttribute("href");
38                if(href){
39                    var phoneNumber = target.getAttribute("href").replace("tel:", "");
40                }else{
41                    var phoneNumber = target.textContent.trim();
42                }
43
44
45                
46        
47                // // Log or perform any action with the extracted phone number
48                // console.log(user_agent);
49                // console.log("Clicked phone number:", phoneNumber);
50            }
51        });
52    });
53    function swapAndLinkNumbers() {
54        var elements = document.querySelectorAll("a[href^='tel:'], p > a[href^='tel:'], a.btn[href^='tel:']");
55        
56        for (var i = 0; i < elements.length; i++) {
57            var element = elements[i];
58            var href = element.getAttribute("href");
59            // Extract phone number from href instead of text content
60            var phoneNumber = href.replace('tel:', '');
61            var format = extractFormat(phoneNumber);
62    
63            if (format) {
64                var matchedPhone = findMatchingPhone(formatPhoneNumberForComparison(phoneNumber), phones);
65    
66                if (matchedPhone) {
67                    var realNumber = matchedPhone.real;
68                    var trackedNumber = matchedPhone.tracked;
69                    var updatedHref = 'tel:' + trackedNumber;
70                    element.setAttribute("href", updatedHref);
71    
72                    // Only update text content if it contains a phone number
73                    if (element.textContent.match(/\d/)) {
74                        var textFormat = extractFormat(element.textContent);
75                        var newTextContent = formatPhoneNumber(trackedNumber, textFormat);
76                        if (element.querySelector("p")) {
77                            element.querySelector("p").textContent = newTextContent;
78                        } else {
79                            element.textContent = newTextContent;
80                        }
81                    }
82                }
83            }
84        }
85    }
86
87    function extractFormat(phoneNumber) {
88        return phoneNumber.replace(/[0-9]/g, "#");
89    }
90
91    function formatPhoneNumberForComparison(phoneNumber) {
92        return phoneNumber.replace(/\D/g, ''); // Remove non-digits for comparison
93    }
94
95    function findMatchingPhone(phoneNumber, phones) {
96        for (var i = 0; i < phones.length; i++) {
97            var phone = phones[i];
98            if (phoneNumber === formatPhoneNumberForComparison(phone.real)) {
99                return phone;
100            }
101        }
102        return null;
103    }
104
105    function formatPhoneNumber(number, format) {
106        var formattedNumber = '';
107        var digitIndex = 0;
108        for (var i = 0; i < format.length; i++) {
109            if (format[i] === '#') {
110                formattedNumber += number[digitIndex];
111                digitIndex++;
112            } else {
113                formattedNumber += format[i];
114            }
115        }
116
117        return formattedNumber;
118    }
119
120    function escapeRegExp(string) {
121        return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');
122    }

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.