// Sniff to detect requirements met on login screen

// Browser Detect from http://www.quirksmode.org/js/detect.html
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();



// asdf
	function requirement_javascript() {
		// Since this script is running, say we've got Javscript 
		var requirement_js=document.getElementById('require_javascript');
		requirement_js.className = 'yes';
		var instruct=document.getElementById('instructions_javascript');
		instruct.innerHTML = 'Requirement met.';
		
		var login_requirements=document.getElementById('#login_requirements');
		
		// Now that we have Javascript, what about Browser and Screen requirements?
		requirement_browser();
		requirement_screen();
		document.getElementById('login_requirements').style['background']='url()'; // turn off spinner
		document.getElementById('login_form_box').style['display']='block'; // show login form
		}
	
	function requirement_browser() {
		var requirement_b=document.getElementById('require_browser');
		var instruct=document.getElementById('instructions_browser');
		
		var browser_name = BrowserDetect.browser;
		var browser_version = BrowserDetect.version;
		
		var compatible = 'no';
		
		// Check Requirements
		if (browser_name == 'Firefox') { compatible = 'yes'; }
		if (browser_name == 'Netscape' && browser_version >= 8) { compatible = 'yes'; }
		if (browser_name == 'Opera' && browser_version >= 9) { compatible = 'yes'; }
		
		// Requirements met
		if (compatible == 'yes') {
			requirement_b.className = 'yes';
			instruct.innerHTML = 'You\'re using '+browser_name+' '+browser_version+', requirement met.';
			}
		// Requirements NOT met
		else {
			requirement_b.className = 'no';
			var message = 'AgriMAX Beta does not currently work with '+browser_name+' '+browser_version+', or other outdated web browsers.  For now, please upgrade to a FREE supported browser:';
			instruct.innerHTML = message;
			document.getElementById('browsers').style['display']='block'; // show login form
			}
		}
	
	function requirement_screen() {
		var requirement_s=document.getElementById('require_screen');
		var instruct=document.getElementById('instructions_screen');
		var screen_width = screen.width;
		var screen_height = screen.height;
		
		// Requirements met
		if (screen_width > 1023 && screen_height > 767) {
			requirement_s.className = 'yes';
			instruct.innerHTML = 'Requirement met - '+screen_width+'x'+screen_height+'.';
			}
		// Requirements NOT met
		else {
			requirement_s.className = 'no';
			instruct.innerHTML = 'Right-click on your blank desktop and choose “Properties”.  On the box that pops up, click the “Settings” tab.  Then drap the “Screen Resolution” slider to the right until it is at 1024x768 or higher.  Click “OK”.';
			}
		}
	
