/* En general, si hay una ventana aux abierta y se le da a otro link q lleve a esa misma ventana aux, se cargará el nuevo contenido en ella pero sin volver a crear la ventana, de modo q las variaciones de tamaño o posición q esta pueda haber sufrido no se verán alteradas!!
*/

var anterior = 0;

// de la funcion mostrar()
var numero_id_viejo = 0;
var numero_id_nuevo = 0;

// de la funcion musica()
var indice_vent = 0;

// arrays correspondientes a los valores id y href de los links principales empleados en la funcion cerrar_auxiliares(),
// tambien en la funcion cerrar_fechas(), alternativa a la primera
var array_id_links = new Array("link_comp_bands", "link_contx_bands", "link_contc_bands", "link_bands_comp", "link_contx_comp", "link_contc_comp", "link_bands_contx", "link_comp_contx", "link_contc_contx", "link_bands_contc", "link_comp_contc", "link_contx_contc");
var array_href_links = new Array("compositions.html","context.php","contact.php","bands.html","context.php","contact.php","bands.html","compositions.html","contact.php","bands.html","compositions.html","context.php");

// array correspondiente a los valores id del link de home empleados en la funcion cerrar_todas() 
var array_id_home = new Array("casa1","casa2","casa3","casa4");

// contadores de si estan o no abiertas las ventanas auxiliares ventana_fechas, ventana_musica y nueva_ventana_trans,
// que vienen de las funciones fechas(), musica() y ventana_transsitio() respectivamente.
// estas variables contador pueden adoptar los valores:
//	* 0 : inicializacion/carga del archivo otras.js
//	* 1 : al abrir la ventana aux (al cerrar manualmente una ventana aux el valor seguira siendo 1 aunque la ventana este cerrada, pero eso no estorba al buen funcionamiento)
//	* -1 : al cerrar la ventana aux, por medio de abrir otra ventana aux (solo entre ventana_musica y nueva_ventana_trans)
var contador_vent_fechas = 0;
var contador_vent_transsitio = 0;
var contador_vent_musica = 0;

// variable contador de si está o no desplegado/visible el formulario de mail, utilizada en la funcion ver_mail()
var contador_link_mail = 0;
// variable contador de si está o no desplegado/visible el impressum, utilizada en la funcion ver_impressum()
var contador_link_impressum = 0;


// hace que se muestre el contenido de la pagina solo cuando esta se ha cargado completamente.
// mientras se carga se muestra el contenido alternativo "is coming..."
function init(nr_container) {

	array_altern = new Array("altern_1","altern_2","altern_3","altern_4");
	contenedor_altern = array_altern[nr_container];
	todo_altern = document.getElementById(contenedor_altern);
	todo_altern.style.display = "none";

	array_containers = new Array("container_bands","container_compositions","container_context","container_contact");
	contenedor = array_containers[nr_container]; 
	todo = document.getElementById(contenedor);
	todo.style.visibility = "visible";
}


function agrandar(element) {
	
	imagen = element;
	imagen.style.width = 120+"px";
	imagen.style.height = 120+"px";
	
	imagen.onmouseout = reducir;
}
function reducir() {
	
	imagen.style.width = 60+"px";
	imagen.style.height = 60+"px";
}



// Cierra una de las 2 ventanas aux de fechas, que se abririan a la vez en caso de un doble click sobre el link en macintosh.
// En windows, hace q el doble click abra y cierre ambas ventanas aux.
function fechas_extra() {
	ventana_fechas.close();
}

