var CList = {

    initialize: function() {
        //set consultants lists
        CList.lists = {
            offline: new List('consultants-offline', 'ul'),
            busy: new List('consultants-busy', 'ul'),
            available: new List('consultants-available', 'ul')
        }

        //set consultants
        CList.consultants = $$('li.offline, li.available, li.busy');
        for (var i = 0; i < CList.consultants.length; i++) {
            CList.consultants[i] = new Consultant(CList.consultants[i], CList.lists);
        }
        //set auto updater
        new PeriodicalExecuter(CList.getStatus, 10);
    },

    getStatus: function() {
        var url = "/action/get-status";
        new Ajax.Request(url, {
            method: 'get',
            onSuccess: CList.updateStatus
        });
    },

    updateStatus: function( transport ) {
        var data = transport.responseText.evalJSON();
        for (var i = 0; i < CList.consultants.length; i++) {
            CList.consultants[i].setStatus( data[CList.consultants[i].id] );
        }
        if (CBox) {
            for (var i = 0; i < CBox.consultants.length; i++) {
                CBox.consultants[i].setStatus( data[CBox.consultants[i].id] );
            }
        }
    }

}

document.observe("dom:loaded", CList.initialize);
