//    Copyright (c) Microsoft Corporation.  All rights reserved.

//-----------------------------------------------------------------
// PlayerDetection.js                                              
//										                           
// Purpose:                                                        
//   Javascript library of functions used by Sample.htm.  Each
//   function is commented as to its purpose.            
//-----------------------------------------------------------------


//------------------------
//-- Global Vars 
//------------------------
var WMPVer = "unknown";       // Set to WMP version string detected
var fHasWMP = false;          // True if either WMP v6.4 or v7+ found
var fHasWMP64 = false;        // True if WMP v6.4 found
var fHasWMP7 = false;         // True if WMP v7+ (8, 9) found
var fAppletRunning = false;   // True if v9 Applet is in use
var fPluginRunning = false;   // True if v6.4 Netscape plugin is in use

//-----------------------------------------------
// Name:  GetBrowser
// Purpose: Get Browser Information
//-----------------------------------------------
function GetBrowser()
{
   var agt=navigator.userAgent.toLowerCase();
   if( ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1)) )
       return "IE";
   else if( ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
         && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
         && (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1)) )
       return "Netscape";
   else
       return "unknown";
}


//------------------------------------------------
// Name:  GetPlayerMajorVer
// Purpose: Get Media Player Major Version Number
//------------------------------------------------
function GetPlayerMajorVer()
{
	var strVer = new String(WMPVer);
	s = strVer.split(".");
    return s[0];
}


//-------------------------------------------------
// Name:  GetPlayerMinorVer
// Purpose: Get Media Player Major Version Number.
//-------------------------------------------------
function GetPlayerMinorVer()
{
	var strVer = new String(WMPVer);
	s = strVer.split(".");
	if (s[1])
		return s[1];
	else
		return("unknown");
}


//-----------------------------------------------------------------
// Name: IsNSPluginInstalled
// Purpose: Checks mime types to determine if the WMP 6.4 Netscape 
//          Plugin is installed.
//-----------------------------------------------------------------
function IsNSPluginInstalled()
{
    // See if 6.4 pluggin installed
    if (navigator.mimeTypes && navigator.mimeTypes["application/x-mplayer2"] && navigator.mimeTypes["application/x-mplayer2"].enabledPlugin)
		return(true);
	else
		return(false);
}


//----------------------------------------------------------------------
// Name:  set_uiMode
// Purpose:  Wrapper function for setting the uiMode of the Media Player 
//  control.  Supports uiMode of "none", "mini" and "full".
//-----------------------------------------------------------------------
function set_uiMode(uiMode)
{
 // Note: Per WMP SDK, uiMode is a string:  "none", "mini", "full"
 // If Netscape pluggin is running set properties via SetXXX routines.
 if (fPluginRunning)
 {
 	if (uiMode=="none") {
	   document.MediaPlayer.SetShowControls(false);
	   document.MediaPlayer.SetShowTracker(false);
	   document.MediaPlayer.SetEnableTracker(false);
	   document.MediaPlayer.SetShowPositionControls(false);
	   document.MediaPlayer.SetEnablePositionControls(false);
	   document.MediaPlayer.SetShowStatusBar(false);
	} 
    if (uiMode=="mini") {
	   document.MediaPlayer.SetShowControls(true);
	   document.MediaPlayer.SetShowTracker(false);
	   document.MediaPlayer.SetEnableTracker(false);
	   document.MediaPlayer.SetShowPositionControls(false);
	   document.MediaPlayer.SetEnablePositionControls(false);
	   document.MediaPlayer.SetShowStatusBar(true);
	}  
	if (uiMode=="full") {
	   document.MediaPlayer.SetShowControls(true);
	   document.MediaPlayer.SetShowTracker(true);
	   document.MediaPlayer.SetEnableTracker(true);
	   document.MediaPlayer.SetShowPositionControls(true);
	   document.MediaPlayer.SetEnablePositionControls(true);
	   document.MediaPlayer.SetShowStatusBar(true);
	}
 }
 else
 // If WMP 6.4 then set ui mode related properties
 if (fHasWMP64) { 
	if (uiMode=="none") {
	   MediaPlayer.ShowControls=false;
	   MediaPlayer.ShowTracker=false;
	   MediaPlayer.EnableTracker=false;
	   MediaPlayer.ShowPositionControls=false;
	   MediaPlayer.EnablePositionControls=false;
	   MediaPlayer.ShowStatusBar=false;
	} 
    if (uiMode=="mini") {
	   MediaPlayer.ShowControls=true;
	   MediaPlayer.ShowTracker=false;
	   MediaPlayer.EnableTracker=false;
	   MediaPlayer.ShowPositionControls=false;
	   MediaPlayer.EnablePositionControls=false;
	   MediaPlayer.ShowStatusBar=true;
	}  
	if (uiMode=="full") {
	   MediaPlayer.ShowControls=true;
	   MediaPlayer.ShowTracker=true;
	   MediaPlayer.EnableTracker=true;
	   MediaPlayer.ShowPositionControls=true;
	   MediaPlayer.EnablePositionControls=true;
	   MediaPlayer.ShowStatusBar=true;
	}
 }
 else
 {
	// If using v7+ interface set through applet's setXXX routine or
	// by setting property directly
	if (fAppletRunning)
		document.MediaPlayer.setUiMode(uiMode);
	else
		MediaPlayer.uiMode=uiMode;
 }
}


