home *** CD-ROM | disk | FTP | other *** search
/ Chip 2003 November / Chip_2003-11_cd2.bin / nav2004 / download / NAV / External / NORTON / APP / NAVOpts.dll / HTML / OPTIONSMENU.JS < prev    next >
Text File  |  2003-08-17  |  18KB  |  700 lines

  1. // optionsmenu.js
  2. g_ModuleID = 3023; // From ccModuleID.h
  3.  
  4. //Holds the last selected row.  Used to compare current row against
  5. //new row.
  6. g_LastRow = null;
  7.  
  8. function CurrentPageDummy()
  9. {
  10.     try
  11.     {
  12.       this.Initialize  = function() { return true; };
  13.       this.Validate  = function() { return true; };
  14.       this.Terminate = function() { return true; };
  15.       this.Help      = function() { return true; };
  16.     }
  17.     catch (err)
  18.     {
  19.         g_ErrorHandler.DisplayException (err);
  20.         return;
  21.     }
  22. }
  23.  
  24. function GoTo(url, objTR)
  25. {
  26.   try
  27.   {
  28.       var i = parent.frames[1].location.href.lastIndexOf('/');
  29.       var href = parent.frames[1].location.href.substring(i + 1);
  30.  
  31.       if (url != href)
  32.       {
  33.         if (parent.CurrentPage)
  34.         {
  35.           // If the information on the page is not valid don't let the user switch
  36.           // (The Validate() function should tell the user what's wrong)
  37.           if (!parent.CurrentPage.Validate())
  38.             return false;
  39.  
  40.           parent.CurrentPage.Terminate();
  41.       
  42.           // On slow machines, it is possible to get a script error
  43.           // while accessing a freed script.  After calling terminate,
  44.           // the current page is no longer valid so substitute in a
  45.           // static set of CurrentPage functions.
  46.           parent.CurrentPage = new CurrentPageDummy();
  47.         }
  48.  
  49.         HilightItems(objTR);
  50.         parent.frames[1].location.replace(url);
  51.         parent.frames[1].focus();
  52.       }
  53.  
  54.       return false;
  55.   }
  56.   catch (err)
  57.   {
  58.     g_ErrorHandler.DisplayException (err);
  59.     return;
  60.   }
  61.  
  62. }
  63.  
  64. function GoToBloodhound(page, objTR)
  65. {
  66.   try
  67.   {
  68.     var i = parent.frames[1].location.href.lastIndexOf('/');
  69.     var href = parent.frames[1].location.href.substring(i + 1);
  70.     if ('options_bloodhound.htm' == href)
  71.     {
  72.         // If we navegating from another bloodhound page ther is no need to reload
  73.          parent.CurrentPage.Terminate();
  74.          parent.BloodHound = page;
  75.          parent.CurrentPage.Initialize();
  76.          HilightItems(objTR);
  77.     }
  78.     else
  79.     {
  80.          parent.BloodHound = page;
  81.          GoTo('options_bloodhound.htm', objTR);
  82.     }
  83.  
  84.     return false;
  85.   }
  86.   catch (err)
  87.   {
  88.     g_ErrorHandler.DisplayException (err);
  89.     return;
  90.   }
  91. }
  92.  
  93. function ExpandAP(bExpand)
  94. {
  95.     try
  96.     {
  97.         if( true == bExpand )
  98.         {
  99.             // Expand AP Items
  100.             twistie_sys_ap.src = "arrow_dots_down.gif"
  101.             sys_ap_bloodhound_dashline.style.display = "";
  102.             sys_ap_bloodhound.style.display = "";
  103.             sys_ap_advanced_dashline.style.display = "";
  104.             sys_ap_advanced.style.display = "";
  105.             sys_ap_exclusions_dashline.style.display = "";
  106.             sys_ap_exclusions.style.display = "";
  107.         }
  108.         else
  109.         {
  110.              // Retract AP Items
  111.              twistie_sys_ap.src = "arrow_dots_rgt.gif"
  112.              sys_ap_bloodhound_dashline.style.display = "none";
  113.              sys_ap_bloodhound.style.display = "none";
  114.              sys_ap_advanced_dashline.style.display = "none";
  115.              sys_ap_advanced.style.display = "none";
  116.              sys_ap_exclusions_dashline.style.display = "none";
  117.              sys_ap_exclusions.style.display = "none";
  118.         }
  119.     }
  120.     catch (err)
  121.     {
  122.         g_ErrorHandler.DisplayException (err);
  123.         return;
  124.     }
  125. }
  126.  
  127. function ExpandMS(bExpand)
  128. {
  129.     try
  130.     {
  131.         if( true == bExpand )
  132.         {
  133.             // Expand MS Items
  134.             twistie_sys_ms.src = "arrow_dots_down.gif"
  135.             sys_ms_bloodhound_dashline.style.display = "";
  136.             sys_ms_bloodhound.style.display = "";
  137.             sys_ms_exclusions_dashline.style.display = "";
  138.             sys_ms_exclusions.style.display = "";
  139.         }
  140.         else
  141.         {
  142.             // Retract MS Items
  143.             twistie_sys_ms.src = "arrow_dots_rgt.gif"
  144.             sys_ms_bloodhound_dashline.style.display = "none";
  145.             sys_ms_bloodhound.style.display = "none";
  146.             sys_ms_exclusions_dashline.style.display = "none";
  147.             sys_ms_exclusions.style.display = "none";
  148.         }
  149.     }
  150.     catch (err)
  151.     {
  152.         g_ErrorHandler.DisplayException (err);
  153.         return;
  154.     }
  155. }
  156.  
  157. function ExpandEmail(bExpand)
  158. {
  159.     try
  160.     {
  161.         if( true == bExpand )
  162.         {
  163.             // Expand Email Items
  164.             twistie_int_email.src = "arrow_dots_down.gif";
  165.             int_email_advanced_dashline.style.display = "";
  166.             int_email_advanced.style.display = "";
  167.         }
  168.         else
  169.         {
  170.             // Retract Email Items
  171.             twistie_int_email.src = "arrow_dots_rgt.gif";
  172.             int_email_advanced_dashline.style.display = "none";
  173.             int_email_advanced.style.display = "none";
  174.         }
  175.     }
  176.     catch (err)
  177.     {
  178.         g_ErrorHandler.DisplayException (err);
  179.         return;
  180.     }
  181. }
  182.  
  183. function ExpandThreat(bExpand)
  184. {
  185.     try
  186.     {
  187.         if( true == bExpand )
  188.         {
  189.             // Expand Threat Items
  190.             twistie_other_threat.src = "arrow_dots_down.gif";
  191.             other_threat_advanced_dashline.style.display = "";
  192.             other_threat_advanced.style.display = "";
  193.             other_threat_exclusions_dashline.style.display = "";
  194.             other_threat_exclusions.style.display = "";
  195.         }
  196.         else
  197.         {
  198.             // Retract Threat Items
  199.             twistie_other_threat.src = "arrow_dots_rgt.gif";
  200.             other_threat_advanced_dashline.style.display = "none";
  201.             other_threat_advanced.style.display = "none";
  202.             other_threat_exclusions_dashline.style.display = "none";
  203.             other_threat_exclusions.style.display = "none";
  204.         }
  205.     }
  206.     catch (err)
  207.     {
  208.         g_ErrorHandler.DisplayException (err);
  209.         return;
  210.     }
  211. }
  212.  
  213. function RowClick(objTR)
  214. {
  215.    try
  216.    {
  217.        //Expand or contract any children.
  218.        switch(objTR)
  219.        {
  220.        case sys_ap:
  221.           if(twistie_sys_ap.src.indexOf('down')>-1)
  222.           {
  223.              ExpandAP(false);
  224.           }
  225.           else
  226.           {
  227.              // Expand AP, retract Email, Threat, and Manual Scan
  228.              ExpandAP(true);
  229.              ExpandMS(false);
  230.              ExpandEmail(false);
  231.              ExpandThreat(false);
  232.           }
  233.           break;
  234.        case sys_ms:
  235.           if(twistie_sys_ms.src.indexOf('down')>-1)
  236.           {
  237.              ExpandMS(false);
  238.           }
  239.           else
  240.           {
  241.              // Expand Manual Scan, retract AP, Threat, and Email
  242.              ExpandMS(true);
  243.              ExpandAP(false);
  244.              ExpandEmail(false);
  245.              ExpandThreat(false);
  246.           }
  247.           break;
  248.        case int_email:
  249.           if(twistie_int_email.src.indexOf('down')>-1)
  250.           {
  251.              ExpandEmail(false);
  252.           }
  253.           else
  254.           {
  255.              // Expand Email, retract AP, Threat, and Manual Scan
  256.              ExpandEmail(true);
  257.              ExpandAP(false);
  258.              ExpandMS(false);
  259.              ExpandThreat(false);
  260.           }
  261.           break;
  262.        case other_threat:
  263.           if(twistie_other_threat.src.indexOf('down')>-1)
  264.           {
  265.              ExpandThreat(false);
  266.           }
  267.           else
  268.           {
  269.              // Expand Threat, retract AP, Email, and Manual Scan
  270.              ExpandThreat(true);
  271.              ExpandEmail(false);
  272.              ExpandAP(false);
  273.              ExpandMS(false);
  274.           }
  275.           break;
  276.        }
  277.  
  278.        if ( parent.g_btnDefaultPage != null )
  279.          parent.g_btnDefaultPage.disabled = false;
  280.    
  281.        //Select Panel
  282.        switch(objTR)
  283.        {
  284.        case sys_ap:
  285.           GoTo('options_sys_ap.htm', objTR);
  286.           break;
  287.        case sys_ap_bloodhound:
  288.           GoToBloodhound(0, objTR);
  289.           break;
  290.        case sys_ap_advanced:
  291.           GoTo('options_sys_ap_ad.htm', objTR);
  292.           break;
  293.        case sys_ap_exclusions:
  294.           GoTo('options_sys_ap_excl.htm', objTR);
  295.           break;
  296.        case sys_sb:
  297.           GoTo('options_sys_sb.htm', objTR);
  298.           break;
  299.        case sys_ms:
  300.           GoTo('options_sys_scan.htm', objTR);
  301.           break;
  302.        case sys_ms_bloodhound:
  303.           GoToBloodhound(1, objTR);
  304.           break;
  305.        case sys_ms_exclusions:
  306.           GoTo('options_sys_excl.htm', objTR);
  307.           break;
  308.        case int_email:
  309.           GoTo('options_int_email.htm', objTR);
  310.           break;
  311.        case int_email_advanced:
  312.           GoTo('options_int_email_adv.htm', objTR);
  313.           break;
  314.        case int_lu:
  315.           GoTo('options_int_lu.htm', objTR);
  316.           break;
  317.        case int_im:
  318.           GoTo('options_int_im.htm', objTR);
  319.           break;
  320.        case other_inoc:
  321.           GoTo('options_othr_inoc.htm', objTR);
  322.           break;
  323.        case other_misc:
  324.           GoTo('options_othr_gen.htm', objTR);
  325.           break;
  326.        case other_advanced:
  327.           if ( parent.g_btnDefaultPage != null )
  328.                parent.g_btnDefaultPage.disabled = true;
  329.           GoTo('options_othr_advanced.htm', objTR);
  330.           break;
  331.        case other_threat:
  332.           GoTo('options_othr_threat.htm', objTR);
  333.           break;
  334.        case other_threat_advanced:
  335.           GoTo('options_othr_threat_ad.htm', objTR);
  336.           break;
  337.        case other_threat_exclusions:
  338.           GoTo('options_othr_threat_excl.htm', objTR);
  339.           break;
  340.        }   
  341.     }
  342.     catch (err)
  343.     {
  344.         g_ErrorHandler.DisplayException (err);
  345.         return;
  346.     }
  347. }
  348.  
  349. // Called by options.js::Load()
  350. //
  351. function Load()
  352. {
  353.     try
  354.     {
  355.         // Create global objects
  356.         try
  357.         {
  358.             parent.NAVOptions = new ActiveXObject ("Symantec.Norton.AntiVirus.NAVOptions");
  359.         }
  360.         catch (err)
  361.         {
  362.             var msg = document.frames("Errors").document.all.ERROR_CREATING_OPTIONS_OBJECT.innerText;
  363.             var id = document.frames("Errors").document.all.ERROR_CREATING_OPTIONS_OBJECT_ID.innerText;
  364.             g_ErrorHandler.DisplayNAVError (msg, id);
  365.             parent.g_bStopLoading = true;
  366.             return;
  367.         }
  368.  
  369.         try 
  370.         {
  371.             parent.NAVAutoProtect = new ActiveXObject ("NAVAPSCR.ScriptableAutoProtect");
  372.         }
  373.         catch (err)
  374.         {
  375.             var msg = document.frames("Errors").document.all.ERROR_CREATING_AP_OBJECT.innerText;
  376.             var id = document.frames("Errors").document.all.ERROR_CREATING_AP_OBJECT_ID.innerText;
  377.             g_ErrorHandler.DisplayNAVError (msg, id);
  378.             parent.g_bStopLoading = true;
  379.             return;
  380.         }
  381.  
  382.         // Init global variables
  383.         //
  384.         parent.Is9x = navigator.userAgent.indexOf('Windows 9')>-1;
  385.         parent.IsMe = navigator.userAgent.indexOf('Win 9x')>-1;
  386.         parent.IsNT4 = navigator.userAgent.indexOf('Windows NT)')>-1;
  387.         parent.Is2K = navigator.userAgent.indexOf('Windows NT 5')>-1;
  388.         parent.IsIE4 = navigator.userAgent.indexOf('MSIE 4')>-1;
  389.         parent.IsXP = navigator.userAgent.indexOf('Windows NT 5.1')>-1;
  390.         
  391.         // Get the HWND for the options
  392.         try
  393.         {
  394.             parent.g_HWND = parent.NAVOptions.HWND;
  395.         }
  396.         catch(err)
  397.         {
  398.             parent.NAVOptions.NAVError.LogAndDisplay(0);
  399.         }
  400.  
  401.         try
  402.         {
  403.             parent.IsEmailEnabled = parent.NAVOptions.NAVEMAIL.ScanIncoming || parent.NAVOptions.NAVEMAIL.ScanOutgoing;
  404.         }
  405.         catch(err)
  406.         {
  407.             parent.NAVOptions.NAVError.LogAndDisplay(parent.g_HWND);
  408.         }
  409.         try
  410.         {
  411.             parent.InitialLoadVxD = parent.NAVOptions.STARTUP.LoadVxD; // Save the current startup state of AP
  412.             
  413.             if( !parent.Is9x )
  414.                 parent.InitialDelayLoad = parent.NAVOptions.AUTOPROTECT.DelayLoad;
  415.         }
  416.         catch(err)
  417.         {
  418.             parent.NAVOptions.NAVError.LogAndDisplay(parent.g_HWND);
  419.         }
  420.         try
  421.         {
  422.             parent.IsTrialValid = parent.NAVOptions.IsTrialValid;
  423.         }   
  424.         catch(err)
  425.         {
  426.             parent.NAVOptions.NAVError.LogAndDisplay(parent.g_HWND);
  427.         }
  428.         try
  429.         {
  430.             var ProdSubStr;
  431.             if( parent.Is9x )
  432.                 ProdSubStr = "NAV95";
  433.             else
  434.                 ProdSubStr = "NAVNT";
  435.             parent.InitialALUProduct = parent.NAVOptions.IsAluOn(ProdSubStr);         // Save current state of ALU Product updates
  436.             parent.InitialALUVirusdefs = parent.NAVOptions.IsAluOn("MicroDefs"); // Save current state of ALU VirusDef updates
  437.         }
  438.         catch(err)
  439.         {
  440.             parent.NAVOptions.NAVError.LogAndDisplay(parent.g_HWND);
  441.             parent.ALUhosed = 1;
  442.         }
  443.         try
  444.         {
  445.  
  446.             // Set the ALU Options file values to the correct initial state
  447.             // (in case they were changed by a force outside of our options)
  448.             if( !parent.NAVOptions.ALUrunning && !parent.ALUhosed )
  449.             {
  450.                 parent.NAVOptions.ALU.Virusdefs = parent.InitialALUVirusdefs;
  451.                 parent.NAVOptions.ALU.Product = parent.InitialALUProduct;
  452.             }
  453.  
  454.             parent.IsNAVPro = parent.NAVOptions.IsNAVPro;
  455.         }
  456.         catch(err)
  457.         {
  458.             parent.NAVOptions.NAVError.LogAndDisplay(parent.g_HWND);
  459.         }
  460.  
  461.         // Get the initial state of the password protection
  462.         try    
  463.         {
  464.             var ccpass = new ActiveXObject("Symantec.CommonClient.ccPassword");
  465.  
  466.             try
  467.             {
  468.                 ccpass.ProductID = parent.NAV_CONSUMER_PASSWORD_ID;
  469.                 parent.InitialPassword = Boolean(ccpass.Enabled);
  470.                 parent.InitialPasswordSet = ccpass.UserPasswordSet;
  471.             }
  472.             catch(err)
  473.             {
  474.                 // Set the default initial value since the password is hosed
  475.                 parent.InitialPassword = false;
  476.                 parent.InitialPasswordSet = false;
  477.             }
  478.         }
  479.         catch(err)
  480.         {
  481.             // Swallowing error here since it will be displayed by the Miscellaneous page
  482.         }
  483.  
  484.         try
  485.         {
  486.             parent.CurAPRunning = parent.NAVAutoProtect.Enabled;   // Save the current running state of AP
  487.                                                   // This variable will get updated if user
  488.                                                   // Enables AP with the Enable AP checkbox.
  489.         }
  490.         catch(err)
  491.         {
  492.             // If we can't get the state, then save the current state as disabled
  493.             parent.CurAPRunning = false;
  494.             parent.NAVAutoProtect.NAVError.LogAndDisplay(parent.g_HWND);
  495.         }
  496.         
  497.         // Hide all Win9x specific sections
  498.       if (!parent.Is9x)
  499.       {
  500.         other_inoc_dashline.style.display = "none";
  501.         other_inoc.style.display = "none";
  502.         //document.all.Win9x.style.display = 'none';
  503.       }
  504.  
  505.       // If on NT4 IE4, there is no ALU so remove the page.
  506.       if (parent.IsNT4 && parent.IsIE4)
  507.       {
  508.         int_lu_dashline.style.display = "none";
  509.         int_lu.style.display = "none";
  510.         //document.all.NotNT4IE4.style.display = 'none';
  511.       }
  512.  
  513.       try
  514.       {
  515.           if ( parent.NAVOptions.SCRIPTBLOCKING.Installed == 0 )
  516.           {
  517.             sys_sb.style.display = "none";
  518.             sys_sb_dashline.style.display = "none";
  519.           }
  520.       }
  521.       catch(err)
  522.       {
  523.           parent.NAVOptions.NAVError.LogAndDisplay(parent.g_HWND);
  524.       }
  525.  
  526.       if ( !parent.IsNAVPro )
  527.       {
  528.         other_advanced.style.display = "none";
  529.         other_advanced_dashline.style.display = "none";
  530.       }
  531.     }
  532.     catch (err)
  533.     {
  534.         g_ErrorHandler.DisplayException (err);
  535.         return;
  536.     }
  537.            
  538. }
  539.  
  540. function HilightItems(objTR)
  541. {
  542.    try
  543.    {
  544.      //Deselect old row.
  545.      if (g_LastRow != null && g_LastRow != objTR)
  546.        g_LastRow.className = "OptsListEntry";
  547.       
  548.      //Switch the hilight to the new item.
  549.      objTR.className = "OptsListEntrySelected"; 
  550.      g_LastRow = objTR;
  551.  
  552.    }
  553.    catch (err)
  554.    {
  555.      g_ErrorHandler.DisplayException (err);
  556.      return;
  557.    }   
  558. }
  559.  
  560. function ResetOptions()
  561. {
  562.     try
  563.     {
  564.       // Did not close with X
  565.       parent.bClosedWithX = false;
  566.  
  567.       // In safe mode tell users we will not restore defaults
  568.       if( parent.NAVOptions.SystemMode )
  569.       {
  570.             try 
  571.             {
  572.                 var sww = new ActiveXObject('CcWebWnd.ccWebWindow');
  573.             }
  574.             catch (NAVErr)
  575.             {
  576.                 parent.g_ErrorHandler.DisplayNAVError (document.frames("Errors").ERROR_CREATING_NAVWEBWINDOW_OBJECT.innerText,  
  577.                                                 document.frames("Errors").ERROR_CREATING_NAVWEBWINDOW_OBJECT_ID.innerText);
  578.                 return;
  579.             }
  580.             
  581.             sww.MsgBox(document.all.NoDefaultsInSafeMode.innerText, document.all.MsgBoxTitle.innerText, 48);
  582.             delete sww;
  583.             return;
  584.       }
  585.       
  586.       try
  587.       {
  588.         // Reset options defaults
  589.         parent.NAVOptions.Default();
  590.       }
  591.       catch (NAVErr)
  592.       {
  593.         parent.NAVOptions.NAVError.LogAndDisplay(parent.g_HWND);
  594.         
  595.         parent.location.href = 'closeme.xyz';
  596.         return;
  597.       }
  598.  
  599.       // User can't enable AP in a 'Safe Mode'
  600.       if (parent.IsTrialValid)
  601.       {
  602.         try
  603.         {
  604.             parent.NAVAutoProtect.Enabled = parent.CurAPRunning = true;
  605.             parent.NAVAutoProtect.Configure(parent.NAVOptions.STARTUP.LoadVxD);
  606.         }
  607.         catch(err)
  608.         {
  609.             parent.NAVAutoProtect.NAVError.LogAndDisplay(parent.g_HWND);
  610.         }
  611.       }
  612.       
  613.         try    
  614.         {
  615.             var ccpass = new ActiveXObject("Symantec.CommonClient.ccPassword");
  616.             try
  617.             {
  618.                 ccpass.ProductID = parent.NAV_CONSUMER_PASSWORD_ID;
  619.                 ccpass.Enabled = false;
  620.                 ccpass.Clear();
  621.             }
  622.             catch(err)
  623.             {
  624.                 g_ErrorHandler.DisplayNAVError (document.frames("Errors").ERROR_SETTING_PASSWORD_FEATURES.innerText,  
  625.                                                        document.frames("Errors").ERROR_SETTING_PASSWORD_FEATURES_ID.innerText);
  626.             }
  627.         }
  628.         catch(err)
  629.         {
  630.             g_ErrorHandler.DisplayNAVError (document.frames("Errors").ERROR_CREATING_PASSWORD_OBJECT.innerText,  
  631.                                                    document.frames("Errors").ERROR_CREATING_PASSWORD_OBJECT_ID.innerText);
  632.         }
  633.  
  634.       // Reset the ALU modes
  635.       try
  636.       {
  637.         var bSwitchProduct = false;
  638.         var bSwitchVirusdefs = false;
  639.  
  640.         // Only update the modes for ALU if the product reg catalog was available
  641.         // during this session of options and ALU wasn't hosed
  642.         if( !parent.NAVOptions.ALURunning && !parent.ALUhosed )
  643.         {
  644.            // Reset the defaults right now
  645.            parent.NAVOptions.ALU.Product();
  646.            parent.NAVOptions.ALU.Virusdefs();
  647.            
  648.            bSwitchProduct = parent.IsTrialValid
  649.                    && parent.InitialALUProduct != parent.NAVOptions.ALU.Product;
  650.            bSwitchVirusdefs = parent.IsTrialValid
  651.                    && parent.InitialALUVirusdefs != parent.NAVOptions.ALU.Virusdefs;
  652.         }
  653.         
  654.         if (bSwitchProduct)
  655.         {
  656.             parent.NAVOptions.EnableALU(parent.NAVOptions.ALU.Product, true);
  657.         }
  658.  
  659.         // Change ALU Update modes for Virus Def patches if it changed
  660.         if (bSwitchVirusdefs)
  661.         {
  662.             parent.NAVOptions.EnableALU(parent.NAVOptions.ALU.Virusdefs, false);
  663.         }
  664.       }
  665.       catch (NAVErr)
  666.       {
  667.         parent.NAVOptions.NAVError.LogAndDisplay(parent.g_HWND);
  668.         parent.location.href = 'closeme.xyz';
  669.         return;
  670.       }
  671.  
  672.       parent.location.href = 'closeme.xyz';
  673.     }
  674.     catch (err)
  675.     {
  676.         g_ErrorHandler.DisplayException (err);
  677.         parent.location.href = 'closeme.xyz';
  678.         return;
  679.     }
  680. }
  681.  
  682. // This function allows user to navigate the options menu by
  683. // using the keyboard. This is to comply with Section 508. KM
  684. function KeyboardNavigate(objTR) 
  685. {
  686.     try
  687.     {
  688.         // The "SPACE" and "ENTER" keys are used.
  689.        if ( (event.keyCode == 13) || (event.keyCode == 32) )
  690.        {
  691.          RowClick(objTR);
  692.        }
  693.     }
  694.     catch (err)
  695.     {
  696.         g_ErrorHandler.DisplayException (err);
  697.         return;
  698.     }
  699. }
  700.