var formSubmitted = false;

$(document).ready(function() {
	$("#dialog_register").dialog({
		autoOpen:false,
		bgiframe:true,					
		modal: true,
		width:500,
		open: function() {
			$("#captchaimg").html('<img src="/captcha/generate/new/'+generateRandom()+'"/>');
		}
	});
	
	$("#dialog_passwordrecover").dialog({
		autoOpen:false,
		bgiframe:true,					
		modal: true,
		width:500
	});		
						   
	$("#passwordrecover_btn").click(function(){
		$("#dialog_passwordrecover").dialog("open");
		return false;	
	});
	
	$("#register_btn").click(function(){
		$("#dialog_register").dialog("open");
		return false;	
	});	
	
	$("#captcha a").click(function(){
		$("#captchaimg").html('<img src="/captcha/generate/new/'+generateRandom()+'"/>');
		return false;	
	});
	
	$("#captcha_login a").click(function(){
		$("#captchaimg_login").html('<img src="/captcha/generate/new/'+generateRandom()+'"/>');
		return false;	
	});
	
	//LOGIN ajaxForm actions
	//login
	var options_1 = { 
		dataType:		'json', 
		success:		processLogin
	}; 

	$('#loginForm').ajaxForm(options_1);
	$('#loginForm input').bind('click',function(event) {
		$("#loginResult").hide("fast");
	});
	
	//passwordrecover
	var options_3 = { 
		dataType:	'json', 
		success:	processRecover
	}; 
	$('#recoverForm').ajaxForm(options_3);
	
	//new user
	var options_2 = { 
		dataType:		'json', 
			beforeSubmit: function() {
				if (formSubmitted)	{
					return false;
				}
					
				formSubmitted = true;	
			},
		success:		processSignup
	}; 
	
	$('#signupForm').ajaxForm(options_2);
	$('#signupForm input').bind('keyup', function(event) {
		var fieldvalue=$(this).val();
		var fieldname=this.name;
		var fielddata;
		
		if ((fieldname=="password_repeat") || (fieldname=="password"))
		{

			var password=$('#password').val();
			var password_repeat=$('#password_repeat').val();
			
			if (password==password_repeat) {
				$('#validate_password_repeat').hide();
			} else {
				this.passwordRepeatTimer = setTimeout(function()
				{
					password=$('#password').val();
					password_repeat=$('#password_repeat').val();
					if ((password!=password_repeat)&&(password_repeat.length!=0))
					{
						$('#validate_password_repeat').show().addClass('submitError').html("Введенные пароли не совпадают.");
					}
				}, 4000);
			}
			
			if (password.length>5)
			{
				$('#validate_password').hide();

			} else {
				this.passwordTimer = setTimeout(function()
				{
					password=$('#password').val();
					if (password.length<=5)
					{
						$('#validate_password').show().addClass('submitError').html("Пароль слишком короткий.");
					}
				}, 4000);
			}
						
		} else if((fieldname=="email") || (fieldname=="username")) {
			fielddata=fieldname+"="+fieldvalue;
			if (this.value!=this.lastValue)
			{
				if (this.timer) clearTimeout(this.timer);
				$('#validate_'+fieldname).removeClass('submitOkay submitError').html('<img src="/img/ajax-loader.gif" height="16" width="16" /> проверка');

				this.timer = setTimeout(function()
				{
					$.ajax({
						url: "/signup/validate"+fieldname,
						type: 'POST',
						data: fielddata,
						dataType: 'json',
						success: function(data) {
							if (data.ok)
								$('#validate_'+fieldname).removeClass('submitError').addClass('submitOkay').html(data.msg);
							else
								$('#validate_'+fieldname).removeClass('submitOkay').addClass('submitError').html(data.msg);	
						}
					});
				}, 1000);
				this.lastValue = this.value;
			}
		}
		
	});
	
	$('#locale a').click(function() {
		var locale = $(this).attr("param");
		$.cookie("locale", locale, { path: '/', expires: 365 });		
		window.location.reload();
		return false;
	});
});

function processLogin(data) { 
	if (data.ok)
	{
		if ($.cookie("redirectURL")) {
			var address = $.cookie("redirectURL");
			$.cookie("redirectURL", null);
		} else {	
			var address = "/index";
		}
		$.cookie("redirectURL", null);	
		document.location=address;	
			
	} else {
		if (data.captcha)
		{
			$("#captchaimg_login").html('<img src="/captcha/generate/new/'+generateRandom()+'"/>');
			$('#captcha_login').show();
		}
		$("#loginResult").show("fast");
	}
	$("#loginResult").html(data.msg);
}

function processRecover(data) { 
	if (data.ok)
	{
		$("#recoverForm").html("<p class='pstyle6'>" + data.msg + "</p>");
	} else {
    	$("#recoverResult").html(data.msg);
		$("#recoverResult").show("fast");
	}
}

function processSignup(data) { 
	if (data.ok)
	{
		if ($.cookie("redirectURL"))
			var address = $.cookie("redirectURL");
		else	
			var address = "/stepstosuccess";
		$.cookie("redirectURL", null);
		//Раскрыть все пункты меню
		$.cookie("s1", true, { path: '/', expires: 365 });		
		$.cookie("s2", true, { path: '/', expires: 365 });
		$.cookie("s3", true, { path: '/', expires: 365 });
		$.cookie("s4", true, { path: '/', expires: 365 });
		$.cookie("s5", true, { path: '/', expires: 365 });
		document.location=address;
	} else {
		formSubmitted = false;
    	$("#signupResult").html(data.msg);
		$("#signupResult").show("fast");
	}
}
	
function generateRandom(number) {
	var rand_no = Math.random();
	rand_no = rand_no * 10000;
	rand_no = Math.ceil(rand_no);
	return rand_no;
}
