var componentVersion;
try	{	
	document.body.style.behavior = 'url(#default#clientCaps)';	
	componentVersion = document.body.getComponentVersion('{89820200-ECBD-11CF-8B85-00AA005B4383}','componentid');
	componentVersion = componentVersion.replace(/,/g,'.');
} catch(e) {}

var Browser = {
	init: function () {
		this.OS = this.getOS();
		this.name = this.getName();
		this.version = this.getVersion();
		this.resolution = this.getResolution();
		this.acrobat = this.getAcrobat();
		this.flash = this.getFlash();
		this.cookies = document.cookie;
	},
	getName: function () {
		var navigatorUserAgent = navigator.userAgent;
		if (navigatorUserAgent) {
			navigatorUserAgent = navigatorUserAgent.toLowerCase();
			if (navigatorUserAgent.search(/opera[\/\s](\d+(\.?\d)*)/)!=-1) {
				return 'Opera';
			}
			if (navigatorUserAgent.search(/netscape6[\/\s](\d+([\.-]\d)*)/)!=-1 || navigatorUserAgent.search(/netscape\/(7\.\d*)/)!=-1 || navigatorUserAgent.search(/netscape\/(8\.\d*)/)!=-1) {
				return 'Netscape';
			}
			if (navigatorUserAgent.search(/msie\s(\d+(\.?\d)*)/)!=-1) {
				return 'Microsoft Internet Explorer';
			}
			if (navigatorUserAgent.search(/firefox[\/\s](\d+(\.?\d)*)/) != -1) {
				return 'Mozilla Firefox';
			}
			if (navigatorUserAgent.search(/chrome\/(\d)*/) != -1) {
				return 'Google Chrome';
			}
			if (navigatorUserAgent.search(/safari\/(\d)*/) != -1) {
				return 'Apple Safari';
			}
		}
	},
	getVersion: function () {
		var navigatorUserAgent = navigator.userAgent;
		if (navigatorUserAgent) {
			navigatorUserAgent = navigatorUserAgent.toLowerCase();
			if (navigatorUserAgent.search(/opera[\/\s](\d+(\.?\d)*)/)!=-1) {
				return navigatorUserAgent.match(/opera[\/\s](\d+(\.?\d)*)/)[1];
			}
			if (navigatorUserAgent.search(/netscape6[\/\s](\d+([\.-]\d)*)/) != -1 || navigatorUserAgent.search(/netscape\/(7\.\d*)/)!=-1 || navigatorUserAgent.search(/netscape\/(8\.\d*)/)!=-1) {
				return navigator.vendorSub;
			}
			if (navigatorUserAgent.search(/msie\s(\d+(\.?\d)*)/)!=-1) {
				if (componentVersion) return componentVersion;
				return navigatorUserAgent.match(/msie\s(\d+(\.?\d)*)/)[1];
			}
			if (navigatorUserAgent.search(/firefox[\/\s](\d+(\.?\d)*)/) != -1) {
				return navigatorUserAgent.match(/firefox[\/\s](\d+(\.?\d)*)/)[1];
			}
			if (navigatorUserAgent.search(/chrome\/(\d)*/) != -1) {
				return navigatorUserAgent.match(/chrome\/(\d+(\.?\d*)*)/)[1];
			}
			if (navigatorUserAgent.search(/safari\/(\d)*/) != -1) {
				return navigatorUserAgent.match(/version\/(\d+(\.?\d*)*)/)[1] +' ('+ navigatorUserAgent.match(/safari\/(\d+(\.?\d*)*)/)[1] +')';
			}
		}
	},			
	getOS: function () {
		var navigatorUserAgent = navigator.userAgent;
		if (navigatorUserAgent) {
			navigatorUserAgent = navigatorUserAgent.toLowerCase();
			if (navigatorUserAgent.indexOf('windows nt 6.1')!=-1) {
				return 'Microsoft Windows 7';
			}
			if (navigatorUserAgent.indexOf('windows nt 6.0')!=-1) {
				return 'Microsoft Windows Vista';
			}
			if (navigatorUserAgent.indexOf('windows nt 5.2')!=-1) {
				if (componentVersion == '6.00.3790.1830')
					return 'Microsoft Windows 2003 (Service Pack 1)';
				return 'Microsoft Windows 2003';
			}
			if (navigatorUserAgent.indexOf('windows nt 5.1')!=-1) {
				if (componentVersion == '7.0.5730.11' && navigator.cpuClass == 'x86') 
					return 'Microsoft Windows XP';
				if (componentVersion == '6.00.3790.1830')
					return 'Microsoft Windows XP x64';
				if (componentVersion == '6.0.2900.2180')
					return 'Microsoft Windows XP (Service Pack 2)';
				if (componentVersion == '6.00.2800.1106')
					return 'Microsoft Windows XP (Service Pack 1)';
				return 'Microsoft Windows XP';
			}
			if (navigatorUserAgent.indexOf('windows nt 5.0')!=-1) {
				return 'Microsoft Windows 2000';
			}
			if (navigatorUserAgent.indexOf('win 9x 4.90')!=-1) {
				return 'Microsoft Windows Me';
			}
			if (navigatorUserAgent.indexOf('windows 98')!=-1 || navigatorUserAgent.indexOf('win98')!=-1) {
				if (componentVersion == '5.00.2614.3500')
					return 'Microsoft Windows 98 Second Edition';
				return 'Microsoft Windows 98';
			}
			if (navigatorUserAgent.indexOf('windows 95')!=-1 || navigatorUserAgent.indexOf('win95')!=-1) {
				return 'Microsoft Windows 95';
			}
		}
		var navigatorPlatform = navigator.platform;
		if (navigatorPlatform) {
			navigatorPlatform = navigatorPlatform.toLowerCase();
			if (navigatorPlatform.indexOf('win')!=-1) {
				return 'Microsoft Windows';
			}
			if (navigatorPlatform.indexOf('mac')!=-1) {
				return 'Apple MacOS';
			}
			if (navigatorPlatform.indexOf('linux')!=-1) {
				return 'Linux';
			}
		}				
	},
	getResolution : function () {
		return window.screen.width + 'x' + window.screen.height + ' (' + window.screen.colorDepth + ' bit farver)';
	},
	getAcrobat : function () {
		if (navigator.plugins && navigator.plugins.length) { 
			for(i=0;i<navigator.plugins.length;i++)	{
				if (navigator.plugins[i].name == 'Adobe Acrobat')
					return 'Installeret';
			}
		} else if (window.ActiveXObject) { 
			try	{
				AcroPDF =new ActiveXObject('AcroPDF.PDF.1'); 
				acroPDFVersions = AcroPDF.getVersions();
				acroPDFVersions = acroPDFVersions.toLowerCase();
				if (acroPDFVersions.search(/acroform[\=\s](\d+(\.?\d)*)/)!=-1)
					return (acroPDFVersions.match(/acroform[\=\s](\d+(\.?\d)*)/)[1]);
				else
					return '7.0 eller nyere';
			} catch(e) {}
			try	{
				PdfCtrl =new ActiveXObject('PDF.PdfCtrl.6'); 
				return '6.0';
			} catch(e) {}
			try	{
				PdfCtrl =new ActiveXObject('PDF.PdfCtrl.5'); 
				return '5.0';
			} catch(e) {}
			try	{
				PdfCtrl =new ActiveXObject('PDF.PdfCtrl.4'); 
				return '4.0';
			} catch(e) {}
		}
	},
	getFlash : function () {
		if (navigator.plugins && navigator.plugins.length) { 
			for(i=0;i<navigator.plugins.length;i++)	{
				if (navigator.plugins[i].name == 'Shockwave Flash') {
					var description = navigator.plugins[i].description;
					if (description.search(/Shockwave Flash (\d+(\.?\d)*)/)!=-1)
						return (description.match(/Shockwave Flash (\d+(\.?\d)*)/)[1]);
					else
						return 'Installeret';
				} else if (navigator.plugins[i].name == 'Shockwave Flash 2.0') {
					return '2.0'
				}
			}
		} else if (window.ActiveXObject) { 
			for(i=2;i<10;i++) {
				try	{
					ShockwaveFlash =new ActiveXObject('ShockwaveFlash.ShockwaveFlash.'+ i); 
					return 'Installeret';
				} catch(e) {}
			}
		}
	}
}
