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 ruler = $('#ruler');
  ruler.html(htmlStr);
  ruler.find('span').each(function(i){
  	if(ruler.width() <= width) {
  		return;
  	}
   	$(this).find('a').html("...");
 });
}

function normalizePageName(name){
	var newName="";
	var name_b=name.toLowerCase();
	for(var i=0;i<name_b.length;i++){
		var ch='';
		var co=name_b.charCodeAt(i);
		if(co==130||co==138||co==136||co==137)ch='e';
		else if(co==133||co==131||co==132||co==160)ch='a';
		else if(co==139||co==140||co==141)ch='i';
		else if(co==147||co==148||co==149)ch='o';
		else if(co==150||co==151||co==154)ch='u';
		else if(co==135)ch='c';
		else if(co==32)ch='_';
		else ch=name_b.charAt(i);
		newName+=ch
	}
	return newName;
}

function reloadBreadcrumb(width,html)
{
	setTimeout(function(){writeTruncatedTextBreadcrumb(width,html)},1000);
}

function generateLink(domainCookie,target,url,text,title,cssClass,id,popupWidth,popupHeight,doc,page,rel) {
  var linkToWrite = text;
  if(url != '') {
    linkToWrite = "<a ";
    if(rel!='') linkToWrite += 'rel="'+rel+'" ';
    if(title!='') linkToWrite += 'title="'+title+'" ';
    if(cssClass!='') linkToWrite += 'class="'+cssClass+'" ';
    if(id!='') linkToWrite += 'id="'+id+'" ';
    if(target == 'popup') linkToWrite += 'href="javascript:popup(\''+url+'\',\''+popupWidth+'\',\''+popupHeight+'\')"';    
    else {
      if(url.indexOf(domainCookie) == -1 && url.indexOf('http://') == 0) { //linkout
        linkToWrite += 'href="'+url+'" onclick="javascript:linkStat(\'C\',\''+page+'\',\''+url+'\',\'S\'';
        if(target == '_blank' || target == 'blank') linkToWrite += ',\'1\')" target="_blank"';
        else linkToWrite += ')" target="_self"';      
      }
      else if(url.indexOf('http://') == -1 && url.indexOf('.page') == -1) { //linkdownload
        linkToWrite += 'href="'+url+'" onclick="javascript:linkStat(\'C\',\''+page+'\',\''+url+'\',\'T\'';
        if(target == '_blank' || target == 'blank') linkToWrite += ',\'1\')" target="_blank"';
        else linkToWrite += ')" target="_self"';
      }
      else { //link
        linkToWrite += 'href="'+url+'" target="';
        if(target == '_blank' || target == 'blank') linkToWrite += '_blank';
        else if(target == '_self' || target == 'self') linkToWrite += '_self';
        else linkToWrite += target;
        linkToWrite += '"';
      }     
    }
    linkToWrite += '>'+text+'</a>';
  }
  document.write(linkToWrite);
}

var Ticker = function(tickerId,tickerBodyId,width,rightToLeft,speed,paused) {
  this.tickerId = tickerId || "tickercontainer";
  this.tickerBodyId = tickerBodyId || "tickerbody";
  this.width = width || 305;
  this.rightToLeft = rightToLeft || false;
  this.speed = speed || 2;
  this.paused = paused || false;
  this.maxWidth = 0;
  this.scrollLeft = 0;
    
  this.start = function() {
    var tickerSupported = false;
    var tickerDiv = $("#"+this.tickerId);
    tickerDiv.css('overflow','hidden').css('display','block').css('width',this.width+'px');  
    tickerDiv.mouseover(function(){eval(tickerId+'.pause();');});
    tickerDiv.mouseout(function(){eval(tickerId+'.play();');});
    
    var border = "<SPAN style='width:"+this.width+";display:inline-block'>&#160;</SPAN>";    
    var tickerContent = border + tickerDiv.html() + border;
    this.maxWidth = getTextWidth(tickerContent);
    
    if (navigator.userAgent.indexOf("Firefox")!=-1 || navigator.userAgent.indexOf("Safari")!=-1) {
      tickerDiv.html("<TABLE cellspacing='0' cellpadding='0' width='100%'><TR><TD nowrap='nowrap'>"+"<SPAN ID='"+tickerBodyId+"' width='100%'>&nbsp;</SPAN>"+"</TD></TR></TABLE>");
      tickerSupported = true;
    }
    else if (navigator.userAgent.indexOf("MSIE")!=-1 || navigator.userAgent.indexOf("Opera")!=-1) {
      tickerDiv.html("<DIV nowrap='nowrap' style='width:100%;'>"+"<SPAN ID='"+tickerBodyId+"' width='100%'></SPAN>"+"</DIV>");
      tickerSupported = true;
    }
    if(!tickerSupported) {
      tickerDiv.html(tickerContent);
    }
    else {
      $("#"+this.tickerBodyId).html(tickerContent);
      tickerDiv.scrollLeft(this.rightToLeft ? this.maxWidth+this.width : 0);
      this.tick();
    }
  };
  this.tick = function () {
    var tickerDiv = $("#"+this.tickerId);
    var tickerBodySpan = $("#"+this.tickerBodyId);
    if(!this.paused) {
      var increment = this.speed * (this.rightToLeft ? -1 : 1);
      tickerDiv.scrollLeft(tickerDiv.scrollLeft()+ increment);
      this.scrollLeft += increment;
    }
    if(this.rightToLeft && tickerDiv.scrollLeft() > this.scrollLeft){
      tickerDiv.scrollLeft(this.maxWidth + this.width);
      this.scrollLeft = this.maxWidth + this.width;
    }    
    //$('#search_input_field').val('scrollLeft:'+tickerDiv.scrollLeft()+', this.scrollLeft:'+this.scrollLeft);
    if(!this.rightToLeft && tickerDiv.scrollLeft() < this.scrollLeft) {
      tickerDiv.scrollLeft(0);
      this.scrollLeft = 0;
    }
    window.setTimeout(this.tickerId+".tick();", 30);
  };
  this.pause = function () {
    this.paused = true;
  }
  this.play = function () {
    this.paused = false;
  }
};
