
//Classe de définition de Browser
function Browser() {
/*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
	Détection de la  plate forme
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*/

  if ( navigator.appVersion.indexOf('Win') != -1 )
    this.win = true;
  if ( navigator.appVersion.indexOf('Mac') != -1 )
    this.mac = true;
  if ( navigator.userAgent.indexOf('Linux') != -1 )
    this.linux = true;
	
/*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
	La plate forme en chaîne de caractères
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*/
  if ( this.win )
    this.plateForme = 'Windows';
  if ( this.mac )
    this.plateForme = 'Macintosh';
  if ( this.linux )
    this.plateForme = 'Linux';
	
/*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
	Détection du navigateur
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*/
    if (navigator.userAgent.indexOf('Opera')!=-1)
    this.opera = true;
  if (navigator.userAgent.indexOf('Konqueror')!=-1)
    this.konqueror = true;
  if (navigator.userAgent.indexOf('Safari')!=-1)
    this.safari = true;
  if (navigator.userAgent.indexOf('Firefox/1.0')!=-1)
    this.ff10 = true;
  if (navigator.userAgent.indexOf('Firefox/1.5')!=-1)
    this.ff15 = true;
  if (navigator.userAgent.indexOf('Netscape/7.0')!=-1)
    this.netscape = true;
  if (navigator.userAgent.indexOf('MSIE 7')!=-1)
    this.ie7 = true;
  if (navigator.userAgent.indexOf('MSIE 6')!=-1)
    this.ie6 = true;
	
/*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
	Le navigateur en chaîne de caractères
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*/
  if ( this.opera )
    this.navigateur = 'Opera';
  if ( this.konqueror )
    this.navigateur = 'Konqueror';
  if ( this.safari )
    this.navigateur = 'Safari';
  if ( this.ff10 || this.ff15 )
    this.navigateur = 'Firefox';
  if ( this.ie7 || this.ie6 )
    this.navigateur = 'Internet Explorer';
  if ( !this.navigateur )
    this.navigateur = 'inconnu';

/*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
	Instancier une nouvelle requête AJAX
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*/  
	this.getHttpObject = function() {
	if ( this.ie6 || this.ie7 )
	  return new ActiveXObject('Microsoft.XMLHTTP');
	else
	  return new XMLHttpRequest();
	}
 
/*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
	Fonction qui affecte une opacité
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*/
	this.setOpacity = function(el, valeur) {
	  //Sous IE
	  if ( this.ie7 || this.ie6 ) {
	    var op = parseInt(valeur*100);
	    el.style.filter = 'alpha(opacity='+op+')';
	  }
	  //Sous les autres navigateurs
	  else {
	    el.style.opacity = valeur;
	  }
	}

/*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
	Affecte une image de fond à un élément
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*/
	this.setBackground = function(elt, image, couleur) {
	  if ( this.ie6 ) {
	    elt.style.filter = 'progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\''+image+'\',sizingMethod=\'image\')';
	    elt.style.backgroundColor = couleur;
	  }
	  else //Sous Firefox et IE7
	    elt.style.background = 'url('+image+') '+couleur;
	}

/*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
	Affecte une taille visuelle à un élément
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*/
	this.setWidth = function(elt, valeur) {
	  if ( this.ie6 || this.ie7 )
	    elt.style.width = valeur + 'px';
	  else {
	    //Sous Firefox, on doit récupérer la bordure
	    var b = parseInt(elt.style.border||0);
	    //Et le padding
	    var p = parseInt(elt.style.padding||0);
	    //Pour les soustraire à la taille réelle
	    elt.style.width = (valeur-2*(b+p)) + 'px';
	  }
	}


/*XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
	 correctly handle PNG transparency in Win IE 5.5 & 6.
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX*/

	this.correctPNG =  function() 
	{
    var arVersion = navigator.appVersion.split("MSIE")
	   var version = parseFloat(arVersion[1])
	   if ((version >= 5.5) && (document.body.filters)) 
	   {
		  for(var i=0; i<document.images.length; i++)
		  {
			 var img = document.images[i]
			 var imgName = img.src.toUpperCase()
			 if (imgName.substring(imgName.length-3, imgName.length) == "PNG")
			 {
				var imgID = (img.id) ? "id='" + img.id + "' " : ""
				var imgClass = (img.className) ? "class='" + img.className + "' " : ""
				var imgTitle = (img.title) ? "title='" + img.title + "' " : "title='" + img.alt + "' "
				var imgStyle = "display:inline-block;" + img.style.cssText 
				if (img.align == "left") imgStyle = "float:left;" + imgStyle
				if (img.align == "right") imgStyle = "float:right;" + imgStyle
				if (img.parentElement.href) imgStyle = "cursor:hand;" + imgStyle
				var strNewHTML = "<span " + imgID + imgClass + imgTitle
				+ " style=\"" + "width:" + img.width + "px; height:" + img.height + "px;" + imgStyle + ";"
				+ "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
				+ "(src=\'" + img.src + "\', sizingMethod='scale');\"></span>" 
				img.outerHTML = strNewHTML
				i = i-1
			 }
		  }
	   }    
	}
}
//Instanciation de l'objet browser
var browser = new Browser();
// correction automaituque des images png si le version de EI = 6
 if (browser.ie6)	window.attachEvent("onload", browser.correctPNG);
