var requestList = {
    opTitle: 'Раскрыть все',
    clTitle: 'Свернуть все',
    settingsUrl: "/requests/settings",
    messageUrl: "/requests/message",
    masMailUrl: "/requests/massMessage",
    requestUrl: "/requests/get",

    init: function() {
        $('#table a[togglerList=true]').live('click', function(){
            var dtsId = $(this).parents('tr').attr('id').replace('item', 'details');
            var click = $(this);
            $('#' + dtsId).toggle('blind', function(){
                if ($(click).hasClass('open')) {
                    
                    if ($('#' + dtsId).text().length == 0) {
                        $.ajax({
                            url: requestList.requestUrl + '?id=' + dtsId.replace('details-', ''),
                            success: function(data) {
                                $('#' + dtsId).html(data);
                            }
                        });
                    }
                    
                    $(click).attr('class', 'close');
                    $(click).attr('title', 'свернуть');
                } else {
                    $(click).attr('class', 'open');
                    $(click).attr('title', 'раскрыть');
                }
            });
        });
        
        $('#table a[removeItem=true]').live('click', function(){
            return requestList.remove(this);
        });
        
        $('.show-settings').click(function(){
            $('#settings-window').toggle();
        });
        
        $('.buttons input[name=keyword]').focusin(function(){
            $(this).css({
                color: 'black'
            });
            
            if ($(this).val() == 'Ключевые слова') {
                $(this).val('');
            }
            
        }).focusout(function(){
            $(this).css({
                color: 'gray'
            });
            
            if ($.trim($(this).val()) == '') {
                $(this).val('Ключевые слова');
            }
            
        }).bind('keypress', function(event){
            if (event.which == '13') {
                $('.buttons img').click();
            }
        });
        
        $('.buttons img').click(function(){
            requestList.showLoader();
            
            if ($('.buttons input[name=keyword]').val() == 'Ключевые слова') {
                $('.buttons input[name=keyword]').val('');
            }
            
            $.ajax({
                url: $('.top-row a.desc,.top-row a.asc').attr('href'),
                data: requestList.getData(1),
                success: function(data) {
                    $('#request-table-content').html(data);
                    requestList.hideLoader();
                }
            });
        });
    },
    
    getData: function(page) {
        $el = $('#request-list-form table:first');
        var keywords = ($('.buttons input[name=keyword]').val() == 'Ключевые слова')
            ? ''
            : $('.buttons input[name=keyword]').val()
        
        return {
            'id'        : $el.attr('conferenceId'),
            'page'      : "undefined" == typeof(page) ? $el.attr('page') : page,
            'keyword'   : keywords,
            'sort'      : $('.top-row a.desc,.top-row a.asc').attr('sort'),
            'order'     : $('.top-row a.desc,.top-row a.asc').attr('class'),
        };
    },
    
    showLoader: function() {
        if ($('#table .w-100').length > 0) {
            top = $('#table .w-100').offset().top - $('div.body').offset().top;
            left = $('#table .w-100').offset().left;
            width = $('#table .w-100').width();
            height = $('#table .w-100').height();

            $('#table .ui-widget-overlay').css({
                left: left,
                top: top,
                width: width,
                height: height
            }).show();
        }
    },
    
    hideLoader: function() {
        $('#table .ui-widget-overlay').hide();
    },
    
    sort: function(el, id) {
        $el = $(el);
        if ($el.hasClass('none')) {
            $('.top-row a').attr('class', 'none');
            $el.attr('class', 'desc');
        } else {
            if ($el.hasClass('desc')) {
                $el.attr('class', 'asc');
            } else {
                $el.attr('class', 'desc');
            }
        }
        
        this.showLoader();
        $.ajax({
            url: $el.attr('href'),
            data: this.getData(),
            success: function(data) {
                $('#request-table-content').html(data);
                requestList.hideLoader();
            }
        });
        
        return false;
    },
    
    remove: function(el) {
        $el = $(el);
        id = $el.parents('tr').attr('id').replace('item-', '');
        $el.parent().html('<img src="/images/indicator-small.gif" />');
        
        $.ajax({
            url: $el.attr('href'),
            data: { 'id' : id },
            type: 'post',
            dataType: 'json',
            success: function(data) {
                $tr1 = $('#item-' + id);
                $tr2 = $tr1.next();
        
                if (data.result) {
                    $tr1.remove();
                    $tr2.remove();
                } else {
                    $('.actions', $tr1).html('<img src="/images/i_delete.png" />');
                }
            }
        });
        
        return false;
    },
    
    toggleAll: function(el) {
        $('#table a[togglerList=true]').click();
        var value = $(el).text();
        if (this.opTitle == value) {
            $(el).text(this.clTitle);
        } else {
            $(el).text(this.opTitle);
        }
    },
    
    doSettings: function() {
        document.location.href = this.settingsUrl + '?id=' + $('#conferenceId').val();
    },
    
    selectAll: function(el) {
        if ($(el).attr('checked')) {
            $('#table .row .selector input[type=checkbox]').attr('checked', 'checked');
        } else {
            $('#table .row .selector input[type=checkbox]').removeAttr('checked');
        }
        
    },
    
    doDeleteSelected: function() {
        this.showLoader();
        
        $el = $('a[class=desc],a[class=asc]', '.top-row');
        
        var params = $('#table .row .selector input[type=checkbox]:checked').serialize();
        params += '&id=' + $('#request-list-form .w-100').attr('conferenceId');
        params += '&page=' + $('#request-list-form .w-100').attr('page');
        params += '&sort=' + $el.attr('sort');
        params += '&order=' + $el.attr('class');
        
        $.ajax({
            url: $('#request-list-form').attr('action'),
            data: params,
            type: 'post',
            success: function(data) {
                requestList.hideLoader();
                $('#request-table-content').html(data);
            }
        });
    },
    
    settings: function() {
        
    },
    
    doMessageForSelected: function() {
        if (0 == $('#sendMassMessage').html().length) {
            $.ajax({
                url: this.messageUrl + '?id=' + $('#conferenceId').val(), 
                success: function(data){
                    $('#sendMassMessage').html(data);
                    $('#sendMassMessage').toggle('blind');
                    
                    $('td.selector input:checkbox').click(function(){
                        requestList.checkSelectedUsers();
                    });
                }
            });
        } else {
            $('#sendMassMessage').toggle('blind');
        }
        
        this.checkSelectedUsers();
    },
    
    checkSelectedUsers: function() {
        if ($('td.selector input:checked').length > 0) {
            $('#mass-message-form input[type=submit]').removeAttr('disabled');
        } else {
            $('#mass-message-form input[type=submit]').attr('disabled', 'disabled');
        }
    },
    
    addAlias: function(el) {
        insertAtCursor($('#messageTemplate')[0], $(el).val());
    },
    
    sendMassMail: function(el) {
        if ($('td.selector input:checked').length == 0) {
            $('#resultSended').html('Выберите пользователей которым вы хотите отослать сообщение');
        } else {
            $('#loadingMessage').show();
            $('#resultSended').hide();
            $.ajax({
                url: this.masMailUrl,
                type: 'post',
                data: $('td.selector input:checkbox').serialize() + '&id=' + $('#conferenceId').val() + '&message=' + $('#messageTemplate').val(),
                success: function(data) {
                    $('#resultSended').html(data);
                    $('#loadingMessage').hide();
                    $('#resultSended').show();
                    
                    $('#mass-message-form input[type=submit]').removeAttr('disabled');
                }
            });

        }
        
        
        return false;
    }
}

