﻿var Election =
{
    UpdateKey: function()
    {
        // Get new data, and set to check again in 5 minutes
        YAHOO.util.Connect.asyncRequest("GET", "PartiesData.aspx", { success: Election.DisplayKey });
        setTimeout("Election.UpdateKey()", 300000);
    },

    DisplayKey: function(response)
    {
        if (response.status != 200) return;

        // Clear existing key
        var key = document.getElementById('partyKey');
        if (!key) return;
        if (YAHOO.util.Dom.hasClass(key, 'pre')) return; // only update post-election view
        key.innerHTML = '';

        // Get each party from XML response and rewrite key
        if (response.responseText == null) return;
        var parties = response.responseText.match(/<Party[^>]+>/g);
        var len = parties.length;
        for (var i = 0; i < len; i++)
        {
            var partyName = parties[i].match(/Name="([A-Za-z- ]+)"/)[1];
            var colour = parties[i].match(/Colour="([A-Za-z ]+)"/)[1];
            var colourCode = parties[i].match(/ColourCode="([A-Za-z0-9 ]+)"/)[1];
            var seats = parseInt(parties[i].match(/Seats="([0-9]+)"/)[1]);
            seats = (seats == 1) ? '1 seat' : seats + ' seats';
            key.innerHTML += '<dt><span style="background: #' + colourCode + '">' + colour + ':</span> ' + partyName + '</dt><dd>' + seats + '</dd>';
        }

    }

}
YAHOO.util.Event.onAvailable('partyKey', function() { setTimeout("Election.UpdateKey()", 300000) });
