var campos = 0, campos_validados="";

// Funciones de cambio de imágen en el menú
function cambio(imagen, idioma)
{
	document.getElementById(imagen).src = "imagenes/botones/"+idioma+"/"+imagen+"_over.gif";
}

function volver(imagen, idioma)
{
	document.getElementById(imagen).src = "imagenes/botones/"+idioma+"/"+imagen+".gif";
}

// Realiza todas las acciones necesarias para mostrar las fotos específicas de cada producto o vino y ocultarlas
function mostrar_foto()
{
	document.getElementById("foto").style.visibility = "visible";
	document.getElementById("vino_texto").style.opacity = "0.2";
	document.getElementById("vino_texto").style.MozOpacity = "0.2";
	document.getElementById("vino_texto").style.KhtmlOpacity = "0.2";
	document.getElementById("vino_texto").style.filter = "alpha(opacity=20)";
	
	// Aplica la transparencia de la capa de Gamas para IE
	document.getElementById("gama_ie").style.opacity = "0.2";
	document.getElementById("gama_ie").style.MozOpacity = "0.2";
	document.getElementById("gama_ie").style.KhtmlOpacity = "0.2";
	document.getElementById("gama_ie").style.filter = "alpha(opacity=20)";
}
function ocultar_foto()
{
	document.getElementById("foto").style.visibility = "hidden";
	document.getElementById("vino_texto").style.opacity = "1";
	document.getElementById("vino_texto").style.MozOpacity = "1";
	document.getElementById("vino_texto").style.KhtmlOpacity = "1";
	document.getElementById("vino_texto").style.filter = "alpha(opacity=100)";
	
	// Aplica la transparencia de la capa de Gamas para IE
	document.getElementById("gama_ie").style.opacity = "1";
	document.getElementById("gama_ie").style.MozOpacity = "1";
	document.getElementById("gama_ie").style.KhtmlOpacity = "1";
	document.getElementById("gama_ie").style.filter = "alpha(opacity=100)";
}

// Esta función crea el efecto Fade, utilizado en las banderas del "index". Debe de funcionar en todos los navegadores
function opacidad(id, comienzo, terminar, milisegundos)
{
	// Velocidad de cada frame
	var speed = Math.round(milisegundos / 100);
	var timer = 0;

	// Determina la dirección del efecto fade
	if(comienzo > terminar) 
	{
		for(i = comienzo; i >= terminar; i--) 
		{
			setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
			timer++;
		}
	} else if(comienzo < terminar) 
	{
		for(i = comienzo; i <= terminar; i++)
		{
			setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
			timer++;
		}
	}
}

// Cambia la opacidad para todos los navegadores
function changeOpac(opacity, id) 
{
	var object = document.getElementById(id).style;
	object.opacity = (opacity / 100);
	object.MozOpacity = (opacity / 100);
	object.KhtmlOpacity = (opacity / 100);
	object.filter = "alpha(opacity=" + opacity + ")";
}

// Función especial para editor de texto en "textareas"
tinyMCE.init({
	mode : "textareas",
	theme : "simple",
	language : "es"
});

// Función de inicio de "Google Maps"
function initialize()
{
  if (GBrowserIsCompatible())
	{
    var map = new GMap2(document.getElementById("map_canvas"));
		map.setCenter(new GLatLng(37.510202,-4.650285), 15);
		
		// Se establece una imágen en el mapa, que indicará el lugar de la bodega
		var boundaries = new GLatLngBounds(new GLatLng(37.510075,-4.651895), new GLatLng(37.512177,-4.649931));
		var bodega = new GGroundOverlay("imagenes/estructura/flecha.png", boundaries);
		map.addControl(new GSmallMapControl());
		map.addControl(new GMapTypeControl());
		map.addOverlay(bodega);
  }
}

// Esta función calcula el tamaño del texto en píxeles
function calcular_pixeles(texto, id)
{
	var capa = document.createElement("div"), tamano, elemento_eliminar, elemento_padre;
			
	// Se introduce el texto en dicha tabla
	capa.innerHTML = "<div id='tabla_calculadora"+id+"' style='position: absolute; background: grey; font-size: 34px; font-family: \"Times New Roman\"'>"+texto+"</div>";
	// Se establece la tabla como hija de la capa "capa_padre"
	document.getElementById("capa_padre"+id).appendChild(capa);
	// Se extrae el ancho de la capa una vez está dentro el texto
	tamano = document.getElementById("tabla_calculadora"+id).offsetWidth;
	// Se obtiene, a través de la ID, la tabla para ser eliminada
	elemento_eliminar = document.getElementById("tabla_calculadora"+id);
	// Se obtiene el elemento padre de la tabla
	elemento_padre = elemento_eliminar.parentNode;
	// Se elimina dicha tabla, pues no deberá aparecer
	elemento_padre.removeChild(elemento_eliminar);
	
	return (tamano);
}

