
// Web ACME - JavaScript para barra de menu y eventos comunes - Octavio Molano - Oct, 2007 / Jun-Ago, 2008

var menubar,bkPulsado=false;
var myflashShadowboxInjector = { start: function(url) { if (url!='#') {document.location=url;} } } // Para PFlow

function iniEventos(){ // Asigna eventos de pulsacion de raton a todas las opciones de la barra de menu
	if(document.getElementById('menubar')){
		menubar=document.getElementById('menubar').getElementsByTagName('div');

		for (var x=0;x<menubar.length;x++){
			if (menubar[x].id.substr(0,2)=='op'){
				menubar[x].onclick=evtPulsa;
			}
		}
	}
}



function apagaTodos() // Quita todos los resaltes
{
	for (var x=0;x<menubar.length;x++)
	{
		if (menubar[x].id.substr(0,2)=='op')
		{
			menubar[x].className='menuopc';
		}
	}
}

function evtPulsa() // Cambia la apariencia al pulsar
{
	var op;
	if (this.className!='pulsado')
	{
		apagaTodos();
		this.className='pulsado';
		op=this.id.substr(2,1);
		//document.location.href='sec'+op+(op==1||(op>=3&&op<=7)?'1':'')+'.php';
	}
}

function bk() // Vuelve a la pagina anterior (si no funciona JS o el referrer no es una pagina de este dominio, se usa el href)
{
	// Si se proviene de un pagina externa a este sitio web, se devuelve true, por lo que se ejecuta el enlace del href
	if (document.referrer.indexOf(document.location.href.substr(0,document.location.href.indexOf('/sec')))<0) {return true;}

	if (!bkPulsado)
	{
		bkPulsado=true;
		history.go(-1); // Si no hay historial, no hara nada, pero la siguiente pulsacion si
		return false;
	}
	else // Si se intento ir a la pagina anterior con JS y no tuvo efecto, se ejecuta el href en la siguiente pulsacion
	{
		return true;
	}
}

function muestraPopUpFS() // Abre un pop-up en pantalla completa mostrando el contenido del atributo href del enlace llamante
{
	window.open(this.getAttribute('href'),'acme_popup_'+Math.round(Math.random()*50000),'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=yes, width='+(screen.availWidth-13)+', height='+(screen.availHeight-39)+', left=0, top=0');
	return false;
}

function comportamientoEnlaces() // Hace que se abra un enlace en una ventana nueva o en un pop-up, segun su "rel"
{
	if (document.getElementsByTagName)
	{
		var enlaces = document.getElementsByTagName('a');
		for (var i=0; i<enlaces.length; i++)
		{
			if (enlaces[i].getAttribute('href'))
			{
				switch (enlaces[i].getAttribute('rel'))
				{
					case 'ext': // Enlace externo (en una ventana/pestaņa nueva)
						enlaces[i].target = '_blank';
					break;
					case 'pop': // Enlace pop-up a pantalla completa
						enlaces[i].onclick = muestraPopUpFS;
					break;
					case 'bk': // Enlace volver (ir hacia atras en el historial si es posible; si no, se sigue el enlace)
						enlaces[i].onclick = bk;
					break;
				}
			}
		}
	}
}

function agregaOnLoad(fn) // Aņade un evento para que sea cargado al inicio, tras cargar la pagina
{
	// Si el navegador lo admite, se disparan los eventos de inicio tras cargar el HTML,
	// aunque no esten aun cargados los ficheros externos, como las imagenes
	if (document.addEventListener) {document.addEventListener('DOMContentLoaded', fn, false);}
	else
	{
		// Para navegadores "patateros", como el Explorer, se usa el evento onload tradicional
		var regfn = (window.onload ? window.onload : function(){});
		window.onload = function(){regfn();fn();};
	}
}

agregaOnLoad(iniEventos);
agregaOnLoad(comportamientoEnlaces);