//// TAMAÑO DEL PLIEGO Y CUADROS  ////////
//Determina el tamanio del pliego y de los cuadros en funcion del tamanio
//de la ventana del navegador, incluso si el usuario redimensiona la ventana.

var altoVent;//Alto de la ventana del navegador, en pixeles.
var anchoVent;//Ancho de la ventana del navegador, en pixeles.
var numCuadros = 9;//Inicio, Presentacion, Festival, Noticias, Videos, Galeria, Discografia, Contacto.
var numFilas = 3; //numero de filas que tendra la rejilla.

// Funcion que almacena el estado actual en una variable global (cuadro en el que se encontraba al actualizar la pagina: sobre todo, al cambiar de idioma).
// Se recuperara este valor cuando haya que actualizar la pagina por cambio de idioma.
var estadoCuadro = 'inicio';
function estadoCuadroActual(cuadro){ estadoCuadro = cuadro; }

// Recarga la pagina index.php almacenando el estado actual.
function cambioIdioma(idioma){
	var eAct = estadoCuadro;
	var url = 'index.php?idioma='+idioma+'&cuadroAct='+eAct;
	if(navigator.userAgent.indexOf('MSIE') !=-1){ //Si el navegador es Internet Explorer...
		window.location.replace(url);
	} else {
		window.location.href = url;
	}
}

//Funcion que calcula el alto y el acho de la ventana del navegador, en pixeles:
function calculaAltoVent(){
	if(window.innerHeight){
		altoVent = window.innerHeight;
		anchoVent = window.innerWidth;
	} else {//caso de IE
		altoVent = document.body.clientHeight;
		altoVent = document.documentElement.clientHeight;
		anchoVent = document.documentElement.clientWidth;
	}
	var anxalt = [altoVent,anchoVent];
	return anxalt;
}
//Cambia el tamaño del logo mostrado:
function sizeLogo(){
    var anxalt = calculaAltoVent();
	var oImgLogo = _oid('imgLogo');
    if(anxalt[1] < 1050){
        oImgLogo.src = 'img/icons/logo-xacara-PQ.png';
		oImgLogo.style.left = '20px';
		oImgLogo.style.top = '10px';
    } else {
        oImgLogo.src = 'img/icons/logo-xacara.png';
		oImgLogo.style.left = '0px';
		oImgLogo.style.top = '0px';
    }
}

function detAltoVent(){	
	//Se calcula el acho y alto de la ventana del navegador:
	var anxalt = calculaAltoVent(); //recupera la matriz que alberga el ancho y alto de la ventana del navegador calculados por la funcion 'calculaAltoVent()'.
	altoVent = anxalt[0];
	anchoVent = anxalt[1];
	
	_oid('contenedor').style.height = altoVent + 'px';// el ancho autom�tico lo da la propiedad css: width:100%;
	_oid('pliego').style.height = altoVent*numFilas + 'px';
	var anchoPliego = anchoVent*numCuadros/numFilas;
	_oid('pliego').style.width = anchoPliego + 'px';
	
	_oid('inicio').style.height = altoVent + 'px';
	_oid('inicio').style.width = anchoVent + 'px';
	_oid('disco').style.height = altoVent + 'px';
	_oid('disco').style.width = anchoVent + 'px';
	_oid('video').style.height = altoVent + 'px';
	_oid('video').style.width = anchoVent + 'px';
	_oid('info').style.height = altoVent + 'px';
	_oid('info').style.width = anchoVent + 'px';
	_oid('galeria').style.height = altoVent + 'px';
	_oid('galeria').style.width = anchoVent - ptoDx + 'px';	
	_oid('repertorio').style.height = altoVent + 'px';
	_oid('repertorio').style.width = anchoVent + 'px';
	
	_oid('noticias').style.height = altoVent + 'px';
	_oid('noticias').style.width = anchoVent - ptoDx + 'px';
	_oid('contacto').style.height = altoVent + ptoDy + 'px';
	_oid('contacto').style.width = anchoVent + 'px';
	_oid('festival').style.height = altoVent + ptoDy + 'px';
	_oid('festival').style.width = anchoVent - ptoDx + 'px';

	colocaCuadro(estadoCuadro);
}

