﻿
function PullNumbers() {
    re = /(^\w+)_(\w+)$/i;

    $('.updateSection').each(function (i, o) {
        var values = new Array();
        InsertAjaxLoading(o);
        ResizeAjaxLoading(o);
    });

    $('.updateSection').each(function (i, o) {
        var values = new Array();
        $('span.performanceNumber').each(function (i, o) {
            $.each($(o).attr('class').split(/\s+/), function (i, c) {

                if (c.match(re) != null) {
                    try {
                        var matches = c.match(re);
                        var lookupVal = new Object();
                        lookupVal.Ticker = matches[1];
                        lookupVal.ValueCode = matches[2];
                        values.push(lookupVal);
                    }
                    catch (err) { }
                }
            });
        });
        $.ajax({
            type: "POST",
            url: "/webservices/PerformanceNumberUpdater.asmx/UpdatePerformanceNumbers",
            data: "{'LookupCodes': " + Sys.Serialization.JavaScriptSerializer.serialize(values) + "}",
            success: function (result) {
                $.each(result.d, function (i, v) {
                    $("span." + v.Ticker + "_" + v.ValueCode).html(v.Value);
                });
            },
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            async: false
        });
        AjaxLoadingHide(o);
    });
}


function InsertAjaxLoading(ajaxSection) {
   var container = $(ajaxSection);
   container.addClass('ajaxContainer');

   
   container.append("<div class=\"ajaxLoading\"><div class=\"ajaxBackground\"></div><div class=\"progress clearfix\"><div class=\"ajaxImg\">" +
   "<img src=\"/images/admin_throbber.gif\" alt=\"\" /></div> <div class=\"ajaxMessage\">Loading &hellip;</div></div></div>");
}

function ResizeAjaxLoading(ajaxSection) {
    var ajaxContainer = $(ajaxSection);
    var ajaxLoading = ajaxContainer.children('div.ajaxLoading');
    var ajaxBackground = ajaxLoading.children('div.ajaxBackground');
    var ajaxProgress = ajaxLoading.children('div.progress');

    ajaxLoading.height($(ajaxContainer).height());
    ajaxBackground.height($(ajaxContainer).height());
    ajaxBackground.height($(ajaxContainer).height());
    ajaxProgress.css('top', $(ajaxContainer).height() / 2 - 15);
    ajaxProgress.css('left', $(ajaxContainer).width() / 2 - $(ajaxProgress).width() / 2);
    ajaxLoading.show();
}

function AjaxLoadingHide(ajaxSection) {
    var ajaxContainer = $(ajaxSection).closest('div.ajaxContainer');
    var ajaxLoading = ajaxContainer.children('div.ajaxLoading');

    $(ajaxLoading).hide();
}

$(document).ready(function () {
    PullNumbers();
});
