home *** CD-ROM | disk | FTP | other *** search
/ PC World 2004 June / PCWorld_2004-06_cd.bin / software / vyzkuste / problemy / problemy.exe / M2Combo.exe / Plugin / main.js < prev    next >
Text File  |  2003-12-18  |  33KB  |  1,050 lines

  1. function savecss(css) {
  2.   window.external.m2_writeIni('WMP Player','config.ini','General','css',css);
  3. }
  4. var skin;
  5. function loadcss()
  6. {
  7.   skin = window.external.m2_readIni('WMP Player','config.ini','General','css','');
  8.   if (skin!='')
  9.   {
  10.       changeCss(skin);
  11.   } 
  12. }
  13. function changeCss(c)        //╤∙╩╜╟╨╗╗
  14. {
  15.      css1.href='css/'+c;
  16.      skin=c;
  17.      savecss(c)
  18. }
  19. var color1,color2,fon,siz,fontw,under;
  20. var idL,idT,idC;  //═¼▓╜╕Φ┤╩║»╩²showLine(),╥╤╣²╩▒╝Σ║»╩²showTime()
  21.  
  22. var path="",lrcDir="";
  23. function loadConfig()        //╘╪╚δ╔Φ╓├
  24. {
  25.   path = window.external.m2_readIni('WMP Player','config.ini','General','path','');
  26.   lrcDir = window.external.m2_readIni('WMP Player','config.ini','General','lrcDir','');
  27.   color1 = window.external.m2_readIni('WMP Player','config.ini','lyric','color1','');
  28.   color2 = window.external.m2_readIni('WMP Player','config.ini','lyric','color2','');
  29.   fon = window.external.m2_readIni('WMP Player','config.ini','lyric','font','');
  30.   siz = window.external.m2_readIni('WMP Player','config.ini','lyric','size','');
  31.   fontw = window.external.m2_readIni('WMP Player','config.ini','lyric','fontw','');
  32.   under = window.external.m2_readIni('WMP Player','config.ini','lyric','underline','');
  33.   lrcFont();
  34.   
  35. }
  36. //=================================================
  37. function saveConfig()        //▒ú┤µ╔Φ╓├
  38. {
  39.   window.external.m2_writeIni('WMP Player','config.ini','General','path',path);
  40.   window.external.m2_writeIni('WMP Player','config.ini','General','lrcDir',lrcDir);
  41.   window.external.m2_writeIni('WMP Player','config.ini','lyric','color1',color1);
  42.   window.external.m2_writeIni('WMP Player','config.ini','lyric','color2',color2);
  43.   window.external.m2_writeIni('WMP Player','config.ini','lyric','font',fon);
  44.   window.external.m2_writeIni('WMP Player','config.ini','lyric','size',siz);
  45.   window.external.m2_writeIni('WMP Player','config.ini','lyric','fontw',fontw);
  46.   window.external.m2_writeIni('WMP Player','config.ini','lyric','underline',under);    
  47.   window.external.m2_writeIni('WMP Player','config.ini','General','Volume',VolumePos.toString());
  48.   window.external.m2_writeIni('WMP Player','config.ini','General','Shuff',isshuff);
  49.   window.external.m2_writeIni('WMP Player','config.ini','General','Loop',isloop);
  50.   
  51. }
  52. //=================================================
  53. function lrcFont()           //╕ⁿ╕─╕Φ┤╩╫╓╠σ
  54. {
  55.  capText.style.textDecoration = '';
  56.  capText1.style.textDecoration = '';
  57.  capText2.style.textDecoration = '';
  58.  
  59.  capText.style.color = color1;
  60.  capText1.style.color = color2;
  61.  capText2.style.color = color1;
  62.  
  63.  capText.style.fontFamily = fon;
  64.  capText1.style.fontFamily = fon;
  65.  capText2.style.fontFamily = fon;
  66.  capText.style.fontSize = siz + 'pt';
  67.  capText1.style.fontSize = siz + 'pt';
  68.  capText2.style.fontSize = siz + 'pt';
  69.  
  70.  switch (fontw)
  71.  {
  72.   case 'Normal':
  73.    {
  74.    capText.style.fontWeight = '';
  75.    capText1.style.fontWeight = '';
  76.    capText2.style.fontWeight = '';
  77.    capText.style.fontStyle = '';
  78.    capText1.style.fontStyle = '';
  79.    capText2.style.fontStyle = '';
  80.    break;
  81.    }
  82.   case 'Bold':
  83.    {capText.style.fontWeight = 'bold';
  84.    capText1.style.fontWeight = 'bold';
  85.    capText2.style.fontWeight = 'bold';
  86.    capText.style.fontStyle = '';
  87.    capText1.style.fontStyle = '';
  88.    capText2.style.fontStyle = '';
  89.    break;}
  90.   case 'Italic':
  91.    {
  92.    capText.style.fontWeight = '';
  93.    capText1.style.fontWeight = '';
  94.    capText2.style.fontWeight = '';
  95.    capText.style.fontStyle = 'italic';
  96.    capText1.style.fontStyle = 'italic';
  97.    capText2.style.fontStyle = 'italic';
  98.    break;}
  99.   case 'Bold and italic':
  100.    {
  101.    capText.style.fontWeight = 'bold';
  102.    capText1.style.fontWeight = 'bold';
  103.    capText2.style.fontWeight = 'bold';
  104.    capText.style.fontStyle = 'italic';
  105.    capText1.style.fontStyle = 'italic';
  106.    capText2.style.fontStyle = 'italic';
  107.    break;}
  108.  }
  109.  if (under=='true')
  110.  {
  111.  capText.style.textDecoration = 'underline';
  112.  capText1.style.textDecoration = 'underline';
  113.  capText2.style.textDecoration = 'underline';
  114.  }
  115.  else
  116.   {capText.style.textDecoration = 'none';
  117.  capText1.style.textDecoration = 'none';
  118.  capText2.style.textDecoration = 'none';
  119.  }
  120. }
  121. //=================================================
  122. var lrcArray = new Array();
  123. var fso = new ActiveXObject("Scripting.FileSystemObject");
  124. //=================================================
  125. var lrcFilesArray=new Array();
  126. function findFiles(folderspec)
  127. {  
  128.    var f1,fc,i=0;
  129.    lrcFilesArray.length=0;
  130.    var ti=Player.currentMedia.getItemInfo("Title").toLowerCase();
  131.    var na=Player.currentMedia.name.toLowerCase();
  132.  
  133.      fo = fso.GetFolder(folderspec);
  134.      fc = new Enumerator(fo.files);     
  135.      for (; !fc.atEnd(); fc.moveNext())
  136.      { 
  137.        if (fc.item().name.substr(fc.item().name.lastIndexOf('.'))=='.lrc')
  138.        {
  139.          if ((fc.item().name.toLowerCase().indexOf(ti)!=-1)||(fc.item().name.toLowerCase().indexOf(na)!=-1))
  140.          {
  141.             lrcFilesArray[i]=new Array(fc.item());
  142.             i=i+1;
  143.          }
  144.        }
  145.      }
  146. }
  147. function WriteLrcItems()
  148. { capText1.innerHTML='';
  149.   for (i=0;i<lrcFilesArray.length;i++)
  150.   {
  151.      capText1.innerHTML +='<a href="#" onclick="loadlrc(this.outerText)"><font color="#FF0000">'+lrcFilesArray[i]+'</font></a><BR>';
  152.   }
  153. }
  154. function findLrc()           //Lookup lyric files
  155. {
  156.   capText.innerHTML='';
  157.   capText1.innerHTML=lngStr("Lyric","Show Lyric Here(Lrc)");
  158.   capText2.innerHTML='';
  159.   lrcFilesArray.length=0;
  160.   lrcArray.length=0;
  161.   var ti=Player.currentMedia.getItemInfo("Title").toLowerCase();
  162.   var na=Player.currentMedia.name.toLowerCase();
  163.     var strUrl = Player.currentMedia.getItemInfo("SourceURL");
  164.     var lrcS=external.m2_readIni('WMP Player','Associate.ini','AssociateLyric',strUrl,'');
  165.     if (lrcS.length>0)
  166.     {
  167.       loadlrc(lrcS);
  168.     }
  169.     else
  170.     {
  171.       strUrl = strUrl.split('.');
  172.       Urls = strUrl[0] + '.lrc';
  173.       var strSmi=strUrl[0] + '.smi';
  174.       if (fso.FileExists(Urls)||fso.FileExists(strSmi))
  175.       {
  176.           if (fso.FileExists(strSmi))
  177.           { return;}
  178.           else
  179.           {loadlrc(Urls);}
  180.       }
  181.       else
  182.       { 
  183.         strUrl = Player.currentMedia.getItemInfo("SourceURL");
  184.         strUrl = strUrl.split('\\');
  185.         strUrl = strUrl[strUrl.length-1];
  186.         strUrl = strUrl.split('.');
  187.         strUrl = strUrl[0] + '.lrc';
  188.         if (lrcDir.substr(lrcDir.length-1,lrcDir.length)!='\\')
  189.           lrcDir += '\\';
  190.         Urls= lrcDir + strUrl;
  191.         if (fso.FileExists(Urls))
  192.             loadlrc(Urls);
  193.         else 
  194.         {
  195.           strUrl = Player.currentMedia.getItemInfo("SourceURL");
  196.           var index = strUrl.lastIndexOf('\\');
  197.           strUrl=strUrl.substr(0,index);  //
  198.           if (strUrl.substr(strUrl.length-1,strUrl.length)!='\\')
  199.              strUrl += '\\';
  200.           findFiles(strUrl);
  201.           if (lrcFilesArray.length>0)
  202.           {
  203.             if (lrcFilesArray.length>1)
  204.             {
  205.               WriteLrcItems();
  206.             }
  207.             else {loadlrc(lrcFilesArray[0]);}
  208.           }
  209.           else
  210.           { 
  211.             if (lrcDir.substr(lrcDir.length-1,lrcDir.length)!='\\')
  212.                lrcDir += '\\';
  213.             findFiles(lrcDir);
  214.             if (lrcFilesArray.length>0)
  215.             {
  216.                  if (lrcFilesArray.length>1)
  217.               {
  218.                  WriteLrcItems();
  219.               }
  220.               else {loadlrc(lrcFilesArray[0]);}  
  221.             }
  222.             else 
  223.             {
  224.               capText.innerHTML='';
  225.               capText1.innerHTML=lngStr('Lyric','No lyric');
  226.               capText2.innerHTML='';
  227.               window.clearInterval(idL); //╟σ│²═¼▓╜╕Φ┤╩║»╩²╢¿╩▒╓┤╨╨
  228.             }
  229.           }
  230.         }
  231.       }
  232.     }
  233. }
  234.  
  235. //======================================
  236. function loadlrc(u)          //Load lyric text to array
  237. { var s,sLrc,sLine,str,shh;
  238.   var ind;
  239.   //alert(u);
  240.   capText1.innerHTML='';
  241.   lrcArray.length=0;
  242.   var f = fso.OpenTextFile(u, 1);
  243.    sLrc =  f.ReadAll();
  244.    sLine = sLrc.split('\r\n');
  245.    ind = 0;
  246.    for (var i=0;i<sLine.length;i++)
  247.    { 
  248.      s = sLine[i];
  249.      if (s.length>0)
  250.      {
  251.        str = s.split(']');
  252.        if (str[str.length-1].length>0)
  253.        {
  254.          for (var j=0;j<(str.length-1);j++)
  255.          {
  256.            if ((str[j].length>0)&&(str[j].length<10))
  257.            {         
  258.              str[j]=str[j].substr(1, 5);  
  259.              lrcArray[ind] = new Array(str[j],str[str.length-1]);
  260.              ind = ind + 1;
  261.            }
  262.          }
  263.        }
  264.      }
  265.    }
  266.    f.Close();
  267.    lrcArray.sort();    
  268.       //alert(lrcArray)
  269. }
  270. //=======================================
  271. function seldir()            //Set lyric directory
  272. {
  273.   //var objSrc= new ActiveXObject("Shell.Application")
  274.       var objSrc=oShell.BrowseForFolder(0, lngStr('Other','Select the lyric directory')+'\n'+lngStr("Control","Current Directory is")+' :['+lrcDir+']', 0, '');
  275.     if (objSrc!=null)
  276.         {
  277.         lrcDir = objSrc.Items().Item().Path;
  278.         seld.alt=lngStr("Control","Set lyric Directory")+'\n'+lngStr("Control","Current Directory is")+' :\n  ['+lrcDir+']';
  279.         }
  280. }
  281. //=================================================
  282. function showLine()          //Display lyric
  283.  var t=Player.controls.currentPositionString;
  284.  for (var i=0;i<lrcArray.length;i++)
  285.  {
  286.   if (lrcArray[i][0]==t)
  287.   { if (i>0)
  288.       capText.innerHTML=lrcArray[i-1][1];
  289.     else capText.innerHTML='';
  290.     capText1.innerHTML=lrcArray[i][1];
  291.     capText2.innerHTML=lrcArray[i+1][1];
  292.     break;
  293.   }
  294.  }
  295. }
  296.  
  297. //=================================================
  298. function WritePL()           //Save PlayList to PL.txt
  299. {   var strUrl='',s='';
  300.    for (var j=0;j<Player.currentPlaylist.count;j++)
  301.    {
  302.     strUrl = Player.currentPlaylist.item(j).getItemInfo("SourceURL");
  303.     if (j==Player.currentPlaylist.count-1)
  304.     {s +=strUrl;}
  305.     else
  306.     {s +=strUrl + ";";}
  307.    }
  308.   external.writeFile("WMP Player","PL.txt",s);
  309.   //saveConfig();
  310. }
  311. //=================================================
  312. function GetPL()             //Load PlayList from PL.txt
  313. {   var s,ss;
  314.   loadConfig();
  315.   s = window.external.readFile("WMP Player","PL.txt");
  316.   if (s!='')
  317.   {
  318.     ss = s.split(";");
  319.     for (var i=0;i<ss.length;i++)
  320.     {
  321.       addList(ss[i]);  
  322.     }
  323.     Player.controls.currentItem = Player.currentPlaylist.item(0);
  324.     if (external.m2_readIni('WMP Player','config.ini','General','autoPlay','')=='1')
  325.     { Player.controls.play(); }
  326.     itemList(); //╦ó╨┬ PlayList
  327.   }
  328. }
  329. //=================================================
  330. function full()              //╚½╞┴
  331. {
  332.  if (Player.playState == 3) 
  333.      Player.fullScreen = 'true';
  334. }
  335. //=================================================
  336. function showInfo()        //╧╘╩╛├╜╠σ╨┼╧ó
  337. {
  338.   var strTitle = Player.currentMedia.getItemInfo("Title");
  339.   if (strTitle.length <= 0){strTitle = lngStr("Other","UnknowTitle");}
  340.   var strAuthor = Player.currentMedia.getItemInfo("Author");
  341.   if (strAuthor.length <= 0){strAuthor = lngStr("Other","UnknowArtist");}
  342.   var strDur = Player.currentMedia.durationString;
  343.   var strUrl = Player.currentMedia.getItemInfo("SourceURL");
  344.   strMmInfo =  lngStr("Message","Title :") + strTitle + "\n\n";
  345.   strMmInfo += lngStr("Message","Artist:") + strAuthor + "\n\n";
  346.   strMmInfo += lngStr("Message","Time  :") + strDur + "\n\n";
  347.   strMmInfo += lngStr("Message","URL   :") + strUrl +'    ';
  348.   return strMmInfo;
  349. }
  350. function scrollStr()
  351. { var str='';
  352.     var strTitle = Player.currentMedia.getItemInfo("Title");
  353.     if (strTitle.length <= 0){strTitle = lngStr("Other","UnknowTitle");}
  354.     var strAuthor = Player.currentMedia.getItemInfo("Author");
  355.     if (strAuthor.length <= 0){strAuthor = lngStr("Other","UnknowArtist");}
  356.     var strDur = Player.currentMedia.durationString;
  357.     var strBitrate=Player.currentMedia.getItemInfo("Bitrate")/1000+'Kbps';
  358.     str =  strAuthor + " ";
  359.     str += strTitle + " [";
  360.     str += strDur + "] "+strBitrate;
  361.   scrollText.innerHTML=str;
  362.   ST.innerHTML=str;
  363. }
  364. //=================================================
  365. function showInfoSel()       //╧╘╩╛╤í╘±╡─├╜╠σ╨┼╧ó
  366. {
  367. var v = playItem.selectedIndex;
  368. var mediaObject = Player.currentPlaylist.item(v);
  369.  
  370. var strTitle = Player.currentPlaylist.item(v).getItemInfo("Title");
  371. if(strTitle.length <= 0){strTitle = lngStr("Other","UnknowTitle");}
  372. var strAuthor = Player.currentPlaylist.item(v).getItemInfo("Author");
  373. if(strAuthor.length <= 0){strAuthor = lngStr("Other","UnknowArtist");}
  374. var strDur = Player.currentPlaylist.item(v).DurationString;
  375. var strUrl = Player.currentPlaylist.item(v).getItemInfo("SourceURL");
  376. strMmInfo =  lngStr("Message","Title :") + strTitle + "\n\n";
  377. strMmInfo += lngStr("Message","Artist:") + strAuthor + "\n\n";
  378. strMmInfo += lngStr("Message","Time  :") + strDur + "\n\n\n";
  379. strMmInfo += lngStr("Message","URL   :") + strUrl + "\n\n";
  380. alert(strMmInfo);
  381. }
  382. //=================================================
  383. function formatItemStr(index)
  384. {
  385.     var formatStrArray=new Array();
  386.     var FormatStr=external.m2_readIni('WMP Player','config.ini','General','PLItemFormat','');
  387.     if (FormatStr.length<=0)
  388.       {    FormatStr='%I.%A - %T'; }
  389.     var str,strAuthor,strTitle,strUrl,strName,strDuration,strFileType;
  390.     str=FormatStr;    
  391.     strAuthor = Player.currentPlaylist.item(index).getItemInfo("Author"); 
  392.     strTitle = Player.currentPlaylist.item(index).getItemInfo("Title"); 
  393.     strDuration = Player.currentPlaylist.item(index).durationString;
  394.     strFileType = Player.currentPlaylist.item(index).getItemInfo("FileType");
  395.     strUrl = Player.currentPlaylist.item(index).getItemInfo("SourceURL");
  396.     strName=Player.currentPlaylist.item(index).name;
  397.                //alert('OK');
  398.     if(strAuthor.length <= 0)
  399.         {strAuthor = lngStr("Other","UnknowArtist");}
  400.     if(strTitle.length <= 0)
  401.         {strTitle = lngStr("Other","UnknowTitle");}
  402.     str=str.replace('%I',(index+1).toString());
  403.     str=str.replace('%A',strAuthor);
  404.     str=str.replace('%T',strTitle);
  405.     str=str.replace('%N',strName);
  406.     str=str.replace('%D',strDuration);
  407.     str=str.replace('%Ft',strFileType);
  408.     str=str.replace('%S',strUrl);
  409.     formatStrArray[0]=str;
  410.     formatStrArray[1]=strUrl;
  411.     return formatStrArray;
  412. }
  413. //==========================================
  414. function itemList()          //╝╙╘╪▓Ñ╖┼┴╨▒φ
  415.     var strs,strUrl;
  416.     playItem.length = 0;
  417.             for(var i=0;i<Player.currentPlaylist.count;i++)
  418.              {
  419.                strs=formatItemStr(i)[0];
  420.                strUrl=formatItemStr(i)[1];
  421.                    //Player.currentPlaylist.item(i).getItemInfo("SourceURL");
  422.                playItem.options[playItem.options.length] = new Option(strs,strUrl);
  423.              }
  424.     WritePL();
  425.     plPosition();
  426. }
  427. //=================================================
  428. function playSel(c)          //╦½╗≈▓Ñ╖┼╤í╘±╡─╟·─┐
  429. {
  430.  Player.controls.stop();
  431.  Player.controls.currentItem = Player.currentPlaylist.item(c);
  432.  Player.controls.play();
  433. }
  434. //=================================================
  435. function delItem()           //╔╛│²╤í╘±╡─╟·─┐
  436. {
  437. var l = playItem.selectedIndex;
  438. var mediaObject = Player.currentPlaylist.item(l);
  439. var strAuthor = Player.currentPlaylist.item(l).getItemInfo("Author");
  440. var strTitle = Player.currentPlaylist.item(l).getItemInfo("Title");
  441. var strUrl = Player.currentPlaylist.item(l).getItemInfo("SourceURL");
  442. if(strAuthor.length <= 0){strAuthor = lngStr("Other","UnknowArtist");}
  443. if(strTitle.length <= 0){strTitle = lngStr("Other","UnknowTitle");}
  444. var mediaStr = strAuthor+" - "+strTitle;
  445. var answer = confirm(lngStr("Message","You sure delete")+" \" " + mediaStr +" [ "+strUrl+ " ] \" ?");
  446. if (answer)
  447.    {
  448.     Player.currentPlaylist.removeItem(mediaObject);
  449.     playItem.options[l].removeNode();
  450.     itemList();
  451.    }
  452. }
  453. //=================================================
  454. function addDialog()         //╠φ╝╙╬─╝■╢╘╗░┐≥    
  455. {
  456.  window.showModalDialog("addfile.htm", window, "dialogHeight:250px;dialogWidth:420px;status:0;help:0;scroll:0"); 
  457. }
  458. function openDialog()         //┤≥┐¬╬─╝■╢╘╗░┐≥    
  459. {
  460.  window.showModalDialog("openfile.htm", window, "dialogHeight:250px;dialogWidth:420px;status:0;help:0;scroll:0"); 
  461. }
  462. function setfont()           //╕Φ┤╩╫╓╠σ╔Φ╓├╢╘╗░┐≥
  463. {
  464.  window.showModalDialog("setfont.htm", window, "dialogHeight:300px;dialogWidth:500px;status:0;help:0;scroll:0");    
  465. }
  466. //=================================================
  467. function addList(v)          //╠φ╝╙┴╨▒φ
  468.   var cm = Player.newMedia(v);
  469.   Player.currentPlaylist.insertItem(Player.currentPlaylist.count,cm);
  470. }
  471.  
  472. //=================================================
  473. function removeList()        //╟σ┐╒┴╨▒φ
  474. { Player.controls.stop();
  475.   var mediaObject;
  476.   var num = Player.currentPlaylist.count;
  477.   for (var i=0;i<num;i++)
  478.   { mediaObject = Player.currentPlaylist.item(0); 
  479.     Player.currentPlaylist.removeItem(mediaObject);
  480.     playItem.options[0].removeNode();
  481.   }  
  482. }
  483. //=================================================
  484. function preload(imgname,imgsrc)  //═╝╞¼SRC
  485. {
  486.     eval(imgname+'=new Image()')
  487.     eval(imgname+'.src="images\/'+imgsrc+'"')
  488. }
  489. //=================================================
  490. preload("play1","play.gif");
  491. preload("play2","play_b.gif");
  492. preload("stop1","stop.gif");
  493. preload("stop2","stop_b.gif");
  494. preload("sound1","sound.gif");
  495. preload("sound2","sound_b.gif");
  496. preload("volume","volume.gif");
  497. preload("pause1","pause.gif");
  498. preload("pause2","pause_b.gif");
  499. preload("full1","full.gif");
  500. preload("full2","full_b.gif");
  501.  
  502. preload("shuff1","shuff.gif");
  503. preload("shuff2","shuff_b.gif");
  504. preload("loop1","loop.gif");
  505. preload("loop2","loop_b.gif");
  506.  
  507. preload("imgPlay","pla.gif");
  508. preload("imgPause","paus.gif");
  509. preload("imgStop","stp.gif");
  510. preload("imgTra","tra.gif");
  511. preload("imgBef","bef.gif");
  512.  
  513. preload("mplay1","m_play.gif");
  514. preload("mplay2","m_play_b.gif");
  515. preload("mpause1","m_pause.gif");
  516. preload("mpause2","m_pause_b.gif");
  517. preload("mstop1","m_stop.gif");
  518. preload("mstop2","m_stop_b.gif");
  519. preload("mmute1","m_mute.gif");
  520. preload("mmute2","m_mute_b.gif");
  521. preload("mloop1","m_loop.gif");
  522. preload("mloop2","m_loop_b.gif");
  523. preload("mshuff1","m_shuff.gif");
  524. preload("mshuff2","m_shuff_b.gif");
  525. //=================================================
  526. function DoPlay()            //▓Ñ╖┼
  527. {
  528.     Player.controls.play();
  529.     document.play.src=play2.src;
  530.     document.stop.src=stop1.src;
  531.     document.pause.src=pause1.src;
  532.  
  533.     document.micplay.src=mplay2.src;
  534.     document.micpause.src=mpause1.src;
  535.     document.micstop.src=mstop1.src;
  536. }    
  537. //=================================================
  538. function DoStop()            //═ú╓╣
  539. {
  540.     Player.controls.CurrentPosition=0;
  541.     Player.controls.stop();
  542.     document.play.src=play1.src;
  543.     document.stop.src=stop2.src;
  544.     document.pause.src=pause1.src;
  545.  
  546.     document.micplay.src=mplay1.src;
  547.     document.micpause.src=mpause1.src;
  548.     document.micstop.src=mstop2.src;
  549.     if (document.seek.style.visibility=="visible")
  550.       document.seek.style.left=4;
  551.     window.clearInterval(idT); //╟σ│²╥╤╣²╩▒╝Σ║»╩²╢¿╩▒╓┤╨╨
  552. }
  553. //=================================================
  554.  
  555. function DoPause()           //╘▌═ú
  556. {
  557.    Player.controls.pause();
  558.     document.play.src=play1.src;
  559.     document.pause.src=pause2.src;
  560.     document.stop.src=stop1.src;
  561.     document.micplay.src=mplay1.src;
  562.     document.micpause.src=mpause2.src;
  563.     document.micstop.src=mstop1.src;
  564.     window.clearInterval(idT); //╟σ│²╥╤╣²╩▒╝Σ║»╩²╢¿╩▒╓┤╨╨
  565. }
  566. function DoNext()
  567. {
  568.    Player.controls.next();
  569.    if (!(Player.playState==3))
  570.      {Player.controls.stop();Player.controls.play();}
  571. }
  572. function DoPrevious()
  573. {
  574.    Player.controls.previous();
  575.    if (!(Player.playState==3))
  576.         {Player.controls.stop();Player.controls.play();}
  577. }
  578.    
  579. //=================================================
  580. var mute
  581. mute = false;
  582. //=================================================
  583. function SetMute()           //╛▓╥⌠
  584. {
  585.     if (!Player.playState == 3) return
  586.     
  587.     if (mute){
  588.         Player.settings.Mute=false
  589.         document.sound.src=sound1.src;    
  590.         document.micmute.src=mmute1.src;
  591.         document.vol.style.visibility="visible";
  592.         mute=false    
  593.     }    
  594.     else{
  595.       Player.settings.Mute=true;
  596.       document.sound.src=sound2.src;
  597.       document.micmute.src=mmute2.src;
  598.       document.vol.style.visibility="hidden";
  599.       mute=true
  600.     }  
  601. }
  602.  
  603. //=================================================
  604. var x,theImg;
  605. var Maxvol, Minvol;
  606. var VolumePos=100;
  607. Maxvol=52;
  608. Minvol=2;
  609. cur=32;
  610. //=================================================
  611. function move()              //╥⌠┴┐╗¼┐Θ╥╞╢»
  612. {
  613.   if (event.button==1&&(Player.playState == 3)){
  614.     left=temp1+event.clientX-x;   
  615.     if ((left<=Maxvol)&&(left>=Minvol))
  616.       {theImg.style.pixelLeft=left;enddrag();}
  617.      else 
  618.        if(left>Maxvol) 
  619.            {theImg.style.pixelLeft=Maxvol;enddrag();}
  620.          else
  621.            {theImg.style.pixelLeft=Minvol;enddrag();} 
  622.   return false
  623.   }
  624. }
  625. //=================================================
  626. function enddrag()           //╥⌠┴┐╗¼┐Θ═ú╓╣
  627.  //╒Γ└∩╔Φ╓├╥⌠┴┐
  628.  if (Player.playState == 3){
  629.    cur=theImg.style.pixelLeft;
  630.    cur=(cur-2)*2;
  631.    SetVolume(cur);
  632.    //document.onmousemove=null;
  633.   } 
  634. }
  635. //=================================================
  636. function begindrag(Elm)      //╥⌠┴┐╗¼┐Θ═╧╢»
  637. {
  638.   if (!document.all)
  639.     return
  640.   if (!Player.playState == 3)
  641.     return   
  642.   temp1=Elm.style.pixelLeft   
  643.   theImg=Elm
  644.   x=event.clientX;
  645.   Elm.onmousemove=move     
  646. }
  647. //=================================================
  648. function SetVolume(Pos)      //╔Φ╓├╥⌠┴┐
  649.  Player.settings.volume=Pos;
  650.  vol.alt=lngStr("Control","Volume")+': '+Pos+'%';
  651.  VolumePos=Pos;
  652. }
  653. //=================================================
  654. //***************╥╘╧┬▓┐╖╓╬¬▓Ñ╖┼╜°╢╚┐╪╓╞*************
  655. var movelen=0;
  656. function GetLength()         //╗±╚í╡▒╟░├╜╠σ│ñ╢╚
  657. {
  658.     return Player.currentMedia.duration;
  659. }
  660. //=================================================
  661. function GetPosition()       //╗±╚í╡▒╟░▓Ñ╖┼╜°╢╚
  662. {
  663.     tt=Player.controls.currentPosition;
  664.     return tt;
  665. }
  666. //=================================================
  667. function SetPosition(Pos)    //╔Φ╓├▓Ñ╖┼╜°╢╚
  668. {
  669.     if (!Player.playState == 3) return;
  670.     Player.controls.currentPosition=+Pos;
  671. }
  672. //=================================================
  673. var Start, End;
  674. var seeking;
  675. seeking=false
  676.  
  677. Start=4;
  678. End=218;
  679.  
  680. //=================================================
  681. function beginseek(Elm)      //╜°╢╚╠⌡┐¬╩╝═╧╢»
  682. {
  683.   if (!document.all)
  684.     return
  685.   if (!Player.playState == 3)
  686.     return   
  687.   temp1=Elm.style.pixelLeft   
  688.   theImg=Elm
  689.   x=event.clientX;
  690.   seeking=true
  691.   Elm.onmousemove=moveseek     
  692. }
  693. //=================================================
  694. function moveseek()          //╜°╢╚╗¼┐Θ╥╞╢»
  695. {
  696.   if (event.button==1&&(Player.playState == 3)){
  697.     left=temp1+event.clientX-x
  698.       
  699.     if ((left<=End)&&(left>=Start))
  700.       theImg.style.pixelLeft=left
  701.      else 
  702.        if(left>End) 
  703.          theImg.style.pixelLeft=End
  704.          else
  705.            theImg.style.pixelLeft=Start 
  706.   return false
  707.   }
  708. }
  709. //=================================================
  710. function enddragseek()       //╜°╢╚═╧╢»╜ß╩°
  711. {  
  712.  //╒Γ└∩╔Φ╓├╩▒╝Σ╦╤╦≈
  713.  if (Player.playState == 3){
  714.    movelen=GetLength()
  715.    cur=theImg.style.pixelLeft;
  716.    if (cur==End)
  717.      Player.controls.stop();
  718.    else{  
  719.      cur=Math.floor((cur-Start)*movelen/(End-Start)); 
  720.      SetPosition(cur);
  721.      seeking=false;
  722.      //document.onmousemove=null;
  723.     } 
  724.   } 
  725.  
  726. }
  727. //=================================================
  728. function changeseek()        //╕∙╛▌▓Ñ╖┼╕─▒Σ╜°╢╚╠⌡╬╗╓├
  729. {
  730.  // if (Player.playState != 2) return;
  731.  End=positionBar.width-10;
  732.   if (!seeking)
  733.   {
  734.     if (movelen==0)
  735.       movelen=GetLength();  
  736.     cur=GetPosition();
  737.     cur=Math.floor((End-Start)*cur/movelen);
  738.     document.seek.style.pixelLeft=Start+cur;
  739.   }  
  740. }
  741. //==========
  742. var blnElaps=true;
  743. function wmpTime(dur)
  744. {
  745.  var hh, min, sec, timeLabel;
  746.  hh=Math.floor(dur/3600);
  747.  min=Math.floor(dur/60)%60;
  748.  sec=Math.floor(dur%60);
  749.  if(isNaN(min)){ return "00:00";}
  750.  if(isNaN(hh) || hh==0){timeLabel="";}
  751.  else {
  752.    if(hh>9){timeLabel = hh.toString() + ":";}
  753.    else {timeLabel = "0" + hh.toString() + ":";}
  754.  }
  755.  if(min>9){timeLabel = timeLabel + min.toString() + ":";}
  756.  else {timeLabel = timeLabel + "0" + min.toString() + ":";}
  757.  if(sec>9){timeLabel = timeLabel + sec.toString();}
  758.  else {timeLabel = timeLabel + "0" + sec.toString();}
  759.  return timeLabel;
  760. }
  761. //=================================================
  762. function ShowTime()          //╧╘╩╛▓Ñ╖┼╩▒╝Σ╡─╫┤╠¼ú¿╥╤╣²╩▒╝Σ|╫▄╩▒╝Σú⌐
  763. {   var alltime,NowT,num,cp,dur;
  764.  alltime = Player.currentMedia.durationString;
  765.  NowT = Player.controls.currentPositionString;
  766.  if (!blnElaps)
  767.  {
  768.      cp=Player.controls.currentPosition;
  769.      dur=Player.currentMedia.duration;
  770.      NowT='-'+wmpTime(dur-cp);
  771.  }
  772.  disp2.innerHTML = ' '+NowT + '|' +alltime ;
  773.  mdisp2.innerHTML = ' '+NowT + '|' +alltime ;
  774. }
  775. //=================================================
  776. function goUrl()             //┤≥┐¬URL
  777. {var s;
  778.  s=prompt(lngStr("Other","Input URL")+'','http://');
  779.  if (s=='') {alert(lngStr("Other","Nothing")+'!')}
  780.  else
  781.  {
  782.   Player.URL = s;
  783.   Player.controls.play();
  784.   itemList();
  785.   }
  786. }
  787. //=================================================
  788. var isshuff = 'false';
  789. //=================================================
  790. function setshuff()          //╔Φ╓├╦µ╗·─ú╩╜
  791. { if (isshuff=='true')
  792.  {
  793.   Player.settings.setMode('shuffle', false);
  794.   document.shuff.src=shuff1.src;
  795.   document.micshuff.src=mshuff1.src;
  796.   isshuff='false';
  797.  }
  798.  else
  799.  {
  800.   Player.settings.setMode('shuffle', true);
  801.   document.shuff.src=shuff2.src;
  802.   document.micshuff.src=mshuff2.src;
  803.   isshuff='true';
  804.  }
  805. }
  806. //=================================================
  807. var isloop = 'false';
  808. //=================================================
  809. function setloop()           //╔Φ╓├╤¡╗╖─ú╩╜
  810. { if (isloop=='true')
  811.  {
  812.   Player.settings.setMode('loop', false);
  813.   document.loop.src=loop1.src;
  814.   document.micloop.src=mloop1.src;
  815.   isloop='false';
  816.  }
  817.  else
  818.  {
  819.   Player.settings.setMode('loop', true);
  820.   document.loop.src=loop2.src;
  821.   document.micloop.src=mloop2.src;
  822.   isloop='true';
  823.  }
  824. }
  825. //=================================================
  826. var idU;
  827. function UpdateBP(){
  828.    disp1.innerHTML = "";
  829.    disp1.innerHTML = ' '+lngStr("State","Buffering")+':';
  830.    disp1.innerHTML += Player.network.bufferingProgress+"%";
  831.    mdisp1.innerHTML=disp1.innerHTML;
  832. }
  833. function changeState()       //▓Ñ╖┼╫┤╠¼╕─▒Σ╧∞╙ª╩┬╝■
  834. {
  835. window.clearInterval(idU);
  836. window.clearInterval(idC);
  837. var myText;
  838. var NewState=Player.playState;
  839. switch (NewState){
  840.   case 1:
  841.    {
  842.    myText = lngStr("State","Stoped");
  843.    window.clearInterval(idT);
  844.    document.imgState.src=imgStop.src;
  845.    document.mimgState.src=imgStop.src;
  846.    document.play.src=play1.src;
  847.    document.stop.src=stop2.src;
  848.    document.pause.src=pause1.src;
  849.    document.micplay.src=mplay1.src;
  850.    document.micpause.src=mpause1.src;
  851.    document.micstop.src=mstop2.src;
  852.    disp2.innerHTML=' 00:00|'+Player.currentMedia.durationString;
  853.    break;
  854.    }
  855.   case 2:
  856.    {
  857.    myText = lngStr("State","Paused");
  858.    window.clearInterval(idT);
  859.    document.imgState.src=imgPause.src;
  860.    document.mimgState.src=imgPause.src;
  861.    document.play.src=play1.src;
  862.    document.pause.src=pause2.src;
  863.    document.stop.src=stop1.src;
  864.    document.micplay.src=mplay1.src;
  865.    document.micpause.src=mpause2.src;
  866.    document.micstop.src=mstop1.src;
  867.    break;
  868.    }
  869.   case 3:
  870.    {
  871.    myText = lngStr("State","Playing");
  872.    idT=setInterval('ShowTime()',1000);
  873.    idC=setInterval('changeseek()',1000);
  874.    document.imgState.src=imgPlay.src;
  875.    document.mimgState.src=imgPlay.src;
  876.    document.play.src=play2.src;
  877.    document.stop.src=stop1.src;
  878.    document.pause.src=pause1.src;
  879.    document.micplay.src=mplay2.src;
  880.    document.micpause.src=mpause1.src;
  881.    document.micstop.src=mstop1.src;
  882.    findLrc();
  883.    break;
  884.    }
  885.  
  886.   case 6:
  887.     myText = lngStr("State","Buffering")+'...';
  888.     document.imgState.src=imgBef.src;
  889.     document.mimgState.src=imgBef.src;
  890.     idU = window.setInterval("UpdateBP()", 500);
  891.     break;
  892.   case 7:
  893.     myText = lngStr("State","Waiting");
  894.     window.clearInterval(idT);
  895.     break; 
  896.   case 9:
  897.     myText = lngStr("State","Transitioning...");
  898.     window.clearInterval(idT);
  899.     document.imgState.src=imgTra.src;
  900.     document.mimgState.src=imgTra.src;
  901.     break;  
  902.   case 10:
  903.     myText = lngStr("State","Ready");
  904.     window.clearInterval(idT);
  905.     DoStop();
  906.     break;
  907.   default:
  908.    myText = "";
  909. }
  910. disp1.innerHTML=' '+myText; 
  911. mdisp1.innerHTML=' '+myText;
  912. }
  913. //============================================================
  914. function about()             //╣╪╙┌╢╘╗░┐≥
  915. {
  916.  showModalDialog('about.htm',window,'dialogHeight:210px;dialogWidth:365px;help:no;status:no;scroll:no');
  917. }
  918. //============================================================
  919. var playId=0;
  920. function plPosition()        //╘┌┴╨▒φ╓╨╢¿╬╗╡▒╟░├╜╠σ
  921. {
  922.      var strUrl = Player.currentMedia.getItemInfo("SourceURL");
  923.      playItem.options[playId].style.backgroundColor = "Black";
  924.      playItem.value=strUrl;
  925.      playId=playItem.selectedIndex;
  926.      playItem.options[playId].style.backgroundColor = "green";      
  927. }
  928. //============================================================
  929. function openDir()            //╠φ╝╙─┐┬╝
  930.   var objSrc= oShell.BrowseForFolder(0, lngStr('Other','Select Folder you want add'), 0, '');
  931.     if (objSrc!=null)
  932.         {
  933.          var s=objSrc.Items().Item().Path;
  934.          addDirFiles(s);
  935.          itemList();
  936.         }
  937. }
  938. //============================================================
  939. function addDirFiles(folderspec) //╠φ╝╙─┐┬╝íó╫╙─┐┬╝╓╨WMP╦∙╙╨╓º│╓╡─╬─╝■
  940. {  var ext=external.m2_readIni('WMP Player','config.ini','FileType','ext','');
  941.    ext=ext.split('|');
  942.    var f1,fc,fo,ff;
  943.    fo = fso.GetFolder(folderspec);
  944.    fc = new Enumerator(fo.files);     
  945.    for (; !fc.atEnd(); fc.moveNext())
  946.    { 
  947.       for (var i=0;i<ext.length ;i++ )
  948.       {
  949.       if (fc.item().name.substr(fc.item().name.lastIndexOf('.'))==ext[i])
  950.           { addList(fc.item());break;}
  951.       }
  952.    }
  953.    ff = new Enumerator(fo.SubFolders);  //▓Θ╒╥╫╙─┐┬╝
  954.    for (; !ff.atEnd(); ff.moveNext())
  955.    {
  956.       addDirFiles(ff.item());  
  957.    }
  958. }
  959. //============================================================
  960. function delAll()       //╔╛│²╚½▓┐╚╖╚╧
  961. {
  962.     if(confirm(lngStr("Message","You sure remove all items")+' ?'))
  963.     {removeList();itemList();}
  964. }
  965. //============================================================
  966. function openMediaLib()         //    ├╜╠σ┐Γ
  967. {
  968.  window.showModalDialog("MediaLibrary.htm", window, "dialogHeight:300px;dialogWidth:500px;status:0;help:0;scroll:0"); 
  969. }
  970. //============================================================
  971. function option()           //╕Φ┤╩╫╓╠σ╔Φ╓├╢╘╗░┐≥
  972. {
  973.  window.showModalDialog("options.htm", window, "dialogHeight:310px;dialogWidth:430px;status:0;help:0;scroll:0");    
  974. }
  975. //============================================================
  976. var associateItem='';
  977. function assDialog()           //╣╪┴¬╕Φ┤╩╢╘╗░┐≥
  978. {
  979.  associateItem=playItem.options[playItem.selectedIndex].value;
  980.  var lyricFile=external.m2_readIni('WMP Player','Associate.ini','AssociateLyric',associateItem,'')
  981.  if (lyricFile.length>0)
  982.  {
  983.    var answer = confirm('[ '+associateItem+' ] \n'+lngStr("Other","was associated with")+' \n[ '+lyricFile+' ]\n\n'+lngStr("Other","You want to reAssociate")+' ?');
  984.    if (answer)
  985.    {
  986.        window.showModalDialog("associateDialog.htm", window, "dialogHeight:250px;dialogWidth:420px;status:0;help:0;scroll:0");
  987.    }
  988.  }
  989.  else
  990.  {
  991.    window.showModalDialog("associateDialog.htm", window, "dialogHeight:250px;dialogWidth:420px;status:0;help:0;scroll:0");
  992.  }
  993. }
  994. function assLyric()           //╣╪┴¬╕Φ┤╩▓Θ┐┤
  995. {
  996.  window.showModalDialog("associateLyric.htm", window, "dialogHeight:250px;dialogWidth:420px;status:0;help:0;scroll:0");    
  997. }
  998. function writeAssociate(mediaFile,lrcFile)
  999. {
  1000.   window.external.m2_writeIni('WMP Player','Associate.ini','AssociateLyric',mediaFile,lrcFile);
  1001. }
  1002. function roadControls()       //│⌡╩╝╥⌠┴┐ú¼╤¡╗╖─ú╩╜ú¼╦µ╗·/╦│╨≥─ú╩╜
  1003. {
  1004.     var volnum=window.external.m2_readIni('WMP Player','config.ini','General','Volume','');
  1005.     if (volnum.length>0)
  1006.       { VolumePos=volnum;}
  1007.     else
  1008.       { VolumePos=100; }
  1009.     SetVolume(VolumePos);
  1010.     vol.style.pixelLeft=Math.floor(VolumePos/2)+2;
  1011.     var sh=window.external.m2_readIni('WMP Player','config.ini','General','Shuff','');
  1012.     var lo=window.external.m2_readIni('WMP Player','config.ini','General','Loop','');
  1013.     if (sh=='true')
  1014.       { setshuff(); }
  1015.     if (lo=='true')
  1016.       { setloop(); }
  1017.     var plSize=window.external.m2_readIni('WMP Player','config.ini','General','PLSize','');
  1018.     if (plSize.length>0)
  1019.       {    playItem.size=plSize}  //Playlist Size
  1020. }
  1021. function moveitem(num)
  1022. {
  1023.     var i=playItem.selectedIndex;
  1024.       if (num==1&&i!=0)
  1025.       {          
  1026.           Player.currentPlaylist.moveItem(i, i-1);
  1027.           playItem.options[i].text=formatItemStr(i)[0];
  1028.           playItem.options[i].value=formatItemStr(i)[1];
  1029.           playItem.options[i-1].text=formatItemStr(i-1)[0];
  1030.           playItem.options[i-1].value=formatItemStr(i-1)[1];
  1031.           plPosition();
  1032.           playItem.options[i-1].selected=true;
  1033.       }
  1034.       if ((num==-1)&&(i!=playItem.length-1))
  1035.       {   
  1036.           Player.currentPlaylist.moveItem(i, i+1);
  1037.           playItem.options[i].text=formatItemStr(i)[0];
  1038.           playItem.options[i].value=formatItemStr(i)[1];
  1039.           playItem.options[i+1].text=formatItemStr(i+1)[0];
  1040.           playItem.options[i+1].value=formatItemStr(i+1)[1];
  1041.           plPosition();
  1042.           playItem.options[i+1].selected=true;
  1043.       }
  1044. }