/////////////////////////////////////////////////////////////////////
//*** MOVIMIENTO PLIEGO ***//
var posFinalX;
var posFinalY;
var posCuadroX;
var posCuadroY;
var ptoDx = 0;
var ptoDy = 0;
var senX;
var senY;
var timeoutMov = 50;
var tiemoutLogo = 65;
var evento = null;
var idMPx;
var idMPy;
var controlT = 2;
var iraCuadro;
var cuadroActual;
var cuadroFuncionando;
var contadorGaleria=0;
var contadorDisco=0;
var contadorNoticias=0;
var contadorContacto=0;
var contadorInfo=0;
var contadorFestival=0;

function colocaCuadro(id_cuadro){
	estadoCuadroActual(id_cuadro);
	iraCuadro = id_cuadro;
	var args1 = colocaCuadro.arguments[1];
	if(iraCuadro!='video'){
		_oid('conteVideos').innerHTML = "";
	}
	//Llamada a la peticion Ajax para la presentacion preliminar, solo la primera vez:
	switch (iraCuadro){
		case 'galeria':
			var eldir = args1;
			if(contadorGaleria == 1 && eldir == undefined){break}
			if(args1 != undefined){
				eldir = "?eldir="+args1;
			}else{
				eldir = "";
			}
			runAjax('php/menuGal.php' + eldir,'menuGal');
			contadorGaleria = 1;
			break;
		case 'disco':
			if(contadorDisco == 1){break}
			runAjax('php/menuDisco.php','menuDisco');
			contadorDisco = 1;
			break;
		case 'repertorio':
			runAjax('php/repertorio.php','repertorio','conteRepertorio');
			break;
		case 'video':
			runAjax('php/listaVideos.php','video','conteVideos');
			break;
		case 'noticias':
			if(contadorNoticias == 1){break}
			runAjax('php/noticias.php','noticias','conteNoticias');
			contadorNoticias=1;
			break;
		case 'contacto':
			if(contadorContacto == 1){break}
			runAjax('php/contacto.php','contacto','conteContacto');
			contadorContacto = 1;
			break;
		case 'info':
			if(contadorInfo == 1){break}
			runAjax('php/info.php','info','conteInfo');
			contadorInfo = 1;
			break;
		case 'inicio':
			runAjax('php/inicio.php','inicio','conteinicio');
			break;
		case 'festival':
			if(contadorFestival == 1){break}
			runAjax('php/festivalLista.php','festival','conteFestival');
			contadorFestival = 1;
			break;
	}
	//Posicion inicial del pliego:
	var posPliegoX = _oid('pliego').offsetLeft;
	var posPliegoY = _oid('pliego').offsetTop;
	//Posicion inicial del cuadro:
	posCuadroX = _oid(id_cuadro).offsetLeft;//Posicion del cuadro respecto del pliego. Es una cantidad
	posCuadroY = _oid(id_cuadro).offsetTop;//siempre positiva, que hay que sumar a la posicion del pliego.
	
	//Ajustes del punto destino D para los margenes.
	ptoDx = 0;
	ptoDy = 0;
	
	var difX = posPliegoX + posCuadroX - ptoDx;//Distancia x del cuadro al punto D.
	var difY = posPliegoY + posCuadroY - ptoDy;//Distancia y del cuadro al punto D.
	posFinalX = posPliegoX - difX;
	posFinalY = posPliegoY - difY;
	
	//Determinar la direccion:
	if(difX <= 0){senX = 1;} else {senX = -1;}// '1' mov. horizontal hacia la dcha.; '-1' mov. horizontal hacia la izda.
	if(difY <= 0){senY = 1;} else {senY = -1;}// '1' mov. vertical hacia arriba; '-1' mov. vertical hacia la abajo.
		
	movPliegoX(posFinalX,senX);
	movPliegoY(posFinalY,senY);
}

