// Javascript - Browser Detector
// Author : D. Moodie

 // Browser Checker

 var browserId = "Browser unrecognized!";
 var sup = 1;
 var suPlatform = new Array();
 var suBrowser  = new Array();
 var suVpfx     = new Array();
 var suVer      = new Array();
 var suAlias    = new Array();


 // Supported Browsers:

 suPlatform[sup] = "Win"; suBrowser[sup] = "Firefox";  suVpfx[sup] = "fox/";  suVer[sup] = 1.0;  suAlias[sup++] = "Firefox"; 
 suPlatform[sup] = "Win"; suBrowser[sup] = "Gecko";  suVpfx[sup] = "rv:";     suVer[sup] = 1.2;  suAlias[sup++] = "Mozilla"; 
 suPlatform[sup] = "Win"; suBrowser[sup] = "MSIE";   suVpfx[sup] = "MSIE";    suVer[sup] = 6.0;  suAlias[sup++] = "Internet Explorer";
 suPlatform[sup] = "Win"; suBrowser[sup] = "Opera";  suVpfx[sup] = "Opera/";  suVer[sup] = 7.11; suAlias[sup++] = "Opera"; 

 suPlatform[sup] = "Mac"; suBrowser[sup] = "Firefox";  suVpfx[sup] = "fox/";  suVer[sup] = 1.0;  suAlias[sup++] = "Firefox"; 
 suPlatform[sup] = "Mac"; suBrowser[sup] = "KHTML";  suVpfx[sup] = "Safari/"; suVer[sup] = 85.5; suAlias[sup++] = "Safari"; 
 suPlatform[sup] = "Mac"; suBrowser[sup] = "Gecko";  suVpfx[sup] = "rv:";     suVer[sup] = 1.2;  suAlias[sup++] = "Mozilla"; 
 suPlatform[sup] = "Mac"; suBrowser[sup] = "MSIE";   suVpfx[sup] = "MSIE ";   suVer[sup] = 5.0;  suAlias[sup++] = "Internet Explorer";

 suPlatform[sup] = "X11"; suBrowser[sup] = "Firefox";   suVpfx[sup] = "fox/";        suVer[sup] = 1.0;  suAlias[sup++] = "Firefox"; 
 suPlatform[sup] = "X11"; suBrowser[sup] = "Konqueror"; suVpfx[sup] = "Konqueror/";  suVer[sup] = 3.2;  suAlias[sup++] = "Konqueror";
 suPlatform[sup] = "X11"; suBrowser[sup] = "Galeon";    suVpfx[sup] = "Galeon/";     suVer[sup] = 1.2;  suAlias[sup++] = "Galeon"; 
 suPlatform[sup] = "X11"; suBrowser[sup] = "Gecko";     suVpfx[sup] = "rv:";         suVer[sup] = 1.2;  suAlias[sup++] = "Mozilla"; 

 suPlatform[sup] = "Linux"; suBrowser[sup] = "Konqueror"; suVpfx[sup] = "Konqueror/"; 	suVer[sup] = 3.2;  suAlias[sup++] = "Konqueror";

 // Browser Check functions

 function identify_browser()
 {
   var i, vi;
   var brPlatform, brModel, brVerTrim, brVer, reqVer, brOK, thisModel;

   brModel = navigator.userAgent;

   for(i = 1; i < sup; i++)
   {
     if (brModel.indexOf(suPlatform[i]) != -1)
     {
       brPlatform = suPlatform[i];

       if (brModel.indexOf(suBrowser[i]) != -1)
       {
         thisModel = i;
         browserId = suAlias[thisModel];

         break;
       }
     }
   }


   var browserOk = false;

   if (thisModel > 0)
   {
 

     vi = brModel.indexOf(suVpfx[thisModel]);

     if (vi != -1)
     {
       vi += suVpfx[thisModel].length; 
       brVerTrim = brModel.substr(vi); 
       brVer = parseFloat(brVerTrim); 
       reqVer = suVer[thisModel];

       browserId += ' v' + brVer;
     
       if (brVer >= reqVer)
         browserOk = true;    
     }
     else
       browserId += ' v?.??';
   }

   browserId += ' (' + brPlatform + ')\n\n';

   return browserOk;
 }

 function browser_help()
 {
   var helpText = "";
   var brModel = navigator.userAgent;
  
   helpText += '\nIf this website does not display correctly,\n';
   helpText += 'you probably need to upgrade your browser.\n';
   helpText += '\nThis browser model:\n  ' + brModel + '\n';
   helpText += '\nThis website has been tested with:\n';

   for(i = 1; i < sup; i++)
     helpText += '  ' + suPlatform[i] + ': ' + suBrowser[i] + ' - '+ suAlias[i] + ' v' + suVer[i] + ' \n';
   
   alert(helpText);
 }

 function check_browser()
 {
   browserOk = identify_browser();

   var browserText = browserId;
   
   if (!browserOk == true)
     browserText += '&nbsp;(<a href="javascript:browser_help();">Problems viewing this site?</a>)'; 

   document.write(browserText);
 }

 function list_tested_browsers()
 {
   var testedText = "";

   for(i = 1; i < sup; i++)
   {
     testedText = suAlias[i] + ' v' + suVer[i] + ' (' + suPlatform[i] + ')' ;

     if (i == (sup - 1))
       testedText += '.';
     else
       testedText += ',';

     document.writeln(testedText);
   }
 }
