// 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_nav5 = (is_nav && (is_major == 5)); 
var is_nav6 = (agt.indexOf("etscape6") != -1 || agt.indexOf("ecko") != -1);
var is_nav4up = (is_nav && (is_major >= 4 || is_nav6)); 
var is_nav5up = (is_nav && (is_major >= 5 || is_nav6)); 
var is_nav47up = (is_nav && (is_minor * 10 >= 47 || is_nav6));

var is_ie   = (agt.indexOf("msie") != -1); 
var msie = agt.indexOf ( "msie " );
var ieversion = parseInt (agt.substring (msie+5, agt.indexOf (".", msie )));
var is_ie3  = (is_ie && (ieversion < 4)); 
var is_ie4  = (is_ie && (ieversion == 4)); 
var is_ie5  = (is_ie && (ieversion == 5)); 
var is_ie4up  = (is_ie && (ieversion >= 4) ); 
var is_ie5up  = (is_ie && (ieversion >= 5) );  

// 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_mac = (agt.indexOf("mac") != -1);
