﻿(function ($)
{
    $.fn.rotator = function (settings)
    {
        var s = $.extend({}, $.fn.rotator.defaults, settings);
        $(this).each(function ()
        {
            var list = $(this).find("div");
            if (!list || list.length == 0)
                return;

            height = $(this).height();
            width = $(this).width();

            var vars = {};
            var host = $(this);
            var element = $(this)[0];
            vars.tabs = new Array();
            $.data(element, 'vrotator', vars);

            $(this).append("<table cellspacing='0' cellpadding='0' style=\"width:100%; height:100%;\"><tr><td valign='top' align='left'><div id='rotatorContent' style='overflow:hidden; position:absolute;'/></td></tr></table>");
            var content = $(this).find('#rotatorContent');

            for (var i = 0; i < list.length; i++)
            {
                try
                {
					if (i != 0)
						$(list[i]).addClass("viblend-hidden");
                    vars.tabs.push(list[i]);
                }
                catch (e)
                {
                }
            }

            vars.current = 0;

            content.css({ height: height - 20 + 'px' });
            content.css({ width: width + 'px' });

            content.append("<div id='btnLeft' style='position: absolute; width:71px; height:30px;'/>");
            content.append("<div id='btnRight' style='position: absolute; width:71px; height:30px;'/>");

            var btnLeft = $(this).find('#btnLeft');
            var btnRight = $(this).find('#btnRight');

            var top = 5;//(height - 30) / 2;
            var right = width - 71;
            btnLeft.css({ left: right + 'px' });
            btnLeft.css({ top: top + 'px' });
            btnRight.css({ left: right + 10 + 'px' });
            btnRight.css({ top: top + 'px' });

            btnLeft.addClass("viblend-left-arrow");
            btnLeft.addClass("viblend-hidden");
            btnRight.addClass("viblend-right-arrow");
            btnRight.addClass("viblend-hidden");

            for (var i = 0; i < list.length; i++)
            {
                var tab = $(list[i]);
                tab.remove();
                tab.appendTo(content);
            }

            $(this).bind('mouseenter', function (event)
            {
                btnLeft.removeClass("viblend-hidden");
                btnLeft.addClass("viblend-visible");				
                btnRight.removeClass("viblend-hidden");
                btnRight.addClass("viblend-visible");
            });

            $(this).bind('mouseleave', function (event)
            {
                btnLeft.addClass("viblend-hidden");
                btnLeft.removeClass("viblend-visible");
                btnRight.addClass("viblend-hidden");
                btnRight.removeClass("viblend-visible");
            });

            btnLeft.bind('click', function (event)
            {
                $.fn.rotator.movetab(false, host);
            });

            btnRight.bind('click', function (event)
            {
                $.fn.rotator.movetab(true, host);
            });
            
            content.bind('click', function (event)
            {
                $.fn.rotator.movetab(true, host);
            });
        });
    }

    $.extend($.fn.rotator,
    {
        movetab: function (moveNext, host)
        {
            var vars = $.data(host[0], 'vrotator');
            if (!vars || vars.tabs.length <= 1)
                return;

            var prev = vars.current;
            $(vars.tabs[prev]).removeClass("viblend-visible");
            $(vars.tabs[prev]).addClass("viblend-hidden");

            if (moveNext)
            {
                if (vars.current + 1 < vars.tabs.length)
                    vars.current++;
                else
                    vars.current = 0;
            }
            else
            {
                if (vars.current > 0)
                    vars.current--;
                else
                    vars.current = vars.tabs.length - 1;
            }

            $(vars.tabs[vars.current]).removeClass("viblend-hidden");
            $(vars.tabs[vars.current]).addClass("viblend-visible");
        }

    });

    $.fn.rotator.defaults = {
};

})(jQuery);




