//
// borrowed from sniffer.js, supports Start365 detection
//
var gHostServer = "www.live365.com";
//gHostServer = "fc02.corp.nanocosm.com";

var bVBScriptEnabled = false; //sniff for vbscript

if (typeof(RememberItEx) != "function")
	document.write('<scr'+'ipt language="JavaScript" src="http://' + gHostServer + '/scripts/cookiemonster.js"></scr' + 'ipt>');

if (navigator.platform.indexOf("Win32") != -1  && navigator.appName != "Netscape") {
	var s = '';

	s += '<SCR'+'IPT LANGUAGE="VBScript"> \n';
	s += 'If ScriptEngineMajorVersion >= 2 Then \n';
	s += '  bVBScriptEnabled = true \n';
	s += 'End If \n';
	s += '</SCR'+'IPT> \n';

	document.write(s);
}


//
// SetPOC -- sets POC META cookie
//
function SetPOC(poc)
{
	RememberItEx('box_mc', 'POC', poc);
}


//
// Sniff for Windows Media Player or RealPlayer, depending on POC
//
var POC = GetCookieEx('box_mc', 'POC');

var verReal = GetCookieEx("player_mc", 'verReal');		// major Real version number
var verWMP  = GetCookieEx("player_mc", 'verWMP');		// major WMP version number
var verFlash = GetCookieEx("player_mc", 'verFlash');	// major Flash version number
var host	= GetCookieEx("player_mc", 'host');			// hosted app name

var s = '';

// VB script for Start365, WMP, and Real sniffers
s += '<SCR' + 'IPT LANGUAGE="VBScript"> \n';

s += '	Function vbGetHost() \n';
s += '		On Error Resume Next \n';
s += '		Dim host \n';
s += '		Dim vt \n';
s += '		host = "NONE" \n';
s += '		vt = vbEmpty \n';
s += '		If (IsObject(window.external)) Then \n';
s += '		    vt = VarType(window.external.appName) \n';
s += '		    If (vt = vbString) Then \n';
s += '			    host = window.external.appName \n';
s += '		    End If \n';
s += '		End If \n';
s += '		vbGetHost = host \n';
s += '	End Function \n';

s += '	Function vbGetWMPVersion() \n';
s += '		On Error Resume Next \n';
s += '	  	Set wmp = CreateObject("WMPlayer.OCX") \n';						// WMP v7.x->v10.x
s += '		If (IsObject(wmp)) Then \n';
s += '			vbGetWMPVersion = wmp.versionInfo \n';
s += '		Else \n';
s += '			Set wmp = CreateObject("MediaPlayer.MediaPlayer.1") \n';	// WMP v5.2-v6.4
s += '			If (IsObject(wmp)) Then \n';
s += '				vbGetWMPVersion = "5.2" \n';
s += '				If (wmp.FileName = "") Then \n';
s += '					vbGetWMPVersion = "6.4" \n';
s += '				End If \n';
s += '			Else \n';
s += '				vbGetWMPVersion = "0.0" \n';
s += '			End If \n';
s += '		End If \n';
s += '	End Function \n';

s += '	Function vbGetRealVersion() \n';
s += '		on error resume next \n';
s += '		Set rp = CreateObject("rmocx.RealPlayer G2 Control.1") \n';
s += '		If (IsObject(rp)) Then \n';
s += '			vbGetRealVersion = rp.GetVersionInfo \n';
s += '		End If \n';
s += '	End Function \n';

s += '	Function vbGetFlashVersion() \n';
s += '		on error resume next \n';
s += '		Dim ver, i, s, fp, v \n';
s += '		ver = 0 \n';
s += '		For i = 10 to 6 Step -1 \n';
s += '			Set fp = CreateObject("ShockwaveFlash.ShockwaveFlash." + CStr(i)) \n';
s += '			If (IsObject(fp)) Then \n';
s += '				v = fp.GetVariable("$version")\n';
s += '				If (v) Then \n';
s += '					ver = i \n';
//s += '					MsgBox("Version=" + CStr(v) + "; ver=" + CStr(i)) \n';
s += '					Exit For \n';
s += '				End If \n';
s += '			End If \n';
s += '		Next \n';
s += '		vbGetFlashVersion = ver \n';
s += '	End Function \n';

s += '</SCR' + 'IPT> \n';

document.write(s);

//
// SniffWMP -- Check to see what WMP version is installed.
// Version number is cached in 'verWMP' session cookie.
//
function SniffWMP(min_ver)
{	
	if (!verWMP) {
		verWMP = -1;
		
		if (bVBScriptEnabled) {
			var version_str = vbGetWMPVersion();
			
			if (version_str != "0.0") {
				var version_str_arr = version_str.split(/[.,]/g);
				verWMP = parseInt(version_str_arr[0]);
			}
			else
				verWMP = -1;
		}
		
		RememberItEx("player_mc", 'verWMP', verWMP);
	}

	return (min_ver <= verWMP);
}

function HasWMP(min_ver)	// also in sniffer.js
{
	return SniffWMP(min_ver);
}

function HasWMP7()
{
	return SniffWMP(7);
}

function HasWMP6()
{
	return SniffWMP(6);
}

function ResniffWMP(min_ver)
{
	verWMP = 0;
	return SniffWMP(min_ver)
}


//
// SniffReal -- Check to see what RealPlayer version is installed.
// Version number is cached in 'verReal' session cookie.
//
function SniffReal(min_ver)
{	
	if (!verReal) {
		verReal = -1;

		if (bVBScriptEnabled) {
			var version_str = vbGetRealVersion();
			
			if (version_str != "0.0") {
				var version_str_arr = version_str.split(/[.,]/g);

				for (var i = 0; i < version_str_arr.length; i++) {
					var v = parseInt(version_str_arr[i]);
					
					if (i == 0 && v < 6) {
						verReal = v;
						break;
					}
					else if (i == 2) {	// 6.0.10.x=> RealOne; 6.0.11.x => RealOne v2; 6.0.12.1040 => RP v10.5
						verReal = 8;
						if (v == 10)
							verReal = 9;
						else if (v >= 11)
							verReal = v - 2;
						break;
					}
				}
			}
			else
				verReal = -1;
		}
		
		RememberItEx("player_mc", 'verReal', verReal);
	}

	return (min_ver <= verReal);
}


//
// SniffFlash -- Check to see what Flash version is installed.
// Version number is cached in 'verFlash' session cookie.
//
function SniffFlash(min_ver)
{	
	if (!verFlash) {
		verFlash = -1;
		
		if (bVBScriptEnabled) {
			verFlash = vbGetFlashVersion();
		}
		else if (navigator.plugins && navigator.plugins.length) {
			for (var x = 0; x < navigator.plugins.length; x++) {
				if (navigator.plugins[x].name.indexOf('Shockwave Flash') != -1) {
					var str = navigator.plugins[x].description.split('Shockwave Flash ')[1];
					var ver = str.split(/ /)[0];
					verFlash = ver.split(/\./)[0];
					break;
				}
			}
		}
		
		RememberItEx("player_mc", 'verFlash', verFlash);
	}

	return (min_ver <= verFlash);
}


//
// HostedInApp -- is the user using given appName?
//
function HostedInApp(app)
{
	if (!host) {
		host = 'NONE';
		
		try {
			if (parent && parent.external && typeof(parent.window.external.appName) != "undefined")
				host = parent.window.external.appName;
		}
		catch(e) {
			host = 'NONE';
		}
		
		RememberItEx("player_mc", 'host', host);
	}

	return (host == app);
}

function HostedInStart365()
{
	return HostedInApp('Start365');
}

