// JavaScript
// Browser detection

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'},
		{string: navigator.userAgent, subString: 'Netscape', identity: 'Netscape'},  // for newer Netscapes (6+)
		{string: navigator.userAgent, subString: 'MSIE', identity: 'Explorer', versionSearch: 'MSIE'},
		{string: navigator.userAgent, subString: 'Chrome', identity: 'Chrome'},
		{string: navigator.userAgent, subString: 'Gecko', identity: 'Mozilla', versionSearch: 'rv'},
		{string: navigator.userAgent, subString: 'Mozilla', identity: 'Netscape', versionSearch: 'Mozilla'}  // for older Netscapes (4-)
	],
	dataOS : [
		{string: navigator.platform, subString: 'Win', identity: 'Windows'},
		{string: navigator.platform, subString: 'Mac', identity: 'Mac'},
		{string: navigator.platform, subString: 'Linux', identity: 'Linux'}
	]
};

BrowserDetect.init();
document.getElementsByTagName('html')[0].className += document.getElementsByTagName('html')[0].className ? ' ' + BrowserDetect.browser : BrowserDetect.browser;
document.getElementsByTagName('html')[0].className += document.getElementsByTagName('html')[0].className ? ' ' + BrowserDetect.browser + BrowserDetect.version : BrowserDetect.browser +  BrowserDetect.version;
