home *** CD-ROM | disk | FTP | other *** search
/ Minami 40 / MINAMI40.ISO / Extra / MPSetup.exe / 1033 / RCDATA / CABINET / wmploc.DLL / HTML / HOME.HTC < prev    next >
Text File  |  2002-12-14  |  8KB  |  268 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').innerText = a('artistNameSaved').innerText;
  48.     a('trackName').innerText = 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.     trackIt('SRG0');
  160.     
  161.     if (g_media)
  162.     {
  163.         try
  164.         {
  165.             g_media.setItemInfo('UserRating', iWMPRating);
  166.             element.document.all('homeRatingArea').innerHTML = GetRating(g_media);
  167.         } catch(e)
  168.         {
  169.         }
  170.     }
  171. }
  172.  
  173. function GetMoreMedia(oDL, oXML)
  174. {
  175.     var oMedia = oXML.getElementsByTagName('Media'), sType, sLink, sLabel, sImg, sArtist;
  176.     var s = '<table width=180 border=0 cellpadding=0 cellspacing=0>', i, aStream;
  177.     s += '<tr><td width=180 class=textTitleHue>' + L_MoreMediaHeader_Text + '</td></tr>';
  178.     if (oMedia.length)
  179.     {
  180.         aStream = oMedia[0].getElementsByTagName('Stream');
  181.  
  182.         sType = oMedia[0].getAttribute('Type');
  183.         sLink = '<A ' + getHrefText(oDL.getUrl(aStream[0]), false, 'MMT0') + ' class=text>';
  184.         if (sType == 'Video')
  185.         {
  186.             sImg = 'images\\video.gif';
  187.             sLabel = L_VideoMediaLabel_Text;
  188.         }
  189.         else
  190.         {
  191.             sImg = 'images\\music.gif';
  192.             sLabel = L_AudioMediaLabel_Text;
  193.         }
  194.         
  195.         s += '<tr><td width=180 valign=top><IMG border=0 width=16 align=absmiddle src="' + sImg + '"> ' + sLink + '<span class=textGray>' + sLabel + ' </span>';
  196.         s += fixText(oDL.getNodeText(oMedia[0], 'TrackName')) + '</A></td></tr>';
  197.     }
  198.  
  199.     s += '<tr><td width=180 valign=top><A href="X" onclick="trackIt(\'MMT1\'); return doMoreMedia();" class=text>' + L_MoreDownloadsLink_Text + '</A></td></tr>';
  200.     s += '<tr><td height=20></td></tr>';
  201.     return s + '</table>';
  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=textTitleHue>' + L_HeadlinesHeader_Text + '</td></tr>';
  213.         s += '<tr><td width=180 valign=top class=text><A href="X" onclick="trackIt(\'MHT0\'); doflyout(flyheadline, \'' + fixText(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="trackIt(\'MHT1\'); 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.         s += '<tr><td width=180 class=textTitleHue>' + L_TopListHeader_Text + '</td></tr>';
  242.         for (i = 0; i < aNodes.length; i++)
  243.         {
  244.             sTitles += fixTextExt(oDL.getNodeText(aNodes[i], 'Title'), 20);
  245.             if (i != (aNodes.length - 1))
  246.                 sTitles += ';';
  247.         }
  248.             
  249.         s += '<tr><td width=180 valign=top';
  250.         s += '<span width=180 style="behavior:url(toc.htc)" code="XM" onitemselect="' + element.uniqueID + '.displayTopList(window.event.item);" dropdowntop=110 dropdownleft=179 onitemselect="" ';
  251.         s += 'menutext="' + sTitles + '"';
  252.         s += ' text="' + fixTextExt(oDL.getNodeText(aNodes[iList], 'Title'), 20) + '"></span></td></tr>';
  253.         
  254.         for (i = 0; (i < oAlbums.length) && (i < 5); i++)
  255.         {
  256.             s += '<tr><td width=180 valign=top><A href="X" onclick="trackIt(\'XMT' + i + '\'); doflyout(flyalbum, \'' + quoteText(oDL.getNodeText(oAlbums[i], 'AID')) + '\'); return false;"><span class=textGray>' + fixText(oDL.getNodeText(oAlbums[i], 'Title')) + ', </span>';
  257.             s += '<span class=text>' + fixText(oDL.getNodeText(oAlbums[i], 'Artist')) + '</span></a></td></tr>';
  258.         }
  259.         s += '<tr><td height=15></td></tr></table>';
  260.         return s;
  261.     }
  262.     else
  263.         return '';
  264. }
  265.  
  266. </SCRIPT>
  267. </PUBLIC:COMPONENT>
  268.