/** neat woodoo tabs for jquery (stick the doll, hit the man) v0.1, exclusive for wallstreet:online 2009 */
var WoodooTab = {
	
	automations : {},
	
	tabify : function(containers) {
		containers.each(function(num, container) {
			WoodooTab.wo_initContainer(container);
		});
	},
	
	
	automate : function( containers, timeout ) {
		if( !timeout )
			timeout = 5000;
		
		containers.each( function( num, container ) {
			if( !$(container).data('wo_tabs') )
				return false;
			
			WoodooTab.automations[ container ] = setInterval( function(){ WoodooTab._automateNext( container ); }, timeout  );
			
		});
	},
	
	_automateNext : function( container ) {
		var nextNum = $(container).data('wo_currentTab') + 1;
		if( nextNum == $(container).data('wo_tabs').length )
			nextNum = 0;

		WoodooTab.tab( container, nextNum );
	},

	wo_initContainer : function(container) {
		$(container).data('wo_tabs', $(container).children('ul.tabbar').children() );
		$(container).data('wo_panes', $(container).children('div.tabpanes').children() );
		$(container).data('wo_currentTab', 0);
		
		for( var tabNum in container.wo_tabs ){
			if( $(container).data('wo_tabs') && $(container).data('wo_tabs')[tabNum] && $(container).data('wo_tabs')[tabNum].hasClass('active') ){
				$(container).data('wo_currentTab', tabNum);
				break;
			}
		}

		$(container).data('wo_tabs').each(function(num, tab) {
			$(tab).click(function() {
				clearInterval( WoodooTab.automations[ container ] );
				WoodooTab.tab( container, num );
                if(showImagesInViewport) {
                    showImagesInViewport();
                }
			});
			if(num != $(container).data('wo_currentTab')) {
				$( $(container).data('wo_panes')[ num ] ).hide();
			} else {
				$( $(container).data('wo_panes')[ num ] ).show();
			}
		});
	},

	tab : function( container, tabNum ) {
		
		if ( tabNum == $(container).data('wo_currentTab') )
			return;
		
		var tab = $(container).data('wo_tabs')[ tabNum ];
		
		$( $(container).data('wo_tabs')[ $(container).data('wo_currentTab') ] ).removeClass('active');
		$( $(container).data('wo_panes')[ $(container).data('wo_currentTab') ] ).hide();
		
		$(tab).addClass('active');
		$( $(container).data('wo_panes')[tabNum] ).show();
		
		$(container).data('wo_currentTab', tabNum);
	}

}
