PageSourceSearch

https://ohiohouse.gov/js/application/utilities.js

js ohiohouse.gov collected 2026-10-09 16:46:42 UTC 7,253 bytes, 249 lines download raw bytes

1function clearField(elementId) {
2  document.getElementById(elementId).value = "";
3}
4
5function showElement(elementId) {
6  document.getElementById(elementId).style.display = "block";
7}
8
9function hideElement(elementId) {
10  document.getElementById(elementId).style.display = "none";
11}
12
13function toggleVisibility(elementId) {
14  if (document.getElementById(elementId).style.display === "none")
15    document.getElementById(elementId).style.display = "block";
16  else document.getElementById(elementId).style.display = "none";
17}
18
19function togglePanel(toggledDiv, controlDiv, showText, hideText) {
20  if (document.getElementById(toggledDiv).style.display == "block") {
21    document.getElementById(toggledDiv).style.display = "none";
22    document.getElementById(controlDiv).innerHTML = showText;
23  } else {
24    document.getElementById(toggledDiv).style.display = "block";
25    document.getElementById(controlDiv).innerHTML = hideText;
26  }
27}
28
29function checkboxToggle(checkbox, element) {
30  if (document.getElementById(checkbox).checked)
31    document.getElementById(element).style.display = "block";
32  else document.getElementById(element).style.display = "none";
33}
34
35function checkAll(name) {
36  let checkboxes = document.getElementsByName(name);
37
38  for (let i = 0, n = checkboxes.length; i < n; i++)
39    checkboxes[i].checked = true;
40}
41
42function getRadioChoiceValue(radioChoiceElement) {
43  let selectedValue = null;
44  let radioChoice = document.getElementsByName(radioChoiceElement);
45
46  for (let i = 0, length = radioChoice.length; i < length; i++) {
47    if (radioChoice[i].checked) selectedValue = radioChoice[i].value;
48  }
49
50  return selectedValue;
51}
52
53function getSelectValue(selectElementId) {
54  let selectElement = document.getElementById(selectElementId);
55
56  return selectElement.options[selectElement.selectedIndex].value;
57}
58
59function getUrlParameter(sParam) {
60  var sPageURL = window.location.search.substring(1);
61  var sURLVariables = sPageURL.split("&");
62  for (var i = 0; i < sURLVariables.length; i++) {
63    var sParameterName = sURLVariables[i].split("=");
64    if (sParameterName[0] == sParam) {
65      return sParameterName[1];
66    }
67  }
68}
69
70function uncheckAll(name) {
71  let checkboxes = document.getElementsByName(name);
72
73  for (let i = 0, n = checkboxes.length; i < n; i++)
74    checkboxes[i].checked = false;
75}
76
77function itemIsInList(itemList, item, delimiter) {
78  let itemListArray = itemList.split(delimiter);
79  let itemFound = false;
80
81  for (let i = 0; i < itemListArray.length; i++) {
82    if (itemListArray[i] !== item) continue;
83
84    itemFound = true;
85    break;
86  }
87
88  return itemFound;
89}
90
91function addItemToList(itemList, item, delimiter) {
92  let items = itemList.split(delimiter);
93
94  if (items.indexOf(item) === -1) items.push(item);
95
96  let updatedList = items.join(delimiter);
97  updatedList = updatedList.replace(/^,/, "");
98
99  return updatedList;
100}
101
102function removeItemFromList(itemList, item, delimiter) {
103  let items = itemList.split(delimiter);
104
105  for (let i = 0; i < items.length; i++) {
106    if (items[i] === item) {
107      items.splice(i, 1);
108      return items.join(delimiter);
109    }
110  }
111
112  return itemList;
113}
114
115function setDateTimeField(fieldName) {
116  let dateTimeField = document.getElementById(fieldName);
117  let dateField = document.getElementById(fieldName + "-date");
118  let timeField = document.getElementById(fieldName + "-time");
119  let timeValue = "12:00 AM";
120
121  if (timeField.value !== "") timeValue = timeField.value;
122
123  if (timeField.value !== "") timeValue = timeField.value;
124
125  if (dateField.value === "") dateTimeField.value = "";
126  else dateTimeField.value = dateField.value + " " + timeValue;
127}
128
129function setDateAndTimeFields(fieldName) {
130  let dateTimeField = document.getElementById(fieldName);
131  let dateField = document.getElementById(fieldName + "-date");
132  let timeField = document.getElementById(fieldName + "-time");
133
134  if (dateTimeField.value !== "") {
135    let dateTimeFieldParts = dateTimeField.value.split(" ");
136
137    dateField.value = dateTimeFieldParts[0];
138
139    if (!dateTimeFieldParts[1]) timeField.value = " 12:00 AM";
140    else timeField.value = dateTimeFieldParts[1] + " " + dateTimeFieldParts[2];
141  }
142}
143
144function closePanelControls() {
145  $(".panel-control-body").hide("slide", { direction: "up" }, 10);
146
147  let arrow = $(".panel-control-header .indicator .arrow");
148  arrow.removeClass("spin-open");
149  arrow.removeClass("spin-close");
150  arrow.addClass("spin-close-instant");
151}
152
153function clearPanelControl(controlName, optionId) {
154  let checks = document.querySelectorAll(
155    "#" + controlName + ' input[type="checkbox"]',
156  );
157
158  for (let i = 0; i < checks.length; i++) {
159    let check = checks[i];
160
161    if (check.id !== optionId && !check.disabled) check.checked = false;
162  }
163}
164
165function configurePagerSelect(selectId) {
166  let select = document.getElementById(selectId);
167  if (!select) return;
168
169  let wrapper = select.closest(".select-control");
170  if (!wrapper) return;
171
172  let clickedOutsideSelect = (event) => event.target.closest("select") === null;
173
174  select.addEventListener("change", function () {
175    window.location.href = this.value;
176  });
177
178  select.addEventListener("toggle", function (event) {
179    this.dataset.open = event.newState === "open";
180  });
181
182  wrapper.addEventListener("mousedown", function (event) {
183    if (clickedOutsideSelect(event)) {
184      select.dataset.wasOpen = select.matches(":open");
185    }
186  });
187
188  wrapper.addEventListener("click", function (event) {
189    if (clickedOutsideSelect(event) && select.dataset.wasOpen !== "true") {
190      select.showPicker();
191    }
192  });
193}
194
195// WCAG 2.1 AA Compliance - updated for keyboard navigation and to ensure screen reader access
196function configurePanelControl(controlName) {
197  let filterTransitionTime = 100;
198
199  let control = $("#" + controlName);
200  let controlHeader = $("#" + controlName + " .panel-control-header");
201  let controlBody = $("#" + controlName + " .panel-control-body");
202  let arrow = $("#" + controlName + " .panel-control-header .indicator .arrow");
203
204  $(controlHeader).on("click", function () {
205    if (controlBody.is(":visible")) {
206      closeMenu();
207    } else {
208      openMenu();
209    }
210  });
211
212  function openMenu() {
213    controlBody.show("slide", { direction: "up" }, filterTransitionTime);
214    controlHeader.attr("aria-expanded", "true");
215    arrow.addClass("spin-open").removeClass("spin-close spin-close-instant");
216  }
217
218  function closeMenu() {
219    controlBody.hide("slide", { direction: "up" }, filterTransitionTime);
220    controlHeader.attr("aria-expanded", "false");
221    arrow.addClass("spin-close").removeClass("spin-open spin-close-instant");
222  }
223
224  $(document).on("keydown", function (e) {
225    if (e.key === "Escape" && controlBody.is(":visible")) {
226      closeMenu();
227      controlHeader.focus();
228    }
229  });
230
231  $(document).on("mouseup", function (event) {
232    let clickedOutsideOfControl =
233      !control.is(event.target) && control.has(event.target).length === 0;
234    let clickedInsideDatePicker = false;
235    let datePicker = $("#ui-datepicker-div");
236
237    if (datePicker.length) {
238      clickedInsideDatePicker = datePicker.has(event.target).length > 0;
239    }
240
241    if (
242      clickedOutsideOfControl &&
243      !clickedInsideDatePicker &&
244      controlBody.is(":visible")
245    ) {
246      closeMenu();
247    }
248  });
249}

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.