Newer
Older
/**
* buckeyeAlert library
* Ohio State University - Interactive Communications
* http://ucom.osu.edu
*/
function buckeyeAlert(settings) {
if(typeof(settings)==='undefined') settings = new Object();
if(typeof(settings.element_id)==='undefined') settings.element_id = "buckeye_alert";
if(typeof(settings.url)==='undefined') settings.url = "//www.osu.edu/feeds/emergency-alert.rss";
if(typeof(settings.callback)==='undefined') settings.callback = function () { };
if(typeof(settings.displayType)==='undefined') settings.display = "block";
var container = document.getElementById(settings.element_id);
container.setAttribute("aria-live", "polite");
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
if(window.XDomainRequest){ // For IE
var xdr = new XDomainRequest();
xdr.open("GET", settings.url);
xdr.onprogress = function () { };
xdr.ontimeout = function () { };
xdr.onerror = function () { };
xdr.onload = function() {
var response;
if (window.DOMParser) {
var parser = new window.DOMParser();
response = parser.parseFromString(xdr.responseText, "text/xml");
} else {
response = new ActiveXObject("Microsoft.XMLDOM");
response.async = false;
response.loadXML(xdr.responseText);
}
displayResponse(response);
}
setTimeout(function () {xdr.send();}, 0);
} else {
var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
displayResponse(xmlhttp.responseXML);
}
}
xmlhttp.open("GET", settings.url, true);
xmlhttp.send();
}
function displayResponse(response) {
var items = response.getElementsByTagName("item");
if (items.length) {
var heading = document.createElement("h2");
heading.className = "osu-semantic";
heading.innerHTML = "Emergency alert message";
var message = document.createElement("div");
message.className = settings.messageClass;
message.setAttribute("id", "buckeye_alert_msg");
for (var i=0; i<items.length; i++) {
var description = items[i].getElementsByTagName("description")[0];
var thisMessage = description.textContent || description.text;
if (thisMessage != 'undefined') {
message.innerHTML += thisMessage;
}
}
var container = document.getElementById(settings.element_id);
container.style.display = settings.display;
container.removeAttribute("hidden");
if (container.childNodes[0]) {
container.insertBefore(message, container.childNodes[0]);
} else {
container.appendChild(message);
}
container.insertBefore(heading, container.childNodes[0]);
settings.callback();
}
}
}