home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 September (Special) / Chip-Special_2002-09_Digitalni-Video.bin / servis / wm9 / mpsetupXP.exe / RCDATA / CABINET / wmploc.DLL / 256 / MEDIAINFO.JS < prev    next >
Text File  |  2002-08-19  |  9KB  |  419 lines

  1. // Windows Media Player - Copyright 2000 Microsoft Corporation.
  2. //<script>
  3.  
  4. // See MediaInfo.xls in SD for table of states
  5.  
  6. var mtNone                  = 0;
  7. var mtCD                    = 1;
  8. var mtDVD                   = 2;
  9. var mtAudio                 = 3;
  10. var mtOther                 = 4;
  11.  
  12. var g_MediaType             = mtNone;
  13.  
  14. var lnkNone                 = 0;
  15. var lnkFindAlbumInfo        = 1;
  16. var lnkFindDVDInfo          = 2;
  17. var lnkDVDInfo              = 3;
  18. var lnkBuyCD                = 4;
  19. var lnkBuyDVD               = 5;
  20. var lnkBuyTickets           = 6;
  21.  
  22. var g_rgLinkText = new Array(
  23.     0,
  24.     1452,
  25.     1454,
  26.     1456,
  27.     1458,
  28.     1460,
  29.     1462
  30.     );
  31.  
  32. var g_rgLinkTooltip = new Array(
  33.     0,
  34.     1453,
  35.     1455,
  36.     1457,
  37.     1459,
  38.     1461,
  39.     1463
  40.     );
  41.  
  42. var g_Link1                 = lnkNone;
  43. var g_Link2                 = lnkNone;
  44.  
  45. var artNone                 = 0;
  46. var artAlbum                = 1;
  47. var artDVD                  = 2;
  48.  
  49. var g_Art                   = artNone;
  50.  
  51. var g_isXPOrBetter          = false;
  52.  
  53. var LRDetails               = 1;
  54. var LREdit                  = 2;
  55. var LRBuyNow                = 4;
  56. var LRBuyTickets            = 8;
  57.  
  58. function OnLoad()
  59. {
  60.     g_isXPOrBetter = helper.isXPOrBetter;
  61.  
  62.     if( !g_isXPOrBetter )
  63.     {
  64.         svCoverArt.width=75
  65.         svCoverArt.height=75
  66.     }
  67.  
  68.     svCoverArt.left=(vMediaInfo.width-svCoverArt.width)/2;
  69.     svCoverArt.horizontalAlignment="center"
  70.     txtAux.top=svCoverArt.top+svCoverArt.height+4;
  71.  
  72.     Refresh();
  73. }
  74.  
  75. function OnStateChange(NewState)
  76. {
  77.     if(osMediaOpen==NewState)
  78.     {
  79.         Refresh();
  80.     }
  81. }
  82.  
  83. function OnCurrentItemChange()
  84. {
  85.     if((osPlaylistOpenNoMedia==player.openState)&&(psReady==player.playState))
  86.     {
  87.         Refresh();
  88.     }
  89. }
  90.  
  91. function OnMediaChange(Item)
  92. {
  93.     if( player.currentMedia && player.currentMedia.isIdentical( Item ) )
  94.     {
  95.         Refresh();
  96.     }
  97. }
  98.  
  99. function OnPlaylistChange(Playlist,change)
  100. {
  101.     if( player.currentPlaylist.isIdentical( Playlist ) || (8 == change) )
  102.     {
  103.         Refresh();
  104.     }
  105. }
  106.  
  107. function OnCurrentMediaItemAvailable(bstrItemName)
  108. {
  109.     if( ( (bstrItemName == "WMPImage_AlbumArtLarge") || (bstrItemName == "WMPImage_AlbumArtSmall") ) && 
  110.         (osMediaOpen==player.openState) )
  111.     {
  112.         Refresh();
  113.     }
  114. }
  115.  
  116. function OnClickLink( Link )
  117. {
  118.     switch( Link )
  119.     {
  120.     case lnkFindAlbumInfo:
  121.     case lnkFindDVDInfo:
  122.         helper.linkRequest=LREdit;
  123.         break;
  124.     case lnkDVDInfo:
  125.         helper.linkRequest=LRDetails;
  126.         break;
  127.     case lnkBuyCD:
  128.     case lnkBuyDVD:
  129.         helper.linkRequest=LRBuyNow;
  130.         break;
  131.     case lnkBuyTickets:
  132.         helper.linkRequest=LRBuyTickets;
  133.         break;
  134.     }
  135. }
  136.  
  137. function OnClickCoverArt()
  138. {
  139.     if( g_Art != artNone )
  140.     {
  141.         helper.linkRequest=LRDetails;
  142.     }
  143. }
  144.  
  145. function Refresh()
  146. {
  147.     g_MediaType = GetMediaType();
  148.  
  149.     switch( g_MediaType )
  150.     {
  151.     case mtNone:
  152.         RefreshNone();
  153.         break;
  154.  
  155.     case mtCD:
  156.         RefreshCD();
  157.         break;
  158.  
  159.     case mtDVD:
  160.         RefreshDVD();
  161.         break;
  162.  
  163.     case mtAudio:
  164.         RefreshAudio();
  165.         break;
  166.  
  167.     case mtOther:
  168.         RefreshOther();
  169.         break;
  170.     }
  171.  
  172.     svCoverArt.backgroundImage = "";
  173.     svCoverArt.backgroundImage = GetCoverImage();
  174. }
  175.  
  176. function RefreshNone()
  177. {
  178.     g_Link1 = lnkNone;
  179.     g_Link2 = lnkNone;
  180.  
  181.     UpdateLinks();
  182.  
  183.     g_Art = artNone;
  184.  
  185.     UpdateArt();
  186.  
  187.     txtAux.value="";
  188. }
  189.  
  190. function RefreshCD()
  191. {
  192.     var sAux = "";
  193.     var nLAvailable = 0;
  194.  
  195.     nLAvailable = helper.linkAvailable;
  196.  
  197.     g_Link1 = ( ( 0 != ( nLAvailable & LRBuyNow ) )? lnkBuyCD : lnkNone );
  198.     g_Link2 = ( ( 0 != ( nLAvailable & LRBuyTickets ) )? lnkBuyTickets : lnkNone );
  199.  
  200.     if( ( g_Link1 == lnkNone ) && ( g_Link2 == lnkNone ) )
  201.     {
  202.         g_Link1 = lnkFindAlbumInfo;
  203.     }
  204.  
  205.     UpdateLinks();
  206.  
  207.     g_Art = artAlbum;
  208.  
  209.     UpdateArt();
  210.  
  211.     sAux=player.currentPlaylist.getItemInfo("Name");
  212.     if( "" == sAux )
  213.     {
  214.         sAux= theme.loadString("res://wmploc/RT_STRING/#917");
  215.     }
  216.     txtAux.value=sAux;
  217. }
  218.  
  219. function RefreshDVD()
  220. {
  221.     var sAux = "";
  222.     var nLAvailable = 0;
  223.  
  224.     var rootPlaylist = helper.getRootPlaylist( player.currentPlaylist );
  225.  
  226.     if( null != rootPlaylist )
  227.     {
  228.         sAux=rootPlaylist.getItemInfo("Name");
  229.     }
  230.  
  231.     if( "" == sAux )
  232.     {
  233.         sAux= theme.loadString("res://wmploc/RT_STRING/#950");
  234.     }
  235.  
  236.     var fFound = false;
  237.  
  238.     if( sAux != theme.loadString("res://wmploc/RT_STRING/#950") )
  239.     {
  240.         fFound = true;
  241.     }
  242.  
  243.     nLAvailable = helper.linkAvailable;
  244.  
  245.     g_Link1 = ( ( 0 != ( nLAvailable & LRBuyNow ) )? lnkBuyDVD : lnkNone );
  246.     g_Link2 = ( ( 0 != ( nLAvailable & LRBuyTickets ) )? lnkBuyTickets : lnkNone );
  247.  
  248.     if( ( g_Link1 == lnkNone ) && ( g_Link2 == lnkNone ) )
  249.     {
  250.         if( fFound )
  251.         {
  252.             g_Link1 = lnkDVDInfo;
  253.         }
  254.         else
  255.         {
  256.             g_Link1 = lnkFindDVDInfo;
  257.         }
  258.     }
  259.  
  260.     UpdateLinks();
  261.  
  262.     g_Art = artDVD;
  263.  
  264.     UpdateArt();
  265.  
  266.     txtAux.value=sAux;
  267. }
  268.  
  269. function RefreshAudio()
  270. {
  271.     var nLAvailable = 0;
  272.  
  273.     nLAvailable = helper.linkAvailable;
  274.  
  275.     g_Link1 = ( ( 0 != ( nLAvailable & LRBuyNow ) )? lnkBuyCD : lnkNone );
  276.     g_Link2 = ( ( 0 != ( nLAvailable & LRBuyTickets ) )? lnkBuyTickets : lnkNone );
  277.  
  278.     if( ( g_Link1 == lnkNone ) && ( g_Link2 == lnkNone ) )
  279.     {
  280.         g_Link1 = lnkFindAlbumInfo;
  281.     }
  282.  
  283.     UpdateLinks();
  284.  
  285.     g_Art = artAlbum;
  286.  
  287.     UpdateArt();
  288.  
  289.     txtAux.value=player.currentMedia.getItemInfo("Album");
  290. }
  291.  
  292. function RefreshOther()
  293. {
  294.     g_Link1 = lnkNone;
  295.     g_Link2 = lnkNone;
  296.  
  297.     UpdateLinks();
  298.  
  299.     g_Art = artNone;
  300.  
  301.     UpdateArt();
  302.  
  303.     txtAux.value=player.currentMedia.getItemInfo("Title");
  304. }
  305.  
  306. function UpdateLinks()
  307. {
  308.     txtLink1.value = "res://wmploc.dll/RT_STRING/#" + g_rgLinkText[ g_Link1 ].toString();
  309.     txtLink1.tooltip = "res://wmploc.dll/RT_STRING/#" + g_rgLinkTooltip[ g_Link1 ].toString();
  310.     txtLink2.value = "res://wmploc.dll/RT_STRING/#" + g_rgLinkText[ g_Link2 ].toString();
  311.     txtLink2.tooltip = "res://wmploc.dll/RT_STRING/#" + g_rgLinkTooltip[ g_Link2 ].toString();
  312.  
  313.     txtLink1.horizontalAlignment = "left";
  314.     txtLink2.horizontalAlignment = "left";
  315.  
  316.     if( lnkNone != g_Link1 && lnkNone != g_Link2 )
  317.     {
  318.         txtLink1.width = svLinkBar.width / 2;
  319.         txtLink2.left  = txtLink1.width;
  320.         txtLink2.width = txtLink1.width;
  321.         txtLink1.horizontalAlignment = "left";
  322.         txtLink2.horizontalAlignment = "right";
  323.     }
  324.     else if( lnkNone != g_Link1 )
  325.     {
  326.         txtLink1.width = svLinkBar.width;
  327.         txtLink1.horizontalAlignment = "stretch";
  328.     }
  329.     else if( lnkNone != g_Link2 )
  330.     {
  331.         txtLink2.left  = 0;
  332.         txtLink2.width = svLinkBar.width;
  333.         txtLink2.horizontalAlignment = "stretch";
  334.     }
  335.  
  336.     txtLink1.visible = ( lnkNone != g_Link1 );
  337.     txtLink2.visible = ( lnkNone != g_Link2 );
  338. }
  339.  
  340. function OnLinkBarResize()
  341. {
  342.     if( lnkNone != g_Link1 && lnkNone != g_Link2 )
  343.     {
  344.         txtLink2.horizontalAlignment = "left";
  345.         txtLink1.width = svLinkBar.width / 2;
  346.         txtLink2.left  = txtLink1.width;
  347.         txtLink2.width = txtLink1.width;
  348.         txtLink2.horizontalAlignment = "right";
  349.     }
  350. }
  351.  
  352. function UpdateArt()
  353. {
  354.     switch( g_Art )
  355.     {
  356.     case artNone:
  357.         btnCoverArtClick.cursor = "system";
  358.         btnCoverArtClick.tabStop = "false";
  359.         btnCoverArtClick.upTooltip = "";
  360.         break;
  361.     case artAlbum:
  362.         btnCoverArtClick.cursor = "hand";
  363.         btnCoverArtClick.tabStop = "true";
  364.         btnCoverArtClick.upTooltip = "res://wmploc.dll/RT_STRING/#1450";
  365.         break;
  366.     case artDVD:
  367.         btnCoverArtClick.cursor = "hand";
  368.         btnCoverArtClick.tabStop = "true";
  369.         btnCoverArtClick.upTooltip = "res://wmploc.dll/RT_STRING/#1451";
  370.         break;
  371.     }
  372. }
  373.  
  374. function OpenMedia()
  375. {
  376.     return( ( null != player.currentMedia ) );
  377. }
  378.  
  379. function GetMediaType()
  380. {
  381.     if( !OpenMedia() )
  382.     {
  383.         return( mtNone );
  384.     }
  385.  
  386.     if ( (player.currentPlaylist.count>0) )
  387.     {
  388.         var sURL = player.currentPlaylist.item(0).sourceURL;
  389.  
  390.         if(sURL.indexOf("wmpdvd:")==0)
  391.         {
  392.             return( mtDVD );
  393.         }
  394.         if(sURL.indexOf("wmpcd:")==0)
  395.         {
  396.             return( mtCD );
  397.         }
  398.     }
  399.  
  400.     var sType = player.currentMedia.getItemInfo("FileType").toUpperCase();
  401.  
  402.     if( ( "WMA" == sType ) || ( "MP3" == sType ) )
  403.     {
  404.         return( mtAudio );
  405.     }
  406.  
  407.     return( mtOther );
  408. }
  409.  
  410. function GetCoverImage()
  411. {
  412.     if( !OpenMedia() )
  413.     {
  414.         return( "res://wmploc.dll/RT_BITMAP/#" + helper.getCurrentArtID( g_isXPOrBetter ).toString() );
  415.     }
  416.  
  417.     return( g_isXPOrBetter? "WMPImage_AlbumArtLarge" : "WMPImage_AlbumArtSmall" );
  418. }
  419.