Listing 5. The JavaScript Component function start_cid () { setInterval("update_cid()", 1000); } function update_cid () { var req; var xml; var panels; var count; var name; var div; req = get_from_server(); clear_panels(); xml = req.responseXML.getElementsByTagName("panels")[0]; panels = xml.getElementsByTagName("panel"); for (count=0 ; count < panels.length ; count++) { panel = panels[count]; name = panel.getElementsByTagName("name")[0]; name = name.firstChild.nodeValue; content = panel.getElementsByTagName("content")[0]; content = content.firstChild.nodeValue; div = document.getElementById(name); div.style.display="block"; div.innerHTML = "" + name + ": " + content; if (div.innerHTML == "") { div.style.display="none"; } } } function get_from_server () { var req; if (window.XMLHttpRequest) { req = new XMLHttpRequest(); } else if (window.ActiveXObject) { req = new ActiveXObject("Microsoft.XMLHTTP"); } req.open("GET", "/cgi-bin/cid.pl", false); req.send(null); return req; } function clear_panels () { for (count=1 ; count < 5 ; count++) { document.getElementById("phone" + count).innerHTML = ""; document.getElementById("phone" + count).style.display="none"; } return; }