/*
 * Browsererkennung (Erweitert)
 *(JSON-Variante)
 * - Funktion init (Initialisiert die Browsererkennung)
 * - Funktion searchString (Dient zur Suche einer jeweils vorgegebenen Zeichenkette)
 * - Funktion searchVersion (Dient zur Ausgabe der Versionsnummer)
 *
 * - Datenobjekte dataBrowser und dataOS
 */
 
var BrowserDetection = {
	init:function()
	{
		this.browser = this.searchString(this.dataBrowser) || "Unbekannter Browser";
		
		this.version = this.searchVersion(navigator.userAgent) ||
		this.searchString(navigator.appVersion) ||
		"Unbekannte Version";
		
		this.OS = this.searchString(this.dataOS) || "Unbekanntes Betriebsystem";
	},
	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: "Chrome",
		identity: "Chrome"
		},
		{
		string:navigator.userAgent,
		subString: "OmniWeb",
		identity: "OmniWeb",
		versionSearch: "OmniWeb/"
		},
		{
		string: navigator.vendor,
		subString: "Apple",
		identity: "Safari",
		versionSearch: "Version"
		},
		{
		prop: window.opera,
		identity: "Opera"
		},
		{
		string: navigator.vendor,
		subString: "iCab",
		identity: "iCab"
		},
		{
		string: navigator.userAgent,
		subString: "Firefox",
		identity: "Firefox"
		},
		{
		string: navigator.userAgent,
		subString: "Netscape",
		identity: "Netscape"
		},
		{
		string: navigator.userAgent,
		subString: "MSIE",
		identity: "Explorer",
		versionSearch: "MSIE"
		},
		{
		string: navigator.vendor,
		subString: "Camino",
		identity: "Camino"
		},
		{
		string: navigator.vendor,
		subString: "KDE",
		identity: "Konqueror"
		}
	 ],
	 dataOS:[
		{
		string: navigator.platform,
		subString: "Win",
		identity: "Windows"
		},
		{
		string: navigator.platform,
		subString: "Mac",
		identity: "Mac"
		},
		{
		string: navigator.platform,
		subString: "Linux",
		identity: "Linux"
		},
		{
		string: navigator.userAgent,
		subString: "iPhone",
		identity: "iPhone/iPod"
		}
	 ]
 };

 // Anwendung des JSON-Objekts BrowserDetection
 // Objekt wird aufgerufen und die Funktion init des BrowserDetection-Objekts ausgeführt.
 BrowserDetection.init();
