﻿/**************************************************
*  Company: IFP 
*  Name   : Test App # 8 (Loading rates on a dynamic table)
*  Version: 1.0.0.0000
*  Created: 07/15/2008
*  Updated: 07/16/2008
*  Author : Max Bitran
***************************************************/
//========================================================================================================================
// Entry Point
var interval = 1000;
var ticker;
var initCounter = 0;
var dataTable;
var htmlTable;
  
function Start()
{
    dataTable = new IFPDataTable("CrossRatesTable");
    htmlTable = new IFPHTMLTable(dataTable);
    
    dataTable.Columns.Add("Currency"); 
    dataTable.Columns.Add("BID"); 
    dataTable.Columns.Add("[p]"); 
    dataTable.Columns.Add("ASK"); 

    var login = new IFPXmlHTPPRequestManager();          
    login.Headers.Add("Params","22,TIMESTAMP,1");
    login.Headers.Add("RequestingApplication","website");
    login.Headers.Add("Username", userName);
    login.Headers.Add("Password", password);
    login.Headers.Add("Mode","init");
    
    ticker = new IFPXmlHTPPRequestManager(login);
    
    ticker.OnResponseReceived = ShowData;
    
    ticker.Headers.Add("Params","50,EURUSD,1;50,GBPUSD,1;50,USDCHF,1;50,USDJPY,1;50,AUDUSD,1;50,USDCAD,1;50,GBPJPY,1;50,EURGBP,1;50,EURJPY,1;50,EURCHF,1;5,XAUUSD,1;5,XAGUSD,1");
    ticker.Headers.Add("RequestingApplication","website");
    ticker.Headers.Add("Id","");
    ticker.Headers.Add("Index","");
    ticker.Headers.Add("Mode","RT");
                                        
    ticker.Url = "http://trade.bforex.com/rtgateway/query1.aspx";
       
    RateLoader();
    setInterval("RateLoader()", interval); 
};
//========================================================================================================================
function RateLoader()
{ ticker.Run(); };
//========================================================================================================================
function ShowData(result)
{    
    var parse1 = result.split("$#");
    var spliced = parse1.splice(1, parse1.length-1);
    var parse2, style; 
    var color;
     
    for (var i=0;i<spliced.length;i++)
    {
        parse2 = spliced[i].split(",");
        
        parse2[1] = parse2[1].substring(0,3) + "/" + parse2[1].substring(7,3);
        
        if (initCounter == 0)
        { dataTable.AddRow(parse2[1],parse2[2],"",parse2[3]); }
        else
        {
            dataTable.SetRow(parse2[1],parse2[2],"",parse2[3]); 
            if (parse2[0] == "50")
            { color = parse2[11].split("@")[0]; }
            else if (parse2[0] == "5")
            { color = parse2[10]; }
            style = new HTMLStyle();
            style.Color = color;
        
            htmlTable.SetRowStyle(i, style);
        }
    }
    if (initCounter == 0)
    { htmlTable.Show(); }   
    initCounter++; 
};
