﻿
var fields = new Array("LastPrice", "RelativeDifference", "CumulativeVolume", "HighPrice", "LowPrice", "ClosePrice", "LastTime");
var streamer = new vwdStreamer();
var streamerSubscription;

$(document).ready(function() {
    streamer.initialize("eurobench.com", "streaming.eurobench.com");
    streamerSubscription = streamer.getSubscription(fieldUpdate);
    streamer.connect();
    fieldsToSubscribe = new Array();
    for (issueIndex in issues) {
        for (fieldIndex in fields) { fieldsToSubscribe[fieldsToSubscribe.length] = issues[issueIndex] + "." + fields[fieldIndex];}
    }
    streamerSubscription.subscribe(fieldsToSubscribe);
});
   
fieldUpdate = function(updatePacket) {
    var identifier = updatePacket.dataName.substring(0, updatePacket.dataName.indexOf("."));
    var field = updatePacket.dataName.substring(updatePacket.dataName.indexOf(".") + 1);
    var row = $("#" + identifier, $("#issueTable"));
    var tableCell = $("#" + field.replace("!", "_EX"), row);
    var output = "";
    if (field.toUpperCase() == "CUMULATIVEVOLUME" && updatePacket.value != null) {
         output = '<span class=kllong>' + Number(updatePacket.value) + '</span>';
    }else if (field.toUpperCase() == "RELATIVEDIFFERENCE" && updatePacket.value != null) {
        value = (updatePacket.value > 0 ? "+" : "") + Number(updatePacket.value * 100).toFixed(2) + "%"      
        image =  " <img src='/images/img_koers_" + (updatePacket.value == 0 ? "equal" : (updatePacket.value>0 ? "up" : "down"))+ ".gif' width=5 height=9>  "       
        output = "<span class='kllong " + (updatePacket.value == 0 ? "" : (updatePacket.value>0 ? "changeUp" : "changeDown")) + "'>" + value + image + "</span>";            
    } else
        output = (updatePacket.value != null ? ((updatePacket.type == vwdStreamerDataType.NUMBER) ? updatePacket.value.toFixed(2) : updatePacket.value) : "--") ;
    
    if (updatePacket.value != updatePacket.rawValue) { output += " (" + updatePacket.rawValue + ")"; }
    switch (updatePacket.type){
        case vwdStreamerDataType.DATE : output = updatePacket.value.toLocaleDateString(); break;
        case vwdStreamerDataType.TIME :
            var curHour = updatePacket.value.getHours();
            var curMin = updatePacket.value.getMinutes();
            var curTime =  ((curHour < 10) ? "0" : "") + curHour + ":" + ((curMin < 10) ? "0" : "") + curMin;
            output =  curTime ; break;
        case vwdStreamerDataType.DATETIME : output = updatePacket.value.toLocaleString(); break;
    }
    var oldValue = updatePacket.oldValue;
    if (oldValue == null) oldValue = updatePacket.value;
        
    tableCell.html('<div>' + output + '</div>');
    if (updatePacket.type == vwdStreamerDataType.NUMBER && oldValue < updatePacket.value)
        colorFade(tableCell[0], '#41A941', ((row[0].className.toUpperCase() == 'F7')?'#EAE9D7':'#FFFFFF') ,20, 20);
    else if (updatePacket.type == vwdStreamerDataType.NUMBER && oldValue > updatePacket.value) 
        colorFade(tableCell[0], '#FF6666', ((row[0].className.toUpperCase() == 'F7')?'#EAE9D7':'#FFFFFF') ,20, 20);

    var laatCell = $("#LaatPriceGray", row); laatCell.addClass('gray');
    var biedCell = $("#BidPriceGray", row); biedCell.addClass('gray');
    var closeCell = $("#ClosePriceGray", row); closeCell.addClass('gray');
}


