// based on: moock fpi [f.lash p.layer i.nspector] version: 1.3.5
// written by colin moock; original code maintained at: 
// http://www.moock.org/webdesign/flash/detection/moockfpi/
// terms of use posted at: http://www.moock.org/terms/

// modified by douglas j. loftus, 11/03


// globals
var g_isIE  =(navigator.appVersion.indexOf("MSIE")!= -1) ? true : false;
var g_isWin =(navigator.appVersion.indexOf("Windows")!= -1)?true:false; 
var g_f2i = false;    
var g_f3i = false;
var g_f4i = false;
var g_f5i = false;
var g_f6i = false;
var g_f7i = false;
var g_f8i = false;


if(g_isIE && g_isWin){

  // version sniffing via VBS is 'hard-wired' - add lines as necessary 
  document.write('<SCR' + 'IPT LANGUAGE = VBScript\> \n');
  document.write('on error resume next \n');
  document.write('g_f2i = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.2"))) \n');
  document.write('g_f3i = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.3"))) \n');
  document.write('g_f4i = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.4"))) \n');
  document.write('g_f5i = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.5"))) \n');  
  document.write('g_f6i = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.6"))) \n');
  document.write('g_f7i = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.7"))) \n'); 
  document.write('</SCR' + 'IPT\> \n'); 
  document.write('g_f8i = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.8"))) \n'); 
  document.write('</SCR' + 'IPT\> \n');
 
}

////////////////////////////////////////////////////////


// pass minReqVer, maxVer to ctor on instantiation


function FlashDetector (reqVer,maxVer) {
   this.requiredVersion = reqVer; 
   this.maxVersion = maxVer;
   this.actualVersion = 0;
   this.hasRightVersion = false;
};
var flad = FlashDetector.prototype;

flad.setRequiredVersion = function (n) {
  this.requiredVersion = n;
};

                           
flad.detectFlash = function () {

  var flashVersion = null;
  
  if (navigator.plugins) {

    if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
        
      var isVersion2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
      var flashDescription = navigator.plugins["Shockwave Flash" + isVersion2].description;
      var flashVersion = parseInt(flashDescription.charAt(flashDescription.indexOf(".") - 1));

      for (var i=2; i <= this.maxVersion; i++) {  
        fii = (flashVersion == i);
        eval("g_f" + i + "i =" + fii);

      }
    }
  }
  // vars of form fNi defined in global scope
  for (var i=2; i<=this.maxVersion; i++) {  
    if (eval("g_f" + i + "i") == true) {
       this.actualVersion = i;
       if (i == this.maxVersion) {
         if (flashVersion != null && flashVersion > this.maxVersion) this.actualVersion = flashVersion;
       }
    } 
  }  
  if(navigator.userAgent.indexOf("WebTV") != -1) this.actualVersion = 3;  
  this.hasRightVersion = (this.actualVersion >= this.requiredVersion);
  
  return {hasReqVer:this.hasRightVersion,reportedVersion:this.actualVersion};
};

delete flad;

