//*****************************************************************************
// Módulo de las fu//*****************************************************************************
// Módulo de las funciones para gestionar las estrellas y los textos de la lente.
// 
// Autor: Raúl Sánchez [raul.sanchezma@gmail.com]
// Web: Crisol de Leyendas [http://www.crisoldeleyendas.com]
// 
// 
//*****************************************************************************


<!--
//if (document.all){

//----------------------------------------------------------------------------
// Variables y código global.
//----------------------------------------------------------------------------

url = "http://www.crisoldeleyendas.com";	//Url de la web

//Variables para las estrellas
//Para poner más estrellas añadir más colores al array
var colores = new Array('ffffff','ffff66','ffffff','ffffff','ffff66','ffffff','ffff66'),
nStars = colores.length,	//Nº de estrellas
yIni = 320,		//Pos Y inicial
xIni = 705,		//Pos X
paso = 0.2,		//Vel movimiento
pasoAct = 0,	//Paso inicial (centro, separadas, etc)
yFin = 320,		//Pos Y final estrellas
xFin = 705,		//Pos X

ini = 1;		//Tamaño inicial, tiempo en menguar
gpaso = 1;		//Vel parpadeo

amplV = 0;		//Amplitud vertical del movimiento de estrellas
amplH = 0;		//Amplitud horizontal
diagV = 0;		//Diagonal vert del mov
diagH = 0;		//Diagonal horiz
movReloj = 0;	//false si las estrellas se mueven en sentido agujas del reloj
pararMov = false;	//true para retirar las estrellas de pantalla
brilloDownT = 0;	//Temporizador de la función 'brilloDown()'
brilloUpT = 0;		//Temporizador de la función 'brilloUp()'
delayT = 0;			//Temporizador de la función 'delay()'

//Variables para la transparencia de la capa de textos
var opacidad=0;		//Opacidad actual de capa
var transpPaso=30;	//Pasos por los que pasa la transparencia, aumentar para más velocidad
var apareceT;		//Timeout de la función 'aparece()'

//Crea las estrellas
var strHTML = "";	//String HTML
strHTML += '<div id="ie" class="ie"><div style="position:relative">';
//El bucle for acaba cuando ha creado un tag para cada estrella
for (i=0; i < nStars; i++)
	strHTML += '<div id="idStars'+i+'" class="stars"><font color="'+colores[i]+'">.</font></div>';

strHTML += '</div></div>';

//Crea la capa de textos de la lente
strHTML += '<div id="idTxt" class="lente-txt">';
strHTML += '	<table cellspacing="0" cellpadding="0" border="0"><tr><td id="idTdTxt" width="190">&nbsp;</td></tr></table>';
strHTML += '</div>';

//Crea la lente
strHTML += '<div id="lente" class="lente"">';
strHTML += '	<img border="0" src="'+ url +'/img/Lente.gif"></div>';

//Crea la capa del flash de música
strHTML += '<div id="flashMusic" class="flashMusic">';
strHTML += '	<OBJECT classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" WIDTH="30" HEIGHT="30">';
strHTML += '	<PARAM NAME="movie" VALUE="'+ url +'/archivos/JoanieMadden-TheLevelPlain.swf">';
strHTML += '	<PARAM NAME="quality" VALUE="high">';
strHTML += '	<PARAM NAME="wmode" VALUE="transparent">';
strHTML += '	<PARAM NAME="bgcolor" VALUE="#FEE0BA">';
strHTML += '	<EMBED src="'+ url +'/archivos/JoanieMadden-TheLevelPlain.swf" wmode="transparent" quality="high" bgcolor="#FEE0BA" WIDTH="30" HEIGHT="30" TYPE="application/x-shockwave-flash" PLUGINSPAGE="http://www.macromedia.com/go/getflashplayer"></EMBED>';
strHTML += '	</OBJECT>';
strHTML += '</div>';

//Lo crea en la web
document.write(strHTML);


var txt = new Array();	//Contiene los textos a mostrar en la lente
//Texto Inicio
txt[0] =  'Bienvenido a<br>';
txt[0] += 'los Reinos de Valnessia.<br>';
txt[0] += 'Un mundo de fantas&iacute;a medieval<br>';
txt[0] += 'en el que las leyendas cobran vida<br>';
txt[0] += 'y los misterios habitan en cada rinc&oacute;n.<br>';
txt[0] += 'Valnessia es magia y espadas, es<br>';
txt[0] += 'misterio y enigmas, es el hogar de<br>';
txt[0] += 'h&eacute;roes &eacute;picos y deleznables villanos<br>';
txt[0] += 'donde cualquier bravo aventurero<br>';
txt[0] += 'puede tentar a los Dioses para<br>';
txt[0] += 'forjarse nombre y fortuna,<br>';
txt[0] += 'y hacerse con un hueco<br>';
txt[0] += 'en la historia.<br>';