// abre la ventana auxiliar de fechas
function fechas(pagina_fechas) {
	
	// calculo la posicion horizontal de la ventana aux de fechas en funcion de la posicion horizontal actual de la ventana
	// principal en la pantalla del usuario, de modo q la ventana de fechas quede centrada respecto de ella
	if(window.outerWidth >= 450) {
		pos_fechas_horiz = parseInt(((window.outerWidth-450)/2) + window.screenX);
	} else {
		pos_fechas_horiz = window.screenX;
	}
	// Y una coordenada horizontal extra para Internet Explorer, q no reconoce window.screenX ni window.outerWidth:
	pos_fechas_horiz_ie = (screen.width - 450)/2;
	
	// cierra la ventana aux de transsitio si estuviese abierta
	if(contador_vent_transsitio == 1) {
		nueva_ventana_trans.close();
		contador_vent_transsitio = -1;
	}
	
	// cierro la ventana aux de fechas si estuviese abierta, para q cualquier cambio en la posicion o ancho de la ventana
	// principal q se haya realizado despues de abrir tal ventana aux quede registrado para la proxima ventana aux de fechas
	// si se apretara otra vez su link.
	// A diferencia del caso de las ventanas aux de musica y de transsitio, al sí poner aqui este bloque if no respeto el
	// posicionamiento q el usuario pueda haber elegido para la ventana aux de fechas, pero en este caso no me importa pq
	// la ventana fechas no tiene contenido variable, de modo q no seria necesario darle una segunda vez al link correspondiente
	// si la ventana ya esta abierta (si contador_vent_fechas==1)
	if(contador_vent_fechas == 1) {
		ventana_fechas.close();
		contador_vent_fechas = -1;
	}

	if(window.navigator.appName == "Microsoft Internet Explorer") {
		ventana_fechas = window.open(pagina_fechas, "ventana_aux2", "width=450, height=170, left="+pos_fechas_horiz_ie+", top=100 ,resizable=yes, scrollbars=yes, location=no, menubar=no, toolbar=no");
	} else {
		ventana_fechas = window.open(pagina_fechas, "ventana_aux2", "width=450, height=170, left="+pos_fechas_horiz+", top="+window.screenY+" ,resizable=yes, scrollbars=yes, location=no, menubar=no, toolbar=no");
	}
	
	ventana_fechas.focus();
	contador_vent_fechas = 1;
}


// cierra una de las 2 ventanas aux de transsitio, que podrian abrirse a la vez en caso de un doble click sobre el link en macintosh.
// En windows, hace q el doble click abra y cierre ambas ventanas aux.
// En el caso de los links a ventana aux de transsitio no ocurre como con los de listas de reproduccion de musica o fechas,
// q reaccionan al doble click abriendo dos ventanas aux identicas simultaneas, sino que en transsitio se abren dos pero una
// cierra a la otra. Pongo de todos modos, por si acaso, tambien esta funcion auxiliar que evita la duplicidad de la ventana
// aux, aunque en principio no parece necesaria para los links de transsitio. La unica desventaja es que ralentiza un poco
// la carga de la ventana aux en caso de doble click sobre uno de los links.
function transsitio_extra() {
	nueva_ventana_trans.close();
}

