home *** CD-ROM | disk | FTP | other *** search
/ PC World 2002 December / PCWorld_2002-12_cd.bin / Software / Topware / wmp99xrc / mpsetup.exe / wmploc.DLL / HTML / HOME.HTC < prev    next >
Encoding:
HTML Component  |  2002-10-28  |  8.2 KB  |  267 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="SetRating" />
  6. <PUBLIC:METHOD NAME="displayTopList" />
  7. <PUBLIC:METHOD NAME="noData" />
  8.  
  9. <SCRIPT LANGUAGE="JScript">
  10.  
  11. function reload() { load(); }
  12.  
  13. function load()
  14. {
  15.     var s = '<table class=pane border=0 cellpadding=0 cellspacing=0>';
  16.     s += '<tr><td valign=top height=55><table border=0 cellpadding=0 cellspacing=0><tr><td class="artist" id=artistName></td></tr>';
  17.     s += '<tr><td class=song id=trackName></td></tr></table></td></tr>';
  18.     s += '<tr><td height=15 class=text>' + L_RateThisSongLabel_Text + ' <span id=homeRatingArea>' + GetRating(null) + '</span></td></tr>';
  19.     s += '<tr><td height=40></td></tr>';
  20.     s += '<tr><td width=368 id=homeData valign=top><table style="table-layout:fixed" border=0 cellpadding=0 cellspacing=0>';
  21.     s += '<tr><td valign=top><table style="table-layout:fixed" border=0 cellpadding=0 cellspacing=0>';
  22.     s += '<tr><td class=text id=homeMoreMedia></span></td></tr>';
  23.     s += '<tr><td class=text id=homeHeadlines></td></tr>';
  24.     s += '</table></td><td width=8></td>';
  25.     s += '<td width=180 valign=top><table cellpadding=0 cellspacing=0 border=0>';
  26.     s += '<tr><td width=180 valign=top id=homeTopAlbums></td></tr>';
  27.     s += '<tr><td width=180 id=homeOfficialWebsite></td></tr>';
  28.     s += '</table></td></tr></table></td></tr>';
  29.     s += '<tr><td width=368 id=homeNoData style="display:none"></td></tr>';
  30.     element.innerHTML = s + '</table>';
  31. }
  32.  
  33. var g_media = null;
  34. var g_iCurrentList = 0;
  35. var oXML, oDL, oXMLCharts = null;
  36.  
  37. function updateMedia(media)
  38. {
  39.     oDL = element.document.all('dataload');
  40.     oDL.getDataAsync('info_home', doall);
  41.     var a = element.document.all;
  42.     g_media = media;
  43.     
  44.     if (media)
  45.         a('homeRatingArea').innerHTML = GetRating(media);
  46.     
  47.     a('artistName').innerHTML = a('artistNameSaved').innerText;
  48.     a('trackName').innerHTML = a('trackNameSaved').innerText;
  49.     
  50.     noData(GetLoading('black'));
  51. }
  52.  
  53. function doall(oXML)
  54. {
  55.     var oXMLTemp, a = element.document.all;
  56.     
  57.     oXMLCharts = oXML;
  58.     a('homeData').style.display = 'block';
  59.     a('homeNoData').style.display = 'none';
  60.         
  61.     try
  62.     {
  63.         oXMLTemp = oXML.getElementsByTagName('Articles');
  64.         if (oXMLTemp.length)
  65.             oDL.saveIDs(oXMLTemp[0]);
  66.             
  67.         a('homeMoreMedia').innerHTML = GetMoreMedia(oDL, oXML);
  68.         a('homeHeadlines').innerHTML = GetHeadlines(oDL, oXMLCharts);
  69.         a('homeTopAlbums').innerHTML = GetTopList(oDL, oXMLCharts, g_iCurrentList);
  70.         a('homeOfficialWebsite').innerHTML = GetWebsite(oDL, oXML);
  71.     } catch(e)
  72.     {
  73.     }
  74. }
  75.  
  76. function noData(sHTML)
  77. {
  78.     var a = element.document.all;
  79.     a('homeTopAlbums').innerHTML = '';
  80.     a('homeData').style.display = 'none';
  81.     a('homeNoData').style.display = 'block';
  82.     a('homeNoData').innerHTML = sHTML;
  83. }
  84.  
  85. function displayTopList(i)
  86. {
  87.     var oDL = element.document.all('dataload');
  88.  
  89.     if (oXMLCharts)    
  90.     {
  91.         element.document.all('homeTopAlbums').innerHTML = GetTopList(oDL, oXMLCharts, i);
  92.         g_iCurrentList = i;
  93.     }
  94. }
  95.  
  96. var aStarImages = new Array('images\\outline_star.gif', 'images\\full_star.gif', 'images\\outline_star_light.gif', 'images\\full_star_light.gif');
  97. function GetRating(m)
  98. {
  99.     var s = '', iRating = '', iStars, iStarIndex = 2, sAllowChange = '1';
  100.  
  101.     if (m)
  102.     {
  103.         iRating = m.getItemInfo('UserRating');
  104.         if (IsMediaStream())
  105.             sAllowChange = '0';
  106.         else
  107.         {
  108.             try
  109.             {
  110.                 if (m.isReadOnlyItem('UserRating'))
  111.                     sAllowChange = '0';
  112.             } catch(e)
  113.             {
  114.                 sAllowChange = '0';
  115.             }
  116.         }
  117.     }
  118.     
  119.     if ((iRating == '') || (iRating == 0))
  120.     {
  121.         if (m)
  122.             iRating = m.getItemInfo('UserEffectiveRating');
  123.             
  124.         if (iRating == '')
  125.             iRating = 0;
  126.     }
  127.     else
  128.         iStarIndex = 0;    // User Rating stars are brighter
  129.     
  130.     if (iRating == 0)
  131.         iStars = 0;
  132.     else if (iRating < 25)
  133.         iStars = 1;
  134.     else if (iRating < 50)
  135.         iStars = 2;
  136.     else if (iRating < 75)
  137.         iStars = 3;
  138.     else if (iRating < 99)
  139.         iStars = 4;
  140.     else if (iRating == 99)
  141.         iStars = 5;
  142.     else
  143.     {
  144.         iStars = 0;
  145.         iStarIndex = 2;
  146.     }
  147.         
  148.     
  149.     s = '<span id=homeRating onRatingChange="oCurrentPage.SetRating()" allowChange=' + sAllowChange + ' style="behavior:url(rating.htc)" rating="' + iStars + '" emptyImage="' + aStarImages[iStarIndex] + '" fullImage="' + aStarImages[iStarIndex + 1] + '" ></span>';
  150.     return s;
  151. }
  152.  
  153. var aRateMap = new Array(0, 1, 25, 50, 75, 99);
  154. function SetRating()
  155. {
  156.     var iStars = event.rating, iWMPRating;
  157.     iWMPRating = aRateMap[iStars];
  158.     
  159.     if (g_media)
  160.     {
  161.         try
  162.         {
  163.             g_media.setItemInfo('UserRating', iWMPRating);
  164.             element.document.all('homeRatingArea').innerHTML = GetRating(g_media);
  165.         } catch(e)
  166.         {
  167.         }
  168.     }
  169. }
  170.  
  171. function GetMoreMedia(oDL, oXML)
  172. {
  173.     var oMedia = oXML.getElementsByTagName('Media'), sType, sLink, sLabel, sImg;
  174.     if (oMedia.length)
  175.     {
  176.         var s = '<table width=180 border=0 cellpadding=0 cellspacing=0>', i, aStream;
  177.         
  178.         aStream = oMedia[0].getElementsByTagName('Stream');
  179.         s += '<tr><td width=180 class=textTitle>' + L_MoreMediaHeader_Text + '</td></tr>';
  180.  
  181.         sType = oMedia[0].getAttribute('Type');
  182.         sLink = '<A ' + getHrefText(oDL.getUrl(aStream[0]), false, '', '') + ' class=text>';
  183.         if (sType == 'Video')
  184.         {
  185.             sImg = 'images\\video.gif';
  186.             sLabel = L_VideoMediaLabel_Text;
  187.         }
  188.         else
  189.         {
  190.             sImg = 'images\\music.gif';
  191.             sLabel = L_AudioMediaLabel_Text;
  192.         }
  193.         
  194.         s += '<tr><td width=180 valign=top><IMG border=0 width=16 align=absmiddle src="' + sImg + '"> ' + sLink + '<span class=textGray>' + sLabel + ' </span>';
  195.         s += fixText(oDL.getNodeText(oMedia[0], 'TrackName')) + '</A></td></tr>';
  196.         s += '<tr><td width=180 valign=top><A href="X" onclick="return doMoreMedia(\'' + oDL.MSIDPerson + '\', \'' + element.document.all('artistNameSaved').innerText + '\');" class=text>' + L_MoreDownloadsLink_Text + '</A></td></tr>';
  197.         s += '<tr><td height=20></td></tr>';
  198.         return s + '</table>';
  199.     }
  200.     else
  201.         return '';
  202. }
  203.  
  204. function GetHeadlines(oDL, oXML)
  205. {
  206.     var oHeadlines = oXML.getElementsByTagName('Headline'), sHeadline;
  207.  
  208.     sHeadline = fixText(oDL.getNodeText(oHeadlines[0], 'Text'));
  209.     if (sHeadline.length)
  210.     {
  211.         var s = '<table width=180 border=0 cellpadding=0 cellspacing=0>', i;
  212.         s += '<tr><td class=textTitle>' + L_HeadlinesHeader_Text + '</td></tr>';
  213.         s += '<tr><td width=180 valign=top class=text><A href="X" onclick="doflyout(flyheadline, \'' + oDL.getNodeText(oHeadlines[0], 'article_id') + '\'); return false;" class=text>' + sHeadline + '</a></td></tr></table>';
  214.         s += '<tr><td width=180 valign=top><A href="X" onclick="doflyout(flymoreheadlines, \'\'); return false;" class=text>' + L_MoreHeadlinesLink_Text + '</A></td></tr>';
  215.         return s;
  216.     }
  217.     else
  218.         return '';
  219. }
  220.  
  221. function GetWebsite(oDL, oXML)
  222. {
  223.     var oArtist = oXML.getElementsByTagName('ArtistInfo'), oWeb;
  224.     oWeb = oArtist[0].getElementsByTagName('WebsiteLoc');
  225.     var sWeb = oDL.getUrl(oWeb[0]);
  226.      if (sWeb.length > 7)
  227.         return getArtistWebsite(sWeb);
  228.     else
  229.         return '';
  230. }
  231.  
  232. function GetTopList(oDL, oXML, iList)
  233. {
  234.     var aNodes = oXML.getElementsByTagName('TopList');
  235.  
  236.     if (aNodes.length)
  237.     {    
  238.         var oAlbums = aNodes[iList].getElementsByTagName('Album'), sTitles = '';
  239.         var s = '<table width=180 border=0 cellpadding=0 cellspacing=0>', i;
  240.  
  241.         for (i = 0; i < aNodes.length; i++)
  242.         {
  243.             sTitles += fixTextExt(oDL.getNodeText(aNodes[i], 'Title'), 20);
  244.             if (i != (aNodes.length - 1))
  245.                 sTitles += ';';
  246.         }
  247.             
  248.         s += '<tr><td width=180 valign=top';
  249.         s += '<span width=180 style="behavior:url(toc.htc)" onitemselect="' + element.uniqueID + '.displayTopList(window.event.item);" dropdowntop=110 dropdownleft=179 onitemselect="" ';
  250.         s += 'menutext="' + sTitles + '"';
  251.         s += ' text="' + fixTextExt(oDL.getNodeText(aNodes[iList], 'Title'), 20) + '"></span></td></tr>';
  252.         
  253.         for (i = 0; (i < oAlbums.length) && (i < 5); i++)
  254.         {
  255.             s += '<tr><td width=180 valign=top><A href="X" onclick="doflyout(flyalbum, \'' + oDL.getNodeText(oAlbums[i], 'AID') + '\'); return false;"><span class=textGray>' + fixText(oDL.getNodeText(oAlbums[i], 'Title')) + ', </span>';
  256.             s += '<span class=text>' + fixText(oDL.getNodeText(oAlbums[i], 'Artist')) + '</span></a></td></tr>';
  257.         }
  258.         s += '<tr><td height=15></td></tr></table>';
  259.         return s;
  260.     }
  261.     else
  262.         return '';
  263. }
  264.  
  265. </SCRIPT>
  266. </PUBLIC:COMPONENT>
  267.