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