var HideStep = 0;
var HintHideSpeed = 5000;
var CurStep = 1;
var AnimateSpeed = 10;
var AnimateStep = 10;
var MoveTo;
var MoveTimer;
var MoveDiv;
var AnimateDirection;
var MoveToStep;
var KeyHit = false;
var CallingAjaxTimeout = 0;

Event.observe($('help'), 'click', ShowHint);

function Move(Step)
{
	if (ABTest == 0)
	{
		if (Step == CurStep)
			return;
	
		$('step1').style.zIndex = 2;
		$('step2').style.zIndex = 2;
		$('step3').style.zIndex = 2;
	
		MoveToStep = Step;
	
		MoveDiv = $('step-back');
		MoveDivCoords = MoveDiv.cumulativeOffset();
		MoveFrom = MoveDivCoords.top - 80;
	
		MoveDiv.setStyle({
			left: (MoveDivCoords.left)+ 'px', 
			top: (MoveDivCoords.top) + 'px'
			//zIndex: 10000
		});
		$('body').insert(MoveDiv.remove());
	
		MoveToDiv = $('step' + Step);
		MoveToCoords = MoveToDiv.cumulativeOffset();
		MoveTo = MoveToCoords.top - 80;
	
		if (MoveTo > MoveFrom)
			AnimateDirection = 'down';
		else if (MoveTo < MoveFrom)
			AnimateDirection = 'up';
		else //same position
		{
			MoveDiv.style.zIndex = 1;
			MoveToDiv = $('step' + MoveToStep);
			MoveDiv.style.top = '-80px';
			MoveDiv.style.left = '-80px';
			MoveDiv.style.zIndex = 2;
			MoveToDiv.insert(MoveDiv.remove());
			return;
		}
	
		$('step1-hint').hide();
		$('step2-hint').hide();
		$('step3-hint').hide();
	
		MoveTimer = setInterval(PerformMove, AnimateSpeed);
		
		if (Step == 2)
		{
			KeyHit = true;
			$('Blocks').focus();
			KeyUpEvent = Event.observe($('Blocks'), 'keyup', KeyUpOnStep2);
			EnterEvent = Event.observe($('Blocks'), 'keydown', EnterOnStep2);
		}
		else
		{
			$('Blocks').blur();
			Event.stopObserving($('Blocks'), 'keyup', KeyUpEvent);
			Event.stopObserving($('Blocks'), 'keydown', EnterEvent);
			//KeyHit = false;		
		}
	}
	else
	{
		if ((Step == 1) && (CurStep == 1))
		{
			if (($('USServersSuggester').value == '') && ($('EuroServersSuggester').value == ''))
			{
				$('ActiveButton').style.display = 'none';
				$('InactiveButton').style.display = 'block';
			}
		}
		if (Step == CurStep)
			return;
	
		$('abstep1').style.zIndex = 2;
		$('abstep2').style.zIndex = 2;
		$('abstep3').style.zIndex = 2;
		
		MoveToStep = Step;
	
		MoveDiv = $('abstep-back');
		MoveDivCoords = MoveDiv.cumulativeOffset();
		MoveFrom = MoveDivCoords.left - 8;
	
		MoveDiv.setStyle({
			left: (MoveDivCoords.left)+ 'px', 
			top: (MoveDivCoords.top) + 'px'
			//zIndex: 10000
		});
		$('body').insert(MoveDiv.remove());
	
		MoveToDiv = $('abstep' + Step);
		MoveToCoords = MoveToDiv.cumulativeOffset();
		MoveTo = MoveToCoords.left - 8;

		if (MoveTo > MoveFrom)
			AnimateDirection = 'right';
		else if (MoveTo < MoveFrom)
			AnimateDirection = 'left';
		else //same position
		{
			//MoveDiv.style.zIndex = 1;
			MoveToDiv = $('abstep' + MoveToStep);
			MoveDiv.style.top = '0px';
			MoveDiv.style.left = '-8px';
			//MoveDiv.style.zIndex = 2;
			MoveToDiv.insert(MoveDiv.remove());
			return;
		}
	
		$('step1-hint').hide();
		$('step2-hint').hide();
		$('step3-hint').hide();
	
		MoveTimer = setInterval(PerformMove, AnimateSpeed);
		
		if (Step == 2)
		{
			KeyHit = true;
			$('Blocks').focus();
			KeyUpEvent = Event.observe($('Blocks'), 'keyup', KeyUpOnStep2);
			EnterEvent = Event.observe($('Blocks'), 'keydown', EnterOnStep2);
		}
		else
		{
			$('Blocks').blur();
			Event.stopObserving($('Blocks'), 'keyup', KeyUpEvent);
			Event.stopObserving($('Blocks'), 'keydown', EnterEvent);
			//KeyHit = false;		
		}
	}
}

