jQuery(document).ready(initSignup);

function initSignup() {
	jQuery("#signupSubmit").click(signupSubmit);
	initSignupFormValidation();
}

function signupSubmit() {
	if (jQuery("#formSignup").valid()) {
		submitSignupForm();
	}
}

//configura los parametros para la validacion del form de registro
function initSignupFormValidation() {
	jQuery("#formSignup").validate({
		rules: {
			login: {
				required: true,
				email: true,
				maxlength: 40,
				remote: "signup.ajax?method=validLogin"
			},
			password: {
				required: true,
				maxlength: 60
			},
			confirmPassword: {
				required: true,
				maxlength: 60,
				equalTo: "#password"
			},
			nickname: {
				required: true,
				maxlength: 15,
				remote: "signup.ajax?method=validNickname"
			},
			acceptLegal: {
				required: true
			}
		},
		messages: {
			login: {
				required: messages['errorRequired'],
				email: messages['errorEmail'],
				maxlength: messages['errorTooLong'],
				remote: messages['errorLogin']
			},
			password: {
				required: messages['errorRequired'],
				maxlength: messages['errorTooLong']
			},
			confirmPassword: {
				required: messages['errorRequired'],
				maxlength: messages['errorTooLong'],
				equalTo: messages['errorPassword']
			},
			nickname: {
				required: messages['errorRequired'],
				maxlength: messages['errorTooLong'],
				remote: messages['errorNickname']
			},
			acceptLegal: {
				required: ' '
			}
		},
		// the errorPlacement has to take the table layout into account
		errorPlacement: function(error, element) {
			var errorMessage = error.html();
			if ( element.is(":radio") )
				error.appendTo( element.parent().next().next() );
			else if ( element.is(":checkbox") )
				error.appendTo ( element.next() );
			else {
				error.appendTo( element.parent().next() );
				//error.appendTo( element.parent().parent().next().children() );
				/*error.insertAfter(element);
				error.html("&nbsp;");
				element.after(errorMessage);*/
			}
		},
		// specifying a submitHandler prevents the default submit, good for the demo
		submitHandler: function() {
			alert("submitted!");
		},
		// set this class to error-labels to indicate valid fields
		success: function(label) {
			// set &nbsp; as text for IE
			label.html("&nbsp;").addClass("checked");
		}
	});

}




//envia los datos del formulario de registro al servidor
function submitSignupForm() {
	jQuery("#formSignup").ajaxSubmit({
        type: "POST",
        dataType:  'json',
        success:   submitSignupFormCallback
    });
}

//recibe la respuesta del submit del formulario al servidor
function submitSignupFormCallback(data) {
    // 'data' is the json object returned from the server
    var result = data.result;
    if (result == 'ok') {
    	jQuery("#j_username").val(jQuery("#login").val());
		jQuery("#j_password").val(jQuery("#password").val());
		jQuery("#loginForm").submit();
    }else{
    	alert(data.result);
    }
}

