// Browser Detection

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.userAgent,
			   subString: "iPhone",
			   identity: "iPhone/iPod"
	    },
		{
			string: navigator.platform,
			subString: "Linux",
			identity: "Linux"
		}
	]

};
BrowserDetect.init();


//DISSOLVENZA IMMAGINI

var tmOutImg = 0; // per le imm. col mouseover

function toggle_visibility(idx){
  var oggetto = document.getElementById(idx);
  var alpha = 0;
  var quantita = 0.01;
  // Son già a zero da CSS
  /*oggetto.style.opacity = 0;
  oggetto.style.filter = 'alpha(opacity=0)';*/
  if(oggetto) {
    cambia_alpha(alpha,quantita,idx,1);
  }
}

function cambia_alpha(alpha,quantita,idx,tipo){
  var oggetto = document.getElementById(idx);

  alpha+=quantita;
  if(alpha>1) alpha = 1;
  else if(alpha<0) alpha = 0;
  oggetto.style.opacity = alpha;

  alpha=alpha*100;
  alpha=parseInt(alpha);
  oggetto.style.filter = 'alpha(opacity=' + alpha + ')';
  alpha=alpha/100;

  if(alpha>0 && alpha<1)
    if(tipo == 1)
      setTimeout(function(){cambia_alpha(alpha,1.1*quantita,idx,1);},50);
    else
      tmOutImg = setTimeout(function(){cambia_alpha(alpha,1.1*quantita,idx,2);},50);
}   

function appare(idx){
/*  var oggetto = document.getElementById(idx);*/
  var alpha = 0;
  var quantita = 0.2;
  // Son già a zero da CSS
  /*oggetto.style.opacity = 0;
  oggetto.style.filter = 'alpha(opacity=0)';*/
  clearTimeout(tmOutImg);
  cambia_alpha(alpha,quantita,idx,2);
}

function scompare(idx){
  /*var oggetto = document.getElementById(idx);*/
  var alpha = 1;
  var quantita = -0.2;
  /*oggetto.style.opacity = 1;
  oggetto.style.filter = 'alpha(opacity=100)';*/
  clearTimeout(tmOutImg);
  cambia_alpha(alpha,quantita,idx,2);
}

// MENU A DISCESA

var show = new Object(); // meccanismo per Opera Browser
var bottom = new Object();
var tmOutMenu = new Object();
var tmOutMenuAppScmp = new Object();
var menuHeight = new Object();

function initArrays() {
  bottom["menu_opere"] = 0;
  bottom["menu_luoghi"] = 0;
  bottom["menu_protag"] = 0;
  bottom["menu_tecniche"] = 0;
  bottom["menu_attivita"] = 0;
  bottom["menu_contatti"] = 0;

  tmOutMenu["menu_opere"] = 0;
  tmOutMenu["menu_luoghi"] = 0;
  tmOutMenu["menu_protag"] = 0;
  tmOutMenu["menu_tecniche"] = 0;
  tmOutMenu["menu_attivita"] = 0;
  tmOutMenu["menu_contatti"] = 0;

  tmOutMenuAppScmp["menu_opere"] = 0;
  tmOutMenuAppScmp["menu_luoghi"] = 0;
  tmOutMenuAppScmp["menu_protag"] = 0;
  tmOutMenuAppScmp["menu_tecniche"] = 0;
  tmOutMenuAppScmp["menu_attivita"] = 0;
  tmOutMenuAppScmp["menu_contatti"] = 0;

  menuHeight["menu_opere"] = 280;     // tutti
  menuHeight["menu_luoghi"] = 220;    // multipli
  menuHeight["menu_protag"] = 160;    // di
  menuHeight["menu_tecniche"] = 160;  // 20
  menuHeight["menu_attivita"] = 320;
  menuHeight["menu_contatti"] = 200;

  show["menu_opere"] = false;
  show["menu_luoghi"] = false;
  show["menu_protag"] = false;
  show["menu_tecniche"] = false;
  show["menu_attivita"] = false;
  show["menu_contatti"] = false;
}

function showItem(menu) {
  bottom[menu] += 20;
  var clip = "rect(0px,200px," + bottom[menu] + "px,-5px)";
  document.getElementById(menu).style.clip = clip;
  if(bottom[menu] < menuHeight[menu]) {
    tmOutMenu[menu] = setTimeout(function(){showItem(menu);}, 50);
  }
}

function hideItem(menu) {
  bottom[menu] -= 20;
  var clip = "rect(0px,200px," + bottom[menu] + "px,-5px)";
  document.getElementById(menu).style.clip = clip;
  if(bottom[menu] > 0) {
    tmOutMenu[menu] = setTimeout(function(){hideItem(menu);}, 50);
  } else
    show[menu] = false;
}

function showMenu(idx) {
  if(document.getElementById(idx)) {
    show[idx] = true;
    showMn(idx);  // rigiro strano per Opera che attivava il mouseover anche sui menu invisibili
  }
}

function showMn(idx) {
  if(show[idx] && document.getElementById(idx)) {
    clearTimeout(tmOutMenu[idx]);
    showItem(idx);
  }
}

function hideMenu(idx) {
  if(document.getElementById(idx)) {
    clearTimeout(tmOutMenu[idx]);
    hideItem(idx);
  }
}

function pausecomp(millis) {
  var date = new Date();
  var curDate = null;
  
  do { curDate = new Date(); }
  while(curDate-date < millis);
}
 
//per ora le due cambia_alpha per Img e Mn sono separate: cercare di riunirle in futuro!
function cambiaAlphaMn(alpha,quantita,idx){
  var oggetto = document.getElementById(idx);
  alpha+=quantita;
  if(alpha > 0.93) alpha = 0.93;
  else if(alpha < 0) alpha = 0;
  oggetto.style.opacity = alpha;

  alpha=alpha*100;
  alpha=parseInt(alpha);
  oggetto.style.filter = 'alpha(opacity=' + alpha + ')';
  alpha=alpha/100;

  if(alpha>0 && alpha<0.93)
    tmOutMenuAppScmp[idx] = setTimeout(function(){cambiaAlphaMn(alpha,1.2*quantita,idx);},100);
}   

function appareMn(idx){ // RIV
/*  var oggetto = document.getElementById(idx);*/
  if(document.getElementById(idx).style.opacity == 1) return;
  var alpha = 0;
  var quantita = 0.2;
  // Son già a zero da CSS
  /*oggetto.style.opacity = 0;
  oggetto.style.filter = 'alpha(opacity=0)';*/
  clearTimeout(tmOutMenuAppScmp[idx]);
  tmOutMenuAppScmp[idx] = setTimeout(function(){cambiaAlphaMn(alpha,quantita,idx);},200);
  //cambiaAlphaMn(alpha,quantita,idx);
}

function scompareMn(idx){ // RIV
  /*var oggetto = document.getElementById(idx);*/
  var alpha = 1;
  var quantita = -0.2;
  /*oggetto.style.opacity = 1;
  oggetto.style.filter = 'alpha(opacity=100)';*/
  clearTimeout(tmOutMenuAppScmp[idx]);
  tmOutMenuAppScmp[idx] = setTimeout(function(){cambiaAlphaMn(alpha,quantita,idx);},200);
  //cambiaAlphaMn(alpha,quantita,idx);
}

// Vecchio codice per il cambio di immagine al passaggio del mouse
/*if (document.images)
{
image1 = new Image;
image2 = new Image;
image1.src = "images/bluefish_madewith_button.png";
image2.src = "images/bluefish_madewith_button_2.png";
}
function chgImg(name, image)
{
if (document.images)
{
document[name].src = eval(image+".src");
}
}*/
