не суть, к месту эти линии там или нет. Нарисовали - значит нужно делать.
melky у меня проблема в следующем, ( я хоть и изменил немного ваш код, но 
вроде не поломал его логики ). Но он зараза по прежнему определят мне 4n+5 из всех элементов, а ведь должен определять этот 4n+5 из видимых
jQuery(function ($) {
        var hide = $('.filter');
        var collection = $('.items-bl li');
        hide.click(function () {
            collection.removeClass('line');
            collection.filter(':visible').filter(function (index) {
                var isMatching = index && index % 4 === 0;
                return isMatching;
            }).add(collection.last()).addClass('line');
        });
        collection.removeClass('line').filter(':nth-child(4n+5)').addClass('line');
    });
верстка лежит все 
там же