(function($) {
    $.fn.toparts = function(linktrays, delay) {

        delay = (arguments.length && delay) || 5000;

        linktrays = $(linktrays);

        return this.each(function(i) {
            var toparts = $(this);
            var arts = toparts.children().hide();
            var t;
            var linktray = linktrays.eq(i);

            function switch_art(n) {
                var cur = arts.filter('.current');
                var next = (n && $(n)) || cur.next();
                if (!next.size()) next = arts.eq(0);
                cur.fadeOut().removeClass('current').trigger('hide');
                next.fadeIn().addClass('current').trigger('show');
            }

			if (arts.size() > 1) {
		            toparts.hover(function() {
		                window.clearInterval(t);
		                t = null;
		            }, function(e, n) {
		                if (t) window.clearInterval(t);
		                t = window.setInterval(function() {
		                    switch_art(n);
		                }, delay);
		            }).mouseout();
			}

            arts.each(function(i) {
                var self = $(this);
                var a = $('<a />').attr({ href: '#' }).addClass('toparts_link').text((i + 1).toString()).click(function(e) {
                    e.preventDefault();
                    toparts.trigger('mouseover');
                    switch_art(self);
                });
                self.bind('hide', function() {
                    a.removeClass('current');
                });
                self.bind('show', function() {
                    a.addClass('current');
                });
                linktray.append(a);
            });

			if (arts.size() <= 1) {
				linktray.remove();
			}

            arts.eq(0).fadeIn().addClass('current').trigger('show');

        });
    };
})(jQuery);