/*
 * jQuery JavaScript Plugin jquery.sideTabs 0.9.0
 * http://bugsoftware.co.uk/jQuery/
 *
 * Copyright (c) 2009 - 2010 Ritchie Comley
 * Dual licensed under the MIT and GPL licenses.
 *
 * Date: 2010-07-13 (Tue, 13 July 2010)
 * Revision: 0
 *
 * Dependencies:
 * jQuery 1.4.1 (jquery.com)
 * 
 */

/* 
 * Original file modified by Filip Dostal
 * 
 */ 
 
jQuery.fn.sideTabs = function(options) {

	// PRIVATE VARIABLES		
	var defaults = {
			opacity:0.7,
			fadeDuration:500,
			cycle:true,
			cycleInterval: 3000
		};
		
	var opts = jQuery.extend(defaults, options);

	return this.each(function()
	{
		var container = jQuery(this);
		container.wrapInner('<div class="tabs_container" style="position:absolute;"></div>');
		var innerWrapper = container.find('>div');
		innerWrapper.wrapInner('<div class="tabs_legend" style="position:absolute;"></div>');
		var tabWrapper = innerWrapper.find('>div');
		
		tabWrapper.before('<div class="tabBG"></div>');
		var tabBG = innerWrapper.find('div.tabBG');
		
		tabWrapper.before('<div class="tabs_caption_bg"></div><div class="tabs_caption"></div>');
		var tabs_caption = innerWrapper.find('div.tabs_caption');
		var tabs_caption_bg = innerWrapper.find('div.tabs_caption_bg');
		
		
		tabBG.css({height:tabWrapper.height(), width:tabWrapper.width(), position:'absolute', opacity:opts.opacity});
		
		var backgrounds = container.find('img');
		
		backgrounds.each(function(i) {
		
			var image = jQuery(this);
		
			image.addClass('sideTabImage' + i);
			
			var tab = image.parent();
			tab.addClass('tab' + i);
			tab.prepend('<div class="thumb"><img src="' + image.attr("src") + '"></div>');
			tab.html('<div class="tab_bg"></div><div class="tab_inner">' + tab.html() + '</div>');
      			
			//tab.prepend('<div class="tab_bg"></div>');
			
			$('.sideTabImage' + i).remove();
			
			var tabLink = image.parent().parent().find('a');
			
			if(tabLink.size())
			{
				image.click(function()
				{
					document.location.href = tabLink.attr('href');
				});
				
				image.css({cursor:'pointer'});
			}
		});
		
		backgrounds.prependTo(innerWrapper);
		
		var tabs = tabWrapper.find('>div');
		
		var activeTabIndex = 0;
		
		var activeTab = innerWrapper.find('img.sideTabImage' + activeTabIndex);
		tabBG.before(activeTab);
		
    tabs.mouseover(function(){
		
			var tab = jQuery(this);
			
			makeTabActive(tab);
		});
		
		function makeTabActive(tab)
		{
			var i = tab.prevAll().size();
			
			if(i != activeTabIndex)
			{
				activeTabIndex = i;
				activeTab = innerWrapper.find('img.sideTabImage' + i);
				activeTab.css({opacity:0});
				tabBG.before(activeTab);
				activeTab.animate({opacity:1},{duration:opts.fadeDuration});
				tabs.removeClass('active');
				tab.addClass('active');
				
				//tabs_caption.clearQueue();
				
        /*
        tabs_caption_bg.stop().animate(
          {opacity:0},
          {
            duration:opts.fadeDuration / 2,
            complete: function() {
              tabs_caption_bg.animate({opacity:1},{duration:opts.fadeDuration / 2});
            }
           }        
        );
        */				
				
				tabs_caption.stop().animate(
          {opacity:0},
          {
            duration:opts.fadeDuration / 2,
            complete: function() {
              tabs_caption.html('<h2>' + $('.tab' + i + ' h3').html() + '</h2><p>' + $('.tab' + i + ' p').html() + '</p>');
              tabs_caption.animate({opacity:1},{duration:opts.fadeDuration / 2});
            }
           }        
        );
								
			}
		}
		
		if(opts.cycle)
		{
			var cyclerID;
		
			function doCycle()
			{
				var nextTab = tabs.eq(activeTabIndex + 1);

				if(!nextTab.size())
				{
					nextTab = tabs.eq(0);
				}
				
				makeTabActive(nextTab)
			}
		
			function startCycle()
			{
				cyclerID = window.setInterval(doCycle, opts.cycleInterval);
			}
			
			function stopCycle()
			{
				window.clearInterval(cyclerID);
			}
			
			activeTabIndex = 10;
			makeTabActive(tabs.eq(0));
			
			startCycle();
			
			container.mouseover(stopCycle);
			container.mouseout(startCycle);
		}

	});
};


