1 2 3 4 5 6 7 8 9 10<!doctype html> 11<!-- Engine: Aestiva HTML/OS Version 4.89 Developer Edition --> 12<html lang="en"> 13 14 15 16 17 18 19 20 <head> 21 <META http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 22 <META NAME="author" content="Blackfoot Valley Dispatch" /> 23 <META NAME="description" CONTENT="Contact Blackfoot Valley Dispatch" /> 24 <META NAME="keywords" CONTENT="Blackfoot Valley Dispatch,contact,contact us,contact staff,contact page,email,email staff,submit content,submit press release,submit news,question" /> 25 <META NAME="robots" CONTENT="index,follow" /> 26 <META HTTP-EQUIV="cache-control" CONTENT="private, no-store, no-cache, must-revalidate" /> 27 28 <META NAME="revisit-after" CONTENT="30 days" /> 29 30 31 <title>Blackfoot Valley Dispatch - Contact Us</title> 32 33 <meta name="viewport" content="width=device-width, initial-scale=1"> 34 <link rel="stylesheet" type="text/css" media="screen" href="/app/website_specifics/pdf_click_menu_small.css" /> 35 <link rel="stylesheet" type="text/css" media="screen" href="/ASSET/1537x26334/XPATH/cms/website_specifics/css_themes/monarch/monarch.css" /> 36 37 <link HREF="https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300;0,400;0,600;0,700;0,800;1,300;1,400;1,600;1,700;1,800&display=swap" rel="stylesheet" /> 38 39
39<script> 40 // Create a link element for the Font Awesome stylesheet with fallback 41 const font_awesome_link = document.createElement('link'); 42 font_awesome_link.rel = 'stylesheet'; 43 font_awesome_link.type = 'text/css'; 44 font_awesome_link.href = 'https://repo.charityweather.com/files/font_awesome/font-awesome-6.5.1-pro-ll-kit/css/all-ll-min.css'; 45 46 // If loading fails, switch to fallback URL 47 font_awesome_link.onerror = () => { 48 font_awesome_link.href = 'https://repo.lionslight.com/files/font_awesome/font-awesome-6.5.1-pro-ll-kit/css/all-ll-min.css'; 49 }; 50 51 // Prepend the stylesheet to the head for faster priority loading 52 document.head.prepend(font_awesome_link); 53 54 // Optional: Listen for the stylesheet's load event to handle FOUC 55 font_awesome_link.onload = () => { 56 document.documentElement.classList.add('fa-loaded'); 57 }; 58 </script>
58 59 60 61<!-- Desktop/canonical vs. mobile/alternate URLs --> 62<link rel="canonical" HREF="https://www.blackfootvalleydispatch.com/contact"> 63 64<link rel="stylesheet" type="text/css" media="screen" href="/app/website_specifics/form_style_monarch.css" /> 65
65<script src="/app/website_specifics/jquery-2-2-2.min.js"></script>
vendor: 1 bytes, line 65
65
66<script> 67 function textCounter(field, countfield, maxlimit) 68{ 69if (field.value.length > maxlimit) // if too long...trim it! 70 field.value = field.value.substring(0, maxlimit); // otherwise, update 'characters left' counter 71else 72 countfield.value = maxlimit - field.value.length; 73} 74</script>
74 75 76<!-- (USED FOR AJAX & CAPTCHA) -->
77<script src="https://www.blackfootvalleydispatch.com/apps/clear/clear.js"></script>
77 78 79
79<script src="/app/js/postscribe/postscribe.min.js"></script>
79 80 81 <!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 64 bytes, lines 81-82
81 82<script async src="https://www.googletagmanager.com/gtag/js?id=
82UA-117341819-1
vendor: 12 bytes, line 82
82"></script>
83<script>
vendor: 127 bytes, lines 84-87
84window.dataLayer = window.dataLayer || []; 85function gtag(){dataLayer.push(arguments);} 86gtag('js', new Date()); 87gtag('config', '
87UA-117341819-1
vendor: 4 bytes, line 87
87');
88</script>
88 89 90 91 <!-- AD FILLER NETWORK HEADER SCRIPTS (hashtag_head.js) --> 92 93 94 95 96 <!--AD PREFERENCES NEEDED BY JAVASCRIPTS--> 97 98
98<script>const PREFS_LOCAL_AD_SHUFFLER = "normal", PREFS_LOCAL_AD_SHUFFLE_TIMER = 30000, setting_ad_clicks_impressions = "enabled", PREFS_LOCAL_AD_IDLE_LOAD_TIMES = 50, console_logging = "off", privacy_version = "30962", terms_version = "37424", ccsetting = "off", ccrejectbtn = "lg", ccprivacycheckbox = "off";</script>
vendor: 1 bytes, line 98
98
99<script>const ads = JSON.parse('[{"ad_type": "horiz_lg","ad_code": "%3Cimg%20src%3D%22%2FIMG%2Fr%5FyAH9U72R4%5F6Z7r%2DhA%5FBxEHGdVHH%2FXPATH%2Fhome%2Fcms%5Fdata%2Fdfault%2Fweb%5Fads%2Fhoriz%2F2767%2Dwebsite%5Fsponsorship%5Fad%5F728x90%2EjpgXEXT1271x45255%2Ejpeg%22%20width%3D%22728%22%20height%3D%2290%22%20alt%3D%22%22%3E","ad_id": "w%5F59FzN79O2Rz5DU835PJaCB%5FdPgI%5FFTZ6ONYRYQR"}]');</script>
99 100
101<script src="/ASSET/1533x23189/XPATH/cms/website_specifics/monarch_ad_shuffler.js"></script>
101 102
103<script>$(function() { 104 var submitIcon = $('.searchbox-icon'); 105 var inputBox = $('.searchbox-input'); 106 var searchBox = $('.searchbox'); 107 var isOpen = false; 108 submitIcon.click(function () { 109 if (isOpen == false) { 110 searchBox.addClass('searchbox-open'); 111 inputBox.focus(); 112 isOpen = true; 113 } else { 114 searchBox.removeClass('searchbox-open'); 115 inputBox.focusout(); 116 isOpen = false; 117 } 118 }); 119 submitIcon.mouseup(function () { 120 return false; 121 }); 122 searchBox.mouseup(function () { 123 return false; 124 }); 125 $(document).mouseup(function () { 126 if (isOpen == true) { 127 $('.searchbox-icon').css('display', 'block'); 128 submitIcon.click(); 129 } 130 }); 131 132 133 runIf($('.menu').length,'jQuery.sticky','/app/website_specifics/sticky.js',function(){ 134 $(".menu").sticky({ topSpacing: 0, center:true, className:"stickynow" }); 135 }); 136 137 138 139}); 140function buttonUp() { 141 var inputVal = $('.searchbox-input').val(); 142 inputVal = $.trim(inputVal).length; 143 if (inputVal !== 0) { 144 $('.searchbox-icon').css('display', 'none'); 145 } else { 146 $('.searchbox-input').val(''); 147 $('.searchbox-icon').css('display', 'block'); 148 } 149} 150 151 152 153runIf=function(condition,name,url,callback){ 154 if(condition){ 155 runSafe(name,url,callback); 156 } 157} 158 159 160 161runSafe=function(name,url,callback){ 162 if(typeof window[name] != 'undefined'){ 163 callback(); 164 } else { 165 if(typeof runsafe != 'object'){runsafe={};} 166 if(runsafe[url] && runsafe[url].constructor === Array){var loadit=false;} else {runsafe[url]=[];var loadit=true;} 167 runsafe[url].push(callback); 168 // START001 UI stuff not necessary 169 // if (document.body){document.body.style.borderTop="10px solid red";} 170 // END001 UI stuff not necessary 171 if (loadit){ 172 var js = document.createElement('script'); 173 js.async = true; 174 js.src = url; 175 js.onload = js.onreadystatechange = (function(){return function(){ 176 while(runsafe[url].length){ 177 var f=runsafe[url].shift(); 178 f(); 179 } 180 delete runsafe[url]; 181 var count = 0; for (var k in runsafe) if (runsafe.hasOwnProperty(k)) count++; 182 if(count==0){ 183 // START002 UI stuff not necessary 184 if (document.body){document.body.style.borderTop="none";} 185 // END002 UI stuff not necessary 186 } 187 }})(); 188 var first = document.getElementsByTagName('script')[0]; 189 first.parentNode.insertBefore(js, first); 190 } 191 } 192} 193 194 195 196</script>
196 197 198<style> 199.preLoadImg { 200 display: none; 201} 202#undefined-sticky-wrapper:before { 203 height:50px; 204 background-color: #B6BD98; 205} 206</style> 207 208<!-- CSS for print_sub_alert --> 209<style> 210 211.print_sub_container { 212 width:auto; 213} 214.print_sub_container div { 215 width:auto; 216} 217.print_sub_container .print_sub_header { 218// background-color:#c7edfc; 219// padding: 12px 2px; 220 cursor: pointer; 221 font-weight: bold; 222} 223.print_sub_container .print_sub_content { 224 display: none; 225 padding : 5px; 226} 227</style> 228 229 230 231 232 233 234 235 </head> 236 <body> 237 238 239<img class="preLoadImg" src="/home/cms_data/dfault/images/home-menu-icon.png" width="1" height="1" alt="" /> 240<img class="preLoadImg" src="/home/cms_data/dfault/images/home-menu-active-icon.png" width="1" height="1" alt="" /> 241 242 243 244 245 <section class="top-bar"> 246 <div class="container"> 247 <div class="row"> 248 <div class="col-sm-2"> 249 <ul class="social"> 250 <li class="nav-item jvlmn"><a href="https://www.facebook.com/BlackfootValleyDispatch" target="n/a"><i class='fa-brands fa-facebook-f' aria-hidden='true'></i></a></li><li class="nav-item jvlmn"><a href="https://www.blackfootvalleydispatch.com/rss" target="n/a"><i class='fa fa-rss' aria-hidden='true'></i></a></li> 251 </ul> 252 </div> 253 <div class="col-sm-10 text-right"> 254 <div id="main_menu"> 255 <ul class="links"> 256 <li class="nav-item jvlmn"><a href="https://www.blackfootvalleydispatch.com/classifieds" >Classifieds</a></li><li class="nav-item jvlmn"><a href="https://www.blackfootvalleydispatch.com/directory" >Directory</a></li><li class="nav-item jvlmn"><a href="https://www.blackfootvalleydispatch.com/photos" >Photos</a></li><li class="nav-item jvlmn"><a href="https://www.blackfootvalleydispatch.com/about" >About</a></li><li class="nav-item jvlmn"><a class="active" href="https://www.blackfootvalleydispatch.com/contact" >Contact</a></li><li class="nav-item jvlmn"><a href="https://www.blackfootvalleydispatch.com/advertise" >Advertise</a></li><li class="nav-item jvlmn"><a href="https://www.blackfootvalleydispatch.com/register" >Register</a></li><li class="nav-item jvlmn"><a href="https://www.blackfootvalleydispatch.com/login?r=%2Fcontact" >Sign In</a></li> 257 </ul> 258 </div> 259 </div> 260 </div> 261 </div> 262 </section> 263 264 265 <!--/// Header ///--> 266 <header class="header home-4"> 267 <div class="container"> 268 <div class="row"> 269 <div class="col-sm-9"> 270 <figure class="logo"><a href="https://www.blackfootvalleydispatch.com/" aria-label="Home"><img src="/home/cms_data/dfault/images/masthead_990x100.png" alt="" class="logo"></a> 271 </figure> 272 </div> 273 <div class="col-sm-3 text-right xs-none"> 274 </div> 275 </div> 276 <div class="row"> 277 <div class="col-sm-12"> 278 <div class="date"> 279 <div class="grid_1 rightone"> 280 <p class="pub_date"> 281 The Blackfoot Valley's News Source Since 1980 282 </p> 283 </div> 284 </div> 285 </div> 286 </div> 287 </div> 288 </header> 289<!-- Dynamic script (11-21-2025) --> 290<style> 291#JvlNavbarContent { 292 width: 100% /* Prevents wrapping */ 293} 294#JvlNavbarContent .nav { 295 flex-wrap: nowrap; /* Prevents wrapping */ 296} 297#JvlNavbarContent .nav a { 298 white-space: nowrap; /* Prevents text wrapping */ 299} 300#JvlNavbarContent .nav > li { /* Hide all menu items initially */ 301 opacity: 0; 302 /* transition: opacity 0.2s ease; /* Animation when JS adds .show */ 303} 304#JvlNavbarContent .nav > li.show { /* Reveal all menu items */ 305 opacity: 1; 306} 307 308/* ADDED 12-4-2025: Apply opacity: 1 when screen width is 990px or less */ 309@media screen and (max-width: 990px) { 310 #JvlNavbarContent .nav > li { 311 opacity: 1; 312 } 313} 314 315</style>
316<script>const dynamicMenu = true;</script>
316 317 <section class="header home-4" style="top:0;position:sticky;padding-top:0;z-index:2022;"> 318 <div class="container"> 319 <div class="row"> 320 <div class="col-sm-12"> 321 <nav class="navbar navbar-expand-lg navbar-default"> 322 <div class="navbar-header"> 323 <button class="navbar-toggler" type="button" data-bs-toggle="collapse" data-bs-target="#JvlNavbarContent" aria-controls="navbarSupportedContent" aria-expanded="false" aria-label="Toggle navigation"> 324 <i class="fa fa-bars" style="color:#fff;"></i> 325 </button> 326 </div> 327 328 <!-- Collect the nav links, forms, and other content for toggling --> 329 <div class="collapse navbar-collapse" id="JvlNavbarContent"> 330 <ul class="nav navbar-nav me-auto mb-2 mb-lg-0"><li class="nav-item jvlmnreg"><a class="nav-link" href="https://www.blackfootvalleydispatch.com/">Home</a></li><li class="nav-item jvlmnreg"><a class="nav-link" href="https://www.blackfootvalleydispatch.com/section/news">News</a></li><li class="nav-item jvlmnreg"><a class="nav-link" href="https://www.blackfootvalleydispatch.com/section/community">Community</a></li><li class="nav-item jvlmnreg"><a class="nav-link" href="https://www.blackfootvalleydispatch.com/section/outdoors">Outdoors</a></li> 331 <li class="dropdown nav-item jvlmnreg"> 332 <a href="https://www.blackfootvalleydispatch.com/section/viewpoints" class="nav-link dropdown-toggle" data-bs-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Viewpoints <span class="caret"></span></a> 333 <ul class="dropdown-menu"> 334 <li class="nav-item jvlmnreg"><a href="https://www.blackfootvalleydispatch.com/section/viewpoints" class="dropdown-item nav-link">All</a></li> 335 <li class="nav-item jvlmnreg"><a href="https://www.blackfootvalleydispatch.com/section/viewpoints/columns" class="dropdown-item nav-link">Columns</a></li> 336 <li class="nav-item jvlmnreg"><a href="https://www.blackfootvalleydispatch.com/section/viewpoints/opinion" class="dropdown-item nav-link">Opinion</a></li> 337 </ul></li><li class="nav-item jvlmnreg"><a class="nav-link" href="https://www.blackfootvalleydispatch.com/section/obits">Obits</a></li> 338 <li class="dropdown nav-item jvlmnreg"> 339 <a href="https://www.blackfootvalleydispatch.com/section/calendar" class="nav-link dropdown-toggle" data-bs-toggle="dropdown" role="button" aria-haspopup="true" aria-expanded="false">Calendar <span class="caret"></span></a> 340 <ul class="dropdown-menu"> 341 <li class="nav-item jvlmnreg"><a href="https://www.blackfootvalleydispatch.com/section/calendar" class="dropdown-item nav-link">All</a></li> 342 <li class="nav-item jvlmnreg"><a href="https://www.blackfootvalleydispatch.com/section/calendar/church%5Fservices" class="dropdown-item nav-link">Church Services</a></li> 343 <li class="nav-item jvlmnreg"><a href="https://www.blackfootvalleydispatch.com/section/calendar/community%5Fevents%5Fcalendar" class="dropdown-item nav-link">Community Events Calendar</a></li> 344 <li class="nav-item jvlmnreg"><a href="https://www.blackfootvalleydispatch.com/section/calendar/meetings" class="dropdown-item nav-link">Meetings</a></li> 345 </ul></li><li class="nav-item jvlmn"><a href="https://www.blackfootvalleydispatch.com/classifieds" >Classifieds</a></li><li class="nav-item jvlmn"><a href="https://www.blackfootvalleydispatch.com/directory" >Directory</a></li><li class="nav-item jvlmn"><a href="https://www.blackfootvalleydispatch.com/photos" >Photos</a></li><li class="nav-item jvlmn"><a href="https://www.blackfootvalleydispatch.com/about" >About</a></li><li class="nav-item jvlmn"><a class="active" href="https://www.blackfootvalleydispatch.com/contact" >Contact</a></li><li class="nav-item jvlmn"><a href="https://www.blackfootvalleydispatch.com/advertise" >Advertise</a></li><li class="nav-item jvlmn"><a href="https://www.blackfootvalleydispatch.com/register" >Register</a></li><li class="nav-item jvlmn"><a href="https://www.blackfootvalleydispatch.com/login?r=%2Fcontact" >Sign In</a></li> 346 </ul><ul class="nav navbar-nav ml-auto"><div class="navbar-nav ml-auto"> 347 <a href="javascript:;" class="search-toggler"> 348 <i class="fa fa-search"></i> 349 </a> 350 <div id="search-form"> 351 <form method="GET" class="searchbox" autocomplete="on" ACTION="/findit" NAME="findit"> 352 <input class="search" type="text" name="mysearch" placeholder="Search" required="" value="" title="search"> 353 <input class="submit-search" type="submit" value="Submit"> 354 </form> 355 </div> 356 </div></ul></div> 357 </nav>
358 </div> 359 </div> 360 </div> 361 </section>
362<script> 363/** 364 * Dynamic Navigation Menu with Responsive Overflow 365 * Automatically collapses menu items into a "More..." dropdown on narrow screens 366 */ 367 368(function() { 369 'use strict'; 370 371 // Configuration 372 const CONFIG = { 373 RESERVED_SPACE: 200, 374 BREAKPOINT: 990, 375 DEBOUNCE_DELAY: 0, 376 SELECTOR: { 377 MAIN_MENU: 'ul.nav.navbar-nav.me-auto', 378 DROPDOWN_TOGGLE: '[data-bs-toggle="dropdown"]' 379 }, 380 CLASS: { 381 NAV_ITEM: 'nav-item', 382 NAV_LINK: 'nav-link', 383 DROPDOWN: 'dropdown', 384 DROPDOWN_ITEM: 'dropdown-item', 385 DROPDOWN_MENU: 'dropdown-menu', 386 DROPEND: 'dropend', 387 HIDDEN: 'd-none', 388 PROTECTED: 'jvlmn', 389 REGULAR: 'jvlmnreg', 390 MORE_DROPDOWN: 'more-dropdown', 391 MORE_MENU: 'more-menu' 392 } 393 }; 394 395 // State management 396 let resizeTimer = null; 397 let mainMenu = null; 398 let moreDropdown = null; 399 let moreMenu = null; 400 let hasInitialized = false; // track if init() has run 401 402 /** 403 * Initialize the dynamic menu system 404 */ 405 function init() { 406 try { 407 if (hasInitialized) return; // safety check 408 hasInitialized = true; 409 // Check if dynamic menu is enabled 410 if (!shouldInitialize()) { 411 return; 412 } 413 414 mainMenu = document.querySelector(CONFIG.SELECTOR.MAIN_MENU); 415 416 if (!mainMenu) { 417 console.error('[DynamicMenu] Main menu not found. Selector:', CONFIG.SELECTOR.MAIN_MENU); 418 return; 419 } 420 421 mergeExistingMoreDropdowns(); 422 setupEventListeners(); 423 adjustMenu(); 424 showNavbar(); 425 } catch (error) { 426 console.error('[DynamicMenu] Initialization error:', error); 427 } 428 } 429 430 /** 431 * Show navbar sections on page load 432 */ 433 function showNavbar() { 434 const items = document.querySelectorAll('#JvlNavbarContent .navbar-nav > li'); 435 items.forEach((item, index) => { 436 item.classList.add('show'); 437 }); 438 } 439 440 /** 441 * Find and merge any pre-existing "More..." dropdowns 442 */ 443 function mergeExistingMoreDropdowns() { 444 const existingDropdowns = Array.from(mainMenu.querySelectorAll('li')) 445 .filter(li => li && li.textContent.trim().toLowerCase().startsWith('more...')); 446 447 // Create our consolidated More... dropdown 448 createMoreDropdown(); 449 450 // Merge items from existing dropdowns 451 existingDropdowns.forEach(dropdown => { 452 if (dropdown === moreDropdown) return; 453 454 const items = dropdown.querySelectorAll(`.${CONFIG.CLASS.DROPDOWN_MENU} > li`); 455 items.forEach(item => moreMenu.appendChild(item)); 456 dropdown.remove(); 457 }); 458 } 459 460 /** 461 * Create the More... dropdown element 462 */ 463 function createMoreDropdown() { 464 moreDropdown = document.createElement('li'); 465 moreDropdown.className = `${CONFIG.CLASS.NAV_ITEM} ${CONFIG.CLASS.DROPDOWN} ${CONFIG.CLASS.HIDDEN} ${CONFIG.CLASS.MORE_DROPDOWN}`; 466 moreDropdown.innerHTML = ` 467 <a class="${CONFIG.CLASS.NAV_LINK} dropdown-toggle" href="#" data-bs-toggle="dropdown" data-bs-auto-close="outside" aria-expanded="false"> 468 More... 469 </a> 470 <ul class="${CONFIG.CLASS.DROPDOWN_MENU} ${CONFIG.CLASS.MORE_MENU}"></ul> 471 `; 472 473 moreMenu = moreDropdown.querySelector(`.${CONFIG.CLASS.MORE_MENU}`); 474 mainMenu.appendChild(moreDropdown); 475 } 476 477 /** 478 * Setup nested dropdown handlers for items inside More... 479 */ 480 function setupNestedDropdowns() { 481 if (!moreMenu) return; 482 483 const nestedDropdowns = moreMenu.querySelectorAll(`.${CONFIG.CLASS.DROPDOWN}, .${CONFIG.CLASS.NAV_ITEM}.${CONFIG.CLASS.DROPDOWN}`); 484 485 nestedDropdowns.forEach(dropdown => { 486 const toggle = dropdown.querySelector(CONFIG.SELECTOR.DROPDOWN_TOGGLE); 487 if (!toggle) return; 488 489 // Style adjustments for nested dropdowns 490 if (toggle.classList.contains(CONFIG.CLASS.NAV_LINK)) {
491 toggle.classList.add(CONFIG.CLASS.DROPDOWN_ITEM); 492 } 493 494 const nestedMenu = dropdown.querySelector(`.${CONFIG.CLASS.DROPDOWN_MENU}`); 495 if (nestedMenu) { 496 dropdown.classList.add(CONFIG.CLASS.DROPEND); 497 498 // Style nested menu 499 if (!nestedMenu.hasAttribute('data-styled')) { 500 nestedMenu.style.padding = '0'; 501 nestedMenu.style.position = 'static'; 502 nestedMenu.setAttribute('data-styled', 'true'); 503 } 504 505 // Add classes and indentation to nested items 506 styleNestedItems(nestedMenu); 507 508 // Initialize Bootstrap dropdown 509 initializeBootstrapDropdown(toggle); 510 } 511 }); 512 } 513 514 /** 515 * Style nested menu items with proper classes and indentation 516 */ 517 function styleNestedItems(nestedMenu) { 518 const items = nestedMenu.querySelectorAll('li'); 519 items.forEach(item => { 520 item.classList.add(CONFIG.CLASS.NAV_ITEM, CONFIG.CLASS.REGULAR); 521 }); 522 523 const links = nestedMenu.querySelectorAll(`.${CONFIG.CLASS.DROPDOWN_ITEM}, li > a`); 524 links.forEach(link => { 525 if (!link.hasAttribute('data-indented')) { 526 link.style.setProperty('padding-left', '2rem', 'important'); 527 link.setAttribute('data-indented', 'true'); 528 link.classList.add(CONFIG.CLASS.NAV_LINK); 529 } 530 }); 531 } 532 533 /** 534 * Initialize Bootstrap dropdown instance 535 */ 536 function initializeBootstrapDropdown(toggle) { 537 if (!window.bootstrap?.Dropdown) return; 538 539 try { 540 const existingInstance = bootstrap.Dropdown.getInstance(toggle); 541 if (existingInstance) { 542 existingInstance.dispose(); 543 } 544 545 new bootstrap.Dropdown(toggle, { autoClose: true }); 546 } catch (error) { 547 console.error('[DynamicMenu] Error initializing Bootstrap dropdown:', error); 548 } 549 } 550 551 /** 552 * Restore item to its original state when moving out of More... 553 */ 554 function restoreItemState(item) { 555 if (!item.classList) return; 556 557 item.classList.remove(CONFIG.CLASS.DROPEND); 558 item.classList.add(CONFIG.CLASS.NAV_ITEM); 559 560 // Restore dropdown toggle classes 561 const toggle = item.querySelector(CONFIG.SELECTOR.DROPDOWN_TOGGLE); 562 if (toggle?.classList.contains(CONFIG.CLASS.DROPDOWN_ITEM)) { 563 toggle.classList.remove(CONFIG.CLASS.DROPDOWN_ITEM); 564 } 565 566 // Remove nested dropdown styling 567 const nestedMenu = item.querySelector(`.${CONFIG.CLASS.DROPDOWN_MENU}`); 568 if (nestedMenu?.hasAttribute('data-styled')) { 569 nestedMenu.removeAttribute('style'); 570 nestedMenu.removeAttribute('data-styled'); 571 572 const nestedItems = nestedMenu.querySelectorAll('[data-indented="true"]'); 573 nestedItems.forEach(link => { 574 link.style.paddingLeft = ''; 575 link.removeAttribute('data-indented'); 576 }); 577 } 578 } 579 580 /** 581 * Move all items from More... back to main menu 582 */ 583 function moveItemsBackToMainMenu() { 584 while (moreMenu.firstChild) { 585 const child = moreMenu.firstChild; 586 restoreItemState(child); 587 mainMenu.insertBefore(child, moreDropdown); 588 } 589 } 590 591 /** 592 * Prepare item for insertion into More... dropdown 593 */ 594 function prepareItemForMore(item) { 595 item.classList.add(CONFIG.CLASS.NAV_ITEM, CONFIG.CLASS.REGULAR); 596 597 const link = item.querySelector('a'); 598 if (link && !link.classList.contains(CONFIG.CLASS.NAV_LINK)) { 599 link.classList.add(CONFIG.CLASS.NAV_LINK); 600 } 601 } 602 603 /** 604 * Main adjustment logic - handles menu overflow 605 */ 606 function adjustMenu() { 607 if (!mainMenu || !moreDropdown || !moreMenu) return; 608 609 // Reset: move everything back 610 moveItemsBackToMainMenu();
611 moreDropdown.classList.add(CONFIG.CLASS.HIDDEN); 612 613 // Only apply overflow logic on desktop 614 if (window.innerWidth <= CONFIG.BREAKPOINT) return; 615 616 const containerWidth = mainMenu.parentElement.offsetWidth; 617 const items = Array.from(mainMenu.children).filter(li => li !== moreDropdown); 618 619 let usedWidth = 0; 620 let overflowIndex = -1; // BEFORE 11-19-2025: -1 621 622 // Find overflow point 623 for (let i = 0; i < items.length; i++) { 624 usedWidth += items[i].offsetWidth; 625 626 if (usedWidth > containerWidth - CONFIG.RESERVED_SPACE) { 627 overflowIndex = i; // BEFORE 11-19-2025: i - 1 628 break; 629 } 630 } 631 632 // Move overflowing items to More... 633 if (overflowIndex >= 0) { 634 for (let i = items.length - 1; i >= overflowIndex; i--) { 635 const item = items[i]; 636 637 // Skip protected items 638 if (item.classList.contains(CONFIG.CLASS.PROTECTED)) continue; 639 640 prepareItemForMore(item); 641 moreMenu.insertBefore(item, moreMenu.firstChild); 642 } 643 644 if (moreMenu.children.length > 0) { 645 moreDropdown.classList.remove(CONFIG.CLASS.HIDDEN); 646 setupNestedDropdowns(); 647 } 648 } 649 } 650 651 /** 652 * Debounced resize handler 653 */ 654 function handleResize() { 655 clearTimeout(resizeTimer); 656 resizeTimer = setTimeout(adjustMenu, CONFIG.DEBOUNCE_DELAY); 657 } 658 659 /** 660 * Setup event listeners 661 */ 662 function setupEventListeners() { 663 window.addEventListener('resize', handleResize); 664 } 665 666 /** 667 * Cleanup function for proper teardown 668 */ 669 function destroy() { 670 window.removeEventListener('resize', handleResize); 671 clearTimeout(resizeTimer); 672 } 673 674 /** 675 * Check if dynamic menu is enabled via global variable 676 */ 677 function shouldInitialize() { 678 return typeof dynamicMenu !== 'undefined' && dynamicMenu === true; 679 } 680 681 /** 682 // Initialize when DOM is ready 683 if (document.readyState === 'loading') { 684 document.addEventListener('DOMContentLoaded', init); 685 } else { 686 init(); 687 } 688 */ 689 690 /* ADDED 12-4-2025 */ 691 if (window.innerWidth > CONFIG.BREAKPOINT){ 692 init(); 693 } else { 694 showNavbar(); 695 } 696 697 // Listen for resize 698 window.addEventListener('resize', () => { 699 if (!hasInitialized && window.innerWidth > CONFIG.BREAKPOINT) { 700 init(); // run once when crossing above breakpoint 701 } 702 }); 703 704})(); 705</script>
705 706 707 <section class="head-info"> 708 <div class="container"> 709 <div class="row"> 710 <div class="col-8"> 711 712 </div> 713 <div class="col-4 text-right"> 714 715 <!--<a href="javascript:;" class="primary-btn">e-Edition</a>--> 716 </div> 717 </div> 718 </div> 719 </section><section class="main-dt"> 720 <div class="container"> 721 <div class="row"> 722 <div class="col-lg-9 col-md-8 lft"><div class="news-breaking-info"> 723 <div class="style-head style-head-new bg-tp bd-none"><h1 class="small_h1_font">Contact Blackfoot Valley Dispatch</h1> 724 725 <p style="padding-top:30px;">We value your questions and comments, so please feel free to contact us.</p> 726</div> 727<form method='post' ACTION='https://www.blackfootvalleydispatch.com/cgi-bin/htmlos.cgi/00421.1.1071060129017084564/contact' NAME='contactpg_ovrly' ID='contactpg_ovrly' class="frmflds"> 728 729 730<div class="subs_mailing_add"> 731<h3 class="h3bl">Contact Information</h3> 732<label for="name">Name<em>*</em></label> <input id="name" type=text name=contactname title="contactname" class="frmflds" VALUE=""> 733<label for="email">E-mail<em>*</em></label> <input id="email" type=text name=emailaddy title="email" class="frmflds" VALUE=""> 734<label for="phone">Phone<em>*</em></label> <input id="phone" type=text name=phonenumber title="phonenumber" class="frmflds" VALUE=""> 735<label for "topic">Topic<em>*</em></label><select name="topic" size=1 title="topic" class="sel_bkg_fff frmflds"> <option value="" selected>Please select...</option> 736 <option value='advertisingq'>Advertising question</option><option value='bizdirectoryq'>Business Directory question</option><option value='classifiedsq'>Classifieds question</option> 737 <option value='subscriptionq'>Subscription question</option> 738 <option value='webmasterq'>Webmaster question</option> 739 <option value='publisherq'>Publisher question</option> 740 <option value='billingq'>Billing question</option> 741 <option value='editorialq'>Editorial question or news item</option> 742 <option value='pressreleaseq'>Submit press release</option> 743 <option value='pressreleaseq'>Submit event to events calendar</option> 744 <option value='suggestionq'>Suggestion</option> 745 <option value='suggestionq_other'>Other</option> 746 </select> 747<label for="topic">Comments, question or news item <span class="text-secondary">—<input readonly type="text" name=RemLength class="RemLength text-secondary" title="remaining length" size="4" value="5000" style="background-color:#fff;border:0;text-align:right;"> characters left</span></label> <TEXTAREA id="topic" name=comments title="comments" class="frmflds" wrap="soft" onKeyDown="textCounter(this.form.comments,this.form.RemLength,5000);" onKeyUp="textCounter(this.form.comments,this.form.RemLength,5000);"></TEXTAREA> 748 749<div style="text-align:center;"><br> 750 751 <div class="g-recaptcha" data-sitekey="6LdwUlcmAAAAAA4L9h4Fec0FdntCMqj5jXm7VI5r" data-badge="inl
751ine" data-size="invisible" data-callback="setResponse" style="width:256px;margin:0 auto;"></div> 752 <input type="hidden" id="captresp" name="captresp" /><br><br> 753 754 <input type="hidden" name="mybutton" value="Submit"> 755 <input type="submit" value="Submit" id="submitbutton" class="cartbtnblack cartbtnblue"> 756 757</div><br> 758 759<INPUT TYPE="HIDDEN" NAME="AESTIVACVNLIST" VALUE="topic"></form></div></div> 760 </div> 761 <!--BEGIN SIDEBAR CONTENT AREA--> 762 <div class="col-lg-3 col-md-4 rht"><br><img src='/home/cms_data/dfault/images/phone-lady-photo.jpg' class='hover-img' alt=''><br><br><p class="font-weight-bold"> 763Phone: <span style="font-weight: normal;">(406) 362-4131</span><br> 764Email: <span style="font-weight: normal;"><a href="/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="137a7d757c53717f727078757c7c6765727f7f766a777a60637267707b3d707c7e">[email protected]</a></span> 765</p> 766 767<p class="font-weight-bold"> 768Mailing address:<br> 769<span style="font-weight: normal;">Blackfoot Valley Dispatch<br> 770P.O. Box 427<br> 771Lincoln, MT 59639</span> 772</p> 773 774<p class="font-weight-bold"> 775Physical address:<br> 776<span style="font-weight: normal;">Blackfoot Valley Dispatch<br> 777506 Main St.<br> 778Lincoln, MT 59639</span> 779</p> 780 781<p class="font-weight-bold"> 782Hours of operation: <span style="font-weight: normal;">9am - 5pm Mon-Thurs, Always on call!</span> 783</p><br> 784 <!--END SIDEBAR CONTENT AREA--> 785 </div> 786 </div> 787 <div class="row"> 788 789 </div> 790 </div> 791 </section> 792 <footer class="footer"> 793 <div class="container"> 794 <div class="row"> 795 <div class="col-sm-12"> 796 <hr class="top"> 797 </div> 798 </div> 799 <div class="row"> 800 <div class="col-sm-7 bdr-rft"> 801 <div class="row"> 802 <div class="col-sm-4"> 803 <h3>Sections</h3> 804 <ul><li><a href='https://www.blackfootvalleydispatch.com/section/news' aria-label="Section link" class="author-blue">News</a></li><li><a href='https://www.blackfootvalleydispatch.com/section/community' aria-label="Section link" class="author-blue">Community</a></li><li><a href='https://www.blackfootvalleydispatch.com/section/outdoors' aria-label="Section link" class="author-blue">Outdoors</a></li><li><a href='https://www.blackfootvalleydispatch.com/section/viewpoints' aria-label="Section link" class="author-blue">Viewpoints</a></li><li><a href='https://www.blackfootvalleydispatch.com/section/obits' aria-label="Section link" class="author-blue">Obits</a></li><li><a href='https://www.blackfootvalleydispatch.com/section/calendar' aria-label="Section link" class="author-blue">Calendar</a></li> 805 </ul> 806 </div> 807 <div class="col-sm-4"> 808 <h3>Newspaper</h3> 809 <ul> 810 <li><a href="https://www.blackfootvalleydispatch.com/contact" >Contact</a></li><li><a href="https://www.blackfootvalleydispatch.com/register" >Register</a></li><li><a href="https://www.blackfootvalleydispatch.com/about" >About</a></li><li><a href="https://www.blackfootvalleydispatch.com/photos" >Photos</a></li> 811 </ul> 812 </div> 813 <div class="col-sm-4"> 814 <h3>Website</h3> 815 <ul> 816 <li><a href="https://www.blackfootvalleydispatch.com/terms" >Terms of Use</a></li><li><a href="https://www.blackfootvalleydispatch.com/privacy" >Privacy Policy</a></li><li><a href="https://www.blackfootvalleydispatch.com/sitemap_index.xml" target="_blank">Sitemap</a></li><li><span></span></li><li><span>*By using this website, you agree to our <a href="https://www.blackfootvalleydispatch.com/privacy">Privacy Policy</a> and <a href="https://www.blackfootvalleydispatch.com/terms">Terms</a>.</span></li> 817 </ul> 818 </div> 819 </div> 820 </div> 821 <div class="col-sm-5 ext-space"> 822 <div class="row"> 823 <div class="col-sm-8"> 824 <h3>Connect With Us</h3> 825 <ul> 826 <li><span>P.O. Box 427</span></li><li><span>Lincoln, MT 59639</span></li><li><span>Ph: (406) 362-4131</span></li><li><span><li><span>© 2026 Blackfoot Valley Dispatch</span></li></span></li> </ul> 827 </div> 828 <div class="col-sm-4"> 829 <h3 class="mbpx-3">Follow Us</h3> 830 <ul class="social"><li class="nav-item jvlmn">
830<a href="https://www.facebook.com/BlackfootValleyDispatch" target="n/a"><i class='fa-brands fa-facebook-f' aria-hidden='true'></i></a></li></ul> 831 832 <h3 class="mbpx-3">RSS</h3> 833 <ul class="social"><li class="nav-item jvlmn"><a href="https://www.blackfootvalleydispatch.com/rss" target="n/a"><i class='fa fa-rss' aria-hidden='true'></i></a></li></ul> 834 </div> 835 </div> 836 </div> 837 </div> 838 <div class="row"> 839 <div class="col-sm-12"> 840 <hr> 841 </div> 842 </div> 843 <div class="row"> 844 <div class="col-sm-12"> 845 <p class="copy">Powered by <strong><a href="http://www.lionslight.com" target="_blank">ROAR Online Publication Software</a></strong> from Lions Light Corporation<br /> 846 © Copyright 2026</p> 847 </div> 848 </div> 849 </div> 850 851</footer>
vendor: 109 bytes, lines 851-852
851 852<script data-cfasync="false" src="/cdn-cgi/scripts/5c5dd728/cloudflare-static/email-decode.min.js"></script>
vendor: 98 bytes, line 852
852<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback" async defer></script>
853<script> 854 var form = document.getElementById("contactpg_ovrly"); 855 856 var onloadCallback = function () { 857 form.addEventListener("submit", function (event) { 858 event.preventDefault(); 859 grecaptcha.execute(); 860 }); 861 }; 862 863 function setResponse(response) { 864 document.getElementById("captresp").value = response; 865 $("#contactpg_ovrly").submit(); 866 } 867</script>
867 868 869
870<script> 871 872 873$(".more_stories_toggle").click(function () { 874 this.style.margin = "0"; 875 $more_stories_toggle = $(this); 876 $more_stories_list = $more_stories_toggle.next(); //getting the next element 877 878// $more_stories_list.slideToggle("slow", function () { //open up the content needed - toggle the slide- if visible, slide up, if not slidedown. 879 880 $more_stories_toggle.text(function () { //execute this after slideToggle is done; change text of header based on visibility of content div 881 882 return $more_stories_list.is(":visible") ? "+ More Stories" : "- More Stories"; //change text based on condition 883 }); 884// }); 885}); 886 887 888 889$( ".print_sub_container" ).click(function() { 890 $( ".print_sub_content" ).slideToggle( 500, function() { 891 // Animation complete. 892 }); 893}); 894 895</script>
vendor: 1 bytes, line 895
895
896<script src="/ASSET/1614x19474/XPATH/cms/website_specifics/monarch.js"></script>
vendor: 1 bytes, line 896
896
897<script src="/ASSET/1014x23108/XPATH/cms/website_specifics/monarch_bootstrap.js"></script>
897 898 899 <!-- <br><small>live</small> (Desktop|paywallerror|error) --> 900
900<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"602c9d0c64cc46f48dc2d6c960f5d046","r":1,"spa":2}' crossorigin="anonymous"></script>
900 901</body> 902 903 904</html>
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.