var currentPage = 1;

$(document).ready(function(){
    $('.filter .checkbox').change(UpdatePrograms);
    $('.pagination ul li a').click(ChangePage);
    
    EnableCheckboxes();
});

function UpdatePrograms()
{
    // Отключаем чекбоксы
    DisableCheckboxes();
    
    // Показываем картинку загрузки
    ShowLoadingBlock();
    
    var whoms = "";
    $('.filter .whoms .checkbox:checked').each(function()
    {   
        if (whoms.length != 0)
            whoms += "|";
            
        whoms += $(this).val();
    });
    
    var types = "";
    $('.filter .types .checkbox:checked').each(function()
    {   
        if (types.length != 0)
            types += "|";
            
        types += $(this).val();
    });
    
    var countries = "";
    $('.filter .countries .checkbox:checked').each(function()
    {   
        if (countries.length != 0)
            countries += "|";
            
        countries += $(this).val();
    });
    
    
    // Отправляем запрос
    $.post(
        '/ajax/programs/',
        {
            whoms : whoms,
            types : types,
            countries : countries,
            page : currentPage
        },
        ProgramsResponse,
        "json"
    );
}

function DisableCheckboxes()
{
    $('.filter .checkbox').attr('disabled', true);
}

function EnableCheckboxes()
{
    $('.filter .checkbox').attr('disabled', false);
}

function ShowLoadingBlock()
{
    $('.results .overlay').show();
}

function HideLoadingBlock()
{
    $('.results .overlay').hide();
}

function ProgramsResponse(data, status)
{
    EnableCheckboxes();
    HideLoadingBlock();
    
    if (!ProgramsAJAXResponseHandler(data, status)) return;
    
    $('#foundPrograms').text(data.found);
    
    var tableBody = $('.results .table');
    $('.results .table tr[class!=thead]').remove();
    if (data.programs.length > 0)
    {
        for (var i = 0; i < data.programs.length; i++)
        {
            tableBody.append('<tr><td class="name"><a href="'+ data.programs[i].fullAlias +'">' + data.programs[i].title + '</a></td><td class="place">' + data.programs[i].country + '</td><td class="speciality">' + data.programs[i].subType + '</td><td class="foundation">' + data.programs[i].institution + '</td><td class="price">' + data.programs[i].price + '</td></tr>');
        }
        $('.results .table tr:odd').addClass("odd");
    }
    
    SetPagesLinks(data.pages, data.page);
}

function ProgramsAJAXResponseHandler(data, status)
{
    if (status == 'success')
    {
        if (data.error)
        {
            $.jGrowl(data.error);
            return false;
        }
    }
    else
    {
        $.jGrowl("Ошибка запроса");
        return false;
    }
    return true;
}

function SetPagesLinks(pages, current)
{
    var pagesList = $('.pagination ul');
    pagesList.empty();
    
    for (var i = 1; i <= pages; i++)
    {
        if (i == current)
            pagesList.append('<li class="current"><a href="#">' + i + '</a></li>');
        else
            pagesList.append('<li><a href="#">' + i + '</a></li>');
    }
    
    var paginationWidth = 0;
    $(".pagination li").each(function(){
         paginationWidth = paginationWidth + $(this).outerWidth();
    });
    $(".pagination").width(paginationWidth);
    
    $('.pagination ul li a').click(ChangePage);
}

function ChangePage(event)
{
    event.preventDefault();
    if ($(this).text() == currentPage) return;
    
    currentPage = $(this).text();
    
    $(this).parent().parent().children('li').removeClass('current');
    $(this).parent().addClass('current');
    
    UpdatePrograms();
}
