// PREFERENCIAS ///////////////////
var anchoBox = '498'; // Anchura predeterminada
var trasp = '4'; //Transparencia predeterminada (de 0 a 10)
var contenedor = 'contenedor'; //Identificador de la capa 'contenedor'
var capaCargando = 'no' // Aparición de la capa 'cargando...'. Opciones: 'si' o 'no'
///////////////////////////////////

//document.observe("dom:loaded", preparaModal); // No funciona en Explorer 6 y 7
var ieVer=/*@cc_on function(){ switch(@_jscript_version){ case 5.0:return 5; case 5.1:return 5; case 5.5:return 5.5; case 5.6:return 6; case 5.7:return 7; }}()||@*/0;
if (/MSIE 6.0/i.test(navigator.userAgent)) {ieVer=6;}

// Preparación de las capas de la ventana modal
function preparaModal () {
	
	// Creación de la capa translúcida
	overDIV = document.createElement('div');
		overDIV.id = "tiny-over";
		overDIV.style.display = "none";
	
	// Párrafo con imagen y texto de estado "cargando..."
	loadP = document.createElement('p');
		loadPImg = document.createElement('img');
		loadPImg.setAttribute('src','/Fundacion/modal/loading.gif');
		loadPImg.setAttribute('alt','Cargando...');
		loadPImg.style.display="inline";
		loadP.appendChild(loadPImg);
		
	// Capa que contiene al estado "cargando..."
	loadDIV = document.createElement('div');
		loadDIV.id = "tiny-load";
		loadDIV.style.display = "none";
		loadDIV.appendChild(loadP);
	
	// Capa que contiene la página externa
	tboxDIV = document.createElement('div');
		tboxDIV.id = "tiny-tbox";
		tboxDIV.style.display = "none";
	
	// Inserción en el HTML de las capas anteriores
	document.getElementsByTagName('body')[0].appendChild(overDIV);
	document.getElementsByTagName('body')[0].appendChild(loadDIV);
	document.getElementsByTagName('body')[0].appendChild(tboxDIV);
	
	preparaModal2();
}

// Adición de evento a los enlaces con rel="tiny-show"
function preparaModal2 () {
todoEnlace = document.getElementsByTagName('a');
	for (i=0;i<todoEnlace.length;i++) {
		if (todoEnlace[i].rel == "tiny-show") {
			todoEnlace[i].onclick = function () {
				urlEnlace = this.href;
				preparaModal3(urlEnlace);
				return false;
			}
		}
	}
}

function preparaModal3 (urlVentana) {
	
	//Quitar scroll
	$$('html')[0].style.overflow = 'hidden';
	
	// Posicionamiento en IE6, ya que no puede ser "fixed"
	if (ieVer>0 && ieVer<7) {
		
		alturaNavegador = document.documentElement.clientHeight;
		alturaNavegador = (alturaNavegador/100)*12;
		offset = alturaNavegador;
		altura = document.documentElement.scrollTop + offset;
		
		$('tiny-tbox').style.top = altura;
		$('tiny-load').style.top = altura;
		
		$('tiny-over').style.height = document.body.scrollHeight;
		$('tiny-over').style.width = "100%";
		
		// Aplicación de z-index
		$(contenedor).style.zIndex = "1";
		$('tiny-tbox').style.zIndex = "1";
		$('tiny-over').style.zIndex = "1";
		
		alturaVista = document.viewport.getHeight();
		alturaPag = document.body.clientHeight;
		//alert(''+alturaVista+'----'+alturaPag+'');
		if (alturaVista > alturaPag) {
			sobrante = alturaVista-alturaPag;
			$('tiny-over').style.paddingBottom = sobrante+'px';
		}
		
		
	}
	
	// Aplicación de la transparencia
	traspIe = trasp*10;
	traspW3 = trasp/10
	if (ieVer>0) {
		$('tiny-over').style.filter = 'alpha(opacity='+traspIe+')';
	} else {
		$('tiny-over').style.opacity = traspW3;
	}
	
	quitaElementos(); // Se eliminan elementos SELECT y capas de calendario si hubiese alguna
	
	if (ieVer == 0) {
			document.getElementById('tiny-over').style.zIndex = '2019';
			document.getElementById('tiny-load').style.zIndex = '2020';
			document.getElementById('tiny-tbox').style.zIndex = '2021';
	}
	$$('body')[0].style.overflow = "visible";
	$('tiny-over').style.display = "block"; // Aparece en escena la capa translúcida
	if (capaCargando == 'si') {$('tiny-load').style.display = 'block';} // Capa de estado "cargando..."
	
	// Petición de la página
	new Ajax.Request(urlVentana, {
		method: 'get',
		onSuccess: function(transport) {
			new Insertion.Bottom('tiny-tbox', transport.responseText);
			completaModal();
		}
	});
	
	return false;
}


