home *** CD-ROM | disk | FTP | other *** search
/ Chip 2003 April / Chip_2003-04_cd1.bin / zkuste / wmakeup / download / TweakMP.EXE / RCDATA / CABINET / tweak.wmz / Customizer.js next >
Text File  |  2003-01-07  |  10KB  |  481 lines

  1. ////
  2. //    Microsoft Windows Media Technologies
  3. //    Copyright (C) Microsoft Corporation.  All Rights Reserved.
  4. ////
  5.  
  6.  
  7. // main view
  8. var g_kMainViewHeight    = 220;
  9. var g_kMainViewWidth     = 435;
  10. var g_kMainViewTop       = 62;
  11. var g_kMainViewLeft      = 0;
  12.  
  13. var g_NowPlayingTopBase  = 83;
  14. var g_NowPlayingLeftBase = 30;
  15.  
  16. var g_GeneralTopBase     = 15;
  17. var g_GeneralLeftBase    = 15;
  18.  
  19. var g_CDTopBase          = 30;
  20. var g_CDLeftBase         = 10;
  21.  
  22. var g_purpose;  // purpose of active modal message
  23.  
  24. var imageMappings        = new Array();
  25. var downImageMappings    = new Array();
  26.  
  27. var g_kFontSize          = 8;
  28.  
  29. var g_kOKLeft             = 115;
  30. var g_kCancelLeft         = 305;
  31.  
  32.  
  33. function KeyPressed(keycode) 
  34. {
  35.  
  36.     switch(keycode)
  37.     {
  38.         // Left arrow / Page up
  39.         case 37: // fallthrough
  40.         case 33: 
  41.         {
  42.             TabLeft();
  43.         }
  44.         break;
  45.  
  46.         // Right arrow / Page down
  47.         case 39:
  48.         case 34:
  49.         {
  50.             TabRight();
  51.         }
  52.         break;
  53.     }
  54. }
  55.  
  56. function CenterTextOnButton( text, button )
  57. {
  58.     text.left = (button.left + (button.width/2 - text.width/2) );
  59.     text.top  = (button.top  + (button.height/2 - text.height/2))-1 ;
  60. }
  61.  
  62. function UpdateNormalizationCheck()
  63. {
  64.     if( !fsplugin.enableNormalize )
  65.     {
  66.         NormalizeText.foregroundColor="#cccccc"
  67.         NormalizeAudio.enabled = false;
  68.         NormalizeExtraText.value = strNormalizeExtraText.value;
  69.     }
  70.     
  71. }
  72.  
  73. function CenterGeneralButtons()
  74. {
  75.     CenterTextOnButton( ResetText, ResetButton );
  76.     CenterTextOnButton( RestoreText, RestoreButton );
  77. }
  78.  
  79. function TabRight()
  80. {
  81.     if ( GeneralTab.down )
  82.     {
  83.        ShowCD();
  84.     }
  85.     else if ( CDTab.down )
  86.     {
  87.        ShowNowPlaying();
  88.     }
  89.     else if ( NowPlayingTab.down )
  90.     {
  91.        ShowGeneral();
  92.     }
  93.  
  94. }
  95.  
  96. function GetFSToolTip ( value ) 
  97. {
  98.  
  99.     if ( value == 0 ) 
  100.     {
  101.         return strHideControls.value + strInstantly.value;   
  102.     }
  103.     else if ( Math.round((1.0/value)*10.0) / 10.0 == 1)
  104.     {
  105.           return strHideControls.value + strNormal.value;
  106.     }
  107.     else if ( value > 1 )
  108.     {
  109.        return strHideControls.value + value + strSlowerNormal.value;
  110.     }
  111.     else if ( value < 1 )
  112.     {
  113.        return strHideControls.value + ( Math.round((1.0/value)*10.0) / 10.0) + strFasterNormal.value;
  114.     }
  115. }
  116.  
  117. function GetCursorToolTip( value )
  118. {
  119.     if ( value == 0 ) 
  120.     {
  121.         return strHideCursor.value + strInstantly.value;   
  122.     }
  123.     else if ( Math.round((1.0/value)*10.0) / 10.0 == 1 )
  124.     {
  125.         return strHideCursor.value + strNormal.value;
  126.     }
  127.     else if ( value > 1 )
  128.     {
  129.        return strHideCursor.value + value + strSlowerNormal.value;
  130.     }
  131.     else if ( value < 1 )
  132.     {
  133.        return strHideCursor.value + ( Math.round((1.0/value)*10.0) / 10.0) + strFasterNormal.value;
  134.     }
  135. }
  136.  
  137. function TabLeft()
  138. {
  139.     if ( GeneralTab.down )
  140.     {
  141.        ShowNowPlaying();
  142.     }
  143.     else if ( CDTab.down )
  144.     {
  145.        ShowGeneral();
  146.     }
  147.     else if ( NowPlayingTab.down )
  148.     {
  149.        ShowCD();
  150.     }
  151.  
  152. }
  153.  
  154. // change state of element to hover
  155. function HoverElement ( element )
  156. {
  157.     imageMappings[element.id]     = element.image;
  158.     downImageMappings[element.id] = element.downImage;
  159.     element.image                 = element.hoverImage;
  160.     element.downImage             = element.hoverDownImage;  
  161. }
  162.  
  163. // change state of element to "normal"
  164. function UnHoverElement(element)
  165.     {
  166.     element.image     = imageMappings[element.id];
  167.     element.downImage = downImageMappings[element.id];
  168. }
  169.  
  170.  
  171. function FadeOut(element)
  172. {
  173.     if (element.visible)
  174.     {
  175.         element.alphaBlendTo(0,200);
  176.         element.visible = false;
  177.     }
  178. }
  179.  
  180. function FadeIn(element)
  181. {
  182.     if (!element.visible)
  183.     {
  184.         element.alphaBlendTo(0,0);
  185.         element.visible = true;
  186.         element.alphaBlendTo(255,200);
  187.     }
  188. }
  189.  
  190. // converts characters not valid for path/filenames
  191. function ConvertInvalidChars(str)
  192. {
  193.     return str.replace(/[/\\:?\*"<>|]/g , '-');
  194. }
  195.  
  196. function ConvertSpaces(str)
  197. {
  198.     return str.replace(/ /g, strSpace.value);
  199. }
  200.  
  201. function UpdateFS(start, end, value)
  202. {
  203.     fsplugin.CDRecordFileSeparator = ConvertInvalidChars(value);
  204. }
  205.  
  206. function ShowNowPlaying()
  207. {
  208.     FadeOut(GeneralView);
  209.     FadeOut(CDView);
  210.     FadeIn(NowPlayingView);
  211.     
  212.     NowPlaying.ForegroundColor = "#C3FF3E";
  213.     NowPlayingTab.down         = true;
  214.     
  215.     CD.ForegroundColor         = "#FFFFFF";
  216.     CDTab.down                 = false;
  217.     
  218.     General.ForegroundColor    = "#FFFFFF";
  219.     GeneralTab.down            = false;
  220.  
  221. }    
  222.  
  223. function ShowGeneral()
  224. {
  225.     FadeOut(NowPlayingView)
  226.     FadeOut(CDView )
  227.     FadeIn(GeneralView);
  228.     
  229.     General.ForegroundColor    = "#C3FF3E";
  230.     GeneralTab.down            = true;
  231.     
  232.     CD.ForegroundColor         ="#FFFFFF";
  233.     CDTab.down                 = false;
  234.     
  235.     NowPlaying.ForegroundColor = "#FFFFFF";
  236.     NowPlayingTab.down         = false;
  237.     
  238.  
  239. }
  240.  
  241. function ShowCD()
  242. {
  243.  
  244.     FadeOut(NowPlayingView);
  245.     FadeOut(GeneralView);
  246.     FadeIn(CDView);
  247.     
  248.     CD.ForegroundColor         = "#C3FF3E";
  249.     CDTab.down                 = true;
  250.     
  251.     General.ForegroundColor    = "#FFFFFF";
  252.     GeneralTab.down            =  false;
  253.     
  254.     NowPlaying.ForegroundColor = "#FFFFFF";
  255.     NowPlayingTab.down         = false;
  256.     
  257. }
  258.  
  259. function GetDoubleClickPlaylistText()
  260. {
  261.     if ( fsplugin.DoubleClickPlay == 0 ) 
  262.     {
  263.         return strShiftDoubleClick.value;
  264.     }
  265.     else
  266.     {
  267.         return strDoubleClick.value;
  268.     }
  269. }
  270.  
  271. // re-enable tabs
  272. function EnableTabs()
  273. {
  274.     NowPlaying.enabled    = true;
  275.     CD.enabled            = true;
  276.     General.enabled       = true;
  277.     NowPlayingTab.enabled = true;
  278.     CDTab.enabled         = true;
  279.     GeneralTab.enabled    = true;
  280. }
  281.  
  282. // disable tabs, used to prevent changing tabs
  283. // during a modal message
  284. function DisableTabs(textException, tabException)
  285. {
  286.     NowPlaying.enabled        = false;
  287.     CD.enabled                = false;
  288.     General.enabled            = false;
  289.     
  290.     NowPlayingTab.enabled    = false;
  291.     CDTab.enabled            = false;
  292.     GeneralTab.enabled        = false;    
  293.     
  294.     textException.enabled    = true;
  295.     tabException.enabled    = true;    
  296. }
  297.  
  298. function ResetPreferences()
  299. {
  300.     fsplugin.ResetPreferences();
  301.     RestoreText.enabled        = fsplugin.canRestorePreferences;
  302.     RestoreButton.enabled        = fsplugin.canRestorePreferences;
  303.     fsplugin.SetWindowSize(686, 536);
  304.     fsplugin.ClosePlayer();
  305. }
  306.  
  307. function RestorePreferences()
  308. {
  309.     fsplugin.RestorePreferences();
  310.     RestoreText.enabled    = fsplugin.canRestorePreferences;
  311.     RestoreButton.enabled    = fsplugin.canRestorePreferences;
  312.     fsplugin.SetWindowSize(fsplugin.WindowWidth, fsplugin.WindowHeight);
  313.     fsplugin.ClosePlayer();
  314. }
  315.  
  316. function ResetModalView()
  317. {
  318.     FileSeparatorEdit.value   = "";
  319.     
  320.     FileSeparatorEdit.visible = false;
  321.  
  322.     ModalTitle.accDescription = "";
  323.     ModalText.accDescription  = "";
  324.     
  325.     ModalTitle.left = 11;
  326.     
  327.     ModalWarning.left = 38;
  328.     ModalWarning.top = 108;
  329.  
  330.     ModalImage.visible = false;
  331.         
  332.     ModalTitle.value          = " ";
  333.     ModalText.value              = " ";
  334.     ModalWarning.value          = " ";
  335.     
  336.     ModalFSText.visible          = false;
  337.     OK.visible                  = false;
  338.     OK.value                  = strOK.value;
  339.     Cancel.visible              = false;
  340.     Cancel.value              = strCancel.value;
  341.     CenterTextOnButton( OK, OKButton );
  342.     CenterTextOnButton( Cancel, CancelButton );
  343.     
  344.  
  345. }
  346.  
  347. function ModalMessage(purpose)
  348. {
  349.     ResetModalView();
  350.   
  351.     g_purpose             = purpose;
  352.     OK.visible             = true;
  353.     OKButton.visible     = true;
  354.     Cancel.visible         = true;
  355.     CancelButton.visible = true;
  356.     
  357.     switch (purpose)
  358.     {
  359.  
  360.         case 'reset':
  361.         {
  362.             FadeOut(GeneralView);
  363.             if (!fsplugin.canRestorePreferences)
  364.             {    
  365.                 ModalTitle.value   = strResetDefaultTitle.value;
  366.                 ModalText.value    = strResetDefault.value;
  367.                 ModalWarning.value = strResetWarning.value;
  368.                 ModalWarning.top = 83;
  369.                 ModalTitle.left = 78;
  370.                 ModalImage.visible = true;                
  371.              }
  372.             else
  373.             {
  374.                 ModalTitle.value = strOverwritingTitle.value;
  375.                 ModalText.value  = strOverwritingMessage.value;
  376.                 ModalWarning.value = strOverwriteWarning.value;                
  377.                 ModalWarning.top = 96;
  378.                 ModalTitle.left = 78;
  379.                 ModalImage.visible = true;
  380.             }
  381.             FadeIn(ModalView);
  382.             DisableTabs(General, GeneralTab);
  383.               OK.value                  = strYes.value;
  384.             Cancel.value              = strNo.value;
  385.             OK.left                      = g_kOKLeft-4;
  386.             Cancel.left                  = g_kCancelLeft+10;            
  387.             CenterTextOnButton( OK, OKButton );
  388.             CenterTextOnButton( Cancel, CancelButton );
  389.  
  390.         }       
  391.         break;
  392.         case 'restore':
  393.         {
  394.             FadeOut(GeneralView);
  395.             ModalTitle.value = strRestoreTitle.value;
  396.             ModalText.value  = strRestoreSettings.value;
  397.             ModalWarning.value = strRestoreWarning.value;
  398.             FadeIn(ModalView);    
  399.             DisableTabs(General, GeneralTab);    
  400.               OK.value                  = strYes.value;
  401.             Cancel.value              = strNo.value;
  402.             OK.left                      = g_kOKLeft-4;
  403.             Cancel.left                  = g_kCancelLeft+10;    
  404.             CenterTextOnButton( OK, OKButton );
  405.             CenterTextOnButton( Cancel, CancelButton );
  406.             ModalTitle.left = 78;
  407.             ModalImage.visible = true;                
  408.  
  409.             ModalWarning.top = 83;                                          
  410.         }
  411.         break;
  412.         case 'separator':
  413.         {
  414.             FadeOut(CDView);
  415.             ModalTitle.value = strChooseSeparator.value;
  416.             ModalText.value  = strConfirmSeparator.value + "\n\n" + strConfirmSeparatorLine2.value;
  417.             FileSeparatorEdit.visible = true;
  418.             FadeIn(ModalView);       
  419.             DisableTabs(CD, CDTab);    
  420.             ModalFSText.visible = true;
  421.         }
  422.         default: 
  423.         {    
  424.         
  425.         }
  426.     }
  427.     
  428.     ModalTitle.accDescription=ModalTitle.value;
  429.     ModalText.accDescription=ModalText.value;
  430. }
  431.  
  432. function ExitModal(bSaveSettings)
  433. {
  434.     FadeOut(ModalView);
  435.     EnableTabs(true);
  436.     
  437.     switch (g_purpose)
  438.     {    
  439.         case 'reset':
  440.         {
  441.             FadeIn(GeneralView);
  442.             if (bSaveSettings)
  443.             {
  444.                 ResetPreferences();
  445.             }
  446.             CDTab.enabled         = true;
  447.             NowPlayingTab.enabled = true;                
  448.         }
  449.         break;
  450.         case 'restore':  
  451.         {
  452.             FadeIn(GeneralView);
  453.             if (bSaveSettings)
  454.             {
  455.                 RestorePreferences();
  456.             }            
  457.             CDTab.enabled         = true;
  458.             NowPlayingTab.enabled = true;                
  459.         }
  460.         break;
  461.         case 'separator':
  462.         {       
  463.             if (bSaveSettings)
  464.             {
  465.                 var convertedValue               = ConvertInvalidChars(FileSeparatorEdit.value);
  466.                 fsplugin.CDRecordFileSeparator = convertedValue;
  467.                 FileSeparator.value               = ConvertSpaces(convertedValue);
  468.             }    
  469.             FadeIn(CDView);
  470.             GeneralTab.enabled        = true;
  471.             NowPlayingTab.enabled    = true;
  472.         }
  473.         break;
  474.         default: 
  475.         {
  476.             return;
  477.         }
  478.     }
  479. }
  480.  
  481.