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: "OmniWeb",
			versionSearch: "OmniWeb/",
			identity: "OmniWeb"
		},
		{
			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"
		},
		{
			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 getURI()
{
  var loc = window.location+"";
  var host= window.location.host+"";
  var uri = loc.substring(loc.indexOf(host)+host.length, loc.lastIndexOf(".page"));
  return uri;
}

function setInnerHTML(id,str)
{  
  var zone = (window.document.getElementById) ? window.document.getElementById(id) : window.document[id];
  zone.innerHTML = str;
}

function getTextWidth(texte)
{
  var largeur = 150;

  //Création d'un span caché que l'on "mesurera"
  var span = document.createElement("span");
  span.style.visibility = "hidden";
  span.style.position = "absolute";

  //Ajout du texte dans le span puis du span dans le corps de la page
  span.appendChild(document.createTextNode(texte));
  document.getElementsByTagName("body")[0].appendChild(span);

  //Largeur du texte
  largeur = span.offsetWidth;

  //Suppression du span
  document.getElementsByTagName("body")[0].removeChild(span);
  span = null;

  return largeur;
}

function getDate_YYYY_MM_DD(date)
{
  var jj = date.substring(0,2);
  var mm = date.substring(3,5);
  var aaaa = date.substring(6,10);
  document.write(aaaa+"/"+mm+"/"+jj); 
}

/**
 * Pour centrer la page et lui ajouter une bordure (en CSS)
 */
function setMasterDivID()
{
  document.getElementsByTagName("body").item(0).firstChild.id = "MASTER";
}

function goToPage (page)
{
  var url = page.split(',');
  if( url[0] == '' ) return;

  if (url[1] == '_self') window.location=url[0];
  else
  if (url[1] == '_blank') window.open(url[0]);
  else
    popup(url[0]);
}

function writeTruncatedTextBreadcrumb(width, htmlStr)
{
  var i,t,b;
  var sep = "\u00A0>\u00A0";
  var susp = "...";
  
  var ruler = document.getElementById('ruler');
  if(ruler==null) ruler = document.all['ruler'];

  while(true)
  {
    ruler.innerHTML = htmlStr;
    if(ruler.offsetWidth < width) break;
    t = htmlStr.split(sep);
    if(t[t.length-1] == susp) break;
    b = false;
    for ( i = 0 ; i < t.length ; i++ )
    {
      var levelWithoutLink = t[i].substring(t[i].indexOf(">")+1,t[i].indexOf("<", 2));
      if( !b && levelWithoutLink != susp )
      {
        htmlStr = htmlStr.replace(levelWithoutLink, susp );
        t[i] = susp;
        b = true;
      }
    }
  }
}

function reloadBreadcrumb(width,html)
{
  setTimeout(function(){writeTruncatedTextBreadcrumb(width,html)}, 1000);
}