//Texto Poesia
txt[1] =  'Las letras danzan<br>';
txt[1] += 'sobre el pergamino cuando<br>';
txt[1] += 'una pluma baila con ellas para<br>';
txt[1] += 'conjurar poes&iacute;a. A veces la danza<br>';
txt[1] += 'es melanc&oacute;lica, parece suspirar<br>';
txt[1] += 'crujidos de papel, otras rebosa alegre<br>';
txt[1] += 'ingenuidad, tan pura como el primer<br>';
txt[1] += 'rayo de luz de la ma&ntilde;ana. La poes&iacute;a<br>';
txt[1] += 'es una expresi&oacute;n del alma a trav&eacute;s de<br>';
txt[1] += 'la escritura, puede clavarse en el<br>';
txt[1] += 'coraz&oacute;n como una flecha o<br>';
txt[1] += 'adentrarse en &eacute;l como<br>';
txt[1] += 'un suspiro.<br>';

//Texto Glosario
txt[2] =  'Algunos eruditos<br>';
txt[2] += 'y escribanos van recogiendo<br>';
txt[2] += 't&eacute;rminos de todos los &aacute;mbitos<br>';
txt[2] += 'de Valnessia para comprensi&oacute;n de<br>';
txt[2] += 'los nuevos habitantes que llegan a sus<br>';
txt[2] += 'tierras. Vocablos de las ciencias de la<br>';
txt[2] += 'naturaleza y la cosmolog&iacute;a, del arte de<br>';
txt[2] += 'la magia y de lugares de los reinos, de<br>';
txt[2] += 'historia antigua y moderna. Este<br>';
txt[2] += 'pergamino es un compendio de<br>';
txt[2] += 'todo lo que los escribanos<br>';
txt[2] += 'consideran de alg&uacute;n<br>';
txt[2] += 'inter&eacute;s.<br>';

//Texto Novedades
txt[3] =  'En este pergamino<br>';
txt[3] += 'hallar&aacute;s el reflejo de<br>';
txt[3] += 'todos los cambios que se van<br>';
txt[3] += 'originando en el compendio de<br>';
txt[3] += 'pergaminos que forman Crisol de<br>';
txt[3] += 'Leyendas: unos revelan los nuevos<br>';
txt[3] += 'personajes que habitan entre sus<br>';
txt[3] += 'l&iacute;neas y las narraciones de sus &uacute;ltimas<br>';
txt[3] += 'aventuras, otros nuevos parajes<br>';
txt[3] += 'envueltos en brumas de misterio o<br>';
txt[3] += 'poderosas deidades que a&uacute;n<br>';
txt[3] += 'no se hab&iacute;an manifestado<br>';
txt[3] += 'ante los mortales.<br>';

//Texto Aventuras
txt[4] =  'El Dedo del<br>';
txt[4] += 'Destino se ha posado sobre<br>';
txt[4] += 'varios mortales que tendr&aacute;n un<br>';
txt[4] += 'papel decisivo en el transcurso de<br>';
txt[4] += 'los grandes acontecimientos que se<br>';
txt[4] += 'ciernen sobre los Reinos de Valnessia.<br>';
txt[4] += 'Las aventuras de algunos de estos<br>';
txt[4] += 'valientes est&aacute;n registradas en este<br>';
txt[4] += 'apartado en forma de narraci&oacute;n.<br>';
txt[4] += 'Quiz&aacute;s, alg&uacute;n d&iacute;a, estas historias<br>';
txt[4] += 'se conviertan en leyendas que<br>';
txt[4] += 'los bardos cantar&aacute;n a la<br>';
txt[4] += 'luz del fuego.<br>';

