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 / HTML / FILEINFO.HTC < prev    next >
Text File  |  2002-08-19  |  8KB  |  203 lines

  1. <PUBLIC:COMPONENT lightWeight=true>
  2. <PUBLIC:ATTACH EVENT="oncontentready" ONEVENT="load()" />
  3. <PUBLIC:METHOD NAME="reload" />
  4. <PUBLIC:METHOD NAME="updateMedia" />
  5. <PUBLIC:METHOD NAME="edit" />
  6.  
  7. <SCRIPT LANGUAGE="JScript">
  8.  
  9. function reload() { load(); }
  10.  
  11. function load()
  12. {
  13.     var s = '<table width=368 class=pane border=0 cellpadding=0 cellspacing=0>';
  14.     s += '<tr><td class=artist>' + L_FileInfoTitle_Text + '</td></tr>';
  15.     s += '<tr><td height=16><table width=368 border=0 cellpadding=0 cellspacing=0><td>' + GetFileTOC(0) + '</td><td class=textTitle align=right onbuttonclick="return oCurrentPage.edit();" style="behavior:url(barbutton.htc)" text="' + L_EditInfoButton_Text + '"></td></tr></table></td></tr>';
  16.     s += '<tr><td height=14><table width=368 border=0 cellpadding=0 cellspacing=0><tr><td height=14><span class=textGray id=fileinfoArtistName>' + element.document.all('artistNameSaved').innerText + '</span> / <span id=fileinfoAlbumName class=textGray></span></td><td width=10></td></tr></table></td></tr>';
  17.     s += '<tr><td height=10></td></tr>';
  18.     s += '<tr><td align=right valign=top height=40><a href="X" onclick="return pageSlide(15)" alt="' + L_PhotographyTitle_Text + '" style="behavior: url(button.htc)" direction=0></a></td></tr>';
  19.  
  20.     s += '<tr><td width=368 height=100% valign=top><div class=text id=fileInfoText style="overflow-y: scroll; width: 368; height: expression(Math.max(144, document.body.clientHeight - 176))"></div></td></tr>';
  21.  
  22.     element.innerHTML = s + '</table>';    
  23. }
  24.  
  25. var aTrackInfo = new Array('Title', 'WM/SetSubTitle', 'WM/Genre', 'WM/Mood', 'WM/Track', 'WM/BeatsPerMinute', 'WM/InitialKey', 'WM/AlbumTitle', 
  26.     'WM/OriginalAlbumTitle', 'WM/PartOfSet', 'WM/ContentGroupDescription', 'WM/Language', 'WM/MediaClassPrimaryID', 'WM/MediaClassSecondaryID');
  27. var aTrackInfoLabels = new Array(L_SongNameLabel_Text, L_SubtitleLabel_Text, L_GenreLabel_Text, L_MoodLabel_Text, L_TrackNumberLabel_Text, L_BeatsPerMinuteLabel_Text, L_InitialKeyLabel_Text, L_AlbumLabel_Text, 
  28.     L_OriginalAlbumLabel_Text, L_PartOfSetLabel_Text, L_MusicCategoryLabel_Text, L_LanguageLabel_Text, L_PrimaryMediaLabel_Text, L_SecondaryMediaLabel_Text);
  29.  
  30. var aArtistInfo = new Array('Author', 'WM/AlbumArtist', 'WM/Conductor', 'WM/Writer', 'WM/OriginalLyricist',
  31.     'WM/Composer', 'WM/ModifiedBy', 'WM/OriginalArtist');
  32. var aArtistInfoLabels = new Array(L_LeadArtistLabel_Text, L_BandLabel_Text, L_ConductorLabel_Text, L_LyricistLabel_Text, L_OriginalLyricistLabel_Text,
  33.     L_ComposerLabel_Text, L_ModifiedByLabel_Text, L_OriginalArtistLabel_Text);
  34.  
  35. var aDRMInfo = new Array('Is_Protected', 'DRMHasLicense', 'DRMPlayRightsStatus', 'DRMCDCopyStatus', 'DRMDeviceCopyStatus', 'DRMSDMICopyStatus', 'DRMBackupStatus');
  36. var aDRMInfoLabels = new Array(L_ProtectedLabel_Text, L_HasLicenseLabel_Text, L_PlayRightsLabel_Text, L_CopyRightsLabel_Text, L_DeviceCopyRightsLabel_Text, L_SDMICopyRightsLabel_Text, L_BackupRightsLabel_Text);
  37.  
  38. var aInfoList = new Array(aTrackInfo, aArtistInfo);
  39. var aInfoLabels = new Array(aTrackInfoLabels, aArtistInfoLabels);
  40. var aInfoTitles = new Array(L_TrackInfoLabel_Text, L_ArtistInfoLabel_Text);
  41.  
  42. function edit()
  43. {
  44.     if (window.external.appColorLight)
  45.         window.external.AdvancedEditDialog(); 
  46.     updateUI(); 
  47.     return false;
  48. }
  49.  
  50. function updateUI()
  51. {
  52.     try
  53.     {
  54.         var p = element.document.all('player');
  55.         var m = p.currentMedia;
  56.         updateMedia(m);
  57.     } catch(e)
  58.     {
  59.     }
  60. }
  61.  
  62. function updateMedia(media) 
  63. {
  64.     var s = '<table border=0 cellpadding=0 cellspacing=0>', i;
  65.     
  66.     if (media)
  67.     {
  68.         element.document.all('fileinfoAlbumName').innerHTML = fixText(media.getItemInfo('WM/AlbumTitle'));
  69.         element.document.all('fileinfoArtistName').innerHTML = element.document.all('artistNameSaved').innerText;
  70.         
  71.         for (i = 0; i < aInfoList.length; i++)
  72.             s += GetInfo(aInfoTitles[i], media, aInfoList[i], aInfoLabels[i]);
  73.  
  74.         s += GetComments(media);
  75.         s += GetWebsites(media);
  76.         s += GetCredits(media);
  77.         s += GetDRMInfo(media);
  78.     }
  79.     element.document.all('fileInfoText').innerHTML = s + '</table>';
  80. }
  81.  
  82. var aPrimaryID = new Array();
  83. aPrimaryID['{D1607DBC-E323-4BE2-86A1-48A42A28441E}'] = 'Music';
  84. aPrimaryID['{01CD0F29-DA4E-4157-897B-6275D50C4F11}'] = 'Audio';
  85. aPrimaryID['{DB9830BD-3AB3-4FAB-8A37-1A995F7FF74B}'] = 'Video';
  86. aPrimaryID['{FCF24A76-9A57-4036-990D-E35DD8B244E1}'] = 'Other';
  87.  
  88. var aSecondaryID = new Array();
  89. aSecondaryID['{6677DB9B-E5A0-4063-A1AD-ACEB52840CF1}'] = 'News';
  90. aSecondaryID['{1B824A67-3F80-4E3E-9CDE-F7361B0F5F1B}'] = 'Talk Show';
  91. aSecondaryID['{E0236BEB-C281-4EDE-A36D-7AF76A3D45B5}'] = 'Audio Book';
  92. aSecondaryID['{3A172A13-2BD9-4831-835B-114F6A95943F}'] = 'Spoken Word';
  93. aSecondaryID['{1FE2E091-4E1E-40CE-B22D-348C732E0B10}'] = 'News';
  94. aSecondaryID['{D6DE1D88-C77C-4593-BFBC-9C61E8C373E3}'] = 'Talk Show';
  95. aSecondaryID['{B76628F4-300D-443D-9CB5-01C285109DAF}'] = 'Home Video';
  96. aSecondaryID['{A9B87FC9-BD47-4BF0-AC4F-655B89F7D868}'] = 'Movie/Film';
  97. aSecondaryID['{BA7F258A-62F7-47A9-B21F-4651C42A000E}'] = 'TV Show';
  98. aSecondaryID['{44051B5B-B103-4B5C-92AB-93060A9463F0}'] = 'Corporate Video';
  99. aSecondaryID['{E3E689E2-BA8C-4330-96DF-A0EEEFFA6876}'] = 'Music Video';
  100.  
  101. function GetInfo(sTitle, media, aFields, aLabels)
  102. {
  103.     var s = '<table border=0 cellpadding=0 cellspacing=0>', i, sText;
  104.     
  105.     s += '<tr><td colspan=3 class=textBold>' + sTitle + '</td></tr>';
  106.     
  107.     for (i = 0; i < aFields.length; i++)
  108.     {
  109.         sText = fixText(media.getItemInfo(aFields[i]));
  110.         
  111.         if (aFields[i] == 'WM/MediaClassPrimaryID')
  112.             sText = aPrimaryID[sText];
  113.         else if (aFields[i] == 'WM/MediaClassSecondaryID')
  114.             sText = aSecondaryID[sText];
  115.             
  116.         if (sText && sText.length)
  117.             s += '<tr><td width=110 valign=top class=textGray>' + aLabels[i] + '</td><td width=8><td valign=top class=text>' + sText + '</td></tr>';
  118.     }
  119.         
  120.     return s + '<tr><td height=5></td></tr></table>';
  121. }
  122.  
  123. function GetComplexText(media, strField)
  124. {
  125.     var s = '', c, i, o;
  126.     c = media.getAttributeCountByType(strField, '');
  127.     for (i = 0; i < c; i++)
  128.     {
  129.         o = media.getItemInfoByType(strField, '', i);
  130.         s += fixText(o.text) + '<br>';
  131.     }
  132.     return s;
  133. }
  134.  
  135. function GetComments(media)
  136. {
  137.     var s = '<table border=0 cellpadding=0 cellspacing=0>', c, i, o, sText = '', fDisplay = false;
  138.     
  139.     s += '<tr><td class=textBold>' + L_CommentsInfoLabel_Text + '</td></tr>';
  140.     sText = fixText(media.getItemInfo('Description'));
  141.     if (sText.length) fDisplay = true;
  142.     s += '<tr><td class=text>' + sText + '</td></tr>';
  143.     
  144.     if (fDisplay)
  145.         return s + '<tr><td height=5></td></tr></table>';
  146.     else
  147.         return '';
  148. }
  149.  
  150. function GetWebsites(media)
  151. {
  152.     var s = '<table border=0 cellpadding=0 cellspacing=0>', fDisplay = false, sText, c, i, o;
  153.     
  154.     s += '<tr><td class=textBold>' + L_WebsitesLabel_Text + '</td></tr>';
  155.     sText = fixText(media.getItemInfo('WM/AudioFileURL'));
  156.     if (sText.length) fDisplay = true;
  157.     s += '<tr><td class=text><A href="' + sText + '" target=web>' + sText + '</a></td></tr>';
  158.  
  159.     sText = fixText(media.getItemInfo('WM/AuthorURL'));
  160.     if (sText.length) fDisplay = true;
  161.     s += '<tr><td class=text><A href="' + sText + '" target=web>' + sText + '</a></td></tr>';
  162.  
  163.     sText = fixText(media.getItemInfo('WM/AudioSourceURL'));
  164.     if (sText.length) fDisplay = true;
  165.     s += '<tr><td class=text><A href="' + sText + '" target=web>' + sText + '</a></td></tr>';
  166.  
  167.     c = media.getAttributeCountByType('WM/UserWebURL', '');
  168.     for (i = 0; i < c; i++)
  169.     {
  170.         o = media.getItemInfoByType('WM/UserWebURL', '', i);
  171.         sText = fixText(o.text);
  172.         s += '<tr><td class=text><A href="' + sText + '" target=web>' + sText + '</a></td></tr>';
  173.     }
  174.  
  175.     if (fDisplay)
  176.         return s + '<tr><td height=5></td></tr></table>';
  177.     else
  178.         return '';
  179. }
  180.  
  181. function GetCredits(media)
  182. {
  183.     var s = '<table border=0 cellpadding=0 cellspacing=0>', fDisplay = false, sText;
  184.     
  185.     s += '<tr><td class=textBold>' + L_CreditsLabel_Text + '</td></tr>';
  186.     
  187.     sText = fixText(media.getItemInfo('WM/MusicianCreditsList'));
  188.     if (sText.length) fDisplay = true;
  189.     s += '<tr><td class=text>' + sText + '</td></tr>';
  190.  
  191.     if (fDisplay)
  192.         return s + '<tr><td height=5></td></tr></table>';
  193.     else
  194.         return '';
  195. }
  196.  
  197. function GetDRMInfo(media)
  198. {
  199.     return GetInfo(L_DRMPropertiesLabel_Text, media, aDRMInfo, aDRMInfoLabels);
  200. }
  201. </SCRIPT>
  202. </PUBLIC:COMPONENT>
  203.