$().ready(function() {
    jQuery.validator.addMethod("notEqualTo", function(value, element, param) {
        return this.optional(element) || value != $(param).val();
    }, "This has to be different...");

    jQuery.validator.addMethod("charFirst", function(value, element) {
        return this.optional(element) || null != value.substr(0, 1).match(/[A-Za-z]/);
    }, "First character must be a letter, cannot be numeric.");

    jQuery.validator.addMethod("noSpace", function(value, element) {
        return value.indexOf(" ") < 0 && value != "";
    }, "No space please and don't leave it empty");

    $("#formCreditCard").submit(
        function() {
            var username = $("input[id='signup[username:1:6:16:::username_check]']").val();
            var password = $("input[id='signup[password:1:6:16:::password_check]']").val();
            var email    = $("input[id='signup[email:1:1:128:::email_check]']").val();

            if (
                username.length == 0 &&
                password.length == 0 &&
                email.length == 0
            ) {
                alert('<-- Debes introducir tu login/password en la parte izquierda de la web.');
            }
        }
    );

	$("#formCreditCard").validate({
        onkeyup: false,
		rules: {
			'signup[username:1:6:16:::username_check]': {
				required: true,
				minlength: 6,
				maxlength: 16,
				charFirst: true,
				noSpace: true,
				remote: {
				    url: "check-username.php"
				}
			},
			'signup[password:1:6:16:::password_check]': {
				required: true,
				minlength: 6,
				maxlength: 16,
				noSpace: true,
				notEqualTo: "input[id='signup[username:1:6:16:::username_check]']"
			},
			'signup[email:1:1:128:::email_check]': {
				required: true,
				email: true
			}
		},
        errorPlacement: function(error, element) {
    		error.appendTo( element.parent().next() );
        },
		messages: {
			'signup[username:1:6:16:::username_check]': {
				required: "Ingresa un usuario",
				minlength: "Debe contener al menos 6 caracteres.",
				maxlength: "Debe contener menos de 16 caracteres.",
				remote: "El usuario ya existe, escribe otro.",
				charFirst: "Tu usuario debe comenzar con una letra.",
				noSpace: "Tu usuario no puede contener espacios"
			},
			'signup[password:1:6:16:::password_check]': {
				required: "Ingresa un password.",
				minlength: "Debe contener al menos 6 caracteres.",
				maxlength: "Debe contener menos de 16 caracteres.",
				notEqualTo: "Tu contraseña debe ser diferente al usuario.",
				noSpace: "Tu contraseña no puede contener espacios"
			},
			'signup[email:1:1:128:::email_check]': {
                required: "Ingresa un email válido.",
                email: "Ingresa un email válido."
            }
		}
	});

    var euroCountries = [ 'AL','AD','AM','AT','AZ','BY','BE','BA','BG','HR','CY','CZ','DK','EE','ES','FI','FR','GE','DE','GR',
    'HU','IS','IE','IT','LV','LI','LT','LU','MK','MV','MT','MC','ME','NL','NO','PL','PT','RO','RU','SM','CS','RS','SK','SI',
    'SE','CH','TR','UA','GB','VA' ];

    var userCountry = $("input[name='signup[country]']").val();
    var defCascade  = $("input[name='cascade']").val();


    // Cambio de cascada segun metodo de pago
    $("div .pmEvent").click(function() {
        $(this).children(".input").children("input").attr("checked", "checked");
        $("input[name='cascade']").val($(this).children(".input").children("input").attr("value"));
    });

    $("input[name='nextra[PCASH][description]']").val($("input[id='signup[optionid]']:checked").attr("title"));

    // Selecciona checkbox de la opcion de pago marcada
    $("div .box-oferta").click(function() {
        var joinOptionDescription = $(this).children("div .box-precio").children("input[id='signup[optionid]']").attr("title");

        $(this).children(".box-precio").children("input").attr("checked", "checked");

        $("input[name='nextra[PCASH][description]']").val(joinOptionDescription);

        if ( jQuery.inArray(userCountry, euroCountries) >= 0 ){
            if ( joinOptionDescription == 'Abono de 1 dia' ) {
                $("input[name='cascade']").val(4);
            } else {
                $("input[name='cascade']").val(defCascade);
            }
        }
    });
});
