var navegador;
var mouseX;
var mouseY;

var codeProvincia = 0;
var nameProvincia = "";

var	rojoRD = "#ff0000";	// "#ff0000";
var	negroRD = "#ffffff";
var altoDocumento = 0;
var primeraNoticia = 0;

var pieDeFoto = new Array;

var anchoFoto = 0;
var altoFoto = 0;

var vecesParpadeo;

var verFotoGrande = false;

var itemPersonal = new Array;
	itemPersonal[0] = "ficha";
	itemPersonal[1] = "bonus";
	itemPersonal[2] = "rating";
	itemPersonal[3] = "mpr";
	itemPersonal[4] = "ppd";

var tipoArticulo = new Array;
	tipoArticulo[0] = "CAMP/CAMPEONATOS";
	tipoArticulo[1] = "KITS/KITS";
	tipoArticulo[2] = "BARR/BARRILES";
	tipoArticulo[3] = "PLUM/PLUMAS";
	tipoArticulo[4] = "DIAN/DIANAS";
	tipoArticulo[5] = "ESTU/ESTUCHES";
	tipoArticulo[6] = "PROT/PROTECTORES";
	tipoArticulo[7] = "PUNT/PUNTAS";
	tipoArticulo[8] = "POST/POSTERS";
	tipoArticulo[9] = "CAMI/CAMISETAS";

var identificadorPais = new Array;

var tiempoComentario = 0;


function identificaNavegador() {
	if(document.layers) {
		navegador = 2;				// NN4.
	}
	else if(document.all) {
		navegador = 0;				// IE.
	}
	else if(!document.all && document.getElementById) {
		navegador = 1;				// NN6.
	}
}

function buscaPosicionDelCursor(ev) {
	if(!document.all) {
		event = ev;
		mouseX = event.pageX;
		mouseY = event.pageY;
	}
	else {
      	mouseX = event.clientX + document.body.scrollLeft;
		mouseY = event.clientY + document.body.scrollTop;
  	}
}

function iniciaEventoTeclado() {
	document.onkeyup = enterPulsado;
	if(navegador) {
		document.captureEvents(Event.KEYUP);
	}
}


// Comprueba si el usuario a pulsado la tecla "Enter" y salta a la página de información sobre el mismo, comprobando
// antes si los datos introducidos son válidos.

function enterPulsado(tecla) {
	if((navegador && tecla.which == 13) || (!navegador && event.keyCode == 13)) {	// Se ha pulsado Enter.
		alias = eliminaEspaciosYValida(document.forms["formulario"].elements["alias"].value);
		dni = eliminaEspaciosYValida(document.forms["formulario"].elements["dni"].value);
		document.forms["formulario"].elements["alias"].value = alias;
		document.forms["formulario"].elements["dni"].value = dni;
		document.forms["formulario"].elements["avisoDatosIncorrectos"].value = 1;
		if(alias.length && dni.length) {
			document.forms["formulario"].submit();
		}
	}
}

function eliminaEspaciosYValida(cadena) {
	nc = "";

	if(!cadena.length) {
		return nc;
	}
	for(espaciosInicio = 0; espaciosInicio < cadena.length; espaciosInicio++) {		// Busca espacios al principio.
		if(cadena.charAt(espaciosInicio) != ' ') {
			break;
		}
	}
	if(espaciosInicio == cadena.length) {
		return nc;
	}
	for(espaciosFinal = 0; espaciosFinal < cadena.length; espaciosFinal++) {		// Busca espacios al final.
		if(cadena.charAt((cadena.length - 1) - espaciosFinal) != ' ') {
			break;
		}
	}
	nc = cadena.substr(espaciosInicio, cadena.length - (espaciosInicio + espaciosFinal));
	return nc;
}


// Envía el formulario de la ficha del jugador.

function enviaFicha() {
	alert("La información modificada no será actualizada en la presente página hasta su\ncorrespondiente revisión y verificación por parte de personal autorizado Radikal Darts.");
	document.forms["formulario"].submit();
}


// Hace parpadear durante unos instantes el rótulo "IDENTIFICADOR INCORRECTO".

function parpadeoRotuloIncorrecto() {
	objeto = document.getElementById("noValido");
	if(!objeto) {
		return;
	}
	objeto.style.visibility = (vecesParpadeo & 1) ? "hidden" : "visible";
	if(vecesParpadeo++ < 8) {
		setTimeout("parpadeoRotuloIncorrecto()", 500);
	}
	else {
		objeto.style.visibility = "hidden";
		objeto = document.getElementById("identificate");
		if(objeto) {
			objeto.style.visibility = "visible";
		}
	}
}


// Gestiona pulsación de una opción del menú de clasificación basándose en su Identificador.

function gestionaOpcionPulsadaId(id) {
	gestionaOpcionPulsada(document.getElementById(id));
}


// Gestiona la pulsación de una opción del menú de clasificación.

/*
	estadoDespliegue (o: Abierto  c: Cerrado   s:Seleccionado) :
	-0:	Clasificaciones
	-1:	Personal
	-2:	Campeonatos
	-3:	Ligas
	-4:	Ficha
	-5:	Bonus
	-6:	Rating
	-7:	MPR
	-8:	PPD
	-9:	Ligas virtuales
	-10: Torneos
	-11: SuperCampeonatos
*/


