home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 April / Chip_2004-04_cd1.bin / opsys / wmakeup / downloads / Frostbite.wmz / frostbite.js < prev    next >
Encoding:
JavaScript  |  2003-10-17  |  15.0 KB  |  770 lines

  1. /*
  2.     http://www.theskinsfactory.com
  3.     info@theskinsfactory.com
  4.     Frostbite WMP skin
  5. */
  6.  
  7.  
  8. /*
  9.     Copyright ⌐ 2003. The Skins Factory, Inc. All Rights Reserved.
  10.     This code may not be reproduced in whole or in part without express permission of The Skins Factory, Inc.
  11. */
  12.  
  13. function onLoadPreview(){
  14.     if(player){}
  15.     view.width = 0;
  16.     view.height = 0;
  17.     view.backgroundImage = "";
  18.     theme.currentViewID = "controlView";
  19. }
  20.  
  21. function onLoadSkin()
  22. {
  23.     theme.savePreference("exitView", "false");
  24.  
  25.     if ("true"==theme.loadPreference("plViewer"))
  26.     {
  27.         theme.openView( 'plView' );
  28.     }
  29.  
  30.     if ("true"==theme.loadPreference("eqViewer"))
  31.     {
  32.         theme.openView( 'eqView' );
  33.     }
  34.  
  35.     if ("true"==theme.loadPreference("visViewer"))
  36.     {
  37.         theme.openView( 'visView' );
  38.     }
  39.  
  40.     if ("true"==theme.loadPreference("infoViewer"))
  41.     {
  42.         theme.openView( 'infoView' );
  43.     }
  44.  
  45.     theme.openView('mainView');
  46.  
  47.     checkControlPlayerState();
  48. }
  49.  
  50. function checkViewStatus()
  51. {
  52.     if("true"==theme.loadPreference("remoteCallPl"))
  53.     {
  54.         toggleView('plView','plViewer')
  55.         theme.savePreference("remoteCallPl", "false");
  56.     }
  57.     if("true"==theme.loadPreference("remoteCallEq"))
  58.     {
  59.         toggleView('eqView','eqViewer')
  60.         theme.savePreference("remoteCallEq", "false");
  61.     }
  62.     if("true"==theme.loadPreference("remoteCallVis"))
  63.     {
  64.         toggleView('visView','visViewer')
  65.         theme.savePreference("remoteCallVis", "false");
  66.     }
  67.  
  68.     if("true"==theme.loadPreference("minimizeView"))
  69.     {
  70.         view.minimize();
  71.         theme.savePreference("minimizeView", "false");
  72.     }
  73.     if("true"==theme.loadPreference("exitView"))
  74.     {
  75.         
  76.         view.close();
  77.     }
  78. }
  79.  
  80. function onCloseSkin()
  81. {
  82.     theme.savePreference("exitView", "false");
  83. }
  84.  
  85. function checkControlPlayerState(){
  86.  
  87.     if (player){
  88.         switch (player.playState){
  89.  
  90.             case 2:
  91.             case 3:     //playing
  92.  
  93.                 if(("false"==theme.loadPreference("vidViewer"))&&player.currentMedia.ImageSourceWidth>0){
  94.                     theme.openView('videoView');
  95.                 /*    if("true"==theme.loadPreference("visViewer")){
  96.                         theme.savePreference("visViewer", "false");
  97.                         theme.closeView( "visView" );
  98.                     } 
  99.                     break*/
  100.                 }
  101.                 break;
  102.             }
  103.         }
  104. }
  105.  
  106. // main mode
  107.  
  108. function mainStartUp(){
  109.     volume.value = player.settings.volume;
  110.     loadMainPrefs();
  111.     theme.savePreference("vidViewer", "false");
  112.     checkPlayerState();
  113.     updateMetadata('status');
  114. }
  115.  
  116. function checkPlayerState(){
  117.  
  118.     if (player){
  119.         switch (player.playState){
  120.  
  121.             case 2:
  122.             case 3:     //playing
  123.                 snowflakeAnim.backgroundImage = "m_snowflake_anim.gif";
  124.             /*    if(("false"==theme.loadPreference("vidViewer"))&&player.currentMedia.ImageSourceWidth>0){
  125.                     theme.openView('videoView');
  126.                     if("true"==theme.loadPreference("visViewer")){
  127.                         theme.savePreference("visViewer", "false");
  128.                         theme.closeView( "visView" );
  129.                     }
  130.                     break
  131.                 } */
  132.                 break;
  133.             }
  134.         }
  135.  
  136.  
  137.     if (!player.controls.isAvailable("Stop")) {
  138.         snowflakeAnim.backgroundImage = "m_snowflake.png";
  139.     }
  140.  
  141. }
  142.  
  143. // metadata
  144.  
  145. function updateMetadata(type){
  146.     if("status"==type){
  147.         if(player.openState!=13) return;
  148.  
  149.         var metaAuthor = player.currentMedia.getItemInfo("author");
  150.  
  151.         if (metaAuthor != "") {
  152.             metaAuthor += " - ";
  153.         }
  154.  
  155.         metadata.value = player.status;
  156.  
  157.         if (metadata.value != "") {
  158.             metadata.value += " - ";
  159.         }
  160.  
  161.         metadata.value += metaAuthor;
  162.     }else if("playlist"==type){
  163.         if(player.currentPlaylist.count==0) return;
  164.  
  165.         var metaAuthor = player.currentMedia.getItemInfo("author");
  166.  
  167.         if (metaAuthor != "") {
  168.             metaAuthor += " - ";
  169.         }
  170.  
  171.         if(player.openState!=13){
  172.             metadata.value = metaAuthor;
  173.         }
  174.     }else{
  175.         metadata.value = player.status;
  176.         metadata.scrolling = (metadata.textWidth>metadata.width);
  177.         return;
  178.     }
  179.  
  180.     metadata.value += player.currentmedia.name;
  181.     metadata.scrolling = (metadata.textWidth>metadata.width);
  182.  
  183. }
  184.  
  185. var seekStatus = true;
  186.  
  187. function drawSeekDigits( seconds )
  188. {
  189.     if(player.currentPlaylist.count==0) return;
  190.  
  191.     if( !seekStatus )
  192.     {
  193.         seconds = player.currentMedia.duration - seconds;
  194.     }
  195.  
  196.     frame = 9
  197.     seconds = seconds - seconds % 1;
  198.  
  199.     time4.left = -( seconds % 10 ) * frame;
  200.  
  201.     seconds = seconds - ( seconds % 10);
  202.     time3.left = -( ( seconds % 60 ) / 10 ) * frame;
  203.  
  204.     seconds = seconds - ( seconds % 60 );
  205.     seconds = seconds / 60;
  206.     time2.left = -( seconds % 10 ) * frame;
  207.  
  208.     seconds = seconds - ( seconds % 10 );
  209.     time1.left = -( seconds / 10 ) * frame;
  210. }
  211.  
  212. function SetTimeShowState()
  213. {
  214.     seekStatus = !seekStatus;
  215.  
  216.     if( seekStatus )
  217.     {
  218.         timeDash.visible = false;;
  219.     }
  220.     else
  221.     {
  222.         timeDash.visible = true;
  223.     }
  224.  
  225.     seconds = seek.value;
  226.  
  227.     drawSeekDigits( seconds );
  228. }
  229.  
  230.  
  231. // button and hotkey definitions
  232.  
  233. // open file
  234. function openFile()
  235. {
  236.     var media = theme.openDialog('FILE_OPEN','FILES_ALLMEDIA');
  237.     if(media)
  238.     {
  239.         player.URL = media;
  240.         player.controls.play();
  241.     }
  242. }
  243.  
  244. function viewHotKeys()
  245. {
  246.     switch(event.keycode)
  247.     {
  248.         case 122:
  249.         case 90:
  250.             player.controls.previous();
  251.             break;
  252.         case 120:
  253.         case 88:
  254.             player.controls.play();
  255.             break;
  256.         case 99:
  257.         case 67:
  258.             player.controls.pause();
  259.             break;
  260.         case 118:
  261.         case 86:
  262.             player.controls.stop();
  263.             break;
  264.         case 98:
  265.         case 66:
  266.             player.controls.next();
  267.             break;
  268.         case 108:
  269.         case 76:
  270.             openFile();
  271.             break;
  272.     }
  273. }
  274.  
  275. function viewResizer(event)
  276. {
  277.     switch(event.keycode)
  278.     {
  279.         case 37:
  280.             view.width-=20;
  281.             break;
  282.         case 38:
  283.             view.height-=20
  284.             break;
  285.         case 39:
  286.             view.width+=20;
  287.             break;
  288.         case 40:
  289.             view.height+=20;
  290.             break;
  291.     }
  292. }
  293.  
  294. function updateToolTip(id,button,tip)
  295. {
  296.     if("true"==theme.loadPreference( id ))
  297.     {
  298.         eval( button +".upToolTip = locHide" + tip + ".toolTip" );
  299.     }
  300.     else
  301.     {
  302.         eval( button +".upToolTip = locShow" + tip + ".toolTip" );
  303.     }
  304. }
  305.  
  306. function updateSeekToolTip()
  307. {
  308.     if(player.openState!=13) return;
  309.  
  310.     var seekHours = Math.floor((seek.value / 3600));
  311.     if (seekHours < 10) seekHours = "0" + seekHours;
  312.  
  313.     var seekMinutes = Math.floor((seek.value - (seekHours*3600))/60);
  314.     if (seekMinutes < 10) seekMinutes = "0" + seekMinutes;
  315.  
  316.     var seekSeconds = Math.floor((seek.value - (seekMinutes*60) - (seekHours*3600)));
  317.     if (seekSeconds < 10) seekSeconds = "0" + seekSeconds;
  318.  
  319.     var seekString;
  320.  
  321.     if (seekHours==00)
  322.     {
  323.         seekString = "";
  324.     }
  325.     else
  326.     {
  327.         seekString = seekHours + ":";
  328.     }
  329.  
  330.     seekString += seekMinutes + ":" + seekSeconds;
  331.  
  332.     seek.toolTip = seekString;
  333.     seek.toolTip += " / ";
  334.     seek.toolTip += player.currentMedia.DurationString;
  335.  
  336. }
  337.  
  338. function updateVolToolTip(id)
  339. {
  340.     vol = "";
  341.     vol += player.settings.volume;
  342.     eval(id + ".toolTip = vol" );
  343. }
  344.  
  345. function updateShuffRep()
  346. {
  347.     if(player.settings.getMode('shuffle'))
  348.     {
  349.         shuffleButton.down = true;
  350.     }else{
  351.         shuffleButton.down = false;
  352.     }
  353.  
  354.     if(player.settings.getMode('loop'))
  355.     {
  356.         repeatButton.down = true;
  357.     }else{
  358.         repeatButton.down = false;
  359.     }
  360. }
  361.  
  362. //
  363.  
  364. function volKey(event)
  365. {
  366.     switch(event.keycode)
  367.     {
  368.         case 39:
  369.         case 38:
  370.             if(player.settings.volume < 95)
  371.             {
  372.                 player.settings.volume+=5;
  373.             }else{
  374.                 player.settings.volume = 100;
  375.             }
  376.             break;
  377.         case 37:
  378.         case 40:
  379.             if(player.settings.volume > 5)
  380.             {
  381.                 player.settings.volume-=5;
  382.             }else{
  383.                 player.settings.volume = 0;
  384.             }
  385.             break;
  386.     }
  387.     player.settings.mute = false;
  388. }
  389.  
  390. function seekKey(event)
  391. {
  392.     if(player.openState!=13) return;
  393.     switch(event.keycode)
  394.     {
  395.         case 37:
  396.         case 40:
  397.             if(player.controls.currentPosition > 10)
  398.             {
  399.                 player.controls.currentPosition-=10;
  400.             }else{
  401.                 player.controls.currentPosition = 0;
  402.             }
  403.             break;
  404.         case 39:
  405.         case 38:
  406.             if(player.controls.currentPosition < player.currentMedia.duration)
  407.             {
  408.                 player.controls.currentPosition+=10;
  409.             }else{
  410.                 player.controls.currentPosition = player.currentMedia.duration;
  411.             }
  412.             break;
  413.     }
  414. }
  415.  
  416. // view toggle 
  417.  
  418. function toggleView(name,id)
  419. {
  420.     if("true"==theme.loadPreference(id))
  421.     {
  422.         theme.savePreference(id, "false");
  423.         theme.closeView( name );
  424.     }else{
  425.         theme.openView( name );
  426.     }
  427. }
  428.  
  429. function closeView(id)
  430. {
  431.     theme.savePreference(id, "false");
  432.     if( id=="vidViewer" )
  433.     {
  434.         player.controls.stop();
  435.         //theme.savePreference("vidCheck", "false");
  436.         theme.savePreference("vidViewer", "false");
  437.     }
  438.     view.close();
  439. }
  440.  
  441. function autoSizeView(width,height)
  442. {
  443.     var viewSize = theme.loadPreference( width );
  444.  
  445.     if( "--" != viewSize )
  446.     {
  447.         view.width = viewSize;
  448.     }else{
  449.         view.width = view.minWidth;
  450.     }
  451.  
  452.     viewSize = theme.loadpreference( height );
  453.  
  454.     if( "--" != viewSize )
  455.     {
  456.         view.height = viewSize;
  457.     }else{
  458.         view.height = view.minHeight;
  459.     }
  460. }
  461.  
  462. function saveViewSize(width,height)
  463. {
  464.     theme.savepreference( width , view.width );
  465.     theme.savepreference( height , view.height );
  466. }
  467.  
  468.  
  469.  
  470. // preferences
  471.  
  472. function loadMainPrefs(){
  473.  
  474.     theme.savePreference("exitView", "false");
  475.  
  476.     var _seekStatus = theme.loadPreference('seekStatus');
  477.  
  478.     if (_seekStatus != '--')
  479.     {
  480.         seekStatus = (_seekStatus.toLowerCase() == 'true') ? false : true;
  481.     } else {
  482.         seekStatus = true;
  483.     }
  484.  
  485.     SetTimeShowState();
  486. }
  487.  
  488. function saveMainPrefs() {
  489.     theme.savePreference("exitView", "true");
  490. }
  491.  
  492. function mainShutDown(){
  493.     saveMainPrefs();
  494. }
  495.  
  496. // playlist
  497. function loadPlPrefs()
  498. {
  499.     theme.savePreference( 'plViewer', "true" );
  500.  
  501.     autoSizeView('plWidth','plHeight');
  502.  
  503.     var index = 0;
  504.  
  505.     playlist1.setColumnResizeMode( index++, "AutosizeData" );
  506.     playlist1.setColumnResizeMode( index++, "Stretches" );
  507.     playlist1.setColumnResizeMode( index++, "AutosizeHeader" );
  508.     playlist1.setColumnResizeMode( index++, "AutosizeHeader" );
  509.     playlist1.setColumnResizeMode( index++, "AutosizeHeader" );
  510.     playlist1.setColumnResizeMode( index++, "AutosizeHeader" );
  511.  
  512.     checkPlViewSize()
  513. }
  514.  
  515. function savePlPrefs(){
  516.     saveViewSize('plWidth','plHeight');
  517. }
  518.  
  519.  
  520. function checkPlViewSize(){
  521.     plBotTile.width = (view.width / 2) + 48;
  522. }
  523.  
  524. // equalizer
  525.  
  526. function eqKey(event,level){
  527.     switch(event.keyCode){
  528.         case 38: // up
  529.         case 39:
  530.             eval("eq.gainLevel" + level + "++");
  531.             break;
  532.         case 40: // down
  533.         case 37:
  534.             eval("eq.gainLevel" + level + "--");
  535.             break;
  536.     }
  537.  
  538. }
  539.  
  540. // visualizations
  541. function loadVisPrefs(){
  542.     theme.savePreference( 'visViewer', "true" );
  543.     visEffects.currentEffectType = mediacenter.effectType;
  544.     visEffects.currentPreset = mediacenter.effectPreset;
  545.  
  546.     autoSizeView('visWidth','visHeight');
  547.  
  548.     checkVisualsPlayerState();
  549.     checkVisViewSize();
  550. }
  551.  
  552. function saveVisPrefs(){
  553.     mediacenter.effectType = visEffects.currentEffectType;
  554.     mediacenter.effectPreset = visEffects.currentPreset;
  555.     saveViewSize('visWidth','visHeight');
  556. }
  557.  
  558. function checkVisualsPlayerState(){
  559.  
  560.     if (player){
  561.         switch (player.playState){
  562.             case 2:
  563.             case 3:     //playing
  564.                 //visMask.visible = true;
  565.                 displayVisText()
  566.                 if(player.currentMedia.ImageSourceWidth>0){
  567.                     theme.savePreference('visViewer', "false");
  568.                     view.close();
  569.                 }
  570.                 break;
  571.  
  572.             }
  573.         }
  574.  
  575.     if (!player.controls.isAvailable("Stop")) {
  576.         //visMask.visible = false;
  577.     }
  578. }
  579.  
  580. function displayVisText(){
  581.     visEffectsSub.visible = true;
  582.     //visEffectsText.value = visEffects.currentEffectTitle + ": " + visEffects.currentPresetTitle;
  583.     visView.timerInterval = 6000
  584. }
  585.  
  586. function hideVisText(){
  587.     visEffectsSub.visible = false;
  588.     visView.timerInterval = 0
  589. }
  590.  
  591. function checkVisViewSize(){
  592.     visBotTile.width = (view.width / 2) + 48;
  593. }
  594.  
  595. // video settings
  596.  
  597. function loadVidPrefs(){
  598.     theme.savePreference( 'vidViewer', "true" );
  599.  
  600.     var _drawerStatus = theme.loadPreference('drawerStatus');
  601.  
  602.     if (_drawerStatus != '--') {
  603.         drawerStatus = (_drawerStatus.toLowerCase() == 'true') ? false : true;
  604.     } else {
  605.         drawerStatus = true;
  606.     }
  607.  
  608.     checkSnapStatus();
  609.     checkVideoPlayerState();
  610.     updateZoomToolTip();
  611.     toggleVidDrawer();
  612.     checkVidViewSize();
  613. }
  614.  
  615. function saveVidPrefs(){
  616.     theme.savePreference('drawerStatus',drawerStatus);
  617. }
  618.  
  619. function loadVidSize(){
  620.     var vidSizer = theme.loadPreference( "videoWidth" );
  621.  
  622.     if( "--" != vidSizer )
  623.     {
  624.         view.width = vidSizer;
  625.     }
  626.     vidSizer = theme.loadpreference( "videoHeight" );
  627.  
  628.     if( "--" != vidSizer )
  629.     {
  630.         view.height = vidSizer;
  631.     }
  632. }
  633.  
  634. function saveVidSize(){
  635.     theme.savepreference( "videoWidth", view.width );
  636.     theme.savepreference( "videoHeight", view.height );
  637.     theme.savePreference("vidSnapper" , "false");
  638.     vidZoom.upToolTip = vidSetTip.toolTip;
  639.     mediacenter.videoZoom = 50;
  640. }
  641.  
  642. function videoZoom(){
  643.     if("false"==theme.loadPreference("vidSnapper")){
  644.         mediacenter.videoZoom = 50;
  645.     }
  646.     if(mediacenter.videoZoom < 76){
  647.         mediacenter.videoZoom = 100;
  648.     }else if(mediacenter.videoZoom <101){
  649.         mediacenter.videoZoom = 150;
  650.     }else if(mediacenter.videoZoom < 156){
  651.         mediacenter.videoZoom = 200;
  652.     }else{
  653.         mediacenter.videoZoom = 75;
  654.     }
  655.     SnapToVideo();
  656.     updateZoomToolTip();
  657. }
  658.  
  659. function updateZoomToolTip(){
  660.  
  661.     vidZoom.upToolTip = vidZoomIn.toolTip + mediacenter.videoZoom + vidZoomMid.toolTip;
  662.  
  663.     if(mediacenter.videoZoom < 76){
  664.         nextZoom = 100;
  665.     }else if(mediacenter.videoZoom <101){
  666.         nextZoom = 150;
  667.     }else if(mediacenter.videoZoom < 156){
  668.         nextZoom = 200;
  669.     }else{
  670.         nextZoom = 75;
  671.     }
  672.  
  673.     vidZoom.upToolTip += nextZoom + vidZoomOut.toolTip;
  674.     
  675.     if("false"==theme.loadPreference("vidSnapper")){
  676.         vidZoom.upToolTip = vidSetTip.toolTip;
  677.     }
  678. }
  679.  
  680. function SnapToVideo(){
  681.  
  682.     theme.savePreference("vidSnapper" , "true");
  683.  
  684.     var zoom = mediacenter.videoZoom;
  685.     var viewWidth = (player.currentMedia.imageSourceWidth * (zoom/100.00));
  686.     var viewHeight = (player.currentMedia.imageSourceHeight * (zoom/100.00));
  687.  
  688.     view.width = viewWidth + 28;
  689.     view.height = viewHeight + 147;
  690. }
  691.  
  692. function checkSnapStatus(){
  693.     if(player.openState!=13) return;
  694.     if("false"==theme.loadPreference("vidSnapper")){
  695.         loadVidSize();
  696.     }else{
  697.         SnapToVideo();
  698.     }
  699. }
  700.  
  701. function checkVideoPlayerState(){
  702.     if (player){
  703.         switch (player.playState){
  704.             
  705.             case 3:     //playing
  706.                 if(!player.currentMedia.ImageSourceWidth>0){
  707.                     theme.savePreference('vidViewer', "false");
  708.                     view.close();
  709.                     break;
  710.                 }
  711.                 vidBack.visible = false;
  712.                 videoFrame.visible = true;
  713.                 if(!player.fullScreen){
  714.                     checkSnapStatus();
  715.                 }
  716.                 break;
  717.             case 8:
  718.                 return;
  719.                 break;
  720.             }
  721.             vidResize.enabled = true;
  722.             vidZoom.enabled = true;
  723.         }
  724.  
  725.     if (!player.controls.isAvailable("Stop")) {
  726.         videoFrame.visible = false;
  727.         vidResize.enabled = false;
  728.         vidZoom.enabled = false;
  729.         vidBack.visible = true;
  730.         view.width = 194;
  731.         view.height = 259;
  732.     }
  733. }
  734.  
  735. function toggleVidDrawer(){
  736.     if(!drawerStatus){
  737.         vidDrawer.moveTo(0,view.height-96,500);
  738.         vidDrawerFrame.visible = true;
  739.         vidDrawerButton.down = true;
  740.         drawerStatus = !drawerStatus;
  741.     }else{
  742.         vidDrawer.moveTo(0,view.height-173,500);
  743.         drawerStatus = !drawerStatus;
  744.     }
  745. }
  746.  
  747. function checkVidDrawer(){
  748.     drawerStatus = drawerStatus;
  749.     vidDrawerFrame.visible = drawerStatus;
  750. }
  751.  
  752. function checkVidViewSize(){
  753.     vidBotTile.width = (view.width / 2) + 48;
  754. }
  755.  
  756.  
  757. function sliderKey(event,id,val)
  758. {
  759.     switch(event.keyCode){
  760.         case 39:
  761.         case 38: // up
  762.             eval(id + "+=" + val);
  763.             break;
  764.         case 40: // down
  765.         case 37:
  766.             eval(id + "-=" + val);
  767.             break;
  768.     }
  769. }
  770.