PageSourceSearch

https://www.cityofharlan.com/vnotifier/?page=listmessages&group_id=

html cityofharlan.com collected 2026-10-02 12:59:52 UTC 53,429 bytes, 928 lines download raw bytes

1
2
3<!doctype html><html class="no-js" lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"><meta property="og:type" content="website" /><meta property="og:title" content="City of Harlan"/><meta property="og:image" content="https://www.cityofharlan.com/opengraph.png?v=180717" />
4<title>City of Harlan</title><style>
5    table.socs-accordion-builder {
6    display: none !important;
7  }
8
9  
10      .panel-group.socs-accordion-builder > .panel {
11      overflow: hidden;
12    }
13    .panel-group.socs-accordion-builder [data-toggle="collapse"] {
14      display: block;
15      text-decoration: none !important;
16    }
17    .panel-group.socs-accordion-builder [data-toggle="collapse"] > span {
18      font-size: 85%;
19      font-style: italic;
20      margin-left: 1em;
21    }
22    .panel-group.socs-accordion-builder .sab-toggle-indicator {
23      float: left;
24      margin-right: 20px;
25    }
26        .panel-group.socs-accordion-builder .list-group-flush {
27      border-radius: 0;
28      margin-bottom: 0;
29    }
30    .panel-group.socs-accordion-builder .list-group-flush > .list-group-item {
31      border-width: 0 0 1px;
32      margin-bottom: 0;
33    }
34    .panel-group.socs-accordion-builder .list-group-flush > .list-group-item:last-child {
35      border-bottom-width: 0;
36    }
37  </style>
38<link rel="preconnect" href="https://fonts.gstatic.com/" crossorigin><link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Libre+Baskerville:400,400i,700">
39<link rel="stylesheet" href="/css/backend/fontawesome/6.5.2-pro/css/all.min.css">
40<link rel="stylesheet" href="/css/L17/subPage.min.css?v=230921"><link rel="stylesheet" href="/css/L17/navStyle2.min.css?v=230921">
40<script src="/javascripts/modernizr/modernizr-custom-3.6.0.js"></script>
40
41  
41<script src="/javascripts/jquery/jquery-3.7.1.min.js"></script>
41<link rel="stylesheet" href="/javascripts/bxslider/4.2.15/dist/jquery.bxslider.css">
42<script src="/javascripts/bxslider/4.2.15/dist/jquery.bxslider.min.js"></script>
vendor: 1 bytes, line 42
42
43<script type="text/javascript">var socsSignedIn = 0;</script>
43<script src="/javascripts/min/L17/L17-head.min.js"></script>
43<link rel="stylesheet" href="/javascripts/addtohomescreen/addtohomescreen.min.css">
43<script src="/javascripts/addtohomescreen/addtohomescreen.min.js"></script>
43<script>
44    ;(function($) {
45      'use strict';
46      addToHomescreen({
47        skipFirstVisit: false,
48        maxDisplayCount: 1,
49        lifespan: 0
50      });
51    })(jQuery);
52    </script>
52<script type="text/javascript">
53var display_private_sections = 0;
54var allowed_section_ids = ""
55</script>
55<script>
56  var _gaq = _gaq || [], tempOStype = "n/a";
57
58      var val = Cookies.get('socsapp');
59    tempOStype = (val == undefined) ? 'no' : val;
60
61  _gaq.push(
62    ['_setCustomVar',1,'siteURL','https://cityofharlan.socs.net'],
63    ['_setCustomVar',2,'template','L17'],
64    ['_setCustomVar',3,'protocol',document.location.protocol],
65    ['_setCustomVar',4,'socsApp',tempOStype],
66    ['_setAccount', 'UA-36782344-1'],
67    ['_trackPageview'],
68    ['_deleteCustomVar',1],
69    ['_deleteCustomVar',2],
70    ['_deleteCustomVar',3],
71    ['_deleteCustomVar',4]
72    );
73
74  (function() {
75    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
76    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
77    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
78  })();
79
80</script>
80
81</head>
82
83<body class="ns2 sub-page body-masthead-style-3 fluid-jumbotron "><div class="sr-only">Quick Links</div><a class="sr-only sr-only-focusable" href="#mainContent" title="Skips to the main content.">Skip to main content</a><a class="sr-only sr-only-focusable" href="#navigation" title="Skips to the main menu.">Skip to navigation</a>
84<div class="container-masthead"><div class="container"><div class="masthead-print visible-print-block"><h2>City of Harlan</h2></div><div class="masthead-style-3 hidden-print clearfix"><div class="weather extra-links hidden-xs"><ul class="ns2-menu-wrapper"></ul>
85<div class="weather-forecast"><div class="wForecast"><em>Current conditions as of 2 Oct 07:35 am CDT</em><h3>Fair</h3><table><tbody><tr><td class="stats"><dl><dt>Location:</dt><dd>Harlan</dd><dt>Feels like:</dt><dd>NA&deg</dd><dt>Humidity:</dt><dd>100</dd><dt>Wind:</dt><dd>N 0 mph</dd></dl></td><td class="weatherForecastGraphic"><img src="https://forecast.weather.gov/newimages/medium/sct.png" alt="Fair"></td><td class="weatherForecastTemp">41&deg;</td></tr></tbody></table><div class="today textforecast"><div class="textforecast-title">Today</div><div>Sunny, with a high near 62. North northeast wind around 6 mph becoming light and variable  in the afternoon. </div></div><div class="today textforecast"><div class="textforecast-title">Tonight</div><div>Clear, with a low around 44. Light south southeast wind. </div></div><div class="today textforecast"><div class="textforecast-title">Saturday</div><div>Sunny, with a high near 66. South wind 6 to 11 mph, with gusts as high as 20 mph. </div></div><div class="provider">Weather forecast provided by weather.gov.</div></div></div>
86<script>
87;(function($){
88  'use strict';
89  $(function() {
90
91          if ($('.weather > .weather-link').length == 0) {
92        // Create the HTML for the weather and setup the hover events
93        if ($('.weather > .ns2-menu-wrapper').length) {
94          $('.weather > .ns2-menu-wrapper').after('<a class="weather-link" href="http://forecast.weather.gov/MapClick.php?lat=41.6760825&lon=-95.3520876" rel="noopener" target="_blank">41&deg; <em class="fa fa-angle-down"><\/em><\/a>');
95        } else {
96          $('.weather').prepend('<a class="weather-link" href="http://forecast.weather.gov/MapClick.php?lat=41.6760825&lon=-95.3520876" rel="noopener" target="_blank">41&deg; <em class="fa fa-angle-down"><\/em><\/a>');
97        }
98      }
99
100      if ($('html').hasClass('no-touchevents')) {
101        $('.weather-link').hover(function(e) {
102          $(this).next().addClass('show-weather-forecast');
103        }, function(e) {
104          $(this).next().removeClass('show-weather-forecast');
105        });
106      }
107
108            $('.textforecast').each(function() {
109        if ($.trim($(this).text()).length === 0) $(this).css('display', 'none');
110      });
111
112    
113  });
114})(jQuery);
115</script>
115
116<a class="socs-sign-in-link" href="/vcalendar/?FROMPAGE=Nav_Signin" title="Sign In"><em class="fas fa-sign-in fa-lg fa-fw"></em><em class="sr-only">Sign In Link</em></a></div>
116<script>;(function($){'use strict';var parent = '.masthead-style-3';
117  // Change Sign In to Sign Out IF user is signed in
118  if (socsSignedIn) {
119    $('.socs-sign-in-link').replaceWith('<a href="/vcalendar/?FROMPAGE=Nav_Signout" title="Sign Out - signed in as ' + socsUserFullName + '"><em class="fas fa-sign-out fa-lg fa-fw"></em><em class="sr-only">Sign Out</em></a>');
120  }
121
122  // Search Icon - toggle search field
123  $(parent + ' .icon-search').on('click', function(e) {
124    e.preventDefault();
125    var $sh = $('.search-header');
126    if ($sh.hasClass('show-search')) {
127      $('#Fkeywords').blur();
128      $sh.removeClass('show-search');
129    } else {
130      $('#Fkeywords').focus();
131      $sh.addClass('show-search');
132    }
133  });
134
135})(jQuery);
136</script>
136
137</div>
138</div></div><div class="container-nav"><div class="container"><div class="hidden"><a name="navigation"></a>Main Navigation</div><nav class="navbar navbar-default" role="navigation"><div class="container-fluid"><div class="navbar-header"><button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar"><span class="sr-only">Toggle navigation</span><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button><div class="weather extra-links"><ul class="ns2-menu-wrapper"></ul><div class="weather-forecast"><div class="wForecast"><em>Current conditions as of 2 Oct 07:35 am CDT</em><h3>Fair</h3><table><tbody><tr><td class="stats"><dl><dt>Location:</dt><dd>Harlan</dd><dt>Feels like:</dt><dd>NA&deg</dd><dt>Humidity:</dt><dd>100</dd><dt>Wind:</dt><dd>N 0 mph</dd></dl></td><td class="weatherForecastGraphic"><img src="https://forecast.weather.gov/newimages/medium/sct.png" alt="Fair"></td><td class="weatherForecastTemp">41&deg;</td></tr></tbody></table><div class="today textforecast"><div class="textforecast-title">Today</div><div>Sunny, with a high near 62. North northeast wind around 6 mph becoming light and variable  in the afternoon. </div></div><div class="today textforecast"><div class="textforecast-title">Tonight</div><div>Clear, with a low around 44. Light south southeast wind. </div></div><div class="today textforecast"><div class="textforecast-title">Saturday</div><div>Sunny, with a high near 66. South wind 6 to 11 mph, with gusts as high as 20 mph. </div></div><div class="provider">Weather forecast provided by weather.gov.</div></div></div>
139<script>
140;(function($){
141  'use strict';
142  $(function() {
143
144          if ($('.weather > .weather-link').length == 0) {
145        // Create the HTML for the weather and setup the hover events
146        if ($('.weather > .ns2-menu-wrapper').length) {
147          $('.weather > .ns2-menu-wrapper').after('<a class="weather-link" href="http://forecast.weather.gov/MapClick.php?lat=41.6760825&lon=-95.3520876" rel="noopener" target="_blank">41&deg; <em class="fa fa-angle-down"><\/em><\/a>');
148        } else {
149          $('.weather').prepend('<a class="weather-link" href="http://forecast.weather.gov/MapClick.php?lat=41.6760825&lon=-95.3520876" rel="noopener" target="_blank">41&deg; <em class="fa fa-angle-down"><\/em><\/a>');
150        }
151      }
152
153      if ($('html').hasClass('no-touchevents')) {
154        $('.weather-link').hover(function(e) {
155          $(this).next().addClass('show-weather-forecast');
156        }, function(e) {
157          $(this).next().removeClass('show-weather-forecast');
158        });
159      }
160
161            $('.textforecast').each(function() {
162        if ($.trim($(this).text()).length === 0) $(this).css('display', 'none');
163      });
164
165    
166  });
167})(jQuery);
168</script>
168
169<a class="socs-sign-in-link" href="/vcalendar/?FROMPAGE=Nav_Signin" title="Sign In"><em class="fas fa-sign-in fa-lg fa-fw"></em><em class="sr-only">Sign In Link</em></a></div>
169<script>;(function($){'use strict';var parent = '.navbar-header';
170  // Change Sign In to Sign Out IF user is signed in
171  if (socsSignedIn) {
172    $('.socs-sign-in-link').replaceWith('<a href="/vcalendar/?FROMPAGE=Nav_Signout" title="Sign Out - signed in as ' + socsUserFullName + '"><em class="fas fa-sign-out fa-lg fa-fw"></em><em class="sr-only">Sign Out</em></a>');
173  }
174
175  // Search Icon - toggle search field
176  $(parent + ' .icon-search').on('click', function(e) {
177    e.preventDefault();
178    var $sh = $('.search-header');
179    if ($sh.hasClass('show-search')) {
180      $('#Fkeywords').blur();
181      $sh.removeClass('show-search');
182    } else {
183      $('#Fkeywords').focus();
184      $sh.addClass('show-search');
185    }
186  });
187
188})(jQuery);
189</script>
189
190</div><div id="navbar" class="navbar-collapse collapse"><ul class="nav navbar-nav"><li><a href="/" accesskey="1" title="Home Link"><em class="fa fa-home fa-lg fa-fw" style="margin-right: 0.5em;"></em>Home</a></li>
190<script>
191    if (Cookies.get('device_uuid')) document.write('<li><a href=' +
192      '"/vnotifier/?page=setupnotifications' +
193      '&backUrl=' + encodeURIComponent(window.location.href) +
194      '&device_uuid=' + Cookies.get('device_uuid') + '">' +
195      '<em class="fa fa-cog fa-lg fa-fw"></em><span class="hidden-sm hidden-md hidden-lg">Settings</span></a></li>');
196  </script>
196<li><a href="https://www.elocallink.tv/m/v/Redesign4/?pid=w2wzy5x3&fp=iahar24_wel_rev_iwd" target="_blank">Welcome to Harlan - Video Tour</a></li><li class="dropdown socs-no-mm "><a href="/vnews/display.v/SEC/General">General</a><a href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" aria-label="Toggle Dropdown"><em class="fas fa-caret-down" aria-hidden="true"></em></a><ul class="dropdown-menu dropdown-menu-with-lines "><li><a href="/vnews/display.v/SEC/General%7CAbout%20Us"><em class="sr-only">General - </em>About Us</a></li><li><a href="/vnews/display.v/SEC/General%7CMayor/City%20Council%20Members"><em class="sr-only">General - </em>Mayor/City Council Members</a></li><li><a href="/vnews/display.v/SEC/General%7CAdministration"><em class="sr-only">General - </em>Administration</a></li><li class="dropdown-submenu  "><a href="/vnews/display.v/SEC/General%7CCouncil%20Agenda%20%26%20Minutes"><em class="sr-only">General - </em>Council Agenda & Minutes</a><a class="submenu-toggle" href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Toggle Dropdown"><em class="fas fa-caret-down" aria-hidden="true"></em></a><ul class="dropdown-menu dropdown-menu-with-lines  "><li><a href="/vnews/display.v/SEC/General%7CCouncil%20Agenda%20%26%20Minutes%3E%3EPrevious%20Council%20Minutes"><em class="sr-only">General - Council Agenda & Minutes - </em>Previous Council Minutes</a></li><li><a href="/vnews/display.v/SEC/General%7CCouncil%20Agenda%20%26%20Minutes%3E%3EOther%20Committee%20Minutes"><em class="sr-only">General - Council Agenda & Minutes - </em>Other Committee Minutes</a></li><li><a href="/vnews/display.v/SEC/General%7CCouncil%20Agenda%20%26%20Minutes%3E%3EPrevious%20Committee%20Minutes"><em class="sr-only">General - Council Agenda & Minutes - </em>Previous Committee Minutes</a></li></ul></li><li><a href="/vnews/display.v/SEC/General%7CBoards%20%26%20Commission%20Members"><em class="sr-only">General - </em>Boards & Commission Members</a></li><li><a href="/vnews/display.v/SEC/General%7CEmployment%20Opportunities"><em class="sr-only">General - </em>Employment Opportunities</a></li></ul></li><li class="dropdown socs-no-mm "><a href="/vnews/display.v/SEC/Departments%20%26%20Services">Departments & Services</a><a href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" aria-label="Toggle Dropdown"><em class="fas fa-caret-down" aria-hidden="true"></em></a><ul class="dropdown-menu dropdown-menu-with-lines "><li><a href="/vnews/display.v/SEC/Departments%20%26%20Services%7CC.G.%20Therkildsen%20Activity%20Center"><em class="sr-only">Departments & Services - </em>C.G. Therkildsen Activity Center</a></li><li><a href="/vnews/display.v/SEC/Departments%20%26%20Services%7CCity%20Hall"><em class="sr-only">Departments & Services - </em>City Hall</a></li><li><a href="/vnews/display.v/SEC/Departments%20%26%20Services%7CFire%20Department"><em class="sr-only">Departments & Services - </em>Fire Department</a></li><li><a href="https://www.harlan.lib.ia.us/" target="_blank"><em class="sr-only">Departments & Services - </em>Library</a></li><li><a href="/vnews/display.v/SEC/Departments%20%26%20Services%7CMunicipal%20Airport"><em class="sr-only">Departments & Services - </em>Municipal Airport</a></li><li><a href="/vnews/display.v/SEC/Departments%20%26%20Services%7CParks%20and%20Recreation"><em class="sr-only">Departments & Services - </em>Parks and Recreation</a></li><li><a href="/vnews/display.v/SEC/Departments%20%26%20Services%7CStreet%20Department"><em class="sr-only">Departments & Services - </em>Street Department</a></li><li><a href="/vnews/display.v/SEC/Departments%20%26%20Services%7CVeteran%27s%20Memorial%20Auditorium"><em class="sr-only">Departments & Services - </em>Veteran's Memorial Auditorium</a></li><li><a href="/vnews/display.v/SEC/Departments%20%26%20Services%7CWastewater%20Treatment%20Plant"><em class="sr-only">Departments & Services - </em>Wastewater Treatment Plant</a></li><li><a href="/vnews/display.v/SEC/Departments%20%26%20Services%7CYard%20Waste%20Site"><em class="sr-only">Departments & Services - </em>Yard Waste Site</a></li></ul></li><li class="dropdown socs-no-mm "><a href="/vnews/display.v/SEC/Codes%2C%20Permits%20%26%20Licenses">Codes, Permits & Licenses</a><a href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" aria-label="Toggle Dropdown"><em class="fas fa-caret-down" aria-hidden="true"></em></a><ul class="dropdown-menu dropdown-menu-with-lines "><li><a href="/vnews/display.v/SEC/Codes%2C%20Permits%20%26%20Licenses%7CCity%20Code"><em class="sr-only">Codes, Permits & Licenses - </em>City Code</a></li><li><a href="/vnews/display.v/SEC/Codes%2C%20Permits%20%26%20Licenses%7CPermits"><em class="sr-only">Codes, Permits & Licenses - </em>Permits</a></li><li><a href="/vnews/display.v/SEC/Codes%2C%20Permits%20%26%20Licenses%7CAnimal%20Control%20%26%20Licensing"><em class="sr-only">Codes, Permits & Licenses - </em>Animal Control & Licensing</a></li><li><a href="/vnews/display.v/SEC/Codes%2C%20Permits%20%26%20Licenses%7CHome%20Business%20Licensing"><em class="sr-only">Codes, Permits & Licenses - </em>Home Business Licensing</a></li></ul></li><li class="dropdown socs-no-mm "><a href="/vnews/display.v/SEC/Community">Community</a><a href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" aria-label="Toggle Dropdown"><em class="fas fa-caret-down" aria-hidden="true"></em></a><ul class="dropdown-menu dropdown-menu-with-lines "><li><a href="/vnews/display.v/SEC/Community%7CCommunity%20Links"><em class="sr-only">Community - </em>Community Links</a></li><li><a href="/vnews/display.v/SEC/Community%7CHousing"><em class="sr-only">Community - </em>Housing</a></li><li><a href="/vnews/display.v/SEC/Community%7CMaps"><em class="sr-only">Community - </em>Maps</a></li></ul></li><li><a href="/vnews/display.v/SEC/Harlan%20Public%20Notices%20%26%20Forms">Harlan Public Notices & Forms</a></li><li class="dropdown socs-no-mm "><a href="/vnews/display.v/SEC/RAGBRAI">RAGBRAI</a><a href="#" role="button" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false" aria-label="Toggle Dropdown"><em class="fas fa-caret-down" aria-hidden="true"></em></a><ul class="dropdown-menu dropdown-menu-with-lines "><li class="dropdown-submenu  "><a href="/vnews/display.v/SEC/RAGBRAI%7CRAGBRAI%20LIII%202026"><em class="sr-only">RAGBRAI - </em>RAGBRAI LIII 2026</a><a class="submenu-toggle" href="#" role="button" aria-haspopup="true" aria-expanded="false" aria-label="Toggle Dropdown"><em class="fas fa-caret-down" aria-hidden="true"></em></a><ul class="dropdown-menu dropdown-menu-with-lines  "><li><a href="/vnews/display.v/SEC/RAGBRAI%7CRAGBRAI%20LIII%202026%3E%3EColoring%20Contest"><em class="sr-only">RAGBRAI - RAGBRAI LIII 2026 - </em>Coloring Contest</a></li><li><a href="/vnews/display.v/SEC/RAGBRAI%7CRAGBRAI%20LIII%202026%3E%3EFAQs"><em class="sr-only">RAGBRAI - RAGBRAI LIII 2026 - </em>FAQs</a></li><li><a href="/vnews/display.v/SEC/RAGBRAI%7CRAGBRAI%20LIII%202026%3E%3EFundraising"><em class="sr-only">RAGBRAI - RAGBRAI LIII 2026 - </em>Fundraising</a></li><li><a href="/vnews/display.v/SEC/RAGBRAI%7CRAGBRAI%20LIII%202026%3E%3EMaps"><em class="sr-only">RAGBRAI - RAGBRAI LIII 2026 - </em>Maps</a></li><li><a href="/vnews/display.v/SEC/RAGBRAI%7CRAGBRAI%20LIII%202026%3E%3EVolunteers"><em class="sr-only">RAGBRAI - RAGBRAI LIII 2026 - </em>Volunteers</a></li><li><a href="/vnews/display.v/SEC/RAGBRAI%7CRAGBRAI%20LIII%202026%3E%3EHousing"><em class="sr-only">RAGBRAI - RAGBRAI LIII 2026 - </em>Housing</a></li><li><a href="/vnews/display.v/SEC/RAGBRAI%7CRAGBRAI%20LIII%202026%3E%3EVendors"><em class="sr-only">RAGBRAI - RAGBRAI LIII 2026 - </em>Vendors</a></li><li><a href="/vnews/display.v/SEC/RAGBRAI%7CRAGBRAI%20LIII%202026%3E%3EEntertainment"><em class="sr-only">RAGBRAI - RAGBRAI LIII 2026 - </em>Entertainment</a></li><li><a href="/vnews/display.v/SEC/RAGBRAI%7CRAGBRAI%20LIII%202026%3E%3EMerch"><em class="sr-only">RAGBRAI - RAGBRAI LIII 2026 - </em>Merch</a></li><li><a href="/vnews/display.v/SEC/RAGBRAI%7CRAGBRAI%20LIII%202026%3E%3ESponsorship"><em class="sr-only">RAGBRAI - RAGBRAI LIII 2026 - </em>Sponsorship</a></li></ul></li></ul></li>            </ul><input type="hidden" id="megaMenuMin" name="megaMenuMin" value="20"><input type="hidden" id="megaMenuMax" name="megaMenuMax" value="30"><input type="hidden" id="seeMoreNumber" name="seeMoreNumber" value="5"></div></div></nav>
197
198<script>
199;(function() { 'use strict';
200  const path = window.location.pathname, page = 'list', activeNav = document.querySelector('li.extra-nav.active');
201  let el = null;
202
203  if (activeNav) activeNav.classList.remove('active');
204
205  if (path.includes('/vparentteacher/')) {
206    el = document.querySelector('li.extra-nav > a[href="/vparentteacher/"]');
207  } else if (path.includes('/vcalendar/')) {
208    el = document.querySelector('li.extra-nav > a[href="/vcalendar/"]');
209  } else if (path.includes('/display.v/ContactUs')) {
210    el = document.querySelector('li.extra-nav > a[href="/vnews/display.v/ContactUs"]');
211  } else if (path.includes('/display.v/StaffDirectory')) {
212    el = document.querySelector('li.extra-nav > a[href="/vnews/display.v/StaffDirectory"]');
213  } else if (page === 'archive') {
214    el = document.querySelector('li.extra-nav > a[href="/vnews/display.v/ARC?submit=search"]');
215  } else if (path.includes('/display.v/RMS')) {
216    el = document.querySelector('li.extra-nav > a[href="/vnews/display.v/RMS"]');
217  }
218  if (el) el.parentElement.classList.add('active');
219})();
220</script>
220
221
222<script>
223(function($){ 'use strict';
224    var ids = '';
225                                                                                                                                                                                                              
226  if (ids) {
227    ids = ids.replace(/,$/g, '');
228    $(ids).addClass('hidden');
229  }
230
231  // Convert pixels to ems - https://raw.githubusercontent.com/arasbm/jQuery-Pixel-Em-Converter/master/pxem.jQuery.js
232  $.fn.toEm = function(settings){
233    settings = jQuery.extend({
234      scope: 'body'
235    }, settings);
236    var that = parseInt(this[0],10),
237      scopeTest = jQuery('<div style="display: none; font-size: 1em; margin: 0; padding:0; height: auto; line-height: 1; border:0;">&nbsp;</div>').appendTo(settings.scope),
238      scopeVal = scopeTest.height();
239    scopeTest.remove();
240    return (that / scopeVal).toFixed(8);
241  };
242
243  function moveMegaMenu($el, winWidth) {
244    var to = $el.offset(), bottom = to.top + $el.height(),
245      $menu = $el.find('> .dropdown-menu'), mo = $menu.offset(), diff = 0;
246
247    // If the menu has already been moved, leave
248    if (mo.top == bottom) return false;
249
250    // Reset the top margin before calculating because breakpoints may have changed menu positions
251    $menu.css('margin-top', '');
252    mo = $menu.offset();
253    diff = bottom - mo.top;
254
255    // Use the top margin of the dropdown menu to "move" it to just below the parent menu
256    $menu.css('margin-top', diff);
257
258  }
259
260  function adjustMegaMenuHeight($this) {
261
262    // A "data" attribute will exist if we've already made this adjustment - if so, leave
263    if ($this.attr('data-height')) return false;
264
265    // Should the "extra" content use the entire column or share it with the rest of the nav items?
266    var extraShareColumn = false;
267
268    // Min height for the mega menu in ems
269    var minHeight = 13;
270
271    // Cache some DOM finds that are used more than once...
272    var $megaMenuExtraContent = $this.find('.mega-menu-extra-content'),
273      $megaMenuExtra = $this.find('.mega-menu-extra'),
274      $megaMenu = $this.find('> .dropdown-menu');
275
276
277    // Will be changed to true if there is "extra" content in the mega menu
278    var extraColumn = false;
279
280    // Height of the extra column
281    var extraHeight = 0;
282
283    // How many <ul> tags are in the mega menu at the 2nd level?
284    // They have a bottom margin (.5em) so they need to be included in the height calculation
285    var ulCount = $this.find('> ul > .dropdown-submenu > ul:visible').length;
286
287    // How many VISIBLE sections are in the mega menu - all levels
288    var liCount = $this.find('li:visible').length;
289
290    // Loop through all of the <li> tags and build a total
291    var totalLiHeight = 0, liHeight = 0;
292    $this.find('li:visible').each(function() {
293      liHeight = $(this).find('> a:not(.hidden-sm)').outerHeight();
294
295      // IE sometimes returns the wrong height...so reset to a single line at the largest font
296      if (liHeight > 100) liHeight = 27;
297
298      totalLiHeight += liHeight;
299    });
300
301    // If the "extra" content <div> is NOT empty, there's an extra column
302    if ( ! $megaMenuExtraContent.is(':empty')) {
303      extraColumn = true;
304
305      var megaMenuExtraWidth = $megaMenuExtra.outerWidth(true);
306
307      // Clone the extra content and append it to the body - visible, but off screen so that we can get a RELIABLE height
308      $megaMenuExtra.clone().css({
309        'position': 'absolute',
310        'left': '-99999em',
311        'width': megaMenuExtraWidth
312      }).appendTo('body');
313      extraHeight = $('body > .mega-menu-extra').outerHeight(true);
314
315      // Firefox reporting height 20px shorter than Chrome or IE
316      extraHeight += 20;
317
318      // Once we have the height, remove the clone
319      $('body > .mega-menu-extra').remove();
320
321      // If the "extra" content is sharing the column, add it's height to the <li> total height
322      if (extraShareColumn) totalLiHeight += extraHeight;
323    }
324
325    // Convert the <li> total height from pixels to ems
326    var calcHeight = $(totalLiHeight).toEm();
327
328    // Add the bottom margins for the <ul> tags to the total
329    calcHeight = parseFloat(calcHeight) + (ulCount / 2);
330
331    if ( ! extraColumn) {
332      // If the "extra" content is empty, divide by the default 4.25 columns
333      calcHeight /= 4.25;
334    } else {
335      // The "extra" content is NOT empty...
336
337      // If it's NOT sharing the column, divide by one less column (5 column display - 4.25 "safe" number)
338      if ( ! extraShareColumn) {
339        calcHeight /= 3.25;
340      } else {
341        calcHeight /= 4.25;
342      }
343    }
344
345    // Convert the extra content height to ems
346    if (extraColumn) extraHeight = parseFloat($(extraHeight).toEm());
347
348    var megaMenuHeight = 0;
349    if (calcHeight > minHeight) {
350      megaMenuHeight = calcHeight;
351    } else {
352      megaMenuHeight = minHeight;
353    }
354
355    if (extraHeight > (megaMenuHeight - 1)) {
356      $megaMenu.css('height', (extraHeight + 1) + 'em');
357      $megaMenuExtra.css('height', extraHeight + 'em');
358
359      // Write the height as a "data" attribute, so we don't do this adjustment more than once
360      $this.attr('data-height', extraHeight);
361    } else {
362      $megaMenu.css('height', megaMenuHeight + 'em');
363      $this.attr('data-height', megaMenuHeight);
364      if (calcHeight < minHeight || ! extraShareColumn) {
365        $megaMenuExtra.css('height', (megaMenuHeight - 1) + 'em');
366      } else {
367        if (extraShareColumn) $megaMenuExtraContent.addClass('mega-menu-extra-share');
368      }
369    }
370
371  }
372
373  function addSeeMoreLinks($ul, seeMoreNumber) {
374
375    // Hide <li> tags beyond the "seeMoreNumber"
376    $ul.find('> li:nth-child(n+ ' + (seeMoreNumber + 1) + ')').addClass('hidden-lg');
377
378    // Add "See more..." links to those <ul> tags where the <li> count has exceeded the "seeMoreNumber".
379    //   Those <ul> tags will have <li> tags with the "hidden-lg" class as a result of the nth-child code above.
380    $ul.each(function() {
381      var $this = $(this);
382
383      if ($this.find('> li.hidden-lg').length) {
384        // Grab the href from the parent link and use that for the "See more..." link
385        var smhref = $this.prev('a').prop('href');
386
387        // Insert it before the first hidden <li> tag
388        $this.find('> li.hidden-lg:first').before('<li class="hidden-md hidden-sm hidden-xs"><a href="' + smhref + '">See more...</a></li>');
389      }
390    });
391
392  }
393
394  function getSeeMoreTotals($ul, liCount) {
395    var total = 0;
396
397    if ( ! liCount) return total;
398
399    if ($ul.length === 1) {
400      total = (liCount > seeMoreNumber) ? seeMoreNumber : liCount;
401    } else {
402      $ul.each(function() {
403        var cnt = $(this).find('> li:visible').length;
404        total += (cnt > seeMoreNumber) ? seeMoreNumber : cnt;
405      });
406    }
407
408    return total;
409  }
410
411  function fillMegaMenu($this) {
412
413    // Only want to do this if the config entry > 0
414    if (megaMenuMin <= 0) return false;
415
416    // Only want to do this work once per top-level menu, so if it has already been "filled", leave
417    if ($this.hasClass('socs-mm-filled')) return false;
418    $this.addClass('socs-mm-filled');
419
420    // Get the number of visible <li> and <ul> tags at each level within the mega menu
421    var liLevel1 = $this.find('> .dropdown-menu > li:visible').length,
422      liLevel2 = $this.find('> ul > .dropdown-submenu > ul > li:visible').length,
423      liLevel3 = $this.find('> ul ul ul li:visible').length,
424      $ulLevel2 = $this.find('> ul > .dropdown-submenu > ul:visible'),
425      $ulLevel3 = $this.find('> ul ul ul:visible');
426
427    // How many visible items are in the mega menu - all levels
428//    var liTotal = $this.find('li:visible').length;
429    var liTotal = liLevel1 + liLevel2 + liLevel3;
430
431/*
432console.log('-------------------------------');
433console.log('liLevel1 = ' + liLevel1);
434console.log('liLevel2 = ' + liLevel2);
435console.log('liLevel3 = ' + liLevel3);
436console.log('liTotal = ' + liTotal);
437console.log('ulLevel2 = ' + $ulLevel2.length);
438console.log('ulLevel3 = ' + $ulLevel3.length);
439*/
440
441    // Short-circuit if ALL of the items will fit or there aren't any 2nd level items
442    if (liTotal <= megaMenuMax || liLevel2 === 0) return false;
443
444    // 1st level items >= the min - hide 2nd and 3rd level items and leave
445    if (liLevel1 >= megaMenuMin) {
446      $this.find('> ul ul').addClass('socs-mm-hide');
447      return false;
448    }
449
450    // The "seeMoreNumber" may limit the number of <li> tags that are visible within each <ul> at the 2nd and 3rd levels
451    //   Total <li> tags at 2nd and 3rd level AFTER the "seeMoreNumber" limit has been applied on each <ul>
452    var liLevel2SeeMore = getSeeMoreTotals($ulLevel2, liLevel2);
453    var liLevel3SeeMore = getSeeMoreTotals($ulLevel3, liLevel3);
454
455/*
456console.log('liLevel2SeeMore = ' + liLevel2SeeMore);
457console.log('liLevel3SeeMore = ' + liLevel3SeeMore);
458console.log('fillMegaMenu - doing the work');
459*/
460
461    var showAllLevel2 = ((liLevel1 + liLevel2) <= megaMenuMax) ? true : false;
462    var showReducedLevel2 = ((liLevel1 + liLevel2SeeMore) <= megaMenuMax) ? true : false;
463
464    // If 2nd level won't fit under the max (all or reduced) - hide 2nd and 3rd level items and leave
465    if ( ! showReducedLevel2) {
466      $this.find('> ul ul').addClass('socs-mm-hide');
467      return false;
468    }
469
470    // If all 2nd level won't fit but the reduced 2nd level will...
471    if ( ! showAllLevel2 && showReducedLevel2) addSeeMoreLinks($ulLevel2, seeMoreNumber);
472
473    // Are there any 3rd level items?
474    if (liLevel3) {
475      // Which 2nd level number was used? Use it for 3rd level calculations
476      var liLevel2Used = liLevel2SeeMore;
477      if (showAllLevel2) liLevel2Used = liLevel2;
478
479      var showAllLevel3 = ((liLevel1 + liLevel2Used + liLevel3) <= megaMenuMax) ? true : false;
480      var showReducedLevel3 = ((liLevel1 + liLevel2Used + liLevel3SeeMore) <= megaMenuMax) ? true : false;
481
482      // If 3rd level won't fit under the max (all or reduced) - hide 3rd level items and leave
483      if ( ! showReducedLevel3) {
484        $ulLevel3.addClass('socs-mm-hide');
485        return false;
486      }
487
488      // If all 3rd level won't fit but the reduced 3rd level will...
489      if ( ! showAllLevel3 && showReducedLevel3) addSeeMoreLinks($ulLevel3, seeMoreNumber);
490    }
491
492  }
493
494  function clearMenus() {
495    // Remove the "open/show" classes from all dropdowns and reset all aria attributes
496    $('#navbar .open').removeClass('open');
497    $('#navbar .show').removeClass('show');
498    $('#navbar [aria-expanded]').attr('aria-expanded', 'false');
499  }
500
501  
502  // Homemade support for multi-level dropdown menus - https://stackoverflow.com/questions/44467377/bootstrap-4-multilevel-dropdown-inside-navigation
503  $('#navbar').on('click', '.submenu-toggle', function(e) {
504    var $this = $(this), $dropdownMenu = $this.parent().find('> .dropdown-menu');
505
506    if ($dropdownMenu.hasClass('show')) {
507      $this.closest('.dropdown-submenu').removeClass('show').find('> a[aria-expanded]').attr('aria-expanded', 'false');
508      $dropdownMenu.removeClass('show');
509    } else {
510      // Close any open submenus outside of this parent before opening
511      $this.parents('.dropdown-menu').first().find('.show').removeClass('show').children('a[aria-expanded]').attr('aria-expanded', 'false');
512
513      $this.closest('.dropdown-submenu').addClass('show');
514      $this.attr('aria-expanded', 'true');
515      $dropdownMenu.addClass('show');
516    }
517
518    return false;
519  });
520
521  $('#navbar').on('hidden.bs.dropdown', function(e) {
522    // Close submenus when the parent dropdown closes
523    $(e.target).find('.show').removeClass('show').children('a[aria-expanded]').attr('aria-expanded', 'false');
524  });
525
526  // Keyboard activity ------------------------------------------------------
527
528  // Close any previously opened dropdown menus as the user tabs to a new 1st-level navbar item
529  $('#navbar').on('focus', '.nav > li > a', function(e) {
530    if ( ! $(this).parent().hasClass('open')) clearMenus();
531  });
532
533  // Close any previously opened dropdown menu as the user tabs to a new 2nd-level+ item
534  $('#navbar').on('focus', '.dropdown-menu > li > a', function(e) {
535    if ( ! $(this).parent().hasClass('show')) {
536      $(this).closest('.dropdown-menu').find('.show').removeClass('show').children('a[aria-expanded]').attr('aria-expanded', 'false');
537    }
538  });
539
540})(jQuery);
541</script>
541
542</div></div><div class="container-rotator container-rotator-fluid"><div class="container"><div class="img-rotator-wrapper hidden-print  pager-align-right"><div class="img-rotator-inner"><div class="img-fader"></div><img id="img-rotator-placeholder" src="/pages/image_rotator_L17/1%20harlan%20collage.png" alt="" class="img-responsive invisible"><div class="img-rotator invisible"><div><img src="/pages/image_rotator_L17/1%20harlan%20collage.png" alt=""></div><div><img src="/pages/image_rotator_L17/2%20country%20club%20area.JPG" alt=""></div><div><img src="/pages/image_rotator_L17/3%20east%20downtown.jpg" alt=""></div><div><img src="/pages/image_rotator_L17/4%20north%20town.JPG" alt=""></div><div><img src="/pages/image_rotator_L17/6%20south%20downtown.jpg" alt=""></div><div><img src="/pages/image_rotator_L17/7%20college%20blvd.jpg" alt=""></div><div><img src="/pages/image_rotator_L17/8%20theater.jpg" alt=""></div><div><img src="/pages/image_rotator_L17/9%20fountain.jpg" alt=""></div><div><img src="/pages/image_rotator_L17/10%20north%20downtown.jpg" alt=""></div><div><img src="/pages/image_rotator_L17/11%20west%20town.JPG" alt=""></div><div><img src="/pages/image_rotator_L17/15%20flag2.jpg" alt=""></div><div><img src="/pages/image_rotator_L17/bikenight2.jpg" alt=""></div><div><img src="/pages/image_rotator_L17/RAGBRAI%20LIII%20ROUTE%20619670301_1380028954164469_6435077329392977929_n.jpg" alt=""></div></div></div><div class="img-rotator-mask"></div><a class="img-rotator-logo" href="/" title="Home"><h1 class="sr-only">City of Harlan Logo</h1></a></div><div class="hidden-print masthead-buttons"><nav class="navbar navbar-default"><div class="container"><div class="collapse navbar-collapse in"><ul class="nav navbar-nav"><li><a href="/vcalendar/"><em class="fa-fw fa-lg far fa-calendar"></em><span>Calendar</span></a></li><li><a href="/vnews/display.v/ContactUs"><em class="fa-fw fa-lg far fa-phone"></em><span>Contact Us</span></a></li><li><a href="/vnews/display.v/ARC?submit=search"><em class="fa-fw fa-lg fas fa-box-archive"></em><span>Archives</span></a></li></ul></div></div> </nav></div>
542<script>
543;(function($) { 'use strict';
544  $(function() {
545    var maxTop = 0, t = 0;
546
547    // Trying to find menu items in the bottom "row" of the dropdown menu and turn off their bottom border
548
549    // Run the code after the dropdown menu has opened
550    $('.masthead-buttons .dropdown').on('shown.bs.dropdown', function() {
551
552      // Only do this once...and only at "sm" or larger breakpoint
553      if ($(this).data('maxTop') === undefined && window.matchMedia('(min-width: 768px)').matches) {
554        $('.masthead-buttons .dropdown-menu > li').each(function() {
555          t = $(this).offset().top;
556          if (t > maxTop) maxTop = t;
557          $(this).data('offsetTop', t);
558        });
559
560        // Save this so this code will only run once
561        $(this).data('maxTop', maxTop);
562
563        // Loop through all of the <li>s and remove the bottom border from those at the bottom of the dropdown menu.
564        $('.masthead-buttons .dropdown-menu > li').each(function() {
565          t = $(this).data('offsetTop');
566          if (t === maxTop) $(this).find('a').addClass('border-bottom-0');
567        });
568      }
569
570    });
571
572  });
573})(jQuery);
574</script>
574
575
576<script>
577;(function($){ 'use strict';
578  
579    var imgCount = 13, ir_pauseTime = parseInt('8000') || 5000, ir_animSpeed = parseInt('6000') || 1000,
580      ir_indicators = '1', ir_controls = '0', useVibrant = '1';
581
582    // Background color for the jumbotron overlay: Vibrant, Muted, DarkVibrant, DarkMuted, LightVibrant
583    // https://jariz.github.io/vibrant.js/
584    var swatch = 'Vibrant';
585
586    useVibrant = (useVibrant === '1') ? true : false;
587
588    
589        
590  
591  $(function() {
592
593    if (imgCount >= 2) {
594      ir_indicators = (ir_indicators === '0') ? false : true;
595      ir_controls = (ir_controls === '0') ? false : true;
596    } else {
597      ir_indicators = false;
598      ir_controls = false;
599    }
600
601    var overlayExists = false, vibrant = null, swatches = null, rgb = null, rgbaFade = '0.7', pagerBG = null;
602
603    overlayExists = ($('.jumbotron-overlay').length && ! $('.jumbotron-overlay').hasClass('hidden')) ? true : false;
604
605    function getVibrantData($el) {
606      var vHex = null;
607
608      if ($el.data('vibrant') === undefined) {
609        vibrant = new Vibrant($el.get(0));
610        swatches = vibrant.swatches();
611
612        // For some reason the Vibrant code may not always work with EVERY image, so need a fallback
613        if (swatches.hasOwnProperty(swatch) && swatches[swatch]) {
614          rgb = swatches[swatch].getRgb();
615
616          vHex = swatches[swatch].getHex();
617
618          // Save calculated data to element so we only have to do this work once for each image in the rotator
619          $el.data('vibrant', {
620            success: true,
621            rgb: rgb,
622            rgba: 'rgba(' + rgb[0] + ',' + rgb[1] + ',' + rgb[2] + ',' + rgbaFade + ')',
623            vibrant:        vHex,
624            muted:          swatches['Muted'] ? swatches['Muted'].getHex() : vHex,
625            darkVibrant:    swatches['DarkVibrant'] ? swatches['DarkVibrant'].getHex() : vHex,
626            darkMuted:      swatches['DarkMuted'] ? swatches['DarkMuted'].getHex() : vHex,
627            lightVibrant:   swatches['LightVibrant'] ? swatches['LightVibrant'].getHex() : vHex,
628            titleTextColor: swatches[swatch].getTitleTextColor(),
629            bodyTextColor:  swatches[swatch].getBodyTextColor()
630          });
631
632        } else {
633          $el.data('vibrant', {
634            success: false
635          });
636        }
637      }
638    }
639
640    function changeColors($el, nthChild) {
641
642      // Use the data from Vibrant to change colors...
643
644      $('.jumbotron-overlay').css({
645        'background': $el.data('vibrant').rgba,
646        'color': $el.data('vibrant').bodyTextColor
647      });
648
649      if (ir_indicators && ! $('.img-rotator-wrapper.pager-align-below').length) {
650        if ($el.data('vibrant').bodyTextColor === '#fff') {
651          pagerBG = $el.data('vibrant').darkMuted;
652        } else {
653          pagerBG = $el.data('vibrant').lightVibrant;
654        }
655        $('.bx-wrapper .bx-pager a').css({
656          'background': pagerBG,
657          'border-color': $el.data('vibrant').bodyTextColor
658        });
659        $('.bx-wrapper .bx-pager-item:nth-child(' + nthChild + ') a').css({
660          'background': $el.data('vibrant').bodyTextColor
661        });
662      }
663    }
664
665    function resetColors($el, nthChild) {
666
667      // Reset colors by removing inline styles...
668
669      $('.jumbotron-overlay').css({
670        'background': '',
671        'color': ''
672      });
673      if (ir_indicators && ! $('.img-rotator-wrapper.pager-align-below').length) {
674        $('.bx-wrapper .bx-pager a').css({
675          'background': '',
676          'border-color': ''
677        });
678        $('.bx-wrapper .bx-pager-item:nth-child(' + nthChild + ') a').css({
679          'background': ''
680        });
681      }
682    }
683
684    function changeOverlayBackground($el, newIndex) {
685
686      getVibrantData($el);
687
688      if ($el.data('vibrant').success) {
689        changeColors($el, newIndex + 1);
690      } else {
691        resetColors($el, newIndex + 1);
692      }
693    }
694
695    $('.img-rotator').bxSlider({
696      // Config options
697      speed: ir_animSpeed,
698      pause: ir_pauseTime,
699      pager: ir_indicators,
700      controls: ir_controls,
701
702      // Hard-coded options
703      auto: true,
704      keyboardEnabled: true,
705      mode: 'fade',
706
707      // Don't auto start the slider and provide controls for starting and stopping
708/*
709      autoStart: false,
710      autoControls: true,
711      autoControlsCombine: true,
712      startText: '<em class="fas fa-play"></em><span class="sr-only">Start Player</span>',
713      stopText: '<em class="fas fa-pause"></em><span class="sr-only">Pause Player</span>',
714*/
715
716      // Replace the default bxSlider images with Font Awesome icons and some accessibility text
717      prevText: '<em class="fal fa-angle-left"></em><span class="sr-only">
717Previous Slide</span>',
718      nextText: '<em class="fal fa-angle-right"></em><span class="sr-only">Next Slide</span>',
719
720      // Can't scroll the page on iOS or Android when "touching" the images in the slider - so turn off touch until they fix it.
721      touchEnabled: false,
722
723      onSliderLoad: function(currentIndex) {
724        // Unhide the bxSlider once it has finished loading.
725        $('.img-rotator').removeClass('invisible');
726
727        if (useVibrant && overlayExists) changeOverlayBackground($('.img-rotator div[aria-hidden="false"] img'), currentIndex);
728
729        // Remove the placeholder img once we no longer need it.
730        $('#img-rotator-placeholder').remove();
731      },
732      onSlideBefore: function($slideElement, oldIndex, newIndex) {
733        // Remove focus from indicators so that only the active indicator is "selected"
734        $('.bx-pager-link').blur();
735
736        if (useVibrant && overlayExists) changeOverlayBackground($slideElement.find('img'), newIndex);
737      }
738    });
739
740    $('.img-rotator').imagesLoaded(function() {
741      $('.img-fader').fadeOut();
742    });
743
744  });
745})(jQuery);
746</script>
746
747
748</div></div><div class="container-section-header"><div class="container"><div class="section-header"><h2 class="section-header-title">Notifications</h2><ol class="breadcrumb hidden-print"><li><a href="/" title="Home"><em class="fas fa-home"></em><span class="sr-only">Home Link</span></a></li><li class="active">Notifications</li></ol></div>
749</div></div><div class="container-body"><div class="container"><a name="mainContent" accesskey="2"></a><div class="form-group"><label for="groups">Select a Group:</label><select id="groups" name="groups" class="form-control"><option value="" selected>all</option><option value="1">Test</option></select></div><p class="notifier-count"><strong>Notifications: <b class="label label-primary">2</b></strong></p><div class="table-responsive"><table class="table table-striped table-bordered notifier-table"><thead><th>Notification Sent</th><th>Notification</th></thead><tbody><tr><td class="notifier-text-date"><a href="/vnotifier/?page=listmessage&message_id=165"><div>Wednesday, September 30, 2026</div><div>at  2:21pm</div></a></td><td class="notifier-text-msg">Harlan Fire Department Association Breakfast on Sunday, October 4, 2026! Dine-in from 7:00-11:00 AM at 906 Cyclone Ave—call 755-5354 Sunday for delivery service. Enjoy biscuits & gravy, scrambled eggs, pancakes, bacon. Free will donation, proceeds towards a new gator. </td></tr><tr><td class="notifier-text-date"><a href="/vnotifier/?page=listmessage&message_id=164"><div>Wednesday, September 30, 2026</div><div>at 11:51am</div></a></td><td class="notifier-text-msg">City Hall will be closed from 12:00 PM (noon) to 1:00 PM today, Wednesday, September 30, 2026. Thank you for your understanding. </td></tr></tbody></table></div>
749<script>;(function($) { 'use strict';var groupID = '';/**/if (groupID === '-') {window.location.href = '/vnotifier/?page=listmessages&group_id=';} else {$('#groups').on('change', function(e) {window.location.href = '/vnotifier/?page=listmessages&group_id=' + $(this).val();});}})(jQuery);</script>
749
750</div></div><div class="container-calendar-highlights"><div class="container"></div></div><div class="container-right-banners"><div class="container"></div></div>
751<div class="container-poll hidden-print"><div class="container"></div></div><div class="container-footer container-footer-row-2 footer-style-1"><div class="container"><footer class="row"><div class="col-sm-8 col-md-9"><div class="school-address"><span>City of Harlan</span><span>Physical Address: 711 Durant Street</span><span>Mailing Address: PO Box 650</span><span>Harlan, IA  &nbsp;51537</span></div>
752</div><div class="col-sm-4 col-md-3"><div class="social-media"><a href="https://www.facebook.com/cityofharlaniowa/" title="Like us on Facebook" target="_blank"><em class="fab fa-2x fa-facebook"></em><span class="sr-only">Facebook</span></a><a href="https://twitter.com/CityofHarlan" title="Follow us on Twitter" target="_blank"><em class="fab fa-2x fa-x-twitter"></em><span class="sr-only">Twitter</span></a><div style="margin-top: 1em;"><div>PH: 712-755-5137</div><div>FAX: 712-755-5138</div><div>
752Email: [email protected]</div></div></div>
753</div><div class="col-sm-8 col-md-9"><div class="copyright"><a href="https://www.filamentservices.org/websites/" target="_blank" title="SOCS-Simplified Online Communication System  (socs02)"><img class="hidden-print" src="//socshelp.socs.net/sharedimages/socs_banner_white.png" alt="SOCS-Simplified Online Communication System  (socs02)"><img class="visible-print-inline" src="//socshelp.socs.net/sharedimages/socs_banner_black.png" alt="SOCS-Simplified Online Communication System  (socs02)"><span class="sr-only">SOCS Logo Link</span></a><a href="/">&copy; 2026 City of Harlan</a><a href="https://www.filamentservices.org/accessibilitystatement/" target="_blank" accesskey="0">Accessibility</a><a href="https://www.filamentservices.org/privacypolicy/" target="_blank">Privacy Pledge</a></div><div class="copyright"><a href="https://www.filamentservices.org/usda/" target="_blank">This institution is an equal opportunity provider.</a></div>
754</div><div class="col-sm-4 col-md-3"><div id="google_translate_element" class="hidden-print"></div>
754<script>function googleTranslateElementInit() {const defaultLanguages = "sq,ar,hy,bs,yue,zh-HK,zh-CN,zh-TW,hr,cs,da,nl,tl,fi,fr,fr-CA,de,el,haw,iw,hi,hu,id,ga,it,ja,ko,no,pl,pt,pt-PT,pa,pa-Arab,ro,sr,sk,sl,so,es,su,sv,th,tr,uk,vi,yi";new google.translate.TranslateElement({pageLanguage: 'en',includedLanguages: defaultLanguages,layout: google.translate.TranslateElement.InlineLayout.SIMPLE/*layout: google.translate.TranslateElement.InlineLayout.VERTICAL*/}, 'google_translate_element');googleAddMissingLabels();}function googleAddMissingLabels() {/**/if ($('#goog-gt-votingForm input').length && $('#goog-gt-votingForm label').length === 0) {const $googleForm = $('#goog-gt-votingForm');let html = '';$googleForm.find('input').each(function() {const id = $(this).prop('id');/**/if ($googleForm.find('label[for="' + id + '"]').length === 0) html += `<label for="${ id }">${ id }</label>`;/**/if ( ! $(this).attr('title')) $(this).attr('title', 'a non-empty title attribute for input ' + id);});if (html) $googleForm.append(html);}}</script>
754<script src="/javascripts/sri_google_translate.js?cb=googleTranslateElementInit"></script>
754
755</div></footer></div></div>
756
757
758<script src="/javascripts/min/L17/L17-footer.min.js"></script>
758
759
760<script>
761;(function($){ 'use strict';
762    const bsVersion = '3', counterText = '', showToggleIndicators = '1';
763
764  let accordionID = 'socsAccordionBuilder-', counterHtml = '', counterValue = 0, toggleHtml = '', tmp = '', collapseID = 0;
765
766  if (counterText) {
767    switch (bsVersion) {
768      case '2':
769      case '3':
770        counterHtml = `<span><span class="counter-text">No</span> ${counterText}</span>`;
771        break;
772      case '4':
773        counterHtml = `<small class="ml-3 font-italic"><span class="counter-text">No</span> ${counterText}</small>`;
774        break;
775    }
776  }
777
778  if (showToggleIndicators) {
779    if (bsVersion === '4') {
780      toggleHtml = '<em class="sab-toggle-indicator fa-solid fa-plus ml-auto" aria-hidden="true"></em>';
781    } else {
782      toggleHtml = '<em class="sab-toggle-indicator fa-solid fa-plus" aria-hidden="true"></em>';
783    }
784  }
785
786  function buildHeading(title, idx, accordionID) {
787
788    switch (bsVersion) {
789      case '2':
790        return `
791<div class="accordion-group">
792  <div class="accordion-heading">
793    <a class="accordion-toggle" data-toggle="collapse" data-parent="#${accordionID}" href="#collapse${idx}">${title}${counterHtml}${toggleHtml}</a>
794  </div>
795  <div id="collapse${idx}" class="accordion-body collapse">
796    <div class="accordion-inner">
797      <ul class="list-group list-group-flush">
798`;
799        break;
800      case '3':
801        return `
802<div class="panel panel-default">
803  <div class="panel-heading" role="tab" id="heading${idx}">
804    <h4 class="panel-title">
805      <a role="button" data-toggle="collapse" data-parent="#${accordionID}" href="#collapse${idx}"
806        aria-expandedtruue" aria-controls="collapse${idx}">${title}${counterHtml}${toggleHtml}</a>
807    </h4>
808  </div>
809  <div id="collapse${idx}" class="panel-collapse collapse" role="tabpanel" aria-labelledby="heading${idx}">
810    <div class="panel-body" id="panel-body-id">
811      <ul class="list-group list-group-flush">
812`;
813        break;
814      case '4':
815        return `
816<div class="card">
817  <div class="card-header" id="heading${idx}">
818    <h3 class="mb-0">
819      <a href="#" class="d-flex align-items-center text-decoration-none" data-toggle="collapse" data-target="#collapse${idx}"
820        aria-expanded="false" aria-controls="collapse${idx}">${title}${counterHtml}${toggleHtml}</a>
821    </h3>
822  </div>
823  <div id="collapse${idx}" class="collapse" aria-labelledby="heading${idx}" data-parent="#${accordionID}">
824    <div class="card-body">
825      <ul class="list-group list-group-flush">
826`;
827        break;
828    }
829
830  }
831
832    $('table.socs-accordion-builder').each(function(i, el) {
833    const $table = $(el);
834    let html = '';
835
836    accordionID += i;
837    switch (bsVersion) {
838      case '2':
839        html = '<div class="accordion socs-accordion-builder" id="' + accordionID + '">';
840        break;
841      case '3':
842        html = '<div class="panel-group socs-accordion-builder" id="' + accordionID + '" role="tablist" aria-multiselectable="true">';
843        break;
844      case '4':
845        html = '<div class="socs-accordion-builder accordion my-3" id="' + accordionID + '">';
846        break;
847    }
848
849        $table.find('tbody > tr').each(function(j, el) {
850      const $tr = $(el);
851      let rowHtml = '';
852
853      if ($tr.find('td > h3').length) {
854                if (j > 0) html += '</ul></div></div></div>';
855
856        html += buildHeading($tr.find('td > h3').text(), collapseID++, accordionID);
857
858      } else {
859                html += '<li class="list-group-item">' + $tr.find('td').html() + '</li>';
860      }
861    });
862
863        html += '</div></div></div>';
864
865    $table.after(html);
866
867    if (showToggleIndicators) {
868      switch (bsVersion) {
869        case '2':
870          $('#' + accordionID).on('show', function(e) {
871            $(e.target).closest('.accordion-group').find('.sab-toggle-indicator').addClass('fa-minus').removeClass('fa-plus');
872          }).on('hide', function(e) {
873            $(e.target).closest('.accordion-group').find('.sab-toggle-indicator').addClass('fa-plus').removeClass('fa-minus');
874          });
875          break;
876        case '3':
877        case '4':
878          tmp = (bsVersion === '3') ? '.panel' : '.card';
879          $('#' + accordionID).on('show.bs.collapse', function(e) {
880            $(e.target).closest(tmp).find('.sab-toggle-indicator').addClass('fa-minus').removeClass('fa-plus');
881          }).on('hide.bs.collapse', function(e) {
882            $(e.target).closest(tmp).find('.sab-toggle-indicator').addClass('fa-plus').removeClass('fa-minus');
883          });
884          break;
885      }
886    }
887
888        if (counterText) {
889      $('#' + accordionID + ' > div').each(function() {
890        const $card = $(this);
891        counterValue = $card.find('.list-group-item').length;
892        $card.find('.counter-text').text(counterValue);
893      });
894    }
895    $('#' + accordionID + ' > div:first-child [data-toggle]').click();
896  });
897
898})(jQuery);
899</script>
899
900
901
902<script>
903;(function($) { 'use strict';
904  
905  let scrollToContent = false;
906  /**/
907  if ( ! window.location.hash) {
908                                        scrollToContent = true;
909                              }
910  if (scrollToContent) {
911    /**/
912    $('.container-rotator').imagesLoaded(function() {
913      window.scrollTo(0, $('.container-body').offset().top);
914    });
915  }
916
917  if ($('.masthead-style-1 .vbuttons').length) {
918    /**/
919    $('.masthead-style-1 .vbuttons').clone().prependTo('.navbar-header .ns2-menu-wrapper');
920  }
921
922  
923})(jQuery);
924</script>
924
925
926
927  </body>
928</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.