;(function($){
    
    // Tab controls
    $.fn.techtwoCaroussel.controls.tabs = function(options, caroussel) {
        
        var controls  = this,
            caroussel = caroussel;
        
        controls.settings  = $.extend({}, $.fn.techtwoCaroussel.controls.tabs.defaults, options);
            
        controls.init = function() 
        {
            // Create dom nodes
            controls.element = $('<ul>').addClass(controls.settings.controlClass);
            
            var panelCount = caroussel.panels.length;
            
            $.each(caroussel.panels, function(index, element){
                
            	//console.log(index, element);
            	
                var tab = $('<li />');
                
                if (index == 0) {
                	tab
                        .addClass('first')
                        .addClass(controls.settings.activeClass);
                }
                
                if (index == (panelCount - 1)) {
                	tab
                        .addClass('last');
                }
                
                var tabId   = $(element).attr('data-tabid') || '';
                var tabName = $(element).attr('data-tabname') || '';
                
                tab
                    .addClass('caroussel-tab') 
                    .addClass('caroussel-tab-' + index)
                    .attr('id', tabId)
                    .html('<a href="#"><span>' + tabName + '</span></a>')
                    .appendTo(controls.element)
                    
            });
                        
            var element = controls.settings.element || caroussel.wrapper;

            if (typeof(element) == 'String') {
            	element = $(element);
            }
            
            controls.element[controls.settings.placement](element);
        
            controls.element.find('li').click(function(){
                if (!caroussel.animating) {
                    var index =  controls.element.find('li').index(this);
                    caroussel.gotoPanel(index);
                    controls.gotoPanel(index);
                }
                return false;
            });  
        };
        
        controls.gotoPanel = function(index)
        {
            controls.element.find('li')
                .removeClass(controls.settings.activeClass);
                
            controls.element.find('li:eq(' + index + ')')
                .addClass(controls.settings.activeClass);
            
        };
        
        controls.init();
        
        return controls;
        
    };
    
    $.fn.techtwoCaroussel.controls.tabs.defaults = {
        controlClass: 'controls',
        activeClass: 'active',
        placement: 'insertAfter'
    };
    
})(jQuery);
