// Detect Client Browser type
  var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
  var isWin = (navigator.appVersion.toLowerCase().indexOf("win") != -1) ? true : false;
  var isOpera = (navigator.userAgent.indexOf("Opera") != -1) ? true : false;
  jsVersion = 1.1;
// JavaScript helper required to detect Flash Player PlugIn version information
  
  function JSGetSwfVer(i){
// NS/Opera version >= 3 check for Flash plugin in plugin array
    if (navigator.plugins != null && navigator.plugins.length > 0) {
      if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {    
        var swVer2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
        var flashDescription = navigator.plugins["Shockwave Flash" + swVer2].description;
        descArray = flashDescription.split(" ");
        tempArrayMajor = descArray[2].split(".");
        versionMajor = tempArrayMajor[0];
        versionMinor = tempArrayMajor[1];
        if ( descArray[3] != "" ) {
          tempArrayMinor = descArray[3].split("r");
        } else {
          tempArrayMinor = descArray[4].split("r");
        }
          versionRevision = tempArrayMinor[1] > 0 ? tempArrayMinor[1] : 0;
          flashVer = versionMajor + "." + versionMinor + "." + versionRevision;
        } else {
          flashVer = -1;
        }
      }
// MSN/WebTV 2.6 supports Flash 4
      else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.6") != -1) flashVer = 4;
// WebTV 2.5 supports Flash 3
      else if (navigator.userAgent.toLowerCase().indexOf("webtv/2.5") != -1) flashVer = 3;
// older WebTV supports Flash 2
      else if (navigator.userAgent.toLowerCase().indexOf("webtv") != -1) flashVer = 2;
// Can't detect in all other cases
      else {
        flashVer = -1;
      }
    return flashVer;
  } 

  function IEGetSwfVer(i){
// IE version >= 3 check for Flash ActiveX
	  try{
		  var flash = new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + i);
		  return flash.GetVariable("$version");
	  } catch(e) {
  	  return 0;
	  }
  }

// When called with reqMajorVer, reqMinorVer, reqRevision returns true if that version or greater is available
  function DetectFlashVer(reqMajorVer, reqMinorVer, reqRevision) {
    reqVer = parseFloat(reqMajorVer + "." + reqRevision);
// loop backwards through the versions until we find the newest version 
    for (i=25;i>0;i--) { 
      if (isIE && isWin && !isOpera) {
        versionStr = IEGetSwfVer(i);
      } else {
        versionStr = JSGetSwfVer(i); 
      }
      if (versionStr == -1 ) { 
        return false;
      } else if (versionStr != 0) {
        if(isIE && isWin && !isOpera) {
          tempArray = versionStr.split(" ");
          tempString = tempArray[1];
          versionArray = tempString .split(","); 
        } else {
          versionArray = versionStr.split(".");
        }
        versionMajor = versionArray[0];
        versionMinor = versionArray[1];
        versionRevision = versionArray[2];

        versionString = versionMajor + "." + versionRevision; // 7.0r24 == 7.24
        versionNum = parseFloat(versionString);
// is the major.revision >= requested major.revision AND the minor version >= requested minor
        if ( (versionMajor > reqMajorVer) && (versionNum >= reqVer) ) {
          return true;
        } else {
          return ((versionNum >= reqVer && versionMinor >= reqMinorVer) ? true : false ); 
        }
      }
    } 
  }
//

// reqeust correct flash is availabel:
//   var hasReqestedVersion = DetectFlashVer(8, 0, 0);
