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

