//Actualiza el combo #ciudades al elegir una provincia en el combo #provincia
// Se inicializa con la idprovincia, si es 0 se pone "cualquier ciudad"
// Si idciudad es diferente de cero, se tiene que poner como seleccionada
// Si cualquiera está a 1, se pone la opción de cualquier ciudad. Es útil en la búsqueda, pero no en el registro
function ciudades(idprovincia, idciudad, cualquiera) {
	if(idciudad)
		idciudad_selected=idciudad;
	else
		idciudad_selected=0;

	if(idprovincia) {
		//Iniciamos el select de ciudades para la primera provincia
		$.post("/ajax.php",{
		  funcion: "selectciudad",
		  provincia: idprovincia, //A Coruña es la primera. ID 15
		  idciudad_selected: idciudad_selected
		},function(html){
			$("#ciudad").empty();
			$("#ciudad").append(html);
			$('#ciudad').removeAttr("disabled");
		});
	}

	//Cada vez que elijamos una provincia, se actualiza el select de ciudades.
	$('#provincia').change(function() {
		$('#ciudad').attr("disabled", "disabled")
		$("#ciudad").empty();
		provincia_txt=document.getElementById("provincia")[$('#provincia')[0].selectedIndex].text;
		$("#ciudad").append('<option value="0">Cargando provincias de ' + provincia_txt + '...</option>');
		provincia=$('#provincia').val();
			
		$.post("/ajax.php",{
		  funcion: "selectciudad",
		  provincia: provincia,
		  idciudad_selected: idciudad_selected
		},function(html){
			$("#ciudad").empty();
			$("#ciudad").append(html);
			if(cualquiera)
				$("#ciudad").append('<option selected="selected" value="0">cualquier provincia</option>');
			$('#ciudad').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 '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;
	}
};
