if (!window.Silverlight)
    window.Silverlight = { };

Silverlight.ua = null;

function detectSilverlightVersion() {
	var container = null;
	var silverlightVersion;

	try {
		var control = null;

		if (Silverlight.ua.Browser == 'MSIE') 
		{
			control = new ActiveXObject('AgControl.AgControl');
		}
		else 
		{
			if ( navigator.plugins["Silverlight Plug-In"] )
			{
				container = document.createElement('div');
				document.body.appendChild(container);
				container.innerHTML= '<embed type="application/x-silverlight" />';
				control = container.childNodes[0];
			}
		}		
		if (control.Settings) {
			try {
				silverlightVersion = control.Settings.version;
			}
			catch (z) {
			}
		}

var slVers=new Array(
"4.0.41108.0",   // 4 Beta 1 
"3.0.50106.0",  // 3 GDR 3
"3.0.40818.0",  // 3 GDR 2
"3.0.40723.0",  // 3 GDR 1
"3.0.40624.0",	// 3 RTW
"3.0.40307.0",
"2.0.40115.0",
"2.0.31005.0",
"2.0.30523.9",
"2.0.30523.8",
"2.0.30523.6",
"2.0.30226.2",
"1.0.30715.0",
"1.0.30401.0",
"1.0.30109.0",
"1.0.21115.0",
"1.1.20926.0",
"1.0.20816"
);
//		if (!silverlightVersion) {
//			for (i in slVers) {
//				if (control.IsVersionSupported(slVers[i])) {
//					silverlightVersion = slVers[i];
//					break;
//				} 
//			}
//		}
		
		if (!silverlightVersion)
		{
			var major = 0;
			var minor = 0;
			var revision = 0;
			var build = 0;
			
			var buildVersionString = function(versionNumbers) {
				var versionString = "";
				for (var l = 0; l < versionNumbers.length; ++l) {
					versionString += versionNumbers[l];
					if (l != versionNumbers.length - 1)
						versionString += ".";
				}
				return versionString;
			}
			
			var versionNumbers = [0,0,0,0];
			for(var i = 0; i < versionNumbers.length; ++i) {
				for (var incrementor = 0; incrementor < 100000; ++incrementor) {
					versionNumbers[i] = incrementor;

					if (!control.IsVersionSupported(buildVersionString(versionNumbers))) {
						versionNumbers[i] = incrementor - 1;
						break;
					} 
				}
			}
			
			silverlightVersion = buildVersionString(versionNumbers);
		}


		control = null; 
	}
	catch (e) {
	}
	if (container) {
		document.body.removeChild(container);
	}
	
	if (!silverlightVersion)
		silverlightVersion = "Not installed!";
	
	return silverlightVersion;
}

///////////////////////////////////////////////////////////////////////////////
// detectUserAgent Parses UA string and stores relevant data in Silverlight.ua.
///////////////////////////////////////////////////////////////////////////////
Silverlight.detectUserAgent = function()
{
    var ua = window.navigator.userAgent;
   
    
    Silverlight.ua = {OS:'Unsupported',Browser:'Unsupported'};
    
    //Silverlight does not support pre-Windows NT platforms
    if (ua.indexOf('Windows NT') >= 0) {
        Silverlight.ua.OS = 'Windows';
    }
    else if (ua.indexOf('PPC Mac OS X') >= 0) {
        Silverlight.ua.OS = 'MacPPC';
    }
    else if (ua.indexOf('Intel Mac OS X') >= 0) {
        Silverlight.ua.OS = 'MacIntel';
    }
    
    if ( Silverlight.ua.OS != 'Unsupported' )
    {
        if (ua.indexOf('MSIE') >= 0) {
            if (navigator.userAgent.indexOf('Win64') == -1)
            {
                if (parseInt(ua.split('MSIE')[1]) >= 6) {
                    Silverlight.ua.Browser  = 'MSIE';
                }
                
            }
        }
        else if (ua.indexOf('Firefox') >= 0) {
            var version = ua.split('Firefox/')[1].split('.');
            var major = parseInt(version[0]);
            if (major >= 2) {
                Silverlight.ua.Browser = 'Firefox';
            }
            else {
                var minor = parseInt(version[1]);
                if ((major == 1) && (minor >= 5)) {
                    Silverlight.ua.Browser  = 'Firefox';
                }
            }
        }
        
        else if (ua.indexOf('Safari') >= 0) {
            Silverlight.ua.Browser = 'Safari';
        }            
    }
}

// Detect the user agent at script load time
Silverlight.detectUserAgent();