/* Events object
------------------------------------------------------------------------------------------------ */

$.events = function() {

    var events = '#events_overview';
    var event_detail = '#event_detail';

    if($(event_detail).length) {
        $('.register', event_detail).removeClass('hideme');
    }

    if(!$(events).length)
        return;


    $(events).prepend(
        form = $('<form>').attr('action', '')
    );

    $.events.createFilter(form, 'category');

    // Change

    $('select', form).change(function() {

        var filter_value = new Array();

        $('tbody tr', events).show();
        $('select', form).find('option:selected').each(function() {
            filter_value.push(this.value);
        });

        $('tbody tr', events).each(function() {
            for (var i = 0; i < filter_value.length; i++) {

                if (!$(this).children('td').hasClass(filter_value[i]) && filter_value[i].length)
                    $(this).hide();
            }
        });

    });

};

$.events.createFilter = function(form, option) {

    var options         = new Array(),
        options_name    = new Array(),
        options_value   = new Array(),
        filter_head     = 'thead .' + option,
        filter_body     = 'tbody .' + option;

    if (!$(filter_head).length)
        return;

    // Create select

    $(form).append(
        $('<label>').attr('for', 'filter_' + option).addClass('select').text($(filter_head).text()),
        filter_select = $('<select>').attr('id', 'filter_' + option).append(
            $('<option>').attr('value', '').text(show_all)
        )
    );

    $(filter_body).each(function() {

        var td_class    = $(this).attr('class'),
            td_text     = $.trim($(this).text()),
            create      = 1;

        for (var i=0; i<options.length; i++) {
            if(options[i] == td_text)
                create = 0;
        }
        if (create) {
            options.push(td_text);
            options_name.push(td_text);
            options_value.push(td_class);
        }

    });

    options.sort();

    for (var i=0; i<options.length; i++) {

        var item_name       = options[i],
            item_key        = $.inArray(item_name, options_name),
            item_value      = options_value[item_key];

        $(filter_select).append(
            $('<option>').attr('value', item_value.split(' ')[1]).text(item_name)
        );

    }

};

