/*

	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/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":
	
			/*Here's a really ugly hack to deal with the JS being referred to from different locations.
			*When this finally goes live, please change href=../css/etc. to an absolute reference
			*so we can get rid of the hack
			*/
			var file_name = returnDocument(); 
			function returnDocument() {
        		var file_name = document.location.href;
       			var end = (file_name.indexOf("?") == -1) ? file_name.length : file_name.indexOf("?");
        		return file_name.substring(file_name.lastIndexOf("/")-6, end);
    		}
			//what to write to doc if current file is the home page
			if(file_name == "McNair/index.html") {
				document.write("<link rel='stylesheet' type='text/css' href='mainIE2.css'  media='screen,projection'/>");
			}
			else{
				document.write("<link rel='stylesheet' type='text/css' href='../mainIE2.css'  media='screen,projection'/>");
			}
			//document.write("<link rel='stylesheet' type='text/css' href='file:///M|/HOME/website/css/mainIE2.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;
}