function PerformMove()
{
	MoveDivCoords = MoveDiv.cumulativeOffset();
	if (ABTest == 0)
	{
		if (AnimateDirection == 'up')
		{
			if (MoveDivCoords.top > MoveTo)
				MoveDiv.style.top = (MoveDivCoords.top - AnimateStep) + 'px';
			else
				FinalizeMove();
		}
		else
		{
			if (MoveDivCoords.top < MoveTo)
				MoveDiv.style.top = (MoveDivCoords.top + AnimateStep) + 'px';
			else
				FinalizeMove();
		}
	}
	else
	{
		if (AnimateDirection == 'left')
		{
			if (MoveDivCoords.left > MoveTo)
				MoveDiv.style.left = (MoveDivCoords.left - AnimateStep) + 'px';
			else
				FinalizeMove();
		}
		else
		{
			if (MoveDivCoords.left < MoveTo)
				MoveDiv.style.left = (MoveDivCoords.left + AnimateStep) + 'px';
			else
				FinalizeMove();
		}
	}
}

function FinalizeMove()
{
	if (ABTest == 0)
	{
		clearInterval(MoveTimer);
		MoveDiv.style.zIndex = 1;
		MoveToDiv = $('step' + MoveToStep);
		MoveDiv.style.top = '-80px';
		MoveDiv.style.left = '-80px';
		MoveToDiv.insert(MoveDiv.remove());
		MoveToDiv.style.zIndex = 1;
	
		CurStep = MoveToStep;
	}
	else
	{
		clearInterval(MoveTimer);
		//MoveDiv.style.zIndex = 1;
		MoveToDiv = $('abstep' + MoveToStep);
		MoveDiv.style.top = '0px';
		MoveDiv.style.left = '-8px';
		MoveToDiv.insert(MoveDiv.remove());
		//MoveToDiv.style.zIndex = 1;
	
		CurStep = MoveToStep;
		
		$('abstep1').className = $('abstep1').className.replace(' selected', '');
		$('abstep2').className = $('abstep2').className.replace(' selected', '');
		$('abstep3').className = $('abstep3').className.replace(' selected', '');
	
		$('abstep' + CurStep).className += ' selected'; 
		if (CurStep == 3 || CurStep == 2)
		{
			$('ActiveButton').style.display = 'block';
			$('InactiveButton').style.display = 'none';
		}
		
		if (CurStep == 1)
		{
			if (($('USServersSuggester').value == '') && ($('EuroServersSuggester').value == ''))
			{
				$('ActiveButton').style.display = 'none';
				$('InactiveButton').style.display = 'block';
			}
		}
		
		//else if ($('ActiveButton').style.display == 'block')
		//{
		//	$('ActiveButton').style.display = 'none';
		//	$('InactiveButton').style.display = 'block';
		//}
	}
}

function ShowHint(event)
{
	SrcPos = Event.element(event).cumulativeOffset();

	$('step' + CurStep + '-hint').setStyle({
		position: 'absolute',
		left: (SrcPos.left - 175) + 'px',
		top: (SrcPos.top  + 25) + 'px',
		display: 'inline',
		zIndex: 20000,
		cursor: 'pointer'
	});

	$('step' + CurStep + '-hint').observe('click', HideStepHelp);

	HideStep = CurStep;
	//setTimeout('HideStepHelp()', HintHideSpeed);
	Event.stop(event);
	return false;
}

function HideStepHelp()
{
	if (HideStep == 0)
		return;

	$('step' + HideStep + '-hint').hide();
	HideStep = 0;
}

function ShowBlocks()
{
	$('Blocks').style.visibility = 'visible';
}

function EnterOnStep2(evt)
{
	//alert(evt.keyCode);
	switch (evt.keyCode)
	{
		case 13:
			KeyHit = false;
			Move(3);
			return;
			
		break;			
	}
}

function KeyUpOnStep2(evt)
{
	//alert(evt.keyCode);
	switch (evt.keyCode)
	{
		case 37:
		case 38:
		case 39:
		case 40:
			var browser_type=navigator.appName;
			KeyHit = true;
			if (browser_type!="Microsoft Internet Explorer")
			{
				clearTimeout(CallingAjaxTimeout);
				CallingAjaxTimeout = setTimeout('LoadPrice(2, 0)', 500);
			}
			
		break;
			
	}
}

function ResetHitFlag()
{
	KeyHit = false;
}
Event.observe(window, 'load', ShowBlocks);
Event.observe($('Blocks'), 'click', ResetHitFlag);


function ChangeTest()
{
	TestTimeId = 0;
	
	var MyAjax = new Ajax.Request
	(
		'/Ajax/LoadTestimonial.php',
		{
			method: 'post',
			parameters: '',
			onSuccess: ChangeTestSuccess,
			onFailure: Failure
		}
	);
	
	//TestTimeId = setTimeout('ChangeTest(' + 5000 + ')', 5000);
}

function ChangeTestSuccess(response)
{
	eval('var Response=' + response.responseText);
	if (Response.Success)
	{
		$('TestBaconHolder').style.width = Response.Data.Rating + 'px';
		$('TestComment').innerHTML = '<i>' + Response.Data.Comment + '</i>';
		$('TestSubmitDate').innerHTML = Response.Data.SubmitedDate;
		if (Response.Data.Location != '')
		{
			$('TestLocation').innerHTML = Response.Data.Location + '<br />'
		}
		else
		{
			$('TestLocation').innerHTML = '';
		}
		
		$('TestServer').innerHTML = Response.Data.GameServer;
	}
	
	TestTimeId = setTimeout('ChangeTest()', Response.ReloadTime * 1000);
}