// Función encargada de adaptar los campos "Nombre" y "Subtitulo"
function caracteres(nombre, subtitulo, id)
{
		var caracteres1, tamano1=0, tamano2=0, nombre_minus, contador1, nombre_val, subtitulo_val;
		
		nombre_val = document.getElementById(nombre).value;
		subtitulo_val = document.getElementById(subtitulo).value;
		caracteres1 = nombre_val.length;
		
		// Se calculan los pixeles que ocupa actualmente el nombre
		tamano1 = calcular_pixeles(nombre_val, id);
		
		// Se calcula, a partir del tamaño de la capa del nombre, el tamaño de la capa del subtitulo (aproximada)
		tamano2 = 285 - (tamano1);
		tamano2 = Math.round(tamano2 / 10);
		
		// Se realizan los cambios pertinentes según el tamaño de la capa 1 y 2
		if (tamano2 <= 0)
		{
			document.getElementById(nombre).size = caracteres1;
			document.getElementById(nombre).maxLength = caracteres1;
			document.getElementById(subtitulo).size = 1;
			document.getElementById(subtitulo).maxLength = 1;
			document.getElementById(subtitulo).disabled = "true";
			document.getElementById(subtitulo).style.background = "#663300";
			document.getElementById(subtitulo).value = subtitulo_val.value.substr(0, tamano2);
		}else
		{
			document.getElementById(nombre).size = 19;
			document.getElementById(subtitulo).value = subtitulo_val.substr(0, tamano2);
			document.getElementById(subtitulo).style.background = "#000000";
			document.getElementById(subtitulo).disabled = "";
			document.getElementById(subtitulo).size = tamano2;
			document.getElementById(subtitulo).maxLength = tamano2;
		}			
}

function adaptacion_titulo(nombre)
{
	tamano = calcular_pixeles(nombre, 1);
	document.getElementById('encabezado_nombre').style.width = tamano+"px";
	document.getElementById('subtitulo_vino').style.width = (315 - tamano)+"px";
}

// Funciones que permiten el scroll en la galería
scrollList=new Array();
 
function registraScroll(idAbajo, idArriba, div, velAbajo, velArriba)
{
    if(scrollList[idAbajo]==null) scrollList[idAbajo]=new Array();
    if(scrollList[idArriba]==null) scrollList[idArriba]=new Array();
    scrollList[idAbajo].push(new Array(div, velAbajo));
    scrollList[idArriba].push(new Array(div, velArriba));
}
 
window.onload=inicializar;
 
function getEl(elementId)
{
    return document.getElementById(elementId);
}
 
function inicializar()
{
    for(key in scrollList)
    {
        var elemento=getEl(key);
        elemento.onmouseover=iniciaScroll;
        elemento.onmouseout=detieneScroll;
    }
}
 
function iniciaScroll()
{
    scrollDivs=new Array();
    velDivs=new Array();
    for(key in scrollList[this.id])
    {
        scrollDivs.push(getEl(scrollList[this.id][key][0]));
        velDivs.push(scrollList[this.id][key][1]);
    }
    identificador=setInterval('scrollNow()', 50);
}
 
function detieneScroll()
{
    clearInterval(identificador);
}
 
function scrollNow()
{
    for(key in scrollDivs)
    {
    var desplazamientoActual=scrollDivs[key].scrollTop;
    var nuevoDesplazamiento=desplazamientoActual+velDivs[key];
    scrollDivs[key].scrollTop=nuevoDesplazamiento;
    }
}

function prueba()
{
open('http://archivos.toroalbala.com', '', 'width=800,height=600,location=no,directories=no,status=no,menubar=no,scrollbars=yes,toolbar=no,fullscreen=yes')
}


// FUNCIONES DE ADMINISTRACIÓN

// Hace aparecer el nombre del campo en la barra de título del recuadro de campos
function rellenar_campo(identificador)
{
	var titulo = "campo_titulo"+identificador, introducido = "campo"+identificador;
	document.getElementById(titulo).value = document.getElementById(introducido).value;
}

