// asAtDate must be a string of type yyyymmdd // function returns price, or -1 if out of range function getHistoricalPrice(asAtDate) { var count = wlOSHDateArr.length; var date = parseInt(asAtDate); if (date > wlOSHDateArr[count-1] || date < wlOSHDateArr[0]) return -1; var lower = 0; var upper = count-1; var index = parseInt(upper/2); var curDate; // binary search for date while(upper - lower > 1) { curDate = wlOSHDateArr[index]; if (curDate == date) return wlOSHPriceArr[index]; if (curDate > date) upper = index; else lower = index; index = parseInt((upper+lower)/2); } // Make sure that what we've found is actually the right day. if (wlOSHDateArr[upper] == date) { return wlOSHPriceArr[upper]; } else { return -1; } } function showHistoricalPrice() { var f = document.forms.HistoricalDataForm; var d = ("00" + f.day.value).slice(-2); var monthname = f.month.value; var y = ("0000" + f.year.value).slice(-4); var m = getMonth(monthname); if (isNaN(parseInt(d)) || isNaN(parseInt(m)) || isNaN(parseInt(y))) { alert("Please enter a date in dd/mm/yyyy format"); return; } var price = parseFloat(getHistoricalPrice(y + m + d)); if (price.toFixed != null) { price = price.toFixed(2); } //var msg = "On " + d + "/" + m + "/" + y + " the price was $" + price; var msg = "$" + price; if (price > -1) { document.getElementById("result").innerHTML = msg; } else { document.getElementById("result").innerHTML = "no price info"; } } function getMonth(n) { switch(n) { case "Jan": return "01"; break; case "Feb": return "02"; break; case "Mar": return "03"; break; case "Apr": return "04"; break; case "May": return "05"; break; case "Jun": return "06"; break; case "Jul": return "07"; break; case "Aug": return "08"; break; case "Sep": return "09"; break; case "Oct": return "10"; break; case "Nov": return "11"; break; case "Dec": return "12"; break; } } function RenderForm() { document.write("
"); document.write("

Show the closing price on"); document.write(""); document.write("/"); document.write("/ :"); document.write(""); document.write("

"); document.write("
"); }