PageSourceSearch

https://compulsivereader.com/wp-content/plugins/ratchet/assets/js/ratchet-scripts.js?ver=26.08.05

js compulsivereader.com collected 2026-09-24 09:07:42 UTC 6,348 bytes, 174 lines download raw bytes

1jQuery(document).ready(function ($) {
2    $(document).bind("ready ajaxComplete", function () {
3        $(".more-link").text(ratchet_values.dtb_readmore_text);
4        $("#respond #reply-title>span").text(ratchet_values.dtb_comments_text);
5        $("#dtb-after-footer").detach().insertAfter("#main-footer");
6        $("#dtb-before-header").detach().prependTo("#page-container");
7    });
8
9
10    if (ratchet_values.dtb_sticky_footer == 1) {
11        function positionFooter() {
12            if ($("footer.et-l--footer")[0]) {
13                var mFoo = $("footer.et-l--footer");
14            } else {
15                var mFoo = $("#main-footer");
16            }
17
18            if ((($(document.body).height() + mFoo.outerHeight()) < $(window).height() && mFoo.css("position") == "fixed") || ($(document.body).height() < $(window).height() && mFoo.css("position") != "fixed")) {
19                mFoo.css({
20                    position: "fixed",
21                    bottom: "0",
22                    right: "0",
23                    left: "0"
24                });
25            }
26        }
27
28        $(document).ready(function () {
29            positionFooter();
30            $(window).scroll(positionFooter);
31            $(window).resize(positionFooter);
32            $(window).load(positionFooter);
33        });
34    }
35
36    $("#top-menu-nav #top-menu li a").each(function () {
37        $(this).wrapInner("<span></span>");
38    });
39
40    if (ratchet_values.footer_reveal) {
41        function dtb_footer_height() {
42            if ($("footer.et-l--footer")[0]) {
43                var footer = $("footer.et-l--footer");
44                var footerHeight = footer.height();
45            } else {
46                var footer = $("#main-footer");
47                var footerHeight = footer.height();
48            }
49            footer.css({
50                position: "fixed",
51                bottom: "0",
52                right: "0",
53                left: "0"
54            });
55            $("#page-container").css("margin-bottom", footerHeight);
56        }
57
58        function dtb_remove_footer_height() {
59            $("#page-container").css("margin-bottom", "0");
60        }
61
62        function footer_reveal_mobile_conditional() {
63            if ($(window).width() > 980) {
64                dtb_footer_height();
65            } else {
66                dtb_remove_footer_height();
67            }
68        }
69
70        if (ratchet_values.footer_reveal_mobile) {
71            footer_reveal_mobile_conditional()
72            $(window).resize(function () {
73                footer_reveal_mobile_conditional()
74            });
75        } else {
76            dtb_footer_height();
77            $(window).resize(function () {
78                dtb_footer_height();
79            });
80        }
81    }
82
83    const rx = /^data_\w+-/
84
85    document.querySelectorAll("[class*='data_']").forEach(el => {
86        Array.from(el.classList).filter(c => rx.test(c)).forEach(c => {
87            const [ dataAttr, value ] = c.split(/-(.+)/)
88            el.setAttribute(dataAttr.replace("_", "-"), value)
89        })
90    })
91
92});
93
94jQuery(document).ready(function($) {
95    $(".et_pb_module").not('.show_title').find("img").mouseenter(function() {
96        if (!$(this).hasClass("show_title")) {
97            let $lwp_title = $(this).attr("title");
98            $(this).attr("aria-label", $lwp_title);
99            $(this).attr("title", "");
100        }
101    }).mouseleave(function() {
102        if (!$(this).hasClass("show_title")) {
103            let $lwp_title = $(this).attr("aria-label");
104            $(this).attr("title", $lwp_title);
105            $(this).removeAttr("aria-label");
106        }
107    });
108});
109
110document.addEventListener("DOMContentLoaded", function () {
111    const emailRegex = /\b([A-Za-z0-9._%+-]+)@([A-Za-z0-9.-]+\.[A-Za-z]{2,})\b/g;
112
113    // Mapping of wrap classes to justify-content
114    const justifyMap = {
115        'wrap_email': 'flex-start',
116        'wrap_email_center': 'center',
117        'wrap_email_right': 'flex-end',
118        'wrap_email_justify': 'space-between'
119    };
120
121    function wrapEmailsInNode(node, rootContainer) {
122        if (node.nodeType === Node.TEXT_NODE) {
123            const text = node.nodeValue;
124            if (emailRegex.test(text)) {
125                const container = document.createElement("span");
126                container.innerHTML = text.replace(emailRegex, (match, user, domain) => {
127                    const wrap = document.createElement("span");
128                    const userSpan = document.createElement("span");
129                    const domainSpan = document.createElement("span");
130
131                    // Apply wrapper styles
132                    wrap.style.display = "inline-flex";
133                    wrap.style.flexWrap = "wrap";
134                    wrap.style.alignItems = "baseline";
135
136                    // Determine justify-content based on parent class
137                    let justify = 'flex-start';
138                    for (let cls of Object.keys(justifyMap)) {
139                        if (rootContainer.classList.contains(cls)) {
140                            justify = justifyMap[cls];
141                            break;
142                        }
143                    }
144                    wrap.style.justifyContent = justify;
145
146                    // User part
147                    userSpan.style.whiteSpace = "nowrap";
148                    userSpan.textContent = user + "@";
149
150                    // Domain part
151                    domainSpan.style.whiteSpace = "normal";
152                    domainSpan.style.wordBreak = "break-word";
153                    domainSpan.textContent = domain;
154
155                    wrap.appendChild(userSpan);
156                    wrap.appendChild(domainSpan);
157
158                    return wrap.outerHTML;
159                });
160                node.replaceWith(container);
161            }
162        } else if (
163            node.nodeType === Node.ELEMENT_NODE &&
164            !(node.tagName === "A" && node.hasAttribute("href") && node.getAttribute("href").startsWith("mailto:"))
165        ) {
166            Array.from(node.childNodes).forEach(child => wrapEmailsInNode(child, rootContainer));
167        }
168    }
169
170    // Find all wrap_email / wrap_email_center / wrap_email_right / wrap_email_justify elements
171    document.querySelectorAll(".wrap_email, .wrap_email_center, .wrap_email_right, .wrap_email_justify").forEach(el => {
172        wrapEmailsInNode(el, el);
173    });
174});

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.