function gestionaOpcionPulsada(opcion) {
	haySubmit = false;
	temp = document.forms["formulario"].elements["stDespliegue"].value;
	desplegados = document.forms["formulario"].elements["comDesp"].value.split(',');
	campActivo = document.forms["formulario"].elements["campeonatoActivo"].value;
	catActiva = document.forms["formulario"].elements["categoriaActiva"].value;
	estadoDespliegue = new Array;
	pV = 0;

	for(cnt = 0; cnt < 12; cnt++) {
		estadoDespliegue[cnt] = temp.charAt(cnt);
	}
	
	if(opcion) {							// Se ha pulsado sobre alguna de las opciones.
		if(opcion.id == "clasif") {			// Opción "Clasificaciones".
			switch(estadoDespliegue[0]) {
			case 's':
				estadoDespliegue[0] = 'c';
				document.forms["formulario"].elements["categoriaActiva"].value = catActiva = "c000";
				document.forms["formulario"].elements["campeonatoActivo"].value = campActivo = "";
				document.forms["formulario"].elements["comDesp"].value = desplegados = "";
				estadoDespliegue[2] = estadoDespliegue[3] = estadoDespliegue[9] =  estadoDespliegue[10] = estadoDespliegue[11] = 'c';
				break;
			case 'o':
				estadoDespliegue[0] = 's';
				document.forms["formulario"].elements["categoriaActiva"].value = catActiva = "c000";
				document.forms["formulario"].elements["campeonatoActivo"].value = campActivo = "";
				for(cnt = 4; cnt < 9; cnt++) {
					if(estadoDespliegue[cnt] == 's') {
						estadoDespliegue[cnt] = 'o';
					}
				}
				if(estadoDespliegue[1] == 's') {
					estadoDespliegue[1] = 'o';
				}
				break;
			default:
				estadoDespliegue[0] = 's';
				document.forms["formulario"].elements["categoriaActiva"].value = catActiva = "c000";
				document.forms["formulario"].elements["campeonatoActivo"].value = campActivo = "";
				document.forms["formulario"].elements["comDesp"].value = desplegados = "";
				for(cnt = 1; cnt < 9; cnt++) {
					if(estadoDespliegue[cnt] == 's') {
						estadoDespliegue[cnt] = 'o';
					}
				}
				estadoDespliegue[2] = estadoDespliegue[3] = estadoDespliegue[9] =  estadoDespliegue[10] = estadoDespliegue[11] = 'c';
				break;
			}
		}
		else if(opcion.id == "person") {	// Opción "Personal".
			switch(estadoDespliegue[1]) {
			case 's':
				estadoDespliegue[1] = 'c';
				for(cnt = 4; cnt < 9; cnt++) {
					estadoDespliegue[cnt] = 'c';
				}
				break;
			default:
				document.forms["formulario"].elements["categoriaActiva"].value = catActiva = "c000";
				document.forms["formulario"].elements["campeonatoActivo"].value = campActivo = "";
				if(estadoDespliegue[0] == 's') {
					estadoDespliegue[0] = 'o';
				}
				if(estadoDespliegue[2] == 's') {
					estadoDespliegue[2] = 'o';
				}
				if(estadoDespliegue[3] == 's') {
					estadoDespliegue[3] = 'o';
				}
				if(estadoDespliegue[9] == 's') {
					estadoDespliegue[9] = 'o';
				}
				if(estadoDespliegue[10] == 's') {
					estadoDespliegue[10] = 'o';
				}
				if(estadoDespliegue[11] == 's') {
					estadoDespliegue[11] = 'o';
				}
				for(cnt = 4; cnt < 7; cnt++) {
					estadoDespliegue[cnt] = 'o';
				}
				estadoDespliegue[1] = 's';
				break;
			}
		}
		else if(opcion.id == "ficha" || opcion.id == "bonus" || opcion.id == "mpr" || opcion.id == "ppd") {
			document.forms["formulario"].elements["categoriaActiva"].value = catActiva = "c000";
			document.forms["formulario"].elements["campeonatoActivo"].value = campActivo = "";
			for(cnt = 0; cnt < 12; cnt++) {
				if(estadoDespliegue[cnt] == 's') {
					estadoDespliegue[cnt] = 'o';
				}
			}
			estadoDespliegue[1] = 's';
			if(opcion.id == "bonus") {
				estadoDespliegue[5] = 's';
				document.forms["formulario"].action = "bonus.php";
				haySubmit = true;
			}
			else if(opcion.id == "ficha") {
				estadoDespliegue[4] = 's';
				document.forms["formulario"].action = "ficha.php";
				haySubmit = true;
			}
			else if(opcion.id == "mpr") {
				estadoDespliegue[7] = estadoDespliegue[6] = 's';
				document.forms["formulario"].action = "rating.php";
				haySubmit = true;
			}
			else {
				estadoDespliegue[8] = estadoDespliegue[6] = 's';
				document.forms["formulario"].action = "rating.php";
				haySubmit = true;
			}
		}
		else if(opcion.id == "rating") {	// Opción "Rating".
			switch(estadoDespliegue[6]) {
			case 's':
				estadoDespliegue[6] = 'o';
				estadoDespliegue[7] = estadoDespliegue[8] = 'c';
				break;
			case 'o':
				document.forms["formulario"].elements["categoriaActiva"].value = catActiva = "c000";
				document.forms["formulario"].elements["campeonatoActivo"].value = campActivo = "";
				for(cnt = 0; cnt < 12; cnt++) {
					if(estadoDespliegue[cnt] == 's') {
						estadoDespliegue[cnt] = 'o';
					}
				}
				estadoDespliegue[1] = 's';
				estadoDespliegue[6] = 's';
				estadoDespliegue[7] = estadoDespliegue[8] = 'o';
				break;
			}
		}
		else if(opcion.id == "camp") {		// Opción "Campeonatos".
			switch(estadoDespliegue[2]) {
			case 's':
				estadoDespliegue[2] = 'c';
				desactivaCampeonatos(0);
				desplegados = document.forms["formulario"].elements["comDesp"].value.split(',');
				campActivo = document.forms["formulario"].elements["campeonatoActivo"].value;
				catActiva = document.forms["formulario"].elements["categoriaActiva"].value;
				break;
			case 'o':
			default:
				desactivaCampeonatos(1);
				desactivaCampeonatos(2);
				desactivaCampeonatos(3);
				desactivaCampeonatos(4);
				desplegados = document.forms["formulario"].elements["comDesp"].value.split(',');
				campActivo = document.forms["formulario"].elements["campeonatoActivo"].value;
				catActiva = document.forms["formulario"].elements["categoriaActiva"].value;
				for(cnt = 0; cnt < 12; cnt++) {
					if(estadoDespliegue[cnt] == 's') {
						estadoDespliegue[cnt] = 'o';
					}
				}
				estadoDespliegue[2] = 's';
				estadoDespliegue[0] = 's';
				estadoDespliegue[3] = estadoDespliegue[9] = estadoDespliegue[10] = estadoDespliegue[11] = 'c';
				for(cnt = 0, temp = ""; cnt < 12; cnt++) {
					temp += estadoDespliegue[cnt];
				}

//				alert("hola");
//				if(nombreVentana != null) {
//					alert(nombreVentana);
//				}

//				document.forms["formulario"].action = "dardero.php"; //"RDselectcompesp.php";

				document.forms["formulario"].elements["stDespliegue"].value = temp;
				document.forms["formulario"].submit();
				return;
				break;
			}
		}
		else if(opcion.id == "liga") {			// Opción "ligas".
			switch(estadoDespliegue[3]) {
			case 's':
				estadoDespliegue[3] = 'c';
				desactivaCampeonatos(1);
				desplegados = document.forms["formulario"].elements["comDesp"].value.split(',');
				campActivo = document.forms["formulario"].elements["campeonatoActivo"].value;
				catActiva = document.forms["formulario"].elements["categoriaActiva"].value;
				break;
			case 'o':
			default:
				desactivaCampeonatos(0);
				desactivaCampeonatos(2);
				desactivaCampeonatos(3);
				desactivaCampeonatos(4);
				desplegados = document.forms["formulario"].elements["comDesp"].value.split(',');
				campActivo = document.forms["formulario"].elements["campeonatoActivo"].value;
				catActiva = document.forms["formulario"].elements["categoriaActiva"].value;
				for(cnt = 0; cnt < 12; cnt++) {
					if(estadoDespliegue[cnt] == 's') {
						estadoDespliegue[cnt] = 'o';
					}
				}
				estadoDespliegue[3] = 's';
				estadoDespliegue[0] = 's';
				estadoDespliegue[2] = estadoDespliegue[9] =  estadoDespliegue[10] = estadoDespliegue[11] = 'c';
				for(cnt = 0, temp = ""; cnt < 12; cnt++) {
					temp += estadoDespliegue[cnt];
				}
//				document.forms["formulario"].action = "dardero.php"; //"selectcomp.php";
				document.forms["formulario"].elements["stDespliegue"].value = temp;
				document.forms["formulario"].submit();
				return;
				break;
			}
		}
		else if(opcion.id == "virt") {		// Opción "ligas virtuales".
			switch(estadoDespliegue[9]) {
			case 's':
				estadoDespliegue[9] = 'c';
				desactivaCampeonatos(2);
				desplegados = document.forms["formulario"].elements["comDesp"].value.split(',');
				campActivo = document.forms["formulario"].elements["campeonatoActivo"].value;
				catActiva = document.forms["formulario"].elements["categoriaActiva"].value;
				break;
			case 'o':
			default:
				desactivaCampeonatos(0);
				desactivaCampeonatos(1);
				desactivaCampeonatos(3);
				desactivaCampeonatos(4);
				desplegados = document.forms["formulario"].elements["comDesp"].value.split(',');
				campActivo = document.forms["formulario"].elements["campeonatoActivo"].value;
				catActiva = document.forms["formulario"].elements["categoriaActiva"].value;
				for(cnt = 0; cnt < 12; cnt++) {
					if(estadoDespliegue[cnt] == 's') {
						estadoDespliegue[cnt] = 'o';
					}
				}
				estadoDespliegue[9] = 's';
				estadoDespliegue[0] = 's';
				estadoDespliegue[2] = estadoDespliegue[3] =  estadoDespliegue[10] = estadoDespliegue[11] = 'c';
				for(cnt = 0, temp = ""; cnt < 12; cnt++) {
					temp += estadoDespliegue[cnt];
				}
//				document.forms["formulario"].action = "dardero.php"; //"selectcomp.php";

				document.forms["formulario"].elements["stDespliegue"].value = temp;
				document.forms["formulario"].submit();
				return;
				break;
			}
		}
		else if(opcion.id == "tdko") {		// Opción "torneos".
			switch(estadoDespliegue[10]) {
			case 's':
				estadoDespliegue[10] = 'c';
				desactivaCampeonatos(3);
				desplegados = document.forms["formulario"].elements["comDesp"].value.split(',');
				campActivo = document.forms["formulario"].elements["campeonatoActivo"].value;
				catActiva = document.forms["formulario"].elements["categoriaActiva"].value;
				break;
			case 'o':
			default:
				desactivaCampeonatos(0);
				desactivaCampeonatos(1);
				desactivaCampeonatos(2);
				desactivaCampeonatos(4);
				desplegados = document.forms["formulario"].elements["comDesp"].value.split(',');
				campActivo = document.forms["formulario"].elements["campeonatoActivo"].value;
				catActiva = document.forms["formulario"].elements["categoriaActiva"].value;
				for(cnt = 0; cnt < 12; cnt++) {
					if(estadoDespliegue[cnt] == 's') {
						estadoDespliegue[cnt] = 'o';
					}
				}
				estadoDespliegue[10] = 's';
				estadoDespliegue[0] = 's';
				estadoDespliegue[2] = estadoDespliegue[3] =  estadoDespliegue[9] = estadoDespliegue[11] = 'c';
				for(cnt = 0, temp = ""; cnt < 12; cnt++) {
					temp += estadoDespliegue[cnt];
				}
//				document.forms["formulario"].action = "dardero.php"; //"selectcomp.php";

				document.forms["formulario"].elements["stDespliegue"].value = temp;
				document.forms["formulario"].submit();
				return;
				break;
			}
		}
		else if(opcion.id == "scmp") {			// Opción "supercampeonatos".
			switch(estadoDespliegue[11]) {
			case 's':
				estadoDespliegue[11] = 'c';
				desactivaCampeonatos(4);
				desplegados = document.forms["formulario"].elements["comDesp"].value.split(',');
				campActivo = document.forms["formulario"].elements["campeonatoActivo"].value;
				catActiva = document.forms["formulario"].elements["categoriaActiva"].value;
				break;
			case 'o':
			default:
				desactivaCampeonatos(0);
				desactivaCampeonatos(1);
				desactivaCampeonatos(2);
				desactivaCampeonatos(3);
				desplegados = document.forms["formulario"].elements["comDesp"].value.split(',');
				campActivo = document.forms["formulario"].elements["campeonatoActivo"].value;
				catActiva = document.forms["formulario"].elements["categoriaActiva"].value;
				for(cnt = 0; cnt < 12; cnt++) {
					if(estadoDespliegue[cnt] == 's') {
						estadoDespliegue[cnt] = 'o';
					}
				}
				estadoDespliegue[11] = 's';
				estadoDespliegue[0] = 's';
				estadoDespliegue[2] = estadoDespliegue[3] =  estadoDespliegue[9] = estadoDespliegue[10] = 'c';
				for(cnt = 0, temp = ""; cnt < 12; cnt++) {
					temp += estadoDespliegue[cnt];
				}
//				document.forms["formulario"].action = "dardero.php"; //"selectcomp.php";

				document.forms["formulario"].elements["stDespliegue"].value = temp;
				document.forms["formulario"].submit();
				return;
				break;
			}
		}
		else {
			for(c = 0; c < desplegados.length; c++) {
				if(desplegados[c] == opcion.name) {			// Éste ya está desplegado.
					if(opcion.name.charAt(0) != 'f' && opcion.name.charAt(0) != 'c') {
						if(opcion.name == campActivo) {
							document.forms["formulario"].elements["categoriaActiva"].value = catActiva = "c000";
							document.forms["formulario"].elements["campeonatoActivo"].value = campActivo = "";
							desplegados[c] = "";	// Vuelve a "plegarlo".
							if(opcion.id.charAt(0) == 's' && opcion.id.length > 8) {
								cosa = document.getElementById(opcion.id.substring(0, 8));
								if(cosa) {
									document.forms["formulario"].elements["campeonatoActivo"].value = campActivo = cosa.name;
								}
							}
	 					}
						else {
							if(opcion.id.charAt(0) == 's' && opcion.id.length == 8) {
								if(competicionesEnLocal) {
									document.forms["formulario"].action = "clasifglobal.php";
								}
								else {
									document.forms["formulario"].action = "clasif.php";
								}
								haySubmit = true;
							}
							document.forms["formulario"].elements["categoriaActiva"].value = catActiva = "c000";
							document.forms["formulario"].elements["campeonatoActivo"].value = campActivo = opcion.name;
							estadoDespliegue[0] = 's';
							if(estadoDespliegue[1] == 's') {
								estadoDespliegue[1] = 'o';
							}
							for(cnt = 4; cnt < 9; cnt++) {
								if(estadoDespliegue[cnt] == 's') {
									estadoDespliegue[cnt] = 'o';
								}
							}
							if(opcion.id.charAt(0) == 'l') {
								estadoDespliegue[3] = 's';
								if(estadoDespliegue[2] == 's') {
									estadoDespliegue[2] = 'o';
								}
								if(estadoDespliegue[9] == 's') {
									estadoDespliegue[9] = 'o';
								}
								if(estadoDespliegue[10] == 's') {
									estadoDespliegue[10] = 'o';
								}
								if(estadoDespliegue[11] == 's') {
									estadoDespliegue[11] = 'o';
								}
							}
							else if(opcion.id.charAt(0) == 'v') {
								estadoDespliegue[9] = 's';
								if(estadoDespliegue[2] == 's') {
									estadoDespliegue[2] = 'o';
								}
								if(estadoDespliegue[3] == 's') {
									estadoDespliegue[3] = 'o';
								}
								if(estadoDespliegue[10] == 's') {
									estadoDespliegue[10] = 'o';
								}
								if(estadoDespliegue[11] == 's') {
									estadoDespliegue[11] = 'o';
								}
							}							
							else if(opcion.id.charAt(0) == 't') {
								estadoDespliegue[10] = 's';
								if(estadoDespliegue[2] == 's') {
									estadoDespliegue[2] = 'o';
								}
								if(estadoDespliegue[3] == 's') {
									estadoDespliegue[3] = 'o';
								}
								if(estadoDespliegue[9] == 's') {
									estadoDespliegue[9] = 'o';
								}
								if(estadoDespliegue[11] == 's') {
									estadoDespliegue[11] = 'o';
								}
							}
							else if(opcion.id.charAt(0) == 's') {
								estadoDespliegue[11] = 's';
								if(estadoDespliegue[2] == 's') {
									estadoDespliegue[2] = 'o';
								}
								if(estadoDespliegue[3] == 's') {
									estadoDespliegue[3] = 'o';
								}
								if(estadoDespliegue[9] == 's') {
									estadoDespliegue[9] = 'o';
								}
								if(estadoDespliegue[10] == 's') {
									estadoDespliegue[10] = 'o';
								}
							}
							else {
								estadoDespliegue[2] = 's';
								if(estadoDespliegue[3] == 's') {
									estadoDespliegue[3] = 'o';
								}
								if(estadoDespliegue[9] == 's') {
									estadoDespliegue[9] = 'o';
								}
								if(estadoDespliegue[10] == 's') {
									estadoDespliegue[10] = 'o';
								}
								if(estadoDespliegue[11] == 's') {
									estadoDespliegue[11] = 'o';
								}
							}
						}
					}
					else {
						desplegados[c] = "";			// Vuelve a "plegarlo".
					}
					break;
				}
			}
			if(c >= desplegados.length) {			// Aún no está desplegado.
				estadoDespliegue[0] = 's';
				if(estadoDespliegue[1] == 's') {
					estadoDespliegue[1] = 'o';
				}
				for(cnt = 4; cnt < 9; cnt++) {
					if(estadoDespliegue[cnt] == 's') {
						estadoDespliegue[cnt] = 'o';
					}
				}
				if(opcion.id.charAt(0) == 'l') {
					estadoDespliegue[3] = 's';
					if(estadoDespliegue[2] == 's') {
						estadoDespliegue[2] = 'o';
					}
					if(estadoDespliegue[9] == 's') {
						estadoDespliegue[9] = 'o';
					}
					if(estadoDespliegue[10] == 's') {
						estadoDespliegue[10] = 'o';
					}
					if(estadoDespliegue[11] == 's') {
						estadoDespliegue[11] = 'o';
					}
				}
				else if(opcion.id.charAt(0) == 'v') {
					estadoDespliegue[9] = 's';
					if(estadoDespliegue[2] == 's') {
						estadoDespliegue[2] = 'o';
					}
					if(estadoDespliegue[3] == 's') {
						estadoDespliegue[3] = 'o';
					}
					if(estadoDespliegue[10] == 's') {
						estadoDespliegue[10] = 'o';
					}
					if(estadoDespliegue[11] == 's') {
						estadoDespliegue[11] = 'o';
					}
				}				
				else if(opcion.id.charAt(0) == 't') {
					estadoDespliegue[10] = 's';
					if(estadoDespliegue[2] == 's') {
						estadoDespliegue[2] = 'o';
					}
					if(estadoDespliegue[3] == 's') {
						estadoDespliegue[3] = 'o';
					}
					if(estadoDespliegue[9] == 's') {
						estadoDespliegue[9] = 'o';
					}
					if(estadoDespliegue[11] == 's') {
						estadoDespliegue[11] = 'o';
					}
				}
				else if(opcion.id.charAt(0) == 's') {
					estadoDespliegue[11] = 's';
					if(estadoDespliegue[2] == 's') {
						estadoDespliegue[2] = 'o';
					}
					if(estadoDespliegue[3] == 's') {
						estadoDespliegue[3] = 'o';
					}
					if(estadoDespliegue[9] == 's') {
						estadoDespliegue[9] = 'o';
					}
					if(estadoDespliegue[10] == 's') {
						estadoDespliegue[10] = 'o';
					}
				}
				else {
					estadoDespliegue[2] = 's';
					if(estadoDespliegue[3] == 's') {
						estadoDespliegue[3] = 'o';
					}
					if(estadoDespliegue[9] == 's') {
						estadoDespliegue[9] = 'o';
					}
					if(estadoDespliegue[10] == 's') {
						estadoDespliegue[10] = 'o';
					}
					if(estadoDespliegue[11] == 's') {
						estadoDespliegue[11] = 'o';
					}
				}
				if(opcion.name.charAt(0) != 'f' && opcion.name.charAt(0) != 'c') {
					desplegados[desplegados.length] = opcion.name;
				}
				if(opcion.name.charAt(0) == 'c') {	// Se trata de una categoría.
					catActiva = opcion.name;
					campActivo = catActiva.substring(4, catActiva.length);
				}
				else {								// Se trata de una competición.
					catActiva = "c000";
					campActivo = opcion.name;
				}
				document.forms["formulario"].elements["categoriaActiva"].value = catActiva;
				document.forms["formulario"].elements["campeonatoActivo"].value = campActivo;
				if(opcion.name.charAt(0) == 'f' || opcion.name.charAt(0) == 'c') {	// Se trata de una competición final.
					if(competicionesEnLocal) {
						if(opcion.id.charAt(0) == 't') {			// Se trata de un torneo.
							document.forms["formulario"].action = "torneoglobal.php";
							abreVentanaTorneo(campActivo);
						}
						else {
							document.forms["formulario"].action = (opcion.id.charAt(0) == 'l' || opcion.id.charAt(0) == 'v') ? "ligaclasifglobal.php" : "clasifglobal.php";
						}
					}
					else {
						if(opcion.id.charAt(0) == 't') {			// Se trata de un torneo.
							document.forms["formulario"].action = "torneo.php";
							abreVentanaTorneo(campActivo);
						}
						else {
							document.forms["formulario"].action = (opcion.id.charAt(0) == 'l' || opcion.id.charAt(0) == 'v') ? "ligaclasif.php" : "clasif.php";
						}
					}
					haySubmit = true;
				}
				else {
					if(opcion.id.charAt(0) == 's') {
						estadoDespliegue[11] = 's';
						if(opcion.id.length == 8) {
							if(competicionesEnLocal) {
								document.forms["formulario"].action = "clasifglobal.php";
							}
							else {
								document.forms["formulario"].action = "clasif.php";
							}
							haySubmit = true;
						}
					}
					else {
						estadoDespliegue[2] = 's';
					}
					for(cnt = 0, temp = ""; cnt < 12; cnt++) {
						temp += estadoDespliegue[cnt];
					}
//					document.forms["formulario"].action = "dardero.php"; // "selectcomp.php";

					document.forms["formulario"].elements["stDespliegue"].value = temp;
					document.forms["formulario"].elements["comDesp"].value = campActivo;
					document.forms["formulario"].submit();
					return;
					haySubmit = true;
				}
			}
		}
	}

	for(temp2 = "", c = 0; c < desplegados.length; c++) {
		if(desplegados[c] != "") {
			temp2 += desplegados[c];
			temp2 += ',';
		}
	}

	document.forms["formulario"].elements["comDesp"].value = temp2;
	hayDni = (document.forms["formulario"].elements["dni"].value == "") ? false : true;

	
// Recoloca todas las opciones según su estado.

	desactivaTodasLasOpciones();

	posCampLig = posConcret = -1;
	
	dato = document.getElementById("clasif");	// Opción "clasificaciones".
	if(dato) {
		pV = 25;
		dato.style.visibility = (hayDni) ? "visible" : "hidden";
		dato.style.color = (estadoDespliegue[0] == 's') ? rojoRD : negroRD;
		dato.style.top = pV;
		pV += 25;
	}
	
	if(estadoDespliegue[0] != 'c') {		
		
		
///
	
		haySuper = false;
		if(document.getElementById("scmp0001")) {
			haySuper = true;
			if(dato) {
				pV += 25;
			}
			dato = document.getElementById("scmp");				// Opción "supercampeonatos".
			dato.style.visibility = "visible";
			dato.style.top = pV;
			dato.style.color = (estadoDespliegue[11] == 's') ? rojoRD : negroRD;
			if(estadoDespliegue[11] == 's') {
				posCampLig = pV;
			}
			
													// Supercampeonatos disponibles.																			
			if(estadoDespliegue[11] != 'c') {
				cnt = 1;
				while(true) {
					superActivo = false;
					valorStr = "scmp" + Math.floor(((cnt % 10000) / 1000)) + Math.floor(((cnt % 1000) / 100)) + Math.floor(((cnt % 100) / 10)) + (cnt % 10);
					dato0 = document.getElementById(valorStr);
					if(!dato0) {
						break;
					}
					cnt++;
					pV += 15;
					dato0.style.visibility = "visible";
					dato0.style.top = pV;
					dato0.style.color = (dato0.name == campActivo && estadoDespliegue[11] == 's') ? rojoRD : negroRD;
					if(dato0.name == campActivo && estadoDespliegue[11] == 's') {
						superActivo = true;
					}
					
					if(dato0.name != campActivo && estadoDespliegue[11] == 's') {		// Comprueba si está activo alguno de los subcampeonatos.
						cnt0 = 1;
						while(true) {
							valorStr0 = valorStr + Math.floor(((cnt0 % 10000) / 1000)) + Math.floor(((cnt0 % 1000) / 100)) + Math.floor(((cnt0 % 100) / 10)) + (cnt0 % 10);
							cnt0++;
							dato = document.getElementById(valorStr0);
							if(!dato) {
								break;
							}
							if(dato.name == campActivo) {
								dato0.style.color = rojoRD;
								superActivo = true;
							}
						}
					}
					
					if(superActivo) {				// Comprueba subcampeonatos de este supercampeonato.
						cnt0 = 1;
						while(true) {
							valorStr0 = valorStr + Math.floor(((cnt0 % 10000) / 1000)) + Math.floor(((cnt0 % 1000) / 100)) + Math.floor(((cnt0 % 100) / 10)) + (cnt0 % 10);
							dato = document.getElementById(valorStr0);
							if(!dato) {
								break;
							}
							cnt0++;
							pV += 15;
							dato.style.visibility = "visible";
							dato.style.top = pV;
							dato.style.color = (dato.name == campActivo && estadoDespliegue[11] == 's') ? rojoRD : negroRD;							
							for(c = 0; c < desplegados.length; c++) {	// Comprueba si este campeonato está desplegado.
								if(dato.name == desplegados[c]) {
									break;
								}
							}
		
							if(c < desplegados.length && dato.name == campActivo) {		// Está desplegado.
								for(cnt1 = 0; cnt1 < 129; cnt1++) {
									valorStr1 = valorStr0 + cnt1;
									dato = document.getElementById(valorStr1);
									if(!dato) {
										continue;
									}
									pV += 15;
									dato.style.visibility = "visible";
									dato.style.top = pV;
									dato.style.color = (dato.name == catActiva && estadoDespliegue[11] == 's') ? rojoRD : negroRD;
									if(dato.name == catActiva && estadoDespliegue[11] == 's') {
										posConcret = pV;
									}
								}
							}
						}
												
					}
					
				}
			}		
		}
	
////	

		
		
		if(document.getElementById("camp0001")) {
			if(haySuper) {
				pV += 25;
			}
			dato = document.getElementById("camp");		// Opción "campeonatos".
			dato.style.visibility = "visible";
			dato.style.top = pV;
			dato.style.color = (estadoDespliegue[2] == 's') ? rojoRD : negroRD;
			if(estadoDespliegue[2] == 's') {
				posCampLig = pV;
			}

														// Campeonatos disponibles.
			if(estadoDespliegue[2] != "c") {
				cnt = 1;
				while(true) {
					valorStr = "camp" + Math.floor(((cnt % 10000) / 1000)) + Math.floor(((cnt % 1000) / 100)) + Math.floor(((cnt % 100) / 10)) + (cnt % 10);
					dato = document.getElementById(valorStr);
					if(!dato) {
						break;
					}
					cnt++;
					pV += 15;
					dato.style.visibility = "visible";
					dato.style.top = pV;
					dato.style.color = (dato.name == campActivo && estadoDespliegue[2] == 's') ? rojoRD : negroRD;

					for(c = 0; c < desplegados.length; c++) {	// Comprueba si este campeonato está desplegado.
						if(dato.name == desplegados[c]) {
							break;
						}
					}

					if(c < desplegados.length && dato.name == campActivo) {		// Está desplegado.
						for(cnt0 = 0; cnt0 < 129; cnt0++) {
							valorStr0 = valorStr + cnt0;
							dato = document.getElementById(valorStr0);
							if(!dato) {
								continue;
							}
							pV += 15;
							dato.style.visibility = "visible";
							dato.style.top = pV;
							dato.style.color = (dato.name == catActiva && estadoDespliegue[2] == 's') ? rojoRD : negroRD;
							if(dato.name == catActiva && estadoDespliegue[2] == 's') {
								posConcret = pV;
							}
						}
					}
				}
			}
		}

													// Opción "ligas".
		if(document.getElementById("liga0001")) {
			pV += 25;
			dato = document.getElementById("liga");
			dato.style.visibility = "visible";
			dato.style.top = pV;
			dato.style.color = (estadoDespliegue[3] == 's') ? rojoRD : negroRD;
			if(estadoDespliegue[3] == 's') {
				posCampLig = pV;
			}
													// Ligas disponibles.
			if(estadoDespliegue[3] != 'c') {
				cnt = 1;
				while(true) {
					valorStr = "liga" + Math.floor(((cnt % 10000) / 1000)) + Math.floor(((cnt % 1000) / 100)) + Math.floor(((cnt % 100) / 10)) + (cnt % 10);
					dato = document.getElementById(valorStr);
					if(!dato) {
						break;
					}
					cnt++;
					pV += 15;
					dato.style.visibility = "visible";
					dato.style.top = pV;
					dato.style.color = (dato.name == campActivo && estadoDespliegue[3] == 's') ? rojoRD : negroRD;
					if(dato.name == campActivo && estadoDespliegue[3] == 's') {
						posConcret = pV;
					}
				}
			}
		}

												// Opción "ligas Virtuales".
		if(document.getElementById("virt0001")) {
			pV += 25;
			dato = document.getElementById("virt");
			dato.style.visibility = "visible";
			dato.style.top = pV;
			dato.style.color = (estadoDespliegue[9] == 's') ? rojoRD : negroRD;
			if(estadoDespliegue[9] == 's') {
				posCampLig = pV;
			}
													// Ligas disponibles.
			if(estadoDespliegue[9] != 'c') {
				cnt = 1;
				while(true) {
					valorStr = "virt" + Math.floor(((cnt % 10000) / 1000)) + Math.floor(((cnt % 1000) / 100)) + Math.floor(((cnt % 100) / 10)) + (cnt % 10);
					dato = document.getElementById(valorStr);
					if(!dato) {
						break;
					}
					cnt++;
					pV += 15;
					dato.style.visibility = "visible";
					dato.style.top = pV;
					dato.style.color = (dato.name == campActivo && estadoDespliegue[9] == 's') ? rojoRD : negroRD;
					if(dato.name == campActivo && estadoDespliegue[9] == 's') {
						posConcret = pV;
					}
				}
			}
		}
												// Opción "torneos"		
		if(document.getElementById("tdko0001")) {
			pV += 25;
			dato = document.getElementById("tdko");
			dato.style.visibility = "visible";
			dato.style.top = pV;
			dato.style.color = (estadoDespliegue[10] == 's') ? rojoRD : negroRD;
			if(estadoDespliegue[10] == 's') {
				posCampLig = pV;
			}
													// Torneos disponibles.
			if(estadoDespliegue[10] != 'c') {
				cnt = 1;
				while(true) {
					valorStr = "tdko" + Math.floor(((cnt % 10000) / 1000)) + Math.floor(((cnt % 1000) / 100)) + Math.floor(((cnt % 100) / 10)) + (cnt % 10);
					dato = document.getElementById(valorStr);
					if(!dato) {
						break;
					}
					cnt++;
					pV += 15;
					dato.style.visibility = "visible";
					dato.style.top = pV;
					dato.style.color = (dato.name == campActivo && estadoDespliegue[10] == 's') ? rojoRD : negroRD;
					if(dato.name == campActivo && estadoDespliegue[10] == 's') {
						posConcret = pV;
					}
				}
			}
		}
	}

	pV += 25;
	dato = document.getElementById("person");
	if(dato) {
		dato.style.visibility = (hayDni) ? "visible" : "hidden";
		dato.style.color = (estadoDespliegue[1] == 's') ? rojoRD : negroRD;
		dato.style.top = pV;

		for(cnt = 0; cnt < 5; cnt++) {
			dato = document.getElementById(itemPersonal[cnt]);
			switch(estadoDespliegue[cnt + 4]) {
			case 'o':
				pV += 15;
				dato.style.top = pV;
				dato.style.visibility = "visible";
				dato.style.color = negroRD;
				break;
			case 's':
				pV += 15;
				dato.style.top = pV;
				dato.style.visibility = "visible";
				dato.style.color = rojoRD;
				break;
			case 'c':
				dato.style.visibility = "hidden";
				dato.style.color = negroRD;
				break;
			}
		}
	}

	altoDocumento = pV;

	posFinal = -1;
	if(posConcret >= 0) {
		posFinal = posConcret;
	}
	else if(posCampLig >= 0) {
		posFinal = posCampLig;
	}
	if(/* !opcion && */ posFinal >= 0) {
		altoContenedor = 0;
		campo = document.getElementById("menuDesplegable");
		if(campo) {
			altoContenedor = parseInt(campo.style.height, 10);
		}
		if(altoDocumento && altoContenedor) {
			campo = document.getElementById("menuDesplegable1");
			if(campo) {
				if(posFinal > (altoContenedor / 2)) {
					pFinDocumento = posFinal - (altoContenedor / 2);
					if(pFinDocumento > (altoDocumento - altoContenedor)) {
						pFinDocumento = altoDocumento - altoContenedor;
					}
					campo.style.top = -pFinDocumento + "px";
				}
			}
		}
	}

	for(cnt = 0, temp = ""; cnt < 12; cnt++) {
		temp += estadoDespliegue[cnt];
	}
	document.forms["formulario"].elements["stDespliegue"].value = temp;

	if(haySubmit) {
		document.forms["formulario"].submit();
	}

}



// Desactiva todas las opciones del menú de clasificación.

function desactivaTodasLasOpciones() {

	dato = document.getElementById("clasif");	// Opción "clasificaciones".
	if(dato) {
		dato.style.color = "#000000";
	}

	dato = document.getElementById("camp");		// Opción "campeonatos".
	if(dato) {
		dato.style.color = "#000000";
		dato.style.visibility = "hidden";
	}
												// Campeonatos disponibles.
	cnt = 1;
	while(true) {
		valorStr = "camp" + Math.floor(((cnt % 10000) / 1000)) + Math.floor(((cnt % 1000) / 100)) + Math.floor(((cnt % 100) / 10)) + (cnt % 10);
		dato = document.getElementById(valorStr);
		if(!dato) {
			break;
		}
		cnt++;
		dato.style.color = "#000000";
		dato.style.visibility = "hidden";

		for(cnt0 = 0; cnt0 < 129; cnt0++) {
			valorStr0 = valorStr + cnt0;
			dato = document.getElementById(valorStr0);
			if(!dato) {
				continue;
			}
			dato.style.visibility = "hidden";
		}
	}
												// Opción "ligas".
	dato = document.getElementById("liga");
	if(dato) {
		dato.style.color = "#000000";
		dato.style.visibility = "hidden";
	}
											// Ligas disponibles.
	cnt = 1;
	while(true) {
		valorStr = "liga" + Math.floor(((cnt % 10000) / 1000)) + Math.floor(((cnt % 1000) / 100)) + Math.floor(((cnt % 100) / 10)) + (cnt % 10);
		dato = document.getElementById(valorStr);
		if(!dato) {
			break;
		}
		cnt++;
		dato.style.color = "#000000";
		dato.style.visibility = "hidden";
	}
												// Opción "ligas Virtuales".
	dato = document.getElementById("virt");
	if(dato) {
		dato.style.color = "#000000";
		dato.style.visibility = "hidden";
	}
											// Ligas Virtuales disponibles.
	cnt = 1;
	while(true) {
		valorStr = "virt" + Math.floor(((cnt % 10000) / 1000)) + Math.floor(((cnt % 1000) / 100)) + Math.floor(((cnt % 100) / 10)) + (cnt % 10);
		dato = document.getElementById(valorStr);
		if(!dato) {
			break;
		}
		cnt++;
		dato.style.color = "#000000";
		dato.style.visibility = "hidden";
	}

												// Opción "Torneos".
	dato = document.getElementById("tdko");
	if(dato) {
		dato.style.color = "#000000";
		dato.style.visibility = "hidden";
	}
											// Torneos disponibles.
	cnt = 1;
	while(true) {
		valorStr = "tdko" + Math.floor(((cnt % 10000) / 1000)) + Math.floor(((cnt % 1000) / 100)) + Math.floor(((cnt % 100) / 10)) + (cnt % 10);
		dato = document.getElementById(valorStr);
		if(!dato) {
			break;
		}
		cnt++;
		dato.style.color = "#000000";
		dato.style.visibility = "hidden";
	}
		
												// Opción "Supercampeonatos".
	dato = document.getElementById("scmp");	
	if(dato) {
		dato.style.color = "#000000";
		dato.style.visibility = "hidden";
	}												// Supercampeonatos disponibles.
	cnt = 1;
	while(true) {
		valorStr = "scmp" + Math.floor(((cnt % 10000) / 1000)) + Math.floor(((cnt % 1000) / 100)) + Math.floor(((cnt % 100) / 10)) + (cnt % 10);
		dato = document.getElementById(valorStr);
		if(!dato) {
			break;
		}
		cnt++;
		dato.style.color = "#000000";
		dato.style.visibility = "hidden";
		for(cnt0 = 1; cnt0 < 100; cnt0++) {
			valorStr0 = valorStr + Math.floor(((cnt0 % 10000) / 1000)) + Math.floor(((cnt0 % 1000) / 100)) + Math.floor(((cnt0 % 100) / 10)) + (cnt0 % 10);
			dato = document.getElementById(valorStr0);
			if(!dato) {
				break;
			}
			dato.style.color = "#000000";
			dato.style.visibility = "hidden";
			for(cnt1 = 0; cnt1 < 129; cnt1++) {
				valorStr1 = valorStr0 + cnt1;
				dato = document.getElementById(valorStr1);
				if(!dato) {
					continue;
				}
				dato.style.visibility = "hidden";
			}
		}
	}
		
	dato = document.getElementById("person");
	if(dato) {
		dato.style.color = "#000000";

		for(cnt = 0; cnt < 5; cnt++) {
			dato = document.getElementById(itemPersonal[cnt]);
			dato.style.color = "#000000";
			dato.style.visibility = "hidden";
		}
	}
}


