/* ВВОДНАЯ * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
window.onresize = null;
// elements
var Tyre;
var Alloy;
var Akcija;
var Lan;
var Accum;
var Test;
var Icons;
var Field;
var User;
var Menu;
var xm;



// animations
var Obj;
var M2;
var step;
var a = 1;
var spin = new Array();
var spinx = new Array();
spinx[0] = 0;
spin[0] = [0, 50, 15, 400];
var spinf = new Array();

var y = 1;
var x = 0;
var z = 1;
var deltax = 0;
var deltay = 50;
var deltaw = 15;
var zin = 400;
var i = 1;
var j = 0;
var I;
var L;
var M1;
var M2;
var M3;
var M4;

var Left = "left:";
var Top = "top:";
var Width = "width:";
var Height = "height:";
var Zindex = "z-index:";
var px = "px;";
var pr = "%;";

var to_proc_movex = true;
var to_proc_move = true;

var R = 0;
var spint = [];
var spinT = [];

var disp = "display:block;";

// menu
var shown_subs = new Array;
var while_subs = false;

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */

/**
 * Что такое?
 */
function MoveX()
{
	if (! to_proc_movex)
	{return;}
	if (deltax < 50)
	{
		x += 0.05;
		spinx[i] = deltax = Math.round(Math.pow(x, 2) * 5000) / 100;
		i++;
	}
	//  left  1/4
	else
	{
		i = 0;
		to_proc_movex = false;
		to_proc_move = true;
		Move();
	}
	MoveX();
}//MoveX

/**
 * Что такое?
 */
function Move()
{
	if (! to_proc_move){return;}

	delta = deltax = spinx[i];
	if (deltax == 50 && y){
		z = 0;
		y = 0;
	}
	else
	{
		if (deltax == 50 && !y)
		{
			z = 0;
			y = 1;
		}
	}
	if (!y)
	{
		deltax = 100 - deltax;
		deltaw -= (1 - delta / 50) / 4;
	}
	else
	{
		deltaw += (1 - delta / 50) / 4;
	}
	if (deltax == 100)
	{
		z = 1;
	}
	if (!z)	i--;
	else	i++;

	//  left  width
	if (z && y || !z && !y)
		deltay = 50 + (Math.sqrt(2500 - Math.pow((deltax - 50), 2)));
	else
		deltay = 50 - (Math.sqrt(2500 - Math.pow((deltax - 50), 2)));

	//  top
	spin[j] = new Array(deltax, parseInt(deltay * 10) / 10, parseInt(deltaw * 10) / 10);
	if (deltax == 0 && !z && y)
	{
		z *= -1;
		to_proc_move = false;
		L = spin.length;
		MoveT();
	}
	j++;
	Move();
}//Move

/**
 * Запускает ротацию иконок меню
 *  - убирает меню
 *  - показывает форму логина
 * @param string имя (id) объекта
 */
function Carusel(obj)
{
	load_div_ids = obj;

	$('#menu').animate({
		left: '-23%',
		opacity: 0
	});

	User.style.display = "";

	if (M4) clearInterval(M4);
	if (M2) clearInterval(M2);

	Obj = obj;

	if (Icons[Obj][1] < L / 2)
		a = -1;
	else
		a = 1;

	M2 = setInterval("Move2(Obj)", 10);
}//Carusel

/**
 * Вычисление стилей заголовков иконок
 */
function MoveT()
{
	qL = L / 4;
	tt = Math.round(70 / (qL) * 10) / 10;
	aright = "text-align:right;";
	spint[0] = new Array(-60, -270, aright);

	for (t = 1; t < L; t++)
	{
		spint[t] = [0,0,0];

		if (t < qL || t >= (3 * qL))
			{spint[t][0] = spint[t - 1][0] + tt;}
		else
			{spint[t][0] = spint[t - 1][0] - tt;}
	}
	for (t = 0; t < L; t++)
	{
		spinT[t] = [0,0,0];

		if (t >= qL && t < (3 * qL))
		{
			spint[t][1] = 60;
			spint[t][2] = "";
		}
		else
		{
			spint[t][1] = -270;
			spint[t][2] = aright;
		}
		spinT[t] = Top + spint[t][0] + pr + Left + spint[t][1] + pr + spint[t][2];
	}
	MoveZ();
}//MoveT