//Texto Personajes
txt[5] =  'He visto<br>';
txt[5] += 'muchas vidas pasar a<br>';
txt[5] += 'trav&eacute;s del Espejo y al final todas<br>';
txt[5] += 'se parecen, son diferentes facetas<br>';
txt[5] += 'de un mismo cristal que se empe&ntilde;an<br>';
txt[5] += 'tozudamente en ser diferentes.<br>';
txt[5] += 'Valerosos guerreros y exploradores,<br>';
txt[5] += 'enigm&aacute;ticos hechiceros e ilusionistas,<br>';
txt[5] += 'sacerdotes y paladines puritanos<br>';
txt[5] += 'o astutos p&iacute;caros y tah&uacute;res,<br>';
txt[5] += 'personajes que tienen su<br>';
txt[5] += 'propia imagen y su propia<br>';
txt[5] += 'historia.<br>';

//Texto Calendario
txt[6] =  'Tiempo...<br>';
txt[6] += 'El tiempo es un factor de<br>';
txt[6] += 'indudable importancia para los<br>';
txt[6] += 'habitantes de cualquier tierra, y<br>';
txt[6] += 'los habitantes de Valnessia no son<br>';
txt[6] += 'una excepci&oacute;n. En este pergamino se<br>';
txt[6] += 'registran desde los movimientos de<br>';
txt[6] += 'las lunas a los sucesos m&aacute;s nimios<br>';
txt[6] += 'que marcan el comp&aacute;s de sus vidas.<br>';
txt[6] += 'Vidas que caen como las hojas en<br>';
txt[6] += 'oto&ntilde;o. &Aacute;rboles del bosque de la<br>';
txt[6] += 'vida que se pierden en un<br>';
txt[6] += 'goteo infinito.<br>';


//Texto Herbolario
txt[7] =  'La bot&aacute;nica<br>';
txt[7] += 'es una misteriosa ciencia<br>';
txt[7] += 'profesada por numerosos<br>';
txt[7] += 'magos y sanadores de todas las<br>';
txt[7] += 'razas. Sus intrincadas ramificaciones<br>';
txt[7] += 'se extienden como profundas ra&iacute;ces a<br>';
txt[7] += 'trav&eacute;s de todas las tierras de<br>';
txt[7] += 'Valnessia desde tiempos inmemoriales.<br>';
txt[7] += 'En este pergamino se recogen los<br>';
txt[7] += 'seres vegetales que moran en<br>';
txt[7] += 'los reinos y los conocimientos<br>';
txt[7] += 'que sus habitantes tienen<br>';
txt[7] += 'sobre ellos.<br>';

//Texto Deidades
txt[8] =  'Muchos son<br>';
txt[8] += 'los dioses que coexisten<br>';
txt[8] += 'inevitablemente en el pante&oacute;n<br>';
txt[8] += 'divino disput&aacute;ndose el poder sobre<br>';
txt[8] += 'Valnessia. Algunos se profesan<br>';
txt[8] += 'rencores tan antiguos como el mismo<br>';
txt[8] += 'mundo, originados en disputas<br>';
txt[8] += 'corrompidas por numerosas mentiras y<br>';
txt[8] += 'batallas ganadas y perdidas. Una<br>';
txt[8] += 'interminable lucha entre el bien y el<br>';
txt[8] += 'mal que atrapa en medio del<br>';
txt[8] += 'camino a los d&eacute;biles<br>';
txt[8] += 'mortales.<br>';

//Texto Sacerdocios
txt[9] =  'Muchos mortales<br>';
txt[9] += 'eligen el insondable camino<br>';
txt[9] += 'de la fe para dar sentido a sus<br>';
txt[9] += 'vidas. Veneran y sirven a las<br>';
txt[9] += 'deidades a las que rinden culto con<br>';
txt[9] += 'tal de lograr los fines para los que<br>';
txt[9] += 'est&aacute;n convencidos que nacieron.<br>';
txt[9] += 'Los sacerdotes dedican su existencia<br>';
txt[9] += 'a lograr que sus dioses alcancen<br>';
txt[9] += 'una mejor posici&oacute;n en el mundo<br>';
txt[9] += 'terrenal y, en consecuencia,<br>';
txt[9] += 'en la divina c&uacute;pula<br>';
txt[9] += 'celestial.<br>';

//Texto Mapa
txt[10] =  'Norte, sur,<br>';
txt[10] += 'este u oeste. No importa su<br>';
txt[10] += 'ubicaci&oacute;n, nada puede escapar<br>';
txt[10] += 'a la magia del Mapa de Ashaz. En<br>';
txt[10] += '&eacute;l se reflejan todos los lugares del<br>';
txt[10] += 'mundo: reinos &eacute;lficos o humanos,<br>';
txt[10] += 'sobre la tierra o bajo ella, bosques<br>';
txt[10] += 'grandes y peque&ntilde;os, monta&ntilde;as, r&iacute;os,<br>';
txt[10] += 'oc&eacute;anos, abismos o desiertos.<br>';
txt[10] += 'Descubre maravillosos lugares de<br>';
txt[10] += 'ensue&ntilde;o y tierras de pesadilla<br>';
txt[10] += 'donde moran criaturas<br>';
txt[10] += 'encantadas.<br>';

