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/", 
		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" 
	},
	{ 
		// for newer Netscapes (6+)
		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" 
	}, 
	{	// for older Netscapes (4-) 
		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();