// abre la ventana auxiliar de transsitio desde los links-fotos de la pagina context.php
function ventana_transsitio(direccion) {
	
	// calculo la poscion horizontal de la ventana aux de transsitio en funcion de la posicion horizontal actual de la ventana
	// principal en la pantalla del ordenador del usuario, de modo q quede centrada respecto de ella si esta es más ancha, o
	// pegada al borde izq de la ventana principal si esta es menos ancha q la ventana aux de transsitio
	if(window.outerWidth < 708) {
		pos_trans_horiz = window.screenX;
	} else {
		pos_trans_horiz = parseInt(((window.outerWidth-708)/2) + window.screenX);
	}
	// para Internet Explorer otra coordenada, ya q no reconoce window.screenX ni window.outerWidth.
	// tb coordenada para la ventana aux placebo de musica si IE
	pos_trans_horiz_ie = (screen.width - 708)/2;
	
	// abre la ventana aux de transsitio y le da el foco
	if(window.navigator.appName == "Microsoft Internet Explorer") {
		nueva_ventana_trans = window.open(direccion, "ventana_aux1", "width=708, height=510, left="+pos_trans_horiz_ie+", top=100, resizable=yes, scrollbars=no, location=no, menubar=no, toolbar=no");
	} else {
		nueva_ventana_trans = window.open(direccion, "ventana_aux1", "width=708, height=510, left="+pos_trans_horiz+", top="+window.screenY+", resizable=yes, scrollbars=no, location=no, menubar=no, toolbar=no");
	}
	nueva_ventana_trans.focus();
	contador_vent_transsitio = 1;
	
	// cierra la ventana aux de fechas si estuviese abierta
	if(contador_vent_fechas == 1) {
		ventana_fechas.close();
		contador_vent_fechas = -1;
		nueva_ventana_trans.focus();
	}
	
	// cierra la ventana aux de reproduccion de musica si estuviese abierta
	if(contador_vent_musica == 1) {
		ventana_musica.close();
		contador_vent_musica = -1;
		nueva_ventana_trans.focus();
		
	// o crea una momentanea ventana aux de musica con el titulo transsitio, que se cierra enseguida, antes de
	// que se abra la ventana aux de transsitio. lo hago para asegurarme de que no queda otra ventana aux de musica abierta
	// (que venga de otra pagina) que no se cerraria (sin esta chapucilla) al abrir la ventana aux de transsitio.
	// t=10 corresponde al indice de los arrays de music.php.
	} else if(contador_vent_musica == 0) {
		
		if(window.navigator.appName == "Microsoft Internet Explorer") {
			ventana_musica = window.open("music.php?t=10","ventana_aux3","width=698, height=505, left="+pos_trans_horiz_ie+", top=100 ,resizable=no, scrollbars=no, location=no, menubar=no, toolbar=no");
		} else {
			ventana_musica = window.open("music.php?t=10","ventana_aux3","width=698, height=505, left="+pos_trans_horiz+", top="+window.screenY+" ,resizable=no, scrollbars=no, location=no, menubar=no, toolbar=no");
		}
		
		nueva_ventana_trans.focus();
		ventana_musica.close();
		contador_vent_musica = -1;
		contador_vent_musica = -1;
	}
	
	// if(contador_vent_musica == -1): no pongo esta opcion pq la variable contador_vent_musica solo puede ser -1
	// si se ha cerrado la ventana aux de musica al abrir la ventana aux de transsitio, o si se acaba de cerrar la 
	// ventana aux de musica al cargar otra lista de reproduccion en ella (y en este segundo caso la variable
	// contador_vent_musica vuelve a tener valor 1 por la nueva lista de reproduccion cargada).
	// En ninguno de ambos casos sera necesario cerrrar la ventana aux de musica, ya q o bien esta ya cerrada, o bien esta
	// abierta con una nueva lista de reproduccion y la variable contador_vent_musica tiene por lo tanto valor 1.
}

// Abre la ventana auxiliar de transsitio desde los links-flechas anterio y siguiente de la pagina transsitio.php.
// En tal caso no será necesario asegurarse (mediante una ventana placebo) de cerrar una posible ventana aux de musica abierta desde otra pagina principal q la actual, ni de cerrar la ventana aux de fechas, ya q ninguna de ambas ventanas aux podrá estar abierta, ya q la llamada a esta función sólo puede hacerse desde la propia ventana aux de transsitio, q ya al ser abierta por primera vez conlleva q se cierren las otras ventanas aux q pudieran estar abiertas.
function ventana_transsitio_flechas(direccion_flechas) {
	
	// calculo la poscion horizontal de la ventana aux de transsitio en funcion de la posicion horizontal actual de la ventana
	// principal en la pantalla del ordenador del usuario, de modo q quede centrada respecto de ella si esta es más ancha, o
	// pegada al borde izq de la ventana principal si esta es menos ancha q la ventana aux de transsitio
	if(window.outerWidth < 708) {
		pos_trans_horiz = window.screenX;
	} else {
		pos_trans_horiz = parseInt(((window.outerWidth-708)/2) + window.screenX);
	}
	// para Internet Explorer otra coordenada, ya q no reconoce window.screenX ni window.outerWidth.
	// tb coordenada para la ventana aux placebo de musica si IE
	pos_trans_horiz_ie = (screen.width - 708)/2;
	
	// abre la ventana aux de transsitio y le da el foco
	if(window.navigator.appName == "Microsoft Internet Explorer") {
		nueva_ventana_trans = window.open(direccion_flechas, "ventana_aux1", "width=708, height=510, left="+pos_trans_horiz_ie+", top=100, resizable=yes, scrollbars=no, location=no, menubar=no, toolbar=no");
	} else {
		nueva_ventana_trans = window.open(direccion_flechas, "ventana_aux1", "width=708, height=510, left="+pos_trans_horiz+", top="+window.screenY+", resizable=yes, scrollbars=no, location=no, menubar=no, toolbar=no");
	}
	
	nueva_ventana_trans.focus();
	contador_vent_transsitio = 1;
}


