var bordeMarco = 3;
var ratioMarco = 1.4;
function irPagina(n, de, capaBase)	{
	var total = de;
	for (var i = 0; i < total; i ++)
		document.getElementById(capaBase + i).style.display = "none";
	var capa = document.getElementById(capaBase + n);
	var fotos = capa.getElementsByTagName("img");
		for (var i = 0; i < fotos.length; i ++)	{
			if (fotos[i].src != fotos[i].getAttribute("URL"))	{
				fotos[i].src = fotos[i].getAttribute("URL");
				fotos[i].setAttribute("URL", fotos[i].src);
			}

		}
	document.getElementById(capaBase + n).style.display = "block";
}

function mostrarComentario(foto, mini, comentario, opciones)	{
	return "<div align='center' ><i>" + comentario + "</i></div>";

}

function mostrarFecha(foto, mini, fecha, opciones)	{
	return "<div align='center' style='color: red;'>" + fecha + "</div>";
}

function menuGaleria(galeria, capa, tamPagina, capaBase)	{
	aMostrar = "<div align=center id='" + capa + "' style='";
	aMostrar += "border-color: aqua transparent; border-width: 3px; border-style: solid none;";
	aMostrar += "padding: 10px; margin: 10px;' >";
	var mayorFecha;
	var ncapas	= ((galeria.length % tamPagina) == 0) ? 0 : 1;
	ncapas	+= parseInt(galeria.length / tamPagina);

	for (var i = 0, total = ncapas; i < total; i ++)	{
		aMostrar += "<a href='javascript: irPagina(" + i + ", " + ncapas + ", \"" + capaBase + "\")' ";
		aMostrar += "title='" + galeria[i * tamPagina].fecha + " - ";
		mayorFecha  = (i < ncapas - 1) ? ((i * tamPagina) + (tamPagina) - 1) : (i * tamPagina + (galeria.length % tamPagina - 1));
		aMostrar += galeria[mayorFecha].fecha + "' ";

		aMostrar += "name='menu " + i + "' ";
		aMostrar += "class='menuGaleria' ";

		aMostrar += ">[ ";
		aMostrar += (i + 1).toString();
		aMostrar += " ]</a>";
	}

	aMostrar += "</div >";
	return aMostrar;
}

function cabeceraGaleria(galeria, miniatura, capa, lasDimensiones)	{
	return "";
}

var laMiniatura = "mini.php?imagen=";

function elTam(tam, porciento)	{
	return "" + Math.round((parseInt(tam[0]) * parseFloat(porciento))) + "x" + Math.round(parseInt(tam[1]) * parseFloat(porciento));
}
/*
function laMini(foto, tam)	{
	return laMiniatura + foto + "&tam=" + tam;
}
*/
function _galeriaPaginada(galeria, _miniatura, FILASxPAGINA, COLUMNASxFILA, capaBase, lasDimensiones, destino)	{
	filasPagina	= FILASxPAGINA;
	columnas	= COLUMNASxFILA;
	tamPagina	= filasPagina * columnas;
	ncapas	= ((galeria.length % tamPagina) == 0) ? 0 : 1;
	ncapas	+= parseInt(galeria.length / tamPagina);
	cargada	= false;
	vistas	= Array(ncapas);
	for (var i = 0; i < ncapas; i ++)	{
		vistas[i] = false;
	}
	var mayorFecha;
	var aMostrar = "<div id='" + capaBase + "' style='width: 100%'>";
	aMostrar += cabeceraGaleria(galeria, _miniatura, capaBase, lasDimensiones);
	aMostrar += (ncapas > 1) ? menuGaleria(galeria, "menuSup", tamPagina, capaBase) : "";

	// primer bucle: número de capas... (ncapas)

	for (var i = 0, total = ncapas; i < total; i ++)	{
		aMostrar += "<div id='" + capaBase + i + "' align=center style='display: ";
		aMostrar += (i < (total - 1)) ? "none;'>" : "block;'>";
		aMostrar += "<table ><tr>";
		// segundo bucle:
		var totalfotos = (i < (total - 1)) ? tamPagina : galeria.length % tamPagina;
		totalfotos += (totalfotos == 0) ? tamPagina : 0;
		for (j = 0; j < totalfotos; j ++)	{
			aMostrar += ((j % columnas == 0) && (j > 0)) ? "</tr></table><table ><tr>" : "";
			var fotoactual = (i * tamPagina) + j;
			tams = galeria[fotoactual].tam.split("x");
			tamMini = elTam(tams, _miniatura);
			var estaMini = galeria[fotoactual].miniatura(_miniatura);
//			var estaMini = laMini(galeria[fotoactual].URL, tamMini);
			var esteTam = galeria[fotoactual].tam + "," + tamMini;
			aMostrar += "<td >" + diapoAmpliable(estaMini, galeria[fotoactual].URL, esteTam, (i == (total - 1)), i, galeria[fotoactual].opciones, destino);
			aMostrar += mostrarComentario(galeria[fotoactual].URL, estaMini, galeria[fotoactual].comentario, galeria[fotoactual].opciones);
			aMostrar += mostrarFecha(galeria[fotoactual].URL, estaMini, galeria[fotoactual].fecha, galeria[fotoactual].opciones);
			aMostrar += "</td>";
		}
		aMostrar += "</tr></table>";
		aMostrar += "</div>";
	}
	aMostrar += (ncapas > 1) ? menuGaleria(galeria, "menuInf", tamPagina, capaBase) : "";
	aMostrar += "</div>";
	return aMostrar;
//	document.write(aMostrar);
}