// Desactiva los campeonatos (0), ligas (1), ligas virtuales (2), torneos (3) o supercampeonatos (4).

function desactivaCampeonatos(ligas) {
	desplegados = document.forms["formulario"].elements["comDesp"].value.split(',');
	campActivo = document.forms["formulario"].elements["campeonatoActivo"].value;
	catActiva = document.forms["formulario"].elements["categoriaActiva"].value;

	if(ligas < 2) {
		valor =  (!ligas) ? "camp" : "liga";
	}
	else {
		valor = (ligas == 2) ? "virt" : "tdko";
	}
	
	if(ligas == 4) {				// Hay que desactivar los supercampeonatos.
		valor = "scmp";
		cnt = 1;
		while(true) {
			valorStr = valor + Math.floor(((cnt % 10000) / 1000)) + Math.floor(((cnt % 1000) / 100)) + Math.floor(((cnt % 100) / 10)) + (cnt % 10);
			dato = document.getElementById(valorStr);
			if(!dato) {
				break;
			}
			cnt++;
			if(dato.name == catActiva) {
				catActiva = document.forms["formulario"].elements["categoriaActiva"].value = "c000";
			}
			if(dato.name == campActivo) {
				campActivo = document.forms["formulario"].elements["campeonatoActivo"].value = "";
			}
			for(cnt1 = 0; cnt1 < desplegados.length; cnt1++) {
				if(dato.name == desplegados[cnt1]) {
					desplegados[cnt1] = "";
				}
			}
			for(cnt0 = 0; cnt0 < 100; cnt0++) {
				valorStr0 = valorStr + Math.floor(((cnt0 % 10000) / 1000)) + Math.floor(((cnt0 % 1000) / 100)) + Math.floor(((cnt0 % 100) / 10)) + (cnt0 % 10);
				dato = document.getElementById(valorStr0);
				if(!dato) {
					break;
				}
				if(dato.name == catActiva) {
					catActiva = document.forms["formulario"].elements["categoriaActiva"].value = "c000";
				}
				if(dato.name == campActivo) {
					campActivo = document.forms["formulario"].elements["campeonatoActivo"].value = "";
				}
				for(cnt1 = 0; cnt1 < desplegados.length; cnt1++) {
					if(dato.name == desplegados[cnt1]) {
						desplegados[cnt1] = "";
					}
				}				
				for(cnt2 = 0; cnt2 < 129; cnt2++) {
					valorStr1 = valorStr0 + cnt2;
					dato = document.getElementById(valorStr1);
					if(!dato) {
						continue;
					}
					if(dato.name == catActiva) {
						catActiva = document.forms["formulario"].elements["categoriaActiva"].value = "c000";
					}
					if(dato.name == campActivo) {
						campActivo = document.forms["formulario"].elements["campeonatoActivo"].value = "";
					}
					for(cnt1 = 0; cnt1 < desplegados.length; cnt1++) {
						if(dato.name == desplegados[cnt1]) {
							desplegados[cnt1] = "";
						}
					}
				}				
			}
		}
	}
	else {
		cnt = 1;
		while(true) {
			valorStr = valor + Math.floor(((cnt % 10000) / 1000)) + Math.floor(((cnt % 1000) / 100)) + Math.floor(((cnt % 100) / 10)) + (cnt % 10);
			dato = document.getElementById(valorStr);
			if(!dato) {
				break;
			}
			cnt++;
			if(dato.name == catActiva) {
				catActiva = document.forms["formulario"].elements["categoriaActiva"].value = "c000";
			}
			if(dato.name == campActivo) {
				campActivo = document.forms["formulario"].elements["campeonatoActivo"].value = "";
			}
			for(cnt1 = 0; cnt1 < desplegados.length; cnt1++) {
				if(dato.name == desplegados[cnt1]) {
					desplegados[cnt1] = "";
				}
			}
			for(cnt0 = 0; cnt0 < 129; cnt0++) {
				valorStr0 = valorStr + cnt0;
				dato = document.getElementById(valorStr0);
				if(!dato) {
					continue;
				}
				if(dato.name == catActiva) {
					catActiva = document.forms["formulario"].elements["categoriaActiva"].value = "c000";
				}
				if(dato.name == campActivo) {
					campActivo = document.forms["formulario"].elements["campeonatoActivo"].value = "";
				}
				for(cnt1 = 0; cnt1 < desplegados.length; cnt1++) {
					if(dato.name == desplegados[cnt1]) {
						desplegados[cnt1] = "";
					}
				}
			}
		}
	}
	
	for(temp2 = "", c = 0; c < desplegados.length; c++) {
		if(desplegados[c] != "") {
			temp2 += desplegados[c];
			temp2 += ',';
		}
	}
	document.forms["formulario"].elements["comDesp"].value = temp2;
}


// Salta de la pantalla de clasificación general a la de partidas individuales.

function saltaAPartidasIndividuales() {
	document.forms["formulario"].elements["dni2"].value = "";
	document.forms["formulario"].action = "partidas.php";
	document.forms["formulario"].submit();
}


// Salta de la pantalla de clasificación de liga a la de jornadas.

function saltaAJornadas(jornada) {
	document.forms["formulario"].elements["jornada"].value = jornada;
	document.forms["formulario"].action = (competicionesEnLocal) ? "ligajornadaglobal.php" : "ligajornada.php";
	document.forms["formulario"].submit();
}


// Salta a la pantalla de datos del encuentro indicado.

function saltaADatosEncuentro(nameObjeto) {
	params = new Array;
	params = nameObjeto.split("|");
	if(params.length != 3) {
		return;
	}

	document.forms["formulario"].elements["encuentro"].value = params[0];
	if(params[2] == '1') {
		document.forms["formulario"].action = (params[1] == '1') ? "ligavirtualglobal.php" : "ligavirtual.php";
	}
	else {
		document.forms["formulario"].action = (params[1] == '1') ? "ligapartidaglobal.php" : "ligapartida.php";
	}
	document.forms["formulario"].submit();
}


// Scroll arriba.

function scrollArriba(pixelsASubir) {
	doc = document.getElementById("tablaLista");
	altoContenedor = document.getElementById("listaClasificacion").offsetHeight;
	altoContenido = doc.offsetHeight;
	posActual = -parseInt(doc.style.top, 10);
	if(posActual > 0) {
		posActual -= pixelsASubir;
		if(posActual < 0) {
			posActual = 0;
		}
	}
	doc.style.top = -posActual + "px";
//	sigueScrollArriba = setTimeout("scrollArriba()", 100);
}

// Scroll abajo.

function scrollAbajo(pixelsABajar) {
	doc = document.getElementById("tablaLista");
	altoContenedor = document.getElementById("listaClasificacion").offsetHeight;
	altoContenido = doc.offsetHeight;
	posActual = -parseInt(doc.style.top, 10);
	if(posActual < (altoContenido - altoContenedor)) {
		posActual += pixelsABajar;
		if(posActual >= (altoContenido - altoContenedor)) {
			posActual = (altoContenido - altoContenedor);
		}
	}
	if(pixelsABajar == 12) {
		posActual = Math.floor(posActual / 12) * 12;
	}
	else if(pixelsABajar == 14) {
		posActual = Math.floor(posActual / 14) * 14;
	}
	else {
		posActual = Math.floor(posActual / 21) * 21;
	}
	doc.style.top = -posActual + "px";
//	sigueScrollAbajo = setTimeout("scrollAbajo()", 100);
}


// Salta al jugador indicado.

function saltaAJugadorIndicado(jug) {
	altoContenedor = document.getElementById("listaClasificacion").offsetHeight;
	doc = document.getElementById("tablaLista");
	altoContenido = doc.offsetHeight;
	if(altoContenido <= altoContenedor) {
		posJug = 0;
	}
	else {
		altoUnJugador = altoContenido / nClasificacion;
		posJug = (jug < 0) ? (posJugador - 5) * altoUnJugador : jug * altoUnJugador;
		if(posJug < 0) {
			posJug = 0;
		}
		else if(posJug > (altoContenido - altoContenedor)) {
			posJug = altoContenido - altoContenedor;
		}
	}
	posJug = Math.floor(posJug / 21) * 21;
	doc.style.top = -posJug + "px";
}

// Salta al principio o al final de la lista.

function saltaAExtremo(topo) {
	altoContenedor = document.getElementById("listaClasificacion").offsetHeight;
	doc = document.getElementById("tablaLista");
	altoContenido = doc.offsetHeight;

	if(!topo) {
		doc.style.top = "0px";
	}
	else {
		posJug = altoContenido - altoContenedor;
		doc.style.top = -posJug + "px";
	}
}


// Salta a la jornada indicada (-1: Anterior; 1: Siguiente; 0: Primera Jornada; 2: Última jornada).

function saltaAJornadaIndicada(jor) {
	document.forms["formulario"].elements["jornada"].value = jor;
	document.forms["formulario"].action = (competicionesEnLocal) ? "ligajornadaglobal.php" : "ligajornada.php";
	document.forms["formulario"].submit();
	return;

	jornadaActual = jornadaAnterior = document.forms["formulario"].elements["jornada"].value;

	switch(jor) {
	case -1:
		if(jornadaActual > 1) {
			jornadaActual--;
		}
		break;
	case 0:
		jornadaActual = 1;
		break;
	case 1:
		if(jornadaActual < nJornadas) {
			jornadaActual++;
		}
		break;
	case 2:
		jornadaActual = nJornadas;
	}
	if(jornadaActual == jornadaAnterior) {
		return;
	}
	document.forms["formulario"].elements["jornada"].value = jornadaActual;
	document.forms["formulario"].action = (competicionesEnLocal) ? "ligajornadaglobal.php" : "ligajornada.php";
	document.forms["formulario"].submit();
}


//////////////


// Gestiona la opción pulsada en el menú de localidades.

function gestLocPuls(opcion) {
	hayProvincia = document.forms["formulario"].elements["local3"].value;
	hayPoblacion = document.forms["formulario"].elements["local2"].value;
	hayLocal = document.forms["formulario"].elements["nombreLocal"].value;
	hayPais = document.forms["formulario"].elements["nombrePais"].value;
	hayCodigo = document.forms["formulario"].elements["codigoPais"].value;
	document.forms["formulario2"].elements["local3"].value = hayProvincia;
	document.forms["formulario2"].elements["local2"].value = hayPoblacion;
	document.forms["formulario2"].elements["nombreLocal"].value = hayLocal;
	document.forms["formulario2"].elements["nombrePais"].value = hayPais;
	document.forms["formulario2"].elements["codigoPais"].value = hayCodigo;
	haySubmit = false;
	recarga = false;
	enRojo = 0;			// 0-Nada... 1-Población... 2-Local.

//	alert(hayPais + " " + hayProvincia + " " + hayPoblacion + " " + hayLocal);


	if(!opcion) {			// Es la primera llamada ("resetea" todo).
//		pv = 0;
		nPais = 0;
		while(true) {		// Imprime los países.
			idPais = idProvincia = idPoblacion = idBar = valorA4Digitos(nPais);
			campo = document.getElementById(idPais);
			if(!campo) {		// Ya no hay más países.
				break;
			}
			campo.style.color = (campo.name == hayPais) ? rojoRD : "white";
			if(campo.style.color != "white") {
				enRojo = 1;
			}
			visibilidadProvincias = (campo.name == hayPais) ? "visible" : "hidden";
			campo.style.visibility = "visible";
//			campo.style.top = pv;
//			pv += 16;
			nPais++;
			nProvincia = 0;
			while(true) {		// Imprime las provincias.
				idProvincia = idPais + "," + valorA4Digitos(nProvincia);
				campo = document.getElementById(idProvincia);
				if(!campo) {		// Ya no hay más provincias.
					break;
				}
				campo.style.color = (visibilidadProvincias == "visible" && campo.name == hayProvincia) ? rojoRD : "white";
				if(campo.style.color != "white") {
					enRojo = 2;
				}
				visibilidadPoblaciones = (visibilidadProvincias == "visible" && campo.name == hayProvincia) ? "visible" : "hidden";
				campo.style.visibility = visibilidadProvincias;
//				campo.style.top = pv;
				nPoblacion = 0;
//				pv += 16;
				nProvincia++;

				while(true) {	// Borra las poblaciones.
					idPoblacion = idProvincia + "," + valorA4Digitos(nPoblacion);
					campo = document.getElementById(idPoblacion);
					if(!campo) {	// Ya no hay más poblaciones.
						break;
					}
					campo.style.color = (visibilidadPoblaciones == "visible" && campo.name == hayPoblacion) ? rojoRD : "white";
					if(campo.style.color != "white") {
						enRojo = 3;
					}
					visibilidadLocales = (visibilidadPoblaciones == "visible" && campo.name == hayPoblacion) ? "visible" : "hidden";
					campo.style.visibility = visibilidadPoblaciones;
					nPoblacion++;
					nBar = 0;

					while(true) {	// Borra los "bares".
						idBar = idPoblacion + "," + valorA4Digitos(nBar);
						campo = document.getElementById(idBar);
						if(!campo) {		// Ya no hay más "bares".
							break;
						}
						campo.style.color = (visibilidadLocales == "visible" && campo.name == hayLocal) ? rojoRD : "white";
						if(campo.style.color != "white") {
							enRojo = 3;
						}
						campo.style.visibility = visibilidadLocales;
						nBar++;
					}
				}
			}
		}
	}
	else {
		ident = opcion.id.split(',');
		switch(ident.length) {
		case 1:										// 1- Se trata de un país.
			idProvincia = opcion.id + "," + valorA4Digitos(0);
			hayProvincia = (document.getElementById(idProvincia)) ? true : false;
			if(opcion.style.color == "white" || !hayProvincia) {
				desactivaTodosLosCampos(2);
				borraCampos(2);
				opcion.style.color = rojoRD;
				enRojo = 1;
				nProvincia = 0;						// Activa todas las provincias de ese país.

				campo = document.getElementById(opcion.id);
				document.forms["formulario2"].elements["nombrePais"].value = campo.name;
				document.forms["formulario2"].elements["codigoPais"].value = identificadorPais[parseInt(ident[0], 10)];
				document.forms["formulario2"].elements["nombreLocal"].value = "";
				document.forms["formulario2"].elements["local2"].value = "";
				document.forms["formulario2"].elements["local3"].value = "";

				
				hayProvincia = false;
				while(true) {
					idProvincia = opcion.id + "," + valorA4Digitos(nProvincia);
					campo = document.getElementById(idProvincia);
					if(!campo) {
						break;
					}
					hayProvincia = true;
					campo.style.color = "white";
					campo.style.visibility = "visible";
					nProvincia++;
				}
				if(!hayProvincia) {
					recarga = true;
				}
			}
			else {
				desactivaTodosLosCampos(2);
				nProvincia = 0;						// Desactiva todas las provincias, poblaciones y locales de ese país.
				while(true) {
					idProvincia = opcion.id + "," + valorA4Digitos(nProvincia);
					campo = document.getElementById(idProvincia);
					if(!campo) {
						break;
					}
					campo.style.color = "white";
					campo.style.visibility = "hidden";
					nProvincia++;
					nPoblacion = 0;
					while(true) {
						idPoblacion = idProvincia + "," + valorA4Digitos(nPoblacion);
						campo = document.getElementById(idPoblacion);
						if(!campo) {
							break;
						}
						campo.style.color = "white";
						campo.style.visibility = "hidden";
						nPoblacion++;

						nBar = 0;
						while(true) {
							idBar = idPoblacion + "," + valorA4Digitos(nBar);
							campo = document.getElementById(idBar);
							if(!campo) {
								break;
							}
							campo.style.color = "white";
							campo.style.visibility = "hidden";
							nBar++;
						}
					}
				}
				document.forms["formulario2"].action = "selectpais.php";
				recarga = true;
			}
			break;
		case 2:										// 2- Se trata de una provincia.

			if(opcion.style.color == "white") {

													// Comprueba si el país al que pertenece esta provincia está activado.
				campo = document.getElementById(ident[0]);
				document.forms["formulario2"].elements["nombrePais"].value = campo.name;
				document.forms["formulario2"].elements["codigoPais"].value = identificadorPais[parseInt(ident[0], 10)];
				if(campo) {
					if(campo.style.color == "white") {		// El país está desactivado.
						desactivaTodosLosCampos(2);
						borraCampos(2);
						campo = document.getElementById(ident[0]);
						campo.style.color = rojoRD;
						nProvincia = 0;						// Activa todas las provincias de ese país.
						while(true) {
							idProvincia = ident[0] + "," + valorA4Digitos(nProvincia);
							campo = document.getElementById(idProvincia);
							if(!campo) {
								break;
							}
							campo.style.color = "white";
							campo.style.visibility = "visible";
							nProvincia++;
						}
					}
				}
				desactivaTodosLosCampos(1);
				borraCampos(1);
				opcion.style.color = rojoRD;
				enRojo = 2;
				nPoblacion = 0;						// Activa todas las poblaciones de esa provincia.

				document.forms["formulario2"].elements["nombreLocal"].value = "";
				document.forms["formulario2"].elements["local2"].value = "";
				document.forms["formulario2"].elements["local3"].value = opcion.name;
				recarga = true;

				while(true) {
					idPoblacion = opcion.id + "," + valorA4Digitos(nPoblacion);
					campo = document.getElementById(idPoblacion);
					if(!campo) {
						break;
					}
					campo.style.color = "white";
					campo.style.visibility = "visible";
					nPoblacion++;
				}
			}
			else {
				desactivaTodosLosCampos(1);
				opcion.style.color = "white";
				nPoblacion = 0;						// Desactiva todas las poblaciones y locales de esa provincia.
				while(true) {
					idPoblacion = opcion.id + "," + valorA4Digitos(nPoblacion);
					campo = document.getElementById(idPoblacion);
					if(!campo) {
						break;
					}
					campo.style.color = "white";
					campo.style.visibility = "hidden";
					nPoblacion++;

					nBar = 0;
					while(true) {
						idBar = idPoblacion + "," + valorA4Digitos(nBar);
						campo = document.getElementById(idBar);
						if(!campo) {
							break;
						}
						campo.style.color = "white";
						campo.style.visibility = "hidden";
						nBar++;
					}
				}
			}
			break;
		case 3:										// 3- Se trata de una población.
			if(opcion.style.color == "white") {

				document.forms["formulario2"].elements["local2"].value = opcion.name;
				recarga = true;

				desactivaTodosLosCampos(0);
				borraCampos(0);
				idProvincia = ident[0];
				campo = document.getElementById(idProvincia);
				if(campo) {
					campo.style.color = rojoRD;
				}
				opcion.style.color = rojoRD;
				enRojo = 3;
				nBar = 0;								// Activa todos los locales de esa población.
				while(true) {
					idBar = opcion.id + "," + valorA4Digitos(nBar);
					campo = document.getElementById(idBar);
					if(!campo) {
						break;
					}
					campo.style.color = "white";
					campo.style.visibility = "visible";
					nBar++;
				}
			}
			else {
				opcion.style.color = "white";
				nBar = 0;								// Desactiva todos los locales de esa población.
				while(true) {
					idBar = opcion.id + "," + valorA4Digitos(nBar);
					campo = document.getElementById(idBar);
					if(!campo) {
						break;
					}
					campo.style.color = "white";
					campo.style.visibility = "hidden";
					nBar++;
				}
			}
			break;
		case 4:										// 4- Se trata de un local.
			desactivaTodosLosCampos(0);
			opcion.style.color = rojoRD;
			enRojo = 3;
			campo = document.getElementById(ident[0]);
			if(campo) {
				campo.style.color = rojoRD;
				document.forms["formulario"].elements["nombrePais"].value = campo.name;
				document.forms["formulario"].elements["codigoPais"].value = identificadorPais[parseInt(ident[0], 10)];
			}
			campo = document.getElementById(ident[0] + "," + ident[1]);
			if(campo) {
				campo.style.color = rojoRD;
				document.forms["formulario"].elements["local3"].value = campo.name;
			}
			campo = document.getElementById(ident[0] + "," + ident[1] + "," + ident[2]);
			if(campo) {
				campo.style.color = rojoRD;
				document.forms["formulario"].elements["local2"].value = campo.name;
			}
			document.forms["formulario"].elements["nombreLocal"].value = opcion.name;
			haySubmit = true;
			break;
		}
	}

//	document.getElementById("selPais").style.visibility = "hidden";
	if(document.getElementById("selPrv")) {
		document.getElementById("selPrv").style.visibility = "hidden";
	}
	if(document.getElementById("selPob")) {
		document.getElementById("selPob").style.visibility = "hidden";
	}
	if(document.getElementById("selLoc")) {
		document.getElementById("selLoc").style.visibility = "hidden";
	}
	if(document.getElementById("selLoc2")) {
		document.getElementById("selLoc2").style.visibility = "hidden";
	}
	switch(enRojo) {
	case 1:
		if(document.getElementById("selPrv")) {
			document.getElementById("selPrv").style.visibility = "visible";
		}
		break;
	case 2:
		if(document.getElementById("selPob")) {
			document.getElementById("selPob").style.visibility = "visible";
		}
		break;
	case 3:
		if(document.getElementById("selLoc")) {
			document.getElementById("selLoc").style.visibility = "visible";
		}
		if(document.getElementById("selLoc2")) {
			document.getElementById("selLoc2").style.visibility = "visible";
		}
		break;
	default:
//		document.getElementById("selPais").style.visibility = "visible";
	}

// Una vez realizadas las operaciones oportunas, actualiza los resultados.

	pv = 0;
	nPais = 0;
	posPais = posProvincia = posPoblacion = posLocal = -1;
	while(true) {		// Imprime los países.
		idPais = idProvincia = idPoblacion = idBar = valorA4Digitos(nPais);
		campo = document.getElementById(idPais);
		if(!campo) {			// Ya no hay más países.
			break;
		}
		campo.style.top = pv;
		if(campo.style.color != "white") {
			posPais = pv;
		}
		nProvincia = 0;
		pv += 18;
		nPais++;
		while(true) {		// Imprime las provincias.
			idProvincia = idPais + "," + valorA4Digitos(nProvincia);
			campo = document.getElementById(idProvincia);
			if(!campo) {		// Ya no hay más provincias.
				break;
			}
			if(campo.style.visibility == "visible") {
				campo.style.top = pv;
				if(campo.style.color != "white") {
					posProvincia = pv;
				}
				pv += 14;
			}
			nPoblacion = 0;
			nProvincia++;

			while(true) {	// Imprime las poblaciones.
				idPoblacion = idProvincia + "," + valorA4Digitos(nPoblacion);
				campo = document.getElementById(idPoblacion);
				if(!campo) {	// Ya no hay más poblaciones.
					break;
				}
				if(campo.style.visibility == "visible") {		// Esta población ha aparecido.
					campo.style.top = pv;
					if(campo.style.color != "white") {
						posPoblacion = pv;
					}
					pv += 14;
				}
				nPoblacion++;
				nBar = 0;

				while(true) {	// Imprime los "bares".
					idBar = idPoblacion + "," + valorA4Digitos(nBar);
					campo = document.getElementById(idBar);
					if(!campo) {		// Ya no hay más "bares".
						break;
					}
					if(campo.style.visibility == "visible") {		// Este "bar" ha aparecido.
						campo.style.top = pv;
						if(campo.style.color != "white") {
							posLocal = pv;
						}
						pv += 14;
					}
					nBar++;
				}
			}
		}
		pv += 3;
	}

	altoDocumento = pv;

	if(true || !opcion) {			// Es la primera llamada.
		posFinal = -1;
		if(posLocal >= 0) {
			posFinal = posLocal;
		}
		else if(posPoblacion >= 0) {
			posFinal = posPoblacion;
		}
		else if(posProvincia >= 0) {
			posFinal = posProvincia;
		}
		else if(posPais >= 0) {
			posFinal = posPais;
		}
		if(posFinal >= 0) {
			altoContenedor = 0;
			campo = document.getElementById("menuDesplegable");
			if(campo) {
				altoContenedor = parseInt(campo.style.height, 10);
			}
			if(altoDocumento && altoContenedor) {
				campo = document.getElementById("menuDesplegable1");
				if(campo && altoDocumento > altoContenedor) {
					if(posFinal > (altoContenedor / 2)) {
						pFinDocumento = posFinal - (altoContenedor / 2);
						if(pFinDocumento > (altoDocumento - altoContenedor)) {
							pFinDocumento = altoDocumento - altoContenedor;
						}
						campo.style.top = -pFinDocumento + "px";
					}
				}
			}
		}
	}

	activaOpcionVerTodasLasCompeticiones();

	if(haySubmit) {
		document.forms["formulario"].submit();
	}
	else if(opcion && recarga) {
		document.forms["formulario2"].submit();
	}

	return false;
}


