var tabEltIds;
var tabEltID = 0;
var tabIndex = 0;
var tabActive = true;
var tabRunning = true;
function hse_tabAutostart(tabGId){
	var tabElts = $('#tabs-wrap-'+tabGId+' .tab-element');
	var eltCount = tabElts.length;
	if(eltCount > 1){
		var maxHeight = 100;
		tabEltIds = new Array(eltCount);
		tabElts.each(function(index) {
			$(this).css({position: "absolute"});
			var id = $(this).attr('id').replace('tab-element-', '');
			tabEltIds[index] = id;
			var eltHeight = $(this).height();
			if(eltHeight > maxHeight) maxHeight = eltHeight;
		});
		//Set same height for each element
		tabElts.each(function(index) {
			$(this).height(maxHeight);
		});
		$('#tabs-wrap-'+tabGId).height(maxHeight);
		$('#tabs-wrap-'+tabGId).mouseenter(function(){
				hse_tabSetActive(false, tabGId);
		}).mouseleave(function(){
				hse_tabSetActive(true, tabGId);
		});
	
		var tabId = tabEltIds[0];
		$('#tab-element-'+tabId).css('z-index', 2);
		if(eltCount > 1){
			$('#tab-element-'+tabEltIds[1]).css('z-index', 1);
			window.setTimeout("hse_tabRun("+tabGId+")", 6000);
		}
		$('#tabs-wrap-'+tabGId+' .js-init').each(function(index) {$(this).show();});		
	}
}
function hse_tabSetActive(active, tabGId){
	var tmpActive = tabActive;
	tabActive = active;
	//If tabs is activated and loop is not still running
	if(tabActive && !tmpActive && !tabRunning){
		window.setTimeout("hse_tabRun("+tabGId+")", 6000);
	}
}
function hse_tabRun(tabGId){
	if(tabActive){
		tabRunning = true;
		++tabIndex;
		if(tabIndex >= tabEltIds.length) tabIndex = 0;
		var isSwitched = hse_tab(tabEltIds[tabIndex], tabGId);
		if(isSwitched){
			window.setTimeout("hse_tabRun("+tabGId+")", 6000);
		}
	}
	//Indicate that loop has stopped
	else{
		tabRunning = false;
	}
}
function hse_tabMove(offset,tabGId){	
	tabIndex += offset;
	var maxOffset = tabEltIds.length - 1;
	if(tabIndex < 0) tabIndex = maxOffset;
	else if(tabIndex > maxOffset) tabIndex = 0;
	var tabId = tabEltIds[tabIndex];
	hse_tabShowElt(tabId, tabGId);
	$('#tabs-nr-'+tabGId).html( (tabIndex+1) );
	return false;
}
function hse_tab(tabId, tabGId){
	if(!tabActive) return false;
	hse_tabSwitchElt(tabId, tabGId);
	$('#tabs-nr-'+tabGId).html( (tabIndex+1) );
	return true;
}
function hse_tabShowElt(tabId, tabGId){
	var actEltId = 'tab-element-'+tabId;
	var tabElts = $('#tabs-wrap-'+tabGId+' .tab-element');
	tabEltID = tabId;
	tabElts.each(function(index) {
		$(this).stop().css({'opacity': 1.0, 'z-index': 0}).show();
		if( $(this).attr('id') == actEltId){
			$(this).css('z-index', 2);
		}
	});
}
function hse_tabSwitchElt(tabId, tabGId){
	var actEltId = 'tab-element-'+tabId;
	var tabElts = $('#tabs-wrap-'+tabGId+' .tab-element');
	var eltCount = tabElts.length;
	var topEltOffset = 0;
	var topEltZIndex = 0;
	tabEltID = tabId;
	tabElts.each(function(index) {
		if( $(this).attr('id') != actEltId){
			var tmpZPos = $(this).css('z-index');
			if( tmpZPos > topEltZIndex ){
				topEltZIndex = tmpZPos;
				topEltOffset = index;
			}
			else{
				$(this).css('z-index', 0);
			}
		}
	});
	if(tabActive){
		var actElt = $('#'+actEltId);
		actElt.css('z-index', 1);
		$(tabElts[topEltOffset]).fadeOut(2000, function() {
			actElt.css('z-index', 2);
			$(this).css('z-index', 0).show();
		});
	}
}

