// Fetch a known query parameter from the pages URL async function getQuery(param) { var params = new URLSearchParams(window.location.search) var query = params.get(param) if (query) { return query } else { return 'false' } } // Set page headers async function setHeaders(title,time) { var prefix = `OwlBoard - ` document.title = `${prefix}${title}` document.getElementById("stn_name").innerHTML = title document.getElementById("fetch_time").innerHTML = time.toLocaleTimeString() } // Determine what should display in 'platform' column async function parsePlatform(svc){ if (svc.platform != undefined) { var platform = svc.platform; } else { var platform = "-"; } if (svc.platformChanged) { var changed = "changed"; } else { var changed = ""; } return {num: platform, change: changed} } // Use different time strings to default to make better on small screens async function parseTime(string){ switch (string) { case "Delayed": var output = "LATE"; var change = "changed"; break; case "Cancelled": var output = "CANC"; var change = "cancelled"; break; case "On time": var output = "RT"; var change = ""; break; case "": var output = "-"; var change = ""; break; case undefined: var output = "-"; var change = ""; break; case "No report": var output = "?"; var change = ""; break; default: var output = string; var change = "changed"; } return {data: output, changed: change}; } // Sometimes the origin or destination names are undefined, need to catch that async function parseName() { return; } // Display Alert Messages async function displayAlerts(array) { var counter = 0 for(var i = 0; i < array.length; i++) { // Increment counter counter += 1; // Reset Vars var msg = array[i]; console.log(`Alert: ${msg}`); document.getElementById("alerts_msg").insertAdjacentHTML("beforeend", `

${msg}

`); } if (counter == 1) { document.getElementById("alert_bar_note").innerHTML = `There is ${counter} active alert` } else if (counter > 1) { document.getElementById("alert_bar_note").innerHTML = `There are ${counter} active alerts` } document.getElementById("alerts").style = "display:block" document.getElementById("alerts_bar").style = "display:block" document.getElementById("output").style = "margin-top:95px" // Adjust margin of train table div. } async function inflateAlerts() { document.getElementById("alerts_msg").style = "display:block;"; document.getElementById("alert_expand_arrow").style = "transform: rotate(180deg);"; document.getElementById("alerts_bar").setAttribute("onclick", "deflateAlerts()") } async function deflateAlerts() { document.getElementById("alerts_msg").style = "display.none;"; document.getElementById("alert_expand_arrow").style = "transform: rotate(0deg);"; document.getElementById("alerts_bar").setAttribute("onclick", "inflateAlerts()") }