// cierra una de las 2 ventanas aux de musica, que se abririan a la vez en caso de un doble click sobre el link en macintosh.
// En windows, hace q el doble click abra y cierre ambas ventanas aux.
function musica_extra() {
	ventana_musica.close();
}

// abre la ventana auxiliar de reproduccion de musica, y cierra la anterior si la hubiera
function musica(lista_reproduccion,y) {
	
	// calculo la posicion vertical de la ventana aux de musica en funcion del alto y de la posicion vertical actual de la ventana
	// principal en la pantalla del usuario, tal q el borde superior de la ventana aux quede pegada al borde inferior de la ventana
	// principal. Si no hay suficiente espacio para ello, la ventana aux montará sobre la principal
	pos_musica_vert = window.outerHeight + window.screenY;
	// Y otras dos variables de posición para Internet Explorer, q no reconoce window.screenY ni window.outerHeight, tales q la ventana
	// aux de musica quede en la esquina inferior izquierda de la pantalla:
	pos_musica_vert_ie = screen.height - 283;
	pos_musica_horiz_ie = 0;


	// cierra la ventana aux de transsitio si estuviese abierta
	if(contador_vent_transsitio == 1) {
		nueva_ventana_trans.close();
		contador_vent_transsitio = -1;
	}

	// Cierra la ventana aux de fechas si estuviese abierta
	if(contador_vent_fechas == 1) {
		ventana_fechas.close();
		contador_vent_fechas = -1;
	}

	// if(contador_vent_musica == -1): no pongo esta opcion pq la variable contador_vent_musica solo puede ser -1
	// si se acaba de cerrar la ventana aux de musica al cargar otra lista de reproduccion en ella, con lo q la variable
	// contador_vent_musica vuelve a tener valor 1 por la nueva lista de reproduccion cargada, o si se acaba de cerrar la
	// ventana aux de musica placebo.
	// En ninguno de ambos casos sera necesario cerrrar la ventana aux de musica, ya q o bien esta ya cerrada, o bien esta
	// abierta con una nueva lista de reproduccion y la variable contador_vent_musica tiene por lo tanto valor 1.
	
	
	array_alturas_vent_musica = new Array("185","185","200","230","215","185","185","185","185","185","","185","200","185","185","");
	array_alturas_vent_musica_ie = new Array("200","200","215","245","230","200","200","200","200","200","","200","215","200","200","");
	array_alturas_vent_musica_op = new Array("185","150","230","270","250","200","200","270","135","270","","135","230","135","135","");

	if(window.navigator.appName == "Opera") {
		
		if(window.navigator.appVersion.substring(0,4) == "9.80" && window.navigator.appVersion.substring(6,20) == "Windows NT 6.1") {
			ventana_musica = window.open(lista_reproduccion, "ventana_aux3", "width=283, height=100, left="+window.screenX+", top="+pos_musica_vert+" ,resizable=yes, scrollbars=no, location=no, menubar=no, toolbar=no");
			ventana_musica.resizeTo(283, array_alturas_vent_musica[y]);
		} else {
			ventana_musica = window.open(lista_reproduccion, "ventana_aux3", "width=283, height=100, left="+window.screenX+", top="+pos_musica_vert+" ,resizable=yes, scrollbars=no, location=no, menubar=no, toolbar=no");
			ventana_musica.resizeTo(283, array_alturas_vent_musica_op[y]);
		}
		
	} else {
		
		if(window.navigator.appName == "Microsoft Internet Explorer") {
			ventana_musica = window.open(lista_reproduccion, "ventana_aux3", "width=283, height=100, left="+pos_musica_horiz_ie+", top="+pos_musica_vert_ie+" ,resizable=yes, scrollbars=no, location=no, menubar=no, toolbar=no");
			ventana_musica.resizeTo(283, array_alturas_vent_musica_ie[y]);
		} else {
			ventana_musica = window.open(lista_reproduccion, "ventana_aux3", "width=283, height=100, left="+window.screenX+", top="+pos_musica_vert+" ,resizable=yes, scrollbars=no, location=no, menubar=no, toolbar=no");
			ventana_musica.resizeTo(283, array_alturas_vent_musica[y]);
		}
	}
	
	ventana_musica.focus();
	indice_vent = y+1;
	contador_vent_musica = 1;
}


