
// ultimate browser sniffer from netscape
// see http://developer.netscape.com/docs/examples/javascript/browser_type.html for docs

// convert all characters to lowercase to simplify testing 
var agt=navigator.userAgent.toLowerCase(); 

// *** BROWSER VERSION *** 
// Note: On IE5, these return 4, so use is_ie5up to detect IE5. 
var is_major = parseInt(navigator.appVersion); 
var is_minor = parseFloat(navigator.appVersion); 

// Note: Opera and WebTV spoof Navigator.  We do strict client detection. 
// If you want to allow spoofing, take out the tests for opera and webtv. 
var is_nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1) 
            && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1) 
            && (agt.indexOf('webtv')==-1)); 
var is_nav2 = (is_nav && (is_major == 2)); 
var is_nav3 = (is_nav && (is_major == 3)); 
var is_nav4 = (is_nav && (is_major == 4)); 
var is_nav4up = (is_nav && (is_major >= 4)); 
var is_navonly      = (is_nav && ((agt.indexOf(";nav") != -1) || 
                      (agt.indexOf("; nav") != -1)) ); 
var is_nav5 = (is_nav && (is_major == 5)); 
var is_nav5up = (is_nav && (is_major >= 5)); 
var is_nav7 = (is_nav && (is_major = 7)); 

var is_ie   = (agt.indexOf("msie") != -1); 
var is_ie3  = (is_ie && (is_major < 4)); 
var is_ie4  = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.0")==-1) ); 
var is_ie4up  = (is_ie  && (is_major >= 4)); 
var is_ie5  = (is_ie && (is_major == 4) && (agt.indexOf("msie 5.0")!=-1) ); 
var is_ie5up  = (is_ie  && !is_ie3 && !is_ie4); 

// KNOWN BUG: On AOL4, returns false if IE3 is embedded browser 
// or if this is the first browser window opened.  Thus the 
// variables is_aol, is_aol3, and is_aol4 aren't 100% reliable. 
var is_aol   = (agt.indexOf("aol") != -1); 
var is_aol3  = (is_aol && is_ie3); 
var is_aol4  = (is_aol && is_ie4); 

var is_opera = (agt.indexOf("opera") != -1); 
var is_webtv = (agt.indexOf("webtv") != -1); 

// *** JAVASCRIPT VERSION CHECK *** 
var is_js; 
if (is_nav2 || is_ie3) is_js = 1.0 
else if (is_nav3 || is_opera) is_js = 1.1 
else if ((is_nav4 && (is_minor <= 4.05)) || is_ie4) is_js = 1.2 
else if ((is_nav4 && (is_minor > 4.05)) || is_ie5) is_js = 1.3 
else if (is_nav5) is_js = 1.4 
// NOTE: In the future, update this code when newer versions of JS 
// are released. For now, we try to provide some upward compatibility 
// so that future versions of Nav and IE will show they are at 
// *least* JS 1.x capable. Always check for JS version compatibility 
// with > or >=. 
else if (is_nav && (is_major > 5)) is_js = 1.4 
else if (is_ie && (is_major > 5)) is_js = 1.3 
// HACK: no idea for other browsers; always check for JS version with > or >= 
else is_js = 0.0; 

// *** PLATFORM ***
var is_win   = ( (agt.indexOf("win")!=-1) || (agt.indexOf("16bit")!=-1) );
// NOTE: On Opera 3.0, the userAgent string includes "Windows 95/NT4" on all
//        Win32, so you can't distinguish between Win95 and WinNT.
var is_win95 = ((agt.indexOf("win95")!=-1) || (agt.indexOf("windows 95")!=-1));

// is this a 16 bit compiled version?
var is_win16 = ((agt.indexOf("win16")!=-1) || 
           (agt.indexOf("16bit")!=-1) || (agt.indexOf("windows 3.1")!=-1) || 
           (agt.indexOf("windows 16-bit")!=-1) );  

var is_win31 = ((agt.indexOf("windows 3.1")!=-1) || (agt.indexOf("win16")!=-1) ||
                (agt.indexOf("windows 16-bit")!=-1));

// NOTE: Reliable detection of Win98 may not be possible. It appears that:
//       - On Nav 4.x and before you'll get plain "Windows" in userAgent.
//       - On Mercury client, the 32-bit version will return "Win98", but
//         the 16-bit version running on Win98 will still return "Win95".
var is_win98 = ((agt.indexOf("win98")!=-1) || (agt.indexOf("windows 98")!=-1));
var is_winnt = ((agt.indexOf("winnt")!=-1) || (agt.indexOf("windows nt")!=-1));
var is_win32 = (is_win95 || is_winnt || is_win98 || 
                ((is_major >= 4) && (navigator.platform == "Win32")) ||
                (agt.indexOf("win32")!=-1) || (agt.indexOf("32bit")!=-1));

var is_os2   = ((agt.indexOf("os/2")!=-1) || 
                (navigator.appVersion.indexOf("OS/2")!=-1) ||   
                (agt.indexOf("ibm-webexplorer")!=-1));

var is_mac    = (agt.indexOf("mac")!=-1);
var is_mac68k = (is_mac && ((agt.indexOf("68k")!=-1) || 
                           (agt.indexOf("68000")!=-1)));
var is_macppc = (is_mac && ((agt.indexOf("ppc")!=-1) || 
                            (agt.indexOf("powerpc")!=-1)));

// pick stylesheet based on browser

// if windows + nav 6
if (is_win && is_nav5up) {
	document.write('<link rel="stylesheet" type="text/css" href="http://www.fusg.ch/css/win_ns6.css" title="master">');
	}
// windows + navigator
else if (is_win && is_nav) {
	document.write('<link rel="stylesheet" type="text/css" href="http://www.fusg.ch/css/win_ns.css" title="master">');
	}
// windows + ie
else if (is_win && is_ie) {
	document.write('<link rel="stylesheet" type="text/css" href="http://www.fusg.ch/css/win_ie.css" title="master">');
	}
	// windows + ie (hopefully ie 6)
else if (is_win && is_ie5up) {
	document.write('<link rel="stylesheet" type="text/css" href="http://www.fusg.ch/css/win_ie.css" title="master">');
	}
// mac + nav6
else if (is_mac && is_nav5up) {
	document.write('<link rel="stylesheet" type="text/css" href="http://www.fusg.ch/css/mac_ns6.css" title="master">');
	}
// mac + navigator
else if (is_mac && is_nav) {
	document.write('<link rel="stylesheet" type="text/css" href="http://www.fusg.ch/css/mac_ns.css" title="master">');
	}
// mac + ie
else if (is_mac && is_ie) {
	document.write('<link rel="stylesheet" type="text/css" href="http://www.paladise.ch/fusg/css/mac_ie.css" title="master">');
	}
// everybody else
else {
	document.write('<link rel="stylesheet" type="text/css" href="css/win_ie.css" title="master">');
	}

