jQuery.fn.blockhide = function(options) {

    // настройки по умолчанию
    var options = jQuery.extend({
        imageIdPostfix: 'Image',// постфикс id изображения - скрыть/показать - добавляется к id блока для получения id изображения
        blockCookieNamePostfix:'BlockState',
        imageUrl: 'images/',// url где лежат картинки - префикс - добавляется вначале к id блока для получения url изображения
        imageShowPostfix: '_show.gif',// постфикс изображение с надписью "показать" - добавляется к id блока для получения url изображения
        imageShowHoverPostfix: '_show_over.gif',// постфикс изображение с надписью "показать" при наведении - добавляется к id блока для получения url изображения
        imageHidePostfix: '.gif',// постфикс изображение с надписью "скрыть" - добавляется к id блока для получения url изображения
        imageHideHoverPostfix: '_over.gif'// постфикс изображение с надписью "скрыть" при наведении - добавляется к id блока для получения url изображения
    }, options);

    getExpiresTime = function () {

        var date = new Date();
        date.setTime(date.getTime()+(30*24*60*60*1000));
        var expires = date.toGMTString();
        return expires;
    }

    hideBlock = function(block, image, imageShowUrl, blockCookieName) {

        expires = getExpiresTime();
        block.hide();
        image.attr('src', imageShowUrl);
        setCookie(blockCookieName, 'hidden', expires);
    }

    return this.each(function() {

        var $this = $(this);
        var $id = $this.attr('id');
        var $image = $('#' + $id + options.imageIdPostfix);

        var imageShowUrl = options.imageUrl + $id + options.imageShowPostfix;
        var imageShowHoverUrl = options.imageUrl + $id + options.imageShowHoverPostfix;
        var imageHideUrl = options.imageUrl + $id + options.imageHidePostfix;
        var imageHideHoverUrl = options.imageUrl + $id + options.imageHideHoverPostfix;
        var blockCookieName = $id + options.blockCookieNamePostfix;

        var rightPanelState  = getCookie(blockCookieName);

        if (!(rightPanelState == '' || rightPanelState == 'visible')) {

            hideBlock($this, $image, imageShowUrl, blockCookieName);
        }
        
        $image.hover(
            function () {
    
                if ($this.css('display') == 'none') {//если скрыт
                    $image.attr('src', imageShowHoverUrl);
                } else {
                    $image.attr('src', imageHideHoverUrl);
                }
            },
            function () {
                if ($this.css('display') == 'none') {//если скрыт
                    $image.attr('src', imageShowUrl);
                } else {
                    $image.attr('src', imageHideUrl);
                }
            }
        ).click(function() {

            if ($this.css('display') == 'none') {//если скрыт

                $this.show();
                $image.attr('src', imageHideUrl);
                setCookie(blockCookieName, 'visible', getExpiresTime());

            } else {

                hideBlock($this, $image, imageShowUrl, blockCookieName);
            }
            return false;
        });
    });
};