jQuery(document).ready(function()
{		
	init();
		
	var valids = jQuery("#registerForm").validate(
	{
		groups:
		{
			birthdate:	"days months years"
		},
		errorClass:		'errorRegister',
		ignoreTitle:	true,
		errorPlacement: function(error, element) 
		{
			error.appendTo( element.parent('td') )
		},
		debug: false		
	});		
	
	jQuery("#email").rules("add", 
	{
		required:	true,
		email:		true,
		remote: 
		{
			url:	"/auth/json_duplicate_email_check/",
			type:	"post"
		},
		messages: 
		{
			remote:		"This email is registered already"
		}
	});
	
	jQuery("#password").rules("add", 
	{
		required:	true,
		minlength:	6,
		messages: 
		{
			minlength:	jQuery.format("At least {0} characters are necessary")
		}
	});
	
	jQuery("#password_confirm").rules("add", 
	{
		required:	true,
		minlength:	6,
		equalTo:	"#password",
		messages: 
		{
			minlength:	jQuery.format("At least {0} characters are necessary"),
			equalTo:	'Does not match password above'
		}
	});						
	
	jQuery("#user_name").rules("add", 
	{
		required:	true,
		minlength:	3,
		remote: 
		{
			url:	"/auth/json_duplicate_username_check/",
			type:	"post"
		},			
		messages: 
		{
			minlength:	jQuery.format("Please, at least {0} characters are necessary"),
			remote:		jQuery.format("{0} is already taken.")
		}
	});		

	jQuery("#prevStep").click(function(e)
	{	
		jQuery("#stageTwo").hide(0);
		jQuery("#stageOne").show('fast');
		
		jQuery("#firstname").rules("remove");
		jQuery("#lastname").rules("remove");
		jQuery("select[name='country']").rules("remove");
		jQuery("select[name='days']").rules("remove");
		jQuery("select[name='months']").rules("remove");
		jQuery("select[name='years']").rules("remove");
		
		e.preventDefault();
	});
	
	jQuery("#nextStep").click(function(e)
	{		
		//alert("Valid: " + $("#registerForm").valid());
		
		var email				= jQuery("#email").val();
		var password			= jQuery("#password").val();
		var password_confirm	= jQuery("#password_confirm").val();
		var user_name			= jQuery("#user_name").val();

		/*valid_step1 = jQuery("#registerForm").validate(
		{
			onkeyup: true
		});	*/
		
		//valid_username = jQuery("#user_name").validate({onkeyup: true});
				
		if ($.trim(email) == '' || $.trim(password) == '' || $.trim(password_confirm) == '' || $.trim(user_name) == '')
			var success = false;
		else
			var success = true; 
		
		if (!$("#registerForm").validate().element("#user_name"))
			success = false;
		
		/*if (!$("#user_name").validate({onkeyup: true}).valid())
			success = false;*/
		
		if ($("#registerForm").valid() && success)
		{
			pageTracker._trackPageview("/funnel_G1/step2.html");
			
			jQuery("#firstname").rules("add", 
			{
				required:	true,
				minlength:	3,
				messages: 
				{
					minlength:	jQuery.format("At least {0} characters are necessary")
				}
			});
			
			jQuery("#lastname").rules("add", 
			{
				required:	true,
				minlength:	3,
				messages: 
				{
					minlength:	jQuery.format("At least {0} characters are necessary")
				}
			});

			jQuery("select[name='country']").rules("add", 
			{
				required:	true,
				min:		1,				
				messages: 
				{	
					min:		"You must select a country"				
				}
			});
			
			
			jQuery("select[name='days']").rules("add", 
			{
				required:	true,	
				min:		1,			
				messages: 
				{
					min:		"You must select your birthdate"					
				}
			});				
			
			jQuery("select[name='months']").rules("add", 
			{
				required:	true,
				min:		1,				
				messages: 
				{
					min:		"You must select your birthdate"					
				}
			});				
			
			jQuery("select[name='years']").rules("add", 
			{
				required:	true,				
				min:		1,
				messages: 
				{
					min:		"You must select your birthdate"					
				}
			});										
				
			jQuery("#stageOne").hide(0);						
			jQuery("#stageTwo").show('fast');
			
		}
		
		//console.debug(valids.numberOfInvalids());		
		e.preventDefault();
	});
});


function init()
{
	jQuery("#prevStep").show(0);
	jQuery("#nextStep").show(0);	
	jQuery("#stageTwo").hide(0);
	//jQuery("#registerSubmit").hide(0);
}	