// hace visible el reproductor de la cancion/link clickeado, y cierra otro reproductor que pudiera estar abierto.
// para opera (excepto versión 9.80 en windows 7)
function mostrar(nueva) {
	
	if(numero_id_viejo!=0) {
		id_vieja = "reproductor"+ numero_id_viejo;
		cancion_vieja = document.getElementById(id_vieja);

		cancion_vieja.style.display = "none";	
	}
	
	numero_id_nuevo = ++nueva;
	id_nueva = "reproductor"+ numero_id_nuevo;
	cancion_nueva = document.getElementById(id_nueva);
	cancion_nueva.style.display = "block";
	
	numero_id_viejo = numero_id_nuevo;
}


// cierra todas las ventanas auxiliares (musica, fechas, transsitio) que pudieran estar abiertas, y redirecciona a
// la pagina correspondiente al link (principal) desde el que se ha llamado a esta funcion
function cerrar_auxiliares(indice_link) {

	id_link = array_id_links[indice_link];
	link_cierre = document.getElementById(id_link);
	
	if(contador_vent_fechas == 1) {
		ventana_fechas.close();
		contador_vent_fechas = -1;
	}
	if(contador_vent_transsitio == 1) {
		nueva_ventana_trans.close();
		contador_vent_transsitio = -1;
	}
	/*
	if(contador_vent_musica == 1) {
		ventana_musica.close();
		contador_vent_musica = -1;
	}
	*/

	link_cierre.href = array_href_links[indice_link];
}

// cierra todas las ventanas auxiliares (musica, fechas, transsitio) que pudieran estar abiertas, y redirecciona a la pagina de inicio
function cerrar_todas(indice_link_home) {

	id_home = array_id_home[indice_link_home];
	link_home = document.getElementById(id_home);
		
	if(contador_vent_fechas == 1) {
		ventana_fechas.close();
		contador_vent_fechas = -1;
	}
	if(contador_vent_transsitio == 1) {
		nueva_ventana_trans.close();
		contador_vent_transsitio = -1;
	}
	if(contador_vent_musica == 1) {
		ventana_musica.close();
		contador_vent_musica = -1;
	// o creo una momentanea ventana aux de musica con titulo vacio, que se cierra enseguida, antes de
	// que se cargue index.php. lo hago para asegurarme de que no queda la ventana aux de musica abierta
	// (que venga de otra pagina) que no se cerraria (sin esta chapucilla) al darle al link de home. No
	// puede en cambio ocurrir eso con las otras dos ventanas aux (transsitio y fechas), ya q estas no
	// podrán estra nunca abiertas si su variable contador_vent_ correspondiente es distinta de 1.
	// t=15 corresponde al indice de los arrays de music.php.
	} else if(contador_vent_musica == 0){
		
		if(window.navigator.appName == "Microsoft Internet Explorer") {
			ventana_musica = window.open("music.php?t=15","ventana_aux3","width=50, height=50, left=0, top="+(screen.height-50)+" ,resizable=no, scrollbars=no, location=no, menubar=no, toolbar=no");
		} else {
			ventana_musica = window.open("music.php?t=15","ventana_aux3","width="+(window.outerWidth-10)+", height=100, left="+(window.screenX)+", top="+(window.screenY)+" ,resizable=yes, scrollbars=yes, location=yes, menubar=no, toolbar=yes");
		}
		
		ventana_musica.opener.focus();
		ventana_musica.close();
		contador_vent_musica = -1;
	}
	// else if(contador_vent_musica == -1): no pongo esta opcion pq la variable contador_vent_musica solo puede ser -1
	// si se ha cerrado la ventana aux de musica al abrir la ventana aux de transsitio, o si se acaba de cerrar la 
	// ventana aux de musica al cargar otra lista de reproduccion en ella (y en este segundo caso la variable
	// contador_vent_musica vuelve a tener valor 1 por la nueva lista de reproduccion cargada).
	// En ninguno de ambos casos sera necesario cerrrar la ventana aux de musica, ya q o bien esta ya cerrada, o bien esta
	// abierta con una nueva lista de reproduccion y la variable contador_vent_musica tiene por lo tanto valor 1.

	link_home.href = "../index.php";
}

