﻿// -----------------------------------------------------------------------------
// Globals
// Major version of Flash required
var requiredMajorVersion = 9;
// Minor version of Flash required
var requiredMinorVersion = 0;
// Revision of Flash required
var requiredRevision = 115;
// -----------------------------------------------------------------------------
// -->


var eFlashStatus = {None : 0, INSTALLED : 2, VALID_VERSION: 4, ERROR_VALIDATE_VERSION : 8, ERROR_VALIDATE_INSTALLATION : 16};
var eWMPStatus = {None : 0, INSTALLED : 2, VALID_VERSION: 4, ERROR_VALIDATE_VERSION : 8, ERROR_VALIDATE_INSTALLATION : 16};




function detectFlashStatus()
{
    var result = eFlashStatus.None;
                            
    try
    {
        if (AC_FL_RunContent == 0 || DetectFlashVer == 0) 
        {
	        return eFlashStatus.ERROR_VALIDATE_VERSION | eFlashStatus.ERROR_VALIDATE_INSTALLATION;
        } 
        else
        {    
            if (HasFlash())
            {
                result |= eFlashStatus.INSTALLED;
                
                var hasRightVersion = DetectFlashVer(requiredMajorVersion, requiredMinorVersion, requiredRevision);
	            if(hasRightVersion) 
	            {  
	                result |= eFlashStatus.VALID_VERSION;
	            }	                            
            }
        }
    }
    catch(e)
    {
        return eFlashStatus.ERROR_VALIDATE_VERSION | eFlashStatus.ERROR_VALIDATE_INSTALLATION;
    }
    
    return result;
}



function shouldRaiseFlashInstall()
{
    var flashStatus = detectFlashStatus();

    if ((flashStatus & eFlashStatus.ERROR_VALIDATE_INSTALLATION) != eFlashStatus.ERROR_VALIDATE_INSTALLATION)     
    {
        if ((flashStatus & eFlashStatus.INSTALLED) != eFlashStatus.INSTALLED) 
        {            
            return true; // install required                        
        } else 
        {
            if ((flashStatus & eFlashStatus.ERROR_VALIDATE_VERSION) != eFlashStatus.ERROR_VALIDATE_VERSION) 
            {
                if ((flashStatus & eFlashStatus.VALID_VERSION) != eFlashStatus.VALID_VERSION) 
                {                    
                    return true; // upgrade required                                
                }
            }
        }
    }
    
    return false;
}




function shouldRaiseWMPInstall()
{
    var status = detectWMPStatus();

    if ((status & eWMPStatus.ERROR_VALIDATE_INSTALLATION) != eWMPStatus.ERROR_VALIDATE_INSTALLATION) 
    {
        if ((status & eWMPStatus.INSTALLED) != eWMPStatus.INSTALLED) 
        {            
            return true; // install required                        
        } else 
        {
            if ((status & eWMPStatus.ERROR_VALIDATE_VERSION) != eWMPStatus.ERROR_VALIDATE_VERSION) 
            {
                if ((status & eWMPStatus.VALID_VERSION) != eWMPStatus.VALID_VERSION) 
                {                    
                    return true; // upgrade required                                
                }
            }
        }
    }
    
    return false;

}


function detectWMPStatus()
{    
    var result = eWMPStatus.None;
    try
    {          
    
        if ((tvinciHelper.browserType & eBrowserType.Firefox) == eBrowserType.Firefox)
        {
            var bla = navigator.plugins["Microsoft® Windows Media Player Firefox Plugin"];
                
            if (typeof bla == 'undefined')
            {
                return  eWMPStatus.None;        
            }
        }
        
            
        if (PluginDetect.isMinVersion('WindowsMediaPlayer', '0') >= 0)
        {
            result |= eWMPStatus.INSTALLED;
        
            var version = PluginDetect.getVersion('WindowsMediaPlayer');
        
            var vector = version.split(",");
                
            if (vector.length != 0)
            {
                var majorVer = parseInt(vector[0],10);
                if (majorVer >= 9)
                {
                    result |= eWMPStatus.VALID_VERSION;
                }                                    
            }                               
            else
            {
                result |= eWMPStatus.ERROR_VALIDATE_VERSION;
            }                                          
        }                                                                 
        
        return result;
    }catch(e)
    {
        return eWMPStatus.ERROR_VALIDATE_INSTALLATION | eWMPStatus.ERROR_VALIDATE_VERSION;    
    }        
}


function DoPluginCheck()
{
    var shouldInstallFlash = shouldRaiseFlashInstall();
	var shouldInstallWMP = shouldRaiseWMPInstall();

	if(shouldInstallFlash || shouldInstallWMP)
	{
		window.location.href = "static.aspx?Page=PlugInUpdate&desc=PlugIn Update&ajax=false";
	}
}




