﻿// Controlla il tipo di browser
var userAgent = navigator.userAgent.toLowerCase();
var isOpera = ((userAgent.indexOf('opera') != -1) || (typeof(window.opera) != 'undefined'));
var isSafari = ((userAgent.indexOf('applewebkit') != -1) || (navigator.vendor == 'Apple Computer, Inc.'));
var isWebTv = (userAgent.indexOf('webtv') != -1);
var isIe = ((userAgent.indexOf('msie') != -1) && (!isOpera) && (!isSafari) && (!isWebTv));
var isIe4 = ((isIe) && (userAgent.indexOf('msie 4.') != -1));
var isMoz = ((navigator.product == 'Gecko') && (!isSafari));
var isKonqueror = (userAgent.indexOf('konqueror') != -1);
var isNs = ((userAgent.indexOf('compatible') == -1) && (userAgent.indexOf('mozilla') != -1) && (!isOpera) && (!isWebTv) && (!isSafari));
var isNs4 = ((isNs) && (parseInt(navigator.appVersion) == 4));
var isMac = (userAgent.indexOf('mac') != -1);

// Recupera un oggetto a partire dal suo identificativo
function getObject(id)
{
	if (document.getElementById)
	{
		return document.getElementById(id);
	}
	else if (document.all)
	{
		return document.all[id];
	}
	else if (document.layers)
	{
		return document.layers[id];
	}
	else
	{
		return null;
	}
}

// Recupera oggetti definiti da uno specifico tag all'interno di un genitore
function getObjects(parent, tag)
{
	if (parent == null)
	{
		return new Array();
	}
	else if (typeof parent.getElementsByTagName != 'undefined')
	{
		return parent.getElementsByTagName(tag);
	}
	else if (parent.all && parent.all.tags)
	{
		return parent.all.tags(tag);
	}
	else
	{
		return new Array();
	}
}

// Restituisce un evento recuperato in maniera corretta in base al browser
function getEvent(event)
{
	if (!event || isIe)
	{
		window.event.returnValue = false;
		window.event.cancelBubble = true;
		return window.event;
	}
	else
	{
		event.stopPropagation();
		event.preventDefault();
		return event;
	}
}

// Calcola la posizione di un elemento
function getOffset(element)
{
	var leftOffset = element.offsetLeft;
	var topOffset = element.offsetTop;

	while ((element = element.offsetParent) != null)
	{
		leftOffset += element.offsetLeft;
		topOffset += element.offsetTop;
	}

	return { 'left' : leftOffset, 'top' : topOffset };
}

// Calcola la coordinata sinistra di un elemento
function getOffsetLeft(element)
{
	var offset = element.offsetLeft;

	while ((element = element.offsetParent) != null)
	{
		offset += element.offsetLeft;
	}

	return offset;
}

// Calcola l'altezza della finestra
function getWindowHeight()
{
	var windowHeight = 0;
	
	if (typeof(window.innerHeight) == 'number')
	{
		windowHeight = window.innerHeight;
	}
	else if (document.documentElement && document.documentElement.clientHeight)
	{
		windowHeight = document.documentElement.clientHeight;
	}
	else if (document.body && document.body.clientHeight)
	{
		windowHeight = document.body.clientHeight;
	}
	
	return windowHeight;
}

// Apre una nuova finestra
function openWindow(url, width, height)
{
    var features = 'width=' + width + ',height=' + height + ',top=' + (screen.height - height) / 2 + ',left=' + (screen.width  - width) / 2;

    window.open(url, null, features);
}

// Inizializza le funzioni della pagina
function initPage()
{
	if (PopupMenus)
	{
		if (window.attachEvent && !isSafari)
		{
			window.attachEvent('onclick', hideMenu);
			window.attachEvent('onresize', hideMenu);
		}
		else if (document.addEventListener && !isSafari)
		{
			document.addEventListener('click', hideMenu, false);
			window.addEventListener('resize', hideMenu, false);
		}
		else
		{
			window.onclick = hideMenu;
			window.onresize = hideMenu;
		}

		PopupMenus.activate(true);
	}

	return true;
}

// Attiva il popup
function activateLightbox()
{
    var cookieEnabled = false;
    
    // Testa l'utilizzo dei cookie
    document.cookie = "testcookie=true";
    cookieEnabled = (document.cookie.indexOf("testcookie=") != -1);

    if (cookieEnabled)
    {
        var lightboxContent = document.getElementById('light');
        var lightboxOverlay = document.getElementById('fade');
        
        if (lightboxContent && lightboxOverlay && (document.cookie.indexOf("firstvisit=") == -1))
        {
            lightboxContent.style.display = 'block';
            lightboxOverlay.style.display = 'block';
            
            var century = 60 * 60 * 24 * 365 * 100;
            var expires = new Date();
            
            expires.setTime(expires.getTime() + century);
            
            document.cookie = "firstvisit=true; expires=" + expires.toGMTString() + "; path=/;";
        }
    }
}

// Nasconde rapidamente il menu visualizzato
function hideMenu(e)
{
	if (e && e.button && e.button != 1 && e.type == 'click')
	{
		return true;
	}
	else
	{
		PopupMenus.hide();
	}
}

// Dichiara i gestori per gli oggetti complessi
var Accordions = new Array();
var PopupMenus = new PopupMenuHandler();
var BBCodeEditors = new Array();
var MultiplePanels = new Array();