Carly and Pierre -  Web School

Source Code For NASA's Browser Detect Script

<script type="text/javascript">
	/**
	 *  Browser Detect Class
	 */
	function detectBrowserClass(modern){
		var nBrowser = navigator.appName;
		var nVersion = navigator.appVersion;
		var nAgent = navigator.userAgent;
		this.version;
		this.browser;
		this.os;
		this.modern = (typeof modern == 'object') == true ? modern:0;
		if(nVersion.indexOf('Windows') !=-1){
		     this.os = 'win';
		}else{
		    this.os = (nVersion.indexOf('Macintosh') !=-1) == true ? 'mac':'other';
		}
		if (nAgent.indexOf('Opera') !=-1){
		    var strIndex = nAgent.indexOf('Opera');
		    this.version = nAgent.substring((strIndex + 6), (strIndex + 9));
		    this.browser = 'opera';
		}
		else if (nAgent.indexOf('Firefox') !=-1){
		    var strIndex = nAgent.indexOf('Firefox');
		    this.version = nAgent.substring((strIndex + 8), (strIndex + 11));
		    this.browser = 'firefox';
		}
		else if(nAgent.indexOf('MSIE') !=-1){
		    var strIndex = nAgent.indexOf('MSIE');
		    this.version = nAgent.substring((strIndex + 5), (strIndex + 8));
		    this.browser = 'ie';
		}
		else if (nAgent.indexOf('Safari') !=-1){
		     if (nAgent.indexOf('Version') !=-1){
		          var strIndex = nAgent.indexOf('Version')
		          this.version = nAgent.substring((strIndex + 8), (strIndex + 11))
		     }else{
		          this.version = 2;
		     }
		this.browser = 'safari';
		}
		else if (nAgent.indexOf('Netscape') !=-1){
		     var strIndex = nAgent.indexOf('Netscape');
		     this.version = nAgent.substring((strIndex + 9), (strIndex + 12));
		     this.browser = 'netscape';
		}else{
		     this.browser = nBrowser.toLowerCase();
		     this.version = null;
		}
		this.whichBrowser = function (){ return this.browser; }
		this.whichVersion = function (){ return this.version; }
		this.whichOS = function (){	return this.os; }
		this.getInfo = function (){
		     var info = "Browser name: " + nBrowser + "<br />" +
		     "Browser version: "+ nVersion + "<br />" +
		     "User Agent: " + nAgent;
		      return info;
		}
		this.modernBrowser = function (){
		     var isModern = false;
		     if(typeof(this.modern[this.browser])=='number' || this.version === null){
		     isModern = ( this.modern[this.browser] <= this.version || this.version === null ) == true ? true :0;
		}
		return isModern;
		}
		}
		// Instantiate browser detect
		var detectBrowser = new detectBrowserClass({
		      'opera': 9,
		      'safari': 2,
		      'firefox': 1.5,
		      'ie': 6
		});			
                                /* Support legacy browsers*/
		if(detectBrowser.modernBrowser() == true){
                                     var css = '<link href="/css/207071main_allpages.css" rel="stylesheet" type="text/css" />';
                                 if(detectBrowser.whichBrowser()=='firefox'){
			 css= css + '<link href="/css/207947main_etouch_firefox.css" rel="stylesheet" type="text/css" />';
			 }


		document.write(css);
		}else{
		document.write(legacyMsg);
		}