var Latest = new Class({

        initialize: function (url, form_id, orderby)
        {
            this.url = url;
            this.form = $(form_id);
            this.orderby = orderby;

            $('latest_releases_period').addEvent('change', this.onChange.bindWithEvent(this, null));
            $('latest_by_date').addEvent('click', this.onChange.bindWithEvent(this, 'date'));
            $('latest_by_score').addEvent('click', this.onChange.bindWithEvent(this, 'score'));

        },

        onChange: function(e, what)
        {
            if (null == what)
            {
                $('page').value = 1;
            }
            this.orderby = what ? what : this.orderby;
            $('spinner').setStyle('visibility','visible');
            new Event(e).stop();
            var ajax = new Ajax(this.url, {
                method: 'post',
                data: this.form.toQueryString() + '&order=' + this.orderby,
                onComplete: this.onLoad.bindAsEventListener(this, what)
            }).request();
        },

        onLoad: function(r, what)
        {
            $('latest_releases_pagelet').setHTML(r);
            $('spinner').setStyle('visibility','hidden');
            this.updateControls(what);
        },

        updateControls: function(what)
        {
            if ('date' == what)
            {
                $('latest_by_date').removeClass('order_by');
                $('latest_by_score').addClass('order_by');
            }
            if ('score' == what)
            {
                $('latest_by_date').addClass('order_by');
                $('latest_by_score').removeClass('order_by');
            };
        }
    });
