/***************************************************
* Class Plugin                                     *
*                                                  *
* Properties: -                                    *
* Methods: isAcrobatReader                         *
*            Input: -                              *
*            Output: (Boolean)                     *
*          isAuthorwareWebPlayer                   *
*            Input: -                              *
*            Output: (Boolean)                     *
*          isDivXPlayer                            *
*            Input: -                              *
*            Output: (Boolean)                     *
*          isFlashPlayer                           *
*            Input: -                              *
*            Output: (Boolean)                     *
*          isJava                                  *
*            Input: -                              *
*            Output: (Boolean)                     *
*          isMediaPlayer                           *
*            Input: -                              *
*            Output: (Boolean)                     *
*          isQuickTimePlayer                       *
*            Input: -                              *
*            Output: (Boolean)                     *
*          isRealPlayer                            *
*            Input: -                              *
*            Output: (Boolean)                     *
*          isShockwavePlayer                       *
*            Input: -                              *
*            Output: (Boolean)                     *
*          isSilverlight                           *
*            Input: -                              *
*            Output: (Boolean)                     *
*          isSVGViewer                             *
*            Input: -                              *
*            Output: (Boolean)                     *
*          isVRMLViewer                            *
*            Input: -                              *
*            Output: (Boolean)                     *
***************************************************/

function Plugin()
{
  function check(iename, nsname)
  {
    var success;
    success = false;
    if (navigator.plugins.length == 0)
    {
      try
      {
        var obj = new ActiveXObject(iename);
        obj = null;
        success = true;
      }
      catch (err)
      {
      }
    }
    else
    {
      if (navigator.plugins[nsname] != undefined)
        success = true;
    }
    return success;
  }

  this.isAcrobatReader = function()
  {
    return check('AcroPDF.PDF.1', 'Adobe Acrobat');
  };

  this.isAuthorwareWebPlayer = function()
  {
    return check('Macromedia.AuthorwareShockwaveControl.1', 'Authorware Web Player');
  };

  this.isDivXPlayer = function()
  {
    return check('npdivx.DivXBrowserPlugin.1', 'DivX Web Player');
  };

  this.isFlashPlayer = function()
  {
    return check('ShockwaveFlash.ShockwaveFlash.1', 'Shockwave Flash');
  };

  this.isJava = function()
  {
    return navigator.javaEnabled();
  };

  this.isMediaPlayer = function()
  {
    return check('MediaPlayer.MediaPlayer.1', 'Windows Media Player Plug-in Dynamic Link Library');
  };

  this.isQuickTimePlayer = function()
  {
    return check('QuickTimeCheckObject.QuickTimeCheck.1', 'QuickTime Plug-in 7.1.6');
  };

  this.isRealPlayer = function()
  {
    return check('rmocx.RealPlayer G2 Control.1', 'RealPlayer Version Plugin');
  };

  this.isShockwavePlayer = function()
  {
    return check('SWCtl.SWCtl', 'Shockwave for Director');
  };

  this.isSilverlight = function()
  {
    return check('AgControl.AgControl', 'Silverlight Plug-In');
  };

  this.isSVGViewer = function()
  {
    return check('Adobe.SVGCtl', 'Adobe SVG Viewer Plugin');
  };

  this.isVRMLViewer = function()
  {
    return check('Cortona.Control.1', 'Cortona3D Viewer');
  };
}
