$(document).ready(function() {
	
	if($('.personal_link .change_avatar').length) {
		$('.personal_link .change_avatar').live('click', function() {
			$('#change_avatar input[type=file]').click();
			return false;
		});
	}
	
	bindDataForm();
	
});

function bindDataForm() {

	$('#send_confirm').live('click', function() {
		$.post('/mailcheck', null, function(data) {
			if(parseInt(data)) {
				$('#send_confirm').next().show();
				$('#send_confirm').hide();
			}
		});
		return false;
	});

	$('#mydata form').submit(function() {
	
		$('#mydata :input').removeClass('error');
		$('#mydata p.error').remove();
	
		isError = false;
		$('#mydata input[type!=hidden][type!=image]').each(function() {

			error = "";
			if($(this).attr('validator')) {
				validators = $(this).attr('validator').split("|");
				name = $(this).attr('name');
				
				for(i=0; i<validators.length; i++) {
					label = $(this).parents("tr:eq(0)").find('td:first').text();
					label = label.replace(/\*/, '');
					
					switch(validators[i].replace(/\(\d+\)/, "")) {
						case "notblank":
							if(!trim($(this).val())) error = "Поле \"" + label + "\" не должно быть пустым";
						break;
						case "name":
							val = trim($(this).val());
							if(/[^A-Za-zА-Яа-яёЁ\s-]/.test(val)) error = "Поле \"" + label + "\" должно содержать только буквы";
						break;
						case "min":
							num = parseInt(validators[i].replace(/\w+\((\d+)\)/, "$1"));
							val = trim($(this).val());
							if(num > val.length && $(this).val()) error = "Поле \"" + label + "\" должно быть не меньше " + num + " символов";
						break;
						case "max":
							num = parseInt(validators[i].replace(/\w+\((\d+)\)/, "$1"));
							val = trim($(this).val());
							if(num < val.length) error = "Поле \"" + label + "\" должно быть не больше " + num + " символов";
						break;
						case "number":
							val = trim($(this).val());
							if(/[^\d]/.test(val)) error = "Поле \"" + label + "\" должно содержать только цифры";
						break;
						case "email":
							val = trim($(this).val());
							if(!/^([a-z\d]([a-z\d\_\-]*)?([\.][a-z\d]([a-z\d\_\-]*)?)*)(\@)([a-z\d]([a-z\d\_\-]*[a-z\d])?([\.][a-z\d]([a-z\d\_\-]*[a-z\d])?)*[\.][a-z]{2,4})$/i.test(val)) error = "Поле \"" + label + "\" неправильного формата";
						break;
					}
					
					if(error) { isError = true; break; }
				}
			}
		
			fObj = $(this);
			if(error) fObj.addClass('error');
			else fObj.removeClass('error');
		
			fObj.after("<p class=\"error\">" + error + "</p>");
		});
		
		if(isError) return false;
	});
	
	$('#mydata input').live('focus', function() {
		fObj = $(this);
		fObj.removeClass('error');
		fObj.parents("tr:eq(0)").find('td.error').html('');
	});
}
