$(document).ready(function() {
	function clear()
	{
		$("table.sign_table input").each(function() {
			if($(this).attr("type") != "button")
			{
				$(this).val("");
			}
		});
		$("#sign_mess > p").css("display", "none");
		$.post(base_url() + "pub/changeCaptcha/", {}, print_captcha);
	}
	
	$("#clear").click(function() {
		clear();
	});
	
	clear();
	
	$("span.span_link").hover(function() {
		$(this).css("color", "#000000");
		$(this).css("text-decoration", "none");
	}, function() {
		$(this).css("color", "#cf1111");
		$(this).css("text-decoration", "underline");
	});
	
	$("#change_captcha").click(function() {
		$.post(base_url() + "pub/changeCaptcha/", {}, print_captcha);
	});

	function print_captcha(data)
	{
		$("#input_captcha").val("");
		$("#captcha").html(data);
	}
	
	$("table.sign_table input").focus(function() {
		$("#sign_mess > p").css("display", "none");
	});
	
	$("table.sign_table input").keypress(function(key) {
		if(key.keyCode == 13)
		{
			$("#signup").click();
		}
		else
		{
			$("#sign_mess > p").css("display", "none");
		}
	});
	
	$("#signup").click(function() {
		$("#sign_mess > p").css("display", "none");
		if(check_login() == "ok")
		{
			if(check_pass() == "ok")
			{
				if(check_email() == "ok")
				{
					if(check_name() == "ok")
					{
						if(check_phone() == "ok")
						{
							if(check_site() == "ok")
							{
								if(check_captcha() == "ok")
								{
									$("#sign_wait").css("display", "block");
									$.post(base_url() + "pub/signup/", {"login": $.trim($("#login").val()), "pass": $.trim($("#pass").val()), "email": $.trim($("#email").val()), "name": encodeURI($.trim($("#name").val())), "company": encodeURI($.trim($("#company").val())), "adress": encodeURI($.trim($("#adress").val())), "phone": $.trim($("#phone").val()), "site": $.trim($("#site").val()), "captcha": $.trim($("#input_captcha").val())}, sign_result);
								}
								else
								{
									$("#sign_" + check_captcha()).css("display", "block");
								}
							}
							else
							{
								$("#sign_" + check_site()).css("display", "block");
							}
						}
						else
						{
							$("#sign_" + check_phone()).css("display", "block");
						}
					}
					else
					{
						$("#sign_" + check_name()).css("display", "block");
					}
				}
				else
				{
					$("#sign_" + check_email()).css("display", "block");
				}
			}
			else
			{
				$("#sign_" + check_pass()).css("display", "block");
			}
		}
		else
		{
			$("#sign_" + check_login()).css("display", "block");
		}
	});
	
	function sign_result(data)
	{
		$("#sign_mess > p").css("display", "none");
		if(data == "is_email")
		{
			$("#sign_is_email").css("display", "block");
		}
		
		if(data == "is_login")
		{
			$("#sign_is_login").css("display", "block");
		}
		
		if(data == "wrong_captcha")
		{
			$("#sign_wrong_captcha").css("display", "block");
		}
		
		if(data == "ok")
		{
			clear();
			$("div.befor_reg").css("display", "none");
			$("div.after_reg").css("display", "block");
		}
	}
	
	function check_login()
	{
		if($.trim($("#login").val()) != "")
		{
			var check = "no";
			var str = $.trim($("#login").val());
			for(i = 0; i < str.length; i++)
			{
				var code = str.charCodeAt(i)
				if(code < 32 || (code > 32 && code < 43) || code == 44 || (code > 45 && code < 48) || (code > 57 && code < 64) || (code > 90 && code < 95) || (code > 95 && code < 97) || code > 122)
				{
					check = "yes";
				}
			}
			
			if(check == "yes")
			{
				return "symbol_login";
			}
			else
			{
				return "ok";
			}
		}
		else
		{
			return "empty_login";
		}
	}
	
	function check_pass()
	{
		if($.trim($("#pass").val()) != "")
		{
			if($.trim($("#repass").val()) != "")
			{
				if($.trim($("#pass").val()) == $.trim($("#repass").val()))
				{
					var check = "no";
					var str = $.trim($("#pass").val());
					for(i = 0; i < str.length; i++)
					{
						var code = str.charCodeAt(i);
						if(code < 32 || (code > 32 && code < 48) || (code > 57 && code < 65) || (code > 90 && code < 95) || (code > 95 && code < 97) || code > 122)
						{
							check = "yes";
						}
					}
					
					if(check == "yes")
					{
						return "symbol_pass";
					}
					else
					{
						return "ok";
					}
				}
				else
				{
					return "notsame_pass";
				}
			}
			else
			{
				return "empty_repass";
			}
		}
		else
		{
			return "empty_pass";
		}
	}
	
	function check_email()
	{
		if($.trim($("#email").val()) != "")
		{
			var email = $.trim($("#email").val());
				email = email.toLowerCase();
			var emailTest = "^[_\\.0-9a-z-]+@([0-9a-z][0-9a-z_-]+\\.)+[a-z]{2,4}$"; 
			var regex = new RegExp(emailTest); 
			var check = "";
			if (!regex.test(email) || !(email.length > 0)) 
			{
				check = "error"; 
			}

			if(check == "error")
			{
				return "symbol_email";
			}
			else
			{
				return "ok";
			}
		}
		else
		{
			return "empty_email";
		}
	}
	
	function check_name()
	{
		if($.trim($("#name").val()) != "")
		{
			var check = "no";
			var str = $.trim($("#name").val());
			for(i = 0; i < str.length; i++)
			{
				var code = str.charCodeAt(i)
				if(code < 32 || (code > 32 && code < 39) || (code > 39 && code < 45) || (code > 45 && code < 65) || (code > 90 && code < 97) || (code > 122 && code < 1025) || (code > 1025 && code < 1028) || (code > 1028 && code < 1030) || (code > 1031 && code < 1040) || (code > 1103 && code < 1105) || (code > 1105 && code < 1108) || (code > 1108 && code < 1110) || code > 1111)
				{
					check = "yes";
				}
			}
			
			if(check == "yes")
			{
				return "symbol_name";
			}
			else
			{
				return "ok";
			}
		}
		else
		{
			return "empty_name";
		}
	}
	
	function check_phone()
	{
		var str = $.trim($("#phone").val());
		if(str != "")
		{
			var check = "no";
			for(i = 0; i < str.length; i++)
			{
				var code = str.charCodeAt(i)
				if(code < 32 || (code > 32 && code < 40) || (code > 41 && code < 44) || (code > 46 && code < 48) || code > 57)
				{
					check = "yes";
				}
			}
			
			if(check == "yes")
			{
				return "symbol_phone";
			}
			else
			{
				return "ok";
			}
		}
		else
		{
			return "ok";
		}
	}
	
	function check_site()
	{
		var str = $.trim($("#site").val());
		if(str != "")
		{
			var check = "no";
			for(i = 0; i < str.length; i++)
			{
				var code = str.charCodeAt(i)
				if(code < 45 || (code > 58 && code < 65) || (code > 90 && code < 97) || code > 122)
				{
					check = "yes";
				}
			}
			
			if(check == "yes")
			{
				return "symbol_site";
			}
			else
			{
				return "ok";
			}
		}
		else
		{
			return "ok";
		}
	}
	
	function check_captcha()
	{
		var str = $.trim($("#input_captcha").val());
		if(str != "")
		{
			var check = "no";
			for(i = 0; i < str.length; i++)
			{
				var code = str.charCodeAt(i)
				if(code < 48 || code > 57)
				{
					check = "yes";
				}
			}
			
			if(check == "yes")
			{
				return "symbol_captcha";
			}
			else
			{
				return "ok";
			}
		}
		else
		{
			return "empty_captcha";
		}
	}
	
	$("#recov_login").val("");
	$("#recov_login").focus(function() {
		$("#rec_mess > p").css("display", "none");
	});
	
	$("#recov_login").keypress(function(key) {
		if(key.keyCode == 13)
		{
			$("#recovery").click();
		}
		else
		{
			$("#rec_mess > p").css("display", "none");
		}
	});
	
	$("#recovery").click(function() {
		$("#rec_mess > p").css("display", "none");
		if($.trim($("#recov_login").val()) != "")
		{
			$("#rec_wait").css("display", "block");
			$.post(base_url() + "pub/sendRecovery/", {"login": $.trim($("#recov_login").val())}, recovery_result);
		}
		else
		{
			$("#rec_empty_login").css("display", "block");
		}
	});
	
	function recovery_result(data)
	{
		$("#rec_mess > p").css("display", "none");
		$("#rec_" + data).css("display", "block");
		if(data == "ok")
		{
			$("#recov_login").val("");
		}
	}
});