
/* --------------- Sliding graphs -----------------  */
var SectionID = 0;

var slidesN = 1;
var timeout = 10;
var winX = 0;
var winY = 0;

var Slides = new Array(slidesN);

Slides[0] = new Object();

Slides[0].slider = null;			
Slides[0].speed = 25;
Slides[0].distX = 0;
Slides[0].distY = 0;
Slides[0].degree = 0;			
Slides[0].sliderX = 0;
Slides[0].sliderY = 0;			
Slides[0].targetX = 0;
Slides[0].targetY = 0;			
Slides[0].sliderInterval = 0;


function setSliderX(i, x)
{
	if (Slides[i].slider) {
		Slides[i].sliderX = x;
		Slides[i].slider.style.left = x + 'px';
	}
}

function setSliderY(i, y)
{
	if (Slides[i].slider) {
		Slides[i].sliderY = y;			
		Slides[i].slider.style.top = y;
	}
}

function initSliders()
{
	for(i = 0; i < 1; i++)
	{
		Slides[i].slider = document.getElementById('slid'+i);
	}
	
	setSliderX(0, 0);
	setSliderY(0, 0);
	selectGraph(0);  //начальный раздел
	var x = location.href;
	if (x.indexOf("#") != -1) {
		x = parseInt(x.substr(x.indexOf("#")+1));
		if (isFinite(x)) {
			selectGraph(x);
		}
	}
}

function sliderStart(i)
{
	if ((Math.round(Slides[i].sliderX) == Slides[i].targetX) && (Math.round(Slides[i].sliderY) == Slides[i].targetY))
	{
		return 0;	
	}
								
	Slides[i].startX = Slides[i].sliderX;
	Slides[i].startY = Slides[i].sliderY;
	Slides[i].distX = Slides[i].targetX - Slides[i].startX;
	Slides[i].distY = Slides[i].targetY - Slides[i].startY;
	
	Slides[i].totalDistance = Math.sqrt(Slides[i].distX * Slides[i].distX + Slides[i].distY * Slides[i].distY);			
	
	Slides[i].degree = Math.atan(Slides[i].distY / Slides[i].distX);
	dX = Slides[i].targetX - Slides[i].sliderX;
	if (dX < 0) Slides[i].degree += Math.PI;
	
	if (!Slides[i].sliderInterval)
	{ 
		Slides[i].sliderInterval = window.setInterval('sliderGo(' + i + ')', timeout);
	}
}

function sliderStop(i)
{
	window.clearInterval(Slides[i].sliderInterval);
	Slides[i].sliderInterval = 0;
}				

function sliderGo(i)
{	
	dX = Slides[i].targetX - Slides[i].sliderX;
	dY = Slides[i].targetY - Slides[i].sliderY;
	
	degree2 = Math.atan(dY / dX);			
	if (dX < 0) degree2 += Math.PI;
	
	Slides[i].curDistance = Math.sqrt(dX * dX + dY * dY);	
	
	speedTransform = 20 / (Slides[i].curDistance + 1) + 1;
	
	Slides[i].speedY = Math.min(Math.sin(Slides[i].degree) * speedTransform * Slides[i].speed * (Slides[i].curDistance / 500), 100);
	Slides[i].speedX = Math.min(Math.cos(Slides[i].degree) * speedTransform * Slides[i].speed * (Slides[i].curDistance / 500), 100);
	
	Slides[i].sliderX += Slides[i].speedX;
	Slides[i].sliderY += Slides[i].speedY;
	
	if ((Slides[i].targetX - Slides[i].startX) * (Slides[i].targetX - Slides[i].sliderX) < 0) Slides[i].sliderX = Slides[i].targetX;
	if ((Slides[i].targetY - Slides[i].startY) * (Slides[i].targetY - Slides[i].sliderY) < 0) Slides[i].sliderY = Slides[i].targetY;
	
	Slides[i].slider.style.left = Slides[i].sliderX + 'px';
	Slides[i].slider.style.top  = Slides[i].sliderY + 'px';
							
	if ((Math.round(Slides[i].sliderX) == Slides[i].targetX) && (Math.round(Slides[i].sliderY) == Slides[i].targetY))
	{
		sliderStop(i);
	}
}
function setCurMenu(n)
{
	var el;
	for(i = 0; i < 4; i++) {
		if (el = document.getElementById('g_sel_' + i)) {
			el.className='';
			el.style.backgroundImage = 'url(/images/arrowRight.gif)';
		}
	}
	if (el = document.getElementById('g_sel_' + n)) {
		el.className='Cur';
		el.style.backgroundImage = 'url(/images/arrowDown.gif)';
	}
}

function selectGraph(n)
{
	setCurMenu(n);
	
	Slides[0].targetX = 400 * -n;
	Slides[0].targetY = 0;
	sliderStart(0);
}
