home *** CD-ROM | disk | FTP | other *** search
/ Chip 2009 November / Chip_2009.11_CD.iso / Chip_WPI / WPIScripts / main.js < prev    next >
Encoding:
JavaScript  |  2007-06-13  |  10.2 KB  |  522 lines

  1. //
  2. // Date Last Modified: Thursday, November 09, 2006
  3. //
  4. // Modified By: Mark Ritter (mritter)
  5. //
  6.  
  7.  
  8. function CheckThemeVersion()
  9. {
  10.     position="main.js";
  11.     whatfunc="CheckThemeVersion()";
  12.  
  13.     var line=new String();    
  14.     var num=1, success=true;
  15.     var txt;
  16.  
  17.     if (!FileExists(wpipath + "\\Themes\\" + Theme + "\\wpi.htm"))
  18.     {
  19.         alert("'"+Theme+"' theme does not exist.\n\nSwitching to 'Glossy', the default theme.");
  20.         Theme='Glossy';
  21.  
  22.         return false;
  23.     }
  24.  
  25.     try 
  26.     {
  27.         tf = fso.OpenTextFile(wpipath + "\\Themes\\" + Theme + "\\wpi.htm", 1);
  28.         while (!tf.AtEndOfStream && num<4)
  29.         {
  30.             line = tf.ReadLine();
  31.             if (num==3 && line != '<meta content="WPI Theme 5.5+">')
  32.             {
  33.                 txt=("'" + Theme + "' is not a v5.5+ compatible theme.");
  34.                 if (AtStartUp)
  35.                 {
  36.                     txt += "\n\nSwitching to 'Glossy', the default theme.";
  37.                     Theme='Glossy';
  38.                 }
  39.                 alert(txt);
  40.                 success=false;
  41.             }
  42.             num++;
  43.         }
  44.     }
  45.     catch(ex) 
  46.     { ;    }
  47.     finally 
  48.     {    
  49.         tf.Close(); 
  50.     }
  51.  
  52.     return success;
  53. }
  54.  
  55.  
  56. function LoadThemedContent()
  57. {
  58.     position="main.js";
  59.     whatfunc="LoadThemedContent()";
  60.  
  61.     if (RandomTheme)
  62.     {
  63.         GetThemes();
  64.         Theme=ThemesArray[Math.floor(Math.random()*(ThemesArray.length))];
  65.     }
  66.  
  67.     if (!CheckThemeVersion())
  68.     {
  69.         if (AtStartUp)
  70.         {
  71.             if (!CheckThemeVersion())
  72.             {
  73.                 if (AtStartUp)
  74.                 {
  75.                     alert("'Glossy' theme could not be loaded.  Re-install the theme.");
  76.  
  77.                     return false;
  78.                 }
  79.             }            
  80.         }    
  81.         else
  82.             return false;
  83.     }
  84.  
  85.     try 
  86.     {
  87.         tf = fso.OpenTextFile(wpipath + "\\Themes\\" + Theme + "\\wpi.htm", 1);
  88.         while (!tf.AtEndOfStream)
  89.         {
  90.             line = tf.ReadAll();
  91.             document.write(line);
  92.         }
  93.     }
  94.     catch(ex) 
  95.     { 
  96.         alert("LoadThemeContent() error:"+ex.message); 
  97.     }
  98.     finally 
  99.     {    
  100.         tf.Close(); 
  101.     }
  102.  
  103.     SetupTips();
  104.  
  105.     return true;
  106. }
  107.  
  108.  
  109. function HideLayers()
  110. {
  111.     position="main.js";
  112.     whatfunc="HideLayers()";
  113.  
  114.     try
  115.      {
  116.          for (var i=0; i<document.all.layergroup.childNodes.length; i++)
  117.          {
  118.              var node=document.all.layergroup.childNodes[i];
  119.  
  120.             if (!node.id || node.id.substr(0,5) != "layer") 
  121.                 continue;
  122.              node.style.display='none';
  123.         }
  124.     } 
  125.     catch(de) 
  126.     { ; }
  127. }    
  128.  
  129.  
  130. function ShowMain()
  131. {
  132.     position="main.js";
  133.     whatfunc="ShowMain()";
  134.  
  135.     ManualSection="Main";
  136.  
  137.     HideLayers();
  138.     document.getElementById("InstallButton").style.visibility = 'visible';
  139.     document.getElementById("layerboxes").style.display = 'block';
  140. }
  141.  
  142.  
  143. function ToggleSource()
  144. {
  145.     position="main.js";
  146.     whatfunc="ToggleSource()";
  147.  
  148.     if (document.getElementById("layersource").style.display == 'none')
  149.         ShowSource(); 
  150.     else
  151.         HideSource();    
  152. }
  153.  
  154.  
  155. function ShowSource()
  156. {
  157.     position="main.js";
  158.     whatfunc="ShowSource()";
  159.  
  160.     var SourceLines = new Array(); 
  161.     var TextLines = '<table border="0"><tr><td style="font-family:arial; font-size:x-small;">';
  162.     var TextSource = '';
  163.     var LongestLine = 0;
  164.  
  165.     document.getElementById("layersource").innerHTML = "";
  166.     document.getElementById("InstallButton").style.visibility = 'hidden'; 
  167.  
  168.     SourceLines = (document.firstChild.innerHTML ).replace(/<\/textarea/gi, '<textarΘa').split('\n');
  169.     for (aux in SourceLines)
  170.     {
  171.         TextLines += (aux < 9 ? '0' : '') + (aux < 99 ? '0' : '') + (parseInt(aux) + 1) + '\n';
  172.         TextSource += SourceLines[aux] + '\n'; 
  173.         LongestLine = Math.max(LongestLine, SourceLines[aux].length);
  174.     }
  175.     HideLayers();
  176.     document.getElementById("layersource").innerHTML = TextLines + '</td><td style="font-family:verdana;font-size:x-small;"><textarea cols="' + LongestLine + '" rows="' + SourceLines.length + '" readonly>' + TextSource + '</textarea></td></tr></table>';
  177.     document.getElementById("layersource").style.display = 'block';
  178. }
  179.  
  180.  
  181. function HideSource()
  182. {
  183.     position="main.js";
  184.     whatfunc="HideSource()";
  185.  
  186.     ShowMain();
  187. }
  188.  
  189.  
  190. function ToggleManual()
  191. {
  192.     position="main.js";
  193.     whatfunc="ToggleManual()";
  194.  
  195.     if (document.getElementById("layermanual").style.display == 'none')
  196.         ShowManual(); 
  197.     else
  198.         HideManual();    
  199. }
  200.  
  201.  
  202. function ShowManual()
  203. {
  204.     position="main.js";
  205.     whatfunc="ShowManual()";
  206.  
  207.     var txt=new String(); txt = "";
  208.  
  209.     strFile = wpipath + "\\Manual\\manual.htm";
  210.     if (!FileExists(strFile))
  211.     {
  212.         alert(getText(errCouldNotOpenFile)+" '"+strFile+"'.");
  213.         HideManual();
  214.  
  215.         return;
  216.     }
  217.     try 
  218.     {
  219.         tf = fso.OpenTextFile(strFile, 1);
  220.         while (!tf.AtEndOfStream)
  221.             txt = tf.ReadAll();
  222.     }
  223.     catch (ex) 
  224.     { ; }
  225.     finally 
  226.     {    
  227.         tf.Close(); 
  228.     }
  229.     
  230.     HideLayers();
  231.     document.getElementById("layermanual").innerHTML = txt;
  232.     document.getElementById("txtWPIManual").innerHTML = getText(txtWPIManual);
  233.     document.getElementById("txtExpandAll").innerHTML = getText(txtExpandAll);
  234.     document.getElementById("txtCollapseAll").innerHTML = getText(txtCollapseAll);
  235.  
  236.     document.getElementById("InstallButton").style.visibility = 'hidden';
  237.     document.getElementById("layermanual").style.display = 'block';
  238.  
  239.     ManualTree=new dhtmlXTreeObject(document.getElementById('manual_toc'),"100%","100%",0);
  240.     ManualTree.setImagePath("./Manual/imgs/");
  241.     ManualTree.setOnClickHandler(onManualClick);
  242.     ManualTree.enableTreeLines(true);
  243.     ManualTree.loadXML("./Manual/toc.xml")
  244.  
  245.     if (ManualSection=="Options")
  246.     {
  247.         var tab=optionsTabs.getActiveTab();
  248.         if (tab=="Tab1")
  249.             ManualTree.selectItem("tab_interface",1,0);
  250.         else if (tab=="Tab2")
  251.             ManualTree.selectItem("tab_installer",1,0);
  252.         else if (tab=="Tab3")
  253.             ManualTree.selectItem("tab_audioplayer",1,0);
  254.         else if (tab=="Tab4")
  255.             ManualTree.selectItem("tab_tools",1,0);
  256.         else
  257.             ManualTree.selectItem("tab_interface",1,0);
  258.     }
  259.     else if (ManualSection=="Config")
  260.         ManualTree.selectItem("navigation",1,0);
  261.     else
  262.         ManualTree.selectItem("what_is_wpi",1,0);
  263. }    
  264.  
  265.  
  266. function onManualClick(id)
  267. {
  268.     position="main.js";
  269.     whatfunc="onManualClick()";
  270.  
  271.     strFile = Manual_getFile(id) || "main.htm";
  272.  
  273.     if (strFile != "")
  274.     {
  275.         if (!ManualTree.getUserData(id,"type"))
  276.         {
  277.             var txt=new String(); txt = "";
  278.  
  279.             strFile = wpipath + "\\Manual\\"+strFile;
  280.             if (!FileExists(strFile))
  281.             {
  282.                 alert(getText(errCouldNotOpenFile)+" '"+strFile+"'.");
  283.                 HideManual();
  284.  
  285.                 return;
  286.             }
  287.             try 
  288.             {
  289.                 tf = fso.OpenTextFile(strFile, 1);
  290.                 while (!tf.AtEndOfStream)
  291.                     txt = tf.ReadAll();
  292.             }
  293.             catch (ex) 
  294.             { ; }
  295.             finally 
  296.             {    
  297.                 tf.Close(); 
  298.             }
  299.  
  300.             document.getElementById("manual_content").innerHTML=txt;
  301.             document.getElementById("manual_content").document.location="#"+id;
  302.         }
  303.     }
  304. }
  305.  
  306.  
  307. function Manual_getFile(id)
  308. {
  309.     position="main.js";
  310.     whatfunc="Manual_getFile()";
  311.  
  312.     while(!ManualTree.getUserData(id,"file") && ManualTree.getLevel(id)>0)
  313.         id=ManualTree.getParentId(id)
  314.  
  315.     return ManualTree.getUserData(id,"file");
  316. }
  317.  
  318.  
  319. function HideManual()
  320. {
  321.     position="main.js";
  322.     whatfunc="HideManual()";
  323.  
  324.     ShowMain();
  325. }
  326.  
  327.  
  328. function ToggleAboutWPI()
  329. {
  330.     position="main.js";
  331.     whatfunc="ToggleAboutWPI()";
  332.  
  333.     if (document.getElementById("layeraboutwpi").style.display == 'none')
  334.         ShowAboutWPI(); 
  335.     else
  336.         HideAboutWPI();    
  337. }
  338.  
  339.  
  340. function ShowAboutWPI()
  341. {
  342.     position="main.js";
  343.     whatfunc="ShowAboutWPI()";
  344.  
  345.     var txt=new String(); txt = "";
  346.  
  347.     strFile = wpipath + "\\Common\\aboutwpi.htm";
  348.     if (!FileExists(strFile))
  349.     {
  350.         alert(getText(errCouldNotOpenFile)+" '"+strFile+"'.");
  351.         HideAboutWPI();
  352.     }
  353.     try 
  354.     {
  355.         tf = fso.OpenTextFile(strFile, 1);
  356.         while (!tf.AtEndOfStream)
  357.             txt = tf.ReadAll();
  358.     }
  359.     catch (ex) 
  360.     { ; }
  361.     finally 
  362.     {    
  363.         tf.Close(); 
  364.     }
  365.     
  366.     HideLayers();
  367.     document.getElementById("layeraboutwpi").innerHTML = txt;
  368.     document.getElementById("InstallButton").style.visibility = 'hidden';
  369.     document.getElementById("layeraboutwpi").style.display = 'block';
  370. }    
  371.  
  372.  
  373. function HideAboutWPI()
  374. {
  375.     position="main.js";
  376.     whatfunc="HideAboutWPI()";
  377.  
  378.     ShowMain();
  379. }
  380.  
  381.  
  382. function ToggleGenUIDImage(id,state)
  383. {
  384.     position="main.js";
  385.     whatfunc="ToggleGenUIDImage()";
  386.  
  387.     switch (state)
  388.     {
  389.         case 0:        
  390.             document.getElementById(id).src = './Themes/'+Theme+'/GenUID_Out.jpg';
  391.             break;
  392.  
  393.         case 1:
  394.             document.getElementById(id).src = './Themes/'+Theme+'/GenUID_Over.jpg';
  395.             break;
  396.  
  397.         case 2:    
  398.             document.getElementById(id).src = './Themes/'+Theme+'/GenUID_Down.jpg';
  399.             break;
  400.  
  401.         case 3:    
  402.             document.getElementById(id).src = './Themes/'+Theme+'/GenUID_Disabled.jpg';
  403.             break;
  404.     }
  405. }    
  406.  
  407.  
  408. function ToggleFolderImage(id,state)
  409. {
  410.     position="main.js";
  411.     whatfunc="ToggleFolderImage()";
  412.  
  413.     switch (state)
  414.     {
  415.         case 0:        
  416.             document.getElementById(id).src = './Themes/'+Theme+'/Folder_Out.jpg';
  417.             break;
  418.  
  419.         case 1:
  420.             document.getElementById(id).src = './Themes/'+Theme+'/Folder_Over.jpg';
  421.             break;
  422.  
  423.         case 2:    
  424.             document.getElementById(id).src = './Themes/'+Theme+'/Folder_Down.jpg';
  425.             break;
  426.  
  427.         case 3:    
  428.             document.getElementById(id).src = './Themes/'+Theme+'/Folder_Disabled.jpg';
  429.             break;
  430.     }
  431. }    
  432.  
  433.  
  434. function ToggleUSSFImage(id,state)
  435. {
  436.     position="main.js";
  437.     whatfunc="ToggleUSSFImage()";
  438.  
  439.     switch (state)
  440.     {
  441.         case 0:        
  442.             document.getElementById(id).src = './Themes/'+Theme+'/USSF_Out.jpg';
  443.             break;
  444.  
  445.         case 1:
  446.             document.getElementById(id).src = './Themes/'+Theme+'/USSF_Over.jpg';
  447.             break;
  448.  
  449.         case 2:    
  450.             document.getElementById(id).src = './Themes/'+Theme+'/USSF_Down.jpg';
  451.             break;
  452.  
  453.         case 3:    
  454.             document.getElementById(id).src = './Themes/'+Theme+'/USSF_Disabled.jpg';
  455.             break;
  456.     }
  457. }    
  458.  
  459.  
  460. function ToggleDefaultImage(id,state)
  461. {
  462.     position="main.js";
  463.     whatfunc="ToggleDefaultImage()";
  464.  
  465.     switch (state)
  466.     {
  467.         case 0:        
  468.             document.getElementById(id).src = './Themes/'+Theme+'/DefaultImage_Out.jpg';
  469.             break;
  470.  
  471.         case 1:
  472.             document.getElementById(id).src = './Themes/'+Theme+'/DefaultImage_Over.jpg';
  473.             break;
  474.  
  475.         case 2:    
  476.             document.getElementById(id).src = './Themes/'+Theme+'/DefaultImage_Down.jpg';
  477.             break;
  478.  
  479.         case 3:    
  480.             document.getElementById(id).src = './Themes/'+Theme+'/DefaultImage_Disabled.jpg';
  481.             break;
  482.     }
  483. }    
  484.  
  485.  
  486. function RegKeyExists(KeyBase)
  487. {
  488.     position="core.js";
  489.     whatfunc="RegKeyExists()";
  490.  
  491.     try
  492.     {
  493.         WshShell.RegRead(KeyBase);
  494.  
  495.         return true;
  496.     } 
  497.     catch (exc) 
  498.     {
  499.         return false;
  500.     }
  501. }
  502.  
  503.  
  504. function RegKeyValue(KeyBase)
  505. {
  506.     position="core.js";
  507.     whatfunc="RegKeyValue()";
  508.  
  509.     var value;
  510.  
  511.     try
  512.     {
  513.         value=WshShell.RegRead(KeyBase);
  514.  
  515.         return value;
  516.     } 
  517.     catch (exc) 
  518.     {
  519.         return null;
  520.     }
  521. }
  522.