home *** CD-ROM | disk | FTP | other *** search
/ Chip 2009 November / Chip_2009.11_CD.iso / Chip_WPI / WPIScripts / optionswizard.js < prev    next >
Encoding:
JavaScript  |  2006-11-09  |  46.6 KB  |  1,513 lines

  1. //
  2. // Date Last Modified: September 30, 2006
  3. //
  4. // Modified By: Mark Ritter (mritter)
  5. //
  6.  
  7.  
  8.     // Temporary solution
  9.     var FoundOldStyle=false;
  10.  
  11.  
  12. function CreateOptionsPage()
  13. {
  14.     position="optionswizard.js";
  15.     whatfunc="CreateOptionsPage()";
  16.  
  17.     var txt=new String(); txt="";
  18.  
  19.     strFile=wpipath + "\\Common\\optionswizardtemplate.htm";
  20.     if (!FileExists(strFile))
  21.     {
  22.         alert(getText(errCouldNotOpenFile)+" '"+strFile+"'.");
  23.         ExitWPI();
  24.     }
  25.     try 
  26.     {
  27.         tf=fso.OpenTextFile(strFile, 1);        
  28.         while (!tf.AtEndOfStream)
  29.             txt=tf.ReadAll();
  30.     }
  31.     catch (ex) 
  32.     { ; }
  33.     finally 
  34.     {    
  35.         tf.Close(); 
  36.     }
  37.     document.getElementById("layeroptions").innerHTML=txt;
  38. //
  39.     txt="";
  40.     strFile=wpipath + "\\Common\\optionswizardtemplate_interface.htm";
  41.     if (!FileExists(strFile))
  42.     {
  43.         alert(getText(errCouldNotOpenFile)+" '"+strFile+"'.");
  44.         ExitWPI();
  45.     }
  46.     try 
  47.     {
  48.         tf=fso.OpenTextFile(strFile, 1);        
  49.         while (!tf.AtEndOfStream)
  50.             txt=tf.ReadAll();
  51.     }
  52.     catch (ex) 
  53.     { ; }
  54.     finally 
  55.     {    
  56.         tf.Close(); 
  57.     }
  58.     document.getElementById("tabtabInterface").innerHTML=txt;
  59. //
  60.     txt="";
  61.     strFile=wpipath + "\\Common\\optionswizardtemplate_installer.htm";
  62.     if (!FileExists(strFile))
  63.     {
  64.         alert(getText(errCouldNotOpenFile)+" '"+strFile+"'.");
  65.         ExitWPI();
  66.     }
  67.     try 
  68.     {
  69.         tf=fso.OpenTextFile(strFile, 1);        
  70.         while (!tf.AtEndOfStream)
  71.             txt=tf.ReadAll();
  72.     }
  73.     catch (ex) 
  74.     { ; }
  75.     finally 
  76.     {    
  77.         tf.Close(); 
  78.     }
  79.     document.getElementById("tabtabInstaller").innerHTML=txt;
  80. //
  81.     txt="";
  82.     strFile=wpipath + "\\Common\\optionswizardtemplate_audio.htm";
  83.     if (!FileExists(strFile))
  84.     {
  85.         alert(getText(errCouldNotOpenFile)+" '"+strFile+"'.");
  86.         ExitWPI();
  87.     }
  88.     try 
  89.     {
  90.         tf=fso.OpenTextFile(strFile, 1);        
  91.         while (!tf.AtEndOfStream)
  92.             txt=tf.ReadAll();
  93.     }
  94.     catch (ex) 
  95.     { ; }
  96.     finally 
  97.     {    
  98.         tf.Close(); 
  99.     }
  100.     document.getElementById("tabtabAudioPlayer").innerHTML=txt;
  101. //
  102.     txt="";
  103.     strFile=wpipath + "\\Common\\optionswizardtemplate_tools.htm";
  104.     if (!FileExists(strFile))
  105.     {
  106.         alert(getText(errCouldNotOpenFile)+" '"+strFile+"'.");
  107.         ExitWPI();
  108.     }
  109.     try 
  110.     {
  111.         tf=fso.OpenTextFile(strFile, 1);        
  112.         while (!tf.AtEndOfStream)
  113.             txt=tf.ReadAll();
  114.     }
  115.     catch (ex) 
  116.     { ; }
  117.     finally 
  118.     {    
  119.         tf.Close(); 
  120.     }
  121.     document.getElementById("tabtabTools").innerHTML=txt;
  122. //
  123. /*
  124.     txt="";
  125.     strFile=wpipath + "\\Common\\optionswizardtemplate_misc.htm";
  126.     if (!FileExists(strFile))
  127.     {
  128.         alert(getText(errCouldNotOpenFile)+" '"+strFile+"'.");
  129.         ExitWPI();
  130.     }
  131.     try 
  132.     {
  133.         tf=fso.OpenTextFile(strFile, 1);        
  134.         while (!tf.AtEndOfStream)
  135.             txt=tf.ReadAll();
  136.     }
  137.     catch (ex) 
  138.     { ; }
  139.     finally 
  140.     {    
  141.         tf.Close(); 
  142.     }
  143.      document.getElementById("tabtabMiscellaneous").innerHTML=txt;
  144. */
  145.  
  146.     LocalizeOptionsTexts();
  147.  
  148.     optionsTabs=new dhtmlXTabBar("OptionsTabs","top");
  149.     optionsTabs.setImagePath("./Common/imgs/");
  150.  
  151.     optionsTabs.setStyle("winDflt");
  152.     optionsTabs.setSkinColors("#FCFBFC","#F4F3EE");
  153.  
  154.     optionsTabs.addTab("Tab1",getText(tabInterface),"100px");
  155.     optionsTabs.setContent("Tab1","tabtabInterface");
  156.     optionsTabs.addTab("Tab2",getText(tabInstaller),"100px");
  157.     optionsTabs.setContent("Tab2","tabtabInstaller");
  158.     optionsTabs.addTab("Tab3",getText(tabAudioPlayer),"100px");
  159.     optionsTabs.setContent("Tab3","tabtabAudioPlayer");
  160.     optionsTabs.addTab("Tab4",getText(tabTools),"100px");
  161.     optionsTabs.setContent("Tab4","tabtabTools");
  162. //    optionsTabs.addTab("Tab5",getText(tabMiscellaneous),"100px");
  163. //    optionsTabs.setContent("Tab5","tabtabMiscellaneous");
  164.  
  165.     optionsTabs.setTabActive("Tab1");
  166. }
  167.  
  168.  
  169. function LocalizeOptionsTexts()
  170. {
  171.     position="optionswizard.js";
  172.     whatfunc="LocalizeOptionsTexts()";
  173.  
  174.     document.getElementById("legLanguage").innerHTML=getText(lblLanguage);
  175.     document.getElementById("legSelectedTheme").innerHTML=getText(lblSelectedTheme);
  176.     document.getElementById("lblRandomTheme").innerHTML=getText(lblRandomTheme);
  177.     document.getElementById("legScreenResolution").innerHTML=getText(lblScreenResolution);
  178.     document.getElementById("txtScreenResolution").innerHTML=getText(txtScreenResolution);
  179.     document.getElementById("legCustomBgPicture").innerHTML=getText(lblCustomBgPicture);
  180.     document.getElementById("txtCustomBgPicture").innerHTML=getText(txtCustomBgPicture);
  181.     document.getElementById("legToolTipStyle").innerHTML=getText(lblToolTipStyle);
  182.     document.getElementById("txtToolTipStyle").innerHTML=getText(txtToolTipStyle);
  183.     document.getElementById("lblShowToolTips").innerHTML=getText(lblShowToolTips);
  184.     document.getElementById("lblUseTransitions").innerHTML=getText(lblUseTransitions);
  185.     document.getElementById("lblIndentText").innerHTML=getText(lblIndentText);
  186.     document.getElementById("legOptionsInt").innerHTML=getText(lblOptions);
  187.     document.getElementById("lblShowExtraButtons").innerHTML=getText(lblShowExtraButtons);
  188.     document.getElementById("lblDoNotShowIfCD").innerHTML=getText(lblDoNotShowIfCD);
  189.     document.getElementById("lblUSSFSilentMode").innerHTML=getText(lblUSSFSilentMode);
  190.  
  191.     document.getElementById("legConfigChoices").innerHTML=getText(lblConfigChoices);
  192.     document.getElementById("txtConfigChoices").innerHTML=getText(txtConfigChoices);
  193.     document.getElementById("lblUseMultipleDefaults").innerHTML=getText(lblUseMultipleDefaults);
  194.     document.getElementById("legCheckOnLoad").innerHTML=getText(lblCheckOnLoad);
  195.     document.getElementById("legNumberOfColumns").innerHTML=getText(lblNumberOfColumns);
  196.     document.getElementById("legCatSortOrder").innerHTML=getText(lblCatSortOrder);
  197.     document.getElementById("txtCatSortOrder").innerHTML=getText(txtCatSortOrder);
  198.     document.getElementById("legOptionsIns").innerHTML=getText(lblOptions);
  199.     document.getElementById("lblReOpenAfterInstall").innerHTML=getText(lblReOpenAfterInstall);
  200.     document.getElementById("lblDisableCatCheckBox").innerHTML=getText(lblDisableCatCheckBox);
  201.     document.getElementById("lblSortWithinCats").innerHTML=getText(lblSortWithinCats);
  202.     document.getElementById("lblDisableDepsNotMet").innerHTML=getText(lblDisableDepsNotMet);
  203.     document.getElementById("lblShowScrollBar").innerHTML=getText(lblShowScrollBar);
  204.     document.getElementById("lblNoColumnBreak").innerHTML=getText(lblNoColumnBreak);
  205.     document.getElementById("lblInstallByCategory").innerHTML=getText(lblInstallByCategory);
  206.     document.getElementById("lblForceInstallOnExit").innerHTML=getText(lblForceInstallOnExit);
  207.     document.getElementById("lblDisableIfDoGray").innerHTML=getText(lblDisableIfDoGray);
  208.     document.getElementById("legTimer").innerHTML=getText(lblTimer);
  209.     document.getElementById("lblUseCountDownTimer").innerHTML=getText(lblUseCountDownTimer);
  210.     document.getElementById("txtCountDownTimerSecs").innerHTML=getText(txtSeconds);
  211.  
  212.     document.getElementById("lblStartBeepAtTMinus").innerHTML=getText(lblStartBeepAtTMinus);
  213.     document.getElementById("txtStartBeepAtSecs").innerHTML=getText(txtSeconds);
  214.  
  215.     document.getElementById("legInstaller").innerHTML=getText(tabInstaller);
  216.     document.getElementById("lblExtraXForWindow").innerHTML=getText(lblExtraXForWindow);
  217.     document.getElementById("txtXPixelsMax").innerHTML=getText(txtXPixelsMax);
  218.     document.getElementById("lblExtraYForWindow").innerHTML=getText(lblExtraYForWindow);
  219.     document.getElementById("txtYPixelsMax").innerHTML=getText(txtYPixelsMax);
  220.  
  221.     document.getElementById("legInsAudioPlayer").innerHTML=getText(tabAudioPlayer);
  222.     document.getElementById("lblShowInstallAP").innerHTML=getText(lblShowInstallAP);
  223.     document.getElementById("lblInstallFilesToPlay").innerHTML=getText(lblInstallFilesToPlay);
  224.     document.getElementById("legInsControls").innerHTML=getText(lblControls);
  225.     document.getElementById("Install_AudioTop").value=getText(btnTop);
  226.     document.getElementById("Install_AudioUp").value=getText(btnUp);
  227.     document.getElementById("Install_AudioDown").value=getText(btnDown);
  228.     document.getElementById("Install_AudioBottom").value=getText(btnBottom);
  229.     document.getElementById("Install_AudioAdd").value=getText(btnAdd);
  230.     document.getElementById("Install_AudioDelete").value=getText(btnDelete);
  231.  
  232.     document.getElementById("legMonitorResolution").innerHTML=getText(lblMonitorResolution);
  233.     document.getElementById("legMonitorColorDepth").innerHTML=getText(lblMonitorColorDepth);
  234.     document.getElementById("legMonitorRefreshRate").innerHTML=getText(lblMonitorRefreshRate);
  235.     document.getElementById("legInstallFonts").innerHTML=getText(lblInstallFonts);
  236.     document.getElementById("txtInstallFonts").innerHTML=getText(txtInstallFonts);
  237.     document.getElementById("legExecuteBefore").innerHTML=getText(lblExecuteBefore);
  238.     document.getElementById("txtExecuteBefore").innerHTML=getText(txtExecuteBefore);
  239.     document.getElementById("legExecuteAfter").innerHTML=getText(lblExecuteAfter);
  240.     document.getElementById("txtExecuteAfter").innerHTML=getText(txtExecuteAfter);
  241.     document.getElementById("legRestartComputer").innerHTML=getText(lblRestartComputer);
  242.     document.getElementById("txtRestartComputer").innerHTML=getText(txtRestartComputer);
  243.     document.getElementById("legRestartComputerType").innerHTML=getText(lblRestartComputerType);
  244.     document.getElementById("radioRestart").innerHTML=getText(optRestart);
  245.     document.getElementById("radioShutDown").innerHTML=getText(optShutDown);
  246.     document.getElementById("legRestartDelay").innerHTML=getText(lblRestartDelay);
  247.     document.getElementById("txtSeconds").innerHTML=getText(txtSeconds);
  248.     document.getElementById("legDoNotLoadDesktop").innerHTML=getText(lblDoNotLoadDesktop);
  249.     document.getElementById("txtDoNotLoadDesktop").innerHTML=getText(txtDoNotLoadDesktop);
  250.     document.getElementById("legLogInstallProcess").innerHTML=getText(lblLogInstallProcess);
  251.     document.getElementById("txtLogInstallProcess").innerHTML=getText(txtLogInstallProcess);
  252.  
  253.  
  254.     document.getElementById("optionsNewOptions").value=getText(btnNewOptions);
  255.     document.getElementById("optionsRead").value=getText(btnRead);
  256.     document.getElementById("optionsSave").value=getText(btnSave);
  257.     document.getElementById("optionsSaveAs").value=getText(btnSaveAs);
  258.     document.getElementById("optionsExit").value=getText(btnExit);
  259.  
  260.  
  261.     document.getElementById("Language").options[0].text=getText(optBySystemDefault);
  262.  
  263.     document.getElementById("Resolution").options[0].text=getText(optBySystemDefault);
  264.  
  265.     document.getElementById("CheckOnLoad").options[0].text=getText(optDefault);
  266.     document.getElementById("CheckOnLoad").options[1].text=getText(optAll);
  267.     document.getElementById("CheckOnLoad").options[2].text=getText(optNone);
  268.  
  269.     document.getElementById("MonitorResolution").options[0].text=getText(optBySystemDefault);
  270.     document.getElementById("MonitorDepth").options[0].text=getText(optBySystemDefault);
  271.     document.getElementById("MonitorDepth").options[6].text=getText(optMaximum);
  272.     document.getElementById("MonitorRefresh").options[0].text=getText(optBySystemDefault);
  273.     document.getElementById("MonitorRefresh").options[11].text=getText(optMaximum);
  274. }
  275.  
  276.  
  277. function GetThemes()
  278. {
  279.     position="optionswizard.js";
  280.     whatfunc="GetThemes()";
  281.  
  282.     var f, fc, s;
  283.     var ta=0;
  284.  
  285.     ThemesArray=[];
  286.  
  287.     f=fso.GetFolder(wpipath + "\\Themes\\");
  288.     fc=new Enumerator(f.SubFolders);
  289.     s=new String();
  290.     for (; !fc.atEnd(); fc.moveNext())
  291.     {
  292.         s="";
  293.  
  294.         var opt=document.createElement("option");
  295.  
  296.         s += fc.item();
  297.         s=s.substr(s.lastIndexOf("\\")+1);
  298.         if (!AtStartUp)
  299.         {
  300.             opt.value=s;
  301.             opt.text=s;
  302.             document.getElementById("Theme").options.add(opt);
  303.         }
  304.  
  305.         ThemesArray[ta]=s;
  306.         ta++;
  307.     }
  308. }
  309.  
  310.  
  311. function HandleThemeSelection()
  312. {
  313.     position="optionswizard.js";
  314.     whatfunc="HandleThemeSelection()";
  315.  
  316.     Theme=document.getElementById("Theme").value;
  317.     if (!CheckThemeVersion())
  318.         document.getElementById("Theme").value="Glossy";
  319.  
  320.     LoadThemeStyle();
  321. }
  322.  
  323.  
  324. function HandleRandomThemeSelection()
  325. {
  326.     position="optionswizard.js";
  327.     whatfunc="HandleRandomThemeSelection()";
  328.  
  329.     if (document.getElementById("RandomTheme").checked)
  330.     {
  331.         document.getElementById("Theme").disabled=true;
  332.         Theme=ThemesArray[Math.floor(Math.random()*(ThemesArray.length))];
  333.     }
  334.     else
  335.     {
  336.         document.getElementById("Theme").disabled=false;
  337.         Theme=document.getElementById("Theme").value;
  338.     }
  339.     
  340.     if (!CheckThemeVersion())
  341.         document.getElementById("Theme").value="Glossy";
  342. }
  343.  
  344.  
  345. function GetBgPictureName()
  346. {
  347.     position="configwizard.js";
  348.     whatfunc="GetBgPictureName()";
  349.  
  350.     var lastSlash, tempName;
  351.  
  352.     tempName=document.getElementById("BgPictureBrowse").value;
  353.     lastSlash=tempName.lastIndexOf("\\");
  354.  
  355.     BrowseName=tempName.substring(lastSlash+1,tempName.length);
  356. }
  357.  
  358.  
  359. function clearSetBgPicturePathBrowse()
  360. {
  361.     position="optionswizard.js";
  362.     whatfunc="clearSetBgPicturePathBrowse()";
  363.  
  364.     document.getElementById("div_BgPictureBrowse").innerHTML="";
  365.     document.getElementById("div_BgPictureBrowse").innerHTML='<input id="BgPictureBrowse" type="file" style="display:none;">';
  366. }
  367.  
  368.  
  369. function SetBgPicturePath()
  370. {
  371.     position="optionswizard.js";
  372.     whatfunc="SetBgPicturePath()";
  373.      
  374.     if (document.getElementById("BgPictureBrowse").value != "")
  375.     {
  376.         GetBgPictureName();
  377.         document.getElementById("BgPicture").value=BrowseName;
  378.     }
  379. }
  380.  
  381.  
  382. function HandleShowToolTipsSelection()
  383. {
  384.     position="optionswizard.js";
  385.     whatfunc="HandleShowToolTipsSelection()";
  386.  
  387.     if (document.getElementById("ShowToolTips").checked)
  388.     {
  389.         document.getElementById("style0").disabled=false;
  390.         document.getElementById("UseTransitions").disabled=false;
  391.         document.getElementById("IndentText").disabled=false;
  392.     }
  393.     else
  394.     {
  395.         document.getElementById("style0").disabled=true;
  396.         document.getElementById("UseTransitions").disabled=true;
  397.         document.getElementById("IndentText").disabled=true;
  398.     }
  399. }
  400.  
  401.  
  402. function HandleShowExtraButtonsSelection()
  403. {
  404.     position="optionswizard.js";
  405.     whatfunc="HandleShowExtraButtonsSelection()";
  406.  
  407.     if (document.getElementById("ShowExtraButtons").checked)
  408.         document.getElementById("DoNotShowIfCD").disabled=false;
  409.     else
  410.         document.getElementById("DoNotShowIfCD").disabled=true;
  411. }
  412.  
  413.  
  414. function UpdateConfigsList()
  415. {
  416.     position="optionswizard.js";
  417.     whatfunc="UpdateConfigsList()";
  418.  
  419.     var i, splits="";
  420.  
  421.     i=Configurations.length;
  422.     Configurations.splice(0,i);
  423.     
  424.     splits=document.getElementById("Configurations").value.split(",");
  425.     for (i=0; i<splits.length; i++)
  426.         Configurations.splice(i,0,splits[i]);
  427.  
  428.     document.getElementById("CheckOnLoad").options.length=4;
  429.     InsertCOLValues();
  430. }
  431.  
  432.  
  433. function InsertCOLValues()
  434. {
  435.     position="optionswizard.js";
  436.     whatfunc="InsertCOLValues()";
  437.      
  438.     for (var i=0; i<Configurations.length && Configurations[i] != ""; i++)
  439.     {
  440.         var opt=document.createElement("option");
  441.  
  442.         opt.value=Configurations[i];
  443.         opt.text=noTags(Configurations[i]);
  444.         if (CheckOnLoad==Configurations[i])
  445.             opt.selected=true;
  446.         document.getElementById("CheckOnLoad").options.add(opt);
  447.     }
  448. }
  449.  
  450.  
  451. function HandleCOLSelection()
  452. {
  453.     position="optionswizard.js";
  454.     whatfunc="HandleCOLSelection()";
  455.  
  456.     if (document.getElementById("CheckOnLoad").value=="---")
  457.     {
  458.         alert(getText(errSelectAConfig));
  459.         document.getElementById("CheckOnLoad").value="default";
  460.     }
  461. }
  462.  
  463.  
  464. function InsertSortOrderValues()
  465. {
  466.     position="configwizard.js";
  467.     whatfunc="InsertSortOrderValues()";
  468.      
  469.     var cats=GetCats();
  470.     
  471.     for (var i=1; i<cats.length; i++)
  472.     {
  473.         var opt=document.createElement("option");
  474.  
  475.         opt.value=cats[i];
  476.         opt.text=noTags(cats[i]);
  477.         document.getElementById("SelectSortOrder").options.add(opt);
  478.     }
  479. }
  480.  
  481.  
  482. function HandleSortOrderSelection()
  483. {
  484.     position="optionswizard.js";
  485.     whatfunc="HandleSortOrderSelection()";
  486.  
  487.     var txt="";
  488.  
  489.     if (document.getElementById("SelectSortOrder").value != "blank")
  490.     {
  491.         txt=document.getElementById("SortOrder").value;
  492.         if (txt != "")
  493.             txt += ",";
  494.         txt += document.getElementById("SelectSortOrder").value;
  495.         document.getElementById("SortOrder").value=txt;
  496.     }
  497.  
  498.     document.getElementById("SelectSortOrder").value="blank";
  499. }
  500.  
  501.  
  502. function HandleTimerSelection()
  503. {
  504.     position="optionswizard.js";
  505.     whatfunc="HandleTimerSelection()";
  506.  
  507.     if (document.getElementById("Timer").checked)
  508.     {
  509.         document.getElementById("Seconds").disabled=false;
  510.         document.getElementById("StartBeepAtSecs").disabled=false;
  511.     }
  512.     else
  513.     {
  514.         document.getElementById("Seconds").disabled=true;
  515.         document.getElementById("StartBeepAtSecs").disabled=true;
  516.     }
  517. }
  518.  
  519.  
  520. function HandleStartBeepAt()
  521. {
  522.     position="optionswizard.js";
  523.     whatfunc="HandleStartBeepAt()";
  524.  
  525.     StartBeepAtSecs=document.getElementById("StartBeepAtSecs").value;
  526.     if (StartBeepAtSecs<0)
  527.         StartBeepAtSecs=0;
  528.     if (StartBeepAtSecs>document.getElementById("Seconds").value)
  529.         StartBeepAtSecs=document.getElementById("Seconds").value;
  530.  
  531.     document.getElementById("StartBeepAtSecs").value=StartBeepAtSecs;
  532. }
  533.  
  534.  
  535. function HandleExtraWidth()
  536. {
  537.     position="optionswizard.js";
  538.     whatfunc="HandleExtraWidth()";
  539.  
  540.     ExtraWidth=document.getElementById("ExtraWidth").value;
  541.     if (ExtraWidth<0)
  542.         ExtraWidth=0;
  543.     if (ExtraWidth>200)
  544.         ExtraWidth=200;
  545.  
  546.     document.getElementById("ExtraWidth").value=ExtraWidth;
  547. }
  548.  
  549.  
  550. function HandleExtraHeight()
  551. {
  552.     position="optionswizard.js";
  553.     whatfunc="HandleExtraHeight()";
  554.  
  555.     ExtraHeight=document.getElementById("ExtraHeight").value;
  556.     if (ExtraHeight<0)
  557.         ExtraHeight=0;
  558.     if (ExtraHeight>100)
  559.         ExtraHeight=100;
  560.  
  561.     document.getElementById("ExtraHeight").value=ExtraHeight;
  562. }
  563.  
  564.  
  565. function HandlePlayInstallAudioSelection()
  566. {
  567.     position="optionswizard.js";
  568.     whatfunc="HandlePlayInstallSelection()";
  569.  
  570.     if (document.getElementById("PlayAudioInInstaller").checked)
  571.     {
  572.         document.getElementById("InstallAudio").disabled=false;
  573.         document.getElementById("Install_AudioTop").disabled=false;
  574.         document.getElementById("Install_AudioUp").disabled=false;
  575.         document.getElementById("Install_AudioDown").disabled=false;
  576.         document.getElementById("Install_AudioBottom").disabled=false;
  577.         document.getElementById("Install_AudioAdd").disabled=false;
  578.         document.getElementById("Install_AudioDelete").disabled=false;
  579.     }
  580.     else
  581.     {
  582.         document.getElementById("InstallAudio").disabled=true;
  583.         document.getElementById("Install_AudioTop").disabled=true;
  584.         document.getElementById("Install_AudioUp").disabled=true;
  585.         document.getElementById("Install_AudioDown").disabled=true;
  586.         document.getElementById("Install_AudioBottom").disabled=true;
  587.         document.getElementById("Install_AudioAdd").disabled=true;
  588.         document.getElementById("Install_AudioDelete").disabled=true;
  589.     }
  590. }
  591.  
  592.  
  593. function clearInstallAudioBrowse()
  594. {
  595.     position="optionswizard.js";
  596.     whatfunc="clearInstallAudioBrowse()";
  597.  
  598.     document.getElementById("div_Install_AudioBrowse").innerHTML="";
  599.     document.getElementById("div_Install_AudioBrowse").innerHTML='<input id="Install_AudioBrowse" type="file" style="display:none;">';
  600. }
  601.  
  602.  
  603. function HandleInstallAudioAdd()
  604. {
  605.     position="optionswizard.js";
  606.     whatfunc="HandleInstallAudioAdd()";
  607.  
  608.     if (document.getElementById("Install_AudioBrowse").value != "")
  609.     {
  610.         GetInstallAudioName(); 
  611.         if (AudioName != "")
  612.             AddItem('InstallAudio',AudioName,InstallAudio.length,'','','','','',false);
  613.     }
  614. }
  615.  
  616.  
  617. function GetInstallAudioName()
  618. {
  619.     position="optionswizard.js";
  620.     whatfunc="GetInstallAudioName()";
  621.  
  622.     var lastSlash, tempName;
  623.  
  624.     tempName=document.getElementById("Install_AudioBrowse").value;
  625.     lastSlash=tempName.lastIndexOf("\\");
  626.  
  627.     AudioName=tempName.substring(lastSlash+1,tempName.length);
  628. }
  629.  
  630.  
  631. function InsertInstallAudioValues()
  632. {
  633.     position="optionswizard.js";
  634.     whatfunc="InsertInstallAudioValues()";
  635.      
  636.     for (var i=0; i<InstallAudio.length; i++)
  637.     {
  638.         var opt=document.createElement("option");
  639.  
  640.         opt.value=i;
  641.         opt.text=InstallAudio[i];
  642.         document.getElementById("InstallAudio").options.add(opt);
  643.     }
  644. }
  645.  
  646.  
  647. function ExtractInstallAudioValues()
  648. {
  649.     position="optionswizard.js";
  650.     whatfunc="ExtractInstallAudioValues()";
  651.  
  652.     var i=InstallAudio.length;
  653.  
  654.     InstallAudio.splice(0,i);
  655.  
  656.     for (i=0; i<document.getElementById("InstallAudio").options.length; i++)
  657.         InstallAudio.splice(InstallAudio.length,0,document.getElementById("InstallAudio").options[i].text);
  658. }
  659.  
  660.  
  661. function HandleExecuteBeforeSelection()
  662. {
  663.     position="optionswizard.js";
  664.     whatfunc="HandleExecuteBeforeSelection()";
  665.  
  666.     if (document.getElementById("ExecuteBeforeEnabled").checked)
  667.     {
  668.         document.getElementById("ExecuteBefore").disabled=false;
  669.         document.getElementById("ExecuteBeforeShow").style.display='block';
  670.         document.getElementById("ExecuteBeforeHide").style.display='none';
  671.     }
  672.     else
  673.     {
  674.         document.getElementById("ExecuteBefore").disabled=true;
  675.         document.getElementById("ExecuteBeforeShow").style.display='none';
  676.         document.getElementById("ExecuteBeforeHide").style.display='block';
  677.     }
  678. }
  679.  
  680.  
  681. function clearExecuteBeforeBrowse()
  682. {
  683.     position="optionswizard.js";
  684.     whatfunc="clearExecuteBeforeBrowse()";
  685.  
  686.     document.getElementById("div_ExecuteBeforeBrowse").innerHTML="";
  687.     document.getElementById("div_ExecuteBeforeBrowse").innerHTML='<input id="ExecuteBeforeBrowse" type="file" style="display:none;">';
  688. }
  689.  
  690.  
  691. function SetExecuteBeforePath()
  692. {
  693.     position="optionswizard.js";
  694.     whatfunc="SetExecuteBeforePath()";
  695.      
  696.     if (document.getElementById("ExecuteBeforeBrowse").value != "")
  697.         document.getElementById("ExecuteBefore").value=document.getElementById("ExecuteBeforeBrowse").value;
  698. }
  699.  
  700.  
  701. function HandleExecuteAfterSelection()
  702. {
  703.     position="optionswizard.js";
  704.     whatfunc="HandleExecuteAfterSelection()";
  705.  
  706.     if (document.getElementById("ExecuteAfterEnabled").checked)
  707.     {
  708.         document.getElementById("ExecuteAfter").disabled=false;
  709.         document.getElementById("ExecuteAfterShow").style.display='block';
  710.         document.getElementById("ExecuteAfterHide").style.display='none';
  711.     }
  712.     else
  713.     {
  714.         document.getElementById("ExecuteAfter").disabled=true;
  715.         document.getElementById("ExecuteAfterShow").style.display='none';
  716.         document.getElementById("ExecuteAfterHide").style.display='block';
  717.     }
  718. }
  719.  
  720.  
  721. function clearExecuteAfterBrowse()
  722. {
  723.     position="optionswizard.js";
  724.     whatfunc="clearExecuteAfterBrowse()";
  725.  
  726.     document.getElementById("div_ExecuteAfterBrowse").innerHTML="";
  727.     document.getElementById("div_ExecuteAfterBrowse").innerHTML='<input id="ExecuteAfterBrowse" type="file" style="display:none;">';
  728. }
  729.  
  730.  
  731. function SetExecuteAfterPath()
  732. {
  733.     position="optionswizard.js";
  734.     whatfunc="SetExecuteAfterPath()";
  735.      
  736.     if (document.getElementById("ExecuteAfterBrowse").value != "")
  737.         document.getElementById("ExecuteAfter").value=document.getElementById("ExecuteAfterBrowse").value;
  738. }
  739.  
  740.  
  741. function HandleRestartComputerSelection()
  742. {
  743.     position="optionswizard.js";
  744.     whatfunc="HandleRestartComputerSelection()";
  745.  
  746.     if (document.getElementById("RestartComputer").checked)
  747.     {
  748.         document.getElementById("RestartType0").disabled=false;
  749.         document.getElementById("RestartType1").disabled=false;
  750.         document.getElementById("RestartSeconds").disabled=false;
  751.         document.getElementById("DoNotLoadDesktop").disabled=false;
  752.     }
  753.     else
  754.     {
  755.         document.getElementById("RestartType0").disabled=true;
  756.         document.getElementById("RestartType1").disabled=true;
  757.         document.getElementById("RestartSeconds").disabled=true;
  758.         document.getElementById("DoNotLoadDesktop").disabled=true;
  759.     }
  760. }
  761.  
  762.  
  763. function HandleLogInstallationSelection()
  764. {
  765.     position="optionswizard.js";
  766.     whatfunc="HandleLogInstallationSelection()";
  767.  
  768.     if (document.getElementById("LogInstallation").checked)
  769.     {
  770.         document.getElementById("LogPath").disabled=false;
  771.         document.getElementById("LogPathAddShow").style.display='block';
  772.         document.getElementById("LogPathAddHide").style.display='none';
  773.  
  774.         if (document.getElementById("LogPath").value=="")
  775.             document.getElementById("LogPath").value=DefaultLogPath;
  776.     }
  777.     else
  778.     {
  779.         document.getElementById("LogPath").disabled=true;
  780.         document.getElementById("LogPathAddShow").style.display='none';
  781.         document.getElementById("LogPathAddHide").style.display='block';
  782.     }
  783. }
  784.  
  785.  
  786. function clearLogPathBrowse()
  787. {
  788.     position="optionswizard.js";
  789.     whatfunc="clearLogPathBrowse()";
  790.  
  791.     document.getElementById("div_LogPathBrowse").innerHTML="";
  792.     document.getElementById("div_LogPathBrowse").innerHTML='<input id="LogPathBrowse" type="file" style="display:none;">';
  793. }
  794.  
  795.  
  796. function SetLogPathPath()
  797. {
  798.     position="optionswizard.js";
  799.     whatfunc="SetLogPathPath()";
  800.      
  801.     if (document.getElementById("LogPathBrowse").value != "")
  802.         document.getElementById("LogPath").value=document.getElementById("LogPathBrowse").value;
  803. }
  804.  
  805.  
  806. function FillInOptionsFile()
  807. {
  808.     position="optionswizard.js";
  809.     whatfunc="FillInOptionsFile()";
  810.  
  811.     document.getElementById("optionsFile").value=optionsFile;
  812. }
  813.  
  814.  
  815. function NewOptions()
  816. {
  817.     position="optionswizard.js";
  818.     whatfunc="NewOptions()";
  819.  
  820.     var temp;
  821.  
  822.     temp=prompt(getText(txtSaveOptionsAs),optionsFile);
  823.     if (temp != null)
  824.     {
  825.         optionsFile=temp;
  826.         SetOptionsPath(true); 
  827.  
  828.         OptionsDefaults();
  829.         SaveOptions();
  830.     }
  831. }
  832.  
  833.  
  834. function optionsClearReadBrowse()
  835. {
  836.     position="optionswizard.js";
  837.     whatfunc="optionsClearReadBrowse()";
  838.  
  839.     document.getElementById("div_optionsReadBrowse").innerHTML="";
  840.     document.getElementById("div_optionsReadBrowse").innerHTML='<input id="optionsReadBrowse" type="file" style="display:none;">';
  841. }
  842.  
  843.  
  844. function HandleReadOptions()
  845. {
  846.     position="optionswizard.js";
  847.     whatfunc="HandleReadOptions()";
  848.  
  849.     if (document.getElementById("optionsReadBrowse").value != "")
  850.     {
  851.         SetOptionsPath(false); 
  852.         ReadOptions();
  853.     }
  854. }
  855.  
  856.  
  857. function SetOptionsPath(mode)
  858. {
  859.     position="optionswizard.js";
  860.     whatfunc="SetOptionsPath()";
  861.  
  862.     var i, txt;
  863.  
  864.     if (!mode)
  865.     {
  866.         optionsFile=document.getElementById("optionsReadBrowse").value;
  867.  
  868.         i=optionsFile.indexOf('\\WPI\\WPIScripts\\');
  869.         if (i != -1)
  870.         {
  871.             txt="./WPIScripts/"+optionsFile.substr(i+16,optionsFile.length);
  872.             optionsFile=txt;
  873.         }
  874.     }
  875.     else
  876.     {
  877.         // Nothing for Save As... right now
  878.     }
  879.  
  880.     FillInOptionsFile();
  881. }
  882.  
  883.  
  884. function GetOptionsPath()
  885. {
  886.     position="optionswizard.js";
  887.     whatfunc="GetOptionsPath()";
  888.  
  889.     var temp;
  890.  
  891.     temp=prompt(getText(txtSaveOptionsAs),optionsFile);
  892.     if (temp != null)
  893.     {
  894.         optionsFile=temp;
  895.         SetOptionsPath(true); 
  896.         OptionsDefaults();
  897.         SaveOptions();
  898.     }
  899. }
  900.  
  901.  
  902. function OptionsDefaults()
  903. {
  904.     position="optionswizard.js";
  905.     whatfunc="OptionsDefaults()";
  906.  
  907. //
  908. // System predefined options
  909. //
  910. // Interface tab
  911.     Language='zz';
  912.     Theme='Glossy';
  913.     RandomTheme=false;
  914.     BgPicture='';
  915.     Resolution=0;
  916.  
  917.     Style[0]=["white","#000099","","","","","black","#e8e8ff","","","","","","","2","#000099","0",51,0.4,"","","","","","",""];
  918.     Style2[0]=['"white"','"#000099"','""','""','""','""','"black"','"#e8e8ff"','""','""','""','""','""','""','"2"','"#000099"','"0"','51','0.4','""','""','""','""','""','""','""'];
  919.     ShowToolTips=true;
  920.     UseTransitions=false;
  921.     IndentText=false;
  922.  
  923.     ShowExtraButtons=true;
  924.     DoNotShowIfCD=true;
  925.  
  926.     USSFSilentMode=false;
  927.  
  928. // Installer tab
  929.     Configurations=[];
  930.     ShowMultiDefault=true;
  931.     CheckOnLoad='default';
  932.     NumCols=3;
  933.     SortOrder=[];
  934.     ReOpenAfterInstall=false;
  935.     DisableCatCheckBoxes=false;
  936.     SortWithinCats=false;
  937.     DisableOnDepsNotMet=true;
  938.     AlwaysUseScrollBar=true;
  939.     DontSplitCats=true;
  940.     InstallByCategory=true;
  941.     ReallyForce=false;
  942.     DisableIfDoGray=false;
  943.  
  944.     Timer=true;
  945.     Seconds=60;
  946.     StartBeepAtSecs=10;
  947.  
  948.     ExtraWidth=0;
  949.     ExtraHeight=0;
  950.  
  951. // Audio Player tab
  952.     PlayAudioInInstaller=false;
  953.     InstallAudio=[];
  954.  
  955. // Tools tab
  956.     MonitorResolution=0;
  957.     MonitorDepth=0;
  958.     MonitorRefresh=0;
  959.  
  960.     InstallFonts=false;
  961.  
  962.     ExecuteBeforeEnabled=false;
  963.     ExecuteBefore=[''];
  964.     ExecuteAfterEnabled=false;
  965.     ExecuteAfter=[''];
  966.  
  967.     RestartComputer=false;
  968.     RestartType=0;
  969.     RestartSeconds=30;
  970.     DoNotLoadDesktop=false;
  971.  
  972.     LogInstallation=true;
  973.     LogPath=DefaultLogPath;
  974.  
  975.  
  976. // Interface tab
  977.     document.getElementById("Language").value=Language;
  978.     document.getElementById("Theme").value=Theme;
  979.     document.getElementById("RandomTheme").checked=RandomTheme;
  980.     document.getElementById("BgPicture").value=BgPicture;
  981.     document.getElementById("Resolution").value=Resolution;
  982.  
  983.     document.getElementById("style0").value=Style2[0];                    // Quoted version
  984.     document.getElementById("ShowToolTips").checked=ShowToolTips;
  985.     document.getElementById("UseTransitions").checked=UseTransitions;
  986.     document.getElementById("IndentText").checked=IndentText;
  987.  
  988.     document.getElementById("ShowExtraButtons").checked=ShowExtraButtons;
  989.     document.getElementById("DoNotShowIfCD").checked=DoNotShowIfCD;
  990.  
  991.     document.getElementById("USSFSilentMode").checked=USSFSilentMode;
  992.  
  993. // Installer tab
  994.     document.getElementById("Configurations").value=Configurations;
  995.     document.getElementById("ShowMultiDefault").checked=ShowMultiDefault;
  996.     document.getElementById("CheckOnLoad").value=CheckOnLoad;
  997.     document.getElementById("NumCols").value=NumCols; 
  998.     document.getElementById("SortOrder").value=SortOrder;
  999.     document.getElementById("ReOpenAfterInstall").checked=ReOpenAfterInstall;
  1000.     document.getElementById("DisableCatCheckBoxes").checked=DisableCatCheckBoxes;
  1001.     document.getElementById("SortWithinCats").checked=SortWithinCats;
  1002.     document.getElementById("DisableOnDepsNotMet").checked=DisableOnDepsNotMet;
  1003.     document.getElementById("AlwaysUseScrollBar").checked=AlwaysUseScrollBar;
  1004.     document.getElementById("DontSplitCats").checked=DontSplitCats;
  1005.     document.getElementById("InstallByCategory").checked=InstallByCategory;
  1006.     document.getElementById("ReallyForce").checked=ReallyForce;
  1007.     document.getElementById("DisableIfDoGray").checked=DisableIfDoGray;
  1008.  
  1009.     document.getElementById("Timer").checked=Timer;
  1010.     document.getElementById("Seconds").value=Seconds;
  1011.     document.getElementById("StartBeepAtSecs").value=StartBeepAtSecs;
  1012.  
  1013.  
  1014.     document.getElementById("ExtraWidth").value=ExtraWidth;
  1015.     document.getElementById("ExtraHeight").value=ExtraHeight;
  1016.  
  1017. // Audio tab
  1018.     document.getElementById("PlayAudioInInstaller").checked=PlayAudioInInstaller;
  1019.             
  1020. // Tools tab
  1021.     document.getElementById("MonitorResolution").value=MonitorResolution;
  1022.     document.getElementById("MonitorDepth").value=MonitorDepth;
  1023.     document.getElementById("MonitorRefresh").value=MonitorRefresh;
  1024.  
  1025.     document.getElementById("InstallFonts").checked=InstallFonts;
  1026.  
  1027.     document.getElementById("ExecuteBeforeEnabled").checked=ExecuteBeforeEnabled;
  1028.     document.getElementById("ExecuteBefore").value=ExecuteBefore;
  1029.     document.getElementById("ExecuteAfterEnabled").checked=ExecuteAfterEnabled;
  1030.     document.getElementById("ExecuteAfter").value=ExecuteAfter;
  1031.  
  1032.     document.getElementById("RestartComputer").checked=RestartComputer;
  1033.     document.all.RestartType[RestartType].click();
  1034.     document.getElementById("RestartSeconds").value=RestartSeconds;
  1035.     document.getElementById("DoNotLoadDesktop").value=DoNotLoadDesktop;
  1036.  
  1037.     document.getElementById("LogInstallation").checked=LogInstallation;
  1038.     document.getElementById("LogPath").value=LogPath;
  1039.  
  1040.  
  1041.     UpdateConfigsList();
  1042.     InsertSortOrderValues();
  1043.     HandleRandomThemeSelection();
  1044.     HandleShowToolTipsSelection();
  1045.     HandleShowExtraButtonsSelection();
  1046.     HandlePlayInstallAudioSelection();
  1047.     HandleTimerSelection();
  1048.     HandleStartBeepAt();
  1049.     HandleExtraWidth();
  1050.     HandleExtraHeight();
  1051.     InsertInstallAudioValues();
  1052.     HandleExecuteBeforeSelection();
  1053.     HandleExecuteAfterSelection();
  1054.     HandleRestartComputerSelection();
  1055.     HandleLogInstallationSelection();
  1056.     FillInOptionsFile();
  1057. }
  1058.  
  1059.  
  1060.  
  1061. function ReadOptions()
  1062. {
  1063.     position="optionswizard.js";
  1064.     whatfunc="ReadOptions()";
  1065.  
  1066.     var line=new String();
  1067.     var opt=new String();
  1068.     var val=new String();
  1069.  
  1070.     strFile=optionsFile;
  1071.     if (FileExists(strFile))
  1072.     {
  1073.         try 
  1074.         {
  1075.             tf=fso.OpenTextFile(strFile, 1);
  1076.             while(true)
  1077.             {
  1078.                    line=tf.ReadLine();
  1079.  
  1080.                 if (line.search("^ *//")==0) 
  1081.                     continue;
  1082.             
  1083.                 opt=line.substring(0,line.indexOf("="));
  1084.                 val=line.substring(line.indexOf("=")+1,line.length-1);
  1085.             
  1086. // Interface tab
  1087.                 if (opt=="Language") 
  1088.                     document.getElementById("Language").value=val.replace(/'/gi,"");
  1089.                 if (opt=="Theme") 
  1090.                     document.getElementById("Theme").value=val.replace(/'/gi,"");
  1091.                 if (opt=="RandomTheme") 
  1092.                     document.getElementById("RandomTheme").checked=val=="true" ? true : false;
  1093.                 if (opt=="BgPicture") 
  1094.                     document.getElementById("BgPicture").value=val.replace(/[\[\]'"]/g,"").replace(/\\\\/g,"\\");
  1095.                 if (opt=="Resolution")
  1096.                     document.getElementById("Resolution").value=val.replace(/'/gi,"");
  1097.  
  1098.                 // Will be eliminated in future version
  1099.                 if (opt=="Style[0]")
  1100.                 {
  1101.                     document.getElementById("style0").value=val.replace(/[\[\]]/g,"");
  1102.                     FoundOldStyle=true;
  1103.                 }
  1104.                 if (opt=="ShowToolTips") 
  1105.                     document.getElementById("ShowToolTips").checked=val=="true" ? true : false;
  1106.                 if (opt=="UseTransitions") 
  1107.                     document.getElementById("UseTransitions").checked=val=="true" ? true : false;
  1108.                 if (opt=="IndentText") 
  1109.                     document.getElementById("IndentText").checked=val=="true" ? true : false;
  1110.  
  1111.                 if (opt=="ShowExtraButtons") 
  1112.                     document.getElementById("ShowExtraButtons").checked=val=="true" ? true : false;
  1113.                 if (opt=="DoNotShowIfCD") 
  1114.                     document.getElementById("DoNotShowIfCD").checked=val=="true" ? true : false;
  1115.  
  1116.                 if (opt=="USSFSilentMode") 
  1117.                     document.getElementById("USSFSilentMode").checked=val=="true" ? true : false;
  1118.  
  1119.  
  1120. // Installer tab
  1121.                 if (opt=="Configurations")
  1122.                     document.getElementById("Configurations").value=val.replace(/[\[\]'"]/g,"");
  1123.                 if (opt=="ShowMultiDefault") 
  1124.                     document.getElementById("ShowMultiDefault").checked=val=="true" ? true : false;
  1125.                 if (opt=="CheckOnLoad")
  1126.                 {
  1127.                     document.getElementById("CheckOnLoad").value=val.replace(/'/gi,"");
  1128.                     CheckOnLoad=val.replace(/'/gi,"");
  1129.                 }
  1130.                 if (opt=="NumCols") 
  1131.                     document.getElementById("NumCols").value=val; 
  1132.                 if (opt=="SortOrder") 
  1133.                     document.getElementById("SortOrder").value=val.replace(/[\[\]'"]/g,"");
  1134.                 if (opt=="ReOpenAfterInstall") 
  1135.                     document.getElementById("ReOpenAfterInstall").checked=val=="true" ? true : false;
  1136.                 if (opt=="DisableCatCheckBoxes") 
  1137.                     document.getElementById("DisableCatCheckBoxes").checked=val=="true" ? true : false;
  1138.                 if (opt=="SortWithinCats") 
  1139.                     document.getElementById("SortWithinCats").checked=val=="true" ? true : false;
  1140.                 if (opt=="DisableOnDepsNotMet") 
  1141.                     document.getElementById("DisableOnDepsNotMet").checked=val=="true" ? true : false;
  1142.                 if (opt=="AlwaysUseScrollBar") 
  1143.                     document.getElementById("AlwaysUseScrollBar").checked=val=="true" ? true : false;
  1144.                 if (opt=="DontSplitCats") 
  1145.                     document.getElementById("DontSplitCats").checked=val=="true" ? true : false;
  1146.                 if (opt=="InstallByCategory") 
  1147.                     document.getElementById("InstallByCategory").checked=val=="true" ? true : false;
  1148.                 if (opt=="ReallyForce")
  1149.                     document.getElementById("ReallyForce").checked=val=="true" ? true : false;
  1150.                 if (opt=="DisableIfDoGray") 
  1151.                     document.getElementById("DisableIfDoGray").checked=val=="true" ? true : false;
  1152.  
  1153.                 if (opt=="Timer")
  1154.                     document.getElementById("Timer").checked=val=="true" ? true : false;
  1155.                 if (opt=="Seconds") 
  1156.                     document.getElementById("Seconds").value=val;
  1157.                 if (opt=="StartBeepAtSecs") 
  1158.                     document.getElementById("StartBeepAtSecs").value=val;
  1159.  
  1160.                 if (opt=="ExtraWidth") 
  1161.                     document.getElementById("ExtraWidth").value=val;
  1162.                 if (opt=="ExtraHeight") 
  1163.                     document.getElementById("ExtraHeight").value=val;
  1164.  
  1165. // Audio tab
  1166.                 if (opt=="PlayAudioInInstaller") 
  1167.                     document.getElementById("PlayAudioInInstaller").checked=val=="true" ? true : false;
  1168.                 if (opt=="InstallAudio") 
  1169.                 {
  1170.                     val=val.replace(/[\[\]'"]/g,"");
  1171.                     InstallAudio=val.split(",");
  1172.                     if (InstallAudio.length==1 && InstallAudio[0]=="")
  1173.                         InstallAudio.splice(0,1);
  1174.                 }
  1175.  
  1176. // Tools tab
  1177.                 if (opt=="MonitorResolution") 
  1178.                     document.getElementById("MonitorResolution").value=val;
  1179.                 if (opt=="MonitorDepth") 
  1180.                     document.getElementById("MonitorDepth").value=val;
  1181.                 if (opt=="MonitorRefresh") 
  1182.                     document.getElementById("MonitorRefresh").value=val;
  1183.  
  1184.                 if (opt=="InstallFonts") 
  1185.                     document.getElementById("InstallFonts").checked=val=="true" ? true : false;
  1186.  
  1187.                 if (opt=="ExecuteBeforeEnabled") 
  1188.                     document.getElementById("ExecuteBeforeEnabled").checked=val=="true" ? true : false;
  1189.                 if (opt=="ExecuteBefore") 
  1190.                     document.getElementById("ExecuteBefore").value=val.replace(/[\[\]'"]/g,"").replace(/\\\\/g,"\\");
  1191.                 if (opt=="ExecuteAfterEnabled") 
  1192.                     document.getElementById("ExecuteAfterEnabled").checked=val=="true" ? true : false;
  1193.                 if (opt=="ExecuteAfter") 
  1194.                     document.getElementById("ExecuteAfter").value=val.replace(/[\[\]'"]/g,"").replace(/\\\\/g,"\\");
  1195.  
  1196.                 if (opt=="RestartComputer") 
  1197.                     document.getElementById("RestartComputer").checked=val=="true" ? true : false;
  1198.                 if (opt=="RestartType")
  1199.                 {
  1200.                     if (val==0)
  1201.                     {
  1202.                         document.getElementById("RestartType0").checked=true;
  1203.                         document.getElementById("RestartType1").checked=false;
  1204.                     }
  1205.                     if (val==1)
  1206.                     {
  1207.                         document.getElementById("RestartType0").checked=false;
  1208.                         document.getElementById("RestartType1").checked=true;
  1209.                     }
  1210.                 }
  1211.                 if (opt=="RestartSeconds") 
  1212.                     document.getElementById("RestartSeconds").value=val;
  1213.                 if (opt=="DoNotLoadDesktop") 
  1214.                     document.getElementById("DoNotLoadDesktop").checked=val=="true" ? true : false;
  1215.  
  1216.                 if (opt=="LogInstallation") 
  1217.                     document.getElementById("LogInstallation").checked=val=="true" ? true : false;
  1218.                 if (opt=="LogPath")
  1219.                     document.getElementById("LogPath").value=val.replace(/[\[\]'"]/g,"").replace(/\\\\/g,"\\");
  1220.                 if (document.getElementById("LogInstallation").checked && document.getElementById("LogPath").value=="")
  1221.                 {
  1222.                     LogPath=DefaultLogPath;
  1223.                     document.getElementById("LogPath").value=LogPath;
  1224.                 }
  1225.             }
  1226.         }
  1227.         catch (ex) 
  1228.         { ;    }
  1229.         finally 
  1230.         { 
  1231.             tf.Close(); 
  1232.         }
  1233.     }
  1234.     else
  1235.     {
  1236.         alert(getText(errCouldNotOpenFile)+" '"+strFile+"'.\n\n"+getText(errUsingDefaultSet));
  1237.         OptionsDefaults();
  1238.         SaveOptions();
  1239.     }
  1240.  
  1241.     LoadThemeStyle();
  1242.  
  1243.     UpdateConfigsList();
  1244.     InsertSortOrderValues();
  1245.     HandleRandomThemeSelection();
  1246.     HandleShowToolTipsSelection();
  1247.     HandleShowExtraButtonsSelection();
  1248.     HandlePlayInstallAudioSelection();
  1249.     HandleTimerSelection();
  1250.     HandleStartBeepAt();
  1251.     HandleExtraWidth();
  1252.     HandleExtraHeight();
  1253.     InsertInstallAudioValues();
  1254.     HandleExecuteBeforeSelection();
  1255.     HandleExecuteAfterSelection();
  1256.     HandleRestartComputerSelection();
  1257.     HandleLogInstallationSelection();
  1258.     FillInOptionsFile();
  1259. }
  1260.  
  1261.  
  1262. function LoadThemeStyle()
  1263. {
  1264.     position="optionswizard.js";
  1265.     whatfunc="LoadThemeStyle()";
  1266.  
  1267.     strFile=wpipath+"\\Themes\\"+document.getElementById("Theme").value+"\\wpi_style.js";
  1268.     if (FileExists(strFile))
  1269.     {
  1270.         try 
  1271.         {
  1272.             tf=fso.OpenTextFile(strFile, 1);
  1273.             while(true)
  1274.             {
  1275.                    line=tf.ReadLine();
  1276.  
  1277.                 if (line.search("^ *//")==0) 
  1278.                     continue;
  1279.             
  1280.                 opt=line.substring(0,line.indexOf("="));
  1281.                 val=line.substring(line.indexOf("=")+1,line.length-1);
  1282.  
  1283.                 if (opt=="Style[0]")
  1284.                     document.getElementById("style0").value=val.replace(/[\[\]]/g,"");
  1285.             }
  1286.         }
  1287.         catch (ex) 
  1288.         { ;    }
  1289.         finally 
  1290.         { 
  1291.             tf.Close(); 
  1292.         }
  1293.     }
  1294.     else
  1295.     {
  1296.         alert(getText(errCouldNotOpenFile)+" '"+strFile+"'.\n\n"+getText(errUsingDefaultSet));
  1297.         if (!FoundOldStyle)
  1298.         {
  1299.             Style[0]=["white","#000099","","","","","black","#e8e8ff","","","","","","","2","#000099","0",51,0.4,"","","","","","",""];
  1300.             Style2[0]=['"white"','"#000099"','""','""','""','""','"black"','"#e8e8ff"','""','""','""','""','""','""','"2"','"#000099"','"0"','51','0.4','""','""','""','""','""','""','""'];
  1301.             document.getElementById("style0").value=Style2[0];
  1302.         }
  1303.         SaveOptions();
  1304.         ReadOptions();
  1305.     }
  1306. }
  1307.  
  1308.  
  1309. function SaveOptions()
  1310. {
  1311.     position="optionswizard.js";
  1312.     whatfunc="SaveOptions()";
  1313.  
  1314.     var txt=new String();
  1315.  
  1316.     strFile=optionsFile;
  1317.     try 
  1318.     {
  1319.         tf=fso.CreateTextFile(strFile, true);
  1320.  
  1321.         document.getElementById("optionsFile").disabled=true;
  1322.         document.getElementById("optionsNewOptions").disabled=true;
  1323.         document.getElementById("optionsRead").disabled=true;
  1324.         document.getElementById("optionsSave").disabled=true;
  1325.         document.getElementById("optionsSaveAs").disabled=true;
  1326.         document.getElementById("optionsExit").disabled=true;
  1327.         document.getElementById("layeroptions").style.cursor='wait';
  1328.  
  1329.         tf.WriteLine("// WPI Options 5.0+");
  1330.         tf.WriteLine("//");
  1331.         tf.WriteLine("// User defined options");
  1332.         tf.WriteLine("//");
  1333.  
  1334. // Interface tab
  1335.         tf.WriteLine("");
  1336.         tf.WriteLine("// Interface tab");
  1337.         tf.WriteLine("Language='" + document.getElementById("Language").value +"';");
  1338.         tf.WriteLine("Theme='" + document.getElementById("Theme").value +"';");
  1339.         txt=document.getElementById("BgPicture").value; 
  1340.         txt=txt.replace(/\\\\/g,"\\").replace(/\\/g,"\\\\");
  1341.         tf.WriteLine("RandomTheme=" + document.getElementById("RandomTheme").checked + ";");
  1342.         tf.WriteLine("BgPicture='" + txt + "';");
  1343.         tf.WriteLine("Resolution=" + document.getElementById("Resolution").value +";");
  1344.         tf.WriteLine("// ---");
  1345. //        tf.WriteLine("Style[0]=[" + document.getElementById("style0").value + "];");
  1346.         tf.WriteLine("ShowToolTips=" + document.getElementById("ShowToolTips").checked + ";");
  1347.         tf.WriteLine("UseTransitions=" + document.getElementById("UseTransitions").checked + ";");
  1348.         tf.WriteLine("IndentText=" + document.getElementById("IndentText").checked + ";");
  1349.         tf.WriteLine("// ---");
  1350.         tf.WriteLine("ShowExtraButtons=" + document.getElementById("ShowExtraButtons").checked + ";");
  1351.         tf.WriteLine("DoNotShowIfCD=" + document.getElementById("DoNotShowIfCD").checked + ";");
  1352.         tf.WriteLine("// ---");
  1353.         tf.WriteLine("USSFSilentMode=" + document.getElementById("USSFSilentMode").checked + ";");
  1354.  
  1355. // Installer tab
  1356.         tf.WriteLine("");
  1357.         tf.WriteLine("//Installer tab");
  1358.         txt=document.getElementById("Configurations").value; 
  1359.         txt=txt.replace(/['"]/g,"").replace(/,/g,"','");
  1360.         tf.WriteLine("Configurations=['" + txt + "'];");
  1361.         tf.WriteLine("ShowMultiDefault=" + document.getElementById("ShowMultiDefault").checked + ";");
  1362.         tf.WriteLine("CheckOnLoad='" + document.getElementById("CheckOnLoad").value + "';");
  1363.         tf.WriteLine("NumCols=" + document.getElementById("NumCols").value + ";");
  1364.         txt=document.getElementById("SortOrder").value; 
  1365.         txt=txt.replace(/['"]/g,"").replace(/,/g,"','");
  1366.         tf.WriteLine("SortOrder=['" + txt + "'];");
  1367.         tf.WriteLine("ReOpenAfterInstall=" + document.getElementById("ReOpenAfterInstall").checked + ";");
  1368.         tf.WriteLine("DisableCatCheckBoxes=" + document.getElementById("DisableCatCheckBoxes").checked + ";");
  1369.         tf.WriteLine("SortWithinCats=" + document.getElementById("SortWithinCats").checked + ";");
  1370.         tf.WriteLine("DisableOnDepsNotMet=" + document.getElementById("DisableOnDepsNotMet").checked + ";");
  1371.         tf.WriteLine("AlwaysUseScrollBar=" + document.getElementById("AlwaysUseScrollBar").checked + ";");
  1372.         tf.WriteLine("DontSplitCats=" + document.getElementById("DontSplitCats").checked + ";");
  1373.         tf.WriteLine("InstallByCategory=" + document.getElementById("InstallByCategory").checked + ";");
  1374.         tf.WriteLine("ReallyForce=" + document.getElementById("ReallyForce").checked + ";");
  1375.         tf.WriteLine("DisableIfDoGray=" + document.getElementById("DisableIfDoGray").checked + ";");
  1376.         tf.WriteLine("// ---");
  1377.         tf.WriteLine("Timer=" + document.getElementById("Timer").checked + ";");
  1378.         tf.WriteLine("Seconds=" + document.getElementById("Seconds").value + ";");
  1379.         tf.WriteLine("StartBeepAtSecs=" + document.getElementById("StartBeepAtSecs").value + ";");
  1380.  
  1381.         tf.WriteLine("// ---");
  1382.         tf.WriteLine("ExtraWidth=" + document.getElementById("ExtraWidth").value + ";");
  1383.         tf.WriteLine("ExtraHeight=" + document.getElementById("ExtraHeight").value + ";");
  1384.  
  1385. // Audio tab
  1386.         tf.WriteLine("");
  1387.         tf.WriteLine("//Audio tab");
  1388.         tf.WriteLine("PlayAudioInInstaller=" + document.getElementById("PlayAudioInInstaller").checked + ";");
  1389.         ExtractInstallAudioValues();
  1390.         tf.WriteLine("InstallAudio=['" + InstallAudio.join("','") + "'];");
  1391.  
  1392. // Tools tab
  1393.         tf.WriteLine("");
  1394.         tf.WriteLine("// Tools tab");
  1395.         tf.WriteLine("MonitorResolution=" + document.getElementById("MonitorResolution").value +";");
  1396.         tf.WriteLine("MonitorDepth=" + document.getElementById("MonitorDepth").value +";");
  1397.         tf.WriteLine("MonitorRefresh=" + document.getElementById("MonitorRefresh").value +";");
  1398.         tf.WriteLine("// ---");
  1399.         tf.WriteLine("InstallFonts=" + document.getElementById("InstallFonts").checked + ";");
  1400.         tf.WriteLine("// ---");
  1401.         tf.WriteLine("ExecuteBeforeEnabled=" + document.getElementById("ExecuteBeforeEnabled").checked + ";");
  1402.         txt=document.getElementById("ExecuteBefore").value; 
  1403.         txt=txt.replace(/\\\\/g,"\\").replace(/\\/g,"\\\\");
  1404.         tf.WriteLine("ExecuteBefore=['" + txt + "'];");
  1405.         tf.WriteLine("ExecuteAfterEnabled=" + document.getElementById("ExecuteAfterEnabled").checked + ";");
  1406.         txt=document.getElementById("ExecuteAfter").value; 
  1407.         txt=txt.replace(/\\\\/g,"\\").replace(/\\/g,"\\\\");
  1408.         tf.WriteLine("ExecuteAfter=['" + txt + "'];");
  1409.         tf.WriteLine("// ---");
  1410.         tf.WriteLine("RestartComputer=" + document.getElementById("RestartComputer").checked + ";");
  1411.         if (document.all.RestartType[0].checked)
  1412.             tf.WriteLine("RestartType=0;");
  1413.         if (document.all.RestartType[1].checked)
  1414.             tf.WriteLine("RestartType=1;");
  1415.         tf.WriteLine("RestartSeconds=" + document.getElementById("RestartSeconds").value + ";");
  1416.         tf.WriteLine("DoNotLoadDesktop=" + document.getElementById("DoNotLoadDesktop").checked + ";");
  1417.         tf.WriteLine("// ---");
  1418.         tf.WriteLine("LogInstallation=" + document.getElementById("LogInstallation").checked + ";");
  1419.         txt=document.getElementById("LogPath").value; 
  1420.         txt=txt.replace(/\\\\/g,"\\").replace(/\\/g,"\\\\");
  1421.         tf.WriteLine("LogPath=['" + txt + "'];");
  1422.     }
  1423.     catch (ex) 
  1424.     { 
  1425.         alert(getText(errCouldNotSaveFile)+"\n"+strFile);
  1426.  
  1427.         return;
  1428.     }
  1429.     tf.Close();
  1430.  
  1431.     strFile=wpipath+"\\Themes\\"+Theme+"\\wpi_style.js";
  1432.     try 
  1433.     {
  1434.         tf=fso.CreateTextFile(strFile, true);
  1435.  
  1436.         tf.WriteLine("Style[0]=[" + document.getElementById("style0").value + "];");
  1437.     }
  1438.     catch (ex) 
  1439.     { 
  1440.         alert(getText(errCouldNotSaveFile)+"\n"+strFile);
  1441.  
  1442.         return;
  1443.     }
  1444.     tf.Close();
  1445.     
  1446.     strFile=wpipath + "\\Audio\\Install.M3U";
  1447.     try 
  1448.     {
  1449.         tf=fso.CreateTextFile(strFile, true);        
  1450.         for (var i=0; i<InstallAudio.length; i++)
  1451.             tf.WriteLine(InstallAudio[i]);
  1452.     }
  1453.     catch (ex) 
  1454.     { 
  1455.         alert(getText(errCouldNotSaveFile)+"\n"+strFile);
  1456.  
  1457.         return;
  1458.     }
  1459.     tf.Close();
  1460.  
  1461. //    alert(getText(txtOptionsFileSaved));
  1462.     Pause(0,500);
  1463.     document.getElementById("layeroptions").style.cursor='default';
  1464.     document.getElementById("optionsFile").disabled=false;
  1465.     document.getElementById("optionsNewOptions").disabled=false;
  1466.     document.getElementById("optionsRead").disabled=false;
  1467.     document.getElementById("optionsSave").disabled=false;
  1468.     document.getElementById("optionsSaveAs").disabled=false;
  1469.     document.getElementById("optionsExit").disabled=false;
  1470. }
  1471.  
  1472.  
  1473. function ShowOptions()
  1474. {
  1475.     position="optionswizard.js";
  1476.     whatfunc="ShowOptions()";
  1477.  
  1478.     ManualSection="Options";
  1479.     HideLayers();
  1480.     document.getElementById("InstallButton").style.visibility='hidden';
  1481.     document.getElementById("layeroptions").style.display='block';
  1482.     CreateOptionsPage();
  1483.  
  1484.     AtStartUp=false;
  1485.     GetThemes();
  1486.  
  1487.     OptionsDefaults();
  1488.     ReadOptions();
  1489. }
  1490.  
  1491.  
  1492. function HideOptions()
  1493. {
  1494.     position="optionswizard.js";
  1495.     whatfunc="HideOptions()";
  1496.  
  1497.     WshShell.RegWrite("HKEY_CURRENT_USER\\Software\\WPI\\OptionsFile",optionsFile);
  1498.  
  1499.     document.location.reload();
  1500. }
  1501.  
  1502.  
  1503. function ToggleOptions()
  1504. {
  1505.     position="optionswizard.js";
  1506.     whatfunc="ToggleOptions()";
  1507.  
  1508.     if (document.getElementById("layeroptions").style.display == 'none')
  1509.         ShowOptions(); 
  1510.     else
  1511.         HideOptions();    
  1512. }
  1513.