var QTV = {};
QTV.initHovers = function() {
    var mouseoverMenu = function(menuItem) {
        if (!(menuItem.hasClass('hover'))) {
            menuItem.addClass('hover');
        }
    }
    var mouseoutMenu = function(menuItem) {
        menuItem.removeClass('hover');
    }

    $(document.body).getElements('.pseudo-hover').each(function(el) {
        el.removeClass('pseudo-hover');
        el.addEvents({'mouseenter': mouseoverMenu.pass(el), 'mouseleave': mouseoutMenu.pass(el)});
    });
}

QTV.initMenuHovers = function() {
    /*
        Выпадающее меню скрывается моментально при наведении на другой пункт меню.
        Чтобы сделать задержку в этом случае, нужно запоминать все прошлые пункты
        меню в массив.
    */
    var timeoutID = null;
    var hoveredMenuItem = null;
    var menuItems = $(document.body).getElements('.menu_top > li');

    var hideMenu = function(menuItem) {
        this.removeClass('hover');
        hoveredMenuItem = null;
    }

    var mouseoverMenu = function(menuItem) {
        clearTimeout(timeoutID);
        if (menuItem != hoveredMenuItem) {
            menuItems.each(function(el){
                el.removeClass('hover');
            });
        }
        if (!menuItem.hasClass('hover')){
            menuItem.addClass('hover');
        }
    }

    var mouseoutMenu = function(menuItem) {
        hoveredMenuItem = menuItem;
        timeoutID = hideMenu.delay(400, menuItem);
    }

    menuItems.each(function(el) {
        el.addEvents({'mouseenter': mouseoverMenu.pass(el), 'mouseleave': mouseoutMenu.pass(el)});
    });    
}

QTV.initSearchForm = function() {
    var searchForm = $(document.body).getElement('.header .search_form');
    searchForm.getElement('.btn_search').addEvent('click', function(event){
        Energine.cancelEvent(event);
        searchForm.submit();
    });    
}

window.addEvent('domready', function() {
    $each(QTV, function(arg) {
        if ($type(arg) === 'function') {
            arg();
        }
    });
});
