/*

	UW-Madison Graduate School Home Page
	CSS-switcher for different browsers
	
	(c)2006 Keaton Miller and Yoh Suzuki
	
	Last revised December 14, 2007

	The basic idea of this script is to serve different CSS pages to
	different browswers. Every broswer gets a "standard" javascript-enabled
	CSS file, while certain browsers get additional CSS files to override
	what's in the standard file.
*/

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();


/* this is the standard java-script enabled CSS file that every browser gets. */
document.write('<link rel="stylesheet" type="text/css" href="/css/menu_with_javascript.css" media="screen,projection" />');
//document.write('<link rel="stylesheet" type="text/css" href="css/news_with_javascript.css" media="screen,projection" />');

//document.write(BrowserDetect.version);
/* and here are the hacks for specific browsers */

switch (BrowserDetect.browser) {
	case "Firefox":
		if(BrowserDetect.OS == "Mac")
		{
			document.write("<link rel='stylesheet' type='text/css' href='/css/mac_firefox.css'  media='screen,projection'/>");
			break;
		}
	case "Explorer":
		//if (BrowserDetect.version < 7)
		//	document.write("<link rel='stylesheet' type='text/css' href='/css/explorer6.css'  media='screen,projection'/>");
		//if (BrowserDetect.version >= 7)
		//	document.write("<link rel='stylesheet' type='text/css' href='/css/explorer7.css'  media='screen,projection'/>");
		break;
	case "Konqueror":
		break;
	case "Opera":
		document.write("<link rel='stylesheet' type='text/css' href='/css/opera.css'  media='screen,projection'/>");
		break;
	case "iCab":
		document.write("<link rel='stylesheet' type='text/css' href='/css/iCab.css'  media='screen,projection'/>");
		break;
	case "Safari":
		document.write("<link rel='stylesheet' type='text/css' href='/css/safari.css'  media='screen,projection'/>");
		break;
	default:
		break;
}
