function upDatePg(val){ window.location.href = "view.asp?uid=stocks/earnings&annQtr=" + val; } function initLoadingGraphic(centerImg){ var load = document.getElementById("divLoading"); if (load){ load.style.position = "absolute"; load.style.left = -20 + (centerImg.offsetWidth / 2) + "px"; load.style.top = centerImg.offsetTop + (centerImg.offsetHeight / 2) + "px"; load.style.visibility = "visible" } } function init() { initLoadingGraphic(document.getElementById("chartContent")); if (typeof earningsBuffer == "undefined"){ earningsBuffer = new ContentBuffer(); } if (typeof chart == "undefined"){return} earningsBuffer.load({ url: "resources/asp/getBufferedEarningsChart.asp", method: "post", contentType: "text/javascript", data: { cht: chart.cht, width: chart.width, height: chart.height, annQtr: chart.annQtr, IBESTicker: chart.ticker }, debug: true }); } function setChartInfo(filename, html, mydata){ // called from buffer when done loading. mapData = mydata; document.getElementById("chartImg").src = filename; document.getElementById("chartMap").innerHTML = '' + html + ''; // get last actual var g = []; for (var x in mapData){ if ( mapData[x].type && mapData[x].type == "Actual" && mapData[x].value != "" ){ lastAnn = x; } for (var y in mapData[x]){ if (typeof mapData[x][y] == "object"){ if ( mapData[x][y].type && mapData[x][y].type == "Actual" && mapData[x][y].value != "" ){ lastQtr = y; lastAnn = x; } } } } if (typeof lastAnn != "undefined" && typeof lastQtr != "undefined"){ setInfoBox(lastAnn, lastQtr); } else if (typeof lastAnn != "undefined") { setInfoBox(lastAnn); } else { setInfoBox(); } document.getElementById("divLoading").style.visibility = "hidden"; } function consensus(supMean, val){ supMean = Number(supMean); val = Number(val); if (supMean < val) { return 'beat'; } else if (supMean > val) { return 'missed'; } else { return 'met'; } } function clr(val){ if (val == -32768 || val== "--"){ return '
--
'; } else { return '
$'+val+'
'; } } function fmt(val){ if (val == -32768 || val == "--"){ return '
--
'; } else { if (parseFloat(val) < 0){ return '
'+val+'%
'; } else { return '
'+val+'%
'; } } } function setInfoBox(yearIdx, qtrIdx){ var data = (qtrIdx || qtrIdx == 0)?mapData[yearIdx][qtrIdx]:(yearIdx || yearIdx == 0)?mapData[yearIdx]:false; var htm = []; htm.push(""); if (data && data.year != "null"){ var qtrSht = false;var qtrLng = false; if (data.qtr){ switch (data.qtr) { case "0":qtrSht = "Q1";qtrLng = "1st qtr"; break; case "1":qtrSht = "Q2";qtrLng = "2nd qtr"; break; case "2":qtrSht = "Q3";qtrLng = "3rd qtr"; break; case "3":qtrSht = "Q4";qtrLng = "4th qtr"; break; default: break; } } if (data.etype == 2){ //Estimate if (data.qtr){ htm.push(""); } else { htm.push(""); } htm.push(''); htm.push("
Estimated " + data.year + " " + qtrSht + " Earnings
EPS: $"+data.value+"
Estimated " + data.year + " Earnings
EPS: $"+data.value+"
"); } else { //Actual if (data.qtr){ htm.push(""+symbol+" reported " + ((qtrLng)?qtrLng + " ":"") + data.year + " earnings of $"+data.value+" per share"); } else { htm.push(""+symbol+" reported " + data.year + " earnings of $"+data.value+" per share"); } htm.push(" on " + data.announceDate +"."); if (data.SurpriseMean != -32768){ htm.push(" This "+consensus(data.SurpriseMean, data.value)+" the "+((data.SurpriseMean != "--")?"$" + data.SurpriseMean + " ":"") + "consensus of the "+((data.SurpriseNumberOfEstimates != "--")?+ data.SurpriseNumberOfEstimates + " ":"") + "analysts covering the company."); } var hasData = data.SurprisePct != "--" || data.SurpriseAmount != "--"; htm.push(""); htm.push("
Surprise %:
"+fmt(data.SurprisePct)); htm.push("
"); htm.push("
Surprise:
"+clr(data.SurpriseAmount)); htm.push("
"); } } else { htm.push('Sorry, no data available.') } htm.push(""); document.getElementById("legend").innerHTML = htm.join("").replace("&","&"); var chartSm = document.getElementById("chartSm"); if (chartSm && data.low && data.SurpriseMean && data.high){ chartSm.src = 'resources/asp/chart.asp?cht=estRange&data='+data.low+','+data.mean+','+data.high; } } addEvent(window, "load", init);