function completaModal () {
	
	
	
	//botonCerrar(); // Se inserta el botón de cerrar y se quita el enlace de volver.
	
	//Cambio de dimensiones en el caso de haber imagen vertical
	if ($('imagenModal')) {
		//Recuperación de las dimensiones de la imagen
		var myImage = new Image();
		myImage.name = $('imagenModal').src;
		//myImage.onload = function () {alert("'" + this.name + "' is " + this.width + " by " + this.height + " pixels in size.");}
		myImage.onload = function () {
			$('contenedorModal').style.width = this.width+'px';
			$('tiny-tbox').style.width = this.width+'px';
			izquierdo = document.viewport.getWidth();izquierdo = izquierdo-this.width;izquierdo = izquierdo/2;
			izquierdo = izquierdo+254;
			arriba = document.viewport.getHeight();arriba = arriba-this.height;arriba = arriba/4;
			$('tiny-tbox').style.left = izquierdo+'px';
			if (ieVer==0 || ieVer>6) {$('tiny-tbox').style.top = arriba+'px';}
			$('tiny-tbox').style.backgroundColor = 'lime';
			// Desaparece la capa de estado "cargando..." y aparece la página traida por AJAX
			$('tiny-load').style.display = '';
			$('tiny-tbox').style.display = 'block';
		}
		myImage.onerror = function () {alert('FALLO!!!!')}
		myImage.src = $('imagenModal').src;
		
	} else {
		
		izquierdo = document.viewport.getWidth();izquierdo = izquierdo-anchoBox;izquierdo = izquierdo/2;
		//arriba = document.viewport.getHeight();arriba = arriba-altoBox;arriba = arriba/4;
		$('tiny-tbox').style.left = izquierdo+'px';
		//if (ieVer==0 || ieVer>6) {$('tiny-tbox').style.top = arriba+'px';}
		
		// Desaparece la capa de estado "cargando..." y aparece la página traida por AJAX
		$('tiny-load').style.display = '';
		$('tiny-tbox').style.display = 'block';
	}
	
	// Dar altura máxima
	capaContenido = $$('#tiny-tbox div.descripcion')[0];
	if (capaContenido) {
		alturaCapa = capaContenido.scrollHeight;
		//alert(capaContenido.scrollHeight)
		if (alturaCapa > 311) {
			capaContenido.style.height = '31.2em';
			capaContenido.style.overflow = 'auto';
		}
	}
	
	
	
	//abre una nueva ventana modal
	enlacesModales = document.getElementById('tiny-tbox').getElementsByTagName('a');
	for (i=0;i<enlacesModales.length;i++) {
		if (enlacesModales[i].rel == 'tiny-show') {
			enlacesModales[i].onclick = function () {
				urlSegundaModal = this.href;
				cerrarVentana('parcial');
				preparaModal3(urlSegundaModal);

				return false;
			}
		}
	}
	
	enlaceCierra = $('cierra');
	if (enlaceCierra) {
		enlaceCierra.onclick = cerrarVentana;
	}
	$('tiny-over').onclick = cerrarVentana;
	
}

function cerrarVentana (modo) {
			if (modo != 'parcial') {$('tiny-over').style.display = "none";$('tiny-load').style.display = "none";}
			$('tiny-tbox').remove();
			
			tboxDIV = document.createElement('div');//este bloque esta repe, es mejor crear una funcion
			tboxDIV.id = "tiny-tbox";
			tboxDIV.style.display = "none";
			document.getElementsByTagName('body')[0].appendChild(tboxDIV);
			
			$$('html')[0].style.overflow = 'auto'; // Se repone el scroll vertical si es necesario
			
			ponElementos();
			
			return false;
		}

function quitaElementos () {
	calendario2 = document.getElementById('bio_calendar');
	if (!calendario2 && ieVer>0 && ieVer<7) {
		ocSel = document.getElementsByTagName('select');
		for (i=0; i<ocSel.length; i++) {
				ocSel[i].style.visibility = "hidden";
		}
	}
	if (calendario2 && ieVer>0) {
		calendario2.style.display = 'none';
	}
}
function ponElementos () {
	calendario2 = document.getElementById('bio_calendar');
	if (!calendario2 && ieVer>0 && ieVer<7) {
		ocSel = document.getElementsByTagName('select');
		for (i=0; i<ocSel.length; i++) {
				ocSel[i].style.visibility = "";
		}
	}
	if (calendario2 && ieVer>0) {
		calendario2.style.display = 'block';
	}
	return false;
}

function botonCerrar () {
	botonVolver = $('volver');
	botonVolver.parentNode.removeChild(botonVolver);
	
	enlaceSpan = document.createElement('span');
		enlaceSpan.appendChild(document.createTextNode('Cerrar'));
	enlace = document.createElement('a');
		enlace.href = '#';
		enlace.rel = 'tiny-hide';
		enlace.id = 'cierra';
		enlace.appendChild(enlaceSpan);
	capa = document.createElement('div');
		capa.id = 'botonCierra';
		capa.className = 'clear clearfix';
		capa.appendChild(enlace);
	
	$('contenedorModal').appendChild(capa);
	
}

// para que funcione en Explorer
Event.observe(window,'load', preparaModal);