function movPliegoX(posFinalX,senX){
	_oid('logo').style.display = 'none';
	var oPliego = _oid('pliego');
	var newPosXpliego = oPliego.offsetLeft;
	
	if(newPosXpliego == posFinalX){
		clearTimeout(idMPx);
		senX = null;
		controlT -= 1;
		_oid('logo').style.display = 'block';
		if(controlT == 0){
			controlT = 2;
		}
		return;
	}
	var distX = Math.abs(posFinalX - newPosXpliego);
	var m = 0.001;
	var ex = senX * Math.ceil(m*(Math.pow(distX,2)));
	
	if(Math.abs(ex) >= 50){
		ex = senX*150;
	}
	oPliego.style.left = newPosXpliego + ex + 'px';
	
	idMPx = window.setTimeout("movPliegoX(posFinalX,senX)", timeoutMov);
}
function movPliegoY(posFinalY,senY){
	_oid('logo').style.display = 'none';
	var oPliego = _oid('pliego');
	var newPosYpliego = oPliego.offsetTop;
	
	if(newPosYpliego == posFinalY){
		senY = null;
		clearTimeout(idMPy);
		controlT -= 1;
		_oid('logo').style.display = 'block';
		if(controlT == 0){
			controlT = 2;
		}
		return;
	}
	var distY = Math.abs(posFinalY - newPosYpliego);
	var m = 0.001;
	var ey = senY * Math.ceil(m*(Math.pow(distY,2)));
	if(Math.abs(ey) >= 100){
		ey = senY*150;
	}
	oPliego.style.top = newPosYpliego + ey + 'px';
	
	idMPy = window.setTimeout("movPliegoY(posFinalY,senY)", timeoutMov);
}

//Funcion para mostrar el menu:
function muestraMenu(clave){
	var oMenu = _oid('menu');
	var oSubMenu = _oid('submenu');
	if(clave == 'si'){
		if(navigator.userAgent.indexOf('MSIE') !=-1){ //Si el navegador es Internet Explorer debe cerrarse la foto grande porque este navegador no lo admite...
			jspopviewer.close();
		}
		if(altoVent < 840){
			_oid('subMenuActualidad').style.display = 'none';
			_oid('subMenuVideos').style.display = 'none';
			_oid('subMenuDisco').style.display = 'none';
			_oid('subMenuRepertorio').style.display = 'none';
			_oid('subMenuGaleria').style.display = 'none';
			_oid('subMenuInfo').style.display = 'none';
			_oid('subMenuContacto').style.display = 'none';
			_oid('subMenuFestival').style.display = 'none';
		}else{
			_oid('subMenuActualidad').style.display = 'block';
			_oid('subMenuVideos').style.display = 'block';
			_oid('subMenuDisco').style.display = 'block';
			_oid('subMenuRepertorio').style.display = 'block';
			_oid('subMenuGaleria').style.display = 'block';
			_oid('subMenuInfo').style.display = 'block';
			_oid('subMenuContacto').style.display = 'block';
			_oid('subMenuFestival').style.display = 'block';
		}
		if(altoVent < 600){
			var oF = document.getElementById('menu');
			var arrDivsEnF = oF.getElementsByTagName('div');
			for(var i=0;i < arrDivsEnF.length; i++){
				if(arrDivsEnF[i].getAttribute('name') != null && arrDivsEnF[i].getAttribute('name') == 'espacioDespues'){
					arrDivsEnF[i].style.display = 'none';
				}
			}
		} else {
			oF = document.getElementById('menu');
				arrDivsEnF = oF.getElementsByTagName('div');
				for(k=0;k < arrDivsEnF.length; k++){
					if(arrDivsEnF[k].getAttribute('name') != null && arrDivsEnF[k].getAttribute('name') == 'espacioDespues'){
						arrDivsEnF[k].style.display = 'block';
					}
				}
		}
		oSubMenu.style.display = 'block';
		oMenu.style.display = 'block';
	} else {
		oMenu.style.display = 'none';
		oSubMenu.style.display = 'none';
	}
}

// Mueve el carrusel adelante o atras con velocidad constante:
var s = undefined;
var avF = 100, avM = 25, avS = 7;//Valores velocidad de avance: Fast, Medium y Slow.
var avance = undefined;
var miId = undefined;
var idcarr = undefined;
var oCarrusel = undefined;

