/**
	Cattura gli elementi della finestra secondo l'id specificato
	@param id : id dell'elemento da catturare
*/
function getElement(id) {
	if (document.getElementById) {
		return (document.getElementById(id));
	} else if (document.all) {
		return (document.all[id]);
	} else {
		if ((navigator.appname.indexOf("Netscape") != -1) && parseInt(navigator.appversion == 4)) {
			return (document.layers[id]);
		}
	}
}

/**
	Cattura gli elementi della finestra aventi il tag specificato
	@param tag : tag degli elementi da raccogliere
	@return : gli elementi della finestra aventi il tag specificato
*/
function getTagElements(tag)
{
	if (document.getElementsByTagName)
		return document.getElementsByTagName(tag);
	else if (document.all.tags)
		return document.all.tags(tag);
	return null;
}

/**
	Imposta in apertura esterna i link segnalati dall'attributo 'rel="external"'
*/
function setExternalLinks()
{
	var anchors = getTagElements("a");
	for (var i=0; i<anchors.length; i++)
	{
		var anchor = anchors[i];
		if (anchor.getAttribute("href") && anchor.getAttribute("rel") == "external") {
			anchor.onclick = openInNewWindow;		// associa l'evento
		}
	}
}

/**
	Gestisce l'evento di click sui link in modo che l'apertura avvenga su una nuova pagina
	@param evt : evento generato
*/
function openInNewWindow(evt)
{
	evt = (evt) ? evt : ((window.event) ? window.event : null);
	if (evt)
	{	
		var elem = (evt.target) ? evt.target : evt.srcElement;
		while (elem.tagName != 'A' && !(elem.tagName == 'INPUT' && elem.type == 'SUBMIT'))		// risale fino all'oggetto link genitore
			elem = (elem.parentNode) ? elem.parentNode : (elem.parentElement ? elem.parentElement : NULL );
		if (elem == null)
			return;
		if (elem.href)
		{	
			var newWindow = window.open(elem.href , "");
			newWindow.focus();
		}
	}
	return false;
}
