var userAgent = navigator.userAgent.toLowerCase();
var IE_PATTERN     = "compatible; msie ";
var MAC_PATTERNS   = new Array("macintosh", "mac_powerpc");
var SAFARI_PATTERN = "safari";
var WIN95_PATTERN  = "windows 95";
var VISTA_PATTERN  = "windows nt 6.0";

function mIsIE()
{
   // IE
   if (userAgent.indexOf(IE_PATTERN) != -1)
   {
      return true;
   }
   return false;
} // end of mIsIE()
   
function mIsMac()
{
   // Mac
   for (var i = 0; i < MAC_PATTERNS.length; i++)
   {
      if (userAgent.indexOf(MAC_PATTERNS[i]) != -1)
      {
         return true;
         break;
      }
   }
   return false;   
} // end of mIsMac()

function mIsSafari()
{
   // Safari
   if (userAgent.indexOf(SAFARI_PATTERN) != -1)
   {
      return true;
   }
   return false;   
} // end of mIsSafari()

function mIsWin95()
{
   // Windows 95
   if (userAgent.indexOf(WIN95_PATTERN) != -1)
   {
      return true;
   }
   return false;
} // end of mIsWin95()

function mVersion()
{
   // set version if it is IE.
   if (mIsIE())
   {
      var start = userAgent.indexOf(IE_PATTERN) + IE_PATTERN.length;
      var end = start + 4;
      var versionStr = userAgent.substring(start, end);

      return parseFloat(versionStr);
   }
   return 0;
} // end of mVersion()

function getBrowser()
{
   var isIE = mIsIE();
   var isMac = mIsMac();
   var isSafari = mIsSafari();
   var version = mVersion();

   if (isIE)
   {
      return "Internet Explorer " + version;
   }
   else if (isSafari)
   {
      return "Safari";
   }
   else
   {
      return "Unknown";
   }
} // end of browserCheck ()


function mIsVista()
{
   // Windows Vista
   if (userAgent.indexOf(VISTA_PATTERN) != -1)
   {
      return true;
   }
   return false;
} // end of mIsVista()
