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: "Chrome",
				identity: "Chrome"
			},
			{ 	string: navigator.userAgent,
				subString: "OmniWeb",
				versionSearch: "OmniWeb/",
				identity: "OmniWeb"
			},
			{
				string: navigator.vendor,
				subString: "Apple",
				identity: "Safari",
				versionSearch: "Version"
			},
			{
				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.userAgent,
				   subString: "iPhone",
				   identity: "iPhone/iPod"
		    },
			{
				string: navigator.platform,
				subString: "Linux",
				identity: "Linux"
			}
		]

	};

BrowserDetect.init();

/*
 *	Prüft auf aktuelle Version des Browsers.
 *	Bei zu alter Version, wird eine Info-Box eingeblendet.
 *	Per Cookie kann die Prüfung abgeschaltet werden, damit der Anwender nicht genervt wird.
 */
function CursiteNavigatorCheck() {

	/*
	 *	Cookie setzen, damit Info-Boxen nichtmehr angezeigt werden nach rumklick0rn
	 */
	this.setCookie = function() {

		/* Cookie setzen */
		document.cookie = 'CursiteNavigatorCheck=1;';

		/* Hinweis nach einer viertel Sekunde ausblenden */
		window.setTimeout(
			function() { document.getElementById('NavigatorOutdated').style.display = 'none' },
			250
		);
	}

	/*
	 *	Prüft, ob das nichtmehr-anzeigen-cookie gesetzt wurde.
	 *	Fall Anzeige nicht mehr erwünscht -> false
	 */
	this.checkCookie = function() {
		/* erst prüfen, ob überhaupt Cookies gesetzt sind */
		if(document.cookie) {
			/* Dann schauen, ob CursiteNavigatorCheck gesetzt ist */
			if(document.cookie.search('CursiteNavigatorCheck=') >= 0) {
				return true;
			}
		}

		/* keine Cookies oder CursiteNavigatorCheck Cookie */
		return false;
	}

	/* Diese Funktion prüft den Browser und blendet ggf. Info Box ein */
	this.check = function() {

		/* Falls Cookie gesetzt ist, nichts machen */
		if(this.checkCookie()) {
			return;
		}

		var navigator;
		var website;

		/*
		 *	Internet Explorer mit Version < 7
	 	 */
		if(BrowserDetect.browser == 'Explorer' && BrowserDetect.version < 7) {
			navigator = 'Microsoft Internet Explorer';
			website = "http://www.microsoft.com/";
		}

		/*
		 *	FX unter Version 1.5
	 	 */
		if(BrowserDetect.browser == 'Firefox' && BrowserDetect.version < 1.5 ) {
			navigator = 'Mozilla Firefox';
			website = "http://www.mozilla.org/";
		}

		/*
		 *	Safari unter 3
		 */
		if(BrowserDetect.browser == 'Safari' && BrowserDetect.version < 3 ) {
			navigator = 'Apple Safari';
			website = "http://www.apple.com/";
		}

		/* Wenn alte Version gefunden */
		if(typeof navigator != 'undefined') {
			var span1 = document.getElementById('NONavigator1');
			var span1text = document.createTextNode(navigator);
			span1.appendChild(span1text);

			var span2 = document.getElementById('NONavigator2');
			var span2text = document.createTextNode(navigator);
			span2.appendChild(span2text);

			var link = document.getElementById('NOLink');
			link.href = website;

			document.getElementById('NavigatorOutdated').style.display = 'block';
		}
	}

}

var CNC = new CursiteNavigatorCheck();
