home *** CD-ROM | disk | FTP | other *** search
/ DOS/V Power Report 2003 August / VPR0308.ISO / ANTI_VIR / NAV2003 / NVJP30TD.EXE / NAV / SWPlugin.dll / HTML / MAIN.JS < prev    next >
Text File  |  2001-08-13  |  20KB  |  572 lines

  1. // main.js
  2.  
  3. var ButtonState = START_Scan_OR_Rescan;            // set to BeginScan
  4. var ScannerNumber  = 0;            // set to first scanner
  5. var bFromNSW  = false;
  6. var IsOBCFinished = true;
  7. var object_coll = 0;
  8. var font_coll = 0;
  9. var images_coll = 0;
  10. var percent_complete = 0;
  11. var Errors_before_another_scan = 0;
  12. var NumberOfScanners = 0;
  13. var bInitDone = false;
  14.  
  15. // STORE SCANNER NUMBER WHICH HAS ERRORS
  16. var ScannerIndex = 0;
  17. var TotalScanners_With_Errors = 0;
  18. var TotalNumErrors = 0;
  19. var NumFixedErrors = 0;
  20. var Scanner_With_Errors = new Array(MAXIMUM_Scanners);
  21. function ErrorInfo(Message, Color, IsBold)      // constructor for an object that holds a scanner's error information
  22. {
  23.     this.Message = Message;
  24.     this.Color = Color;
  25.     this.IsBold = IsBold;
  26. }
  27. var Scanner_With_Errors_Info = new Array(MAXIMUM_Scanners);     // holds the information of a scanner with error(s)
  28. var ScannersFixed = 0;      // Number of scanners fix was done on (user could've stopped midstream)
  29.  
  30. /*********************************************************************************/
  31.  
  32. // LIST OF ALL THE SCANNERS CLSID
  33. var CLSID_Number = new Array(MAXIMUM_Scanners);
  34. CLSID_Number[0]    = "{8104DFEA-D444-11d1-94B4-006008A1AC2F}";        /*CLSID_CoSymRS,Win Reg Scan*/
  35. CLSID_Number[1] = "{8104DFE8-D444-11d1-94B4-006008A1AC2F}";        /*CLSID_CoSymMDScan,Program Integrity Scan*/
  36. CLSID_Number[2] = "{3F4B6C82-46CB-11D4-8785-00C04F48B4B5}";        /*CLSID_FreeSpace, Free Space Scan*/
  37. CLSID_Number[3] = "{2E7389A2-41EF-11d4-8785-00C04F48B4B5}";        /*CLSID_NavDefFiles*/
  38. CLSID_Number[4] = "{2E7389A5-41EF-11d4-8785-00C04F48B4B5}";        /*CLSID_NavAutoProtect*/
  39. CLSID_Number[5] = "{2E7389A6-41EF-11d4-8785-00C04F48B4B5}"        /*CLSID_NavLastScan*/  
  40. CLSID_Number[6] = "{8104DFE4-D444-11d1-94B4-006008A1AC2F}";        /*CLSID_CLnkScan,Shortcut Scan*/
  41. CLSID_Number[7] = "{A2F50A87-82C2-11D2-B8E6-006097C9C6FF}";        /*CLSID_NDDTest,Disk Doctor*/
  42. CLSID_Number[8] = "{FF914707-6E6C-11D2-B8E6-006097C9C6FF}";        /*CLSID_RegTest,Reg Doctor*/
  43. CLSID_Number[9] = "{A2F50A89-82C2-11D2-B8E6-006097C9C6FF}";        /*CLSID_FragTest, Disk Fragmentation Test*/
  44. /*********************************************************************************/
  45.  
  46. // LIST OF ALL THE IMAGES USED IN THE PAGE
  47. pict = new Array(3);
  48. pict[0] = "reddash.gif";
  49. pict[1] = "scanner_blink.gif"
  50. pict[2] = "scanner_done.gif";
  51.  
  52. /*********************************************************************************/
  53.  
  54. // LIST OF ALL THE SCANNERERROR ID USED IN THE PAGE
  55.  
  56. var ScannerErrors = new Array(MAXIMUM_Scanners);
  57. ScannerErrors[0] = "Scanner0_Error";
  58. ScannerErrors[1] = "Scanner1_Error";
  59. ScannerErrors[2] = "Scanner2_Error";
  60. ScannerErrors[3] = "Scanner3_Error";
  61. ScannerErrors[4] = "Scanner4_Error";
  62. ScannerErrors[5] = "Scanner5_Error";
  63. ScannerErrors[6] = "Scanner6_Error";
  64. ScannerErrors[7] = "Scanner7_Error";
  65. ScannerErrors[8] = "Scanner8_Error";
  66. ScannerErrors[9] = "Scanner9_Error";
  67. /*********************************************************************************/
  68.  
  69. // LIST OF ALL THE WRAPPERS INTERFACES USED IN THE SCRIPT
  70. var Wrappers  = new Array(MAXIMUM_Scanners);
  71.  
  72. Wrappers[0] = "Wrapper0";
  73. Wrappers[1] = "Wrapper1";
  74. Wrappers[2] = "Wrapper2";
  75. Wrappers[3] = "Wrapper3";
  76. Wrappers[4] = "Wrapper4";
  77. Wrappers[5] = "Wrapper5";
  78. Wrappers[6] = "Wrapper6";
  79. Wrappers[7] = "Wrapper7";
  80. Wrappers[8] = "Wrapper8";
  81. Wrappers[9] = "Wrapper9";
  82. /*********************************************************************************/
  83.  
  84. // LIST OF ALL THE IMAGES ID USED IN THE PAGE
  85.  
  86. var Images  = new Array(MAXIMUM_Scanners);
  87. Images[0] = "Image0";
  88. Images[1] = "Image1";
  89. Images[2] = "Image2";
  90. Images[3] = "Image3";
  91. Images[4] = "Image4";
  92. Images[5] = "Image5";
  93. Images[6] = "Image6";
  94. Images[7] = "Image7";
  95. Images[8] = "Image8";
  96. Images[9] = "Image9";
  97. /*********************************************************************************/
  98.  
  99. // LIST OF ALL THE ERRORCOLOR ID USED IN THE PAGE
  100.  
  101. var ErrorColors  = new Array(MAXIMUM_Scanners);
  102. ErrorColors[0] = "ErrorColor0";
  103. ErrorColors[1] = "ErrorColor1";
  104. ErrorColors[2] = "ErrorColor2";
  105. ErrorColors[3] = "ErrorColor3";
  106. ErrorColors[4] = "ErrorColor4";
  107. ErrorColors[5] = "ErrorColor5";
  108. ErrorColors[6] = "ErrorColor6";
  109. ErrorColors[7] = "ErrorColor7";
  110. ErrorColors[8] = "ErrorColor8";
  111. ErrorColors[9] = "ErrorColor9";
  112. /*********************************************************************************/
  113. window.onload = fnInit;
  114. function fnInit()
  115. {
  116.     // load the resource document so we can use the resources right away
  117.     LoadResourceDoc();
  118.     str = window.location.protocol;
  119.     if ( str != "" )
  120.     {
  121.       str.toLowerCase();
  122.       offset = str.indexOf("res:");
  123.       if (offset == 0 )
  124.           bFromNSW = true;
  125.       else
  126.           bFromNSW = false;
  127.     }        
  128.     // Set the windows status bar
  129.     str = parent.GetString("STATUSBAR_MAIN", "", "");
  130.     if ( !parent.bFromNSW )
  131.         str += parent.GetString("STATUSBAR_ONLINE", "", "");
  132.     window.status = str;
  133.   
  134.     object_coll = document.all.tags("OBJECT");                    //get collection of all the OBJECT tags     
  135.     font_coll   = scanners_frame.document.body.all.tags("FONT");    //get collection of all the FONT tags 
  136.     images_coll = scanners_frame.document.body.all.tags("IMG");    //get collection of all the IMG tags 
  137.     
  138.     buttons_frame.MultiPurposeButton.style.backgroundImage = "url(button_up.gif)";
  139.     bInitDone = true;
  140. }
  141. /*********************************************************************************/
  142.  
  143. document.onstop = fnStopper;
  144.  
  145. function fnStopper()
  146. {
  147.  if(!IsOBCFinished)
  148.    { 
  149.     if(ButtonState == STOP_Scan)
  150.         object_coll(Wrappers[ScannerNumber]).StopScan();
  151.     else if(ButtonState == STOP_Fix)
  152.     {
  153.         // stop scanning and fixing (in case we are in silent scan)
  154.         object_coll(Wrappers[Scanner_With_Errors[ScannerIndex]]).StopFix();
  155.         object_coll(Wrappers[Scanner_With_Errors[ScannerIndex]]).StopScan();
  156.     }
  157.     // The scanner is stopped before the Stop functions return.
  158.     // This is important because there is no way to determine when
  159.     // the scanner has stopped if the page is being unloaded.
  160.     Wrapper0.SetOBCIdle();
  161.     IsOBCFinished = true;
  162.    }
  163. }
  164.  
  165.  
  166. window.onunload = fnUnInit;
  167.  
  168. function fnUnInit()
  169. {
  170.  if(!bInitDone)
  171.     fnInit();
  172.  
  173.  if(!IsOBCFinished)
  174.    { 
  175.     if(ButtonState == STOP_Scan)
  176.         object_coll(Wrappers[ScannerNumber]).StopScan();
  177.     else if(ButtonState == STOP_Fix)
  178.     {
  179.         // stop scanning and fixing (in case we are in silent scan)
  180.         object_coll(Wrappers[Scanner_With_Errors[ScannerIndex]]).StopFix();
  181.         object_coll(Wrappers[Scanner_With_Errors[ScannerIndex]]).StopScan();
  182.     }
  183.     // The scanner is stopped before the Stop functions return.
  184.     // This is important because there is no way to determine when
  185.     // the scanner has stopped if the page is being unloaded.
  186.     Wrapper0.SetOBCIdle();
  187.     IsOBCFinished = true;
  188.    }
  189.  scanners_frame.document.all.scanners_list.style.display = 'none';
  190.  scanners_frame.document.all.welcome.style.display = 'block';
  191.  
  192.  if(CLSID_Number != null)
  193.     delete CLSID_Number;
  194.  if(pict != null)
  195.     delete pict;
  196.  if(ScannerErrors != null)
  197.     delete ScannerErrors;
  198.  if(Wrappers != null)
  199.     delete Wrappers;
  200.  if(Images != null)
  201.     delete Images;
  202.  if(ErrorColors != null)
  203.     delete ErrorColors;
  204.  if(Scanner_With_Errors != null)
  205.     delete Scanners_With_Errrors;
  206.  if(Scanner_With_Errors_Info != null)
  207.     delete Scanners_With_Errrors_Info;
  208. }
  209.  
  210. /*********************************************************************************/
  211. // THIS FUNCTION IS USED WHEN SCANNER IS TO BE STARTED 
  212. function Run_Scanner()
  213. {   
  214.     var InitError;
  215.     InitError = object_coll(Wrappers[ScannerNumber]).Initialize(CLSID_Number[ScannerNumber]);
  216.     if (InitError == 0)
  217.     {
  218.         // wrapper initialized without errors, proceed with scanning
  219.         object_coll(Wrappers[ScannerNumber]).StartScan();        
  220.         scanners_frame.Update_Image(ScannerNumber,1);
  221.     }
  222.     else if(InitError == 1)
  223.     {
  224.         // wrapper could not initialize (the scanner may not be installed)
  225.         // update UI appropriately and move to next scanner
  226.         OnScanDone(false);
  227.     }
  228.  }    
  229.  
  230. /*********************************************************************************/
  231. // ONCE ERRORS ARE FOUND AFTER SCANNER IS DONE, THIS FUNCTION IS USED TO FIX THE ERROR
  232.  
  233. function Fix_Errors( )
  234. {
  235.   
  236.   buttons_frame.scan_complete_message.innerText = NumFixedErrors + GetString("OF", "", "") + TotalNumErrors + GetString("ERRORS_ARE_FIXED", "", "");
  237.   object_coll(Wrappers[Scanner_With_Errors[ScannerIndex]]).Fix();
  238.     
  239.   MessageString = parent.GetString("PLEASE_WAIT", "", "");
  240.  
  241.   scanners_frame.Update_Error(Scanner_With_Errors[ScannerIndex],MessageString,"Red",false);
  242.   scanners_frame.Update_Image(Scanner_With_Errors[ScannerIndex],1);
  243. }
  244.  
  245. /*********************************************************************************/
  246. function OnScanDone(bSuccessful)
  247. {
  248.     scanners_frame.Update_UI(bSuccessful);
  249.  
  250.     buttons_frame.document.body.all.scan_complete_message.innerText = ScannerNumber + 1 + GetString("OF", "", "") + NumberOfScanners + GetString("SCAN_COMPLETE_MESSAGE", "", "");
  251.     ScannerNumber++;
  252.     
  253.     buttons_frame.Update_ProgressBar(START_Scan_OR_Rescan);
  254.     
  255.     if(ScannerNumber < NumberOfScanners)
  256.         Run_Scanner();
  257.     else
  258.     {    
  259.         IsOBCFinished = true;
  260.         buttons_frame.Set_Button_Text(true);
  261.         StopScanUpdateUI();
  262.     }
  263.     
  264. }
  265. /*********************************************************************************/
  266. function GetDescription( )
  267. {
  268.  var Message1 = parent.GetString("UNABLE_TO_FIX_ERRORS", "", "");
  269.  
  270.  switch(Scanner_With_Errors[ScannerIndex])
  271.  {
  272.   case REGISTRY_Doctor:
  273.   case WIN_Reg_Scan:
  274.   case PROGRAM_Integrity_Scan:
  275.   case SHORTCUT_Scan:
  276.        Message1 = parent.GetString("NORTON_WIN_DOCTOR", "", "");
  277.        break;
  278.   case DISK_Doctor:
  279.        Message1 = parent.GetString("NORTON_DISK_DOCTOR", "", "");     
  280.        break;
  281.   case FREE_Space_Scan:
  282.        Message1 = parent.GetString("CLEANSWEEP", "", "");     
  283.        break;    
  284.   case DISK_Fragmentation_Scan:
  285.        Message1 = parent.GetString("SPEED_DISK", "", "");     
  286.        break;
  287.   case VIRUS_Definition_Files_Checker:
  288.          Message1 = parent.GetString("LIVE_UPDATE", "", "");
  289.          break;
  290.   case NAV_Autoprotect_Checker:
  291.          Message1 = parent.GetString("AUTO_PROTECT", "", "");
  292.        break;
  293.   case NAV_Last_Scan_Checker:
  294.          Message1 = parent.GetString("SCAN_FOR_VIRUSES", "", "");
  295.          break;
  296.  }
  297.  return Message1;
  298. }
  299. function GetAppendTextToLink( )
  300. {
  301.  var Message2;
  302.  switch(Scanner_With_Errors[ScannerIndex])
  303.  {
  304.   case WIN_Reg_Scan:
  305.   case PROGRAM_Integrity_Scan:
  306.   case REGISTRY_Doctor:
  307.   case SHORTCUT_Scan:
  308.   case VIRUS_Definition_Files_Checker:
  309.   case DISK_Doctor:
  310.   case DISK_Fragmentation_Scan:
  311.        Message2 = parent.GetString("RUN", "", "");
  312.          break;
  313.   case NAV_Last_Scan_Checker:
  314.          Message2 = parent.GetString("USE_NORTON_ANTIVIRUS_TO", "", "");
  315.          break;
  316.  }
  317.  return Message2;
  318. }
  319. function GetNoPointProductMsg(iScannerIndex)
  320. {
  321.     var Message;
  322.     switch(iScannerIndex)
  323.     {
  324.         case WIN_Reg_Scan:
  325.         case PROGRAM_Integrity_Scan:
  326.         case REGISTRY_Doctor:
  327.         case SHORTCUT_Scan:
  328.         case DISK_Doctor:
  329.         case DISK_Fragmentation_Scan:
  330.             Message = GetString("INSTALL_POINTPRODUCT_NU", "", "");
  331.             break;
  332.         case FREE_Space_Scan:
  333.             Message = GetString("INSTALL_POINTPRODUCT_NCS", "", "");
  334.             break;
  335.         case VIRUS_Definition_Files_Checker:
  336.         case NAV_Autoprotect_Checker:
  337.         case NAV_Last_Scan_Checker:
  338.             Message = GetString("INSTALL_POINTPRODUCT_NAV", "", "");
  339.             break;
  340.     }
  341.     return Message;
  342. }
  343.  
  344. function GetProductInstalledError(iScannerIndex)
  345. {
  346.     return object_coll(Wrappers[iScannerIndex]).CheckProductInstalled(CLSID_Number[iScannerIndex]);
  347. }
  348.  
  349. /*********************************************************************************/
  350. function OnSilentScan()
  351. {
  352.   var MessageString;        // string to display when all fixing is over (so links don't appear right away)
  353.   var tmpMessageString;     // string to display right now
  354.   var NewDescription = "";
  355.   var Color="Green";
  356.   var NumErrorsFoundAgain = object_coll(Wrappers[Scanner_With_Errors[ScannerIndex]]).numErrors;
  357.   if(NumErrorsFoundAgain <= 0)
  358.   {        
  359.     NumFixedErrors += Errors_before_another_scan;
  360.     MessageString = parent.GetString("ERRORS_FIX_MESSAGE", "", "");
  361.     tmpMessageString = MessageString;
  362.   }        
  363.   else 
  364.   { 
  365.     if(NumErrorsFoundAgain < Errors_before_another_scan)
  366.         NumFixedErrors += Errors_before_another_scan - NumErrorsFoundAgain;
  367.     var Message1 = GetDescription();
  368.     var Message2 = GetAppendTextToLink();
  369.  
  370.     var ProductInstalledError = 0;
  371.     ProductInstalledError = GetProductInstalledError(Scanner_With_Errors[ScannerIndex]);
  372.     if(ProductInstalledError)
  373.     {
  374.          // update scanner description to tell user to install point product
  375.         NewDescription = GetNoPointProductMsg(Scanner_With_Errors[ScannerIndex]);
  376.     }
  377.     if((Scanner_With_Errors[ScannerIndex] != NAV_Autoprotect_Checker)&&(Scanner_With_Errors[ScannerIndex] != FREE_Space_Scan))
  378.        {  
  379.        if(ProductInstalledError)
  380.        {
  381.             MessageString = Message2 + Message1;
  382.             tmpMessageString = MessageString;
  383.        }
  384.        else
  385.        {
  386.             MessageString = '<U STYLE="cursor:hand;font-weight: bold" OnClick="LaunchPointProduct('+Scanner_With_Errors[ScannerIndex]+',this)">'+ Message1 +'</U>'+ Message2;
  387. /*            MessageString = Message2 +'<U STYLE="cursor:hand;font-weight: bold" OnClick="LaunchPointProduct('+Scanner_With_Errors[ScannerIndex]+',this)">'+ Message1 +'</U>';*/
  388. /* sshirai */
  389.             tmpMessageString = Message2 + Message1;
  390.        }
  391.     }
  392.     else
  393.     {
  394.         MessageString = Message1; 
  395.         tmpMessageString = MessageString;
  396.     }
  397.  
  398.     Color = "Red";
  399.   }
  400.   buttons_frame.scan_complete_message.innerText = NumFixedErrors + parent.GetString("OF", "", "") + TotalNumErrors + parent.GetString("ERRORS_ARE_FIXED", "", "");
  401.   // store the real error string away to update later, show the temporary string now
  402.   scanners_frame.Update_Error(Scanner_With_Errors[ScannerIndex],tmpMessageString,Color,false);
  403.   Scanner_With_Errors_Info[ScannerIndex] = new ErrorInfo(MessageString, Color, false);
  404.   scanners_frame.Update_Image(Scanner_With_Errors[ScannerIndex],2);
  405.   if (NewDescription != "")
  406.     scanners_frame.Update_Description(Scanner_With_Errors[ScannerIndex], NewDescription);
  407.   buttons_frame.Update_ProgressBar(START_Fix);
  408.   
  409.   ScannersFixed++;
  410.   ScannerIndex++;
  411.   if(ScannerIndex < TotalScanners_With_Errors)
  412.     Fix_Errors( );
  413.   else
  414.   {
  415.     TotalScanners_With_Errors = 0;
  416.     ScannerIndex = 0;
  417.     IsOBCFinished = true; 
  418.     buttons_frame.Set_Button_Text(false);
  419.     StopScanUpdateUI();
  420.     UpdateErrorMessages();      // show the error messages, with the links if appropriate
  421.   }
  422. }
  423. /*********************************************************************************/
  424. function UpdateErrorMessages()
  425. {
  426.     var i;
  427.     var MessageString;
  428.     var Color;
  429.     var IsBold;
  430.     
  431.     for (i=0; i < ScannersFixed; i++)
  432.     {
  433.         MessageString = Scanner_With_Errors_Info[i].Message;
  434.         Color = Scanner_With_Errors_Info[i].Color;
  435.         IsBold = Scanner_With_Errors_Info[i].IsBold;
  436.         scanners_frame.Update_Error(Scanner_With_Errors[i], MessageString, Color, IsBold);
  437.     }
  438. }
  439.  
  440. /*********************************************************************************/
  441. function OnErrorsFixed()
  442. {
  443.   
  444.   var ScannerTableRowID = "ScannerTableRow" + ScannerIndex;
  445.   scanners_frame.document.body.all.item(ScannerTableRowID).scrollIntoView(true);
  446.   
  447.   Errors_before_another_scan = object_coll(Wrappers[Scanner_With_Errors[ScannerIndex]]).numErrors;
  448.   object_coll(Wrappers[Scanner_With_Errors[ScannerIndex]]).Initialize(CLSID_Number[Scanner_With_Errors[ScannerIndex]]); 
  449.   object_coll(Wrappers[Scanner_With_Errors[ScannerIndex]]).StartScan();        
  450. }
  451.  
  452. /*********************************************************************************/
  453. // THIS IS CALLBACK FUNCTION BY THE INTERFACE TO COMMUNICATE BETWEEN INTERFACE AND 
  454. // JAVASCRIPT
  455.  
  456. function ObjectSink(msg, param1, param2)
  457. {
  458.    switch(msg)
  459.    {
  460.     case SM_ScanDone:
  461.         if(ButtonState != STOP_Fix)
  462.         {
  463.             if(ButtonState == STOP_Scan)
  464.                 OnScanDone(true);
  465.             else
  466.                 buttons_frame.EnableButton();    
  467.         }
  468.         else
  469.            OnSilentScan();
  470.         break;    
  471.  
  472.     case SM_OneProblemFixed:
  473.           if(param1 <= 0)
  474.               OnErrorsFixed();
  475.         break;
  476.     case SM_Abort:
  477.             buttons_frame.EnableButton();
  478.         break;
  479.  
  480.   }    
  481.     
  482. }
  483. /*********************************************************************/
  484. function Set_Defaults()
  485. {
  486.   scanners_frame.Set_Defaults();
  487. }
  488. /*********************************************************************/
  489. function Update_Image(Index,Gif_Number )
  490. {
  491.   scanners_frame.Update_Image(Index,Gif_Number);
  492. }
  493. /*********************************************************************/
  494. function Update_Error(Index,ErrorString,ColorName,IsBold)
  495. {
  496.   scanners_frame.Update_Error(Index,ErrorString,ColorName,IsBold);
  497. }
  498.  
  499. /*********************************************************************/
  500. function Update_ProgressBar(Status)
  501. {
  502.   buttons_frame.Update_ProgressBar(Status);
  503. /*********************************************************************/
  504. // Inform user that OBC can't run while a point product is running
  505. function ShowError_PointProductRunning()
  506. {
  507.     // point product is running alone, so we can't start scanning
  508.     // or fixing, display the message and stop
  509.     var CloseAppMessage = parent.GetString("CLOSE_POINT_PRODUCT_MESSAGE", "", "");
  510.     alert(CloseAppMessage);
  511.     buttons_frame.Set_Button_Text(true);
  512. }
  513. /*********************************************************************/
  514. function StartScanUpdateUI()
  515. {
  516.     var SetOBCBusyError;
  517.     SetOBCBusyError = Wrapper0.SetOBCBusy();
  518.     if (SetOBCBusyError == 0)
  519.     {
  520.         scanners_frame.SetBusy(true);
  521.         return true;
  522.     }
  523.     else
  524.     {
  525.         // means point product is running alone, so we can't start scanning
  526.         // display the message and force the user to rescan
  527.         ShowError_PointProductRunning();
  528.         buttons_frame.document.body.all.scan_complete_message.innerText = ScannerNumber + GetString("OF", "", "") + NumberOfScanners + GetString("SCAN_COMPLETE_MESSAGE", "", "");
  529.         return false;
  530.     }
  531. }
  532.  
  533. /*********************************************************************/
  534. function StopScanUpdateUI()
  535. {
  536.     Wrapper0.SetOBCIdle();
  537.     scanners_frame.SetBusy(false);
  538. }
  539.  
  540. /*********************************************************************/
  541. function StartFixUpdateUI()
  542. {
  543.     var SetOBCBusyError;
  544.     SetOBCBusyError = Wrapper0.SetOBCBusy();
  545.     if (SetOBCBusyError == 0)
  546.     {
  547.         scanners_frame.SetBusy(true);
  548.         return true;
  549.     }
  550.     else
  551.     {
  552.         // means point product is running alone, so we can't start fixing
  553.         // display the message and force the user to rescan
  554.         ShowError_PointProductRunning();
  555.         buttons_frame.scan_complete_message.innerText = NumFixedErrors + GetString("OF", "", "") + TotalNumErrors + GetString("ERRORS_ARE_FIXED", "", "");
  556.         return false;
  557.     }
  558. }
  559.  
  560. /*********************************************************************/
  561. function StopFixUpdateUI()
  562. {
  563.     Wrapper0.SetOBCIdle();
  564.     scanners_frame.SetBusy(false);
  565. }
  566.  
  567. function LoadRes()
  568. {
  569.     // load the resource document so we can use the resources right away
  570.     LoadResourceDoc();    
  571. }