jQuery(document).ready(function() 
{
	$jq('#confirm_profile_join').jqm({ overlay:80, modal:true, trigger:false, toTop:'true' });
	$jq('#h5acontinue').click(function(){ document.forms[0].submit();	});
	$jq('#h5acancel').click(function(){ $jq('#confirm_profile_join').jqmHide(); });
	
	$jq('#confirmContinue').click(function(){ document.forms[0].submit();	});
	$jq('#confirmCancel').click(function(){ $jq('#confirm_profile_join').jqmHide(); });
  
	$jq('#errorList').corner('keep');
	$jq('#fieldsConteiner').corner('keep');
	$jq('#captchaConteiner').corner('keep');

	$jq('#sexBox1').corner('keep');
	$jq('#sexBox2').corner('keep');
		
	$jq('#country_select_box').change(function(){
		xajax_getStates($jq(this).val());
	});
	
	$jq('#state_select_box').change(function(){
		xajax_getCities($jq(this).val());
	});
	
	$jq('#username').keyup(function(){
		var rExp  = /[^\w]/gi;
		var value = $jq(this).val();
		
		value = value.toLowerCase();
		value = value.replace( rExp, "_" );
		
		$jq(this).val(value);
		
		if ( value.trim().length > 0 )
			$jq('#checkUname').attr('disabled','');
		else
			$jq('#checkUname').attr('disabled','disabled');
	});
	
	$jq('#checkUname').click(function(){
		xajax_checkUsername($jq('#username').val());
	});
	
	$jq('#closeNotice').click(function(){
		$jq('#usernameNotice').hide();
	});	
	$jq('#submitRegister').click(function(){
		$jq('#joinProfileForm').submit();
	});
	$jq('#confirm_email').attr('autocomplete','off');

	/* ----------------------------------------------------------------------------------------------------*/
	/* ----------------------------------------------------------------------------------------------------*/
	$jq.validator.addMethod(
		'regex',
		function(value, element, regexp) {
			var check = false;
			return this.optional(element) || regexp.test(value);
		},
		'Formato invalido'
	);
	
	$jq.validator.addMethod(
		'nodigits',
		function(value, element) {
			return this.optional(element) || !/^\d+$/.test(value);
		},
		'No puedes escribir unicamente numeros...!!!'
	);
	
	$jq.validator.addMethod(
	'checkname',
	function(value, element, param) { 
		return !($jq(param).val().search( value ) > -1);	
	}, 
	'Su nombre de fantasia no debe estar relacionado a su correo electronico...!!!'
	);
	
	$jq("#joinProfileForm").validate(
	{
		errorElement: 'div',
		errorPlacement: function(error, element) 
						{
							var name = element.attr('name');
					
							if(name=='sex')
								$jq('#sexError').html(error);
							else if( name=='match_sex') 
								$jq('#match_sexError').html(error); 
							else if( name=='relationship[]') 
								$jq('#relationshipError').html(error);
							else if( name=='birthdate_year' || name=='birthdate_month' || name=='birthdate_day' )
								$jq('#birthdateError').html(error);
							else if( name=='country_id' || name=='state_id' || name=='city_id' )
								$jq('#residenceError').html(error);
							else if( name=='username')
								$jq('#usernameError').html(error);
							else if( name=='i_am_at_least_18_years_old')
								$jq('#least18').html(error);
							else if( name=='i_agree_with_tos')
								$jq('#agreeTerms').html(error);
							else
							  error.insertAfter(element);
						},
		submitHandler: function(form) {
					confirmProfileJoin( document.forms[0] );
				},
		errorClass: 'joinError',
		rules:{  
				i_am_at_least_18_years_old		:{ required:true },
				i_agree_with_tos:{ required:true },
				sex				:{ required:true },
				match_sex		:{ required:true },
				nacionalidad	:{ required:true },
				country_id		:{ required:true },
				state_id		:{ required:true },
				city_id			:{ required:true },
				
				'relationship[]':{ required:true, minlength:1 },
				
				birthdate_year	:{ required:true, digits:true },
				birthdate_month	:{ required:true, digits:true },
				birthdate_day	:{ required:true, digits:true },					
				captcha_number	:{ required:true, digits:true },

				email			:{ required:true, email:true },
				password		:{ required:true, regex:/^[a-zA-Z0-9_]{4,12}$/i },
				confirm_email	:{ required:true, equalTo:"#email"  },
				confirm_password:{ required:true, equalTo:"#password" },
				
				username		:{ required:true, minlength:3, maxlength:12, regex:/^[a-z0-9_]{3,12}$/, nodigits:true, checkname:"#email"}
			  },
		messages:{  
					i_am_at_least_18_years_old		:{ required:'Es necesario que seas mayor de 18 a&ntilde;os' },
					i_agree_with_tos:{ required:'Debes aceptar los terminos de uso' },
					sex				:{ required:'Selecciona tu sexo <br /> &nbsp;' },
					match_sex		:{ required:'Selecciona el sexo de la persona que buscas' },
					nacionalidad	:{ required:'Selecciona el pais donde naciste' },
					country_id		:{ required:'Todos los espacios son requeridos' },
					state_id		:{ required:'Todos los espacios son requeridos' },
					city_id			:{ required:'Todos los espacios son requeridos' },	
					
					'relationship[]':{ required:'Indica que tipo de relaci&oacute;n buscas', minlength:'Indica que tipo de relaci&oacute;n buscas' }, 
					
					birthdate_year	:{ required:'Indica tu fecha de nacimiento', digits:'El formato de fecha es incorrecto' }, 
					birthdate_month	:{ required:'Indica tu fecha de nacimiento', digits:'El formato de fecha es incorrecto' }, 
					birthdate_day	:{ required:'Indica tu fecha de nacimiento', digits:'El formato de fecha es incorrecto' },
					captcha_number	:{ required:'Escribe los n&uacute;meros de la imagen', digits:'Escribe solo n&uacute;meros' },
					
					email			:{ required:'Escribe tu direcci&oacute;n de correo electronico', email:'Escribe una direcci&oacute;n valida' },
					password		:{ required:'Escribe una contrase&ntilde;a', regex:'Escribe entre 4 y 12 caracteres' },
					confirm_email	:{ required:'Confirma tu direcci&oacute;n de correo electronico', equalTo:'Las direcciones no coinciden' },
					confirm_password:{ required:'Escribe nuevamente tu contrase&ntilde;a', equalTo:'Las contrase&ntilde;as no coinciden' },
					
					username		:{ required:'Elige un nombre de fantas&iacute;a', minlength:'Escribe al menos 3 caracteres', maxlength:'Escribe menos de 12 caracteres', regex:'Tu nombre de fantasia es invalido' }
			     }
	});
	/* ----------------------------------------------------------------------------------------------------*/
	/* ----------------------------------------------------------------------------------------------------*/
	
	function confirmProfileJoin( F )
	{
		$jq('#cf_yosoy').html($jq("#sex_1").is(':checked')?$jq("label[for='sex_1']").text():$jq("label[for='sex_2']").text());
		$jq('#cf_yobusco').html($jq("#match_sex_2").is(':checked')?$jq("label[for='match_sex_2']").text():$jq("label[for='match_sex_1']").text());
		
		var relationship = '<ul>';
		$jq("input[name='relationship[]']").each
		( 
			function()
			{
				if(this.checked) 
				{    
				   relationship += '<li>'+$jq("label[for='"+this.id+"']").text()+'</li>';
				}
			}
		);
		relationship += '</ul>';
		
		$jq('#cf_relationship').html(relationship);
		
		$jq('#cf_birthdate_year').html($jq("#birthdate_year option:selected").text());
		$jq('#cf_birthdate_month').html($jq("#birthdate_month option:selected").text());
		$jq('#cf_birthdate_day').html($jq("#birthdate_day option:selected").text());
		
		$jq('#cf_email').html($jq('#email').val());
		
		$jq('#cf_username').html($jq('#username').val());
		$jq('#cf_nacionalidad').html($jq('#nacionalidad option:selected').text());
		
		$jq('#cf_pais').html($jq('#country_select_box option:selected').text());
		$jq('#cf_estado').html($jq('#state_select_box option:selected').text());
		$jq('#cf_cuidad').html($jq('#city_select_box option:selected').text());
		
		$jq('#confirm_profile_join').jqmShow();
	}	
});
