/*
Use in <HEAD> with DEFER keyword wrapped in conditional comments:
<!--[if lt IE 7]>
<script defer type="text/javascript" src="functions_lib.js"></script>
<![endif]-->
*/

/* Function to detect the browser and OS type */

<!--
var BrowserDetect = {
	init: function () {
		this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
		this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
		this.OS = this.searchString(this.dataOS) || "an unknown OS";
	},
	searchString: function (data) {
		for (var i=0;i<data.length;i++)	{
			var dataString = data[i].string;
			var dataProp = data[i].prop;
			this.versionSearchString = data[i].versionSearch || data[i].identity;
			if (dataString) {
				if (dataString.indexOf(data[i].subString) != -1)
					return data[i].identity;
			}
			else if (dataProp)
				return data[i].identity;
		}
	},
	searchVersion: function (dataString) {
		var index = dataString.indexOf(this.versionSearchString);
		if (index == -1) return;
		return parseFloat(dataString.substring(index+this.versionSearchString.length+1));
	},
	dataBrowser: [
		{
			string: navigator.userAgent,
			subString: "Chrome",
			identity: "Chrome"
		},
		{ 	string: navigator.userAgent,
			subString: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			string: navigator.vendor,
			subString: "Apple",
			identity: "Safari",
			versionSearch: "Version"
		},
		{
			prop: window.opera,
			identity: "Opera"
		},
		{
			string: navigator.vendor,
			subString: "iCab",
			identity: "iCab"
		},
		{
			string: navigator.vendor,
			subString: "KDE",
			identity: "Konqueror"
		},
		{
			string: navigator.userAgent,
			subString: "Firefox",
			identity: "Firefox"
		},
		{
			string: navigator.vendor,
			subString: "Camino",
			identity: "Camino"
		},
		{		// for newer Netscapes (6+)
			string: navigator.userAgent,
			subString: "Netscape",
			identity: "Netscape"
		},
		{
			string: navigator.userAgent,
			subString: "MSIE",
			identity: "Explorer",
			versionSearch: "MSIE"
		},
		{
			string: navigator.userAgent,
			subString: "Gecko",
			identity: "Mozilla",
			versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
			string: navigator.userAgent,
			subString: "Mozilla",
			identity: "Netscape",
			versionSearch: "Mozilla"
		}
	],
	dataOS : [
		{
			string: navigator.platform,
			subString: "Win",
			identity: "Windows"
		},
		{
			string: navigator.platform,
			subString: "Mac",
			identity: "Mac"
		},
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();

function apriPopupCentrata(nome, descr, titolo, lar, alt, feat){ 
var wdt = screen.width; 
var hgt = screen.height; 
var x = Math.round( (wdt / 2) - (lar / 2) ); 
var y = Math.round( (hgt / 2) - (alt / 2) ); 
var picPop=window.open('empty.html', '', 'width=' + lar + ',height=' + alt + ',left=' + x + ',screenX=' + x + ',top=' + y + ',screenY=' + y + ',' + feat);
picPop.document.write('<html><head><title>'+descr+' - '+titolo+'<\/title><\/head><body style="margin:0px;text-align:center">');
//picPop.document.write('<img src="'+nome+'" alt="'+descr+'" \/><br \/><b>'+descr+'<\/b><\/body><\/html>')
picPop.document.write('<img src="'+nome+'" \/><br \/><\/body><\/html>')
picPop.document.close() 
} 

function mostraImmagine(oggetto_link, nome, descr, titolo, lar, alt, feat) {
if ( BrowserDetect.OS == "Windows") {
	document.write('<a href="'+nome+'" title="'+descr+' - '+titolo+'" rel="sexylightbox">'+oggetto_link+'</a>');
}
else if ( BrowserDetect.OS == "Mac") {
	document.write('<a href="'+nome+'" title="'+descr+' - '+titolo+'" rel="sexylightbox">'+oggetto_link+'</a>');
}
else{
	document.write('<a href="javascript:apriPopupCentrata(\''+nome.replace("'", "\\'")+'\', \''+descr.replace("'", "\\'")+'\', \''+titolo.replace("'", "\\'")+'\', \''+lar+'\', \''+alt+'\', \''+feat+'\');">'+oggetto_link+'</a>');
};
}


function startStopFilm(start) {
    var IE = navigator.appName.indexOf("Microsoft") != -1;
    var film = IE ? window.mainMovie : window.document.mainMovie;
    if(start == 1 ) {film.Play();} else {film.StopPlay();}
}

///////////////////////////////////////////////////////
//Floating Menu for all browser except MS Internet Explorer

var floatingMenuId = 'floatdiv';  
var floatingMenu =  
{  
	targetX: 10,  
	targetY: 10,  
	hasInner: typeof(window.innerWidth) == 'number',  
	hasElement: typeof(document.documentElement) == 'object'  
	&& typeof(document.documentElement.clientWidth) == 'number',  
	menu:  
	document.getElementById  
	? document.getElementById(floatingMenuId)  
	: document.all  
	? document.all[floatingMenuId]  
	: document.layers[floatingMenuId]  
};  
floatingMenu.move = function ()  
{  
	floatingMenu.menu.style.left = floatingMenu.nextX + 'px';  
	floatingMenu.menu.style.top = floatingMenu.nextY + 'px';  
}  
floatingMenu.computeShifts = function ()  
{  
	var de = document.documentElement;  
	floatingMenu.shiftX =    
	floatingMenu.hasInner    
	? pageXOffset    
	: floatingMenu.hasElement    
	? de.scrollLeft    
	: document.body.scrollLeft;    
	if (floatingMenu.targetX < 0)  
	{  
		floatingMenu.shiftX +=  
		floatingMenu.hasElement  
		? de.clientWidth  
		: document.body.clientWidth;  
	}  
	floatingMenu.shiftY =   
	floatingMenu.hasInner  
	? pageYOffset  
	: floatingMenu.hasElement  
	? de.scrollTop  
	: document.body.scrollTop;  
	if (floatingMenu.targetY < 0)  
	{  
		if (floatingMenu.hasElement && floatingMenu.hasInner)  
		{  
			// Handle Opera 8 problems  
			floatingMenu.shiftY +=  
			de.clientHeight > window.innerHeight  
			? window.innerHeight  
			: de.clientHeight  
		}  
		else  
		{  
			floatingMenu.shiftY +=  
			floatingMenu.hasElement  
			? de.clientHeight  
			: document.body.clientHeight;  
		}  
	}  
}  
floatingMenu.calculateCornerX = function()  
{  
	if (floatingMenu.targetX != 'center')  
		return floatingMenu.shiftX + floatingMenu.targetX;  
	var width = parseInt(floatingMenu.menu.offsetWidth);  
	var cornerX =  
	floatingMenu.hasElement  
	? (floatingMenu.hasInner  
	? pageXOffset  
	: document.documentElement.scrollLeft) +   
	(document.documentElement.clientWidth - width)/2  
	: document.body.scrollLeft +   
	(document.body.clientWidth - width)/2;  
	return cornerX;  
};  
floatingMenu.calculateCornerY = function()  
{  
	if (floatingMenu.targetY != 'center')  
		return floatingMenu.shiftY + floatingMenu.targetY;  
	var height = parseInt(floatingMenu.menu.offsetHeight);  
	// Handle Opera 8 problems  
	var clientHeight =   
	floatingMenu.hasElement && floatingMenu.hasInner  
	&& document.documentElement.clientHeight   
	> window.innerHeight  
	? window.innerHeight  
	: document.documentElement.clientHeight  
	var cornerY =  
	floatingMenu.hasElement  
	? (floatingMenu.hasInner    
	? pageYOffset  
	: document.documentElement.scrollTop) +   
	(clientHeight - height)/2  
	: document.body.scrollTop +   
	(document.body.clientHeight - height)/2;  
	return cornerY;  
};  
floatingMenu.doFloat = function()  
{  
	var stepX, stepY;  
	floatingMenu.computeShifts();  
	var cornerX = floatingMenu.calculateCornerX();  
	var stepX = (cornerX - floatingMenu.nextX) * .07;  
	if (Math.abs(stepX) < .5)  
	{  
		stepX = cornerX - floatingMenu.nextX;  
	}  
	var cornerY = floatingMenu.calculateCornerY();  
	var stepY = (cornerY - floatingMenu.nextY) * .07;  
	if (Math.abs(stepY) < .5)  
	{  
		stepY = cornerY - floatingMenu.nextY;  
	}  
	if (Math.abs(stepX) > 0 ||  
	Math.abs(stepY) > 0)  
	{  
		floatingMenu.nextX += stepX;  
		floatingMenu.nextY += stepY;  
		floatingMenu.move();  
	}  
	setTimeout('floatingMenu.doFloat()', 20);  
};  
// addEvent designed by Aaron Moore  
floatingMenu.addEvent = function(element, listener, handler)  
{  
	if(typeof element[listener] != 'function' ||   
	typeof element[listener + '_num'] == 'undefined')  
	{  
		element[listener + '_num'] = 0;  
		if (typeof element[listener] == 'function')  
		{  
			element[listener + 0] = element[listener];  
			element[listener + '_num']++;  
		}  
		element[listener] = function(e)  
		{  
			var r = true;  
			e = (e) ? e : window.event;  
			for(var i = element[listener + '_num'] -1; i >= 0; i--)  
			{  
				if(element[listener + i](e) == false)  
				r = false;  
			}  
			return r;  
		}  
	}  
	//if handler is not already stored, assign it  
	for(var i = 0; i < element[listener + '_num']; i++)  
		if(element[listener + i] == handler)  
			return;  
	element[listener + element[listener + '_num']] = handler;  
	element[listener + '_num']++;  
};  
floatingMenu.init = function()  
{  
	floatingMenu.initSecondary();  
	floatingMenu.doFloat();  
};  
// Some browsers init scrollbars only after  
// full document load.  
floatingMenu.initSecondary = function()  
{  
	floatingMenu.computeShifts();  
	floatingMenu.nextX = floatingMenu.calculateCornerX();  
	floatingMenu.nextY = floatingMenu.calculateCornerY();  
	floatingMenu.move();  
}  
if (document.layers)  
	floatingMenu.addEvent(window, 'onload', floatingMenu.init);  
else  
{  
	floatingMenu.init();  
	floatingMenu.addEvent(window, 'onload',  
	floatingMenu.initSecondary);  
}  


//Floating menu for MS Internet Explorer
function setIEFloatMenuVariables(){
h=".pixelLeft=";v=".pixelTop=";dS="";sD=".style";
y="document.body.scrollTop";x="document.body.scrollLeft";checkIEFloatMenuLocationA()}
movex=0,movey=0,xdiff=0,ydiff=0,ystart=0,xstart=0
function checkIEFloatMenuLocation(){
object="object1";yy=eval(y);xx=eval(x);ydiff=ystart-yy;xdiff=xstart-xx-10;
if ((ydiff<(-1))||(ydiff>(1))) movey=Math.round(ydiff/10),ystart-=movey
if ((xdiff<(-1))||(xdiff>(1))) movex=Math.round(xdiff/10),xstart-=movex
eval(dS+object+sD+v+ystart);eval(dS+object+sD+h+xstart);
setTimeout("checkIEFloatMenuLocation()",10)}
function checkIEFloatMenuLocationA(){ystart=eval(y);xstart=eval(x)-60;}
// -->

