function provincias(idpais, idprovincia, cualquiera) {
        if(idprovincia)
                idprovincia_selected=idprovincia;
        else
                idprovincia_selected=0;

        if(idpais) {
                //Iniciamos el select de ciudades para la primera provincia
                $.post("ajax.php",{
                  funcion: "selectprovincia",
                  pais: idpais, 
                  idprovincia_selected: idprovincia_selected
                },function(html){
                        $("#provincia").empty();
                        $("#provincia").append(html);
                        $('#provincia').removeAttr("disabled");
                });
        }

        //Cada vez que elijamos una provincia, se actualiza el select de ciudades.
        $('#pais').change(function() {
                $('#provincia').attr("disabled", "disabled")
                $("#provincia").empty();
                pais_txt=document.getElementById("pais")[$('#pais')[0].selectedIndex].text;
                $("#provincia").append('<option value="0">Cargando provincias de ' + pais_txt + '...</option>');
                pais=$('#pais').val();
                        
                $.post("ajax.php",{
                  funcion: "selectprovincia",
                  pais: pais,
                  idprovincia_selected: idprovincia_selected
                },function(html){
                        $("#provincia").empty();
                        $("#provincia").append(html);
                        if(cualquiera)
                                $("#provincia").append('<option selected="selected" value="0">cualquier provincia</option>');
                        $('#provincia').removeAttr("disabled");
                });
        });
};

function PutFormError(id_campo, id_campo_error, mensaje) {
	$(id_campo).addClass("inputerror");
	$(id_campo_error).html(mensaje);
	$(id_campo).get(0).focus();
	//$(id_campo).get(0) equivale a document.getElementsById(id_campo)[0] El focus se tiene que poner de esa manera
};

function ClearFormError(id_campo, id_campo_error) {
	$(id_campo).removeClass("inputerror");
	$(id_campo_error).empty();
};

//Comprobaciones de campos
function check(tipo_campo, id_campo, id_campo_error) {
	switch(tipo_campo) {
		case 'email':
			var expr_noemail = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)|(www\.)|(WWW\.)/;
			var expr_email = /^[a-zA-Z0-9._\-'\+]+@[a-zA-Z0-9._\-]+\.[a-zA-Z]{2,4}$/;
			email=$(id_campo).val();
			if (expr_noemail.test (email) || !expr_email.test (email)) {
				PutFormError(id_campo, id_campo_error, "Introduce un email válido.");
				return false;
			}
			else {
				ClearFormError(id_campo, id_campo_error);
				return true;
			}
			break;

		case 'nombre':
			nombre=$(id_campo).val();
			if (!nombre) {
				PutFormError(id_campo, id_campo_error, "Introduce un nombre.");
				return false;
			}
			else {
				ClearFormError(id_campo, id_campo_error);
				return true;
			}
			break;

		case 'ciudad':
			ciudad=$(id_campo).val();
			if (!ciudad) {
				PutFormError(id_campo, id_campo_error, "Introduce una ciudad.");
				return false;
			}
			else {
				ClearFormError(id_campo, id_campo_error);
				return true;
			}
			break;

		case 'pass':
			pass=$(id_campo).val();
			if (!pass) {
				PutFormError(id_campo, id_campo_error, "Introduce una contraseña.");
				return false;
			}
			else {
				ClearFormError(id_campo, id_campo_error);
				return true;
			}
			break;

		case 'pass2':
			pass=$('#pass').val();
			pass2=$(id_campo).val();
			if (!pass2) {
				PutFormError(id_campo, id_campo_error, "Repite la contraseña.");
				return false;
			}
			else if (pass != pass2) {
				PutFormError(id_campo, id_campo_error, "Las contraseñas deben ser iguales.");
				return false;
			}
			else {
				ClearFormError(id_campo, id_campo_error);
				return true;
			}
			break;

		case 'condiciones':
			acepta_condiciones=$(id_campo).get(0).checked;
			if (!acepta_condiciones) {
				PutFormError(id_campo, id_campo_error, "Tienes que aceptar las condiciones para poder registrarte.");
				return false;
			}
			else {
				ClearFormError(id_campo, id_campo_error);
				return true;
			}
			break;
	}
};

