(function ($) {
    $.fn.verticaltabs = function (j) {
        var k = {
            speed: 100,
            slideShow: true,
            slideShowSpeed: 1000,
            activeIndex: 0,
            playPausePos: "bottomRight"
        };
        var j = $.extend(k, j);
        return this.each(function () {
            var a = $(this);
            var b = $(a).children(".verticalslider_tabs").children();
            var c = $(a).children(".verticalslider_contents").children();
            var d;
            var e = "<div class=\"arrow\">&nbsp;</div>";
            var f = k.activeIndex;
            var g = j.slideShow;
            var h;
            var i;
            $(c[k.activeIndex]).addClass("activeContent");
            $(b[f]).addClass("activeTab").append(e);
            if (j.slideShow) {
                i = $(b).length * $(".verticalslider_tabs a").outerHeight();
                $(a).children(".verticalslider_contents").append("<div class=\"playPause\"><div class=\"play\"><a href=\"#\"></a></div><div class=\"pause\"><a href=\"#\"></a></div></div>");
                switch (j.playPausePos) {
                case "topRight":
                    $(".verticalslider .playPause").css({
                        marginTop: "0px",
                        marginLeft: $(".verticalslider_contents").width() - $(".verticalslider .playPause a").width()
                    });
                    break;
                case "topLeft":
                    $(".verticalslider .playPause").css({
                        marginTop: "0px",
                        marginLeft: "0px"
                    });
                    break;
                case "bottomRight":
                    $(".verticalslider .playPause").css({
                        marginTop: i - $(".verticalslider .playPause a").height(),
                        marginLeft: $(".verticalslider_contents").width() - $(".verticalslider .playPause a").width()
                    });
                    break;
                case "bottomLeft":
                    $(".verticalslider .playPause").css({
                        marginTop: i - $(".verticalslider .playPause a").height(),
                        marginLeft: "0px"
                    });
                    break
                }
            }
            $(".verticalslider_tabs a", a).hover(function () {
                if (!$(this).parent().hasClass("activeTab")) {
                    f = $(this).parent().prevAll().length;
                    switchContents();
                    if (g) {
                        clearTimeout(h);
                        g = false;
                        $(".pause a", a).css("display", "none");
                        $(".play a", a).css("display", "block")
                    }
                }
                return false
            });
            $(".play, .pause", a).click(function () {
                g = !g;
                $(".play a, .pause a", a).toggle();
                if (g) {
                    h = setTimeout(function () {
                        autoUpdate()
                    }, j.speed + j.slideShowSpeed)
                }
                return false
            });

            function switchContents() {
                $(".activeTab", a).removeClass("activeTab");
                $('.arrow', a).remove();
                $(b[f], a).addClass("activeTab").append(e);
                $(".activeContent", a).fadeOut(j.speed).removeClass(".activeContent");
                $(c[f], a).fadeIn(j.speed).addClass("activeContent")
            };

            function autoUpdate() {
                if (g) {
                    f++;
                    if (f == c.length) {
                        f = 0
                    }
                    switchContents();
                    h = setTimeout(function () {
                        autoUpdate()
                    }, j.speed + j.slideShowSpeed)
                }
            };
            if (g) {
                h = setTimeout(function () {
                    autoUpdate()
                }, j.speed + j.slideShowSpeed)
            }
        })
    }
})(jQuery);
