function GetSilverlightVersion() {
	var parts = Array("ver-major", "ver-minor", "ver-build", "ver-revision");

	var nav = navigator.plugins["Silverlight Plug-In"];

	var versionStr = "";

	// Non IE-browsers
	if (nav) {
		versionStr = nav.description;
	}
	// IE-browsers
	else {
		if (SilverlightIsInstalledOnIE)
			versionStr = GetSilverlightVersionOnIE();
		else
			versionStr = -1;
	}

	return versionStr;
}

function SilverlightIsInstalledOnIE(version)
{
	if (version == null)
		version = "1.0";

	var AgControl = null;

	try {
		var AgControl = new ActiveXObject("AgControl.AgControl");
	}
	catch (e) {
		// Silverlight is not installed
		// AgControl is already null
	}

	if (AgControl == null)
		return false;
	else
		return AgControl.isVersionSupported(version);
}

function GetSilverlightVersionOnIE()
{
	var currVersion = Array(1,0,0,0);

	for (var i = 0; i < currVersion.length; i++){
		currVersion[i] = FindSupportedMaxVersionOnIE(currVersion, i,0,10000000);
	}

	return GetVersionString(currVersion);
}

function GetVersionString(versionArr,currVersion,index)
{
	if (index == null)
		index = -1;

	var versionStr = "";

	for (var i = 0; i < versionArr.length; i++){
		if (i > 0)
			versionStr += ".";
		if (i==index)
			versionStr += currVersion;
		else
			versionStr += versionArr[i];
	}

	return versionStr;
}

function FindSupportedMaxVersionOnIE(versionArr, index, bottom,top)
{
	if (bottom >= top){
		return bottom;
	}

	var currVersion = bottom;
	var prevVersion = currVersion;
	var step = 1;

	while (currVersion<top)	{
		if (SilverlightIsInstalledOnIE(GetVersionString(versionArr,currVersion,index)))	{
			prevVersion = currVersion;
			currVersion += step;
			step *= 2;
		}
		else
			return FindSupportedMaxVersionOnIE(versionArr, index,prevVersion,currVersion-1)
	}

	if (SilverlightIsInstalledOnIE(GetVersionString(versionArr,top,index)))
		return top;
	else
		return FindSupportedMaxVersionOnIE(versionArr, index,prevVersion,top-1)
}