/**
 * ?
 */
function MoveZ()
{
	R = Math.round(L / 16);
	for (i = 0; i < L; i++)
	{
		if (i == 0)
		{
			zin = 400;
		}
		else
		{
			if (i == R * 4)
			{
				zin = 600;
			}
			else
			{
				if (i == R * 8)
				{
					zin = 300;
				}
				else
				{
					if (i == R * 12)
					{
						zin = 100;
					}
				}
			}
		}
		spin[i][3] = Zindex + zin;
		if (zin >= 100 && zin < 200 || zin >= 400 && zin < 500)
		{
			zin += 1;
		}
		else
		{
			zin -= 1;
		}
	}
	for (d = 0; d < 6; d++)
	{
		I = Icons[d];
		step = parseFloat(I[1]);
		I[1] = parseInt(step * R);
		I[0].setAttribute("style", Left + spin[I[1]][0] + pr + Top + spin[I[1]][1] + pr + Width + spin[I[1]][2] + pr + spin[I[1]][3]);
	}
	Change();
}//MoveZ

/**
 * Перерасчет стилей при изменении размеров окна
 */
function Change()
{
	if (L)
	{
		window.onresize = null;
		Field = document.getElementById('field').clientWidth;
		xm = -(parseInt(Menu.clientWidth) + 3);

		clearInterval(M3);
		spinc = new Array();
		for (c = 0; c < L; c++)
		{
			spinc[c] = [];
			//console.log(spin[c]);
			for (j = 0; j < 3; j++)
			{spinc[c][j] = parseInt((Field * spin[c][j]) / 100);}
			spinf[c] = Left + parseInt(spinc[c][0]) + px + Top + parseInt(spinc[c][1] / 2.8) + px + Width + parseInt(spinc[c][2]) + px + spin[c][3];
			//console.log(spinf[c]);
		}
		for (d = 0; d < 6; d++)
		{
			I = Icons[d];
			I[0].setAttribute("style", spinf[I[1]]);
			I[2].setAttribute("style", spinT[I[1]]);
		}
		window.onresize = Change;
	}
}//Change

function Move2(Obj)
{
	if (Icons[Obj][1] != 0)
	{
		for (i = 0; i < 6; i++)
		{
			I = Icons[i];
			step = parseInt(I[1]) + a;
			if (step == (L - 1) && a == 1)
			{
				I[1] = 0;
			}
			else
			{
				if (step < 0 && a != 1)
				{
					I[1] = L - 1;
				}
				else
				{
					I[1] = step;
				}
			}
			I[0].setAttribute("style", spinf[I[1]]);
			I[2].setAttribute("style", spinT[I[1]]);
		}
	}
	else
	{
		Icons[Obj][2].style.display = "none";
		clearInterval(M2);

		xm = -(parseInt(Menu.clientWidth) + 3);
		load_menu(load_div_ids, function()
		{
			$('#menu').fadeIn(function()
			{
				User.style.display = "none";
			});
		});
	}
}

function f(id)
{
	alert('wtf? f(id)');
	//document.getElementById(id).click();
}

function autorun()
{
	with(document){
		Tyre	= getElementById("tyre");
		Alloy	= getElementById("alloy");
		Akcija	= getElementById("akcija");
		Lan		= getElementById("lan");
		Accum	= getElementById("accum");
		Test	= getElementById("test");

		Icons = new Array();
		Icons[0] = new Array(Tyre,	0,	null);
		Icons[1] = new Array(Alloy,	2.6,null);
		Icons[2] = new Array(Akcija,5.6,null);
		Icons[3] = new Array(Lan,	8,	null);
		Icons[4] = new Array(Accum,	11,	null);
		Icons[5] = new Array(Test,	13.7,null);

		for(q=0;q<6;q++){Icons[q][2]=Icons[q][0].firstChild;}

		Field	= getElementById('field').clientWidth;
		User	= getElementById('user');
		Menu	= getElementById('menu');
		xm		=-(parseInt(Menu.clientWidth)+3);

		window.onresize = Change;

		MoveX();

		$('#username').focus();
	}
}
