﻿
if (!window.Silverlight)
{
    window.Silverlight = { };
}

Silverlight.supportedUserAgent = function(version, userAgent)
{
    try
    {
        var ua = null;

        if ( userAgent)
        {
           ua = userAgent;
        }
        else
        {
           ua = window.navigator.userAgent;
        }
        
        var slua = {OS:'Unsupported',Browser:'Unsupported'};
        
        //Silverlight does not support pre-Windows NT platforms
        if (ua.indexOf('Windows NT') >= 0 || ua.indexOf('Mozilla/4.0 (compatible; MSIE 6.0)')>=0) {
            slua.OS = 'Windows';
        }
        else if (ua.indexOf('PPC Mac OS X') >= 0) {
            slua.OS = 'MacPPC';
        }
        else if (ua.indexOf('Intel Mac OS X') >= 0) {
            slua.OS = 'MacIntel';
        }
        
        if ( slua.OS != 'Unsupported' )
        {
            if (ua.indexOf('MSIE') >= 0) {
                if (navigator.userAgent.indexOf('Win64') == -1)
                {
                    if (parseInt(ua.split('MSIE')[1]) >= 6) {
                        slua.Browser  = 'MSIE';
                    }
                }
            }
            
            else if (ua.indexOf('Safari') >= 0) {
                slua.Browser = 'Safari';
            }     
                   
            else {
                var versionArr = ua.split('Firefox/')[1].split('.');
                var major = parseInt(versionArr[0]);
                if (major >= 2) {
                    slua.Browser = 'Firefox';
                }
                else {
                    var minor = parseInt(versionArr[1]);
                    if ((major == 1) && (minor >= 5)) {
                        slua.Browser  = 'Firefox';
                    }
                }
            }
        }
        
        //detect all unsupported platform combinations (IE on Mac, Safari on Win)
        var supUA =   (!(   slua.OS == 'Unsupported' ||                             //Unsupported OS
                            slua.Browser == 'Unsupported' ||                        //Unsupported Browser
                            (slua.OS == 'Windows' && slua.Browser == 'Safari') ||   //Safari is not supported on Windows
                            (slua.OS.indexOf('Mac') >= 0 && slua.Browser == 'MSIE')   //IE is not supported on Mac
                                ));

        if (version=='2.0')
        {
            //add PPC to unsupported list
            return (supUA && (slua.OS != 'MacPPC' ));
        }
        else if (version == '1.0')
        {
            //add win2k to unsupported list
            return (supUA && ( ua.indexOf('Windows NT 5.0') < 0));
        }
        else
        {
            return (supUA);  
        }  
    }
    catch (e)
    {
        return false;
    }
}
