// JavaScript Document

// Qualux
// All rights reserved
//
// Calibrator R1
// Date:080718

function init_tab()
{
	var sig = "tb";
	var sz = 5;
	for ( var i=0; i<sz; ++i )
	{
		var id = sig + i;		
		var t = document.getElementById( id );
		if ( t )
		{
			add_event( t, 'mouseover', tab_over, false );
			add_event( t, 'mouseout', tab_out, false );
			add_event( t, 'click', tab_click, false );
		}
	}
}


function init_arrow_button()
{
	signal( 'awL', 'click', cancelLink );
	signal( 'awL', 'click', tab_scroll_left );
	signal( 'awR', 'click', cancelLink );
	signal( 'awR', 'click', tab_scroll_right );
}


function tab_get_active_tab()
{
	var bar = document.getElementById( 'tbBar' );
	return find_down_by_id( bar, "ta", 0, 2 );
}

function tab_get_tab_number( tab )
{
	return parseInt(tab.id.substr(2,1));	
}


function tab_goto_num( newTabNum )
{
	var currentTab = tab_get_active_tab();
	var currentTabNum = tab_get_tab_number( currentTab );
	if ( currentTabNum == newTabNum )
		return;
		
	tab_scroll_to( newTabNum );
		
	// Change tab button
	currentTab.id = "tn" + currentTabNum;
	var bar = document.getElementById( 'tbBar' );
	var newTab = find_down_by_id( bar, "to"+newTabNum, 0, 0 );	// for click tab button
	if ( newTab == 0 )
		newTab = find_down_by_id( bar, "tn"+newTabNum, 0, 0 );	// for left right arrow button
	newTab.id = "ta" + newTabNum;
}


function tab_click(e)
{
	var t = get_target(e);
	tab_goto_num( tab_get_tab_number(t) );
}


function tab_over(e)
{
	var t = get_target(e);
	
	var status = t.id.substr( 1, 1 );
	if ( status != "a" )
	{
		var n = t.id.substr( 2, 1 );
		t.id = "to" + n;
	}
}


function tab_out(e)
{
	var t = get_target(e);
	
	var status = t.id.substr( 1, 1 );
	if ( status != "a" )
	{
		var n = t.id.substr( 2, 1 );
		t.id = "tn" + n;
	}
}



function installListeners()
{
	init_tab();
	tab_scroll_reset();
	init_arrow_button();
}


var INV; // setInterval object

var bannerWidth = 730;
var bannerAdvCount = 5;
var bannerScroolStep = 15;
var bannerContentBarId = "bannerContentBar";


function tab_scroll_reset()
{
	var bar = document.getElementById(bannerContentBarId);
	bar.style.marginLeft = "0px";
}


function tab_scroll_to( newTabNum )
{
	var bar = document.getElementById(bannerContentBarId);
	var srcX = parseInt( bar.style.marginLeft );
	var dstX = -(newTabNum * bannerWidth);
	
	var gap = Math.abs(dstX - srcX) / bannerScroolStep;
	
	if ( INV )
		clearInterval( INV );
	
	INV = setInterval( function() { banner_scroll_update( bar, dstX, gap ); }, 10 );
}


function tab_scroll_left()
{
	var n = tab_get_tab_number( tab_get_active_tab() ) - 1;
	tab_goto_num( n < 0 ? bannerAdvCount-1 : n );
}

function tab_scroll_right()
{
	var n = tab_get_tab_number( tab_get_active_tab() ) + 1;
	tab_goto_num( n >= bannerAdvCount ? 0 : n );
}


function banner_scroll_update( obj, dx, gap )
{
	var x = parseInt( obj.style.marginLeft );
	
	if ( dx < x )
	{
		x -= gap;
		if ( x <= dx )
			x = dx;
	}
	else if ( dx > x )
	{
		x += gap;
		if ( x >= dx )
			x = dx;	
	}
	else
	{
		clearInterval( INV );
	}
	
	obj.style.marginLeft = x + 'px';
}