/*

 Browser.js - Browser (Release 3)
 ================================

 Von Markus Jung

 Implementiert die Klasse 'Browser' und stellt sie als Objekt zur Verfügung. Das Objekt ist notwendig, um browserunabhängige JavaScripts zu implementieren.

 Methoden
 - out string Name() = Internet Explorer|Safari|Navigator|Firefox|false: Name
 - out float Version() = [Version]|false: Version
 - out string Betriebssystem() = Windows|Mac OS|false: Betriebssystemfamilie
 - out boolean istKompatibel() = true|false: Kompatibilität prüfen

 Abhängigkeiten
 - Keine

 Geschichte
 - 3.0: 26.09.2006, MJung, Erstellung

 Copyright 2006 dezember und juli gmbh (Schweiz). Alle Rechte vorbehalten.
*/


Browser = new BrowserKlasse()


function BrowserKlasse()
{

 this.Release = 3.0


 // Methode out string Name() = Internet Explorer|Safari|Navigator|Firefox|false
 this.Name = function()
 {

  if (navigator.appName == 'Microsoft Internet Explorer') return 'Internet Explorer'
  if (/Safari/.test(navigator.userAgent) == true) return 'Safari'
  if (/Netscape/.test(navigator.userAgent) == true) return 'Navigator'
  if (/Firefox/.test(navigator.userAgent) == true) return 'Firefox'
  return false
 }


 // Methode out float Version() = [Version]|false
 this.Version = function()
 {

  var Name = this.Name()

  if (document.layers) return 4
  if (Name == 'Internet Explorer') return parseFloat(/MSIE \d+\.\d+/.exec(navigator.appVersion)[0].substr(5))
  if (Name == 'Safari') return 1
  if (Name == 'Navigator') return parseFloat(/Netscape\/\d+\.\d/.exec(navigator.userAgent)[0].substr(9))
  if (Name == 'Firefox') return parseFloat(/Firefox\/\d+\.\d/.exec(navigator.userAgent)[0].substr(8))
  return false
 }


 // Methode out string Betriebssystem() = Windows|Mac OS|false
 this.Betriebssystem = function()
 {

  if (/Win/.test(navigator.platform) == true) return 'Windows'
  if (/Mac/.test(navigator.platform) == true) return 'Mac OS'
  return false
 }


 // Methode out boolean istKompatibel() = true|false
 this.istKompatibel = function()
 {

  var Name = this.Name()
  var Version = this.Version()
  var Betriebssystem = this.Betriebssystem()

  if (Name == 'Internet Explorer' && Version >= 5 && Betriebssystem != false) return true
  if (Name == 'Safari' && Betriebssystem == 'Mac OS') return true
  if (Name == 'Navigator' && Version >= 7 && Betriebssystem != false) return true
  if (Name == 'Firefox' && Version >= 1 && Betriebssystem != false) return true
  return false
 }
}
