$(document).ready(function(){
	
	$.fn.showRegistrationDialog = function()
	{
		$('#registration_dialog').fadeIn(200);
	};
	
	
	$.fn.cancelRegistrationDialog = function()
	{
		$('#registration_dialog').fadeOut(500);
		
		$('#user_name').val('');
		$('#email').val('');
		$('#password').val('');
		$('#password2').val('');
	};
	
	
	$.fn.handleRegistrationDialog = function()
	{
		
		var postdata = 'user_name='		+ $('#user_name').textfieldVal();
		postdata 	+= '&email='		+ $('#email').textfieldVal();
		postdata 	+= '&password='		+ $('#password').val();
		postdata 	+= '&password2='	+ $('#password2').val();
		
		if ($('#agree_tac').is(':checked')) postdata += '&agree_tac=1';
		if ($('#agree_pp').is(':checked')) postdata += '&agree_pp=1';
		
		postdata 	+= '&recaptcha_challenge_field='+ $('#recaptcha_challenge_field').val();
		postdata 	+= '&recaptcha_response_field='+ $('#recaptcha_response_field').val();
		
		$.ajax(
		{
			type: 'POST',
			url: '/usercp/handle_registration',
			data: postdata,
			datatype: 'xml',
			
			beforeSend: function()
			{
				$('.form_error_bubble').hide();
			},

			success: function(xml)
			{
				var json = $(this).parseXMLResponse(xml);

				if (json.status == 0)
				{
					alert(json.statusMsg);
				}
				else
				{
					var errors = $(xml).find('errors');
					
					if (errors.attr('count') != 0)
					{
						var tac_error 		= errors.find('tac').text();
						var pp_error 		= errors.find('pp').text();
						var user_name_error = errors.find('user_name').text();
						var email_error 	= errors.find('email').text();
						var password_error 	= errors.find('password').text();
						var password2_error = errors.find('password2').text();
						var captcha_error 	= errors.find('captcha').text();
						
						if (user_name_error)
						{
							$('#user_name').showBubble(user_name_error, 0);
						}
						
						if (tac_error)
						{
							$('#agree_tac').showBubble(tac_error, 0, 153);
						}
						
						if (pp_error)
						{
							$('#agree_pp').showBubble(pp_error, 0, 153);
						}
						
						if (email_error)
						{
							$('#email').showBubble(email_error, 0);
						}
						
						if (password_error)
						{
							$('#password').showBubble(password_error, 0);
						}
						
						if (password2_error)
						{
							$('#password2').showBubble(password2_error, 0);
						}
						
						if (captcha_error)
						{
							$('#captcha').showBubble(captcha_error, 1, 10, -129);
						}
						
						
						//$('#captcha_html').html(json.successHTML);
					}
					else
					{
						$('#registration_dialog_body').html(json.successHTML);
					}
				}
			}
		});
	};
	
	// -------------------------------------------------------------------------
	
	$.fn.showLoginDialog = function()
	{
		$('#login_dialog').fadeIn(200);
		$('#login_user_name').focus();
	};
	
	
	$.fn.cancelLoginDialog = function()
	{
		$('#login_dialog').fadeOut(500);
		$('#user_name').val('');
		$('#password').val('');
	};
	
	
	$.fn.handleLoginDialog = function()
	{
		var postdata = 'user_name='		+ $('#login_user_name').textfieldVal();
		postdata 	+= '&password='		+ $('#login_password').val();
		
		$.ajax(
		{
			type: 'POST',
			url: '/usercp/handle_login',
			data: postdata,
			datatype: 'xml',
			
			beforeSend: function()
			{
				$('#btn_login_submit').attr('disabled', 'disabled');
				$('#btn_login_cancel').attr('disabled', 'disabled');
				$('#login_form_indicator').html($('#icon_loading').html());
				$('#login_form_errors').hide();
			},
			
			success: function(xml)
			{
				
				var json = $(this).parseXMLResponse(xml);

				if (json.status == 0)
				{
					$('#btn_login_submit').removeAttr('disabled');
					$('#btn_login_cancel').removeAttr('disabled');
					$('#login_form_indicator').html('');
					alert(json.statusMsg);
				}
				else
				{
					var errors = $(xml).find('errors');
					
					if (errors.attr('count') != 0)
					{
						$('#btn_login_submit').removeAttr('disabled');
						$('#btn_login_cancel').removeAttr('disabled');
						$('#login_form_indicator').html('');
						
						var login_form_error = errors.find('login_form').text();
						
						if (login_form_error)
						{
							$('#login_form_errors').html(login_form_error);
							$('#login_form_errors').show();
						}
					}
					else
					{
						var urlRegex = /usercp\/verify/;
		
						if (urlRegex.test(window.location))
						{
							window.location = '/';
						}
						else
						{
							window.location = '';
						}
					}
				}
			}
		});
	};
	
	// -------------------------------------------------------------------------
	
	$.fn.handleLogout = function()
	{
		$.ajax(
		{
			type: 'POST',
			url: '/usercp/handle_logout',
			datatype: 'xml',
			
			success: function(xml)
			{
				var json = $(this).parseXMLResponse(xml);

				if (json.status == 0)
				{
					alert(json.statusMsg);
				}
				else
				{
					window.location = '';
				}
			}
		});
	};
	
	
	
	// -------------------------------------------------------------------------
	// Settings
	// -------------------------------------------------------------------------
	
	// -------------------------------------------------------------------------
	
	$.fn.handleProfileForm = function()
	{
		var postdata = 'first_name='		+ $('#first_name').textfieldVal();
		postdata 	+= '&last_name='		+ $('#last_name').textfieldVal();
		postdata 	+= '&birthday_day='		+ $('#birthday_day').val();
		postdata 	+= '&birthday_month='	+ $('#birthday_month').val();
		postdata 	+= '&birthday_year='	+ $('#birthday_year').val();
		postdata 	+= '&date_format='		+ $('#date_format').val();

		
		$.ajax(
		{
			type: 'POST',
			url: '/usercp/handle_profile_form',
			data: postdata,
			datatype: 'xml',
			
			beforeSend: function()
			{
				$('#btn_profile_submit').attr('disabled', 'disabled');
				$('#profile_form_indicator').html($('#icon_loading').html());
			},
			
			success: function(xml)
			{
				var json = $(this).parseXMLResponse(xml);

				if (json.status == 0)
				{
					alert(json.statusMsg);
				}
				else
				{
					$('#btn_profile_submit').val('Updated');
					$('#btn_profile_submit').css({'background-color': '#00ff00'});
				}
				
				$('#profile_form_indicator').html('');
				$('#btn_profile_submit').removeAttr('disabled');
			}
		});
	};
	
	
	$.fn.handleSettingChange = function(elementId)
	{
		var value = '0';
		var postdata = 'key=' + elementId;
		
		if ($('#'+ elementId).is(':checked'))
		{
			value = '1';
		}
		
		postdata += '&value=' + value;
		
		$.ajax(
		{
			type: 'POST',
			url: '/usercp/handle_setting_change',
			data: postdata,
			datatype: 'xml',
			
			success: function(xml)
			{
				var json = $(this).parseXMLResponse(xml);

				if (json.status == 0)
				{
					alert(json.statusMsg);
				}
				else
				{
					
				}
			}
		});
	};
	
});






