﻿//This file contains the running code of the lightstreamer

/* Running Code! */
//             1    2       3       4   5           6           7               8                   9           10      11              12      13          14        15     16             17         18      19          20          21          22
var schema = "key command Symbol Quote WinReturn LoseReturn Expiration SecondsToNoMoreBids SecondsToExpiration Color OpeningTime BiddingState FullName ClosingPrice Market MarketThumb IndexType CallQuote PutQuote DelayedQuote IsSuspended SuspendMessage";    //22
var direction = false;


var debugAlerts = true;
var remoteAlerts = true;
//var currentDomain = "eztrader.com";
//var pushHost = "stream.eztrader.com";
var currentDomain = document.domain;
var firstDot = document.domain.indexOf(".");
currentDomain = currentDomain.substring(firstDot + 1);
var lsport = currentDomain.indexOf("eztraderdev") >= 0 ? 8088 : 80;
var pushHost = "stream." + currentDomain;
var lsPage = new PushPage();
var browserName = navigator.appName;
if (browserName.indexOf("Explorer") > 0 && pushHost == currentDomain)
    lsPage.context.setDomain(null);
else
    lsPage.context.setDomain(currentDomain);

lsPage.context.setDebugAlertsOnClientError(debugAlerts);
lsPage.context.setRemoteAlertsOnClientError(remoteAlerts);

lsPage.onEngineCreation = function(lsEngine) {
    lsEngine.context.setDebugAlertsOnClientError(debugAlerts);
    lsEngine.context.setRemoteAlertsOnClientError(remoteAlerts);

    lsEngine.connection.setLSHost(pushHost);
    lsEngine.connection.setLSPort(lsport);
    lsEngine.connection.setAdapterName("PROXYEZTRADER");

    lsEngine.policy.setMaxBandwidth(40);
    lsEngine.policy.setIdleTimeout(30000);
    lsEngine.policy.setPollingInterval(1000);
    lsEngine.policy.setTimeoutForReconnect(5000);

    lsEngine.changeStatus("STREAMING");
}
if (isTradingEnabled) {
    lsPage.bind();
    lsPage.createEngine("quotesEngine", "LS/");
}

/////////////////////////////////table handler	
//    var table = new DynaMetapushTable("EZOptions" + m_currentCategory, schema, "COMMAND");
//    table.setSnapshotRequired(true); 
//    table.setPushedHtmlEnabled(false);
//    table.setClearOnDisconnected(true); 
//    table.onChangingValues = formatValues;
//    
//    table.setMaxDynaRows("unlimited");
//    table.setMetapushFields(2, 1);
//    //table.setMetapushSort(3, direction);
//    if(isTradingEnabled) lsPage.addTable(table, "OptionsTable");

var OptionsTables;
function setCategoryTable(CategoryId) {

    OptionsTables = new EzArray("Type");
    $(".LsTable").each(function() {
      
        var indicesType = $(this).attr("iType");
        OptionsTables.Add(new LsOptionsTable(indicesType, $(this).parent()));
        var tableId = $(this).attr("id");
        var table = new DynaMetapushTable("EZOptions" + CategoryId + '.' + indicesType, schema, "COMMAND");
        table.setSnapshotRequired(true);
        table.setPushedHtmlEnabled(false);
        table.setClearOnDisconnected(true);
        table.onChangingValues = formatValues;
        table.onItemUpdate = ItemUpdate;
        table.setMaxDynaRows("unlimited");
        table.setMetapushFields(2, 1);
        //table.setMetapushSort(3, direction);
        if (isTradingEnabled) {

            if (CategoryId != m_currentCategory) lsPage.removeTable(tableId);

            lsPage.addTable(table, tableId);

        }
    });
    m_currentCategory = CategoryId;
}
setCategoryTable(m_currentCategory);