// Permite esconder o mostrar los recuadro de campos
function abrir_cerrar(identificador)
{
	var capa = "a_ocultar"+identificador;
	if (document.getElementById(capa).style.display == "none")
	{
		document.getElementById(capa).style.display = "block";
	}else	{
	 	document.getElementById(capa).style.display = "none";
	}
}

// Función que añade un recuadro de adición de campo, con id diferente
function nuevo_dato(idioma)
{
	var capa = document.createElement("div"), HTML;
	campos++;
	campos_validados = campos_validados+","+idioma+">>"+campos+">>normal";
	document.formu.comodin.value = campos_validados;
	HTML = "<div id='capa_contenedora_datos"+campos+"' style='margin: 10px; width: 480px;'><div OnClick='abrir_cerrar("+campos+")' style='background: #cc9933; width: 470px; font-weight: bold; padding-left: 5px; padding-right: 5px; height: 17px;'><div style='float: right' onClick=\"eliminar_dato("+campos+", "+idioma+", 'no')\">X</div><input type='text' id='campo_titulo"+campos+"' size='32' style='border-width: 0; background: #cc9933; font-weight: bold; color: #FFFFFF; margin: 0px;' readonly='yes'></input></div><div id='a_ocultar"+campos+"' style='border-style: dashed; border-width: 1px; border-color: #bca36d; border-top-width: 0; padding: 10px;'>Campo: <input type='text' name='campo"+campos+"' id='campo"+campos+"' size='32' maxlength='32' onKeyUp='rellenar_campo("+campos+");'><textarea name='contenido"+campos+"' style='width: 445px; height: 150px;'></textarea></div></div>";
	capa.innerHTML = HTML;
	// Se establece la capa como hija de la capa "capa_padre_datos"
	document.getElementById("capa_padre_datos"+idioma).appendChild(capa);
}

function nuevo_dato_esp(idioma)
{
	var capa = document.createElement("div"), HTML;
	campos++;
	campos_validados = campos_validados+","+idioma+">>"+campos+">>esp";
	document.formu.comodin.value = campos_validados;
	HTML = "<div id='capa_contenedora_datos_esp"+campos+"' style='margin: auto; width: 260px; margin-top: 10px; margin-bottom: 10px;'><div OnClick='abrir_cerrar("+campos+")' style='background: #993300; width: 250px; font-weight: bold; padding-left: 5px; padding-right: 5px; height: 17px;'><div style='float: right' onClick=\"eliminar_dato("+campos+", "+idioma+", 'si')\">X</div><input type='text' id='campo_titulo"+campos+"' size='32' style='border-width: 0; background: #993300; font-weight: bold; color: #FFFFFF; margin: 0px;' readonly='yes'></input></div><div id='a_ocultar"+campos+"' style='border-style: dashed; border-width: 1px; border-color: #993300; border-top-width: 0; padding: 10px;'>Campo: <input type='text' name='campo"+campos+"' id='campo"+campos+"' size='20' maxlength='20' onKeyUp='rellenar_campo("+campos+");'><br>Contenido: <input type='text' name='contenido"+campos+"' size='20' maxlength='20'></div></div>";
	capa.innerHTML = HTML;
	// Se establece la capa como hija de la capa "capa_padre_datos_esp"
	document.getElementById("capa_padre_datos_esp"+idioma).appendChild(capa);
}

// Función que permite eliminar el recuadro de adición dato
function eliminar_dato(identificador, idioma, esp)
{
	var contenedor, elemento_eliminar, elemento_padre, contenedor, idioma;
	// Se obtiene, a través de la ID, la capa para ser eliminada
	if (esp == "si")
	{
		contenedor = "capa_contenedora_datos_esp";
	}else
	{
		contenedor = "capa_contenedora_datos";
	}
	elemento_eliminar = document.getElementById(contenedor+identificador);
	// Se obtiene el elemento padre de la tabla
	elemento_padre = elemento_eliminar.parentNode;
	// Se elimina el elemento
	elemento_padre.removeChild(elemento_eliminar);
	campos_validados_div = campos_validados.split(","+idioma+">>"+identificador);
	campos_validados = campos_validados_div[0]+campos_validados_div[1];
	document.formu.comodin.value = campos_validados;
}

// Función de mostrado de capa de modificación de gamas
function mostrar(id, codigo, nombre)
{
	document.getElementById(id).style.display = "block";
	document.getElementById('nombre').value = nombre;
	document.getElementById('comodin').value = codigo;
	document.getElementById('imagen_gama').src = "imagenes/vinos/menu/"+codigo+".jpg";
}