function movCteCarrusel(sen,a,idCarr){
	switch (a){
		case 'fast': avance = avF; break;
		case 'med': avance = avM; break;
		case 'slow': avance = avS; break;
	}
	s = sen;//s > 0 => carrusel se mueve hacia la derecha (o abajo), y viceversa.
	idcarr = idCarr;
	oCarrusel = _oid(idcarr);
	
	var widthCarr = oCarrusel.offsetWidth;
	var leftPosCarr = oCarrusel.offsetLeft;
	var rightPosCarr = leftPosCarr + widthCarr;
	
	if(s < 0 && rightPosCarr < (anchoVent/2)+350){ return; }
	if(s > 0 && leftPosCarr > (anchoVent/2)-350){ return; }
	oCarrusel.style.left = leftPosCarr + (s*avance) + 'px';
	miId = window.setTimeout("movCteCarrusel(s,avance,idcarr)", 100);
}
function paraCarrusel(){
	clearTimeout(miId);
}

function corregirAnchoCarr(ide,an){
	var id = ide;
	var a = an;
	var oO = _oid(id);
	oO.style.width = a + 'px';
}

function colocaCarrusel(tipo,id){
	//Recuperar primero el ancho de la ventana del navegador en el momento actual: 'anchoVent' (es una variable global)
	//Calcular el punto de inicio del carrusel de miniaturas de fotos...:
	var posIni = (anchoVent/2)-375;//Punto medio de la ventana del navegador.
        var idcarrMov = null;
	if(tipo == 'galeria'){
            idcarrMov = 'carrMov-' + id;
	}
	if(tipo == 'disco'){
            idcarrMov = id;
            posIni -= 600;//Para que aparezca siempre visible el listado de los temas musiales.
	}
	if(tipo == 'festival'){
            idcarrMov = id;
	}
	_oid(idcarrMov).style.left = posIni+'px';
}

// Muestra el menu al pinchar en la foto del Inicio:
function mostrarMenuInicio(){
	_oid('menu').style.display = 'block';
	_oid('submenu').style.display = 'block';
}

function fondOscuro(accion){
	if(accion == 'abre'){
		_oid('submenu2').style.display = 'block';
	} else {
		_oid('submenu2').style.display = 'none';
	}
	
}

//Coloca el cuadro actual en su sitio al redimensionar la ventana del navegador:
function resetCuadro(){
	var eAct = estadoCuadro;
	detAltoVent();
	colocaCuadro(eAct);
}

//Despliega la lista 'canciu' del reproductor flotante.
function listaCanciu(accion){
    if(accion == 1){
      // _oid('listaCanciu').style.width='auto';
       _oid('listaCanciu').style.height='auto';
       return;
    }else{
       //_oid('listaCanciu').style.width='';
       _oid('listaCanciu').style.height='10px';
       return;
    }
}
//Redimensiona alto Legal:
function resizeAltoLegal(){
    var anxalt = calculaAltoVent();
    if(anxalt[0]<400){
        _oid('avisoLegal').style.height = 100+'px';
    } else {
        _oid('avisoLegal').style.height = anxalt[0]-250+'px';
    }
    
}
//Cierra Aviso Legal:
function cierrAvisoLegal(){
    _oid('conteAvisoLegal').style.display = 'none';
    fondOscuro('cierra');
}
//Para la reproduccion audio al llamar a un video:
function parAudio(){
	_oid('reproductorCanciu').innerHTML = "";
	_oid('reproductorCanciu').style.display = 'none';
}

//*** PROCESAR FORMULARIO:
//Procesa el formulario del mensaje de Contacto:
function getValsForm(objForm) {
	var str='';
	for(var i=0; i < objForm.elements.length; i++) {
		str += objForm.elements[i].name + '=' + escape(objForm.elements[i].value) + '&';
	}
	return str;
}
function procesaForm(oForm,serverpag,idi){
	var idioma = idi;
	var str = getValsForm(oForm);
	var cadena = serverpag + '?' + str;
	runAjax(cadena,'formulario','enviandoMensaje',idioma);
}

