home *** CD-ROM | disk | FTP | other *** search
/ Chip 2002 September (Special) / Chip-Special_2002-09_Digitalni-Video.bin / servis / wm9 / mpsetupXP.exe / RCDATA / CABINET / wmploc.DLL / 256 / NOWPLAYING.JS < prev    next >
Text File  |  2002-08-19  |  18KB  |  792 lines

  1. // Windows Media Player - Copyright 2000 Microsoft Corporation.
  2. //<script>
  3.  
  4. // Dimensions must match wmpnowplayinghelper.cpp
  5.  
  6. var g_BannerHeight        = 36;
  7. var g_SepWidth            = 3;
  8. var g_SepHeight         = 3;
  9. var g_ControlbarHeight    = 20;
  10.  
  11. var g_SettingsMinHeight = 21;
  12. var g_SettingsMaxHeight = 500;
  13. var g_SidebarMinWidth    = 100;
  14. var g_SidebarMaxWidth    = 500;
  15. var g_PlaylistMinHeight = 35;
  16. var g_MetadataMinHeight = 26;
  17.  
  18. var g_DisplayMinWidth    = 200;
  19. var g_DisplayMinHeight    = 19;
  20. var g_MediaMinHeight    = 20;
  21.  
  22. var PLUGIN_TYPE_BACKGROUND                =        1;
  23. var PLUGIN_TYPE_SEPARATEWINDOW            =        2;
  24. var PLUGIN_TYPE_DISPLAYAREA             =        3;
  25. var PLUGIN_TYPE_SETTINGSAREA            =        4;
  26. var PLUGIN_TYPE_METADATAAREA            =        5;
  27. var PLUGIN_TYPE_BANNERAREA                =        240;
  28.  
  29. var PLUGIN_PROP_CURRENTPRESET            = "CurrentPreset"
  30. var PLUGIN_PROP_SKINFILE                = "SkinFile"
  31.  
  32. var VIEW_FLAGSEX_ATTEMPTEDAUTORUN        =        0x0001;
  33.  
  34. var g_VResize = false;
  35. var g_HResize = false;
  36. var g_SResize = false;
  37.  
  38. var g_fCaptionsDetected = false;
  39. var g_fShowCaptions = false;
  40. var g_fShowBanner    = false;
  41.  
  42. var g_rgSettings = new Array(
  43.     "AppColorView",
  44.     "CrossFadeView",
  45.     "EQView",
  46.     "AdvancedVideoSettingsView",
  47.     "AdvancedAudioView",
  48.     "SRSView",
  49.     "VideoSettingsView"
  50.     );
  51.  
  52. var g_nSettingsTitleLeft = 0;
  53.  
  54. function OnLoad()
  55. {
  56.     g_nSettingsTitleLeft = txtSettingsTitle.left;
  57.     g_fCaptionsDetected = helper.captionsAvailable;
  58.  
  59.     plMedia.setColumnResizeMode( 0, "Stretches" );
  60.     plMedia.setColumnResizeMode( 1, "AutosizeData" );
  61.  
  62.     ResetDisplayPlugin();
  63.     UpdateCaptions();
  64.     UpdateBannerPlugin();
  65.     UpdateSettingsPlugin();
  66.     UpdateMetadataPlugin();
  67.     UpdateVizControls();
  68.     UpdatePanels();
  69.     UpdateFullScreenButton();
  70.     UpdateSettingsTitle();
  71.     UpdateCustomize();
  72. }
  73.  
  74. function OnOpenStateChange()
  75. {
  76.     if( osMediaOpen == player.OpenState )
  77.     {
  78.         g_fCaptionsDetected = helper.captionsAvailable;
  79.         ResetDisplayPlugin();
  80.         UpdateCaptions();
  81.         UpdateBannerPlugin();
  82.         UpdatePanels();
  83.         UpdateVizControls();
  84.     }
  85.  
  86.     UpdateFullScreenButton();
  87. }
  88.  
  89. function OnPlayStateChange()
  90. {
  91.     if( psPlaying == player.playState )
  92.     {
  93.         ResetDisplayPlugin();
  94.         UpdateCaptions();
  95.         UpdatePanels();
  96.         UpdateVizControls();
  97.     }
  98.  
  99.     UpdateFullScreenButton();
  100. }
  101.  
  102. function OnScriptCommand(scType, Param)
  103. {
  104.     scType = scType.toUpperCase();
  105.     
  106.     if(scType == "TEXT" ||    scType == "<SYNC" || scType == "CAPTION" || scType == "SYNCHRONIZEDLYRICLYRIC")
  107.     {
  108.         g_fCaptionsDetected = true;
  109.         UpdateCaptions();
  110.         UpdatePanels();
  111.     }
  112. }
  113.  
  114. function UpdatePanels()
  115. {
  116.     var lSettings = 0;
  117.     var lSidebar = 0;
  118.     var lMetadata = 0;
  119.     var lDisplay = 0;
  120.     var lCaptions = 0;
  121.     var lBanner = 0;
  122.  
  123.     helper.calcLayout( vMain.width, vMain.height, g_fShowCaptions, g_fShowBanner );
  124.  
  125.     lSettings = helper.getLayoutSize( 1 );
  126.     lSidebar = helper.getLayoutSize( 2 );
  127.     lMetadata = helper.getLayoutSize( 3 );
  128.     lDisplay = helper.getLayoutSize( 4 );
  129.     lCaptions = helper.getLayoutSize( 5 );
  130.     lBanner = helper.getLayoutSize( 6 );
  131.  
  132.     if( 0 != lSettings )
  133.     {
  134.         svSettings.verticalAlignment="top";
  135.         svSettings.top=svMain.height-g_ControlbarHeight-lSettings;
  136.         svSettings.height=lSettings;
  137.         svSettings.verticalAlignment="bottom";
  138.         svSettings.visible = true;
  139.         svMedia.height = svSettings.top-g_SepHeight ;
  140.     }
  141.     else
  142.     {
  143.         svSettings.visible = false;
  144.         svMedia.height = svMain.height-g_ControlbarHeight;
  145.     }
  146.  
  147.     if( 0 != lSidebar )
  148.     {
  149.         svSidebar.width = lSidebar;
  150.         svMain.width = vMain.width - lSidebar - g_SepWidth;
  151.         svSidebar.visible = true;
  152.     }
  153.     else
  154.     {
  155.         svSidebar.visible = false;
  156.         svSidebar.width = lSidebar;
  157.         svMain.width = vMain.width;
  158.     }
  159.  
  160.     if( 0 != lMetadata )
  161.     {
  162.         piMetadata.height = lMetadata;
  163.         plMedia.top = lMetadata + g_SepHeight;
  164.         plMedia.height = svSidebar.height-plMedia.top;
  165.         piMetadata.visible = true;
  166.     }
  167.     else
  168.     {
  169.         plMedia.top = 0;
  170.         plMedia.height = svSidebar.height;
  171.         piMetadata.visible = false;
  172.     }
  173.  
  174.     UpdateResizeBars();
  175.  
  176.     if( 0 != lDisplay )
  177.     {
  178.         piDisplay.height = lDisplay;
  179.         piDisplay.visible = true;
  180.     }
  181.     else
  182.     {
  183.         piDisplay.visible = false;
  184.     }
  185.  
  186.     piBanner.visible = ( 0 != lBanner );
  187.  
  188.     if( 0 != lCaptions )
  189.     {
  190.         piCaptions.verticalAlignment = "top";
  191.         piCaptions.top = lDisplay;
  192.         piCaptions.height = lCaptions;
  193.         piCaptions.verticalAlignment = "bottom";
  194.         piCaptions.visible = true;
  195.     }
  196.     else
  197.     {
  198.         piCaptions.visible = false;
  199.     }
  200. }
  201.  
  202. function ResetDisplayPlugin()
  203. {
  204.         mediacenter.displayView = helper.resolveDisplayView(false);
  205.         UpdateDisplayPlugin();
  206. }
  207.  
  208. var g_fSetQuickHideForBorder=false;
  209.  
  210. function QuickHideForBorder(fHide)
  211. {
  212.     if (fHide && (!mediacenter.quickHide) && (!g_fSetQuickHideForBorder))
  213.     {
  214.         g_fSetQuickHideForBorder = true;
  215.         mediacenter.quickHide=true;
  216.     }
  217.     else if ( (!fHide) && g_fSetQuickHideForBorder)
  218.     {
  219.         mediacenter.quickHide=false;
  220.         g_fSetQuickHideForBorder=false;
  221.     }
  222. }
  223.  
  224. function UpdateDisplayPlugin()
  225. {
  226.     piDisplay.objectID = mediacenter.displayView;
  227.  
  228.     // handle skin
  229.  
  230.     if( piDisplay.objectID == "BorderView" )
  231.     {
  232.         QuickHideForBorder(true);        
  233.         var skinfile = helper.getSkinFile();
  234.         piDisplay.setProperty( PLUGIN_PROP_SKINFILE, skinfile );
  235.  
  236.         // Reset if error
  237.  
  238.         if( ( piDisplay.getProperty( PLUGIN_PROP_SKINFILE ) != skinfile ) || ( "" == skinfile ) )
  239.         {
  240.             mediacenter.displayView = helper.resolveDisplayView(true);
  241.             QuickHideForBorder(false);
  242.         }
  243.     }
  244.     else
  245.     {
  246.         QuickHideForBorder(false);        
  247.     }
  248.  
  249.     // Reset if error
  250.  
  251.     if( "" == piDisplay.objectID )
  252.     {
  253.             mediacenter.displayView = helper.resolveDisplayView(true);
  254.     }
  255.  
  256.     // Reset full screen
  257.  
  258.     if( piDisplay.objectID != "VideoView" && piDisplay.objectID != "VizView" )
  259.     {
  260.             mediacenter.fullScreenAvailable = false;
  261.     }
  262.  
  263.     // Sync back
  264.  
  265.     mediacenter.displayView = piDisplay.objectID;
  266. }
  267.  
  268. function UpdateDisplayPreset()
  269. {
  270.     var displayPreset = 0;
  271.  
  272.     piDisplay.setProperty( PLUGIN_PROP_CURRENTPRESET, mediacenter.displayPreset );
  273.  
  274.     // Sync back
  275.  
  276.     if( piDisplay.objectID != "VideoView" && piDisplay.objectID != "VizView" && piDisplay.objectID != "BorderView" )
  277.     {
  278.         displayPreset = piDisplay.getProperty( PLUGIN_PROP_CURRENTPRESET );
  279.         mediacenter.displayPreset = displayPreset;
  280.     }
  281. }
  282.  
  283. function UpdateCaptions()
  284. {
  285.     var fShowCaptions = false;
  286.     
  287.     if ( mediacenter.showCaptions && !PlayingDVD() )
  288.     {
  289.         if( piDisplay.objectID == "VideoView" || piDisplay.objectID == "VizView" || piDisplay.objectID == "AlbumArtView" )
  290.         {        
  291.             fShowCaptions = g_fCaptionsDetected;
  292.         }
  293.     }
  294.     
  295.     g_fShowCaptions = fShowCaptions;
  296. }
  297.  
  298. function UpdateBannerPlugin()
  299. {
  300.     if(player.currentMedia && (player.currentmedia.getItemInfo("BannerURL") != ""))
  301.     {
  302.         g_fShowBanner = true;
  303.     }
  304.     else
  305.     {
  306.         g_fShowBanner = false;
  307.     }
  308. }
  309.  
  310. function UpdateSettingsPlugin()
  311. {
  312.     var settingsPreset = 0;
  313.  
  314.     piSettings.objectID = mediacenter.settingsView;
  315.     piSettings.setProperty( PLUGIN_PROP_CURRENTPRESET, mediacenter.settingsPreset );
  316.  
  317.     // Reset if error
  318.  
  319.     if( "" == piSettings.objectID )
  320.     {
  321.             piSettings.objectID = "EQView";
  322.     }
  323.  
  324.     // Sync back
  325.  
  326.     settingsPreset = piSettings.getProperty( PLUGIN_PROP_CURRENTPRESET );
  327.     mediacenter.settingsView = piSettings.objectID;
  328.     mediacenter.settingsPreset = settingsPreset;
  329.  
  330.     // Update spinners and text
  331.  
  332.     if( 0 <= MapSettingsToIndex( mediacenter.settingsView ) )
  333.     {
  334.         btnSettingsPrev.visible = true;
  335.         txtSettingsTitle.horizontalAlignment="left";
  336.         txtSettingsTitle.left = g_nSettingsTitleLeft;
  337.         txtSettingsTitle.width = btnSettingsClose.left-txtSettingsTitle.left;
  338.         txtSettingsTitle.horizontalAlignment="stretch";
  339.     }
  340.     else
  341.     {
  342.         btnSettingsPrev.visible = false;
  343.         txtSettingsTitle.horizontalAlignment="left";
  344.         txtSettingsTitle.left = btnSettingsPrev.left;
  345.         txtSettingsTitle.width = btnSettingsClose.left-txtSettingsTitle.left;
  346.         txtSettingsTitle.horizontalAlignment="stretch";
  347.     }
  348. }
  349.  
  350. function UpdateMetadataPlugin()
  351. {
  352.     var metadataPreset = 0;
  353.  
  354.     piMetadata.objectID = mediacenter.metadataView;
  355.     piMetadata.setProperty( PLUGIN_PROP_CURRENTPRESET, mediacenter.metadataPreset );
  356.  
  357.     // Reset if error
  358.  
  359.     if( "" == piMetadata.objectID )
  360.     {
  361.             piMetadata.objectID = "MediaInfoView";
  362.             mediacenter.showMetadata = false;
  363.     }
  364.  
  365.     // Sync back
  366.  
  367.     metadataPreset = piMetadata.getProperty( PLUGIN_PROP_CURRENTPRESET );
  368.     mediacenter.metadataView = piMetadata.objectID;
  369.     mediacenter.metadataPreset = metadataPreset;
  370. }
  371.  
  372. function UpdateVizControls()
  373. {
  374.     // DVD?
  375.  
  376.     if( ( "VideoView" == piDisplay.objectID ) && PlayingDVD() )
  377.     {
  378.             txtVizTitle.visible = false;
  379.             txtVizTitle2.visible = false;
  380.             btnDVDMenu.visible =  ( ("videoManagerMenu" != player.dvd.domain) && ("videoTitleSetMenu" != player.dvd.domain) ); 
  381.             btnDVDResume.visible = !btnDVDMenu.visible;
  382.  
  383.             return;
  384.     }
  385.  
  386.     // No Viz or Border or Video?
  387.  
  388.     if( ( ( mediacenter.showEffects == false ) && ( "VizView" == piDisplay.objectID ) ) || 
  389.             ( "BorderView" == piDisplay.objectID ) || ( "VideoView" == piDisplay.objectID ) )
  390.     {
  391.             txtVizTitle.visible = false;
  392.             txtVizTitle2.visible = false;
  393.             btnDVDMenu.visible = false;
  394.             btnDVDResume.visible = false;
  395.  
  396.             return;
  397.     }
  398.  
  399.     // Viz or Plugin
  400.  
  401.     UpdateVizTitle();
  402.  
  403.     if( ( "VizView" == piDisplay.objectID ) || ( 1 < helper.viewPresetCount( piDisplay.objectID ) ) )
  404.     {
  405.             txtVizTitle2.visible = false; 
  406.             btnDVDMenu.visible = false;
  407.             btnDVDResume.visible = false;
  408.             txtVizTitle.visible = true;
  409.  
  410.             if( "VizView" == piDisplay.objectID )
  411.             {
  412.                 btnVizPrev.upTooltip="res://wmploc/RT_STRING/#1842";
  413.                 btnVizNext.upTooltip="res://wmploc/RT_STRING/#1843";
  414.             }
  415.             else
  416.             {
  417.                 btnVizPrev.upTooltip="res://wmploc/RT_STRING/#1422";
  418.                 btnVizNext.upTooltip="res://wmploc/RT_STRING/#1423";
  419.             } 
  420.     }
  421.     else
  422.     {
  423.             txtVizTitle.visible = false; 
  424.             btnDVDMenu.visible = false;
  425.             btnDVDResume.visible = false;
  426.             txtVizTitle2.visible = true; 
  427.     }
  428. }
  429.  
  430. function UpdateVizTitle()
  431. {
  432.     var viewName;
  433.     var presetName;
  434.  
  435.     if( "VizView" == piDisplay.objectID )
  436.     {
  437.             viewName = helper.effectFriendlyName( mediacenter.effectType );
  438.             presetName = helper.effectPresetName( mediacenter.effectType, mediacenter.effectPreset );
  439.     }
  440.     else
  441.     {
  442.             viewName = helper.viewFriendlyName( piDisplay.objectID );
  443.             presetName = helper.viewPresetName( piDisplay.objectID, mediacenter.displayPreset );
  444.     }
  445.  
  446.     if (""!=presetName)
  447.     {
  448.             txtVizTitle.value = viewName + " : " + presetName;
  449.     }
  450.     else
  451.     {
  452.             txtVizTitle.value = viewName;
  453.     }
  454.  
  455.     txtVizTitle2.value = txtVizTitle.value;
  456. }
  457.  
  458. function PreviousDisplay()
  459. {
  460.     if( "VizView" == piDisplay.objectID )
  461.     {
  462.         mediacenter.previousVizRequest = true;
  463.     }
  464.     else
  465.     {
  466.         var presetCount = helper.viewPresetCount( piDisplay.objectID );
  467.         var preset = mediacenter.displayPreset;
  468.  
  469.         preset = preset - 1;
  470.  
  471.         if( preset < 0 )
  472.         {
  473.             preset = presetCount - 1;
  474.         }
  475.  
  476.         mediacenter.displayPreset = preset;
  477.     }
  478. }
  479.  
  480. function NextDisplay()
  481. {
  482.     if( "VizView" == piDisplay.objectID )
  483.     {
  484.         mediacenter.nextVizRequest = true;
  485.     }
  486.     else
  487.     {
  488.         var presetCount = helper.viewPresetCount( piDisplay.objectID );
  489.         var preset = mediacenter.displayPreset;
  490.  
  491.         preset = preset + 1;
  492.  
  493.         if( preset >= presetCount )
  494.         {
  495.             preset = 0;
  496.         }
  497.  
  498.         mediacenter.displayPreset = preset;
  499.     }
  500. }
  501.  
  502. function PreviousSettings()
  503. {
  504.     var nIndex = MapSettingsToIndex( mediacenter.settingsView );
  505.     var nCurrentIndex = nIndex;
  506.     
  507.     do
  508.     {
  509.         nIndex = nIndex - 1;
  510.  
  511.         if( 0 > nIndex )
  512.         {
  513.             nIndex = g_rgSettings.length - 1;
  514.         }
  515.  
  516.         mediacenter.settingsView = g_rgSettings[ nIndex ];
  517.  
  518.     } while( ( MapSettingsToIndex( mediacenter.settingsView ) == nCurrentIndex ) && ( nCurrentIndex != nIndex ) );
  519. }
  520.  
  521. function NextSettings()
  522. {
  523.     var nIndex = MapSettingsToIndex( mediacenter.settingsView );
  524.     var nCurrentIndex = nIndex;
  525.     
  526.     do
  527.     {
  528.         nIndex = nIndex + 1;
  529.  
  530.         if( g_rgSettings.length <= nIndex )
  531.         {
  532.             nIndex = 0;
  533.         }
  534.  
  535.         mediacenter.settingsView = g_rgSettings[ nIndex ];
  536.  
  537.     } while( ( MapSettingsToIndex( mediacenter.settingsView ) == nCurrentIndex ) && ( nCurrentIndex != nIndex ) );
  538. }
  539.  
  540. function UpdateResizeBars()
  541. {
  542.         if( plMedia.visible && piMetadata.visible )
  543.         {
  544.                 btnSResize.top = piMetadata.height;
  545.                 btnSResize.height = g_SepWidth;
  546.                 if( mediacenter.showResizeBars )
  547.                 {
  548.                         btnSResize.image = "res://wmploc/#1708";
  549.                 }
  550.                 else
  551.                 {
  552.                         btnSResize.image = "res://wmploc/#1709";
  553.                 }
  554.                 btnSResize.visible = true;
  555.         }
  556.         else
  557.         {
  558.                 btnSResize.visible = false;
  559.         }
  560.  
  561.         if( plMedia.visible || piMetadata.visible )
  562.         {
  563.                 btnVResize.horizontalAlignment='left';
  564.                 btnVResize.left = vMain.width - plMedia.width - g_SepWidth;
  565.                 btnVResize.width = g_SepWidth;
  566.                 btnVResize.horizontalAlignment='right';
  567.                 if( mediacenter.showResizeBars )
  568.                 {
  569.                         btnVResize.image = "res://wmploc/#1706";
  570.                 }
  571.                 else
  572.                 {
  573.                         btnVResize.image = "res://wmploc/#1707";
  574.                 }
  575.                 btnVResize.visible = true;
  576.         }
  577.         else
  578.         {
  579.                 btnVResize.visible = false;
  580.         }
  581.  
  582.         if( svSettings.visible )
  583.         {
  584.                 btnHResize.verticalAlignment='top';
  585.                 btnHResize.top = svMain.height - g_ControlbarHeight - svSettings.height - g_SepHeight;
  586.                 btnHResize.height = g_SepHeight;
  587.                 btnHResize.verticalAlignment='bottom';
  588.                 if( mediacenter.showResizeBars )
  589.                 {
  590.                         btnHResize.image = "res://wmploc/#1708";
  591.                 }
  592.                 else
  593.                 {
  594.                         btnHResize.image = "res://wmploc/#1709";
  595.                 }
  596.                 btnHResize.visible = true;
  597.         }
  598.         else
  599.         {
  600.                 btnHResize.visible = false;
  601.         }
  602. }
  603.  
  604. function UpdateFullScreenButton()
  605. {
  606.     btnFullScreen.visible = mediacenter.fullScreenAvailable;
  607.     if( osMediaOpen == player.openState  && ( ( player.playState >= psPaused ) && ( player.playState <= psScanReverse ) ) )
  608.     {
  609.             btnFullScreen.enabled=true;
  610.     }
  611.     else
  612.     {
  613.             btnFullScreen.enabled=false;
  614.     }
  615. }
  616.  
  617. function UpdateSettingsTitle()
  618. {
  619.         var viewName = helper.viewFriendlyName( piSettings.objectID );
  620.  
  621.         txtSettingsTitle.value = viewName;
  622. }
  623.  
  624. function OnVResizeStart()
  625. {
  626.         btnVResize.horizontalAlignment='left';
  627.         svSidebar.horizontalAlignment='left';
  628.         g_VResize=true;
  629. }
  630.  
  631. function OnVResize(xPos)
  632. {
  633.         var plLeft=xPos+g_SepWidth;
  634.  
  635.         if(xPos<g_DisplayMinWidth)
  636.         {
  637.                 xPos=g_DisplayMinWidth;
  638.                 plLeft=xPos+g_SepWidth;
  639.         }
  640.         else if(vMain.width-plLeft<g_SidebarMinWidth)
  641.         {
  642.                 plLeft=vMain.width-g_SidebarMinWidth;
  643.                 xPos=plLeft-g_SepWidth;
  644.         }
  645.         else if(vMain.width-plLeft>g_SidebarMaxWidth)
  646.         {
  647.                 plLeft=vMain.width-g_SidebarMaxWidth;
  648.                 xPos=plLeft-g_SepWidth;
  649.         }
  650.  
  651.         btnVResize.left = xPos;
  652.         btnVResize.width = g_SepWidth;
  653.         svMain.width = xPos;
  654.         svSidebar.left = plLeft;
  655.         svSidebar.width = vMain.width-plLeft;
  656.         vMain.updateWindow();
  657. }
  658.  
  659. function OnVResizeEnd()
  660. {
  661.         g_VResize=false;
  662.         btnVResize.horizontalAlignment='right';
  663.         svSidebar.horizontalAlignment='right';
  664.         mediacenter.playlistWidth=svSidebar.width;
  665.         mediacenter.metadataWidth=svSidebar.width;
  666. }
  667.  
  668. function OnHResizeStart()
  669. {
  670.         btnHResize.verticalAlignment='top';
  671.         svSettings.verticalAlignment='top';
  672.         g_HResize=true;
  673. }
  674.  
  675. function OnHResize(yPos)
  676. {
  677.         var plTop=yPos+g_SepHeight;
  678.  
  679.         if(yPos<g_DisplayMinHeight)
  680.         {
  681.                 yPos=g_DisplayMinHeight;
  682.                 plTop=yPos+g_SepHeight;
  683.         }
  684.         else if(svMain.height-g_ControlbarHeight-plTop<g_SettingsMinHeight)
  685.         {
  686.                 plTop=svMain.height-g_ControlbarHeight-g_SettingsMinHeight;
  687.                 yPos=plTop-g_SepHeight;
  688.         }
  689.         else if(svMain.height-g_ControlbarHeight-plTop>g_SettingsMaxHeight)
  690.         {
  691.                 plTop=svMain.height-g_ControlbarHeight-g_SettingsMaxHeight;
  692.                 yPos=plTop-g_SepHeight;
  693.         }
  694.  
  695.         btnHResize.top = yPos;
  696.         btnHResize.height = g_SepHeight;
  697.         svMedia.height=yPos;
  698.         svSettings.top=plTop;
  699.         svSettings.height=svMain.height-g_ControlbarHeight-plTop;
  700.         vMain.updateWindow();
  701. }
  702.  
  703. function OnHResizeEnd()
  704. {
  705.         g_HResize=false;
  706.         btnHResize.verticalAlignment='bottom';
  707.         svSettings.verticalAlignment='bottom';
  708.         mediacenter.settingsHeight=svSettings.height;
  709. }
  710.  
  711. function OnSResizeStart()
  712. {
  713.         g_SResize=true;
  714. }
  715.  
  716. function OnSResize(yPos)
  717. {
  718.         var plTop=yPos+g_SepHeight;
  719.  
  720.         if(svSidebar.height-plTop<g_PlaylistMinHeight)
  721.         {
  722.                 plTop=svSidebar.height-g_PlaylistMinHeight;
  723.                 yPos=plTop-g_SepHeight;
  724.         }
  725.  
  726.         if(yPos<g_MetadataMinHeight)
  727.         {
  728.                 yPos=g_MetadataMinHeight;
  729.                 plTop=yPos+g_SepHeight;
  730.         }
  731.  
  732.         btnSResize.top = yPos;
  733.         btnSResize.height = g_SepHeight;
  734.         piMetadata.height=yPos;
  735.         plMedia.top=plTop;
  736.         plMedia.height=svSidebar.height-plTop;
  737.         vMain.updateWindow();
  738. }
  739.  
  740. function OnSResizeEnd()
  741. {
  742.         g_SResize=false;
  743.         mediacenter.metadataHeight=piMetadata.height;
  744. }
  745.  
  746. function UpdateCustomize()
  747. {
  748.         btnCustomize.enabled = mediacenter.showTitles || mediacenter.showPlaylist || mediacenter.showMetadata || mediacenter.showSettings || mediacenter.quickHide;
  749. }
  750.  
  751. function CustomizeMenu()
  752. {
  753.         mnuCustomize.top = btnCustomizeMenu.top+btnCustomizeMenu.height;
  754.         mnuCustomize.left = btnCustomizeMenu.left;
  755.  
  756.         mnuCustomize.showEx( 3 );
  757. }
  758.  
  759. function OnLinkRequest()
  760. {
  761.     theme.CurrentViewID="vBrowser";
  762. }
  763.  
  764. function OnBrowserLoad()
  765. {
  766.     Browser1.SetProperty( "linkRequest", helper.linkRequest );
  767. }
  768.  
  769. function OnBrowserBack()
  770. {
  771.     Browser1.visible=false;
  772.     vBrowser.updateWindow();
  773.     theme.CurrentViewID="vMain";
  774. }
  775.  
  776. function PlayingDVD()
  777. {
  778.     return ( (player.currentPlaylist.count>0) && (player.currentPlaylist.item(0).sourceURL.indexOf("wmpdvd:")==0));
  779. }
  780.  
  781. function MapSettingsToIndex( View )
  782. {
  783.     for (var i = 0; i < g_rgSettings.length; i++)
  784.     {
  785.         if (View == g_rgSettings[i])
  786.         {
  787.             return( i );
  788.         }
  789.     }
  790.  
  791.     return( -1 );
  792. }