function ver_impressum() {
	
	element_impressum = document.getElementById("impressum");
	if(contador_link_impressum == 0) {
		element_impressum.style.display = "block";
		contador_link_impressum = 1;
	} else { // if(contador_link_impressum==1)
		element_impressum.style.display = "none";
		contador_link_impressum = 0;
	}
}

function ver_mail() {
	
	element_mail = document.getElementById("phpformmailer");
	if(contador_link_mail == 0) {
		element_mail.style.display = "block";
		contador_link_mail = 1;
	} else { // if(contador_link_mail==1)
		element_mail.style.display = "none";
		contador_link_mail = 0;	
	}
}

// de phpFormMailer
// CONTACTO
function validateForm() {

	var okSoFar=true;
	with (document.phpformmailer) {
		var foundAt = email_usuario.value.indexOf("@",0);
		  
		if (foundAt < 1 && okSoFar) {
			okSoFar = false;
			alert ("Por favor, introduce un email correcto");
			email.focus();
		}
		//var e1 = email.value;
	  	//var e2 = email2.value
	  	//if (!(e1==e2) && okSoFar) {
			//okSoFar = false
			//alert ("Email addresses you entered do not match.  Please re-enter.")
			//email.focus()
	  	//}
	
		/*if (thesubject.value=="" && okSoFar) {
			okSoFar=false;
			alert("Por favor, especifica el asunto de tu email");
			thesubject.focus();
		 }*/
		if (texto_usuario.value=="" && okSoFar) {
			okSoFar=false;
			alert("Por favor, introduce un texto");
			themessage.focus();
		}
		if (okSoFar==true) {
			block_spam_bots.value=4*3;//spam bots currently can not read JavaScript, if could then they'd fail the maths!
			submit();                  // do check for updatea often at:  www.TheDemoSite.co.uk 
		} 
	}
}

function volver_contacto() {
	
	location.href = "contact.php?s=1";
}

// inicialización de la variable contador para los links-años de la performance-list, tal que 0 indica que se acaba de cargar la página (y se mostrará por lo tanto el bloque más moderno desplegado por defecto) y 1 que ya se ha clikeado alguno de los links-años
contador_performancelist = 0;

function links_performancelist(anho,cuantos_anhos) {
	
	switch(contador_performancelist) {
		case 0:
			id_anho = "performancelist_anho_"+cuantos_anhos;
			bloque_anho = document.getElementById(id_anho);
			bloque_anho.style.display = "block";
			contador_performancelist = 1;
			break;
		case 1:
			cuantos_anhos = cuantos_anhos +1;
			for(var i=1;i<cuantos_anhos;i++) {
				id_anho = "performancelist_anho_"+i;
				bloque_anho = document.getElementById(id_anho);
		
				if(i==anho) {
					id_img_link_anho = "anho_"+i;
					img_link_anho = document.getElementById(id_img_link_anho);	
					img_link_anho.focus();
					bloque_anho.style.display = "block";
					contador_performancelist = 1;
				} else {
					bloque_anho.style.display = "none";
				}
			}
			break;
	}
}
