/******************************************************************************/
/* Nom          : user_agent.class.js                                         */
/* Auteur       : Octavo (JL)                                                 */
/* Date         : Fév. 2009                                                   */
/* Objet        : Classe de détection du navigateur utilisé                   */
/******************************************************************************/


/******************************************************************************/
/* void constructor user_agent(void)                                          */
/******************************************************************************/
function user_agent(){
  /****************************************************************************/
  /* Définition des attributs de la classe                                    */
  /****************************************************************************/
  this.application_name = navigator.appName;
  this.application_version_full = navigator.appVersion;
  
  this.application_version_min; // Sous version du navigateur
  
  /****************************************************************************/
  /* Définition des méthodes                                                  */
  /****************************************************************************/
  this.is_msie = is_msie; // Retourne un booléen si le navigateur est Internet Explorer
  this.is_ie6  = is_ie6; // Retourne un booléen vrai si la version du navigateur est IE6
  this.get_min_version = get_min_version;
  
  /****************************************************************************/
  /* Implémentation                                                           */
  /****************************************************************************/
  this.application_version_min = this.get_min_version();
  
  return;
}

/******************************************************************************/
/* Interface                                                                  */
/******************************************************************************/
function is_msie(){
  /****************************************************************************/
  /* Déclaration des variables locales                                        */
  /****************************************************************************/
  
  /****************************************************************************/
  /* Implémentation                                                           */
  /****************************************************************************/
  if(this.application_name == "Microsoft Internet Explorer"){
    return true;
  }
  
  return false;
}

function is_ie6(){
  /****************************************************************************/
  /* Déclaration des variables locales                                        */
  /****************************************************************************/
  
  /****************************************************************************/
  /* Implémentation                                                           */
  /****************************************************************************/
  if(this.application_name == "Microsoft Internet Explorer"){
    if(this.application_version_min.indexOf("6.") != -1){
      return true;
    }
  }
  
  return false;
}

function get_min_version(){
  /****************************************************************************/
  /* Déclaration des variables locales                                        */
  /****************************************************************************/
  var msie_position         = 0;
  var version_detail        = new String;
  
  var regexp                = new RegExp("[;]+", "g");
  var version_detail_parts  = new Array;
  
  var sub_version           = new String;
  
  /****************************************************************************/
  /* Implémentation                                                           */
  /****************************************************************************/
  msie_position = this.application_version_full.indexOf("(");
  
  version_detail = this.application_version_full.substring(msie_position);
  
  if(this.is_msie()){
    version_detail_parts = version_detail.split(regexp);
    sub_version = version_detail_parts[1];
  } else {
    sub_version = this.application_version_full.substring(0,this.application_version_full.indexOf("("));
  }
  
  return sub_version;
}
