﻿    var streamer = new vwdStreamer();
    var streamerSubscription;
    
    $(document).ready(function() {
        streamer.initialize("iex.nl", "streaming.iex.nl");
        streamerSubscription = streamer.getSubscription(fieldUpdate);
        streamer.connect();
        fieldsToSubscribe = new Array();
        for (fieldIndex in fields) { fieldsToSubscribe[fieldsToSubscribe.length] = issue + "." + 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() == "FULLNAME" && updatePacket.value != null) {
             output = "<a href='/stocks/stocks_detail.asp?iID=" + identifier + "' >" + updatePacket.value + "</a>";
        }else if (field.toUpperCase() == "LASTTIME" && updatePacket.value != null) {
            cellTitle = $("#realtime", row);
            cellTitle.html("<b>REALTIME</b>");    
            colorFade(cellTitle[0], '#CCCCCC', '#FFFFFF' ,20, 20);        
            colorFade($("#LastTime", row)[0], '#CCCCCC', '#FFFFFF' ,20, 20);        
        }else if (field.toUpperCase() == "CUMULATIVEVOLUME" && updatePacket.value != null) {
             output = Number(updatePacket.value);
        }else if (field.toUpperCase() == "RELATIVEDIFFERENCE" && updatePacket.value != null) {
            value = (updatePacket.value > 0 ? "+" : "") + Number(updatePacket.value * 100).toFixed(2).replace('.', ',') + "%"      
            image =  "<img src='/images/" + (updatePacket.value == 0 ? "equal" : (updatePacket.value>0 ? "up" : "down"))+ ".gif' width=11 height=10>  "       
            output = "<span class=" + (updatePacket.value == 0 ? "TextKoersNeutral" : (updatePacket.value>0 ? "TextKoersUp" : "TextKoersDown")) + ">" + image + value + "</span>";
        } else if (field.toUpperCase() == "ABSOLUTEDIFFERENCE" && updatePacket.value != null) {
            value = (updatePacket.value > 0 ? "+" : "") + updatePacket.value.toFixed(4).replace('.', ',')
            output = "<span class=" + (updatePacket.value == 0 ? "TextKoersNeutral" : (updatePacket.value>0 ? "TextKoersUp" : "TextKoersDown")) + ">" + value + "</span>";
        } else 
            output = (updatePacket.value != null ? ((updatePacket.type == vwdStreamerDataType.NUMBER) ? updatePacket.value.toFixed(4).replace('.', ',') : 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(output);
        if (updatePacket.type == vwdStreamerDataType.NUMBER && oldValue < updatePacket.value) 
            colorFade(tableCell[0], '#41A941', ((tableCell[0].parentNode.className.toUpperCase() == 'ALTROWKOERSEN')?'#F9F4E8':'#FFFFFF') ,20, 20);
        else if (updatePacket.type == vwdStreamerDataType.NUMBER && oldValue > updatePacket.value) 
            colorFade(tableCell[0], '#FF6666', ((tableCell[0].parentNode.className.toUpperCase() == 'ALTROWKOERSEN')?'#F9F4E8':'#FFFFFF') ,20, 20);        
        
    }