function galeriaPaginada(galeria, miniatura, FILASxPAGINA, COLUMNASxFILA, capaBase, lasDimensiones, destino)	{
	document.write(_galeriaPaginada(galeria, miniatura, FILASxPAGINA, COLUMNASxFILA, capaBase, lasDimensiones, destino))
}

function Foto(URL, tam, fecha, comentario, opciones)	{
	this.URL	= URL;
	this.tam	= tam;
	this.fecha	= fecha;
	this.comentario	= comentario;
	this.opciones	= opciones;
}

Foto.prototype.miniatura = function(porcentaje)	{
	var resultado = laMiniatura + this.URL + "&tam=";
	resultado += parseInt(parseInt(this.tam.split("x")[0]) * porcentaje);
	resultado += "x";
	resultado += parseInt(parseInt(this.tam.split("x")[1]) * porcentaje);
	return resultado;
}

function procesarOpcionesHead(opciones)	{
	return "";
}

function procesarOpcionesOnload(opciones)	{
	return "";
}

function procesarOpcionesBody(opciones)	{
	return "";
}

function abrirVentana(destino, opciones)	{
	return window.open("", destino, opciones);
}

function ampliarDiapo(foto, ancho, alto, opciones, destino)	{ //window.open(); return;
	var contenido = "<html>\n\t<head>\n\t\t<title>\n\t\t\tgalería\n\t\t</title>\n\t\t";
	contenido += procesarOpcionesHead(opciones);
	contenido += "\n\t</head>\n\t<body ";
	contenido += "onclick='window.close()' ";
	contenido += procesarOpcionesOnload(opciones);
	contenido += " >\n\t\t";
	contenido += "<div style='";
	contenido += "width: ";
	contenido += ancho;
	contenido += "px; position: absolute; top: 0px; left: 0px; margin: 0px; overflow: hidden; height:";
	contenido += alto;
	contenido += "px' >\n\t\t\t";
	contenido += "<img src='" + foto;
	contenido += "' style='position: absolute; left: 0px; top: 0px;' />\n\t\t\t";
	contenido += "<div style='position: absolute; left: 0px; top: 0px; width: 100%; height: 100%; overflow: hidden;' >\n";
	contenido += procesarOpcionesBody(opciones);
	contenido += "\n\t\t\t</div >\n\t\t</div>\n\t</body>\n";
	contenido += "</html>";
	var opsVentana = "width=" + ancho + ",height=" + alto;
	opsVentana += ",top=" + (screen.height - alto) / 2;
	opsVentana += ",left=" + (screen.width - ancho) / 2;
	opsVentana += ",scrollbars=No";

	var ventana = abrirVentana(destino, opsVentana);
	ventana.document.open();
	ventana.document.write(contenido);
	ventana.document.close();
}