// Activa la opción de ver todas las competiciones del país, provincia o población, si es necesario.

	var paisActivado;
	var idPaisActivado;
	var provinciaActivada;
	var poblacionActivada;
	var queImprime;

	function activaOpcionVerTodasLasCompeticiones() {
		queImprime = 0;														// De momento no imprime nada...
		paisActivado = idPaisActivado = provinciaActivada = poblacionActivada = "SIN_DATOS";
		campoPais = document.getElementById("compPais");					// ...así que para empezar las borra todas.
		campoProvincia = document.getElementById("compProvincia");
		campoPoblacion = document.getElementById("compPoblacion");
		if(campoPais) {
			campoPais.style.visibility = "hidden";
		}
		if(campoProvincia) {
			campoProvincia.style.visibility = "hidden";
		}
		if(campoPoblacion) {
			campoPoblacion.style.visibility = "hidden";
		}
		nPais = nProvincia = nPoblacion = 0;
		while(true) {				// Comprueba los países.
			idPais = idProvincia = idPoblacion = idBar = valorA4Digitos(nPais);
			campo = document.getElementById(idPais);
			if(!campo) {			// Se acabaron los países.
				break;
			}
			if(campo.style.visibility == "visible" && campo.style.color != "white") {
				queImprime = 1;						// Parece que debería imprimirse el rótulo correspondiente al país.
				paisActivado = campo.name;
				idPaisActivado = identificadorPais[parseInt(idPais, 10)];
				while(true) {						// Comprueba las provincias.
					idProvincia = idPais + "," + valorA4Digitos(nProvincia);
					campo = document.getElementById(idProvincia);
					if(!campo) {		// Ya no hay más provincias.
						break;
					}
					if(campo.style.visibility == "visible" && campo.style.color != "white") {
						queImprime = 2;				// Parece que debería imprimirse el rótulo correspondiente a la provincia.
						provinciaActivada = campo.name;
						while(true) {				// Comprueba las poblaciones.
							idPoblacion = idProvincia + "," + valorA4Digitos(nPoblacion);
							campo = document.getElementById(idPoblacion);
							if(!campo) {	// Ya no hay más poblaciones.
								break;
							}
							if(campo.style.visibility == "visible" && campo.style.color != "white") {
								queImprime = 3;		// Parece que debería imprimirse el rótulo correspondiente a la población.
								poblacionActivada = campo.name;
							}
							nPoblacion++;
						}
					}
					nProvincia++;
				}
				if(queImprime == 1) {
					if(campoPais) {
//						campoPais.style.visibility = "visible";
					}
				}
				else if(queImprime == 2) {
					if(campoProvincia) {
						campoProvincia.style.visibility = "visible";
					}
				}
				else {
					if(campoPoblacion) {
						campoPoblacion.style.visibility = "visible";
					}
				}
				return;
			}
			nPais++;
		}
	}


// Salta al pulsar la opción de mostrar todos los campeonatos en curso en un país, provincia o población.

	function saltaAMostrarCampeonatos() {
		activaOpcionVerTodasLasCompeticiones();
		document.forms["formulario"].elements["nombrePais"].value = paisActivado;
		document.forms["formulario"].elements["codigoPais"].value = idPaisActivado;
		document.forms["formulario"].elements["local3"].value = provinciaActivada;
		document.forms["formulario"].elements["local2"].value = poblacionActivada;
		document.forms["formulario"].elements["nombreLocal"].value = "SIN_DATOS";
		document.forms["formulario"].submit();
	}


// Carga el color negro a todos los campos.
//	-0: Desactiva poblaciones y locales.
//	-1: Desactiva poblaciones, locales y provincias.
//	-2: Desactiva poblaciones, locales, provincias y países.

function desactivaTodosLosCampos(dato) {
	nPais = 0;
	while(true) {		// Desactiva los países.
		idPais = idProvincia = idPoblacion = idBar = valorA4Digitos(nPais);
		campo = document.getElementById(idPais);
		if(!campo) {		// Ya no hay más países.
			break;
		}
		if(dato == 2) {
			campo.style.color = "white";
		}
		nProvincia = 0;
		nPais++;
		while(true) {		// Desactiva las provincias.
			idProvincia = idPais + "," + valorA4Digitos(nProvincia);
			campo = document.getElementById(idProvincia);
			if(!campo) {		// Ya no hay más provincias.
				break;
			}
			if(dato > 0) {
				campo.style.color = "white";
			}
			nPoblacion = 0;
			nProvincia++;

			while(true) {	// Desactiva las poblaciones.
				idPoblacion = idProvincia + "," + valorA4Digitos(nPoblacion);
				campo = document.getElementById(idPoblacion);
				if(!campo) {	// Ya no hay más poblaciones.
					break;
				}
				campo.style.color = "white";
				nPoblacion++;
				nBar = 0;

				while(true) {	// Desactiva los "bares".
					idBar = idPoblacion + "," + valorA4Digitos(nBar);
					campo = document.getElementById(idBar);
					if(!campo) {		// Ya no hay más "bares".
						break;
					}
					campo.style.color = "white";
					nBar++;
				}
			}
		}
	}
}


// Borra todos los campos.
// esLocal: 0- Borra sólo locales  1- Borra locales y poblaciones   2- Borra locales, poblaciones y provincias.

function borraCampos(esLocal) {
	nPais = 0;
	while(true) {
		idPais = idProvincia = idPoblacion = idBar = valorA4Digitos(nPais);
		campo = document.getElementById(idPais);
		if(!campo) {		// Ya no hay más países.
			break;
		}
		nProvincia = 0;
		nPais++;

		while(true) {
			idProvincia = idPais + "," + valorA4Digitos(nProvincia);
			campo = document.getElementById(idProvincia);
			if(!campo) {		// Ya no hay más provincias.
				break;
			}
			if(esLocal == 2) {
					campo.style.color = "white";
					campo.style.visibility = "hidden";
			}
			nPoblacion = 0;
			nProvincia++;

			while(true) {	// Borra las poblaciones.
				idPoblacion = idProvincia + "," + valorA4Digitos(nPoblacion);
				campo = document.getElementById(idPoblacion);
				if(!campo) {	// Ya no hay más poblaciones.
					break;
				}
				if(esLocal > 0) {
					campo.style.color = "white";
					campo.style.visibility = "hidden";
				}
				nPoblacion++;
				nBar = 0;

				while(true) {	// Borra los "bares".
					idBar = idPoblacion + "," + valorA4Digitos(nBar);
					campo = document.getElementById(idBar);
					if(!campo) {		// Ya no hay más "bares".
						break;
					}
					campo.style.color = "white";
					campo.style.visibility = "hidden";
					nBar++;
				}
			}
		}
	}
}


// Devuelve el valor indicado convertido en un campo de texto de cuatro caracteres.

function valorA4Digitos(valor) {
	return (Math.floor(valor / 1000)).toString() + (Math.floor((valor % 1000) / 100)).toString() +
			(Math.floor((valor % 100) / 10)).toString() + (valor % 10).toString();
}


// Desplaza hacia arriba la lista de localidades.

function subeListaLocalidades(pixelsASubir) {
	altoContenedor = 0;
	campo = document.getElementById("menuDesplegable");
	if(campo) {
		altoContenedor = parseInt(campo.style.height, 10);
	}

	if(!altoDocumento) {
		return false;
	}
	campo = document.getElementById("menuDesplegable1");
	if(campo) {
		pv = -parseInt(campo.style.top, 10);
	}
	if(pv > 0) {
		pv -= pixelsASubir;
		if(pv < 0) {
			pv = 0;
		}
	}
	campo.style.top = -pv + "px";
}


// Desplaza hacia abajo la lista de localidades.

function bajaListaLocalidades(pixelsABajar) {
	altoContenedor = 0;
	campo = document.getElementById("menuDesplegable");
	if(campo) {
		altoContenedor = parseInt(campo.style.height, 10);
	}

	if(!altoDocumento) {
		return false;
	}
	campo = document.getElementById("menuDesplegable1");
	if(campo) {
		pv = -parseInt(campo.style.top, 10);
	}

	if(pv < (altoDocumento - altoContenedor)) {
		pv += pixelsABajar;
		if(pv > (altoDocumento - altoContenedor)) {
			pv = altoDocumento - altoContenedor;
		}
	}
	campo.style.top = -pv + "px";
}


/////////////////////////////////////////


// Inicia y desarrolla el efecto de parpadeo de las flechas.

function efectoParpadeoFlechas() {
	parpadeoFlechas();
	setTimeout("efectoParpadeoFlechas()", 100);
}


// Parpadeo de las flechas en todas las pantallas en las que aparezcan.

var timerParpadeoFlechas = 0;

function parpadeoFlechas() {

	return;

	params = new Array;

	// Hace parpadear los dardos en todas las pantallas.

	if(!((timerParpadeoFlechas++) & 0x3)) {
		nImagenes = document.images.length;
		if(nImagenes) {
			for(cnt = 0; cnt < nImagenes; cnt++) {
				params = document.images[cnt].src.split("/");
				switch(params[params.length - 1]) {
				case "Cursor1.gif":
					document.images[cnt].src = "Imagenes/Cursor2.gif";
					break;
				case "Cursor1b.gif":
					document.images[cnt].src = "Imagenes/Cursor2b.gif";
					break;
				case "Cursor2.gif":
					document.images[cnt].src = "Imagenes/Cursor1.gif";
					break;
				case "Cursor2b.gif":
					document.images[cnt].src = "Imagenes/Cursor1b.gif";
					break;
				}
			}
		}
	}
}


/////////////////////////////////////////


// Funciones generales para scroll.

var velScroll = 0;			// Velocidad actual del scroll.
var scrollUp = false;
var scrollMenuDesplegable = false;		// Se trata de la lista de clasificación o del menu desplegable.
var pulsado = 0;

function gestionaScroll() {
	if(velScroll && pulsado) {
		if(scrollMenuDesplegable) {			// Se trata del menú desplegable.
			if(scrollUp) {
				subeListaLocalidades(velScroll);
			}
			else {
				bajaListaLocalidades(velScroll);
			}
		}
		else {								// Se trata de la lista de clasificación.
			if(pulsado == 1 || pulsado >= 5) {
				velocidad = (velScroll == 63 && pulsado == 1) ? velScroll / 3 : velScroll;
				if(scrollUp) {
					scrollArriba(velocidad);
				}
				else {
					scrollAbajo(velocidad);
				}
			}
		}
	}

			// Comprueba si deben aparecer los dos dardos, sólo uno o ninguno en la lista de localidades.

	dartLftUp = document.getElementById("scrLftUp");
	dartLftDw = document.getElementById("scrLftDw");
	dartRgtUp = document.getElementById("scrRgtUp");
	dartRgtDw = document.getElementById("scrRgtDw");

	campo = document.getElementById("menuDesplegable");
	altoContenedor = 0;
	if(campo) {
		altoContenedor = parseInt(campo.style.height, 10);
	}
	campo = document.getElementById("menuDesplegable1");
	if(dartLftUp && dartLftDw) {
		dartLftUp.style.visibility = "hidden";
		dartLftDw.style.visibility = "hidden";
		if(altoDocumento && campo) {
			pv = -parseInt(campo.style.top, 10);
			if(pv > 0) {
				dartLftUp.style.visibility = "visible";
			}
			if(pv < (altoDocumento - altoContenedor)) {
				dartLftDw.style.visibility = "visible";
			}
		}
	}

			// Comprueba si deben aparecer los dos dardos, sólo uno o ninguno en la lista de clasificaciones.


	campo = document.getElementById("listaClasificacion");
	altoContenedor = altoContenido = 0;
	if(campo) {
		altoContenedor = campo.offsetHeight;
	}
	campo = document.getElementById("tablaLista");
	if(campo) {
		altoContenido = campo.offsetHeight - 1;
		pv = -parseInt(campo.style.top, 10);
	}
	if(dartRgtUp && dartRgtDw) {
		dartRgtUp.style.visibility = "hidden";
		dartRgtDw.style.visibility = "hidden";
		if(altoContenido && altoContenedor) {
			if(pv > 0) {
				dartRgtUp.style.visibility = "visible";
			}
			if(pv < (altoContenido - altoContenedor)) {
				dartRgtDw.style.visibility = "visible";
			}
		}
	}

			// Comprueba si deben aparecer las flechas de primer y último.
	objActivo = document.getElementById("primerJugadorActivo");
	objInactivo = document.getElementById("primerJugadorInactivo");
	if(dartRgtUp && objActivo && objInactivo) {
		if(dartRgtUp.style.visibility == "visible") {
			objActivo.style.visibility = "visible";
			objInactivo.style.visibility = "hidden";
		}
		else {
			objActivo.style.visibility = "hidden";
			objInactivo.style.visibility = "visible";
		}
	}
	objActivo = document.getElementById("ultimoJugadorActivo");
	objInactivo = document.getElementById("ultimoJugadorInactivo");
	if(dartRgtDw && objActivo && objInactivo) {
		if(dartRgtDw.style.visibility == "visible") {
			objActivo.style.visibility = "visible";
			objInactivo.style.visibility = "hidden";
		}
		else {
			objActivo.style.visibility = "hidden";
			objInactivo.style.visibility = "visible";
		}
	}

			// Comprueba si deben aparecer las flechas izquierda y derecha.
	objActivo = document.getElementById("flechaIzqActiva");
	objInactivo = document.getElementById("flechaIzqInactiva");
	if(dartRgtUp && objActivo && objInactivo) {
		if(dartRgtUp.style.visibility == "visible") {
			objActivo.style.visibility = "visible";
			objInactivo.style.visibility = "hidden";
		}
		else {
			objActivo.style.visibility = "hidden";
			objInactivo.style.visibility = "visible";
		}
	}
	objActivo = document.getElementById("flechaDerActiva");
	objInactivo = document.getElementById("flechaDerInactiva");
	if(dartRgtDw && objActivo && objInactivo) {
		if(dartRgtDw.style.visibility == "visible") {
			objActivo.style.visibility = "visible";
			objInactivo.style.visibility = "hidden";
		}
		else {
			objActivo.style.visibility = "hidden";
			objInactivo.style.visibility = "visible";
		}
	}

			// Comprueba si deben aparecer los dardos de las fotos.

	dartFotoUp = document.getElementById("scrFotoUp");
	dartFotoDw = document.getElementById("scrFotoDw");
	if(dartFotoUp && dartFotoDw) {
		numF = document.forms["formulario"].elements["nFotos"].value;
		objF = document.getElementById("listaFotos2");
		dartFotoUp.style.visibility = "hidden";
		dartFotoDw.style.visibility = "hidden";
		if(objF) {
			fSuperior = -parseInt(objF.style.top, 10) / 120;
			if(numF > 3) {
				if(fSuperior) {
					dartFotoUp.style.visibility = "visible";
				}
				if(fSuperior < numF - 3) {
					dartFotoDw.style.visibility = "visible";
				}
			}
		}
	}

	parpadeoFlechas();

	if(pulsado) {
		pulsado++;
	}
	setTimeout("gestionaScroll()", 100);
}


function subeConstante(objeto, esMenuDesplegable, nPixels) {
	py = mouseY - parseInt(objeto.style.top, 10);
	pct = py / objeto.height;
	if(pct < 0.0) {
		pct = 0.0;
	}
	else if(pct > 1.0) {
		pct = 1.0;
	}
	pct = 1.0 - pct;
	pct = 0.5;
	if(esMenuDesplegable) {
		scrollMenuDesplegable = true;
		velScroll = Math.floor(20 * pct);
	}
	else {
		scrollMenuDesplegable = false;
		velScroll = Math.floor(6 * pct) * 21;	// 11
	}
	if(nPixels) {
		velScroll = nPixels;
	}
	scrollUp = true;
}


function paraSubidaConstante(objeto, esMenuDesplegable) {
	velScroll = 0;
	pulsado = 0;
}

function bajaConstante(objeto, esMenuDesplegable, nPixels) {
	py = mouseY - parseInt(objeto.style.top, 10);
	pct = py / objeto.height;
	if(pct < 0.0) {
		pct = 0.0;
	}
	else if(pct > 1.0) {
		pct = 1.0;
	}
	pct = 0.5;
	if(esMenuDesplegable) {
		scrollMenuDesplegable = true;
		velScroll = Math.floor(20 * pct);
	}
	else {
		scrollMenuDesplegable = false;
		velScroll = Math.floor(6 * pct) * 21;	// 11
	}
	if(nPixels) {
		velScroll = nPixels;
	}
	scrollUp = false;
}

function paraBajadaConstante(objeto, esMenuDesplegable) {
	velScroll = 0;
	pulsado = 0;
}

function botonPulsado() {
	pulsado = 1;
}


///////////////////////////////////////////

// Pinta el rótulo "Ver partidas" si el ratón se mueve sobre la zona de la lista de clasificación.

