﻿
/*
 * Xignite
 * ----------------------------------------------------
 * Returns back Xignite market data through an array
 * list.
 */

var xignite = {};
xignite.IndiceService = "/Xignite/GetXigniteIndiceData";
xignite.RateService = "/Xignite/GetXigniteRatesData";

xignite.MakeServiceCall = function(url) {
    var response =
        $.ajax({
            type: "POST",
            dataType: "application/json;",
            data: {},
            url: url,
            async: false,
            error: function(a, b, c) { $('#marketData').html('Market Data Feed unavailable temporarily..'); }
        }).responseText;

    var data = eval('(' + response + ')');
    return data;
};

xignite.GetMarketData = function() {

    var quotes = new Array();
    var rates = new Array();

    var quoteData = this.MakeServiceCall(this.IndiceService);
    var rateData = this.MakeServiceCall(this.RateService);

    //store the data in an array first
    for (var i = 0; i < quoteData.length; i++) {
        quotes.push({ name: quoteData[i].Name, changeFromOpen: quoteData[i].ChangeFromOpen, percentChangeFromOpen: quoteData[i].PercentChangeFromOpen });
    }

    for (var i = 0; i < rateData.length; i++) {
        rates.push({ name: rateData[i].Name, value: rateData[i].RateValue });
    }

    //prepare the data for the html
    var data = '';

    try {
        for (var i = 0; i < quotes.length; i++) {
            var changeColor = (quotes[i].changeFromOpen.indexOf('-') != -1) ? "red" : "green";
            var pctColor = (quotes[i].percentChangeFromOpen.indexOf('-') != -1) ? "red" : "green";
            data += "<li>" + "<strong>" + quotes[i].name + "</strong>" + " ($<label style=\"color:" + changeColor + "\">" + quotes[i].changeFromOpen + " </label> / <label style=\"color:" + pctColor + "\">" + quotes[i].percentChangeFromOpen + " </label>%)" + "</li>";
        }
    }
    catch (e) { }
    
    try {
        for (var i = 0; i < rates.length; i++) {
            data += "<li>" + "<strong>" + rates[i].name + "</strong>: &nbsp;" + "<label>" + rates[i].value + "</label>";
        }
    }
    catch (e) { }
    
    if ( data == '') 
        data = 'Market Feed Data is temporarily unavailable';
    
    $('#marketData').html(data);
};

$(document).ready(function() { 
    //xignite.GetMarketData();
});