//Texto Posada
txt[11] =  'La Posada<br>';
txt[11] += 'Lunazur es una de las<br>';
txt[11] += 'construcciones m&aacute;s antiguas<br>';
txt[11] += 'que se conocen, mas nadie sabe<br>';
txt[11] += 'donde est&aacute;, puesto que va cambiando<br>';
txt[11] += 'de lugar por medio de alguna poderosa<br>';
txt[11] += 'brujer&iacute;a. Crea tu propio personaje<br>';
txt[11] += 'medieval y ad&eacute;ntrate en esta posada<br>';
txt[11] += 'm&aacute;gica donde podr&aacute;s exponerlo<br>';
txt[11] += 'a todo tipo de situaciones y hablar<br>';
txt[11] += 'con el resto de personajes<br>';
txt[11] += 'que la habitan. Interpreta<br>';
txt[11] += 'y disfruta.<br>';

var nTxt = txt.length;	//Nº de textos
var txtAct = 0;			//Texto activo

//Muestra estrellas y textos
function show(txt){
	//Entra si el texto mostrado es diferente al que se va a mostrar y
	//la lente está en pantalla
	if(txtAct!=txt && document.getElementById('lente').style.visibility == "visible"){
		showStars();
		showTexto(txt);
	}
}

//----------------------------------------------------------------------------
// Funciones para manejar las estrellas.
//----------------------------------------------------------------------------

//Parpadeo, mengua
function brilloDown(){
	ini-=gpaso;
	brilloDownT=setTimeout('brilloDown()',10);
	
	if (pararMov == false){
		//Cuando el brillo ha llegado al mínimo se incrementa
		if (ini < 2){
			clearTimeout(brilloDownT);	//Cancela la recursividad
			brilloUp();			//Pasa el control a 'brilloDown()'
		}
	}else{
		clearTimeout(brilloDownT);		//Cancela la recursividad
	}
}

//Parpadeo, incrementa
function brilloUp(){
	ini+=gpaso;
	brilloUpT=setTimeout('brilloUp()',10);
	if (pararMov == false){
		//Cuando el brillo ha llegado al máximo se mengua
		if (ini > 14){
			clearTimeout(brilloUpT);	//Cancela la recursividad
			brilloDown();		//Pasa el control a 'brilloDown()'
		}
	}else{
		clearTimeout(brilloUpT);		//Cancela la recursividad
	}
}

//Obtiene un aleatorio entre 'a' y 'b'
function aleatorio(a,b){
	return Math.round(Math.random()*(b-a)+a);
}

//Obtiene como resultado uno de los dos valores entrados
function unoDeDos(a,b){
	var ceroOuno = Math.round(Math.random());	//Var que vale 0 o 1
	var res=b;	//Resultado
	
	if (ceroOuno == 0)	res=a;
	
	return res;
}

//Define los parámetros del mov de las estrellas con aleatorios
function defParam(){
	var prob;		//Probabilidad
	
	//Obtiene la x de la parte supo de la pag para posicionar las estrellas sobre la lente
	xIni = xFin = GetPageOffsetLeft(document.getElementById('main_top')) + 593;;
	
	amplV = aleatorio(30,130);
	amplH = aleatorio(70,210);
	
	prob = aleatorio(1,4);
	if (prob == 1)	diagV = 60;		//Prob 1/4
	else			diagV = 70;
	diagH = 70;
	
	pasoAct = unoDeDos(0, 31);	//Define mov de rotación reloj o contrario reloj
	if (pasoAct == 0)	movReloj = 0;	//Mov reloj
	else				movReloj = 1;	//Mov contrario reloj
}

