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.vendor,
                        subString: "Apple",
                        identity: "Safari"
                },
                {
                        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"
                },
                {       // 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 setDivHeight()
{
	var myHeight = 0;
	var myWidth = 0;
  
 // lettura dell'altezza e larghezza della finestra
 if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myHeight = window.innerHeight;
	myWidth = window.innerWidth;
  } else if( document.documentElement &&
      ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myHeight = document.documentElement.clientHeight;
	myWidth = document.documentElement.clientWidth;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myHeight = document.body.clientHeight;
	myWidth = document.body.clientWidth;
  }

	altezza_contenuto = document.getElementById('container').clientHeight;
	altezza_contenuto_centrale = document.getElementById('centerContent').clientHeight;
	altezza_menu = document.getElementById('mainMenu').clientHeight;
	/*
	alert("myHeight: " + myHeight + ", altezza_contenuto: " + altezza_contenuto + ", altezza_contenuto_centrale: " + altezza_contenuto_centrale + ", altezza_menu: " + altezza_menu);
	*/
	
	/*
	if(myHeight > altezza_contenuto_centrale  + 250)
	{
		center_content_height = myHeight-242-52-30;
		document.getElementById('centerContent').style.height = center_content_height + ("px");
	}
	if(altezza_contenuto_centrale < (altezza_menu + 30))
	{
		document.getElementById('centerContent').style.height = (altezza_menu + 30) + ("px");
	}
	*/
}

// La funzione per cambiare i fogli di stile dei font
/* ************** */
function fontChange(){
//createCookie("styleFont", arguments[0], 365);
	var i, a, main;
	a = document.getElementsByTagName("link");
	  for(i=0; i<(a.length); i++) {
		  stringa = String(document.getElementsByTagName("link")[i].getAttribute("title"));
		  if(document.getElementsByTagName("link")[i].getAttribute("rel").indexOf("style") != -1 && stringa.indexOf("font") != -1) {
			 document.getElementsByTagName("link")[i].disabled = true;
			 for(y=0; y<arguments.length; y++)
			  {
				  if(document.getElementsByTagName("link")[i].getAttribute("title") == arguments[y])
				  {
					  document.getElementsByTagName("link")[i].disabled = false;
				  }
			  }
		}
	}	
	setDivHeight;
}

// FUNZIONE CHE REGISTRA IL CSS-LAYOYUT ATTIVO
/* ************** */
function getActiveStyleSheetTemplate() {
 var i, a;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) // ciclo tutti i tag link
  {
	stringa = String(document.getElementsByTagName("link")[i].getAttribute("title"));
    if(a.getAttribute("rel").indexOf("style") != -1 && stringa.indexOf("width") != -1 && !a.disabled) // se c'� l'attributo style, l'attributo title e non � disabilitato
	{
		return a.getAttribute("title");
	}
  }
  return null;
}

// FUNZIONE CHE REGISTRA IL CSS-FONT ATTIVO
/* ************** */
function getActiveStyleSheetFont() {
 var i, a;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) // ciclo tutti i tag link
  {
	stringa = String(document.getElementsByTagName("link")[i].getAttribute("title"));
    if(a.getAttribute("rel").indexOf("style") != -1 && stringa.indexOf("font") != -1 && !a.disabled) // se c'� l'attributo style, l'attributo title e non � disabilitato
	{
		return a.getAttribute("title");
	}
  }
  return null;
}
// FUNZIONE CHE PRENDE DAL CODICE IL CSS-TEMPLATE PREDEFINITO (va a vedere se e' del tipo alternate stylesheet)
/* ************** */
function getPreferredStyleSheetTemplate() {
  var i, a;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) // ciclo tutti i tag link
  {
	stringa = String(document.getElementsByTagName("link")[i].getAttribute("title"));
    if(a.getAttribute("rel").indexOf("style") != -1
       && a.getAttribute("rel").indexOf("alt") == -1
       && stringa.indexOf("width") != -1
       ) return a.getAttribute("title");
  }
  return null;
}
// FUNZIONE CHE PRENDE DAL CODICE IL CSS-FONT PREDEFINITO (va a vedere se e' del tipo alternate stylesheet)
/* ************** */
function getPreferredStyleSheetFont() {
  var i, a;
  for(i=0; (a = document.getElementsByTagName("link")[i]); i++) // ciclo tutti i tag link
  {
	stringa = String(document.getElementsByTagName("link")[i].getAttribute("title"));
    if(a.getAttribute("rel").indexOf("style") != -1
       && a.getAttribute("rel").indexOf("alt") == -1
       && stringa.indexOf("font") != -1
       ) return a.getAttribute("title");
  }
  return null;
}
// CREAZIONE DEL COOKIE
/* ************** */
function createCookie(name,value,days){
if (days) {
    var date = new Date();
    date.setTime(date.getTime()+(days*24*60*60*1000));
    var expires = "; expires="+date.toGMTString();
  }
  else expires = "";
  document.cookie =name+"="+value+expires+"; path=/";
}
// LETTURA DEL COOKIE
/* ************** */
function readCookie(name) {
var nameEQ = name + "=";
  var ca = document.cookie.split(';');
  for(var i=0;i < ca.length;i++) {
    var c = ca[i];
    while (c.charAt(0)==' ') c = c.substring(1,c.length);
   if (c.indexOf(nameEQ) == 0)
   {
	   return c.substring(nameEQ.length,c.length);
   }
}
  return null;
}

window.onload = function(e) {
  var cookieTemplate = readCookie("styleTemplate");
  var cookieFont = readCookie("styleFont");
  var titleTemplate = cookieTemplate ? cookieTemplate : getPreferredStyleSheetTemplate();
  var titleFont = cookieFont ? cookieFont : getPreferredStyleSheetFont();
  templateChange(titleTemplate);
  fontChange(titleFont);
}
/* ************** */
window.onunload = function(e){
  var titleTemplate = getActiveStyleSheetTemplate();
  var titleFont = getActiveStyleSheetFont();
  createCookie("styleTemplate", titleTemplate, 365);
  createCookie("styleFont", titleFont, 365);
}


/* ************** */
var cookieTemplate = readCookie("styleTemplate");
var cookieFont = readCookie("styleFont");
var titleTemplate = cookieTemplate ? cookieTemplate : getPreferredStyleSheetTemplate();
var titleFont = cookieFont ? cookieFont : getPreferredStyleSheetFont();
templateChange(titleTemplate);
fontChange(titleFont);
