function password_strength(password)
{
	// 0 - very weak, 1 weak, 2 - better, 3 - medium, 4 strong, 5 - strongest
	var score   = 0;
    
	//if password bigger than 6 give 1 point
	if (password.length > 6) score++;

    //if password has both lower and uppercase characters give 1 point      
    if ( ( password.match(/[a-z]/) ) && ( password.match(/[A-Z]/) ) ) score++;

    //if password has at least one number give 1 point
    if (password.match(/\d+/)) score++;

    //if password has at least one special caracther give 1 point
    if ( password.match(/.[!,@,#,$,%,^,&,*,?,_,~,-,(,)]/) ) score++;

    //if password bigger than 12 give another 1 point
    if (password.length > 12) score++;
	
	return score;
}

function init_signup()
{
	signup_login = function()
	{
		$('#signup-login').val(strip_tags($('#signup-login').val()));	
		if (0 == $('#signup-login').val().length)
		{
			$('#signup-login').addClass('error');
			notice_error('Please specify login');	
			return false;	
		}		
		$('#signup-login').removeClass('error');
		notice_error_clear();	
		
		return true;
	}
	
	signup_login_unique = function()
	{
		if (!signup_login())
			return false;
			
		$.ajax({
			url: '/signup/checklogin/id/' + encodeURI($('#signup-login').val()),
			success: function(data){
				if (data.length > 0)
				{
					$('#signup-login').addClass('error');
					notice_error(data);
				}	
			}
		});			
		$('#signup-login').removeClass('error');
		notice_error_clear();
		return true;
	}
	
	signup_display = function()
	{				
		$('#display_name').val(strip_tags($('#display_name').val()));	
		if (0 == $('#display_name').val().length)
		{
			$('#display_name').addClass('error');
			notice_error('Please specify display name');	
			return false;	
		}	
		
		if ($('#display_name').val().length < 4)
		{
			$('#display_name').addClass('error');
			notice_error('Your display name should contain at least 4 symbols');	
			return false;				
        }
		
		if ($('#display_name').val().length >20)
		{
			$('#display_name').addClass('error');
			notice_error('Your display name should contain less than 20 symbols');	
			return false;				
        }
		
		if (null != $('#display_name').val().match(/[^0-9A-Za-z\_\-]/))
		{
			$('#display_name').addClass('error');
			notice_error('Your display name should contain only 0-9, a-Z and underscore symbols');	
			return false;				
        }		

		$.ajax({
			url: '/signup/checkdisplay/id/' + encodeURI($('#display_name').val()),
			success: function(data){
				if (data.length > 0)
				{
					$('#display_name').addClass('error');				
					notice_error(data);
				}
			}
		});			
		$('#display_name').removeClass('error');
		notice_error_clear();
		return true;
	}	
	
	signup_password = function()
	{
		$('#signup-password').val(strip_tags($('#signup-password').val()));		
		if (0 == $('#signup-password').val().length)
		{
			$('#signup-password').addClass('error');					
			notice_error('Please specify password');	
			return false;	
		}	
						
		if (password_strength($('#signup-password').val()) < 2 )
		{	
			$('#signup-password').addClass('error');				
			notice_error('Your password is too weak. Try to use numbers, upper- and lowercase letters, special symbols.');	
						  
			return false;
		}
		
		$('#signup-password').removeClass('error');			
		notice_error_clear();
		return true;
	}	
	
	signup_password2 = function()
	{			
		$('#signup-password2').val(strip_tags($('#signup-password2').val()));		
		if ($('#signup-password').val() != $('#signup-password2').val())
		{
			$('#signup-password2').addClass('error');		
			notice_error("Password and Password confirmation didn't match");	
			return false;	
		}	
		
		$('#signup-password2').removeClass('error');			
		notice_error_clear();
		return true;
	}	
			
		
	signup_email = function()
	{
		$('#signup-email').val(strip_tags($('#signup-email').val()));		
				
		if (0 == $('#signup-email').val().length)
		{
			$('#signup-email').addClass('error');			
			notice_error('Please specify email');
			return false;	
		}
		
		var filter = /^((([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|\/|=|\?|\^|_|`|\{|\||\}|~)+(\.([a-z]|[0-9]|!|#|$|%|&|'|\*|\+|\-|\/|=|\?|\^|_|`|\{|\||\}|~)+)*)@((((([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.))*([a-z]|[0-9])([a-z]|[0-9]|\-){0,61}([a-z]|[0-9])\.)[\w]{2,4}|(((([0-9]){1,3}\.){3}([0-9]){1,3}))|(\[((([0-9]){1,3}\.){3}([0-9]){1,3})\])))$/;

		if (!filter.test($('#signup-email').val())) 
		{
			$('#signup-email').addClass('error');	
			notice_error('Email is not valid');	
			return false;			
		}
		
		$('#signup-email').removeClass('error');			
		notice_error_clear();
		return true;
	}		
	
	signup_email_unique = function()
	{
		if (!signup_email())
			return;
			
		$.ajax({
			url: '/signup/checkemail/id/' + encodeURI($('#signup-email').val()),
			success: function(data){
				if (data.length > 0)
				{
					$('#signup-email').addClass('error');	
					notice_error(data);
				}
			}
		});		
		
		$('#signup-email').removeClass('error');		
		notice_error_clear();
		return true;
	}	
	
	signup_agree = function()
	{
		if (!$('#signup-agree').attr('checked'))
		{
			notice_error('Please agree with terms and conditions');	
			return false;	
		}	
		
		notice_error_clear();
		return true;				
	}		
	
	signup_captcha = function()
	{
		if ("" == $('#recaptcha_response_field').val())
		{
			notice_error('Captcha should not be empty');	
			return false;	
		}	
		
		notice_error_clear();
		return true;				
	}
	
		
	$('#signup-login').blur(signup_login_unique);
	$('#signup-password').blur(signup_password);
	$('#signup-password2').blur(signup_password2);
	$('#signup-email').blur(signup_email_unique);
	$('#signup-agree').blur(signup_agree);
	$('#display_name').blur(signup_display);
	$('#recaptcha_response_field').blur(signup_captcha);	
		
	check_signup = function()
	{
		if (!signup_login()) 
			return false;	
					
		if ($('#display_name').size() > 0)	
			if (!signup_display())
				return false;			
			
		if (!signup_password()) 
			return false;
			
		if (!signup_password2()) 
			return false;			
					
		if (!signup_email()) 
			return false;

		if (!signup_agree()) 
			return false;	

		if (!signup_captcha()) 
			return false;			
				
		return true;
	}
	
	$('#frmsignup').submit(check_signup);
}


function init_profile()
{
		
	check_profile = function()
	{
		
		return true;
	}
	
	$('#frmprofile').submit(check_profile);
}


function init_bio()
{
		
	check_bio = function()
	{
		
		return true;
	}
	
	$('#frmbio').submit(check_bio);
}

function check_login()
{
	if (0 == $('#login').val().length)
	{
		notice_error('Please specify login');	
		return false;	
	}	
	
	return true;
}

function init_payment()
{
	payment_ccname = function()
	{
		if (0 == $('#ccname').val().length)
		{
			notice_error('Credit card name should not be empty');	
			return false;	
		}		
		
		notice_error_clear();		
		return true;
	}
	
	payment_ccnum = function()
	{
		if (0 == $('#ccnum').val().length)
		{
			notice_error('Credit card number should not be empty');	
			return false;	
		}		
		
		notice_error_clear();		
		return true;
	}
	
	$('#ccname').blur(payment_ccname);
	$('#ccnum').blur(payment_ccnum);
	
	
	check_payment = function()
	{
		if (!payment_ccname()) 
			return false;
			
		if (!payment_ccnum()) 
			return false;
		
		return true;
	}
	
	$('#frmbio').submit(check_payment);
}