function pintaVerPartidas() {
	eMovil = document.getElementById("enlaceMovil");
	contenedor = document.getElementById("listaClasificacion");
	contenido = document.getElementById("tablaLista");
	pYInicial = parseInt(contenedor.style.top, 10) - 2;

	eMovil.style.visibility = "hidden";

	if(!contenido) {
		return;
	}

	if(mouseX >= 210 && mouseX <= 720) {
		temp = mouseY - parseInt(contenedor.style.top, 10);
		if(temp >= 0 && temp < 11 * 21 && temp < contenido.offsetHeight - 1) {
			temp = (Math.floor(temp / 21)) * 21 + pYInicial;
			eMovil.style.top = temp;
			eMovil.style.visibility = "visible";
		}
	}
	setTimeout("pintaVerPartidas()", 100);
}


// Salta desde enlace móvil.

function saltaDesdeEnlaceMovil() {
	contenedor = document.getElementById("listaClasificacion");
	eMovil = document.getElementById("enlaceMovil");
	contenido = document.getElementById("tablaLista");
	pYInicial = parseInt(contenedor.style.top, 10) - 2;

	if(!contenido) {
		return;
	}
	nObjeto = Math.floor((parseInt(eMovil.style.top, 10) - pYInicial) / 21) + Math.floor(-parseInt(contenido.style.top, 10) / 21);
	idObjeto = "lc" + nObjeto + "I";
	objeto = document.getElementById(idObjeto);
	if(objeto) {			// Se trata del jugador activo.
		saltaAPartidasInvividuales();
		return;
	}
	idObjeto = "lc" + nObjeto;
	objeto = document.getElementById(idObjeto);
	if(objeto) {			// Se trata de otro participante.
		saltaAPartidas(objeto.name);
	}
}


// Salta desde enlace móvil en liga.

function saltaDesdeEnlaceMovilEnLiga() {
	contenedor = document.getElementById("listaClasificacion");
	eMovil = document.getElementById("enlaceMovil");
	contenido = document.getElementById("tablaLista");
	pYInicial = parseInt(contenedor.style.top, 10) - 2;

	if(!contenido) {
		return;
	}
	nObjeto = Math.floor((parseInt(eMovil.style.top, 10) - pYInicial) / 21) + Math.floor(-parseInt(contenido.style.top, 10) / 21);
	idObjeto = "lc" + nObjeto;
	objeto = document.getElementById(idObjeto);
	if(objeto) {
		saltaADatosEncuentro(objeto.name);
	}
}


///////////////////////////////////////////


// Salta a mostrar las diez mejores partidas del jugador indicado.

function saltaAPartidas(dato) {
	params = new Array;
	params = dato.split("|");
	if(params.length != 3) {
		return;
	}
	
	if(params[0].charAt(params[0].length - 2) == 'C' && params[0].charAt(params[0].length - 1) == 'T') {
		if(document.forms["formulario"].elements["idequipo"]) {
			document.forms["formulario"].elements["idequipo"].value = params[0].substring(0, params[0].length - 2);
			document.forms["formulario"].action = (params[2] == '1') ? "clasifglobal.php" : "clasif.php";
			if(params[2] == '2') {
				document.forms["formulario"].action = "clasifglobalMejorClub.php"
			}
			document.forms["formulario"].submit();
		}
		return;
	}
	
	document.forms["formulario"].elements["dni2"].value = params[0];
	document.forms["formulario"].elements["alias2"].value = params[1];
	document.forms["formulario"].action = (params[2] == '1') ? "partidasglobal.php" : "partidas.php";
	if(params[2] == '2') {
		document.forms["formulario"].action = "partidasglobalMejorClub.php"
	}
	document.forms["formulario"].submit();
}


///////////////////////////////////////////

// Activa/desactiva la opción de recibir información en la ficha del jugador.

function procesaInfoFicha() {
	objeto = document.getElementById("aceptarInfo");
	if(objeto) {
		if(objeto.style.visibility == "visible") {
			objeto.style.visibility = "hidden";
			document.forms["formulario"].elements["info"].value = "NO";
		}
		else {
			objeto.style.visibility = "visible";
			document.forms["formulario"].elements["info"].value = "SI";
		}
	}
}


///////////////////////////////////////////

// Salta a la noticia indicada.

function saltaANoticia(objeto) {
	if(objeto.name == "") {
		return;
	}
	document.forms["formulario"].elements["idNoticia"].value = objeto.name;
	document.forms["formulario"].action = "noticias.php";
	document.forms["formulario"].submit();
}

// Salta a bloque de noticias anterior (dato == -1) o a bloque de noticias siguiente (dato == 1).

function saltaANoticiaPorOrden(noticiaActual, dato) {
	if(dato == -1) {
		noticiaActual--;
//		noticiaActual -= 3;
		if(noticiaActual < 0) {
			noticiaActual = 0;
		}
	}
	else {
		noticiaActual++;
//		noticiaActual += 3;
	}
	document.forms["formulario"].elements["primeraNoticia"].value = noticiaActual + 1;
	document.forms["formulario"].action = "inicio.php";
	document.forms["formulario"].submit();
}

// Cambia el tamaño de la fotografía central.

function cambiaTamanyoFoto() {	
	enlaceCam = document.getElementById("enlaceCamara");
	fondo = document.getElementById("tapaNegra");
	objeto = document.getElementById("fotoGrande");
	if(!objeto) {
		return;
	}

	anchoActual = parseInt(objeto.style.width, 10);
	altoActual = parseInt(objeto.style.height, 10);
	if(anchoActual < 400 && altoActual < 300) {
		if(enlaceCam) {
			enlaceCam.style.visibility = "hidden";
		}
		tamanyoFinalFotoJS(anchoActual, altoActual, 600, 440);
		objeto.style.width = anchoFoto;
		objeto.style.height = altoFoto;
		objeto.style.top = "163px";
		objeto.style.left = 203 + (600 - anchoFoto) / 2;
		if(fondo) {
			fondo.style.visibility = "visible";
		}
	}
	else {
		if(enlaceCam) {
			enlaceCam.style.visibility = "visible";
		}
		tamanyoFinalFotoJS(anchoActual, altoActual, 320, 240);
		objeto.style.width = anchoFoto;
		objeto.style.height = altoFoto;
		objeto.style.top = "250px";
		objeto.style.left = 232 + (320 - anchoFoto) / 2;
		if(fondo) {
			fondo.style.visibility = "hidden";
		}
	}
}


// Pinta la foto del tamanyo adecuado.

function pintaFotoDelTamanyoAdecuado(intercambiaTamanyos) {	
	enlaceCam = document.getElementById("enlaceCamara");
	if(intercambiaTamanyos) {
		verFotoGrande = !verFotoGrande;
	}
	foto = document.getElementById("fotoGrande");
	fondoNegro = document.getElementById("tapaNegra");
	if(!foto) {
		return;
	}
	if(fondoNegro) {
		fondoNegro.style.visibility = (verFotoGrande) ? "visible" : "hidden";
	}
	if(verFotoGrande) {
		if(enlaceCam) {
			enlaceCam.style.visibility = "hidden";
		}
		tamanyoFinalFotoJS(parseInt(foto.style.width, 10), parseInt(foto.style.height, 10), 600, 440);
		foto.style.width = anchoFoto;
		foto.style.height = altoFoto;
		foto.style.left = 203 + (600 - anchoFoto) / 2;
		foto.style.top =  163 + (440 - altoFoto) / 2;
		
		if(document.getElementById("videogrande")) {
			document.getElementById("videogrande").style.visibility = "hidden";
		}
		if(document.getElementById("videopequeno")) {
			document.getElementById("videopequeno").style.visibility = "hidden";
		}
		
	}
	else {
		if(enlaceCam) {
			enlaceCam.style.visibility = "visible";
		}
		tamanyoFinalFotoJS(parseInt(foto.style.width, 10), parseInt(foto.style.height, 10), 320, 240);
		foto.style.width = anchoFoto;
		foto.style.height = altoFoto;
		foto.style.left = 232 + (320 - anchoFoto) / 2;
		foto.style.top =  250 + (240 - altoFoto) / 2;
		
		if(document.getElementById("videogrande")) {
			document.getElementById("videogrande").style.visibility = "hidden";
		}
		if(document.getElementById("videopequeno")) {
			document.getElementById("videopequeno").style.visibility = "visible";
		}

	}
}


// Cambia la fotografía mostrada en el centro de la ventana.

function cambiaFoto(objeto, nFoto, ancho, alto) {
	temp = new Array;
	temp = pieDeFoto[nFoto - 1].split("/");
	
	foto = document.getElementById("fotoGrande");
	if(foto) {
		if(temp[1] == "jpg" || temp[1] == "gif") {
			foto.src = "Fotografias/"+ objeto.name + "_" + nFoto + "_b." + temp[1];
			foto.style.visibility = "visible";


			tamanyoFinalFotoJS(ancho, alto, 320, 240);
			foto.style.width = anchoFoto;
			foto.style.height = altoFoto;
			foto.style.left = 232 + (320 - anchoFoto) / 2;
			foto.style.top = (altoFoto < 240) ? 250 + ((240 - altoFoto) / 2) : 250;
			pintaFotoDelTamanyoAdecuado(false);

/*
			anchoActual = parseInt(foto.style.width);
			altoActual = parseInt(foto.style.height);
			if(anchoActual < 400 && altoActual < 300) {
				tamanyoFinalFotoJS(ancho, alto, 600, 440);
			}
			else {
				tamanyoFinalFotoJS(ancho, alto, 320, 240);
			}
			foto.style.width = anchoFoto;
			foto.style.height = altoFoto;
//			foto.style.left = 232 + (320 - anchoFoto) / 2;
			cambiaTamanyoFoto();
*/
		}
		else {
			foto.style.visibility = "hidden";
		}
	}
	cnt = 1;
	while(true) {
		pieDePagina = document.getElementById("pie" + cnt);
		if(!pieDePagina) {
			break;
		}
		pieDePagina.style.visibility = (cnt == nFoto) ? "visible" : "hidden";
		cnt++;
	}
}


// Averigua el tamaño final que debe tener la fotografía de ancho y alto indicados para encajar en la caja máxima también
// indicada manteniendo la proporción, dejando el resultado en anchoFoto y altoFoto.

function tamanyoFinalFotoJS(ancho, alto, anchoMaximo, altoMaximo) {
	anchoFoto = altoFoto = 0;
	temp = anchoMaximo / ancho;
	altoTemp = alto * temp;
	if(altoTemp <= altoMaximo) {
		anchoFoto = anchoMaximo;
		altoFoto = altoTemp;
	}
	else {
		temp = altoMaximo / alto;
		anchoTemp = ancho * temp;
		if(anchoTemp <= anchoMaximo) {
			anchoFoto = anchoTemp;
			altoFoto = altoMaximo;
		}
	}
}


// Refresca el contador de foto actual y número total de fotos de la parte superior de la ventana.

function refrescaContadorFotos(nFotoActual) {
	nft = document.forms["formulario"].elements["nFotos"].value;
	objeto = document.getElementById("datosFotos");

	if(!nft) {
		objeto.value = "";
		return;
	}

	if(nFotoActual > nft) {
		nFotoActual = nft;
	}
	objeto.value = nFotoActual + "/" + nft;
}


function fotoUp() {
	nft = document.forms["formulario"].elements["nFotos"].value;
	obj = document.getElementById("listaFotos2");
	if(!obj) {
		return;
	}
	pActual = -parseInt(obj.style.top, 10) / 120;
	if(pActual) {
		pActual--
	}
	refrescaContadorFotos(pActual + 1);
	obj.style.top = (-pActual * 120) + "px";
}


function fotoDown() {
	nft = document.forms["formulario"].elements["nFotos"].value;
	obj = document.getElementById("listaFotos2");
	if(!obj) {
		return;
	}
	pActual = -parseInt(obj.style.top, 10) / 120;
	if(pActual < nft - 3) {
		pActual++
	}
	refrescaContadorFotos(pActual + 1);
	obj.style.top = (-pActual * 120) + "px";
}


// Confirma el borrado de una noticia.

function confirmaBorrado(noticia) {
//	if(confirm("¿Borrar la noticia " + noticia + "?")) {
	if(confirm(rotuloBorraNoticia + noticia + "?")) {
		document.forms["formBorraNoticia"].submit();
	}
}



// Video

function ponVideoPequeno() {
	if(document.getElementById("videopequeno")) {
		document.getElementById("videopequeno").style.visibility = "visible";
		if(document.getElementById("videogrande")) {
			document.getElementById("videogrande").style.visibility = "hidden";
		}
	}
}



function ponVideoGrande() {
	if(document.getElementById("videogrande")) {
		document.getElementById("videogrande").style.visibility = "visible";
		if(document.getElementById("videopequeno")) {
			document.getElementById("videopequeno").style.visibility = "hidden";
		}
	}
}



// Últimas noticias.

var estadoUltimasNoticias = 0;

function ultimasNoticiasArriba(pulsado, deFuera) {
	up = document.getElementById("newsUp");
	dw = document.getElementById("newsDw");
	padre = document.getElementById("ultimas_noticias");
	obj = document.getElementById("last_news");
	if(!padre || !obj || !up || !dw) {
		return;
	}	
	minTop = padre.offsetHeight - obj.offsetHeight;
	yObj = parseInt(obj.style.top);
	if(minTop >= 0) {
		obj.style.top = "0px";
		return;
	}
	if(!pulsado && deFuera) {
		estadoUltimasNoticias = 0;
	}
	else if(pulsado || estadoUltimasNoticias == 1) {
		estadoUltimasNoticias = 1;
		yObj += 10;
		if(yObj >= 0) {
			yObj = 0;
			up.style.visibility = "hidden";
			dw.style.visibility = "visible";
		}
		else {
			up.style.visibility = "visible";
			dw.style.visibility = "visible";
			setTimeout("ultimasNoticiasArriba(false, false)", 100);
		}
		obj.style.top = yObj + "px";
	}
}

function ultimasNoticiasAbajo(pulsado, deFuera) {
	up = document.getElementById("newsUp");
	dw = document.getElementById("newsDw");
	padre = document.getElementById("ultimas_noticias");
	obj = document.getElementById("last_news");
	if(!padre || !obj || !up || !dw) {
		return;
	}	
	minTop = padre.offsetHeight - obj.offsetHeight;
	yObj = parseInt(obj.style.top);
	if(minTop >= 0) {
		obj.style.top = "0px";
		return;
	}
	if(!pulsado && deFuera) {
		estadoUltimasNoticias = 0;
	}
	else if(pulsado || estadoUltimasNoticias == 2) {
		estadoUltimasNoticias = 2;
		yObj -= 10;
		if(yObj <= minTop) {
			yObj = minTop;
			up.style.visibility = "visible";
			dw.style.visibility = "hidden";
		}
		else {
			up.style.visibility = "visible";
			dw.style.visibility = "visible";
			setTimeout("ultimasNoticiasAbajo(false, false)", 100);
		}
		obj.style.top = yObj + "px";		
	}
}





// Pulsación sobre una provincia en el mapa.

function pulsacionEnMapa(provincia, nombre) {
	pais = 0;

	while(true) {
		salida = true;
		valorPais = valorA4Digitos(pais);
		p = document.getElementById(valorPais);
		if(!p) {			// Ya no hay más países.
			return;
		}
		prov = 0;
		hayProvincia = false;
		do {
			valor = valorA4Digitos(prov);
			obj = document.getElementById(valorPais + "," + valor);
			if(obj) {
				hayProvincia = true;
			}
			if(!obj) {
				salida = false;
			}
			else if(obj.name == nombre) {			// Ésta es.
				gestLocPuls(obj);
				sobreProvincia(provincia, nombre);
				return;
			}
			prov++;
		} while(salida);
		if(!hayProvincia && p.name == nombre) {
			gestLocPuls(p);
			sobreProvincia(provincia, nombre);
			return;
		}
		pais++;
	}
}

// Ratón paseándose sobre la provincia indicada.

function sobreProvincia(provincia, nombre) {
	obj = document.getElementById("idCuerpo");
	pMouseX = mouseX;
	pMouseY = mouseY;
	if(obj.style.top == "50%") {			// Adecúa la posición del texto al tamaño de la pantalla.
		pMouseX -= ((document.body.clientWidth - 1024) / 2);
		pMouseY -= ((document.body.clientHeight - 672) / 2);
	}

	objMapa = document.getElementById("mapaDeTurno");
	anchoMapa = 0;
	if(objMapa) {
		anchoMapa = objMapa.width;
	}

	objDiv = document.getElementById("nombreProvincia");
	objDiv.style.top = pMouseY - 30;
	posX = pMouseX + 5;
	if(anchoMapa && posX > 200 + anchoMapa) {
		posX = 200 + anchoMapa;
	}
	objDiv.style.left = posX;
//	salDeProvincia();
	idProv = "pr" + provincia;
	objeto = document.getElementById(idProv);
	if(!objeto) {
		return;
	}
	nameProvincia = nombre;
	codeProvincia = provincia;
	objeto.align = "LEFT";
	objeto.style.color = getColorProvincia(nombre);
	objeto.style.visibility = "visible";

	if(posX > (200 + anchoMapa / 2)) {
		objeto.align = "RIGHT";
		posX = parseInt(objDiv.style.left, 10);
		posX -= 215;
		objDiv.style.left = posX;
	}

}

// Ratón saliendo de una provincia.

function salDeProvincia() {
	nameProvincia = "";
	codeProvincia = 0;
	cnt = 0;

	for(cnt = 0; cnt < 900; cnt++) {
		idProv = "pr" + cnt;
		objeto = document.getElementById(idProv);
		if(objeto) {
			objeto.style.visibility = "hidden";
		}
	}
	return;

/*
	while(true) {
		idProv = "pr" + cnt;

		alert(idProv);

		objeto = document.getElementById(idProv);
		if(!objeto) {
			return;
		}
		objeto.style.visibility = "hidden";
		cnt++;
	}
*/
}

// Devuelve el color con el que ha de imprimirse el nombre de la provincia indicada.

function getColorProvincia(nombre) {
	color = "#0000b0";	// "#bfbfbf";
	pais = 0;

	while(true) {
		salida = true;
		valorPais = valorA4Digitos(pais);
		p = document.getElementById(valorPais);
		if(!p) {
			return color;			// Ya no hay más países.
		}
		prov = 0;
		hayProvincia = false;
		do {
			valor = valorA4Digitos(prov);
			obj = document.getElementById(valorPais + "," + valor);
			if(obj){
				hayProvincia = true;
			}
			if(!obj) {
				salida = false;
			}
			else if(obj.name == nombre) {			// Ésta es.
				color = (obj.style.color == "white") ? "black" : obj.style.color;
				return color;
			}
			prov++;
		} while(salida);
		if(!hayProvincia && p.name == nombre) {
			color = (p.style.color == "white") ? "black" : p.style.color;
			return color;
		}
		pais++;
	}
}


//////////////////////////////////////


// Abre la ventana de causa de partida invalidada.

function abreVentanita(nVentana) {
	cierraVentanita();
	document.getElementById("ventanita").style.visibility = "visible";
	nombre = "inv" + nVentana;
	objeto = document.getElementById(nombre);
	if(objeto) {
		objeto.style.visibility = "visible";
	}
}

// Cierra la ventana de causa de partida invalidada.

function cierraVentanita() {
	cnt = 0;
	document.getElementById("ventanita").style.visibility = "hidden";
 	while(true) {
	 	nombre = "inv" + cnt;
	 	objeto = document.getElementById(nombre);
	 	if(!objeto) {
		 	break;
	 	}
	 	objeto.style.visibility = "hidden";
	 	cnt++;
 	}
}

////////////////////////////////////////

// Desplaza la tabla de resultados de partidas en ligas cuando hay más de trece juegos.

function scrollTablaPartidasDer(nPartidas) {
	objeto = document.getElementById("tablaLista");
	objIzq = document.getElementById("scrIzq");
	objDer = document.getElementById("scrDer");
	if(!objeto) {
		return;
	}
	posX = -parseInt(objeto.style.left, 10);
	nPartidaActual = Math.floor(posX / 27);
	if(nPartidaActual < nPartidas - 13) {
		posX += 27;
		nPartidaActual++;
	}
	objeto.style.left = -posX + "px";

	if(objIzq) {
		objIzq.src = (posX) ? "Imagenes/Flecha2_Izq.gif" : "Imagenes/Flecha2_Izq_G.gif";
	}
	if(objDer) {
		objDer.src = (nPartidas > 13 && nPartidaActual < nPartidas - 13) ? "Imagenes/Flecha2_Der.gif" : "Imagenes/Flecha2_Der_G.gif";
	}
}

function scrollTablaPartidasIzq(nPartidas) {
	objeto = document.getElementById("tablaLista");
	objIzq = document.getElementById("scrIzq");
	objDer = document.getElementById("scrDer");
	if(!objeto) {
		return;
	}
	posX = -parseInt(objeto.style.left, 10);
	nPartidaActual = Math.floor(posX / 27);
	if(posX) {
		posX -= 27;
		nPartidaActual--;
		if(posX < 0) {
			posX = 0;
		}
	}
	objeto.style.left = -posX + "px";

	if(objIzq) {
		objIzq.src = (posX) ? "Imagenes/Flecha2_Izq.gif" : "Imagenes/Flecha2_Izq_G.gif";
	}
	if(objDer) {
		objDer.src = (nPartidas > 13 && nPartidaActual < nPartidas - 13) ? "Imagenes/Flecha2_Der.gif" : "Imagenes/Flecha2_Der_G.gif";
	}
}


/////////////////////////////////////////////

// TORNEOS

// Maneja las flechas de scroll del diagrama del torneo.
// objeto: Puntero a la flecha.
// estado: 
//		0: RollOver.
//		1: RollOut.
//      2: MouseDown.
//      3: MouseUp.
// direccion;
//		0: Arriba.
//      1: Abajo.
//      2: Izquierda.
//      3: Derecha.


