var login_on_validated_event;
var login_on_error_event;

function login_submit_login(login_form) {
	 // Check if user is logged in
	var request_url = login_url + '?ajax=yes&action=login';

	var post_data = ($(login_form).serialize());		
	
	$.ajax({
		url:request_url,
		type:'POST',
		data:post_data,
		success:function(data) {
			var result_data = jQuery.parseJSON(data);
			if (result_data.success == 'yes') {
				$('#login_login_messages').hide();
				login_on_validated_event('logged_in');
				$('#login_dialog').dialog('close');
			} else {
				var all_error_messages = '';
				var message_count = 0;
				for (var fields in result_data.error_messages) {
					for (var criteria in result_data.error_messages[fields]) {
						all_error_messages = all_error_messages + result_data.error_messages[fields][criteria] + '<br/>';
						message_count++;
						if (message_count >= 3) {
							break;
						}
					}
					if (message_count >= 3) {
						break;
					}
				}
				
				$('#login_login_messages').removeClass('login_info_messages');
				$('#login_login_messages').addClass('login_error_messages');
				$('#login_login_messages').html(all_error_messages);
				$('#login_login_messages').slideDown();				
			}
			
		}
	});
	return false;
} // login_submit_login()


function login_submit_newuser(newuser_form) {
	 // Check if user is logged in
	var request_url = login_url + '?ajax=yes&action=newuser';

	var post_data = ($(newuser_form).serialize());		
	
	$.ajax({
		url:request_url,
		type:'POST',
		data:post_data,
		success:function(data) {
			var result_data = jQuery.parseJSON(data);
			if (result_data.success == 'yes') {
				$('#login_newuser_messages').hide();
				login_on_validated_event('new_user');
				$('#login_dialog').dialog('close');
			} else {
				var all_error_messages = '';
				var message_count = 0;
				for (var fields in result_data.error_messages) {
					for (var criteria in result_data.error_messages[fields]) {
						all_error_messages = all_error_messages + result_data.error_messages[fields][criteria] + '<br/>';
						message_count++;
						if (message_count >= 3) {
							break;
						}
					}
					if (message_count >= 3) {
						break;
					}
				}
				$('#login_newuser_messages').html(all_error_messages);
				$('#login_newuser_messages').slideDown();				
			}
			
		}
	});
	return false;
} // login_submit_newuser()

function validate_user(allow_new_user, on_validated_event, on_error_event) {
	 // Check if user is logged in
	var request_url = login_url + '?ajax=yes';
	
	var result = $.getJSON(request_url + '&action=is_logged_in', function(data) {
		var is_logged_in = 'is_logged_in' in data?data['is_logged_in']:-1;
		if (is_logged_in == -1) {
			on_error_event();
			return false;
		}

		if (is_logged_in == 'yes') {
			on_validated_event('already_logged_in');
			return false;
		}
		
		login_on_validated_event = on_validated_event;
		$('#login_dialog').dialog('open');
	});	
			
} // validate_user()

function login_forgot_password_link(action, message) {
	$('#login_login').toggle();
	$('#login_back').toggle();
	$('.login_reset_password').toggle();
	$('#login_password_row').toggle();

	if (action == 'reset_password') {
		$('#login_reset_password').val('yes');		
	} else {
		$('#login_reset_password').val('');
	}
	
	$('#login_login_messages').html(message);
	$('#login_login_messages').addClass('login_info_messages');
	$('#login_login_messages').removeClass('login_error_messages');
	$('#login_login_messages').show();
	
	return false;
}