function mayor(a, b)	{
	if (a > b)
		return a;
	else
		return b;
}

function ampliarClick(opciones)	{
	// se ejecuta antes de la ampliación
	return "";
}

function masEstilos()	{
	return "";
}

function diapoAmpliable(mini, foto, tams, vista, n, opciones, destino)	{
	var tamMaxi = tams.split(",")[0];
	var tamMini = tams.split(",")[1];
	var recuadro = parseInt(mayor(parseInt(tamMini.split("x")[0]), parseInt(tamMini.split("x")[1])) * ratioMarco) + (bordeMarco * 4);
	var _Y = parseInt((recuadro - parseInt(tamMini.split("x")[1]) - bordeMarco * 2) / 2) - bordeMarco;
	var _X = parseInt((recuadro - parseInt(tamMini.split("x")[0]) - bordeMarco * 2) / 2) - bordeMarco;
	var aMostrar = "";

//	marco de la diapo
	aMostrar += "\n\t<div class='diapositiva' ";
	aMostrar += "style='";
	aMostrar += "width: " + recuadro + "px; height: " + recuadro + "px; ";
	aMostrar += masEstilos();
	aMostrar += "' ";
	aMostrar += " >";

//	Tag img
	aMostrar += "<a name='miniatura" + n + "' ";
	aMostrar += "class='miniatura' ";


	aMostrar += "href='javascript: ampliarDiapo(\"";
	aMostrar += foto + "\"," + tamMaxi.split("x")[0] + ", " + tamMaxi.split("x")[1];

	aMostrar += ", \"" + opciones + "\", \"" + destino + "\");'";

	aMostrar += "><img URL='" + mini + "' src='";
	aMostrar += (vista) ? mini : "";
	aMostrar += "' ";
	aMostrar += "name='miniatura" + n + "' ";
	aMostrar += "alt='" + mini + "' ";
	aMostrar += "title='" + foto + ", " + tamMaxi + "' ";
	aMostrar += "width='" + tamMini.split("x")[0] + "px' ";
	aMostrar += "height='" + tamMini.split("x")[1] + "px' ";


	aMostrar += "style='";// border: 3px inset; ";
	aMostrar += "top:" + _Y + "px; left:" + _X + "px;";
	aMostrar += "' ";

	aMostrar += "onclick='";
	aMostrar += ampliarClick(opciones);
	aMostrar += "'";
	aMostrar += " /></a>\n";

//	Fin marco
	aMostrar += "</div>";

	return aMostrar;
}

function mostrarPagina(galeria, columnas, vista)	{
	var aMostrar = "<div align='center' width='100%' >\n\t<table>\n\t\t<tr>";
	for (var i = 0, total = galeria.length; i < total; i ++)	{
		if ((i % columnas == 0) && (i > 0))	aMostrar += "\n\t\t</tr>\n\t</table>\n\t<table>\n\t\t<tr>";
		aMostrar += "\n\t\t\t<td style='margin: 10px'>\n";
		aMostrar += diapoAmpliable(galeria[i].mini, galeria[i].URL, galeria[i].tams, vista);
		aMostrar += "\n\t\t\t\t\t<div align='center' >" + galeria[i].comentario;
		aMostrar += "\n\t\t\t\t\t</br>";
		aMostrar += galeria[i].fecha + "\n\t\t\t\t\t</div>";
		aMostrar += "\n\t\t\t\t\t</td>";
//		aMostrar += "&nbsp;&nbsp;&nbsp;";
	}
	aMostrar += "\n\t\t</tr>\n\t</table>\n</div>\n";
	return aMostrar;

}

function activarPagina(n)	{
	for (var i = 0; i < Galeria.length; i ++)
		document.getElementById(Galeria[i].capa).style.display = "none";
	if (!Galeria[n].cargada)
		for (var i = 0, total = Galeria[n].galeria.length, imagenes = document.getElementById(Galeria[n].capa).getElementsByTagName("img"); i < total; i ++)
			imagenes[i].src = imagenes[i].getAttribute("URL");
	Galeria[n].cargada = true;
		document.getElementById(Galeria[n].capa).style.display = "block";
document.forms["dato"]["texto"].value = mostrarPagina(Galeria[n].galeria, 3, true);
}
