﻿    // 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;
    } 
    // If called with no parameters this function returns a floating point value 
    // which should be the version of the Flash Player or 0.0 
    // ex: Flash Player 7r14 returns 7.14
    // If 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 = VBGetSwfVer(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 );	
			    }
		    }
	    }	
	    return (reqVer ? false : 0.0);
    }
    
    // If called with no parameters this function returns a floating point value 
    // which should be the version of the Flash Player or 0.0 
    // ex: Flash Player 6r65 returns 6.65
    // If called with reqMajorVer, reqMinorVer this function returns true if that version or greater is installed
    function DetectFlashVer2(reqMajorVer, reqMinorVer) 
    {
        reqVer = parseFloat(reqMajorVer + "." + reqMinorVer);
        // loop backwards through the versions until we find the newest version      
        for (i=25;i>0;i--) {      
            if (isIE && isWin && !isOpera) {;
                  versionStr = VBGetSwfVer(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(",");
                        
                        versionMajor = versionArray[0];
                        versionMinor   = versionArray[2];
                        
                        versionString = versionMajor + "." + versionMinor;
                        versionNum = parseFloat(versionString);
                  } else {
                         versionNum = versionStr;
                  }
                  return (versionNum >= reqVer ? true : false );            
            }
        }
      
        return (reqVer ? false : 0.0);
    }