
var pathToRecords = "records/";

function GameAction(level , value , hash , recordID)
{

	gLevel    = level;
	gValue    = value;
	gHash     = hash;
	gRecordID = recordID;

	sendRecord();
}
function authorize()
{
	$('#authorize-form').fadeIn(400);
}
function displayGame()
{
	var so = new SWFObject(gPath, "game", gWidth, gHeight, "8", "#000000");
	so.addParam("wmode", "opaque");
	so.write("flashgame");
}
function update(data)
{
	document.getElementById('globalRaiting').innerHTML = data.globalRecords;
	document.getElementById('levelRaiting').innerHTML = data.levelRecords;
}
function setName()
{

	if(gUserName != false) return;

	var name = $('#onlineName').val();

	$('#onlineName').css('border-color' , '#8499A5');

	gUserName = name;

	$.post(
		pathToRecords + "server.php",
		{
			xfunction: 'setName',
			name: gUserName
		},
		function nameCallBack(result)
		{

			if(result.status == "ok"){
				displayGame();
			}
			else
			{

			 	gUserName = false;
			 	$('#onlineName').css('border-color' , 'red');
			}
		},
		"json"
	);
}
function sendRecord()
{
	gLastRecordID = gRecordID;
	$.post(
		pathToRecords + "server.php",
		{
			xfunction: "sendRecord",
			gameID: gGameID ,
			level: gLevel ,
			value: gValue ,
			hash: gHash ,
			recordID: gRecordID
		} ,
		function recordCallBack(result)
		{
			if(result.status == "ok"){
				update(result);
			}
			else
			{
			 	authorize();
			}
		},
		"json"
	);
}
function sendAction()
{

	switch(gState)
	{
		case 1:

			showAuthorize();

			$.post(
				pathToRecords + "server.php",
				{
					xfunction: "sendAuthorize",
					mail: $('#input-email').val() ,
					password: $('#input-password').val()
				} ,
				function passwordCallBack(result)
				{
					if(result.status == "ok")
					{
						gIsAuthorized = true;
						sendRecord();
						sendClose();
					}
					else
					{
						switch(result.error)
						{
							case "2":
								showRegister();
							break;
							case "3":
								showError('password' , 'Неверный пароль. <br>Возможно вы уже зарегистрированы, воспользуйтесь формой <a href="/online/password.php">восстановления пароля.</a>  <br><br>');
							break;
							case "4":
								showError('email' , 'Вы ввели неправильный e-mail.<br/> Нужно, например, free2rhyme@yahoo.com	');
							break;
						}
					}
				},
				"json"
			);
			break;
		case 2:

			showRegister();

			var mail = $('#input-email').val();
			var password = $('#input-password').val();
			var cpassword = $('#input-cpassword').val();

			if(password.length < 6)
			{
				showError('password' , 'Пароль должен содержать более 6 символов.');
				return;
			}

			if(password != cpassword)
			{
				showError('cpassword' , 'Пароли не совпадают. <br><br>');
				return;
			}

			$.post(
				pathToRecords + "server.php",
				{
					xfunction: "sendRegister",
					mail: mail ,
					password: password,
					cpassword: cpassword
				} ,
				function cpasswordCallBack(result)
				{

					if(result.status == "ok")
					{
						gIsAuthorized = true;
						sendRecord();
						sendClose();
					}
					else
					{
						switch(result.error)
						{
							case "2": showError('password' , 'Пароль должен содержать более 6 символов.'); break;
							case "3": showError('cpassword' , 'Пароли не совпадают. <br><br>'); break;
							case "4":
								showError('email' , 'Вы ввели неправильный e-mail.<br/> Нужно, например, free2rhyme@yahoo.com	');
							break;
						}
					}
				},
				"json"
			);
			break;
	}
}

function showAuthorize()
{
	gState = 1;
	$('#field-email').css('visibility' , 'visible');
	$('#field-email-error').fadeOut(400);

	$('#field-password').css('visibility' , 'visible');
	$('#field-password-error').fadeOut(400);

	$('#field-cpassword').css('visibility' , 'hidden');
	$('#field-cpassword-error').fadeOut(400);
}

function showRegister()
{
	gState = 2;
	$('#field-email').css('visibility' , 'visible');
	$('#field-email-error').fadeOut(400);

	$('#field-password').css('visibility' , 'visible');
	$('#field-password-error').fadeOut(400);

	$('#field-cpassword').css('visibility' , 'visible');
	$('#field-cpassword-error').fadeOut(400);
}

function showError(field , text)
{
	$('#field-' + field + '-error').fadeIn(400);
	$('#field-' + field + '-error-text').html(text);
}

function sendClose()
{
	gState = 1;
	showAuthorize();
	$('#authorize-form').fadeOut(400);
}

function close_w() { close(); }
