(function($) {
    $.tabHandler = function(options){
        var tabs = $('.tab');
        var tabContainer = $('<div>').attr('id','tabContainer');
        tabs.each(function(i){
            var tabClass = i==0?'displayTab active':'displayTab';
            var tabEl = $('<a>').attr('href','#').addClass(tabClass).text($(this).attr('id'));
            tabEl.click(function(e){
                e.preventDefault();
                if ($(this).hasClass('active')) {return false;}
                tabs.add(tabContainer.find('a')).removeClass('active');
                $(this).add(tabs.eq(i)).addClass('active');
            });
            tabContainer.append(tabEl);
        });
        $('#mainBody').prepend(tabContainer);
    };
    $.fn.slideMenu = function(navJson,options){
        var s = $.extend({
            totalWidth: 940,
            imgWidth: 300,
            timeout: 200
        },options||{});
        var pages = navJson.length;
        var oLeft = new Array();
        var incr = Math.floor(s.totalWidth / pages);
        var inc = Math.floor((s.totalWidth - s.imgWidth)/(pages-1));
        return this.each(function(){
            var marker = -1;
            for (var i=0;i<navJson.length;i++){
                if (location.pathname == navJson[i].url){
                    incr=inc;
                    marker=i;
                }
            }
            for (var i=0;i<navJson.length;i++){
                var img = $('<img>').attr({'src':navJson[i].img,'alt':navJson[i].title});
                if (i>marker && marker>-1)
                    oLeft.push((i*incr)+(s.imgWidth-incr));
                else
                    oLeft.push(i*incr);
                img.css({'left':oLeft[i],'zIndex':(i*10)+1000});
                img.data('link',navJson[i].url);
                img.click(function(){location.href=$(this).data('link')});
                $(this).append(img);
            }
            $(this).find('img').each(function(index){
                $(this).hover(function(){
                    Array.prototype.reverse.call($(this).prevAll()).each(function(i){
                        $(this).stop().animate({'left':i*inc},s.timeout);
                    });
                    $(this).stop().animate({'left':index*inc}, s.timeout);
                    $(this).nextAll().each(function(i){
                        var a = index+i;
                        $(this).stop().animate({'left':(a*inc)+s.imgWidth},s.timeout);
                    });
                },function(){
                    $(this).parent().find('img').each(function(i){
                        $(this).stop().animate({'left':oLeft[i]},s.timeout);
                    });
                });
            });
        });
    };
})(jQuery);
