PageSourceSearch

https://www.stoddardbaptisthome.org/wp-content/themes/stoddard-nursing-home/js/common.js

js stoddardbaptisthome.org collected 2026-10-09 23:15:32 UTC 5,777 bytes, 240 lines download raw bytes

1// *******************
2// SETTINGS
3// *******************
4var nav_element_id = "nav";
5var nav_ul_id = "menu-primary-nav"; // first <ul> of the nav
6var kid_class = "sub-menu";
7
8
9window.onload = function() {
10	var winWidth = window.outerWidth ? window.outerWidth : document.body.clientWidth;
11
12	// setup smartphone menus
13	if( winWidth <= 720 ) {
14		// setup mobile menu
15		var navElem = document.getElementById(nav_element_id);
16		var navMenuBtn = document.getElementById("menu_btn");
17		var navLinks = navElem.getElementsByTagName("a");
18		var touchType = "click";
19
20		navMenuBtn.addEventListener(touchType, function(e) {
21			e.preventDefault();
22			e.stopPropagation();
23
24			var navClass = navElem.className;
25
26			if( navClass == "slid" ) {
27				navElem.className = "";
28				clearOvers();
29			} else {
30				navElem.className = "slid";
31			}
32		}, false);
33		navElem.addEventListener("click", function(e) {
34			e.preventDefault();
35			e.stopPropagation();
36			return false;
37		} );
38
39		for( var i=0; i<navLinks.length; i++ ) {
40			var navLink = navLinks[i];
41			var subNav = navLink.parentNode.getElementsByClassName(kid_class)[0];
42
43			navLink.addEventListener("click", function(e) {
44				e.preventDefault();
45				e.stopPropagation();
46				return false;
47			});
48
49			if( subNav && subNav.parentNode.parentNode.className != kid_class ) {
50				navLink.addEventListener(touchType, function(e) {
51					e.preventDefault();
52					e.stopPropagation();
53
54					clearOvers();
55					this.parentNode.className += " over";
56
57					return false;
58				});
59			} else {
60				navLink.addEventListener(touchType, function() {
61					clearOvers();
62					this.parentNode.className += " over";
63
64					var link = this.href;
65					document.location.href = link;
66				});
67			}
68		}
69	}
70	// END setup smartphone menus
71
72	// setup doc/pdf Google Analytics click tracking
73	if( window.ga || (window._gat && window._gat._getTracker) ) {
74		com.illuminage.doctrack.setupTracking();
75	}
76
77	// check for font size/zoom cookie
78	if( illReadCookie("text_size") != null ) {
79		illDoTextSize( illReadCookie("text_size") );
80	} else {
81		illDoTextSize( 0 );
82	}
83
84	// set cookie to prevent caching
85	// if( illReadCookie( "ill_no_cache" ) == null ) {
86	// 	illCreateCookie( "ill_no_cache", "1", 365 );
87	// }
88
89	// dropdown nav keyboard navigation helper
90	if( jQuery ) {
91		jQuery("." + kid_class + " a").on("focus", function() {
92			jQuery(this).closest("." + kid_class).closest("li").addClass("active");
93		});
94		jQuery("." + kid_class + " a").on("blur", function() {
95			jQuery(this).closest("." + kid_class).closest("li").removeClass("active");
96		});
97
98		// search hide/show
99		jQuery("#search input[type=submit]").on("hover", function() {
100			jQuery(this).prev().fadeIn(function() {
101				jQuery(this).focus();
102			});
103		});
104		jQuery("#search input[type=text]").on("blur", function(e) {
105			if( !jQuery(e.relatedTarget).hasClass("search_submit_btn") ) {
106				jQuery(this).fadeOut();
107			}
108		});
109		jQuery("#search").on("submit", function(e) {
110			if( jQuery(this).find("input[type=text]").val() == "" ) {
111				e.preventDefault();
112				return false;
113			}
114
115			jQuery(this).find("input[type=text]").focus();
116		});
117
118		// text size toggle
119		jQuery("#textsize").on("click", function() {
120			illIncrementTextSize();
121		});
122
123		// share hide/show
124		jQuery("#share div").on("click", function() {
125			jQuery(this).parent().toggleClass("active");
126		});
127	}
128};
129
130
131if(!com) var com={};
132if(!com.illuminage) com.illuminage={};
133if(!com.illuminage.doctrack) com.illuminage.doctrack={};
134(function(){
135
136	var pub = com.illuminage.doctrack;
137	pub.extensions = "doc,pdf,docx";
138	pub.extensionArr = pub.extensions.split(",");
139
140	pub.setupTracking = function() {
141		var links = document.getElementsByTagName("a");
142
143		// loop through all links on page
144		for( var i=0; i<links.length; i++ ) {
145			var link = links[i];
146			var href = link.getAttribute("href");
147			if( href ) {
148				href = href.replace("http://", "");
149				href = href.substr(href.indexOf("/"));
150
151				// loop through and check for extensions
152				for( var j=0; j<pub.extensionArr.length; j++ ) {
153					var ext = pub.extensionArr[j];
154					if( href.endsWith(ext) ) {
155						link.setAttribute("onclick", "javascript: ga('send', 'pageview', '" + href + "');");
156					}
157				}
158			}
159		}
160	}
161
162})();
163
164
165function clearOvers() {
166	// clear all "over" classes
167	var topLIs = document.getElementById(nav_ul_id).children;
168	for( var k=0; k<topLIs.length; k++ ) {
169		topLIs[k].className = topLIs[k].className.replace(/\b over\b/,'');
170	}
171}
172
173String.prototype.endsWith = function(suffix) {
174	return this.indexOf(suffix, this.length - suffix.length) !== -1;
175};
176
177
178function illDoTextSize( size_index ) {
179	var em_size = "1";
180
181	switch( size_index ) {
182		case 0:
183			em_size = "1";
184		break;
185
186		case 1:
187			em_size = "1.2";
188		break;
189
190		case 2:
191			em_size = "1.5";
192		break;
193	}
194
195	document.getElementsByTagName("body")[0].style.fontSize = em_size + "em";
196}
197function illIncrementTextSize() {
198	var current_size = illReadCookie("text_size");
199
200	if( current_size != null ) {
201		current_size++
202	} else {
203		current_size = 1;
204	}
205
206	if( current_size > 2 ) {
207		current_size = 0;
208	}
209
210	illDoTextSize( current_size );
211	illCreateCookie( "text_size", current_size, 30 );
212	// console.log("text size", illReadCookie("text_size"));
213}
214
215
216// COOKIES
217function illCreateCookie( name, value, days ) {
218	if(days) {
219		var date = new Date();
220		date.setTime(date.getTime()+(days*24*60*60*1000));
221		var expires = "; expires="+date.toGMTString();
222	} else {
223		var expires = "";
224	}
225
226	document.cookie = name+"="+value+expires+"; path=/";
227}
228
229function illReadCookie( name ) {
230	var nameEQ = name + "=";
231	var ca = document.cookie.split(';');
232
233	for( var i=0; i < ca.length; i++ ) {
234		var c = ca[i];
235		while (c.charAt(0)==' ') c = c.substring(1,c.length);
236		if( c.indexOf(nameEQ) == 0 ) return c.substring(nameEQ.length,c.length);
237	}
238
239	return null;
240}

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.