// JavaScript Document
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";
		this.check(this.acceptedBrowsers);
	},
	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.platform,
			subString: "Linux",
			identity: "Linux"
		}
	],
	acceptedBrowsers : [
		{
			name: "Explorer",
			minVersion:"8"
		},
		{
			name: "Safari",
			minVersion:"3.2"
		},
		{
			name: "Firefox",
			minVersion:"3"
		},
		{
			name: "Camino",
			minVersion:"1"
		}
	],
	check: function(b){

			var str = new String;
			str+="<h3>Browser Compatability Issue.</h3>";	
			str+="<p>We've noticed that your using an older browser, or just one that we don't support.";	
			str+="<p><strong>You current browser is " + this.browser +" " + this.version + "</strong></p>";	
			str+="<p>This site supports the following browsers: <ul>"
			for (var i=0;i<b.length;i++)	{
				str += "<li>"+ b[i].name + " " + b[i].minVersion +"</li>"
			}
			str+="</ul>"
			str+="<p>We advise that you update your browser to ensure that you're getting the full experience from this site. </p>";	
			str+="<p>Give one of these a try..</p>";	
			str+="<a href='http://www.mozilla.com/firefox/'><img src='images/firefox-logo.gif' border='0'/></a>";	
			str+="<a href='http://www.apple.com/safari/'><img src='images/safari-logo.gif' border='0'/></a>";	
			str+="<p>This window will close automatically.</p>";	

			for (var i=0;i<b.length;i++)	{
				if (b[i].name == this.browser){
					if (b[i].minVersion > this.version){
					ErrorHandler.throwErrorMsg(str);	
					//	alert(str);
					};
					return;
				}
			};
	}
};

//error handling
var ErrorHandler = new function(){
	this.throwErrorMsg = function(str){	
		var self=ErrorHandler;
		var div = document.createElement("div");
		var err = document.createElement("div");
		var err2 = document.createElement("div");
		var err3 = document.createElement("div");
		var imgSpan = document.createElement('img');
		imgSpan.src ="images/close.png";
		imgSpan.id = "imgClose";
		imgSpan.title="Close preview window";
		imgSpan.onclick=function(){self.closeErrorMsg()};
		div.id = "browserWrapper";
		err.id = "msgWrapper";
		err2.id = "msg";
		err2.appendChild(imgSpan);
		err3.innerHTML = str;
		err.appendChild(err2);
		err2.appendChild(err3);

		window.setTimeout( function() {
										document.body.appendChild(div);
										document.body.appendChild(err);
									}, 2000);
		self.clearError = window.setTimeout(function(){
												self.closeErrorMsg();
												}	
												,30000); 
	};
	
	this.closeErrorMsg = function(){
		var self=ErrorHandler;
		window.clearTimeout(self.clearError);
		$("browserWrapper").remove();
		$("msgWrapper").remove();
	};
};

	//end error handling
BrowserDetect.init();

