
(function ($) {
    $.fn.Zoomer = function (b) {
        var c = $.extend({
            speedView: 400,
            speedRemove: 400,
            altAnim: false,
            speedTitle: 400,
            initHeight: '100px',
            initWidth: '100px',
            initPadding: '5px',
            zoomHeight: 200,
            zoomWidth: 200,
            debug: false
        }, b);
        var d = $.extend(c, b);
        function e(s) {
            if (typeof console != "undefined" && typeof console.debug != "undefined") {
                console.log(s)
            } else {
                alert(s)
            }
        }
        if (d.speedView == undefined || d.speedRemove == undefined || d.altAnim == undefined || d.speedTitle == undefined) {
            e('speedView: ' + d.speedView);
            e('speedRemove: ' + d.speedRemove);
            e('altAnim: ' + d.altAnim);
            e('speedTitle: ' + d.speedTitle);
            return false
        }
        if (d.debug == undefined) {
            e('speedView: ' + d.speedView);
            e('speedRemove: ' + d.speedRemove);
            e('altAnim: ' + d.altAnim);
            e('speedTitle: ' + d.speedTitle);
            return false
        }
        if (typeof d.speedView != "undefined" || typeof d.speedRemove != "undefined" || typeof d.altAnim != "undefined" || typeof d.speedTitle != "undefined") {
            if (d.debug == true) {
                e('speedView: ' + d.speedView);
                e('speedRemove: ' + d.speedRemove);
                e('altAnim: ' + d.altAnim);
                e('speedTitle: ' + d.speedTitle)
            }

            return $(this).find("li").each(function () {
                var $this = $(this);

                $this.hover(function () {
                    var $item = $(this);
                    var $img = $this.find('img');
                    var $imgSrc = $img.attr("src");
                    var $imgAltSrc = $img.attr("data-altsrc");

                    $item.css({ 'z-index': '10' });
                    $img.addClass("hover").stop().animate({
                        marginTop: '-20px',
                        marginLeft: '-19px',
                        top: '50%',
                        left: '50%',
                        width: d.zoomWidth,
                        height: d.zoomHeight
                    }, d.speedView).attr("src", $imgAltSrc).attr("data-altsrc", $imgSrc);
                   
                }, function () {
                    var $item = $(this);
                    var $img = $this.find('img');
                    var $imgSrc = $img.attr("src");
                    var $imgAltSrc = $img.attr("data-altsrc");

                    $item.css({ 'z-index': '0' });
                    $img.removeClass("hover").stop().animate({
                        marginTop: '0',
                        marginLeft: '0',
                        top: '0',
                        left: '0',
                        width: d.initWidth,
                        height: d.initHeight
                    }, d.speedRemove).attr("src", $imgAltSrc).attr("data-altsrc", $imgSrc); ;
                })

            });

        }
    }
})(jQuery);
