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 setFrameHeight(b, c)
{
    var a = document.getElementById(b);
    if (a != null) 
    {
        a.style.height = c + "px";
        a.setAttribute("height", c)
    }
}
var opsFrameResizer = 
{
    _height: 100,
    _isFirstCall: true,
    _isResizing: false,
    _browserMargin: ($.browser.msie ? 25 : 15),
    _frameIDV1: "iframeContent",
    _frameIDV2: "myFrame",
    _isOfferV2: true,
    _frameID: "",
    _minSize: 350,
    setHeight: function(b, a)
    {
        if (this._frameID == "") 
        {
            this._isOfferV2 = (document.getElementById(this._frameIDV2) != null);
            this._frameID = (this._isOfferV2 ? this._frameIDV2 : this._frameIDV1);
            this._minSize = (this._isOfferV2 ? 350 : 300)
        }
        this._height = Math.max(b, this._minSize) + (a ? this._browserMargin : 0);
        setFrameHeight(this._frameID, this._height)
    }
};
function resizeOpsTimeout()
{
    if (opsFrameResizer._isResizing)
    {
        opsFrameResizer.setHeight(opsFrameResizer._height, false);
        opsFrameResizer._isResizing = false;
    }
}
function resizeOpsFrame(htype, height)
{
    // First load or Tab resize
    if ((htype == "load") == (opsFrameResizer._isFirstCall)) 
    {
        opsFrameResizer._height = height ;
        opsFrameResizer._isResizing = false ;
        opsFrameResizer.setHeight(height, (height > 1));
    }
    else
    {
        // First resize
        if (htype == "resize")
        {
            if (opsFrameResizer._isFirstCall)
            {
                opsFrameResizer._isFirstCall = false ;
                if (height > 1)
                {
                    opsFrameResizer._height = height ;
                    opsFrameResizer.setHeight(height, true);
                }
            }
        }
        // Tab Load
        else 
        {
            if (height > opsFrameResizer._height)
            {
                opsFrameResizer._isResizing = true ;
                opsFrameResizer._height = height + opsFrameResizer._browserMargin ;
                setTimeout(resizeOpsTimeout, 500);
            }
            // Do a first call with minimum size in order to adjust height
            opsFrameResizer.setHeight(1, false);
        }
    }
}

function reloadBreadcrumb(width,html)
{
	setTimeout(function(){writeTruncatedTextBreadcrumb(width,html);},1000);
}

function generateLink(domainCookie,target,url,text,title,cssClass,id,popupWidth,popupHeight,doc,page,rel,onclick) {
  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+'\')"';    
      if(onclick != undefined && onclick != '') {
        linkToWrite += ' onclick="'+onclick+'"';
      }
    } else {
      if(url.indexOf(domainCookie) == -1 && url.indexOf('http://') == 0 && onclick == '') { //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 && onclick == '') { //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 += '"';
        if(onclick != undefined && onclick != '') {
          linkToWrite += ' onclick="'+onclick+'"';
        }
      }     
    }
    linkToWrite += '>'+text+'</a>';
  }
  document.write(linkToWrite);
}

/*------------ datepicker ------------------*/
$.datepicker.regional['fr'] = {
  closeText: 'Fermer',
  prevText: '&#x3c;Pr&#233;c',
  nextText: 'Suiv&#x3e;',
  currentText: 'Courant',
  monthNames: ['Janvier','F&#233;vrier','Mars','Avril','Mai','Juin',
               'Juillet','Ao&#251;t','Septembre','Octobre','Novembre','D&#233;cembre'],
  monthNamesShort: ['Jan','F&#233;v','Mar','Avr','Mai','Jun',
                    'Jul','Ao&#251;','Sep','Oct','Nov','D&#233;c'],
  dayNames: ['Dimanche','Lundi','Mardi','Mercredi','Jeudi','Vendredi','Samedi'],
  dayNamesShort: ['Dim','Lun','Mar','Mer','Jeu','Ven','Sam'],
  dayNamesMin: ['Di','Lu','Ma','Me','Je','Ve','Sa'],
  dateFormat: 'dd/mm/yy', firstDay: 1,
  isRTL: false};


var $strip = undefined;
var strip_left = 0;

/*------------ scrolling news ------------------*/
jQuery.fn.liScroll = function(settings) {
		settings = jQuery.extend({
		travelocity: 0.07,
    oldClass: 'midCurve',
    newClass: 'midCurveJS'
		}, settings)
    var widthAdjust = $(this).width();
    $(this).find('.space').html('&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;');
    $('.'+settings.oldClass).toggleClass(settings.newClass);
    if(widthAdjust != 0)
      $('.'+settings.newClass+' .tickercontainer').css('width',widthAdjust+'px');
		return this.each(function(){
				$strip = jQuery(this);
				$strip.addClass("newsticker");
				var stripWidth = 0;				
				var containerWidth = $strip.parent().parent().width();
				$strip.find("li").each(function(i){
				stripWidth += jQuery(this, i).width();
				});
				$strip.width(stripWidth);			
				//var defTiming = stripWidth/settings.travelocity;
				var totalTravel = stripWidth+containerWidth;								
        var delay = 0.1;

				//scrollnews(totalTravel, defTiming);
        strip_left = $strip.css("left");
        strip_left = parseInt(strip_left.substring(0, strip_left.length-2));				
        scrollnews(totalTravel, stripWidth);				
				$strip.hover(function(){
				jQuery(this).stop();
				},
				function(){
				var offset = jQuery(this).offset();
				var residualSpace = offset.left + stripWidth;
				var residualTime = residualSpace/settings.travelocity;
				//scrollnews(residualSpace, residualTime);
        scrollnews(residualSpace, stripWidth);
				});	
		});	
};

function ticker_start(tickerId, tickerBodyId) {
  var tickerSupported = false;
  var tickerContent=$("#"+tickerId).html();
  
  if (navigator.userAgent.indexOf("Firefox")!=-1 || navigator.userAgent.indexOf("Safari")!=-1) {
    $("#"+tickerId).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) {
    $("#"+tickerId).html("<DIV nowrap='nowrap' style='width:100%;'>"+"<SPAN ID='"+tickerBodyId+"' width='100%'></SPAN>"+"</DIV>");
    tickerSupported = true;
  }
  if(!tickerSupported)
    $("#"+tickerId).html(tickerContent); 
  else {
    $("#"+tickerBodyId).html(tickerContent);
    ticker_tick();
  }
}

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;
  }
};

