cm.onload(initTabs);
function initTabs()
{
	var containers = cm.getByClass('tabs-box');
	for(var i = 0, ln = containers.length; i < ln; i++)
	{
		makeTabs(containers[i]);
	}
	
	var containersTop = cm.getByClass('tabs-box-top');
	for(var i = 0, ln = containersTop.length; i < ln; i++)
	{
		makeTabsTop(containersTop[i]);
	}
	
	var verticalContainers = cm.getByClass('tab-content-vertical-wrapper');
	for(var i = 0, ln = verticalContainers.length; i < ln; i++)
	{
			new makeVerticalSlider(verticalContainers[i]);		
	}
}
function makeVerticalSlider()
{
	var currentSlide = 0;
	var up = null;
	var down = null;
	var switcher = cm.Node('div', {'class':'slideSwitcher'},
							up = cm.Node('div', {'class':'up'}),
							down = cm.Node('div', {'class':'down'})
							);
	var checkSwitcher = function(){	
		up.style.visibility = currentSlide != 0? 'visible' : 'hidden';
		down.style.visibility = currentSlide != count - 1? 'visible' : 'hidden';
	}
	var init = function()
	{
		checkSwitcher();
		switcher.style.left = container.parentNode.offsetLeft + container.parentNode.offsetWidth - switcher.offsetWidth - 5 + 'px';
		cm.addEvent(up, 'click', function(){
			if(currentSlide == 0)
				return false;
			var offset = --currentSlide * slideHeight * -1;
			checkSwitcher();
			animHandler.go(['top:' + offset + 'px'], 1500, 'inhibition', function(){});
		});
		cm.addEvent(down, 'click', function(){
			if(currentSlide == count - 1)
				return false;
			var offset = ++currentSlide * slideHeight * -1;
			checkSwitcher();
			animHandler.go(['top:' + offset + 'px'], 1500, 'inhibition', function(){});
		});
	}
	
	var container = arguments[0];
		container.parentNode.appendChild(switcher);
	var animHandler = new cm.Animation(container);
	var sliders = cm.getByClass(container, 'vslider-content'); 
	if(sliders.length){
		var slideHeight = sliders[0].offsetHeight;
		var count = sliders.length;
		init();
	}
}
function makeTabs()
{ 
	var slideWidth = 906;
	var wrapperBox = cm.getEl('tab-wrapper-box');
	var animHandler = new cm.Animation(wrapperBox);
	
	var construct = function()
	{
		var titles = cm.getByClass(container, 'slide-tabset')[0].getElementsByTagName('li');
		var content = cm.getByClass(container, 'tab-content');
		var tabs = [];
		
		var i = 0;
		while(titles[i] && content[i])
		{
			tabs.push({'tab':titles[i], 'content':content[i]});
			i++;
		}
		return tabs;
	}
	var init = function()
	{
		for(var i = 0, ln = tabs.length; i<ln ;i++)
		{
			(function(){
				var c = i;
				cm.addEvent(tabs[c].tab, 'click', function(){
				
					for(var k = 0, lns = tabs.length; k<lns; k++)
					{
						close(tabs[k]);
					}
					open(tabs[c]);
					var offset = c*slideWidth * -1;
					animHandler.go(['left:' + offset + 'px'], 1500, 'inhibition', function(){});
				})
			})();
		}
	}
	var open = function(tab)
	{
		tab.tab.className+=' active';
		return true;
	}
	var close = function(tab)
	{
		tab.tab.className = tab.tab.className.replace(/\s*active/, '');
		return true;
	}
	
	var container = arguments[0];
	var tabs = construct();
	init();
}

function makeTabsTop()
{ 
	var construct = function()
	{
		var titles = cm.getByClass(container, 'tabset')[0].getElementsByTagName('li');
		var content = cm.getByClass(container, 'tab-content');
		var tabs = [];
		
		var i = 0;
		while(titles[i] && content[i])
		{
			tabs.push({'tab':titles[i], 'content':content[i]});
			i++;
		}
		return tabs;
	}
	var init = function()
	{
		for(var i = 0, ln = tabs.length; i<ln ;i++)
		{
			(function(){
				var c = i;
				cm.addEvent(tabs[c].tab, 'click', function(){
				
					for(var k = 0, lns = tabs.length; k<lns; k++)
					{
						close(tabs[k]);
					}
					open(tabs[c]);
				})
			})();
		}
	}
	var open = function(tab)
	{
		tab.tab.className+=' active';
		tab.content.className+=' active';
		return true;
	}
	var close = function(tab)
	{
		tab.tab.className = tab.tab.className.replace(/\s*active/, '');
		tab.content.className = tab.content.className.replace(/\s*active/, '');
		return true;
	}
	
	var container = arguments[0];
	var tabs = construct();
	init();
}