var oHiddenFrame = null;

function generaIFrame(inicio, partidaEnDirecto) {
	
	if(oHiddenFrame == null) {
		oHiddenFrame = document.createElement("iframe");
		oHiddenFrame.name = "hiddenFrame";
		oHiddenFrame.id = "hiddenFrame";
		oHiddenFrame.style.height = "0px";
		oHiddenFrame.style.width = "0px";
		oHiddenFrame.style.position = "absolute";
		oHiddenFrame.style.visibility = "hidden";
		document.body.appendChild(oHiddenFrame);
	}
	if(partidaEnDirecto) {
		setTimeout("generaIFrame(false, true)", 2000);
	}
	else {
		setTimeout("generaIFrame(false, false)", 5000);
	}
	if(inicio) {
		return;
	}
	if(partidaEnDirecto) {
		setTimeout(function() {
			ref = "hiddenPartidas.php?compid=" + document.forms["formulario"].elements["campeonatoActivo"].value + "&cellid=" + document.forms["formulario"].elements["jornada"].value;
			frames["hiddenFrame"].location.href = ref;
		}, 10);
	}
	else {
		setTimeout(function() {
			ref = "hiddenframe.php?compid=" + document.forms["formulario"].elements["campeonatoActivo"].value;
			frames["hiddenFrame"].location.href = ref;
		}, 10);
	}
}


// Refresca el diagrama del torneo.
// Estructura de la información proveniente del servidor.
// -8 primeros caracteres conteniendo la palabra "DIAGRAMA".
// -Cinco dígitos: Identificador de la celda.
// -Un dígito: Estado de la partida (terminada, en juego, descalificada, anulada, ...).
//					CLOSED 0
//					TIMEOUT 1
//					NULL 2
//					PASS 3
//					OPEN 4
//					PEND 5
//					PLAYING 6
//					DISABLED 7
//					NOPLAY 8
//					RDEF 9
//					WAIT A
// -Un digito: Número de sets.
// -Un dígito: A "1" si se trata de un torneo "con repesca".
// -Seis dígitos: Estado de los marcadores de sets de cada uno de los jugadores de la celda (para colocar el gráfico correspondiente):
//					Tres dígitos para cada jugador. ("ndf" No definido... invisible).
// -"T" o "F": Partida en disputa (puede seguirse el desarrollo por Internet) o no.
// -20 caracteres: Fecha en la que se disputa la partida (el último indica si se trata de una fecha provisional).
// -Dos dígitos: Identificador del primer jugador/equipo (-1: Todavía no definido  -2: Ausente).
// -Dos dígitos: Identificador del segundo jugador/equipo (-1: Todavía no definido  -2: Ausente).
// -Un dígito: A "1" si la primera máquina está esperando para jugar partida on-line en este momento (a "0" en caso contrario).
// -Dos dígitos: Número de caracteres que forman el nombre del local de la primera máquina donde se disputa la partida.
// -n caracteres: Nombre de la primera máquina donde se disputa la partida.
// -Un dígito: A "1" si la segunda máquina está esperando para jugar partida on-line en este momento (a "0" en caso contrario).
// -Dos dígitos: Número de caracteres que forman el nombre del local de la segunda máquina donde se disputa la partida.
// -n caracteres: Nombre de la segunda máquina donde se disputa la partida.
// - "%": Separador.

// Identificadores de los objetos en HTML:
// -Fecha:		"fec" + identificador celda.
// -Cámara:		"cam" + identificador celda.
// -Celda:			"cel" + identificador celda.
// -Estado jugador 0	"cel1" + identificador celda.
// -Estado jugador 1	"cel2" + identificador celda.
// -Color celda "celcol" + identificador celda.
// -Barra azul superior "azulup" + identificador celda.
// -Barra azul inferior "azuldw" + identificador celda.
// -jugador 0:	"pl0" + identificador celda.
// -jugador 1:	"pl1" + identificador celda.
// -Maquina 0: "mq0" + identificador celda.
// -Maquina 1: "mq1" + identificador celda.
// -Estado partida (X, D ó F): "est" + identificador celda.

var CCMAQ_BG_NULL = "cnl3";
var CCMAQ_BG_PASS = "cps";
var CCMAQ_BG_PEND = "cpn";
var CCMAQ_BG_OPEN = "cop";
var CCMAQ_BG_PLAYING = "cpl";
var CCMAQ_BG_CLOSED = "ccl";
var CCMAQ_BG_NOPLAY = "cnp3";
var CCMAQ_BG_RDEF = "crd";

var ultimoResult = "";
	
function handleResponse(result) {		
	if(result == "") {
		return;
	}
	if(result == ultimoResult) {
		return;
	}
	
	ultimoResult = result;
			
	if(result.substring(0, 7) == "PARTIDA") {
		result = result.substring(7, result.length);
		return recuperaPartida(result);
	}
	if(result.substring(0, 8) != "DIAGRAMA") {
		return;
	}
			
	posibleGanador = -1;
	posibleSegundo = -1;
	result = result.substring(8, result.length);
	celda = result.split("%");
	for(cnt = 0; cnt < celda.length - 1; cnt++) {
		local1 = "";
		local2 = "";
		idCelda = parseInt(celda[cnt].substring(0, 5), 10);
		celda[cnt] = celda[cnt].substring(5, celda[cnt].length);
		estadoPartida = parseInt(celda[cnt].charAt(0), 16);
		celda[cnt] = celda[cnt].substring(1, celda[cnt].length);
		nSets = parseInt(celda[cnt].charAt(0), 10);
		celda[cnt] = celda[cnt].substring(1, celda[cnt].length);
		esRepesca = parseInt(celda[cnt].charAt(0), 10);
		celda[cnt] = celda[cnt].substring(1, celda[cnt].length);
		estadoPly0 = celda[cnt].substring(0, 3);
		celda[cnt] = celda[cnt].substring(3, celda[cnt].length);		
		estadoPly1 = celda[cnt].substring(0, 3);
		celda[cnt] = celda[cnt].substring(3, celda[cnt].length);
		visible = celda[cnt].charAt(0);
		celda[cnt] = celda[cnt].substring(1, celda[cnt].length);
		fechaPartida = celda[cnt].substring(0, 20);
		celda[cnt] = celda[cnt].substring(20, celda[cnt].length);
		pl0 = parseInt(celda[cnt].substring(0, 2), 10);
		celda[cnt] = celda[cnt].substring(2, celda[cnt].length);
		pl1 = parseInt(celda[cnt].substring(0, 2), 10);
		celda[cnt] = celda[cnt].substring(2, celda[cnt].length);
		maquina1Espera = parseInt(celda[cnt].charAt(0), 10);
		celda[cnt] = celda[cnt].substring(1, celda[cnt].length);
		tmp = parseInt(celda[cnt].substring(0, 2), 10);
		celda[cnt] = celda[cnt].substring(2, celda[cnt].length);		
		if(tmp) {
			local1 = celda[cnt].substring(0, tmp);
			celda[cnt] = celda[cnt].substring(tmp, celda[cnt].length);		
		}
		maquina2Espera = parseInt(celda[cnt].charAt(0), 10);
		celda[cnt] = celda[cnt].substring(1, celda[cnt].length);
		tmp = parseInt(celda[cnt].substring(0, 2), 10);
		celda[cnt] = celda[cnt].substring(2, celda[cnt].length);		
		if(tmp) {
			local2 = celda[cnt].substring(0, tmp);
		}

		if(estadoPartida == 7) {
			continue;
		}
			
		textoCelda = "";
		colorCelda = CCMAQ_BG_NULL;
		celdaCompleta = false;
		switch(estadoPartida) {
		case 0:
			textoCelda = "F";
			colorCelda = CCMAQ_BG_CLOSED;
			break;
		case 1:
			textoCelda = "D";
			colorCelda = CCMAQ_BG_CLOSED;
			break;
		case 2:
			celdaCompleta = true;
			textoCelda = "NULL";
			colorCelda = CCMAQ_BG_NULL;
			break;
		case 3:
			textoCelda = "PASS";
			colorCelda = CCMAQ_BG_PASS;
			break;
		case 4:
			colorCelda = CCMAQ_BG_OPEN;
			break;
		case 5:
			colorCelda = CCMAQ_BG_PEND;
			break;
		case 6:
		case 10:
			colorCelda = CCMAQ_BG_PLAYING;
			break;
		case 8:
			celdaCompleta = true;
			textoCelda = "NP";
			colorCelda = CCMAQ_BG_NOPLAY;
			break;
		case 9:
			textoCelda = "RPD";
			colorCelda = CCMAQ_BG_RDEF;
		}
						
		if((!idCelda && !esRepesca) || idCelda == 32769 || (idCelda == 32768 && posibleGanador == -1 && posibleSegundo == -1)) {			// Se trata de la celda de final.
			if(estadoPartida < 2) {				// Ya hay un resultado en esta celda.
			
				setsPly0 = setsPly1 = 0;
				switch(estadoPly0) {		// Averigua los sets ganados por el jugador 0 en esta celda.
				case "v11":
				case "u11":
					setsPly0++;
					break;
				case "ndf":
					break;
				default:
					st = parseInt(estadoPly0, 10) % 100; 
					for(n0 = 0; n0 < 5; n0++) {
						setsPly0 += (st & 1);
						st >>= 1;
					}
				}
				switch(estadoPly1) {		// Averigua los sets ganados por el jugador 1 en esta celda.
				case "v11":
				case "u11":
					setsPly1++;
					break;
				case "ndf":
					break;
				default:
					st = parseInt(estadoPly1, 10) % 100;
					for(n0 = 0; n0 < 5; n0++) {
						setsPly1 += (st & 1);
						st >>= 1;
					}
				}
				
				if(pl0 >= 0 && pl0 < nEquipos) {
					if(setsPly0 > setsPly1) {
						posibleGanador = pl0;
					}
					else {
						posibleSegundo = pl0;
					}
				}
				if(pl1 >= 0 && pl1 < nEquipos) {
					if(setsPly1 > setsPly0) {
						posibleGanador = pl1;
					}
					else {
						posibleSegundo = pl1;
					}
				}
			}
			else {										// Todavía no hay resultado en esta celda.
				posibleGanador = posibleSegundo = -2;
			}			
		}
		
		if(idCelda == 32769) {					// Se trata de la celda adicional.
			if(document.getElementById("celdaAdicional")) {
				document.getElementById("celdaAdicional").style.visibility = "visible";
			}			
		}
		if(document.getElementById("celcol" + idCelda)) {					// Cambia el color de la celda.
			document.getElementById("celcol" + idCelda).src = "Imagenes/" + colorCelda + ".GIF";			
		}
		
		if(document.getElementById("fec" + idCelda)) {						// Cambia la fecha de la celda.
			if(pl0 < 0 && pl1 < 0) {						// Ambos jugadores sin definir.
				document.getElementById("fec" + idCelda).style.visibility = "hidden";
			}
			else if(fechaPartida.substring(0, 4) == "    " /* || estadoPartida ==  10 */ ) {
				document.getElementById("fec" + idCelda).firstChild.nodeValue = "-";
				document.getElementById("fec" + idCelda).style.visibility = "hidden";
			}
			else if(fechaPartida.charAt(19) == '1') {				// Las fechas provisionales no se imprimen.
				document.getElementById("fec" + idCelda).style.visibility = "hidden";
			}
			else {
				document.getElementById("fec" + idCelda).style.color = (fechaPartida.charAt(19) == '1') ? "#0000ff" : "#000000";
				fechaPartida = fechaPartida.substring(0, 19);
				document.getElementById("fec" + idCelda).firstChild.nodeValue = fechaPartida;
				document.getElementById("fec" + idCelda).style.visibility = "visible";
			}
		}
		
		if(document.getElementById("cel" + idCelda)) {						// Cambia el estado de la celda.
			switch(estadoPartida) {
			case 6:
				tl = (nSets > 3) ? "cb5" : "cb3";
				break;
			case 10:
				tl = (nSets > 3) ? "cr5" : "cr3";
				break;
			default:
				tl = (nSets > 3) ? "cg5" : "cg3";
			}
			document.getElementById("cel" + idCelda).src = "Imagenes/" + tl + ".GIF";
		}
		
		if(document.getElementById("cel1" + idCelda)) {						// Cambia el estado de sets del jugador 0.
			document.getElementById("cel1" + idCelda).src = "Imagenes/c" + estadoPly0 + ".GIF";
			document.getElementById("cel1" + idCelda).style.visibility = (estadoPly0 == "ndf") ? "hidden" : "visible";
		}
		
		if(document.getElementById("cel2" + idCelda)) {						// Cambia el estado de sets del jugador 1.
			document.getElementById("cel2" + idCelda).src = "Imagenes/c" + estadoPly1 + ".GIF";
			document.getElementById("cel2" + idCelda).style.visibility = (estadoPly1 == "ndf") ? "hidden" : "visible";
		}
		
		if(document.getElementById("cam" + idCelda)) {					// Cambia el estado de la cámara.
			document.getElementById("cam" + idCelda).style.visibility = (visible == 'T' && estadoPartida == 6) ? "visible" : "hidden";
		}
		if(document.getElementById("pl0" + idCelda) && document.getElementById("pl0" + idCelda).firstChild.nodeValue) {		// Cambia el estado del jugador 0.
			if(pl0 == -1 || pl0 >= nEquipos) {				// Jugador sin definir.
				document.getElementById("pl0" + idCelda).firstChild.nodeValue = "-";
				document.getElementById("pl0" + idCelda).style.visibility = "hidden";
			}
			else if(pl0 == -2) {										// Jugador ausente.
				document.getElementById("pl0" + idCelda).style.visibility = "visible";
				document.getElementById("pl0" + idCelda).firstChild.nodeValue = ".ausente";	
			}
			else {
				document.getElementById("pl0" + idCelda).style.visibility = "visible";
				colorJugador = (idEquipoJugadorActivo >= 0 && idEquipoJugadorActivo == pl0) ? "#ff0000" : "#ffffff";
				document.getElementById("pl0" + idCelda).style.color = colorJugador;	
				document.getElementById("pl0" + idCelda).firstChild.nodeValue = jugadorEquipo[pl0];	
			}
		}
		if(document.getElementById("pl1" + idCelda) && document.getElementById("pl1" + idCelda).firstChild.nodeValue) {		// Cambia el estado del jugador 1.
			if(pl1 == -1 || pl1 >= nEquipos) {				// Jugador sin definir.
				document.getElementById("pl1" + idCelda).style.visibility = "hidden";
				document.getElementById("pl1" + idCelda).firstChild.nodeValue = "-";	
			}
			else if(pl1 == -2) {										// Jugador ausente.
				document.getElementById("pl1" + idCelda).style.visibility = "visible";
				document.getElementById("pl1" + idCelda).firstChild.nodeValue = ".ausente";	
			}
			else {
				document.getElementById("pl1" + idCelda).style.visibility = "visible";
				colorJugador = (idEquipoJugadorActivo >= 0 && idEquipoJugadorActivo == pl1) ? "#ff0000" : "#ffffff";
				document.getElementById("pl1" + idCelda).style.color = colorJugador;	
				document.getElementById("pl1" + idCelda).firstChild.nodeValue = jugadorEquipo[pl1];	
			}
		}
				
		if(document.getElementById("mq0" + idCelda) && document.getElementById("mq0" + idCelda).firstChild.nodeValue) {		// Cambia el local de la primera máquina.
			if(local1 == "" || ((estadoPartida < 4 || estadoPartida > 6) && estadoPartida != 10)) {
				document.getElementById("mq0" + idCelda).style.visibility = "hidden";
				document.getElementById("mq0" + idCelda).firstChild.nodeValue = "-";
			}
			else {
				document.getElementById("mq0" + idCelda).style.visibility = "visible";
				document.getElementById("mq0" + idCelda).firstChild.nodeValue = local1;
			}
		}	
		if(document.getElementById("mq1" + idCelda) && document.getElementById("mq1" + idCelda).firstChild.nodeValue) {		// Cambia el local de la segunda máquina.
			if(local2 == "" || ((estadoPartida < 4 || estadoPartida > 6) && estadoPartida != 10)) {
				document.getElementById("mq1" + idCelda).style.visibility = "hidden";
				document.getElementById("mq1" + idCelda).firstChild.nodeValue = "-";
			}
			else {
				document.getElementById("mq1" + idCelda).style.visibility = "visible";
				document.getElementById("mq1" + idCelda).firstChild.nodeValue = local2;
			}
		}
		
		if(document.getElementById("est" + idCelda)) {
			if(textoCelda != "") {
				document.getElementById("est" + idCelda).firstChild.nodeValue = textoCelda;
				document.getElementById("est" + idCelda).style.visibility = "visible";			
			}
			else {
				document.getElementById("est" + idCelda).firstChild.nodeValue = '-';
				document.getElementById("est" + idCelda).style.visibility = "hidden";			
			}	
		}

		if(document.getElementById("azulup" + idCelda)) {
			if(maquina1Espera) {
				document.getElementById("azulup" + idCelda).style.visibility = "visible";
			}
			else {
				document.getElementById("azulup" + idCelda).style.visibility = "hidden";
			}
		}
		if(document.getElementById("azuldw" + idCelda)) {
			if(maquina2Espera) {
				document.getElementById("azuldw" + idCelda).style.visibility = "visible";
			}
			else {
				document.getElementById("azuldw" + idCelda).style.visibility = "hidden";
			}
		}
				
	}
		
	if(posibleGanador >= 0 || posibleSegundo >= 0) {
		if(document.getElementById("fondoGanadores")) {
			document.getElementById("fondoGanadores").style.visibility = "visible";
		}
		if(posibleGanador >= 0 && document.getElementById("primero")) {
			document.getElementById("primero").firstChild.nodeValue = "1. " + jugadorEquipo[posibleGanador];
			document.getElementById("primero").style.visibility = "visible";			
		}
		if(posibleSegundo >= 0 && document.getElementById("segundo")) {
			document.getElementById("segundo").firstChild.nodeValue = "2. " + jugadorEquipo[posibleSegundo];
			document.getElementById("segundo").style.visibility = "visible";
		}
	}
	else {
		if(document.getElementById("fondoGanadores")) {
			document.getElementById("fondoGanadores").style.visibility = "hidden";
		}
		if(document.getElementById("primero")) {
			document.getElementById("primero").style.visibility = "hidden";
		}
		if(document.getElementById("segundo")) {
			document.getElementById("segundo").style.visibility = "hidden";
		}
	}
	
}


var puntuacionDardo = new Array;
var tiempoDardo = 0;
var objetoCambiante = null;
puntuacionDardo[0] = "500";
puntuacionDardo[1] = "500";
puntuacionDardo[2] = "500";

var lastPuntuacionDardo = new Array;
lastPuntuacionDardo[0] = "500";
lastPuntuacionDardo[1] = "500";
lastPuntuacionDardo[2] = "500";

function pintaDiana(inicio) {
	if(inicio) {
		puntuacionDardo[0] = "500";
		puntuacionDardo[1] = "500";
		puntuacionDardo[2] = "500";
		lastPuntuacionDardo[0] = "500";
		lastPuntuacionDardo[1] = "500";
		lastPuntuacionDardo[2] = "500";
		tiempoDardo = 0;
		objetoCambiante = null;
	}
	tiempoDardo++;
	
	if(puntuacionDardo[2] != lastPuntuacionDardo[2] && lastPuntuacionDardo[2] != "500") {
		puntuacionDardo[1] = puntuacionDardo[2] = "500";
		lastPuntuacionDardo[0] = lastPuntuacionDardo[1] = lastPuntuacionDardo[2] = "500";
	}
	
	for(cnt = 0; cnt < 3; cnt++) {
		objeto = document.getElementById("dianaDardo" + (cnt + 1));
		if(!objeto) {
			continue;
		}
		if(puntuacionDardo[cnt] == "") {
			puntuacionDardo[cnt] = "500";
		}
	 	multiplicador = parseInt(puntuacionDardo[cnt].charAt(0), 10);
	 	sector = parseInt(puntuacionDardo[cnt].substring(1, 3), 10);
	 	objeto.style.visibility = "hidden";
	 	
	 	if(!multiplicador || multiplicador > 3) {				// Dardo todavía no lanzado.
//		 	objeto.style.visibility = "hidden";					// Dardo todavía no lanzado.
//		  	lastPuntuacionDardo[cnt] = puntuacionDardo[cnt];
		 	continue;
	 	}
//	 	objeto.style.visibility = (tiempoDardo & 1) ? "visible" : "hidden";
	 	if(puntuacionDardo[cnt] != lastPuntuacionDardo[cnt]) {
		 	objetoCambiante = objeto;
		 	tiempoDardo = 0;
		 	nombreGr = "Imagenes/d" + sector + "_" + multiplicador + ".GIF";
		 	objeto.src = nombreGr;
	 	}
	  	lastPuntuacionDardo[cnt] = puntuacionDardo[cnt];
	}
	if(objetoCambiante && tiempoDardo < (5000 / 200)) {
	 	objetoCambiante.style.visibility = (tiempoDardo & 1) ? "visible" : "hidden";
	}
	setTimeout("pintaDiana(false)", 200);
}	



// Refresca la situación actual de la partida indicada.
// Estructura de la información proveniente del servidor.
// -7 primeros caracteres conteniendo la palabra "PARTIDA".