//---------------------------------------------------------------------------
// Name: get_uiMode
// Purpose: Wrapper function for getting current uiMode of the Media Player.
//---------------------------------------------------------------------------
function get_uiMode()
{
 // Note: Per WMP SDK, uiMode is a string:  "none", "mini", "full"
 // If using the Netscape plugin access properties through GetXXX routines.
 if (fPluginRunning) { 
	if (document.MediaPlayer.GetShowControls()==false &&
	    document.MediaPlayer.GetShowTracker()==false &&
	    document.MediaPlayer.GetEnableTracker()==false && 
	    document.MediaPlayer.GetShowPositionControls()==false && 
	    document.MediaPlayer.GetEnablePositionControls()==false )
    return("none");

    if (document.MediaPlayer.GetShowControls()==true &&
	    document.MediaPlayer.GetShowTracker()==false && 
	    document.MediaPlayer.GetEnableTracker()==false &&
	    document.MediaPlayer.GetShowPositionControls()==false &&
	    document.MediaPlayer.GetEnablePositionControls()==false)
	return("mini");   

	if (document.MediaPlayer.GetShowControls()==true &&
	    document.MediaPlayer.GetShowTracker()==true &&
	    document.MediaPlayer.GetEnableTracker()==true &&
	    document.MediaPlayer.GetShowPositionControls()==true &&
	    document.MediaPlayer.GetEnablePositionControls()==true)
	return("full");   

    return("unknown");
 }
 else
 // If accessing the old 6.4 properties
 if (fHasWMP64) {
 	   	    
	if (MediaPlayer.ShowControls==false &&
	    MediaPlayer.ShowTracker==false &&
	    MediaPlayer.EnableTracker==false && 
	    MediaPlayer.ShowPositionControls==false && 
	    MediaPlayer.EnablePositionControls==false )
    return("none");

    if (MediaPlayer.ShowControls==true &&
	    MediaPlayer.ShowTracker==false && 
	    MediaPlayer.EnableTracker==false &&
	    MediaPlayer.ShowPositionControls==false &&
	    MediaPlayer.EnablePositionControls==false)
	return("mini");   

	if (MediaPlayer.ShowControls==true &&
	    MediaPlayer.ShowTracker==true &&
	    MediaPlayer.EnableTracker==true &&
	    MediaPlayer.ShowPositionControls==true &&
	    MediaPlayer.EnablePositionControls==true)
	return("full");   

    return("unknown");
 }
 else
 { 
    // Accessing later v7+ interface either through applet's getXXX 
    // routines or directly
    if (fAppletRunning)
		return(document.MediaPlayer.getUiMode()); 
	else	
		return(MediaPlayer.uiMode);
 }
}

//---------------------------------------------------------------------
// Name:  AddDownloadLink
// Purpose:  Add WMP v9 download link if an older version of WMP 
//           detected.
//---------------------------------------------------------------------
function AddDownloadLink(MajorVer)
{
 if (!(MajorVer) || MajorVer=="unknown" || MajorVer<9)
  { 
   document.write('<tr><td><center><h5>Older Media Player Detected - Please Download. <A HREF="http://windowsmedia.com/download"><IMG SRC="http://www.microsoft.com/windows/windowsmedia/images/Download_88x31_static.gif" WIDTH="88" HEIGHT="31" BORDER="0" ALT="Get Windows Media Player" VSPACE="7" align="absmiddle"></A></h5></td></tr>');
  } 
}
