home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 175 / DPCS0902.ISO / demos / LiquidPlayer / data1.cab / Program_Executable_Files / LiquidPlayer.exe / player6 / enmetadisplay.js < prev    next >
Encoding:
JavaScript  |  2001-11-30  |  29.1 KB  |  756 lines

  1. // Show album art
  2. var lyricsAvailable = 0;
  3. var notesAvailable = 0;
  4. var creditsAvailable = 0;
  5. var xmldoc;
  6. var curSelection = 0;
  7.  
  8. function setScrollerVisible(container, scrollObj, controlUp, controlDown)
  9. {
  10.     if(container.clipHeight - scrollObj.scrollHeight < 0) { 
  11. //        alert("Show Scrollers: " + container.clipHeight + " " + scrollObj.scrollHeight);
  12.         document.all(controlUp).style.visibility = "visible";
  13.         document.all(controlDown).style.visibility = "visible";        
  14.     } else {
  15. //        alert("Hide Scrollers: " + container.clipHeight + " " + scrollObj.scrollHeight);
  16.         document.all(controlUp).style.visibility = "hidden";
  17.         document.all(controlDown).style.visibility = "hidden";
  18.     }
  19. }
  20.  
  21. function displayBranding()
  22. {
  23.     window.external.LaunchCurrentBranding();
  24. }
  25.  
  26. // Launch web link indicated by the id.
  27. // For id==0 url is passed in textLink
  28. function launchLink(id, textLink)
  29. {
  30.     var targetName;
  31.     if (id == 0)
  32.     {
  33.         targetName = "findMusic";
  34.     }
  35.     else
  36.     {
  37.         targetName = "buyWindow";
  38.         imageNode = xmldoc.documentElement.selectSingleNode("links");
  39.  
  40.         if (imageNode != null) 
  41.         {
  42.             var curNode = null;
  43.             nodeAttr = imageNode.attributes;
  44.             switch(id) 
  45.             {
  46.             case 1:
  47.                 curNode = nodeAttr.getNamedItem("buyDownload");    
  48.                 break;
  49.             case 2:
  50.                 curNode = nodeAttr.getNamedItem("purchase");    
  51.                 break;
  52.             case 3:
  53.                 targetName = "promoWindow";
  54.                 curNode = nodeAttr.getNamedItem("promoURL");    
  55.                 break;
  56.             }
  57.  
  58.             if (curNode != null) 
  59.             {
  60.                 textLink = curNode.text;                
  61.             }
  62.         }
  63.     }
  64.  
  65.     // Ptd valign=top: Bug Fix: prepend http prefix if it's not present.
  66.     if (textLink.substr(0,4) == "www.")
  67.     {
  68.         window.open("http://"+textLink,targetName);
  69.     }
  70.     else
  71.     {
  72.         window.open(textLink,targetName);
  73.     }                
  74.  
  75. }
  76.  
  77.  
  78.  
  79.  
  80. function dynamicRollover(id)
  81. {
  82.     switch(id) {
  83.  
  84.     case 0:
  85.         // download free track
  86.         MM_swapImage("DownloadFreeTrack","","enimages/free_track_blue.gif",1);
  87.         break;
  88.     case 1:
  89.         MM_swapImage("buy_track","","enimages/buy_track_blue.gif",1);
  90.         break;
  91.     case 2:
  92.         MM_swapImage("BuyAlbum","","enimages/buy_album_blue.gif",1);
  93.         break;
  94.     case 3:
  95.         if (curSelection != 2) {
  96.         MM_swapImage("Image2","","enimages/lyrics_blue.gif",1);
  97.         }
  98.         break;
  99.     case 4:
  100.         if (curSelection != 3) {
  101.         MM_swapImage("notesImage","","enimages/notes_blue.gif",1);
  102.         }
  103.         break;
  104.     case 5:
  105.         if (curSelection != 4) {
  106.         MM_swapImage("Image5","","enimages/credits_blue.gif",1);
  107.         }
  108.         break;
  109.     case 6:
  110.         if (curSelection != 0) {
  111.         MM_swapImage("Image1","","enimages/trackinfo_blue.gif",1);
  112.         }
  113.         break;
  114.     case 7:
  115.         if (curSelection != 1) {
  116.         MM_swapImage("Image3","","enimages/promo_blue.gif",1);
  117.         }
  118.         break;
  119.     }
  120. }
  121.  
  122. function down(id)
  123. {
  124.     switch(id) {
  125.     case 0:
  126.         MM_swapImage("DownloadFreeTrack","","enimages/free_track_on.gif",1);
  127.         break;
  128.     case 1:
  129.         MM_swapImage("buy_track","","enimages/buy_track_on.gif",1);
  130.         break;
  131.     case 2:
  132.         MM_swapImage("BuyAlbum","","enimages/buy_album_on.gif",1);
  133.         break;
  134.     case 3:
  135.         MM_swapImage("Image2","","enimages/lyrics_on.gif",1);
  136.         MM_swapImage("Image5","","enimages/credits_off.gif",1);
  137.         MM_swapImage("notesImage","","enimages/notes_off.gif",1);
  138.         break;
  139.     case 4:
  140.         MM_swapImage("notesImage","","enimages/notes_on.gif",1);
  141.         MM_swapImage("Image2","","enimages/lyrics_off.gif",1);
  142.         MM_swapImage("Image5","","enimages/credits_off.gif",1);
  143.         break;
  144.     case 5:
  145.         MM_swapImage("Image5","","enimages/credits_on.gif",1);
  146.         MM_swapImage("Image2","","enimages/lyrics_off.gif",1);
  147.         MM_swapImage("notesImage","","enimages/notes_off.gif",1);
  148.         break;
  149.     case 6:
  150.         MM_swapImage("Image1","","enimages/trackinfo_on.gif",1);
  151.          MM_swapImage("Image5","","enimages/credits_off.gif",1);
  152.         MM_swapImage("Image2","","enimages/lyrics_off.gif",1);
  153.         MM_swapImage("notesImage","","enimages/notes_off.gif",1);
  154.         break;
  155.     case 7:
  156.         MM_swapImage("Image3","","enimages/promo_on.gif",1);
  157.         MM_swapImage("Image5","","enimages/credits_off.gif",1);
  158.         MM_swapImage("Image2","","enimages/lyrics_off.gif",1);
  159.         MM_swapImage("notesImage","","enimages/notes_off.gif",1);
  160.         break;
  161.     }
  162. }
  163.  
  164. function arrow(id, imageName, imageFile) 
  165. {
  166.     if (curSelection != id) {
  167.         document.images(imageName).src = imageFile;
  168.     }
  169. }    
  170.  
  171. function viewMouseOut(id) 
  172. {
  173.     if (curSelection != 4) {
  174.         document.images("Image5").src = "enimages/credits_off.gif";
  175.     }
  176. }
  177.  
  178. function viewMouseOut1(id) 
  179. {
  180.     if (curSelection != 2) {
  181.         MM_swapImage("Image2","","enimages/lyrics_off.gif",1);
  182.     }
  183. }
  184.  
  185. function viewMouseOut2(id) 
  186. {
  187.     if (curSelection != 3) {
  188.         MM_swapImage("notesImage","","enimages/notes_off.gif",1);
  189.     }
  190. }
  191.  
  192. function viewMouseOut3(id) 
  193. {
  194.     if (curSelection != 1) {
  195.         MM_swapImage("Image3","","enimages/promo_off.gif",1);
  196.     }
  197. }
  198.  
  199. function viewMouseOut4(id) 
  200. {
  201.     if (curSelection != 0) {
  202.         MM_swapImage("Image1","","enimages/trackinfo_off.gif",1);
  203.     }
  204. }
  205.  
  206. function showItem( targetId, show )
  207. {
  208.     document.all("ALBUMART").style.display = "none";
  209.     document.all("PROMOART").style.display = "none";
  210.     target = document.all( targetId );
  211.       if (show == 1){
  212.           target.style.display = "";
  213.       } else {
  214.           target.style.display = "none";
  215.       }
  216. }
  217.  
  218.  
  219.          
  220.  
  221. function showLyrics (show)
  222. {
  223.     if (show == 1) {
  224.         curSelection = 2;
  225.         showItem("ALBUMART",1);
  226.         showPromo(0);
  227.         showMetaData(0);
  228.         showNotes(0);
  229.         showCredits(0);
  230.         document.all("Lyrics").style.display = "";
  231.         OnSizeChange();
  232.         //document.images("Image2").src = "enimages/lyrics_on.gif";
  233.         if (lyricsAvailable) {
  234.             setScrollerVisible(objContainerLyrics, objScrollerLyrics, "divUpControlLyrics", "divDownControlLyrics");
  235.          }
  236.     } else {
  237.         //document.images("Image2").src = "enimages/lyrics_off.gif";
  238.         document.all("Lyrics").style.display = "none";
  239.         document.all("divDownControlLyrics").style.visibility = "hidden";
  240.         document.all("divUpControlLyrics").style.visibility = "hidden";
  241.     }
  242. }
  243.  
  244. function showNotes (show)
  245. {
  246.     if (show == 1) {
  247.         curSelection = 3;
  248.         showItem("ALBUMART",1);
  249.         showPromo(0);
  250.         showMetaData(0);
  251.         showLyrics(0);
  252.         showCredits(0);
  253.         document.all("Notes").style.display = "";
  254.         OnSizeChange();
  255.         //document.images("notesImage").src = "enimages/notes_on.gif";
  256.         if (notesAvailable) {
  257.             setScrollerVisible(objContainerNotes, objScrollerNotes, "divUpControlNotes", "divDownControlNotes");
  258.         }
  259.     } else {
  260.         //document.images("notesImage").src = "enimages/notes_off.gif";
  261.         document.all("Notes").style.display = "none";
  262.         document.all("divDownControlNotes").style.visibility = "hidden";
  263.         document.all("divUpControlNotes").style.visibility = "hidden";
  264.     }
  265. }
  266.  
  267. function showCredits (show)
  268. {
  269.     if (show == 1) {
  270.         curSelection = 4;
  271.         showItem("ALBUMART",1);
  272.         showPromo(0);
  273.         showMetaData(0);
  274.         showNotes(0);
  275.         showLyrics(0);
  276.         document.all("Credits").style.display = "";
  277.         OnSizeChange();
  278.         //document.images("Image5").src = "enimages/credits_on.gif";
  279.         if (creditsAvailable) {
  280.             setScrollerVisible(objContainerCredits, objScrollerCredits, "divUpControlCredits", "divDownControlCredits");
  281.         }
  282.     } else {
  283.         //document.images("Image5").src = "enimages/credits_off.gif";
  284.         document.all("Credits").style.display = "none";
  285.         document.all("divDownControlCredits").style.visibility = "hidden";
  286.         document.all("divUpControlCredits").style.visibility = "hidden";
  287.     }
  288.  
  289. function showMetaData(show)
  290. {
  291.     if (show == 1) {
  292.         curSelection = 0;
  293.         showPromo(0);
  294.         showItem("ALBUMART",1);
  295.         showNotes(0);
  296.         showLyrics(0);
  297.         showCredits(0);
  298.         document.images("Image1").src = "enimages/trackinfo_on.gif";
  299.         document.all("metadata").style.display = "";
  300.     } else {
  301.         document.images("Image1").src = "enimages/trackinfo_off.gif";
  302.         document.all("metadata").style.display = "none";
  303.     }
  304. }
  305.  
  306. function showPromo(show)
  307. {
  308.     if (show == 1) {
  309.         curSelection = 1;
  310.         showMetaData(0);
  311.         showItem("PROMOART",1);
  312.         showNotes(0);
  313.         showLyrics(0);
  314.         showCredits(0);
  315.         document.images("Image3").src = "enimages/promo_on.gif";
  316.         document.all("metadata").style.display = "";
  317.     } else {
  318.         document.images("Image3").src = "enimages/promo_off.gif";
  319.         document.all("metadata").style.display = "none";
  320.     }
  321. }
  322.  
  323.  
  324.  
  325. function parseCredits(doc)
  326. {
  327.     var rootNode = doc.documentElement;
  328.     
  329.     if (rootNode != null) {
  330.     
  331.     
  332.     imageNode = doc.documentElement.selectSingleNode("credits");
  333.         if (imageNode != null) {
  334.         itemsHTML = "<A href='javascript:showCredits(1)'  onMouseOut='viewMouseOut(5)' onMouseOver='dynamicRollover(5)' onMouseDown='down(5)' onFocus='if(this.blur)this.blur()'><IMG src='enimages/credits_off.gif' width='155' height='15' border='0' name='Image5' vspace='3' hspace='6'>";
  335.         itemsHTML += "</A>";
  336.             document.all("nocredits").innerHTML = itemsHTML;
  337.         } else {
  338.             itemsHTML = "<IMG src='enimages/credits_grey.gif' width='155' height='15' border='0' vspace='3' hspace='6'>";
  339.             document.all("nocredits").innerHTML = itemsHTML;
  340.             itemsHTML = "<img src='enimages/clear.gif' width=0 height=0 name='Image5'>";
  341.             document.all("imagefixcredits").innerHTML = itemsHTML;
  342.         }
  343.     
  344.         // Credits display
  345.         imageNode = doc.documentElement.selectSingleNode("credits");
  346.         if (imageNode != null) {
  347.             var nodeAttr = imageNode.attributes;
  348.             
  349.             var itemsHTML = "<table width='300' border='0' cellspacing='0' cellpadding='2'>";
  350.             var columnWidth = 164;
  351.  
  352.             var curNode = nodeAttr.getNamedItem("artistLabel");
  353.             if (curNode != null) {
  354.                 itemsHTML += "<tr><td valign=top><font class='textlightaqua'>" + curNode.text + "</font></td valign=top>";
  355.                 curNode = nodeAttr.getNamedItem("artist");
  356.                 if (curNode != null) 
  357.                     itemsHTML += "<td valign=top width='" + columnWidth + "'><font class='textwhite'>" + curNode.text + "</font></td valign=top></tr>";
  358.             }
  359.             var curNode = nodeAttr.getNamedItem("composerLabel");
  360.             if (curNode != null) {
  361.                 itemsHTML += "<tr><td valign=top><font class='textlightaqua'>" + curNode.text + "</font></td valign=top>";
  362.                 curNode = nodeAttr.getNamedItem("composer");
  363.                 if (curNode != null) 
  364.                     itemsHTML += "<td valign=top width='" + columnWidth + "'><font class='textwhite'>" + curNode.text + "</font></td valign=top></tr>";
  365.             }
  366.             var curNode = nodeAttr.getNamedItem("albumLabel");
  367.             if (curNode != null) {
  368.                 itemsHTML += "<tr><td valign=top><font class='textlightaqua'>" + curNode.text + "</font></td valign=top>";
  369.                 curNode = nodeAttr.getNamedItem("album");
  370.                 if (curNode != null) 
  371.                     itemsHTML += "<td valign=top width='" + columnWidth + "'><font class='textwhite'>" + curNode.text + "</font></td valign=top></tr>";
  372.             }
  373.             var curNode = nodeAttr.getNamedItem("labelLabel");
  374.             if (curNode != null) {
  375.                 itemsHTML += "<tr><td valign=top><font class='textlightaqua'>" + curNode.text + "</font></td valign=top>";
  376.                 curNode = nodeAttr.getNamedItem("label");
  377.                 if (curNode != null) 
  378.                     itemsHTML += "<td valign=top width='" + columnWidth + "'><font class='textwhite'>" + curNode.text + "</font></td valign=top></tr>";
  379.             }
  380.             var curNode = nodeAttr.getNamedItem("copyrightLabel");
  381.             if (curNode != null) {
  382.                 itemsHTML += "<tr><td valign=top><font class='textlightaqua'>" + curNode.text + "</font></td valign=top>";
  383.                 curNode = nodeAttr.getNamedItem("copyright");
  384.                 if (curNode != null) 
  385.                     itemsHTML += "<td valign=top width='" + columnWidth + "'><font class='textwhite'>" + curNode.text + "</font></td valign=top></tr>";
  386.             }
  387.             var curNode = nodeAttr.getNamedItem("copySrcLabel");
  388.             if (curNode != null) {
  389.                 itemsHTML += "<tr><td valign=top><font class='textlightaqua'>" + curNode.text + "</font></td valign=top>";
  390.                 curNode = nodeAttr.getNamedItem("copySrc");
  391.                 if (curNode != null) 
  392.                     itemsHTML += "<td valign=top width='" + columnWidth + "'><font class='textwhite'>" + curNode.text + "</font></td valign=top></tr>";
  393.             }
  394.             var curNode = nodeAttr.getNamedItem("featuredLabel");
  395.             if (curNode != null) {
  396.                 itemsHTML += "<tr><td valign=top><font class='textlightaqua'>" + curNode.text + "</font></td valign=top>";
  397.                 curNode = nodeAttr.getNamedItem("featured");
  398.                 if (curNode != null) 
  399.                     itemsHTML += "<td valign=top width='" + columnWidth + "'><font class='textwhite'>" + curNode.text + "</font></td valign=top></tr>";
  400.             }
  401.             var curNode = nodeAttr.getNamedItem("sessionLabel");
  402.             if (curNode != null) {
  403.                 itemsHTML += "<tr><td valign=top><font class='textlightaqua'>" + curNode.text + "</font></td valign=top>";
  404.                 curNode = nodeAttr.getNamedItem("session");
  405.                 if (curNode != null) 
  406.                     itemsHTML += "<td valign=top width='" + columnWidth + "'><font class='textwhite'>" + curNode.text + "</font></td valign=top></tr>";
  407.             }
  408.             var curNode = nodeAttr.getNamedItem("producerLabel");
  409.             if (curNode != null) {
  410.                 itemsHTML += "<tr><td valign=top><font class='textlightaqua'>" + curNode.text + "</font></td valign=top>";
  411.                 curNode = nodeAttr.getNamedItem("producer");
  412.                 if (curNode != null) 
  413.                     itemsHTML += "<td valign=top width='" + columnWidth + "'><font class='textwhite'>" + curNode.text + "</font></td valign=top></tr>";
  414.             }
  415.             var curNode = nodeAttr.getNamedItem("engLabel");
  416.             if (curNode != null) {
  417.                 itemsHTML += "<tr><td valign=top><font class='textlightaqua'>" + curNode.text + "</font></td valign=top>";
  418.                 curNode = nodeAttr.getNamedItem("engineers");
  419.                 if (curNode != null) 
  420.                     itemsHTML += "<td valign=top width='" + columnWidth + "'><font class='textwhite'>" + curNode.text + "</font></td valign=top></tr>";
  421.             }
  422.             var curNode = nodeAttr.getNamedItem("conductorLabel");
  423.             if (curNode != null) {
  424.                 itemsHTML += "<tr><td valign=top><font class='textlightaqua'>" + curNode.text + "</font></td valign=top>";
  425.                 curNode = nodeAttr.getNamedItem("conductor");
  426.                 itemsHTML += "<td valign=top width='" + columnWidth + "'><font class='textwhite'>" + curNode.text + "</font></td valign=top></tr>";
  427.             }
  428.             var curNode = nodeAttr.getNamedItem("chorusLabel");
  429.             if (curNode != null) {
  430.                 itemsHTML += "<tr><td valign=top><font class='textlightaqua'>" + curNode.text + "</font></td valign=top>";
  431.                 curNode = nodeAttr.getNamedItem("chorus");
  432.                 itemsHTML += "<td valign=top width='" + columnWidth + "'><font class='textwhite'>" + curNode.text + "</font></td valign=top></tr>";
  433.             }
  434.             var curNode = nodeAttr.getNamedItem("chorusConLabel");
  435.             if (curNode != null) {
  436.                 itemsHTML += "<tr><td valign=top><font class='textlightaqua'>" + curNode.text + "</font></td valign=top>";
  437.                 curNode = nodeAttr.getNamedItem("chorusConductor");
  438.                 itemsHTML += "<td valign=top width='" + columnWidth + "'><font class='textwhite'>" + curNode.text + "</font></td valign=top></tr>";
  439.             }
  440.             var curNode = nodeAttr.getNamedItem("studioLabel");
  441.             if (curNode != null) {
  442.                 itemsHTML += "<tr><td valign=top><font class='textlightaqua'>" + curNode.text + "</font></td valign=top>";
  443.                 curNode = nodeAttr.getNamedItem("studio");
  444.                 itemsHTML += "<td valign=top width='" + columnWidth + "'><font class='textwhite'>" + curNode.text + "</font></td valign=top></tr>";
  445.             }
  446.             var curNode = nodeAttr.getNamedItem("studioMixdownLabel");
  447.             if (curNode != null) {
  448.                 itemsHTML += "<tr><td valign=top><font class='textlightaqua'>" + curNode.text + "</font></td valign=top>";
  449.                 curNode = nodeAttr.getNamedItem("studioMixdown");
  450.                 itemsHTML += "<td valign=top width='" + columnWidth + "'><font class='textwhite'>" + curNode.text + "</font></td valign=top></tr>";
  451.             }
  452.             var curNode = nodeAttr.getNamedItem("studioMasteringLabel");
  453.             if (curNode != null) {
  454.                 itemsHTML += "<tr><td valign=top><font class='textlightaqua'>" + curNode.text + "</font></td valign=top>";
  455.                 curNode = nodeAttr.getNamedItem("studioMastering");
  456.                 itemsHTML += "<td valign=top width='" + columnWidth + "'><font class='textwhite'>" + curNode.text + "</font></td valign=top></tr>";
  457.             }
  458.             var curNode = nodeAttr.getNamedItem("studioMixdownLabel");
  459.             if (curNode != null) {
  460.                 itemsHTML += "<tr><td valign=top><font class='textlightaqua'>" + curNode.text + "</font></td valign=top>";
  461.                 curNode = nodeAttr.getNamedItem("studioMixdown");
  462.                 itemsHTML += "<td valign=top width='" + columnWidth + "'><font class='textwhite'>" + curNode.text + "</font></td valign=top></tr>";
  463.             }
  464.             var curNode = nodeAttr.getNamedItem("remixersLabel");
  465.             if (curNode != null) {
  466.                 itemsHTML += "<tr><td valign=top><font class='textlightaqua'>" + curNode.text + "</font></td valign=top>";
  467.                 curNode = nodeAttr.getNamedItem("remixers");
  468.                 itemsHTML += "<td valign=top width='" + columnWidth + "'><font class='textwhite'>" + curNode.text + "</font></td valign=top></tr>";
  469.             }
  470.             var curNode = nodeAttr.getNamedItem("masterEngLabel");
  471.             if (curNode != null) {
  472.                 itemsHTML += "<tr><td valign=top><font class='textlightaqua'>" + curNode.text + "</font></td valign=top>";
  473.                 curNode = nodeAttr.getNamedItem("masterEng");
  474.                 itemsHTML += "<td valign=top width='" + columnWidth + "'><font class='textwhite'>" + curNode.text + "</font></td valign=top></tr>";
  475.             }
  476.             var curNode = nodeAttr.getNamedItem("orchestraLabel");
  477.             if (curNode != null) {
  478.                 itemsHTML += "<tr><td valign=top><font class='textlightaqua'>" + curNode.text + "</font></td valign=top>";
  479.                 curNode = nodeAttr.getNamedItem("orchestra");
  480.                 itemsHTML += "<td valign=top width='" + columnWidth + "'><font class='textwhite'>" + curNode.text + "</font></td valign=top></tr>";
  481.             }
  482.             itemsHTML += "</table>";            
  483.  
  484.             document.all("creditsText").innerHTML = itemsHTML;
  485.             creditsAvailable = true;
  486.         } else {
  487.             var itemsHTML = "<table width='100%' border='0' cellspacing='0' cellpadding='2'>";
  488.             itemsHTML += "<tr><td valign=top><font class='textwhite'><center>NO CREDITS AVAILABLE</center></font></td valign=top></tr></table>";
  489.             document.all("creditsText").innerHTML = itemsHTML;
  490.         }
  491.     } else {
  492.         var itemsHTML = "<table width='100%' border='0' cellspacing='0' cellpadding='2'>";
  493.         itemsHTML += "<tr><td valign=top><font class='textwhite'><center>NO CREDITS AVAILABLE</center></font></td valign=top></tr></table>";
  494.         document.all("creditsText").innerHTML = itemsHTML;
  495.     }
  496. }
  497.  
  498. function parseMetadata(doc)
  499. {
  500.     var rootNode = doc.documentElement;
  501.     
  502.     if (rootNode != null) {
  503.         var imageText = "";
  504.         
  505. var brandingNode = doc.documentElement.selectSingleNode("Branding");
  506.         if (brandingNode != null) {
  507.             var nodeAttr = brandingNode.attributes;
  508.             var imageNode = nodeAttr.getNamedItem("Image");
  509.             itemsHTML = "<a href='javascript:displayBranding()'><img border='0' src='" + imageNode.text + "'  width='120' height='29'></a>";
  510.             document.all("branding").innerHTML = itemsHTML;
  511.         } else {
  512.             itemsHTML = "<a href='javascript:displayBranding()'><img border='0' src='enimages/retail.gif'  width='120' height='29'></a>";
  513.             document.all("branding").innerHTML = itemsHTML;
  514.         }
  515.     
  516.         // parse the individual items
  517.         var trackNode = doc.documentElement.selectSingleNode("track");
  518.         var itemsHTML = "";
  519.         var nodeAttr = trackNode.attributes;
  520.         var curNode = nodeAttr.getNamedItem("songtitle");
  521.  
  522.         curNode = nodeAttr.getNamedItem("artist");
  523.         if (curNode != null) {
  524.             itemsHTML = "<table width='100%' border='0' cellspacing='0' cellpadding='1'>";
  525.             itemsHTML += "<tr><td valign=top><font class='textwhite'>";
  526.             itemsHTML += curNode.text + "</font></td valign=top></tr></table>";
  527.             document.all("artist").innerHTML = itemsHTML;
  528.         }
  529.         curNode = nodeAttr.getNamedItem("albumtitle");
  530.         if (curNode != null) {
  531.             itemsHTML = "<table width='100%' border='0' cellspacing='0' cellpadding='1'>";
  532.             itemsHTML += "<tr><td valign=top><font class='textwhite'>";
  533.             itemsHTML += curNode.text + "</font></td valign=top></tr></table>";
  534.             document.all("album").innerHTML = itemsHTML;
  535.         }
  536.          curNode = nodeAttr.getNamedItem("songtitle");
  537.         if (curNode != null) {
  538.             itemsHTML = "<table width='100%' border='0' cellspacing='0' cellpadding='1'>";
  539.             itemsHTML += "<tr><td valign=top><font class='textwhite'>";
  540.             itemsHTML += curNode.text + "</font></td valign=top></tr></table>";
  541.             document.all("songtitle2").innerHTML = itemsHTML;
  542.         }
  543.  
  544.         curNode = nodeAttr.getNamedItem("label");
  545.         if (curNode != null) {
  546.             itemsHTML = "<table width='100%' border='0' cellspacing='0' cellpadding='1'>";
  547.             itemsHTML += "<tr><td valign=top><font class='textwhite'>";
  548.             itemsHTML += curNode.text + "</font></td valign=top></tr></table>";
  549.             document.all("label").innerHTML = itemsHTML;
  550.         }
  551.  
  552.         curNode = nodeAttr.getNamedItem("price");
  553.         curLicenseNode = nodeAttr.getNamedItem("licensed");
  554.         itemsHTML = "<table width='100%' border='0' cellspacing='0' cellpadding='1'>";
  555.         itemsHTML += "<tr><td valign=top><font class='textwhite'>";
  556.         if (curNode != null && curLicenseNode == null) {
  557.             itemsHTML += curNode.text;
  558.         } else if (curLicenseNode != null) {
  559.             itemsHTML += curLicenseNode.text;
  560.         }
  561.         itemsHTML += " </font></td valign=top></tr></table>";
  562.         document.all("price").innerHTML = itemsHTML;
  563.  
  564.          curNode = nodeAttr.getNamedItem("copyright");
  565.         if (curNode != null) {
  566.             itemsHTML = "<table width='100%' border='0' cellspacing='0' cellpadding='1'>";
  567.             itemsHTML += "<tr><td valign=top><font class='textwhite'>";
  568.             itemsHTML += curNode.text + "</font></td valign=top></tr></table>";
  569.             document.all("copyright").innerHTML = itemsHTML;
  570.         }
  571.  
  572.         // Lyrics
  573.         
  574.         var curNode = nodeAttr.getNamedItem("lyrics");
  575.         if (curNode != null) {
  576.         itemsHTML = "<A href='javascript:showLyrics(1)' onMouseOut='viewMouseOut1(3)' onMouseOver='dynamicRollover(3)' onMouseDown='down(3)' onFocus='if(this.blur)this.blur()'><IMG src='enimages/lyrics_off.gif' width='155' height='15' border='0' name='Image2' vspace='3' hspace='6'>";
  577.         itemsHTML += "</A>";
  578.             document.all("nolyrics").innerHTML = itemsHTML;
  579.         } else {
  580.             itemsHTML = "<IMG src='enimages/lyrics_grey.gif' width='155' height='15' border='0' vspace='3' hspace='6'>";
  581.             document.all("nolyrics").innerHTML = itemsHTML;
  582.             itemsHTML = "<img src='enimages/clear.gif' width=0 height=0 name='Image2'>";
  583.             document.all("imagefixlyrics").innerHTML = itemsHTML;
  584.         }
  585.         
  586.         
  587.         curNode = nodeAttr.getNamedItem("lyrics");
  588.         if (curNode != null) {
  589.             lyricsAvailable = 1; // We gots lyrics
  590.             itemsHTML = "<table width='100%' border='0' cellspacing='0' cellpadding='2'>";
  591.             itemsHTML += "<tr><td valign=top><font class='textwhite'>";
  592.             itemsHTML += curNode.text + "</font></td valign=top></tr></table>";
  593.             document.all("lyricsText").innerHTML = itemsHTML;
  594.         } else {
  595.             itemsHTML = "<table width='100%' border='0' cellspacing='0' cellpadding='2'>";
  596.             itemsHTML += "<tr><td valign=top><font class='textwhite'><center>NO LYRICS AVAILABLE</center></font></td valign=top></tr></table>";
  597.             document.all("lyricsText").innerHTML = itemsHTML;
  598.         }
  599.  
  600.         // Notes
  601.         
  602.         var curNode = nodeAttr.getNamedItem("notes");
  603.         if (curNode != null) {
  604.         itemsHTML = "<A href='javascript:showNotes(1)' onMouseOut='viewMouseOut2(4)' onMouseOver='dynamicRollover(4)' onMouseDown='down(4)' onFocus='if(this.blur)this.blur()'><IMG src='enimages/notes_off.gif' width='155' height='15' border='0' name='notesImage' vspace='3' hspace='6'>";
  605.         itemsHTML += "</A>";
  606.             document.all("nonotes").innerHTML = itemsHTML;
  607.         } else {
  608.             itemsHTML = "<IMG src='enimages/notes_grey.gif' width='155' height='15' border='0' vspace='3' hspace='6'>";
  609.             document.all("nonotes").innerHTML = itemsHTML;
  610.             itemsHTML = "<img src='enimages/clear.gif' width=0 height=0 name='notesImage'>";
  611.             document.all("imagefixnotes").innerHTML = itemsHTML;
  612.         }
  613.         
  614.         curNode = nodeAttr.getNamedItem("notes");
  615.         if (curNode != null) {
  616.             notesAvailable = 1; // We gots notes
  617.             itemsHTML = "<table width='100%' border='0' cellspacing='0' cellpadding='2'>";
  618.             itemsHTML += "<tr><td valign=top><font class='textwhite'>";
  619.             itemsHTML += curNode.text + "</font></td valign=top></tr></table>";
  620.             document.all("notesText").innerHTML = itemsHTML;
  621.         } else {
  622.             itemsHTML = "<table width='100%' border='0' cellspacing='0' cellpadding='2'>";
  623.             itemsHTML += "<tr><td valign=top><font class='textwhite'><center>NO NOTES AVAILABLE</center></font></td valign=top></tr></table>";
  624.             document.all("notesText").innerHTML = itemsHTML;
  625.         }
  626.  
  627.         // Image handling
  628.         var imageNode = doc.documentElement.selectSingleNode("image");
  629.         if (imageNode != null) {
  630.             nodeAttr = imageNode.attributes;
  631.             curNode = nodeAttr.getNamedItem("cover");
  632.             if (curNode != null) {
  633.                 itemsHTML = "<img border='0' src='" + curNode.text + "' vspace=0 hspace=12>";
  634.                 document.all("ALBUMART").innerHTML = itemsHTML;
  635.                 document.all("ALBUMART").style.display = "";
  636.             }
  637.             curNode = nodeAttr.getNamedItem("promo");
  638.             if (curNode != null) {
  639.                 var linkText = "";
  640.                 var linkNode = doc.documentElement.selectSingleNode("links");
  641.                 if (linkNode != null) {
  642.                     nodeAttr = linkNode.attributes;
  643.                     var linkURL = nodeAttr.getNamedItem("promoURL");
  644.                     if (linkURL != null) {
  645.                         itemsHTML = "<a href='" + linkURL.text + "' target='promo'><img border='0' src='" + curNode.text + "' ></a>";
  646.                     } else {
  647.                         itemsHTML = "<img border='0' src='" + curNode.text + "' vspace=3 hspace=12>";                    
  648.                     }
  649.                 } else {
  650.                     itemsHTML = "<img border='0' src='" + curNode.text + "' vspace=3 hspace=12>";
  651.                 }
  652.                 document.all("PROMOART").innerHTML = itemsHTML;
  653.                 document.all("PROMOART").style.display = "none";
  654.             }
  655.         } else {
  656.             document.all("ALBUMART").innerHTML = "<img border='0' src='enimages/noart.gif' vspace=3 hspace=12>";
  657.             document.all("ALBUMART").style.display = "";
  658.             document.all("PROMOART").innerHTML = "<img border='0' src='enimages/noart.gif' vspace=3 hspace=12>";
  659.             document.all("PROMOART").style.display = "none";
  660.         }
  661.         
  662.         // Links to buy tracks, free download etc
  663.         itemsHTML = "<img src='enimages/clear.gif' width='2' height='18'>";
  664.         imageNode = doc.documentElement.selectSingleNode("links");
  665.         if (imageNode != null) {
  666.             nodeAttr = imageNode.attributes;
  667.             curNode = nodeAttr.getNamedItem("freeDownload");
  668.             if (curNode != null) {
  669.                 itemsHTML += "<a href='" + curNode.text + "' onMouseOut='MM_swapImgRestore()' onMouseOver='dynamicRollover(0)' onMouseDown='down(0)' onFocus='if(this.blur)this.blur()'><img name='DownloadFreeTrack' border='0' src='enimages/free_track_off.gif' width='155' height='15' vspace=3 hspace=6></a>";
  670.             } else {
  671.                 itemsHTML +="<img name='DownloadFreeTrack' border='0' src='enimages/free_track_grey.gif' width='155' height='15' vspace=3 hspace=6>";
  672.             }
  673.             itemsHTML +="<br>";
  674.             curNode = nodeAttr .getNamedItem("buyDownload");    
  675.             if (curNode != null) {
  676.                 itemsHTML += "<a href='javascript:launchLink(1)' onMouseOut='MM_swapImgRestore()' onMouseOver='dynamicRollover(1)' onMouseDown='down(1)' onFocus='if(this.blur)this.blur()'><img name='buy_track' border='0' src='enimages/buy_track_off.gif' width='155' height='15' vspace=3 hspace=6></a>";
  677.             } else {
  678.                 itemsHTML +="<img name='buy_track' border='0' src='enimages/buy_track_grey.gif' width='155' height='15' vspace=3 hspace=6>";
  679.             }
  680.             itemsHTML +="<br>";
  681.             curNode = nodeAttr.getNamedItem("purchase");
  682.             if (curNode != null) {
  683.                 itemsHTML += "<a href='javascript:launchLink(2)' onMouseOut='MM_swapImgRestore()' onMouseOver='dynamicRollover(2)' onMouseDown='down(2)' onFocus='if(this.blur)this.blur()'><img name='BuyAlbum' border='0' src='enimages/buy_album_off.gif' width='155' height='15' vspace=3 hspace=6></a>";
  684.             } else {
  685.                 itemsHTML +="<img name='buy_album' border='0' src='enimages/buy_album_grey.gif' width='155' height='15' vspace=3 hspace=6>";
  686.             }
  687.         } else {
  688.             itemsHTML +="<img name='DownloadFreeTrack' border='0' src='enimages/download_grey.gif' width='155' height='15' vspace=3 hspace=6>";
  689.             itemsHTML +="<br><img src='enimages/clear.gif' width='6' height='18'>";
  690.             itemsHTML +="<img name='buy_track' border='0' src='enimages/buy_track_grey.gif' width='155' height='15' vspace=3 hspace=6>";
  691.             itemsHTML +="<img src='enimages/clear.gif' width='14' height='18'>";
  692.             itemsHTML +="<img name='buy_album' border='0' src='enimages/buy_album_grey.gif' width='155' height='15' vspace=3 hspace=6>";
  693.         }
  694.         document.all("linkslist").innerHTML = itemsHTML;
  695.  
  696.         parseCredits(doc);
  697.         trackLoaded = 1;
  698.     } else {
  699.         trackLoaded = 0;
  700.         var itemsHTML = "<a href='javascript:displayBranding()'><img border='0' src='enimages/retail.gif' width='120' height='29'></a>";
  701.         document.all("branding").innerHTML = itemsHTML;
  702.     }
  703.     
  704. }
  705.  
  706. //////////////////////////////////////////////////////
  707. // Initialize the XML object for the metadata
  708. //
  709. function initializeXML()
  710. {
  711.     var strLength = window.location.hash.length;
  712.     var text = window.location.hash;
  713.     var pos = 1;
  714.     var bDone = 0;
  715.     while (pos < strLength && !bDone) {
  716.         if (text.substr(pos,1) == '+') {
  717.             bDone = 1;
  718.         } else {
  719.             pos ++;
  720.         }
  721.     }
  722.     var stringTrack = text.substr(1, pos - 1);
  723.     var tmpPath = text.substr(pos+1, (strLength - (pos + 1)));
  724.     pos = 0;
  725.     strLength = tmpPath.length;
  726.     dataPath = new String;
  727.     while (pos < strLength) {
  728.         if (tmpPath.substr(pos, 1) == '|') {
  729.             dataPath += "/";
  730.         } else if (tmpPath.substr(pos, 1) == '*'){
  731.             dataPath += " ";
  732.         } else {
  733.             dataPath += tmpPath.substr(pos,1);
  734.         }
  735.         pos ++;
  736.     }
  737.     if (stringTrack.length > 0) {
  738.         selectedTrack = parseInt(stringTrack);
  739.     } else {
  740.         selectedTrack = 0;
  741.     }
  742.     xmldoc= new ActiveXObject("Microsoft.XMLDOM");
  743.     trackLoaded = 0;
  744.     var trackDataPath = dataPath + "/md.xml";
  745.     xmldoc.load(trackDataPath);
  746.     parseMetadata(xmldoc);
  747. }
  748.  
  749. function Initialize()
  750. {
  751.     initializeXML();
  752. }
  753.  
  754.  
  755.