// Los siguientes datos se incluyen únicamente si se trata de datos solicitados por el "visualizador" flash:
// -40 caracteres: Nombre de la competición.
// -40 caracteres:Nombre del primer jugador.
// -40 caracteres:Nombre del segundo jugador.
// -40 caracteres:Nombre del tercer jugador .
// -40 caracteres:Nombre del cuarto jugador.

// -1 caracter: Tipo de juego (X: X01, C: Cricket, B: Burma, H: HighLow);
// -1 dígito: Número total de jugadores (2 ó 4).
// -1 dígito: Encuentro "al mejor de 3" (a "1").
// -2 dígitos: Estado de los sets parciales (si se trata de un encuentro "al mejor de 3").
// -1 dígito: Ganador de la partida (0, 1 ó 2 si todavía no ha terminado la partida). 
// -40 caracteres: Nombre del ganador de la partida.
// -1 dígito: Jugador actual (0 a 3).
// -20 caracteres: Nombre del jugador que está lanzando (p "nombrejugador").
// -2 dígitos: Ronda actual (p "ronda").
// -4 dígitos: Parcial (p "parcial").
// -3 dígitos: Puntos primer dardo (dígito 1: 1 a 3 multiplicador, 0 fuera, 4 nulo ó 5, aún no lanzado; dígitos 2 y 3: Sector (1 a 20, 0 diana) (p "dardo1").
// -3 dígitos: Puntos segundo dardo (dígito 1: 1 a 3 multiplicador, 0 fuera ó 4 nulo; dígitos 2 y 3: Sector (1 a 20, 0 diana) (p "dardo2").
// -3 dígitos: Puntos tercer dardo (dígito 1: 1 a 3 multiplicador, 0 fuera ó 4 nulo; dígitos 2 y 3: Sector (1 a 20, 0 diana) (p "dardo3").
// -4 dígitos: Puntos del jugador uno (p "puntos0" img "imgpuntos0").
// -4 dígitos: Puntos del jugador dos (p "puntos1" img "imgpuntos1").
// -4 dígitos: Puntos del jugador tres (sólo si se trata de un juego de equipo - 4 jugadores) (p "puntos2" img "imgpuntos2").
// -4 dígitos: Puntos del jugador cuatro (sólo si se trata de un juego de equipo - 4 jugadores) (p "puntos3" img "imgpuntos3").
// -4 dígitos: Total puntos equipo A (sólo si se trata de un juego de equipo - 4 jugadores) (p "total0" img "imgtotal0").
// -4 dígitos: Total puntos equipo B (sólo si se trata de un juego de equipo - 4 jugadores) (p "total1" img "imgtotal1").
// -1 dígito: Encuentro "al mejor de 3" (a "1").
// -2 dígitos: Estado de los sets parciales (si se trata de un encuentro "al mejor de 3").

// Especial para X01
// -1 dígito: A 1, se ha producido un BUST (p "bust").

// Especial para Burma.
// -1 dígito: Índice al objetivo actual (p "puntosburma" img "dianaburma").

// Especial para Cricket.
// -14 dígitos: Números que componen las marcas (2 dígitos por número, 00 diana) (p "numeromarca0 a 7" img "diana").
// -7 dígitos: Estado de las marcas del jugador uno (img "marca00 a 7").
// -7 dígitos: Estado de las marcas del jugador dos (img "marca10 a 7").
// -7 dígitos: Estado de las marcas del jugador tres (sólo si se trata de un juego de equipo - 4 jugadores) (img "marca20 a 7").
// -7 dígitos: Estado de las marcas del jugador cuatro (sólo si se trata de un juego de equipo - 4 jugadores) (img "marca30 a 7").

var txtObjetivoBurma = new Array;
txtObjetivoBurma[0] = "15";
txtObjetivoBurma[1] = "16";
txtObjetivoBurma[2] = "x2";
txtObjetivoBurma[3] = "17";
txtObjetivoBurma[4] = "18";
txtObjetivoBurma[5] = "x3";
txtObjetivoBurma[6] = "19";
txtObjetivoBurma[7] = "20";
txtObjetivoBurma[8] = "dd";

// Salta cinco segundos después de declarar ganador a un jugador.

function saltaSiGanador(estado) {
	if(estado) {
		setTimeout("saltaSiGanador(false)", 5000);
	}
	else {
		document.forms["formulario"].submit();		
	}
}


// Salta tres segundos después de recibir el tercer dardo.

function saltaTrasTercerDardo(estado) {
	if(estado) {
		setTimeout("saltaTrasTercerDardo(false)", 3000);
	}
	else {
		for(cnt = 0; cnt < 3; cnt++) {
			obj = document.getElementById("dardo" + (cnt + 1));
			if(obj) {
				obj.style.visibility = "hidden";
			}
		}
		
	}
}


function recuperaPartida(result) {
	pDardo = new Array;														// Recupera los parámetros comunes a todos los juegos.
	pPuntosPlayer = new Array;
	pTotal = new Array;
	pEstadoGeneralMarcas = new Array;
	pEstadoMarcasPlayer = new Array;
	objMarca = new Array;
	tipoDeJuego = result.charAt(0);
	result = result.substring(1, result.length);
	nPlayers = result.charAt(0);
	result = result.substring(1, result.length);
	esMejorDeTres = parseInt(result.charAt(0), 10);
	result = result.substring(1, result.length);
	setParcial0 = parseInt(result.charAt(0), 10);	
	result = result.substring(1, result.length);	
	setParcial1 = parseInt(result.charAt(0), 10);	
	result = result.substring(1, result.length);	
	nGanador = parseInt(result.charAt(0), 10);
	result = result.substring(1, result.length);
	nameGan = result.substring(0, 40);
	result = result.substring(40, result.length);
	jugadorActual = result.charAt(0);
	result = result.substring(1, result.length);
	nombreJugador = result.substring(0, 20);
	result = result.substring(20, result.length);
	nRonda = parseInt(result.substring(0, 2), 10);
	result = result.substring(2, result.length);	
	puntosParcial = result.substring(0, 4);
	result = result.substring(4, result.length);
			
	if(document.getElementById("resultadosGenerico")) {
		document.getElementById("resultadosGenerico").style.visibility = (nGanador == 2) ? "visible" : "hidden";
	}
	if(document.getElementById("hayGanador")) {
		if(nGanador != 2) {
//			saltaSiGanador(true);
		}
		document.getElementById("hayGanador").style.visibility = (nGanador == 2) ? "hidden" : "visible";
		if(document.getElementById("nameWinner")) {
			document.getElementById("nameWinner").firstChild.nodeValue = nameGan;			
		}
	}
	
	for(cnt = 0; cnt < nPlayers; cnt++) {
		if(document.getElementById("aura" + cnt)) {
			if(jugadorActual == cnt) {
				document.getElementById("aura" + cnt).style.visibility = "visible";
			}
			else {
				document.getElementById("aura" + cnt).style.visibility = "hidden";
			}
		}
	}
	
	document.getElementById("nombrejugador").firstChild.nodeValue = nombreJugador;
	if(puntosParcial.length == 4 && puntosParcial.charAt(0) == "0") {
		puntosParcial = puntosParcial.substring(1, puntosParcial.length);
	}
	document.getElementById("parcial").firstChild.nodeValue = puntosParcial;
	document.getElementById("ronda").firstChild.nodeValue = nRonda;
	
	if(esMejorDeTres) {
		if(document.getElementById("estadoSet0")) {
			datoSet0 = document.getElementById("estadoSet0").firstChild.nodeValue;
			document.getElementById("estadoSet0").firstChild.nodeValue = setParcial1;	
		}
		if(document.getElementById("estadoSet1")) {
			datoSet1 = document.getElementById("estadoSet1").firstChild.nodeValue;
			document.getElementById("estadoSet1").firstChild.nodeValue = setParcial0;	
		}
		if(datoSet0 != setParcial1 || datoSet1 != setParcial0) {			// Ha cambiado el número de set.
			window.location="../Radikal/partidaEnDirecto.php";		// Recarga la página.
		}		
	}
	
	dardosLanzados = 0;
 	for(cnt = 0; cnt < 3; cnt++) {
	 	pDardo[cnt] = result.substring(0, 3);
	 	puntuacionDardo[cnt] = pDardo[cnt];
	 	result = result.substring(3, result.length);
	 	multiplicador = parseInt(pDardo[cnt].charAt(0), 10);
	 	idDardo = "dardo" + (cnt + 1);
	 	objeto = document.getElementById(idDardo);
	 	if(!objeto) {
		 	continue;
	 	}
	 	if(nGanador != 2) {					// Hace desaparecer los dardos lanzados si ya hay un ganador de la partida.
		 	multiplicador = 5;
	 	}
	 	if(multiplicador != 5) {
		 	dardosLanzados++;
	 	}
	 	switch(multiplicador) {
		 case 5:							// Dardo todavía no lanzado.
		 	objeto.style.visibility = "hidden";
		 	break;
		 case 0:							// Dardo Fuera.
		 	objeto.style.visibility = "visible";
		 	objeto.style.color = rojoRD;
		 	objeto.firstChild.nodeValue = "FUERA";
		 	break;
		 case 4:							// Dardo Nulo.
		 	objeto.style.visibility = "visible";
		 	objeto.style.color = rojoRD;
		 	objeto.firstChild.nodeValue = "NULO";
		 	break;
		 default:
		 	objeto.style.visibility = "visible";
		 	objeto.style.color = 0;
		 	sector = parseInt(pDardo[cnt].substring(1, 3), 10);
		 	if(!sector) {
			 	texto = "Diana";
		 	}
		 	else {
			 	texto = "" + sector;
		 	}
		 	if(multiplicador > 1) {
			 	texto += " x " + multiplicador;
		 	}
		 	objeto.firstChild.nodeValue = texto;
		 	break;
	 	}
 	}
 	for(cnt = 0; cnt < nPlayers; cnt++) {								// Recupera los puntos de los jugadores.
	 	pPuntosPlayer[cnt] = result.substring(0, 4);
	 	result = result.substring(4, result.length);
	 	imagen = "imgpuntos" + cnt;
	 	puntuacion = "puntos" + cnt;
	 	if(tipoDeJuego == "C") {
		 	document.getElementById(imagen).src = (jugadorActual == cnt) ? "Imagenes/TorneoMarcador_2.GIF" : "Imagenes/TorneoMarcador_1.GIF";
	 	}
	 	else {
		 	document.getElementById(imagen).src = (jugadorActual == cnt) ? "Imagenes/TorneoMarcador_3.GIF" : "Imagenes/TorneoMarcador_4.GIF";
	 	}
		if(pPuntosPlayer[cnt].length == 4 && pPuntosPlayer[cnt].charAt(0) == "0") {
			pPuntosPlayer[cnt] = pPuntosPlayer[cnt].substring(1, pPuntosPlayer[cnt].length);
		}
		document.getElementById(puntuacion).firstChild.nodeValue = pPuntosPlayer[cnt];
 	}
 	if(nPlayers == 4) {															// Recupera los puntos totales si se trata de un juego de equipo.
 		for(cnt = 0; cnt < 2; cnt++) {
		 	pTotal[cnt] = result.substring(0, 4);
		 	result = result.substring(4, result.length);
		 	imagen = "imgtotal" + cnt;
		 	puntuacion = "total" + cnt;
		 	if(tipoDeJuego == "C") {
			 	document.getElementById(imagen).src = (jugadorActual == cnt || jugadorActual == cnt + 2) ? "Imagenes/TorneoMarcador_2.GIF" : "Imagenes/TorneoMarcador_1.GIF";
		 	}
		 	else {
			 	document.getElementById(imagen).src = (jugadorActual == cnt || jugadorActual == cnt + 2) ? "Imagenes/TorneoMarcador_3.GIF" : "Imagenes/TorneoMarcador_4.GIF";
		 	}
			if(pTotal[cnt].length == 4 && pTotal[cnt].charAt(0) == "0") {
				pTotal[cnt] = pTotal[cnt].substring(1, pTotal[cnt].length);
			}
			document.getElementById(puntuacion).firstChild.nodeValue = pTotal[cnt];		 	
 		}
 	}
	switch(tipoDeJuego) {													// Recupera los parámetros particulares de cada juego.
	case 'X':																			// Se trata de una modalidad de X01.
		hayBust = (result.charAt(0) == "1");
		if(hayBust) {
			dardosLanzados = 3;
		}
		document.getElementById("bust").style.visibility = (hayBust) ? "visible" : "hidden";
		break;
	case 'B':																			// Se trata del Burma Road.
		objetivoBurma = result.charAt(0);
		if(txtObjetivoBurma[objetivoBurma] == "dd") {
			document.getElementById("dianaburma").style.visibility = "visible";
			document.getElementById("puntosburma").style.visibility = "hidden";
		}
		else {
			document.getElementById("dianaburma").style.visibility = "hidden";
			document.getElementById("puntosburma").style.visibility = "visible";
			document.getElementById("puntosburma").firstChild.nodeValue = txtObjetivoBurma[objetivoBurma];
		}
		break;
	case 'C':																			// Se trata de una modalidad de Cricket.
		hayDiana = false;
		objDiana = document.getElementById("diana");
		for(cnt = 0; cnt < 7; cnt++) {
			objEstado = document.getElementById("numeromarca" + cnt);
			pEstadoGeneralMarcas[cnt] = parseInt(result.substring(0, 2), 10);
			result = result.substring(2, result.length);
			if(!pEstadoGeneralMarcas[cnt]) {					// Se trata de la diana.
				objDiana.style.visibility = "visible";
				objDiana.style.left = objEstado.style.left;
				objEstado.style.visibility = "hidden";
				hayDiana = true;
			}
			else {
				objEstado.style.visibility = "visible";
				objEstado.firstChild.nodeValue = pEstadoGeneralMarcas[cnt];
			}
		}
		if(!hayDiana) {
			objDiana.style.visibility = "hidden";
		}
		
		for(cnt0 = 0; cnt0 < nPlayers; cnt0++) {
			pEstadoMarcasPlayer[cnt0] = new Array;
			if(cnt0 == jugadorActual) {
				objBarra = "Imagenes/TorneoCricket_2.GIF";
				objMarca[0] = "Imagenes/TorneoCricket_6.GIF";
				objMarca[1] = "Imagenes/TorneoCricket_7.GIF";
				objMarca[2] = "Imagenes/TorneoCricket_8.GIF";
			}
			else {
				objBarra = "Imagenes/TorneoCricket_1.GIF";
				objMarca[0] = "Imagenes/TorneoCricket_3.GIF";
				objMarca[1] = "Imagenes/TorneoCricket_4.GIF";
				objMarca[2] = "Imagenes/TorneoCricket_5.GIF";
			}
			document.getElementById("barra" + cnt0).src = objBarra;
			for(cnt = 0; cnt < 7; cnt++) {
				pEstadoMarcasPlayer[cnt0][cnt] = parseInt(result.charAt(cnt0 * 7 + cnt), 10);
				objGrafico = document.getElementById("marca" +  cnt0 + cnt);
				if(!objGrafico) {
					continue;
				}
				if(!pEstadoMarcasPlayer[cnt0][cnt]) {
					objGrafico.style.visibility = "hidden";
				}
				else {
					objGrafico.style.visibility = "visible";
					objGrafico.src = objMarca[pEstadoMarcasPlayer[cnt0][cnt] - 1];
				}
			}
		}
	} 	
	
	if(dardosLanzados >= 3 && nGanador == 2) {			// Se han lanzado los tres dardos y no hay ganador.
//		saltaTrasTercerDardo(true);
	}
	
}


var diagramaDireccion = -1;

function sobreFlecha(objeto, estado, direccion) {
	flecha = new Array();
	flecha[0] = "flechaUp";
	flecha[1] = "flechaDown";
	flecha[2] = "flechaLeft";
	flecha[3] = "flechaRight";
	
	switch(estado) {
	case 0:																			// RollOver.
		if(objeto.id.charAt(objeto.id.length - 1) == '2') {		// El mouse pasa por encima de la no activa... aparece la activa.
			for(cnt = 0; cnt < 4; cnt++) {									// Hace visibles todas las inactivas e invisibles todas las activas.
				nombre = flecha[cnt] + "2";
				document.getElementById(nombre).style.visibility = "visible";
				nombre = flecha[cnt] + "1";
				document.getElementById(nombre).style.visibility = "hidden";
			}
			objeto.style.visibility = "hidden";
			nombre = objeto.id.substring(0, objeto.id.length - 1) + "1";
			document.getElementById(nombre).style.visibility = "visible";
		}
		break;
	case 1:																		// RollOut.
		diagramaDireccion = -1;
		if(objeto.id.charAt(objeto.id.length - 1) == '1') {		// El mouse sale de la activa... aparece la no activa.
			for(cnt = 0; cnt < 4; cnt++) {									// Hace visibles todas las inactivas e invisibles todas las activas.
				nombre = flecha[cnt] + "2";
				document.getElementById(nombre).style.visibility = "visible";
				nombre = flecha[cnt] + "1";
				document.getElementById(nombre).style.visibility = "hidden";
			}
			nombre = objeto.id.substring(0, objeto.id.length - 1) + "2";
			document.getElementById(nombre).style.visibility = "visible";
		}
		break;
	case 2:																		// MouseDown.
		diagramaDireccion = direccion;
		break;
	case 3:																	// MouseUp.
		diagramaDireccion = -1;	
	}	
}


var estaPastillaPulsada = false;
var lastMouseX = 0;
var lastMouseY = 0;

function controlaScrollDiagrama(inicio)  {
	anchoVentana = parseInt(document.getElementById("contenedorDiagramaTorneo").style.width, 10);
	altoVentana = parseInt(document.getElementById("contenedorDiagramaTorneo").style.height, 10);
	contenedor = document.getElementById("diagramaTorneo");
	anchoContenido = xMaxima - xMinima;
	altoContenido = yMaxima - yMinima;
	offsetX = -xMinima;
	offsetY = -yMinima;
	xCentro = anchoContenido / 2;
	
	document.getElementById("contenedorDiagramaTorneo").scrollLeft = anchoContenido / 2 - anchoVentana / 2;
	document.getElementById("contenedorDiagramaTorneo").scrollTop = altoContenido / 2 - altoVentana / 2;
	
	nombreCookie = "RadikalDartsPs=";
	offset = document.cookie.indexOf(nombreCookie);		// Modifica la posición inicial del scroll.
	if(offset >= 0) {					// Existe un offset.
		end = document.cookie.indexOf(",", offset + nombreCookie.length);
		if(end >= 0) {
		 	identif = document.cookie.substring(offset + nombreCookie.length, end);
		 	if(identif == document.forms["formulario"].elements["campeonatoActivo"].value) {
				offset = end + 1;
				end = document.cookie.indexOf(",", offset);
				if(end >= 0) {
		 			document.getElementById("contenedorDiagramaTorneo").scrollLeft = document.cookie.substring(offset, end);
				}
				offset = end + 1;
				end = document.cookie.indexOf(",", offset);
				if(end >= 0) {
		 			document.getElementById("contenedorDiagramaTorneo").scrollTop = document.cookie.substring(offset, end);
				}
		 	}
		} 
	}
	
		
	if(altoContenido <= altoVentana) {
		yCentro = altoContenido / 2;		
		contenedor.style.top = (offsetY - yCentro + altoVentana / 2) + "px";		
	}
	return;	
	
	
	if(inicio) {				// Comprueba los límites del scroll y coloca el diagrama más o menos en el centro.
		estaPastillaPulsada = false;
		diagramaDireccion = -1;
		xCentro = anchoContenido / 2;
		yCentro = altoContenido / 2;		
		contenedor.style.left = (offsetX - xCentro + anchoVentana / 2) + "px";
		contenedor.style.top = (offsetY - yCentro + altoVentana / 2) + "px";
	}

	posX = parseInt(contenedor.style.left, 10);
	posY = parseInt(contenedor.style.top, 10);
	
	if(estaPastillaPulsada) {
		diagramaDireccion = -1;
		avanceX = mouseX - lastMouseX;
		avanceY = mouseY - lastMouseY;
		lastMouseX = mouseX;
		lastMouseY = mouseY;
		posX += avanceX;
		posY += avanceY;
		if(anchoVentana < anchoContenido) {
			if(posX > offsetX) {
				posX = offsetX;
			}
			if(posX < -(anchoContenido - anchoVentana) + offsetX) {
				posX = -(anchoContenido - anchoVentana) + offsetX;
			}
		}
		if(altoVentana < altoContenido) {
			if(posY > offsetY) {
				posY = offsetY;
			}
			if(posY < -(altoContenido - altoVentana) + offsetY) {
				posY = -(altoContenido - altoVentana) + offsetY;
			}
		}
		contenedor.style.left = posX + "px";
		contenedor.style.top = posY + "px";
	}
		
	if(diagramaDireccion >= 0) {
		avance = (navegador) ? anchoVentana / 2 : 10;
		switch(diagramaDireccion) {
		case 1:
			if(altoVentana < altoContenido) {
				posY -= avance;
			}
			break;
		case 0:
			if(altoVentana < altoContenido) {
				posY += avance;
			}
			break;
		case 3:
			if(anchoVentana < anchoContenido) {
				posX -= avance;
			}
			break;
		case 2:
			if(anchoVentana < anchoContenido) {
				posX += avance;
			}
		}
		if(anchoVentana < anchoContenido) {
			if(posX > offsetX) {
				posX = offsetX;
			}
			if(posX < -(anchoContenido - anchoVentana) + offsetX) {
				posX = -(anchoContenido - anchoVentana) + offsetX;
			}
		}
		if(altoVentana < altoContenido) {
			if(posY > offsetY) {
				posY = offsetY;
			}
			if(posY < -(altoContenido - altoVentana) + offsetY) {
				posY = -(altoContenido - altoVentana) + offsetY;
			}
		}
		contenedor.style.left = posX + "px";
		contenedor.style.top = posY + "px";
	}
//	setTimeout("controlaScrollDiagrama(false)", 50);
}


