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/undefined.undefined",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"},{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"},{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();

// Fonction log pour debug
function log(msg){
  if(BrowserDetect.browser=="Firefox"){
    try{
      console.debug(msg)
    }catch(e){}
  }
}