//Controla las estrellas, color y movimiento
function stars(){
	//Para cada estrella
	for (i=0; i < nStars; i++){
		var layer = document.getElementById('idStars'+i).style;
		
		//Estilo de capa: glow
		layer.filter='glow(color='+colores[i]+', strength='+ini+')';
		//Define la ruta de la estrella
		//El 100 es amplitud vertical, el 5 oscilación sup-inf
		layer.top= Ydelay+amplV*Math.sin((5*Math.sin((pasoAct-15.99)/10))+i*diagV)*Math.sin((pasoAct)/10)*Math.cos((pasoAct+i*25)/10);
		//El 180 es amplitud lateral, el 5 oscilación der-izq
		layer.left=Xdelay+amplH*Math.cos((5*Math.sin((pasoAct-15.99)/10))+i*diagH)*Math.sin((pasoAct)/10)*Math.cos((pasoAct+i*25)/10);
	}
	
	pasoAct+=paso;
	//Detiene las estrellas si se ha completado un ciclo de rotación (reloj o contrareloj)
	if((movReloj==0 && pasoAct>31)||(movReloj==1 && pasoAct>62))
		pararMov = true;
}

//Pone pos a seguir para seguir el mov marcado
function delay(){
	Ydelay = yIni+=(yFin-yIni)*1/20;
	Xdelay = xIni+=(xFin-xIni)*1/20;
	//Si 'pararMov' vale true se quitan las estrellas
	if(pararMov == false){
		stars();
		delayT = setTimeout('delay()',10);
	}else{
		document.getElementById('ie').style.visibility = 'hidden';
		clearTimeout(delayT);
	}
}

//Reinicia los parámetros necesarios para que el mov de estrellas empiece de 0
function showStars(){
	clearTimeout(brilloDownT);
	clearTimeout(brilloUpT);
	clearTimeout(delayT);
	pararMov = false;
	defParam();
	document.getElementById('ie').style.visibility = 'visible';
	delay();
	brilloUp();
}


//----------------------------------------------------------------------------
// Funciones para manejar la lente y los textos.
//----------------------------------------------------------------------------

//Muestra el texto indicado, oculta el resto
function showTexto(i){
	//Restaura los parámetros de transparencia
	//idTxt.filters.alpha.opacity=0;
	if (document.all)	document.getElementById('idTxt').filters.alpha.opacity = 0;
	else				document.getElementById('idTxt').MozOpacity = 0;
	
	opacidad=0;
	clearTimeout(apareceT);
	
	//Se pone el nuevo texto
	//document.getElementById("idTdTxt").firstChild.nodeValue = txt[i];
	//idTdTxt.firstChild.nodeValue = txt[i];
	//idTdTxt.innerHTML = txt[i];
	document.getElementById('idTdTxt').innerHTML = txt[i];
	txtAct = i;
	aparece('idTxt', opacidad);
}

// Devuelve la coordenada x de un elemento respecto a la pagina.
function GetPageOffsetLeft(el) {
	var x;
	
	x = el.offsetLeft;
	if (el.offsetParent != null)
		x += GetPageOffsetLeft(el.offsetParent);
	
	return x;
}

//Sitúa la lente en pantalla y los textos
function posLente(){
	var x = GetPageOffsetLeft(document.getElementById('main_top'));
	
	//Posiciona la lente
	document.getElementById('lente').style.left = x + 498 + 'px';
	document.getElementById('lente').style.visibility = 'visible';
	
	//Posiciona el flash de música
	document.getElementById('flashMusic').style.left = x + 538 + 'px';
	document.getElementById('flashMusic').style.visibility = 'visible';
	
	//Situa la capa de texto sobre la lente
	document.getElementById('idTxt').style.left = x + 498 + 23 + 'px';
}

//Opaca el objeto gradualmente hasta llegar a la opacidad indicada
function aparece(objId, opacidad) {
	if (document.getElementById) {
		//Si la opacidad no es máxima, continúa el proceso
		if (opacidad <= 100) {
			//Pone la opacidad en el objeto
			setOpacidad(objId, opacidad);
			//Aumenta la opacidad
			opacidad += transpPaso;
			//Recursividad
			apareceT = setTimeout("aparece('"+objId+"',"+opacidad+")", 80);
		}
	}
}

//Pone una opacidad dada en el objeto
function setOpacidad(objId, opacidad) {
	var obj = document.getElementById(objId);
	var opacidad = (opacidad == 100)?99.999:opacidad;
	
	// IE/Win
	obj.style.filter = 'alpha(opacity:'+opacidad+')';
	
	// Safari<1.2, Konqueror
	obj.style.KHTMLOpacity = opacidad/100;
	
	// Older Mozilla and Firefox
	obj.style.MozOpacity = opacidad/100;
	
	// Safari 1.2, newer Firefox and Mozilla, CSS3
	obj.style.opacity = opacidad/100;
}


//}
//-->