PageSourceSearch

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

js ohiohouse.gov collected 2026-09-24 09:05:49 UTC 6,430 bytes, 219 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
165// WCAG 2.1 AA Compliance - updated for keyboard navigation and to ensure screen reader access
166function configurePanelControl(controlName) {
167  let filterTransitionTime = 100;
168
169  let control = $("#" + controlName);
170  let controlHeader = $("#" + controlName + " .panel-control-header");
171  let controlBody = $("#" + controlName + " .panel-control-body");
172  let arrow = $("#" + controlName + " .panel-control-header .indicator .arrow");
173
174  $(controlHeader).on("click", function () {
175    if (controlBody.is(":visible")) {
176      closeMenu();
177    } else {
178      openMenu();
179    }
180  });
181
182  function openMenu() {
183    controlBody.show("slide", { direction: "up" }, filterTransitionTime);
184    controlHeader.attr("aria-expanded", "true");
185    arrow.addClass("spin-open").removeClass("spin-close spin-close-instant");
186  }
187
188  function closeMenu() {
189    controlBody.hide("slide", { direction: "up" }, filterTransitionTime);
190    controlHeader.attr("aria-expanded", "false");
191    arrow.addClass("spin-close").removeClass("spin-open spin-close-instant");
192  }
193
194  $(document).on("keydown", function (e) {
195    if (e.key === "Escape" && controlBody.is(":visible")) {
196      closeMenu();
197      controlHeader.focus();
198    }
199  });
200
201  $(document).on("mouseup", function (event) {
202    let clickedOutsideOfControl =
203      !control.is(event.target) && control.has(event.target).length === 0;
204    let clickedInsideDatePicker = false;
205    let datePicker = $("#ui-datepicker-div");
206
207    if (datePicker.length) {
208      clickedInsideDatePicker = datePicker.has(event.target).length > 0;
209    }
210
211    if (
212      clickedOutsideOfControl &&
213      !clickedInsideDatePicker &&
214      controlBody.is(":visible")
215    ) {
216      closeMenu();
217    }
218  });
219}

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.