// Se ha pulsado en una de las cámaras del diagrama para seguir la partida "en directo".

function clickEnCamara(objeto) {
	document.forms["formulario"].action = "partidaEnDirecto.php";
	nJor = parseInt(objeto.id.substring(3, objeto.id.length), 10);
//	if(!nJor) {
//		nJor--;
//	}
	
///////

	nc = document.forms["formulario"].elements["campeonatoActivo"].value;
	if(nc.charAt(0) == 'f' || nc.charAt(0) == 'c') {
		nc = nc.substring(1, objeto.id.length);
	}
	
	texto = "Flash/Visualizador.php?compid=" + nc + "&encid=" + nJor + "&ngame=0&local=1";	
	especificaciones="top=0, left=0, toolbar=no,location=no, status=no,menubar=no,scrollbars=no, resizable=no, width=1024,height=614" 
	tmp = new Date();	
	titulo="Ventanita" + tmp.getTime();
	window.open(texto,titulo,especificaciones); 
	return;

///////	
	
	if(document.getElementById("contenedorDiagramaTorneo")) {		// Guarda la posición del scroll.
		document.cookie = "RadikalDartsPs=" + 
		document.forms["formulario"].elements["campeonatoActivo"].value + "," +  
		document.getElementById("contenedorDiagramaTorneo").scrollLeft + "," + document.getElementById("contenedorDiagramaTorneo").scrollTop +
		",0";
//		lifeTime = Date.parse(new Date() + );
	}
		
	document.forms["formulario"].elements["jornada"].value = nJor;
	document.forms["formulario"].submit();
}


// Abre la ventana de la partida en directo indicada.

var frameCompeticionesEnDirecto = null;
var contenidoCompeticionesEnDirecto = null;

function abreVentana(compid, encid, ngame) {	
	texto = "Flash/Visualizador.php?compid=" + compid + "&encid=" + encid + "&ngame=" + ngame + "&local=1";	
	especificaciones="top=0, left=0, toolbar=no,location=no, status=no,menubar=no,scrollbars=no, resizable=no, width=1024,height=614" 
	tmp = new Date();	
	titulo="Ventanita" + tmp.getTime();
	window.open(texto,titulo,especificaciones);
}



// Abre la ventana del torneo "Mejor Club de Dardos" (PROVISIONAL).

function abreVentanaTorneoMejorClub() {	
//	texto = "Flash/VisualizaTorneosMejorClub.php?compid=" + idMejorClub + "&local=1";	
	texto = "Flash/VisualizaTorneosMejorClub.php?compid=24330&local=1";	
	especificaciones="top=0, left=0, toolbar=no,location=no, status=no,menubar=no,scrollbars=no, resizable=yes, width=" + screen.width + ",height=" + screen.height; 
	tmp = new Date();	
	titulo="Torneo" + tmp.getTime();
	window.open(texto,titulo,especificaciones);
}


// Abre la ventana del torneo indicado.

function abreVentanaTorneo(compid) {	
	if(compid.charAt(0) == 'f') {
		compid = compid.substring(1, compid.length);
	}
	texto = "Flash/VisualizaTorneos.php?compid=" + compid + "&local=1";	
	especificaciones="top=0, left=0, toolbar=no,location=no, status=no,menubar=no,scrollbars=no, resizable=yes, width=" + screen.width + ",height=" + screen.height; 
	tmp = new Date();	
	titulo="Torneo" + tmp.getTime();
	window.open(texto,titulo,especificaciones);
}

// Abre la ventana de la liga indicada.

function abreVentanaLiga(compid, encid) {
/*
	if(compid.charAt(0) == 'f') {
		compid = compid.substring(1, compid.length);
	}
*/
	texto = "Flash/VisualizaLigas.php?compid=" + compid + "&encid=" + encid + "&local=1";	
	especificaciones="top=0, left=0, toolbar=no,location=no, status=no,menubar=no,scrollbars=no, resizable=yes, width=" + screen.width + ",height=" + screen.height; 
	tmp = new Date();	
	titulo="Liga" + tmp.getTime();
	window.open(texto,titulo,especificaciones);
}


// Crea el frame oculto para actualizar las competiciones en directo.

function creaFrameCompeticionesEnDirecto(idioma, especial) {	
	textoEspecial = "&especial=" + ((especial) ? "1" : "0");
	if(contenidoCompeticionesEnDirecto == null && document.getElementById("partidasEnDirecto")) {
		contenidoCompeticionesEnDirecto = document.createElement('DIV');
		document.getElementById("partidasEnDirecto").appendChild(contenidoCompeticionesEnDirecto);		
	}
	if(frameCompeticionesEnDirecto == null) {
		frameCompeticionesEnDirecto = document.createElement("iframe");
		frameCompeticionesEnDirecto.name = "frameCompeticiones";
		frameCompeticionesEnDirecto.id = "frameCompeticiones";
		frameCompeticionesEnDirecto.style.height = "0px";
		frameCompeticionesEnDirecto.style.width = "0px";
		frameCompeticionesEnDirecto.style.position = "absolute";
		frameCompeticionesEnDirecto.style.visibility = "hidden";
		document.body.appendChild(frameCompeticionesEnDirecto);
		frames["frameCompeticiones"].location.href = "competicionesonline.php?idioma=" + idioma + textoEspecial;
	}
}

// Recibe la respuesta del frame oculto.

function respuesta(resp) {	
	if(contenidoCompeticionesEnDirecto != null) {
		contenidoCompeticionesEnDirecto.innerHTML = resp;
	}
}




/////////////////////////////////////////////

// ACCESORIOS

// Gestiona el estado del menú de accesorios al entrar en la página.

function gestionaAccesorios() {
	posX = 0;
	accesorioActivo = document.forms["formulario"].elements["accesorio"].value;
	acAct = accesorioActivo.substring(0, 4);
	for(cnt0 = 0; cnt0 < 10; cnt0++) {
		nameAcces = "ACC" + cnt0;
		color = (acAct == nameAcces) ? rojoRD : "white";
		for(cnt1 = 0; cnt1 < 10; cnt1++) {
			nameAcces = nameAcces.substring(0, 4) + cnt1;
			objeto = document.getElementById(nameAcces);
			if(objeto) {
				if(!cnt1) {			// Se trata de un objeto sin subobjetos.
					objeto.style.visibility = "visible";
					objeto.style.color = color;
					objeto.style.top = posX + "px";
					posX += 12;
					break;
				}
				else if(cnt1 == 1) {	// Se trata de la cabecera de una sublista de objetos.
					objeto.style.visibility = "visible";
					objeto.style.color = color;
					objeto.style.top = posX + "px";
					posX += 12;
				}
				else {					// Se trata de un objeto perteneciente a una sublista.
					if(color == "white") {
						objeto.style.visibility = "hidden";
					}
					else {
						objeto.style.visibility = "visible";
						objeto.style.top = posX + "px";
						posX += 12;
						objeto.style.color = (nameAcces == accesorioActivo) ? rojoRD : "white";
					}
				}
			}
		}
	}
}


// Gestiona la pulsación en el menú de accesorios.

function gestionaPulsacionAccesorio(objeto) {
	if(objeto.style.color == "white") {
		document.forms["formulario"].elements["accesorio"].value = objeto.id;
		if(objeto.id.charAt(4) != '1') {
			document.forms["formulario"].elements["catalogo"].value = objeto.name;
			document.forms["formulario"].elements["aPantallaInicial"].value = 1;
			document.forms["formulario"].action = "catalogo.php";
			document.forms["formulario"].submit();
		}
	}
	else {
		if(objeto.id.charAt(4) == '0' || objeto.id.charAt(4) == '1') {
			document.forms["formulario"].elements["accesorio"].value = "";
		}
		else {
			document.forms["formulario"].elements["accesorio"].value = objeto.id.substring(0, 4) + 1;
		}
	}
	gestionaAccesorios();
}


// Gestiona la pulsación de un artículo de la lista.

function gestionaPulsacionArticulo(objeto) {
	document.forms["formulario"].elements["idAccesorio"].value = objeto.id;
	document.forms["formulario"].action = "bonuscat.php";
	document.forms["formulario"].submit();
}

// Cambia la fotografía mostrada en el centro de la ventana de accesorios.

function cambiaFotoAccesorio(objeto, nFoto, ancho, alto) {
	temp = new Array;
	temp = pieDeFoto[nFoto - 1].split("/");

	foto = document.getElementById("fotoGrande");
	if(foto) {
		if(temp[1] == "jpg" || temp[1] == "gif") {
			foto.src = "FotografiasBonus/"+ objeto.name + "_" + nFoto + "_b." + temp[1];
			foto.style.visibility = "visible";
			tamanyoFinalFotoJS(ancho, alto, 320, 240);
			foto.style.width = anchoFoto;
			foto.style.height = altoFoto;
			foto.style.left = 200 + (320 - anchoFoto) / 2;
			foto.style.top = (altoFoto < 240) ? 318 + ((240 - altoFoto) / 2) : 318;
			pintaFotoDelTamanyoAdecuadoArticulo(false);
		}
		else {
			foto.style.visibility = "hidden";
		}
	}
	cnt = 1;
	while(true) {
		pieDePagina = document.getElementById("pie" + cnt);
		if(!pieDePagina) {
			break;
		}
		pieDePagina.style.visibility = (cnt == nFoto) ? "visible" : "hidden";
		cnt++;
	}
}


// Pinta la foto del tamanyo adecuado en un artículo.

function pintaFotoDelTamanyoAdecuadoArticulo(intercambiaTamanyos) {
	if(intercambiaTamanyos) {
		verFotoGrande = !verFotoGrande;
	}
	foto = document.getElementById("fotoGrande");
	fondoNegro = document.getElementById("cortinaNegra");
	if(!foto) {
		return;
	}
	if(fondoNegro) {
		fondoNegro.style.visibility = (verFotoGrande) ? "visible" : "hidden";
	}
	if(verFotoGrande) {
		tamanyoFinalFotoJS(parseInt(foto.style.width, 10), parseInt(foto.style.height, 10), 600, 440);
		foto.style.width = anchoFoto;
		foto.style.height = altoFoto;
		foto.style.left = 203 + (600 - anchoFoto) / 2;
		foto.style.top =  163 + (440 - altoFoto) / 2;
	}
	else {
		tamanyoFinalFotoJS(parseInt(foto.style.width, 10), parseInt(foto.style.height, 10), 320, 240);
		foto.style.width = anchoFoto;
		foto.style.height = altoFoto;
		foto.style.left = 200 + (320 - anchoFoto) / 2;
		foto.style.top =  318 + (240 - altoFoto) / 2;
	}
}



// Modifica el intervalo señalado en la página de accesorios.

function modificaIntervalo(intervalo, incremento) {
	iniActual = Math.floor(parseInt(document.forms["formulario"].elements["iniIntervalo"].value, 10) / 100) * 100;
	finActual = Math.floor(parseInt(document.forms["formulario"].elements["finIntervalo"].value, 10) / 100) * 100;
	if(!intervalo) {
		iniActual += incremento;
		if(iniActual < 0) {
			iniActual = 0;
		}
		if(iniActual > 99900) {
			iniActual = 99900;
		}
		if(iniActual > finActual) {
			iniActual = finActual;
		}
		document.forms["formulario"].elements["iniIntervalo"].value = iniActual;
	}
	else {
		finActual += incremento;
		if(finActual < 0) {
			finActual = 0;
		}
		if(finActual > 99900) {
			finActual = 99900;
		}
		if(finActual < iniActual) {
			finActual = iniActual;
		}
		document.forms["formulario"].elements["finIntervalo"].value = finActual;
	}
	document.getElementById("intLftUp").style.visibility = (iniActual) ? "visible" : "hidden";
	document.getElementById("intRgtUp").style.visibility = (iniActual < 99900) ? "visible" : "hidden";
	document.getElementById("intLftDw").style.visibility = (finActual) ? "visible" : "hidden";
	document.getElementById("intRgtDw").style.visibility = (finActual < 99900) ? "visible" : "hidden";
}


// Muestra el nuevo intervalo.

function muestraNuevoIntervalo() {
	iniActual = Math.floor(parseInt(document.forms["formulario"].elements["iniIntervalo"].value, 10) / 100) * 100;
	finActual = Math.floor(parseInt(document.forms["formulario"].elements["finIntervalo"].value, 10) / 100) * 100;
	if(finActual < iniActual) {
		finActual = iniActual;
		document.forms["formulario"].elements["finIntervalo"].value = finActual;
	}
	document.forms["formulario"].action = "catalogo.php";
	document.forms["formulario"].elements["aPantallaInicial"].value = 2;
	document.forms["formulario"].submit();
}


// Activa la pantalla inicial de la categoría (si existe) o la pantalla con la lista de productos para la misma.

function activaPantallaInicial() {
	pantIni = parseInt(document.forms["formulario"].elements["aPantallaInicial"].value, 10);
	pantallaIni = document.getElementById("pantallaInicial");
	pantallaNoIni = document.getElementById("pantallaNoInicial");

	if(!pantallaIni && !pantallaNoIni) {	// No existe ninguna de las dos pantallas.
		document.getElementById("fondoPantallaInicial").style.visibility = "visible";
		document.getElementById("fondoPantallaNoInicial").style.visibility = "hidden";
		return;
	}
	if(pantIni == 1 && !pantallaIni) {		// Debe imprimirse la pantalla inicial pero ésta no existe.
		document.forms["formulario"].elements["aPantallaInicial"].value = pantIni = 2;
	}
	if(pantIni == 2 && !pantallaNoIni) {	// Debe imprimirse la pantalla no inicial pero ésta no existe.
		document.forms["formulario"].elements["aPantallaInicial"].value = pantIni = 1;
	}

	if(pantIni == 1) {
		pantallaIni.style.visibility = "visible";
		document.getElementById("fondoPantallaInicial").style.visibility = "visible";
		document.getElementById("fondoPantallaNoInicial").style.visibility = "hidden";
		if(pantallaNoIni) {
			pantallaNoIni.style.visibility = "hidden";
		}
	}
	else {
		pantallaNoIni.style.visibility = "visible";
		document.getElementById("fondoPantallaNoInicial").style.visibility = "visible";
		document.getElementById("fondoPantallaInicial").style.visibility = "hidden";
		scrollCatalogo(20, 0);			// Hace desaparecer la flecha superior la primera vez.
		if(pantallaIni) {
			pantallaIni.style.visibility = "hidden";
		}
	}
}


// Salta a la pantalla de exposición de artículos.

function saltaASegundaPantalla() {
	document.forms["formulario"].elements["aPantallaInicial"].value = 2;
	activaPantallaInicial();
}


// Desplaza el catálogo de objetos actual hacia arriba (1) o hacia abajo (2).

function scrollCatalogo(nArticulos, dir) {
	objeto = document.getElementById("posPantallaNoInicial");
	if(!objeto) {
		return;
	}
	posY = -parseInt(objeto.style.top, 10);

	if(dir == 1 && posY > 0) {
		posY -= 146;
	}
	if(dir == 2 && posY < 146 * (nArticulos - 3)) {
		posY += 146;
	}
	objeto.style.top = -posY + "px";

	catFl = document.getElementById("catalogoUp");
	if(catFl) {
		catFl.style.visibility = (posY <= 0) ? "hidden" : "visible";
	}
	catFl = document.getElementById("catalogoDw");
	if(catFl) {
		catFl.style.visibility = (posY >= 146 * (nArticulos - 3)) ? "hidden" : "visible";
	}
}


// Confirma y borra el comentario de la página de accesorios actual.

function borraComentarioGeneral() {
	dato = new Array;
	valor = document.forms["formulario"].elements["catalogo"].value;

	for(cnt = 0; cnt < 10; cnt++) {
		dato = tipoArticulo[cnt].split("/");
		if(dato[0] == valor) {
			break;
		}
	}
	if(cnt >= 10) {
		return;
	}
	if(confirm("¿Borrar el comentario general sobre " + dato[1] + "?")) {
		document.forms["formBorraGeneral"].submit();
	}
}


// Confirma y borra el artículo visualizado actualmente.

function borraArticulo() {
	if(confirm("¿Borrar este artículo?")) {
		document.forms["formBorraArticulo"].submit();
	}
}


////////////////////


// Activa o no las barras de desplazamiento de la ventana dependiendo del tamaño de la misma.

function controlaBarrasVentana() {
	ventana = document.getElementById("cuerpo");
	idVentana = document.getElementById("idCuerpo");
	if(!ventana || !idVentana) {
		return;
	}
  	alto = document.body.clientHeight;
  	ancho = document.body.clientWidth;

	if(ancho < 1024 || alto < 640) {
		idVentana.style.top = "0px";
		idVentana.style.left = "0px";
		idVentana.style.marginLeft = "0px";
		idVentana.style.marginTop = "0px";
		ventana.style.overflow = "auto";
	}
	else {
		idVentana.style.top = "50%";
		idVentana.style.left = "50%";
		idVentana.style.marginLeft = "-512px";
		idVentana.style.marginTop = "-336px";
		ventana.style.overflow = "hidden";
	}
	setTimeout("controlaBarrasVentana()", 200);
}

//////////////////////


// Carga la imagen del icono de la cámara activado cuando el cursor pasa por encima del mismo en la pantalla de noticias.

function enImagen() {
	cam = document.getElementById("iconoCamara");
	if(cam) {
		cam.src = "Imagenes/camara_on.gif";
	}
}

// Carga la imagen del icono de la cámara desactivado cuando el cursor sale del mismo en la pantalla de noticias.

function fueraDeImagen() {
	cam = document.getElementById("iconoCamara");
	if(cam) {
		cam.src = "Imagenes/camara_off.gif";
	}
}


function controlaPosicionCamara() {
	alert("Aquí controlando");
}

////////////////////////
////////////////////////
////////////////////////


// Imprime durante un tiempo un comentario en letras blancas sobre fondo rojo en las proximidades de la competición señalada.

function imprimeComentario(comentario) {
	obj = document.getElementById("idCuerpo");
	pMouseX = mouseX;
	pMouseY = mouseY;
	if(obj.style.top == "50%") {			// Adecúa la posición del texto al tamaño de la pantalla.
		pMouseX -= ((document.body.clientWidth - 1024) / 2);
		pMouseY -= ((document.body.clientHeight - 672) / 2);
	}
	if(comentario == "") {
		document.forms["infoCampeonato"].style.visibility = "hidden";
		tiempoComentario = 0;
		return;
	}
	else if(comentario == "RESUME_COMENTARIO") {
		if(!tiempoComentario || tiempoComentario > 12) {
			document.forms["infoCampeonato"].style.visibility = "hidden";
			return;
		}
		if(tiempoComentario == 2) {
			document.forms["infoCampeonato"].style.visibility = "visible";
		}
		tiempoComentario++;
	}
	else {
		document.forms["infoCampeonato"].style.visibility = "hidden";
		document.forms["infoCampeonato"].elements["info"].value = comentario;
		pos = 180;
		document.forms["infoCampeonato"].style.left = pos + "px";
		pos = pMouseY - 20;
		document.forms["infoCampeonato"].style.top = pos + "px";
		tiempoComentario = 1;
	}
	setTimeout("imprimeComentario('RESUME_COMENTARIO')", 500);
}


// Borra el comentario anterior si el usuario deja de apuntar con el ratón a la competición correspondiente.

function borraComentario() {
	document.forms["infoCampeonato"].style.visibility = "hidden";
	tiempoComentario = 0;
}


/////////////////////////////////////////////////////////////////////

// Botones de menú superior.

function sobreBoton(objeto, encima) {
	imagen = objeto.id + "Img";
	tapa = document.getElementById("TapaAzul");
	obj = document.getElementById(imagen);
	if(!tapa || !obj) {
		return;
	}
	tapa.style.visibility = (encima) ? "visible" : "hidden";
	tapa.style.left = obj.style.left;
	tapa.style.top = obj.style.top;
}


// Botones menú "especial".

function botonEspecial(nombre, estado) {
	obj = document.getElementById(nombre);
	if(obj) {
		if(estado) {
			obj.style.visibility = "visible";
		}
		else {
			obj.style.visibility = "hidden";
		}
	}
}



///////////////////////////////////////////////////////////////////

// CAMBIAR FOTOGRAFÍA USUARIO.

function procesaFotoUsuario() {
	alert("La nueva fotografía debe ser un fichero JPG de 120x176 píxeles.");
	document.getElementById("cambiarFoto").style.visibility="hidden";
	document.getElementById("cambiarFoto2").style.visibility="visible";
	document.forms["formFoto"].style.visibility="visible";
}

function cargaFotoUsuario() {
	nombre = document.forms["formFoto"].elements["nombreFoto"].value;
	extension = nombre.substring(nombre.length - 3, nombre.length);
	if(extension != "jpg" && extension != "JPG") {
		alert("ERROR: El fichero indicado no es JPG.");
		document.getElementById("cambiarFoto").style.visibility="visible";
		document.getElementById("cambiarFoto2").style.visibility="hidden";
	document.forms["formFoto"].style.visibility="hidden";
		return;
	}
	alert("La nueva fotografía se enviará a continuación a la base de datos de jugadores, pero no será actualizada en la presente página hasta su\ncorrespondiente revisión y verificación por parte de personal autorizado Radikal Darts.");
	document.forms["formFoto"].submit();
}



