
// Скорость анимации списка акций (slow, normal, fast)
var ANIMATION_SPEED = 500;

// placeholder для строки поиска
var search_placeholder = '';

if (jQuery.browser.msie)
{
    try
    {
        // Фиксим баг IE с постоянной загрузкой фоновых изображений у ссылок
        document.execCommand("BackgroundImageCache", false, true);
    }
    catch (err) {}
}

/**
 * document.ready
 */
$(function()
{
    // установить placeholder для строки поиска
    search_prepare();

    // установить обработчик для пунктов главного меню (раскрытие/закрытие)
    // menu_prepare();

    // подготовить таблицы для :hover в IE
    table_prepare();

    // подготовить акций для анимации
    akcii_prepare();
});

/**
 * Установить placeholder для строки поиска
 */
function search_prepare()
{
    if (!jQuery.browser.safari && document.getElementById('txt_search'))
    {
        var search_field   = $('#txt_search');
        search_placeholder = search_field.attr('placeholder');
        search_field.focus(search_toggle).blur(search_toggle);
        if (!search_field.val())
        {
            search_field.val(search_placeholder).addClass('idle');
        }
    }
}

/**
 * Обработать placeholder для строки поиска
 */
function search_toggle()
{
    if ($(this).hasClass('idle'))
    {
        $(this).val('').removeClass('idle');
    }
    else if (!$(this).val())
    {
        $(this).val(search_placeholder).addClass('idle');
    }
}

/**
 * Установить обработчик для пунктов главного меню (раскрытие/закрытие)
 */
function menu_prepare()
{
    $('#menu-1 li a').not($('#menu-1 li li a')).click(menu_toggle);
}

/**
 * Обратотать клик по пункту главного меню
 */
function menu_toggle(event)
{
    var sub = $('ul:first', $(this).parent());
    if (sub.length > 0)
    {
        if (sub.is(':hidden'))
        {
            sub.css({overflow: 'hidden'}).animate({height: 'show'/*, opacity: 'show'*/}, 'fast', 'linear', function()
            {
                // возвращаем ClearType в IE7
                // if (jQuery.browser.msie) this.style.removeAttribute('filter');
            });
        }
        else
        {
            sub.css({overflow: 'hidden'}).animate({height: 1/*, opacity: 'hide'*/}, 'fast', 'linear', function()
            {
                sub.css({display: 'none', overflow: 'auto', height: 'auto'});
            });
        }
        event.stopPropagation();
        return false;
    }
    else
    {
        event.stopPropagation();
    }
}

/**
 * Подготовить таблицы для :hover в IE
 */
function table_prepare()
{
    var tables = $('#bar-center table:not(.layout)');
    var rows   = $('tr', tables);

    var brows  = rows.filter('tr:not(:has(th))');
    brows.hover(brow_mouseover, brow_mouseout);

    // var hrows  = rows.filter('tr:has(th)');
    $('tr:has(th):first th, tr:has(th):first td', tables).addClass('b_top');
    $('tr:has(th):last th, tr:has(th):last td', tables).addClass('b_bottom');
    $('tr:has(th) > :first-child', tables).addClass('b_left');
    $('tr:has(th) > :last-child', tables).addClass('b_right');
}

/**
 * Обработать событие mouseover для строки таблицы
 */
function brow_mouseover()
{
    var bcells = $('td:not(td[rowspan]),td[rowspan=1]', this);
    bcells.addClass('hover');
}

/**
 * Обработать событие mouseout для строки таблицы
 */
function brow_mouseout()
{
    var bcells = $('td:not(td[rowspan]),td[rowspan=1]', this);
    bcells.removeClass('hover');
}

/**
 * Подготовить акций для анимации
 */
function akcii_prepare()
{
    // сделать предварительную загрузку иконок для анимации списка акций
    $('#akcii.active dt img').each(function()
    {
        $.preloadImages([
            $(this).attr('big'),
            $(this).attr('ico')
        ]);
    });

    // устанавить обработчик заголовков списка акций для анимации
    $('#akcii.active dd h3 span').click(akcii_toggle);

    // отобразить первую акцию
    $('#akcii.active dl:eq(0)').each(function()
    {
        $('dd h3',      this).css({fontSize: '1.9em', paddingTop: '0em'});
        $('dd h3 span', this).css({cursor: 'text', color: '#000000', borderBottom: 'none'});
        $('dt img',     this).css({height: 160, width: 160}).attr('src', $('dt img', this).attr('big'));
        $('dd div',     this).css({display: ''});
    });

    // скрыть все акции, кроме первой
    $('#akcii.active dl:gt(0)').each(function()
    {
        $('dd h3',      this).css({fontSize: '1.2em', paddingTop: '0.6em'});
        $('dd h3 span', this).css({cursor: 'pointer', color: '#363636', borderBottom: '1px dotted #8F8F8F'});
        $('dt img',     this).css({height: 40, width: 40}).attr('src', $('dt img', this).attr('ico'));
        $('dd div',     this).css({display: 'none'});
    });
}

/**
 * Обработать клик по заголовку акции
 */
function akcii_toggle()
{
    var rows  = $(this).parent().parent().parent().parent();
    var dl    = $(this).parent().parent().parent();
    var icon  = $('dt img',     dl);
    var title = $('dd h3',      dl);
    var span  = $('dd h3 span', dl);
    var div   = $('dd div',     dl);

    // если акция скрыта, то открываем описание
    if (div.is(':hidden'))
    {
        // скрыть все открытые акции
        $('dl:has(dd div:visible)', rows).each(function()
        {
            var dl    = $(this);
            var icon  = $('dt img',     dl);
            var title = $('dd h3',      dl);
            var span  = $('dd h3 span', dl);
            var div   = $('dd div',     dl);

            // уменьшить иконку акции
            icon.animate({height: 40, width: 40}, ANIMATION_SPEED, 'linear', function()
            {
                // сменить крупную иконку на мелкую
                $(this).attr('src', icon.attr('ico'));
            });

            // скрыть текст описания акции
            div.css({overflow: 'hidden'}).animate({height: 1, opacity: 'hide'}, ANIMATION_SPEED, 'linear', function()
            {
                div.css({display: 'none', overflow: 'auto', height: 'auto'});
            });

            // изменить размер и стиль заголовка
            title.animate({fontSize: '1.2em', paddingTop: '0.6em'}, ANIMATION_SPEED, 'linear', function()
            {
                span.css({cursor: 'pointer', color: '#363636', borderBottom: '1px dotted #8F8F8F'});
            });
        });

        // показать скрытую акцию
        {
            // сменить мелкую иконку на крупную
            icon.attr('src', icon.attr('big'));

            // увеличить иконку акцию
            icon.animate({height: 160, width: 160}, ANIMATION_SPEED, 'linear');

            // показать текст описания акции
            div.css({overflow: 'hidden'}).animate({height: 'show', opacity: 'show'}, ANIMATION_SPEED, 'linear', function()
            {
                // возвращаем ClearType в IE7
                if (jQuery.browser.msie) this.style.removeAttribute('filter');
            });

            // изменить стиль заголовка
            span.css({cursor: 'text', color: '#000000', borderBottom: 'none'});

            // изменить размер заголовка
            title.animate({fontSize: '1.9em', paddingTop: '0em'}, ANIMATION_SPEED, 'linear');
        }
    }

    return false;
}
