
var req = null;
var reqURL = "xml-sgx.jsp";

function parseMessage() { 
  var xmlDoc;
  if (req.readyState == 4) { // loaded 
   if (req.status == 200) { // ok
      xmlDoc = req.responseXML;
      showMessage(xmlDoc);
    }
  }
}

function initSGX() {
   getMessage();
}

function getMessage() {
  if (window.ActiveXObject) {
    req = new ActiveXObject("Microsoft.XMLHTTP");
    req.onreadystatechange = parseMessage;
    req.open("GET", reqURL, true);
    req.send();
  } else if (window.XMLHttpRequest) {
    req = new XMLHttpRequest();
    req.onload = parseMessage;
    req.onerror = parseMessage;
    req.open("GET", reqURL, true);
    req.send(null);
  } 
  setTimeout("getMessage()", 20000);
}

function showMessage(xmlDoc) {
  var root = xmlDoc.getElementsByTagName("pricefeed")[0];

  var datetime = root.getElementsByTagName("datetime")[0].firstChild.nodeValue;
  editDatetimeCell(datetime);

  var last = root.getElementsByTagName("last")[0].firstChild.nodeValue;
  editCell("last", last);

  var change = root.getElementsByTagName("change")[0].firstChild.nodeValue;
  editCell("change", change);

  var changeArrowURL = root.getElementsByTagName("changeArrowURL")[0].firstChild.nodeValue;
  editChangeArrowCell(changeArrowURL);

  var totalVolume = root.getElementsByTagName("totalVolume")[0].firstChild.nodeValue;
  editCell("totalVolume", totalVolume);

  var bidAskPrice = root.getElementsByTagName("bidAskPrice")[0].firstChild.nodeValue;
  editCell("bidAskPrice", bidAskPrice);

  var openLowHigh = root.getElementsByTagName("openLowHigh")[0].firstChild.nodeValue;
  editCell("openLowHigh", openLowHigh);

  var bidAskVolume = root.getElementsByTagName("bidAskVolume")[0].firstChild.nodeValue;
  editCell("bidAskVolume", bidAskVolume);

  var previousClose = root.getElementsByTagName("previousClose")[0].firstChild.nodeValue;
  editCell("previousClose", previousClose);

/*  var sti = root.getElementsByTagName("sti")[0].firstChild.nodeValue;
  editCell("sti", sti);

  var changeSTI = root.getElementsByTagName("changeSTI")[0].firstChild.nodeValue;
  var changeSTIArrowURL = root.getElementsByTagName("changeSTIArrowURL")[0].firstChild.nodeValue;
  editChangeSTICell(changeSTI, changeSTIArrowURL);
*/
  var issuedShare = root.getElementsByTagName("issuedShare")[0].firstChild.nodeValue;
  editCell("issuedShare", issuedShare);

  var mktCapital = root.getElementsByTagName("mktCapital")[0].firstChild.nodeValue;
  editCell("mktCapital", mktCapital);

  var exchange = root.getElementsByTagName("exchange")[0].firstChild.nodeValue;
  editCell("exchange", exchange);

  var industry = root.getElementsByTagName("industry")[0].firstChild.nodeValue;
  editCell("industry", industry);
}

function editCell(tag, text) {
  var cell = window.document.getElementById(tag);
  cell.innerHTML = text;
}

function editChangeSTICell(text, url) {
  if (url == "-") {
    editCell("changeSTI", text);
  } else {
    var html = text + "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"
      + '<img border="0" src="' + url + '">';
    editCell("changeSTI", html);
  }
}

function editDatetimeCell(datetime) {
  var html = '<p><span class="body"><font color="#FFFFFF">Last update as of<br>'
    + datetime + "</font></span></p>";
  editCell("datetime", html);
}

function editChangeArrowCell(url) {
  if (url == "-") {
    editCell("changeArrow", "&nbsp;");
  } else {
    editCell("changeArrow", "<img border=0 src='" + url + "'>");
  }
}
