home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 8 Other / 08-Other.zip / e52os2m.exe / index.gur < prev    next >
Text File  |  1998-05-27  |  106KB  |  3,213 lines

  1. Content-type: multipart/mixed; boundary=0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2.  
  3. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  4. Content-Disposition: file-data; filename="badsec.htm"
  5.  
  6. <html>
  7. <h2>Leaving Guru</h2>
  8. You can not continue with this task without proper security.  Obtain the correct
  9. password and reload this page to restart the Guru.
  10.  
  11. <script>
  12. function MSPathFix(path) {
  13.         colon = path.indexOf( ":" );
  14.         if ( colon == 1 ) return path.substring( path.indexOf( "/", 1 ));
  15.         return path;
  16. }
  17.  
  18. parent.Que.location="blank.htm"
  19. function leave() {
  20.     if ( confirm( "You are about to leave Guru.  Are you sure?" ) == true ) {
  21.         parent.location=parent.location.protocol + "//" + parent.location.host +MSPathFix(parent.location.pathname)+"/../../gurupage"
  22.     }
  23. }
  24. </script>
  25. <p><form><input type=button value="Exit Guru" onClick=leave()></form>
  26. </html>
  27.  
  28. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  29. Content-Disposition: file-data; filename="blank.htm"
  30.  
  31.  
  32.  
  33. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  34. Content-Disposition: file-data; filename="left.htm"
  35.  
  36. <html>
  37. <h2>Leaving Guru</h2>
  38. You have left the guidance of Guru.  Press the back button a couple of
  39. times to return.
  40.  
  41. <script>
  42. function MSPathFix(path) {
  43.         colon = path.indexOf( ":" );
  44.         if ( colon == 1 ) return path.substring( path.indexOf( "/", 1 ));
  45.         return path;
  46. }
  47.  
  48. function leave() {
  49.     if ( confirm( "You are about to leave Guru.  Are you sure?" ) == true ) {
  50.         parent.location=parent.location.protocol + "//" + parent.location.host +MSPathFix(parent.location.pathname)+"/../../gurupage"
  51.     }
  52. }
  53. document.write( '<p><form><input type=button value="Exit Guru" onClick=leave()></form>' )
  54. </script>
  55. </html>
  56.  
  57. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  58. Content-Disposition: file-data; filename="index"
  59.  
  60. <html>
  61. <title>Guru</title>
  62. <body background="background.gif">
  63. <a href="main"><img src="main.gif" border=2 ></a><img src="Bgurupag.gif" border=0 height=56 width=253><a href="/help/gurupage.htm" target="help" onClick="window.open( '', 'help', 'toolbar=0,location=0,directories=0,menubar=0,resizable=1,scrollbars=1')" target="help"><img src="helpicon.gif" alt="???" border=2 ></a>
  64. <hr>
  65. <p>Welcome to Guru! A help facility only available
  66. with Netfinity Webability.</p>
  67.  
  68. <p>
  69. Guru provides you with step-by-step directions on how to quickly and
  70. easily configure Netfinity's powerful features enhancing your ability to
  71. effectively manage your PC LAN. Configuring Netfinity tasks has never been
  72. simpler with Guru's context-sensitive help to guide you, so you can "Learn
  73. by doing".</p>
  74.  
  75. <noscript>
  76. <b>Javascript is either unsupported or disabled on your WWW browser. Guru will
  77. not function correctly without Javascript and frames. 
  78. Enable Javascript or change browsers and reload this page.</b>
  79. </noscript>
  80.  
  81. <p>Now! Let Guru guide you through configuring a Netfinity Service, by
  82. clicking on the Service Name text. </p>
  83.  
  84.  
  85. <h3>Select one of the following Gurus: </h3>
  86.  
  87. <table>
  88. <table CELLPADDING=10 CELLSPACING=10 WIDTH=0 BORDER=2>
  89. <tr>
  90. <td><img src="gsysalrt.gif" border=0 height=60 width=60></td>
  91.  
  92. <td>
  93. <center><dd><b><font SIZE=+1>Want to avert a "low disk space
  94. condition" before it becomes critical??</font> 
  95. <br>
  96. <br></b>You can use the <b>
  97. ++securitycheck:  AlertMgr MonSvc
  98. <a href="gurupage/sysmon.htm?page=sysmon">
  99. ++securitycheck: 
  100. System Monitor Guru</a></b> to monitor capacity constraints of your computer(s)
  101. and have Netfinity inform you when a resource reaches a preset limit such
  102. as low or high CPU activity, memory usage, etc.
  103. --securitycheck:  AlertMgr MonSvc
  104. <p><b>You cannot use this guru unless you have access to Alert Manager and
  105. System Monitor.</b>
  106. ++securitycheck:
  107.  
  108. </dd></center>
  109. </td>
  110. </tr>
  111.  
  112. <tr>
  113. <td><img src="gfilalrt.gif" border=0 height=60 width=60></td>
  114.  
  115. <td>
  116. <center><dd><b><font SIZE=+1>Want to know when a system file gets changed
  117. or deleted?? 
  118. <br>
  119. <br></font></b>The <b>
  120. ++securitycheck:  AlertMgr CFMBase
  121. <a href="gurupage/critfile.htm?page=critfile">
  122. ++securitycheck:
  123. Critical File Monitor Guru</a></b> helps you select what files you want to keep
  124. an eye on and ensure you are notified when one of them is changed, created,
  125. or deleted.
  126. --securitycheck:  AlertMgr CFMBase
  127. <p><b>You cannot use this guru unless you have access to Alert Manager and
  128. Critical File Monitor.</b>
  129. ++securitycheck:
  130. </dd></center>
  131. </td>
  132. </tr>
  133.  
  134. <tr>
  135. <td><img src="gproalrt.gif" border=0 height=60 width=60></td>
  136.  
  137. <td>
  138. <center><dd><b><font SIZE=+1>Do you have programs that you always count
  139. on to be running??</font></b> 
  140. <br>
  141. <br>Your network client program keeps you in touch with your companies'
  142. networked servers, and the <b>
  143. ++securitycheck:  AlertMgr ProcMgr
  144. <a href="gurupage/procman.htm?page=procman">
  145. ++securitycheck:
  146. Process Manager Guru</a></b> will help you know when that program stops
  147. in order to initiate an automated recovery task. </b>
  148. --securitycheck:  AlertMgr ProcMgr
  149. <p><b>You cannot use this guru unless you have access to Alert Manager and
  150. Process Manager.</b>
  151. ++securitycheck:
  152. </dd></center>
  153. </td>
  154. </tr>
  155.  
  156. <tr>
  157. <td><img src="grepschd.gif" border=0 height=60 width=60></td>
  158.  
  159. <td>
  160. <center><dd><b><font SIZE=+1>Have a number of machines to
  161. configure with similar settings??</font></b> 
  162. <br>
  163. <br>The <b>
  164. ++securitycheck:  SCFMgr SCH_BASE_NODE
  165. <a href="gurupage/repli.htm?page=repli">
  166. ++securitycheck:
  167. Service Configuration Guru</a></b> allows you to quickly replicate Netfinity's system
  168. management settings to one or more machines now, or at a later scheduled
  169. time.</b>
  170. --securitycheck:  SCFMgr SCH_BASE_NODE
  171. <p><b>You cannot use this guru unless you have access to Event Scheduler and
  172. Service Configuration Manager.</b>
  173. ++securitycheck:
  174. </dd></center>
  175. </td>
  176. </tr>
  177.  
  178. <tr>
  179. <td><img src="gsecrsm.gif" border=0 height=60 width=60></td>
  180.  
  181. <td>
  182. <center><dd><b><font SIZE=+1>Need help with security parameters to
  183.  access remote machines??</font></b>
  184. <br>
  185. <br>Setup Netfinity system security passwords and user ID's used
  186. to provide asset protection as well as seamless access to manage
  187. networked PC's with the <b>
  188. ++securitycheck:  NetMgr SecMgr
  189. <a href="gurupage/secout.htm?page=secout">
  190. ++securitycheck:
  191. Outgoing Security Guru</a></b>.
  192. --securitycheck:  NetMgr SecMgr
  193. <p><b>You cannot use this guru unless you have access to Security Manager
  194. and Remote System Manager.</b>
  195. ++securitycheck:
  196. </dd></center>
  197. </td>
  198. </tr>
  199. </table>
  200. </table>
  201. <hr>
  202. <a href=main><img alt="*Main Menu*" src=/bigbutt.gif></a><br>
  203. <a href=/index>Home</a>
  204.  
  205. </html>
  206. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  207. Content-Disposition: file-data; filename="SYSMON/ADDED.HTM"
  208.  
  209. <html>
  210. <script>
  211.  
  212. function MSPathFix(path) {
  213.         colon = path.indexOf( ":" );
  214.         if ( colon == 1 ) return path.substring( path.indexOf( "/", 1 ));
  215.         return path;
  216. }
  217.  
  218. function GetPath() {
  219.     var i = MSPathFix(location.pathname).indexOf( "/", 1 )
  220.     return MSPathFix(location.pathname).substring( 1, i )
  221. }
  222.  
  223. function Que( name ) {
  224.   if ( name.length > 8 ) name = name.substring( 0, 8 )
  225.   name = "/gurupage/" + name + ".htm?page=sysmon"
  226.   parent.Que.location=name
  227. }
  228.  
  229. function CheckArg( name ) {
  230.   startIndex = location.search.indexOf( "?" + name + "=" )
  231.   if ( startIndex == -1 ) {
  232.     startIndex = location.search.indexOf( "&" + name + "=" )
  233.   }
  234.   if ( startIndex == -1 ) return false
  235.   return true
  236. }
  237.    
  238. function GetArg( name ) {
  239.   startIndex = location.search.indexOf( "?" + name + "=" )
  240.   if ( startIndex == -1 ) {
  241.     startIndex = location.search.indexOf( "&" + name + "=" )
  242.   }
  243.   if ( startIndex == -1 ) return ""
  244.   endIndex = location.search.indexOf( "&", startIndex + 1 )
  245.   startIndex = startIndex + 2 + name.length
  246.  
  247.   var value
  248.   if ( endIndex == -1 ) {
  249.     value = location.search.substring( startIndex,
  250.                                       location.search.length )
  251.   } else {
  252.     value = location.search.substring( startIndex, endIndex )
  253.   }
  254.   return unescape( value )
  255. }
  256.  
  257.  
  258. function DisplayCheckBox( severity, err, errvalue ) {
  259.   document.write( "<p><tr><td><input type=checkbox checked " )
  260.   document.write( "name=severity " + "value=" );
  261.   document.write( severity + ">" );
  262.   document.writeln( " " + severity );
  263.   document.writeln( "</td>" );
  264.   document.write( "<p><td><input type=checkbox checked " )
  265.   document.write( "name=err " + "value=" );
  266.   document.write(  errvalue + ">" );
  267.   document.writeln( " " + err );
  268.   document.writeln( "</td></tr>" );
  269. }
  270.  
  271. function ValuesPresent() {
  272.   var count = 0
  273.   if ( GetArg( "hierrval" ) != "" ) { count++ }
  274.   if ( GetArg( "hiwarnval" ) != "" ) { count++ }
  275.   if ( GetArg( "normnot" ) != "" ) { count++ }
  276.   if ( GetArg( "lowarnval" ) != "" ) { count++ }
  277.   if ( GetArg( "loerrval" ) != "" ) { count++ }
  278.   if ( count > 0 ) return "true"
  279.   return "false"
  280. }
  281.  
  282. function NotifyPresent() {
  283.   var count = 0
  284.   if ( GetArg( "hierrval" ) != "" && GetArg( "hierrnot" ) != "" ) { count++ }
  285.   if ( GetArg( "hiwarnval" ) != "" && GetArg( "hiwarnnot" ) != "" ) { count++ }
  286.   if ( GetArg( "normnot" ) != "" ) { count++ }
  287.   if ( GetArg( "lowarnval" ) != "" && GetArg( "lowarnnot" ) != "" ) { count++ }
  288.   if ( GetArg( "loerrval" ) != "" && GetArg( "loerrnot" ) != "" ) { count++ }
  289.   if ( count > 0 ) return "true"
  290.   return "false"
  291. }
  292.  
  293. //This function cleans up State Monitor Alert Type for the value after the ":"
  294. function StateMonAType( alerttype ) {
  295.   return alerttype.substring( alerttype.indexOf(':') + 1, alerttype.length ) 
  296. }
  297.  
  298. function DoIt()  {
  299.   var theForm = document.forms[0]
  300.   var ccount=0
  301.   var cccount=0
  302.   var asev = ""
  303.   var asevset = 0
  304.   var atype = ""
  305.   var atypeError = 0
  306.   var atypeWarning = 0
  307.  
  308.   //if it is a state monitor
  309.   if ( GetArg ( "statesel" ) ) {
  310.     asev += "<option selected>" + GetArg( "sev" )
  311.     atype += "<option selected>" + StateMonAType( GetArg( "alerttype" ) )
  312.     ccount++
  313.     cccount++
  314.   } 
  315.   else {
  316.     for ( i = 0; i < 8; i++ ) {
  317.       asevset = 0
  318.       for( k = 0; k < theForm.elements.length; k++ ) {
  319.         if ( theForm.elements[k].name == "severity" && theForm.elements[k].checked ) {
  320.            if ( theForm.elements[k].value == i &&  asevset == 0 ) {
  321.              asev += "<option selected>" + theForm.elements[k].value;
  322.              asevset = 1
  323.            }
  324.         ccount++;
  325.         }
  326.       }
  327.     }
  328.  
  329.     for( i = 0; i < theForm.elements.length; i++ ) {
  330.       if ( theForm.elements[i].name == "err" && theForm.elements[i].checked  ) {
  331.         if ( theForm.elements[i].value == "Error" && atypeError == 0 ) {
  332.           atype += "<option selected>" + theForm.elements[i].value;
  333.           atypeError = 1
  334.         }
  335.         if ( theForm.elements[i].value == "Warning" && atypeWarning == 0 ) {
  336.           atype += "<option selected>" + theForm.elements[i].value;
  337.           atypeWarning = 1
  338.         }
  339.         cccount++;
  340.       }
  341.     }
  342.   }
  343.  
  344.   if ( ccount == 0 | cccount == 0 ) {
  345.     alert( "At least one threshold must be selected" )
  346.   } 
  347.   else {
  348.     var args;
  349.     args = "page=alertact" + "&qatype=no" + "&atype=" + escape( atype ) 
  350.            + "&qsendid=no&sendid=" + escape( "<option value=\"\" selected>" ) 
  351.            + location.hostname + "&qaatype=no&"
  352.     // Set application ID correctly for State/nonState monitors
  353.     if ( GetArg ( "statesel" ) ) {
  354.       args += "aatype=" + escape( "<option selected>" + GetArg( "appat") )
  355.     } else {
  356.       args += "aatype=" + escape( "<option selected>0000" )
  357.     }
  358.     args += "&qappid=no&appid=" + escape( "<option selected>MonitorB" ) 
  359.             + "&qasev=no&asev=" + escape( asev ) + "&page=sysmon"
  360.     args = escape( args )
  361.  
  362.     if ( theForm.not.options[theForm.not.selectedIndex].text == location.hostname ) {
  363.       parent.webfin.location="/guruproxy/" + args + "/alertmgr/actions"
  364.     } else {
  365.       parent.webfin.location=location.protocol + "//" + location.host + "/" + GetPath() + 
  366.                             "/guruproxy/" + args + "/alertmgr/actions"
  367.     }
  368.   }
  369. }
  370.  
  371. function leave() {
  372.   if ( confirm( "You are about to leave Guru.  Are you sure?" ) == true ) {
  373.     parent.location=parent.location.protocol + "//" + parent.location.host +parent.location.pathname+"/../../gurupage"
  374.   }
  375. }
  376.  
  377. function DisplaySelection() {
  378.   document.writeln( "<h3>" + "System Monitor Guru" + "</h3>" );
  379.   parent.Que.location="blank.htm"
  380.   //if no notification is set, end
  381.   if ( !(CheckArg("notify")) && !(CheckArg("localnotify")) && !(( NotifyPresent() == "true" ) && (ValuesPresent() =="true")) && !(( GetArg( "local" )) && (ValuesPresent() == "true" )) ) {
  382.      document.writeln( "You have created a System Monitor Threshold with no notification selected. Since Alert Actions do not occur ")
  383.      document.writeln("without notification, no actions will be created from this threshold." )
  384.      document.writeln( "<p><form><input type=button value=\"Exit Guru\" onClick=leave()></form>")
  385.   } 
  386.   else {
  387.     document.writeln( "<form>" );
  388.     document.writeln("To create an Alert Action:")
  389.     document.writeln("<ol>")
  390.     document.writeln( "<li>An Alert Action will be created on: <select name=not onChange=\"Que( 'alertto' )\">" )
  391.     //checking for state monitor values 
  392.     if ( GetArg ( "statesel" ) ) {
  393.       if ( CheckArg( "notify" ) ) {
  394.         document.writeln( "<option selected>" + location.hostname )
  395.       }
  396.       if ( CheckArg("localnotify") ) {
  397.         document.writeln( "<option>" + GetPath() )
  398.       }
  399.       document.writeln( "</select>" )
  400.     }
  401.     else {
  402.       //check for non-state monitor values
  403.       if ( ( NotifyPresent() == "true" )  && ValuesPresent() =="true" )  {
  404.         document.writeln( "<option selected>" + location.hostname )
  405.       }
  406.       if ( ( GetArg( "local" ) && ValuesPresent() == "true" ) ) {
  407.         document.writeln( "<option>" + GetPath() )
  408.       }
  409.       document.writeln( "</select>" )
  410.       
  411.       //display threshold values for non-state monitors
  412.       document.writeln( "<li>Confirm the value(s) for the" + " <em>" )
  413.       document.writeln( GetArg( "thresholdname" ) )
  414.       document.writeln( "</em> " + " threshold that you created:" );
  415.       document.writeln( "<table><tr><th>Severity</th><th>Values</th></tr>" );
  416.       if ( GetArg( "hierrval" ) != ""  && GetArg( "hierrnot" ) != "" ) {
  417.         DisplayCheckBox( GetArg( "hierrsev" ), "Above or equal to error", "Error" )
  418.         }
  419.       if ( GetArg( "hiwarnval" ) != ""  && GetArg( "hiwarnnot" ) != "" ) {
  420.         DisplayCheckBox( GetArg( "hiwarnsev" ), "Above or equal to warning", "Warning" )
  421.       }
  422.       if ( GetArg( "normnot" ) != "" ) {
  423.         DisplayCheckBox( GetArg( "normsev" ), "Return to normal", "Error" )
  424.       }
  425.       if ( GetArg( "lowarnval" ) != "" && GetArg( "lowarnnot" ) != "" ) {
  426.         DisplayCheckBox( GetArg( "lowarnsev" ), "Below or equal to warning", "Warning" )
  427.       }
  428.       if ( GetArg( "loerrval" ) != "" && GetArg( "loerrnot" ) != "" ) {
  429.         DisplayCheckBox( GetArg( "loerrsev" ), "Below or equal to error", "Error" )
  430.       }
  431.       document.writeln( "</table>" );
  432.     }  
  433.     document.writeln("<li>Press <b>Set up Alert Action</b>:" + "<p>")
  434.     document.write( "<p><input type=button value=\"" );
  435.     document.write( "Set up Alert Action" );
  436.     document.writeln( "\" onClick=DoIt() >" );
  437.     document.writeln( "</form>" );
  438.     document.write( '</ul><p><form><input type=button value="Exit Guru" onClick=leave()></form>' )
  439.     parent.Que.location="qadded.htm?page=sysmon"
  440.   }
  441. }
  442.  
  443. DisplaySelection();
  444.  
  445. </script>
  446. </html>
  447.  
  448. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  449. Content-Disposition: file-data; filename="SYSMON/ALERTTO.HTM"
  450.  
  451. <html>
  452. The Alert Action will be created on this machine.
  453. </html>
  454.  
  455. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  456. Content-Disposition: file-data; filename="SYSMON/DONE.HTM"
  457.  
  458. <html>
  459. <h3>System Monitor Threshold Guru</h3>
  460.  
  461. <b>Congratulations</b>, you are done! 
  462. <script>
  463. function MSPathFix(path) {
  464.         colon = path.indexOf( ":" );
  465.         if ( colon == 1 ) return path.substring( path.indexOf( "/", 1 ));
  466.         return path;
  467. }
  468.  
  469. function leave() {
  470.         parent.location=parent.location.protocol + "//" + parent.location.host +MSPathFix(parent.location.pathname)+"/../../gurupage"
  471. }
  472. document.write( '<p><form><input type=button value="Exit Guru" onClick=leave()></form>' )
  473. </script>
  474. </html>
  475.  
  476. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  477. Content-Disposition: file-data; filename="SYSMON/DURATION.HTM"
  478.  
  479. <html>
  480. The Duration is the amount of time that the threshold must be exceeded before
  481. an alert is generated.
  482. </html>
  483.  
  484. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  485. Content-Disposition: file-data; filename="SYSMON/DURUNIT.HTM"
  486.  
  487. <html>
  488. The Duration is the amount of time that the threshold must be exceeded before
  489. an alert is generated.
  490. </html>
  491.  
  492. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  493. Content-Disposition: file-data; filename="SYSMON/HIERRNOT.HTM"
  494.  
  495. <html>
  496. If the monitor is at or above this value for the given duration and Notify is checked, an alert with
  497. the selected severity and an error type of <b>Error</b> will
  498. be generated on <script>document.write( location.hostname )</script>.
  499. </html>
  500.  
  501. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  502. Content-Disposition: file-data; filename="SYSMON/HIERRSEV.HTM"
  503.  
  504. <html>
  505. If the monitor is at or above the value for the given duration and Notify is checked, an alert with
  506. the selected severity and an error type of <b>Error</b> will
  507. be generated.
  508. </html>
  509.  
  510. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  511. Content-Disposition: file-data; filename="SYSMON/HIERRVAL.HTM"
  512.  
  513. <html>
  514. If the monitor is at or above this value for the given duration and Notify is checked, an alert with
  515. the selected severity and an error type of <b>Error</b> will
  516. be generated.
  517. </html>
  518.  
  519. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  520. Content-Disposition: file-data; filename="SYSMON/HIWARNNO.HTM"
  521.  
  522. <html>
  523. If the monitor is at or above the value for the given duration and below the
  524. <em>Error if above or equal to</em> value (if present) and Notify is checked, an alert with
  525. the selected severity and an error type of <b>Warning</b> will
  526. be generated on <script>document.write( location.hostname )</script>.
  527. </html>
  528.  
  529. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  530. Content-Disposition: file-data; filename="SYSMON/HIWARNSE.HTM"
  531.  
  532. <html>
  533. If the monitor is at or above the value for the given duration and below the
  534. <em>Error if above or equal to</em> value (if present) and Notify is checked, an alert with
  535. the selected severity and an error type of <b>Warning</b> will
  536. be generated.
  537. </html>
  538.  
  539. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  540. Content-Disposition: file-data; filename="SYSMON/HIWARNVA.HTM"
  541.  
  542. <html>
  543. If the monitor is at or above the value for the given duration and below the
  544. <em>Error if above or equal to</em> value (if present) and Notify is checked, an alert with
  545. the selected severity and an error type of <b>Warning</b> will
  546. be generated.
  547. </html>
  548.  
  549. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  550. Content-Disposition: file-data; filename="SYSMON/LOCAL.HTM"
  551.  
  552. <html>
  553. If checked, alerts will be sent to the Alert Manager on
  554. <script>
  555. function MSPathFix(path) {
  556.         colon = path.indexOf( ":" );
  557.         if ( colon == 1 ) return path.substring( path.indexOf( "/", 1 ));
  558.         return path;
  559. }
  560.  
  561. document.write( 
  562.   MSPathFix(parent.location.pathname).substring(1,MSPathFix(parent.location.pathname).indexOf( "/", 1 )) +
  563.   "." )
  564. </script>
  565. </html>
  566.  
  567. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  568. Content-Disposition: file-data; filename="SYSMON/LOERRNOT.HTM"
  569.  
  570. <html>
  571. If the monitor is at or below the value for the given duration and Notify is checked, an alert with
  572. the selected severity and an error type of <b>Error</b> will
  573. be generated on <script>document.write( location.hostname )</script>.
  574. </html>
  575.  
  576. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  577. Content-Disposition: file-data; filename="SYSMON/LOERRSEV.HTM"
  578.  
  579. <html>
  580. If the monitor is at or below the value for the given duration and Notify is checked, an 
  581. alert with the selected severity and an error type of <b>Error</b> will be generated.
  582. </html>
  583.  
  584. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  585. Content-Disposition: file-data; filename="SYSMON/LOERRVAL.HTM"
  586.  
  587. <html>
  588. If the monitor is at or below the value for the given duration and Notify is checked, an alert with
  589. the selected severity and an error type of <b>Error</b> will
  590. be generated.
  591. </html>
  592.  
  593. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  594. Content-Disposition: file-data; filename="SYSMON/LOWARNNO.HTM"
  595.  
  596. <html>
  597. If the monitor is at or below the value for the given duration and above the
  598. <em>Error if below or equal to</em> value (if present) and Notify is checked, an alert with
  599. the selected severity and an error type of <b>Warning</b> will
  600. be generated on <script>document.write( location.hostname )</script>.
  601. </html>
  602.  
  603. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  604. Content-Disposition: file-data; filename="SYSMON/LOWARNSE.HTM"
  605.  
  606. <html>
  607. If the monitor is at or below the value for the given duration and above the
  608. <em>Error if below or equal to</em> value (if present) and Notify is checked, an alert with
  609. the selected severity and an error type of <b>Warning</b> will
  610. be generated.
  611. </html>
  612.  
  613. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  614. Content-Disposition: file-data; filename="SYSMON/LOWARNVA.HTM"
  615.  
  616. <html>
  617. If the monitor is at or below the value for the given duration and above the
  618. <em>Error if below or equal to</em> value (if present) and Notify is checked, an alert with
  619. the selected severity and an error type of <b>Warning</b> will
  620. be generated.
  621. </html>
  622.  
  623. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  624. Content-Disposition: file-data; filename="SYSMON/NORMNOT.HTM"
  625.  
  626. <html>
  627. An alert with this severity and an error code of <b>Normal</b> will be generated on <script>document.write( location.hostname )</script>
  628. if a warning or error threshold had generated an alert, no threshold values
  629. were continously exceeded for the given duration, and Notify is checked.
  630. </html>
  631.  
  632. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  633. Content-Disposition: file-data; filename="SYSMON/NORMSEV.HTM"
  634.  
  635. <html>
  636. An alert with this severity and an error code of <b>Normal</b> will be generated
  637. if a warning or error threshold had generated an alert, no threshold values
  638. were continously exceeded for the given duration, and Notify is checked.
  639. </html>
  640.  
  641. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  642. Content-Disposition: file-data; filename="SYSMON/PICK.HTM"
  643.  
  644. <html>
  645. <h3>System Monitor Threshold Guru</h3>
  646. This guru helps you define an action for a threshold.  You may use an
  647. existing threshold or create a new one.<p>
  648. To make a new threshold, pick the monitor that you would like to set a threshold on.  (Pick the
  649. monitor by clicking its name.)<p>
  650. To define an action for an existing threshold, click <b>Thresholds</b>.<p>
  651. <script>
  652. parent.Que.location="qpick.htm?page=sysmon"
  653. function MSPathFix(path) {
  654.         colon = path.indexOf( ":" );
  655.         if ( colon == 1 ) return path.substring( path.indexOf( "/", 1 ));
  656.         return path;
  657. }
  658.  
  659. function leave() {
  660.     if ( confirm( "You are about to leave Guru.  Are you sure?" ) == true ) {
  661.         parent.location=parent.location.protocol + "//" + parent.location.host +MSPathFix(parent.location.pathname)+"/../../gurupage"
  662.     }
  663. }
  664. document.write( '<form><input type=button value="Exit Guru" onClick=leave()></form>' )
  665. </script>
  666. </html>
  667.  
  668. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  669. Content-Disposition: file-data; filename="SYSMON/QADDED.HTM"
  670.  
  671. <html>
  672. </html>
  673.  
  674. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  675. Content-Disposition: file-data; filename="SYSMON/QPICK.HTM"
  676.  
  677. <html>
  678. Click on one of the hypertext links.
  679. </html>
  680. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  681. Content-Disposition: file-data; filename="SYSMON/QTHRESH.HTM"
  682.  
  683. <html>
  684. Click on the threshold Name entry box to get started.
  685. </html>
  686.  
  687. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  688. Content-Disposition: file-data; filename="SYSMON/RESEND.HTM"
  689.  
  690. <html>
  691. The Resend Delay specifies the amount of time that the threshold must continue
  692. to be exceeded before another alert is generated.
  693. </html>
  694.  
  695. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  696. Content-Disposition: file-data; filename="SYSMON/RESUNIT.HTM"
  697.  
  698. <html>
  699. The Resend Delay specifies the amount of time that the threshold must continue
  700. to be exceeded before another alert is generated.
  701. </html>
  702.  
  703. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  704. Content-Disposition: file-data; filename="SYSMON/RULES"
  705.  
  706. .*/sysmon.*addgthresh=
  707.         open attrib.htm
  708.     sub \<a href=([^>]*)main">\
  709.         <script>
  710.     function Que( name )  {
  711.         if ( name.length > 8 ) name = name.substring( 0, 8 )
  712.         name = "/gurupage/" + name + ".htm?page=sysmon"
  713.         parent.Que.location=name
  714.         }
  715.         </script>
  716.         \
  717.         sub \<a[^>]*>(<[^>]*Bsysmon.gif[^>]*>)</a>\${1}\
  718.         sub \<[^>]*main.gif[^>]*>\\
  719.         sub \</form>.*\</form>\\
  720.         sub \<[^>]*name=threshold[^>]*\${0} onFocus="Que( 'threshold' )"\
  721.         sub \<[^>]*name=duration[^>]*\${0} onFocus="Que( 'duration' )"\
  722.         sub \<[^>]*name=durunit[^>]*\${0} onFocus="Que( 'durunit' )"\
  723.         sub \<[^>]*name=resend[^>]*\${0} onFocus="Que( 'resend' )"\
  724.         sub \<[^>]*name=resunit[^>]*\${0} onFocus="Que( 'resunit' )"\
  725.         sub \<[^>]*name=statesel[^>]*\${0} onFocus="Que( 'statesel' )"\
  726.         sub \<[^>]*name=stateentry[^>]*\${0} onFocus="Que( 'stateentry' )"\
  727.         sub \<[^>]*name=sev[^>]*\${0} onFocus="Que( 'sev' )"\
  728.         sub \<[^>]*name=applid[^>]*\${0} onFocus="Que( 'applid' )"\
  729.         sub \<[^>]*NAME="alerttype"[^>]*\${0} onFocus="Que( 'alerttype' )"\
  730.         sub \<[^>]*name=notify[^>]*\${0} onClick="Que( 'notify' )"\
  731.         sub \<[^>]*name=localnotify[^>]*\${0} onClick="Que( 'localnotify' )"\
  732.  
  733. (.*)/sysmon/threshold(.*)Info=
  734.     open added.htm
  735.   sub /<img[^>]*main.gif[^>]*>//
  736.     sub /<a href=([^>]*)main">//
  737.     sub _<table(.*)</table><p>__
  738.     sub /<a ([^>]*)>//g
  739.     sub /<img[^>]*helpicon.gif[^>]*>//
  740.     sub \<input type=submit(.*)\\
  741.     sub /<input([^>]*)>//g
  742.  
  743. .*/sysmon/threshold.grp=
  744.         state sev applid appat alerttype notify localnotify atype statesel
  745.         
  746. (.*)/sysmon/threshold(.*)setthresh=
  747.     state thresholdname hierrval hierrsev hierrnot hiwarnval hiwarnsev hiwarnnot normsev normnot lowarnval lowarnsev lowarnnot loerrval loerrsev loerrnot local
  748.  
  749. (.*)/sysmon(.*)addthresh=(.*)
  750.     open thresh.htm
  751.   sub /<img[^>]*main.gif[^>]*>//
  752.   sub /<option>0//
  753.     sub \<a href=([^>]*)main">\
  754.         <script>
  755.         function isNumber( str ) {
  756.                 var dotcount = 0;
  757.                 for( var i=0; i < str.length; i++ ) {
  758.                         var ch = str.substring( i, i+1 )
  759.                         if ( ch == "." ) {
  760.                                 if ( dotcount++ > 0 ) {
  761.                                         alert( str + ":  Not a number" )
  762.                                         return false
  763.                                 }
  764.                         } else if ( ch < "0" || ch > "9" ) {
  765.                                 alert( str + ":  Not a number" );
  766.                                 return false
  767.                         }
  768.                 }
  769.                 return true
  770.         }
  771.         function checkform( form ) {
  772.                if ( form.thresholdname.value.length < 1 ) {
  773.                   alert( "A name must be entered" )
  774.                   return false
  775.                }
  776.                if ( !isNumber( form.hierrval.value ) ) return false 
  777.                if ( !isNumber( form.hiwarnval.value ) ) return false 
  778.                if ( !isNumber( form.lowarnval.value ) ) return false 
  779.                if ( !isNumber( form.loerrval.value ) ) return false 
  780.                var scount = 0
  781.                if ( form.hierrval.value.length > 0 && form.hierrnot.checked ) scount++
  782.                if ( form.hiwarnval.value.length > 0 && form.hiwarnnot.checked ) scount++
  783.                if ( form.normnot.checked ) scount++
  784.                if ( form.lowarnval.value.length > 0 && form.lowarnnot.checked ) scount++
  785.                if ( form.loerrval.value.length > 0 && form.loerrnot.checked ) scount++
  786.                if ( scount > 0 ) return true
  787.                alert( "At least one threshold level must be entered and notification checked" )
  788.                return false
  789.         }
  790.     function Que( name )  {
  791.         if ( name.length > 8 ) name = name.substring( 0, 8 )
  792.         name = "/gurupage/" + name + ".htm?page=sysmon"
  793.         parent.Que.location=name
  794.         }
  795.         </script>
  796.         \
  797.     sub /<a href=([^>]*)sysmon"><img/<img/
  798.     sub \</form>.*\</form>\
  799.     sub _<table(.*)</table><p>__
  800.         isub _(<form[^>]*)>_${1} onSubmit="return checkform( this )">_
  801.     sub _type=text[^>]*name=([^ >]*)_${0} onFocus="Que( '${1}' )"_g
  802.     sub _<select[^>]*name=([^ >]*)_${0} onFocus="Que( '${1}' )"_g
  803.     sub _type=checkbox[^>]*name=([^ >]*)_${0} onClick="Que( '${1}' )"_g
  804.  
  805. (.*)/sysmon/threshold
  806.   sub /<img[^>]*main.gif[^>]*>//
  807.   sub /<a[^>]*main[^>]*>//
  808.   sub /<a[^>]*sysmon[^>]*>//
  809.   sub /<input[^>]*type=checkbox[^>]*>//g
  810.   sub /<input[^>]*type=submit.*//
  811.   sub _<form[^>]*>[^<]*</form>.*_<script>parent.guru.location="/gurupage/nothresh.htm?page=sysmon"</script>_
  812.   sub _<form[^>]*>[^<]*<a_<script>parent.guru.location="/gurupage/threshp.htm?page=sysmon"</script>${0}_
  813.  
  814. (.*)/sysmon
  815.     open pick.htm
  816.   sub /<img[^>]*main.gif[^>]*>//
  817.     sub /<([^>]*)type=checkbox([^>]*)>//g
  818.     sub /<a href=([^>]*)main">//
  819.     sub \<p>([^>]*)name=refresh(.*)\</table>\
  820.  
  821.  
  822.  
  823. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  824. Content-Disposition: file-data; filename="SYSMON/THRESH.HTM"
  825.  
  826. <html>
  827. <h3>System Monitor Threshold Guru</h3>
  828. Setup the threshold:  
  829. <ol>
  830. <li>If adding a threshold, enter the <b>Name</b>.
  831. <li>Check the <b>Duration</b> and <b>Resend Delay</b>.
  832. <li>Make sure there is at least one threshold <b>Level</b> selected (with a <b>Value</b> and <b>Severity</b> selected for each <b>Level</b>).
  833. <script>
  834. document.writeln("<li>Check the <b>Notify</b> checkbox(s) to notify the Alert Manager on " + location.hostname + " when an alert is generated.")
  835.  
  836. function MSPathFix(path) {
  837.         colon = path.indexOf( ":" );
  838.         if ( colon == 1 ) return path.substring( path.indexOf( "/", 1 ));
  839.         return path;
  840. }
  841.  
  842. var colons = MSPathFix(location.pathname).indexOf( "::" )
  843. var secondSlash = MSPathFix(location.pathname).indexOf( "/", 1 )
  844. if ( colons != -1 && colons < secondSlash ) {
  845.   document.writeln( "<li>Check the <b>Local Notify</b> checkbox if the Alert Manager on "  +
  846.                     MSPathFix(location.pathname).substring( 1, secondSlash ) +
  847.                     " is to be notified when an Alert is generated."  )
  848. }
  849. </script>
  850. <li>Click on the <b>Submit</b> button.
  851. </ol>
  852. <script>
  853. parent.Que.location="qthresh.htm?page=sysmon"
  854. function leave() {
  855.     if ( confirm( "You are about to leave Guru.  Are you sure?" ) == true ) {
  856.         parent.location=parent.location.protocol + "//" + parent.location.host +MSPathFix(parent.location.pathname)+"/../../gurupage"
  857.     }
  858. }
  859. document.write( '<p><form><input type=button value="Exit Guru" onClick=leave()></form>' )
  860. </script>
  861. </html>
  862.  
  863. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  864. Content-Disposition: file-data; filename="SYSMON/THRESHOL.HTM"
  865.  
  866. <html>
  867. The threshold Name is used to identify the threshold.  It will appear
  868. in the text of the alerts that are generated by this threshold.
  869. </html>
  870.  
  871. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  872. Content-Disposition: file-data; filename="SYSMON/THRESHP.HTM"
  873.  
  874. <h3>System Monitor Threshold Guru</h3>
  875. Select the threshold to take action on, or click
  876. <b>Monitors</b> to add a new threshold.
  877. <p>
  878. <script>
  879. parent.Que.location="blank.htm"
  880. function MSPathFix(path) {
  881.         colon = path.indexOf( ":" );
  882.         if ( colon == 1 ) return path.substring( path.indexOf( "/", 1 ));
  883.         return path;
  884. }
  885.  
  886. function leave() {
  887.     if ( confirm( "You are about to leave Guru.  Are you sure?" ) == true ) {
  888.         parent.location=parent.location.protocol + "//" + parent.location.host +MSPathFix(parent.location.pathname)+"/../../gurupage"
  889.     }
  890. }
  891. document.write( '<form><input type=button value="Exit Guru" onClick=leave()></form>' )
  892. </script>
  893.  
  894. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  895. Content-Disposition: file-data; filename="SYSMON/nothresh.htm"
  896.  
  897. <html>
  898. <h3>System Monitor Threshold Guru</h3>
  899.  
  900. No thresholds are defined.  Click <b>Monitor</b> to create a new threshold.
  901. <p>
  902. <script>
  903. parent.Que.location="blank.htm"
  904. function MSPathFix(path) {
  905.         colon = path.indexOf( ":" );
  906.         if ( colon == 1 ) return path.substring( path.indexOf( "/", 1 ));
  907.         return path;
  908. }
  909.  
  910. function leave() {
  911.     if ( confirm( "You are about to leave Guru.  Are you sure?" ) == true ) {
  912.         parent.location=parent.location.protocol + "//" + parent.location.host +MSPathFix(parent.location.pathname)+"/../../gurupage"
  913.     }
  914. }
  915. document.write( '<form><input type=button value="Exit Guru" onClick=leave()></form>' )
  916. </script>
  917. </html>
  918.  
  919. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  920. Content-Disposition: file-data; filename="SYSMON/sysmon.htm"
  921.  
  922. <html>
  923. <title>System Monitor Guru</title>
  924. <frameset cols="30%,70%">
  925. <frameset rows="70%,30%">
  926. <frame name="guru" src=../gurupage/pick.htm?page=sysmon>
  927. <frame name="Que" src=../gurupage/qpick.htm?page=sysmon>
  928. </frameset>
  929. <frame name="webfin" src=../guruproxy/page=sysmon/sysmon>
  930. </frameset>
  931. <noframes>
  932. Frames are required to use Guru.  This browser does not support frames.
  933. </noframes>
  934. </html>
  935.  
  936. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  937. Content-Disposition: file-data; filename="SYSMON/stateent.htm"
  938.  
  939. <html>
  940. The value that will trigger this monitor.
  941. </html>
  942.  
  943. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  944. Content-Disposition: file-data; filename="SYSMON/applid.htm"
  945.  
  946. <html>
  947. This is the application id of the alert that will be created when
  948. triggered.  This will be used by the Alert Manager.
  949. </html>
  950.  
  951. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  952. Content-Disposition: file-data; filename="SYSMON/sev.htm"
  953.  
  954. <html>
  955. This is the severity of the alert that will created when triggered.  This
  956. will be used by the Alert Manager.
  957. </html>
  958.  
  959. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  960. Content-Disposition: file-data; filename="SYSMON/statesel.htm"
  961.  
  962. <html>
  963. This is the state that will trigger the alert.
  964. </html>
  965.  
  966. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  967. Content-Disposition: file-data; filename="SYSMON/alerttyp.htm"
  968.  
  969. <html>
  970. The kind of alert that will be created when triggered.  This is
  971. used by the Alert Manager.
  972. </html>
  973.  
  974. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  975. Content-Disposition: file-data; filename="SYSMON/notify.htm"
  976.  
  977. <html>
  978. If checked, the Alert Manager on 
  979. <script>
  980. document.writeln( location.hostname )
  981. </script>
  982.  will be notified.
  983. </html>
  984.  
  985. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  986. Content-Disposition: file-data; filename="SYSMON/localnot.htm"
  987.  
  988. <html>
  989. If check, the Alert Manager on  
  990. <script>
  991. function MSPathFix(path) {
  992.         colon = path.indexOf( ":" );
  993.         if ( colon == 1 ) return path.substring( path.indexOf( "/", 1 ));
  994.         return path;
  995. }
  996.  
  997. document.write( 
  998.   MSPathFix(parent.location.pathname).substring(1,MSPathFix(parent.location.pathname).indexOf( "/", 1 )) )
  999. </script>
  1000. will be notified.
  1001.  
  1002. </html>
  1003.  
  1004. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1005. Content-Disposition: file-data; filename="SYSMON/attrib.htm"
  1006.  
  1007. <html>
  1008. <h3>System Monitor Threshold Guru</h3>
  1009. Setup the threshold:  
  1010. <ol>
  1011. <li>Enter the <b>Name</b>.
  1012. <li>Check the <b>Duration</b> and <b>Resend Delay</b>.
  1013. <li>Enter/Select a value that will trigger the monitor.
  1014. <li>Select a <b>Severity</b>.
  1015. <li>Enter an <b>Application Alert Type</b>.
  1016. <li>Select an <b>Alert Type</b>.
  1017. <script>
  1018. document.writeln("<li>Select the <b>Notify</b> checkbox to notify the Alert Manager on " + location.hostname + " when an alert is generated.")
  1019.  
  1020. function MSPathFix(path) {
  1021.         colon = path.indexOf( ":" );
  1022.         if ( colon == 1 ) return path.substring( path.indexOf( "/", 1 ));
  1023.         return path;
  1024. }
  1025.  
  1026. var colons = MSPathFix(location.pathname).indexOf( "::" )
  1027. var secondSlash = MSPathFix(location.pathname).indexOf( "/", 1 )
  1028. if ( colons != -1 && colons < secondSlash ) {
  1029.   document.writeln( "<li>Select the <b>Local Notify</b> checkbox to notify the Alert Manager on "  +
  1030.                     MSPathFix(location.pathname).substring( 1, secondSlash ) +
  1031.                     " when an alert is generated."  )
  1032. }
  1033. </script>
  1034.  
  1035. <li>Click on the <b>Add Threshold</b> button.
  1036. </ol>
  1037. <script>
  1038. parent.Que.location="qthresh.htm?page=sysmon"
  1039. function MSPathFix(path) {
  1040.         colon = path.indexOf( ":" );
  1041.         if ( colon == 1 ) return path.substring( path.indexOf( "/", 1 ));
  1042.         return path;
  1043. }
  1044.  
  1045. function leave() {
  1046.     if ( confirm( "You are about to leave Guru.  Are you sure?" ) == true ) {
  1047.         parent.location=parent.location.protocol + "//" + parent.location.host +MSPathFix(parent.location.pathname)+"/../../gurupage"
  1048.     }
  1049. }
  1050. document.write( '<p><form><input type=button value="Exit Guru" onClick=leave()></form>' )
  1051. </script>
  1052. </html>
  1053.  
  1054. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1055. Content-Disposition: file-data; filename="PROCMAN/DONE.HTM"
  1056.  
  1057. <html>
  1058. <h3>Process Manager Threshold Guru</h3>
  1059.  
  1060. <b>Congratulations</b>, you are done! 
  1061. <script>
  1062. function MSPathFix(path) {
  1063.         colon = path.indexOf( ":" );
  1064.         if ( colon == 1 ) return path.substring( path.indexOf( "/", 1 ));
  1065.         return path;
  1066. }
  1067.  
  1068. function leave() {
  1069.         parent.location=parent.location.protocol + "//" + parent.location.host +MSPathFix(parent.location.pathname)+"/../../gurupage"
  1070. }
  1071. document.write( '<p><form><input type=button value="Exit Guru" onClick=leave()></form>' )
  1072. </script>
  1073. </html>
  1074.  
  1075. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1076. Content-Disposition: file-data; filename="PROCMAN/noalerts.HTM"
  1077.  
  1078. <html>
  1079.  
  1080. <h3>Process Manager Alert Guru</h3>
  1081. No process alerts have been defined.  Click on <b>Process List</b>
  1082. to add a new process alert.
  1083. </html>
  1084.  
  1085. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1086. Content-Disposition: file-data; filename="PROCMAN/NAME.HTM"
  1087.  
  1088. <html>
  1089. This is the name of the process to be monitored.
  1090. </html>
  1091.  
  1092. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1093. Content-Disposition: file-data; filename="PROCMAN/NEWALERT.HTM"
  1094.  
  1095. <html>
  1096. <h3>Process Manager Alert Guru</h3>
  1097. To add a new Process Alert:
  1098. <ol>
  1099. <li>Make sure <b>Program Name</b> contains the name of the program for
  1100. which the alert will be generated.
  1101. <li>Set the <b>Alert Severity</b>.
  1102. <li>Set one (or more) Generating conditons.
  1103. <li>Set the <b>Execution time-out</b>.  (If you have selected <i>Generate alert if program not started</i>)
  1104. <li>Check <b>Notify</b> if the Alert Manager on 
  1105. <script>
  1106. document.writeln( location.hostname )
  1107. </script>
  1108. is to be notified when an alert is generated.
  1109. <script>
  1110. function MSPathFix(path) {
  1111.         colon = path.indexOf( ":" );
  1112.         if ( colon == 1 ) return path.substring( path.indexOf( "/", 1 ));
  1113.         return path;
  1114. }
  1115.  
  1116. var i = MSPathFix(location.pathname).indexOf( "/", 1 )
  1117. var j = MSPathFix(location.pathname).indexOf( "::", 1 )
  1118. if ( j > 0 && j < i ) {
  1119.         document.write( "<li>Check the <b>Local Notify</b> if the Alert Manager on "  )
  1120.         document.write( MSPathFix(location.pathname).substring( 1, i ) )
  1121.         document.write( " is to be notified when an Alert is generated."  )
  1122. }
  1123. </script>
  1124.  
  1125. <li>Click on the <b>Add</b> button.
  1126. </ol>
  1127. <script>
  1128. parent.Que.location="qnewaler.htm?page=procman"
  1129. function leave() {
  1130.     if ( confirm( "You are about to leave Guru.  Are you sure?" ) == true ) {
  1131.         parent.location=parent.location.protocol + "//" + parent.location.host +MSPathFix(parent.location.pathname)+"/../../gurupage"
  1132.     }
  1133. }
  1134. document.write( '<form><input type=button value="Exit Guru" onClick=leave()></form>' )
  1135. </script>
  1136. </html>
  1137.  
  1138. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1139. Content-Disposition: file-data; filename="PROCMAN/NOT.HTM"
  1140.  
  1141. <html>
  1142. Send an alert to the Alert Manager on 
  1143. <script>
  1144. /* Grab the name of the local machine */
  1145. document.write( location.hostname + '.' )
  1146. </script>
  1147.  
  1148. </html>
  1149.  
  1150. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1151. Content-Disposition: file-data; filename="PROCMAN/PICK.HTM"
  1152.  
  1153. <html>
  1154. <h3>Process Manager Alert Guru</h3>
  1155. This guru helps you define an action for a Process Alert.  You may use an
  1156. existing process alert or create a new one.<p>
  1157. To make a new process alert, pick the process that you would like to set an alert on.  (Pick the
  1158. process by clicking its name.)  Click
  1159. <a target=webfin href=../guruproxy/page=procman/procman/alerts?add=>here</a> to add an alert for a
  1160. process that is not in this list.<p>
  1161. To define an action for an existing alert, click <b>"Process Alerts"</b><p>
  1162. <script>
  1163. function MSPathFix(path) {
  1164.         colon = path.indexOf( ":" );
  1165.         if ( colon == 1 ) return path.substring( path.indexOf( "/", 1 ));
  1166.         return path;
  1167. }
  1168.  
  1169. parent.Que.location="qpick.htm?page=procman"
  1170. function leave() {
  1171.     if ( confirm( "You are about to leave Guru.  Are you sure?" ) == true ) {
  1172.         parent.location=parent.location.protocol + "//" + parent.location.host +MSPathFix(parent.location.pathname)+"/../../gurupage"
  1173.     }
  1174. }
  1175. document.write( '<p><form><input type=button value="Exit Guru" onClick=leave()></form>' ) 
  1176. </script>
  1177. </html>
  1178.  
  1179. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1180. Content-Disposition: file-data; filename="PROCMAN/PICKALER.HTM"
  1181.  
  1182. <html>
  1183. <script>
  1184. function MSPathFix(path) {
  1185.         colon = path.indexOf( ":" );
  1186.         if ( colon == 1 ) return path.substring( path.indexOf( "/", 1 ));
  1187.         return path;
  1188. }
  1189.  
  1190.  
  1191. parent.Que.location="blank.htm"
  1192.  
  1193. function GetPath()
  1194. {
  1195.   var i = MSPathFix(location.pathname).indexOf( "/", 1 )
  1196.   return MSPathFix(location.pathname).substring( 1, i )
  1197. }
  1198.  
  1199. function GetArg( name ) 
  1200. {
  1201.   startIndex = location.search.indexOf( "?" + name + "=" )
  1202.   if ( startIndex == -1 ) {
  1203.     startIndex = location.search.indexOf( "&" + name + "=" )
  1204.   }
  1205.   if ( startIndex == -1 ) {
  1206.     return ""
  1207.   }
  1208.   endIndex = location.search.indexOf( "&", startIndex + 1 )
  1209.   startIndex = startIndex + 2 + name.length
  1210.  
  1211.   var value
  1212.   if ( endIndex == -1 ) {
  1213.     value = location.search.substring( startIndex,
  1214.                                       location.search.length )
  1215.   } else {
  1216.     value = location.search.substring( startIndex, endIndex )
  1217.   }
  1218.   return unescape( value )
  1219. }
  1220.   
  1221. function DisplayCheckBox( var1, var2 ) 
  1222. {
  1223.   document.write( "<input type=checkbox" )
  1224.   document.write( " name=" + var1 )
  1225.   document.write( " onClick=\"Que( '" + var1 + "' )\"" )
  1226.   if( var2 == "on"){
  1227.     document.write( " checked >" ) 
  1228.   }
  1229.   else {
  1230.     document.write( " >" )
  1231.   } 
  1232. }
  1233.  
  1234. function Que( name )  
  1235. {
  1236.   if ( name.length > 8 ) name = name.substring( 0, 8 )
  1237.   name = "/gurupage/" + name + ".htm?page=procman"
  1238.   parent.Que.location=name
  1239. }
  1240.  
  1241.  
  1242. function DoIt()
  1243. {
  1244.   var theForm = document.forms[0]
  1245.   var args = "qaatype=no&qatype=no&atype="
  1246.   args += "<option selected>Application Information\n" + "&qasev=no&"
  1247.   var selSevs = ""
  1248.   if ( GetArg( "sev" ) != "" ) {
  1249.     selSevs += "<option selected>" + GetArg( "sev" ) + "\n"
  1250.   }
  1251.   for( var i = 1; i < theForm.sev.length; i++ ) {
  1252.     if ( theForm.sev.options[i].selected ) {
  1253.       selSevs += "<option selected>" + theForm.sev.options[i].value + "\n"
  1254.     }
  1255.   }
  1256.   if ( selSevs == "" ) {
  1257.     alert( "At least one severity must be selected." )
  1258.     return false
  1259.   }
  1260.   args += "&asev=" + selSevs + "&"
  1261.  
  1262.   var selConds = ""
  1263.   if ( theForm.run.checked ) {
  1264.     selConds += "<option selected>0900\n"
  1265.   }
  1266.   if ( theForm.stop.checked ) {
  1267.     selConds += "<option selected>0901\n"
  1268.   }
  1269.   if ( theForm.term.checked ) {
  1270.     selConds += "<option selected>0902\n"
  1271.   }
  1272.   if ( selConds == "" ) {
  1273.     alert( "At least one condition must be checked" )
  1274.     return false
  1275.   }
  1276.   args += "aatype=" + selConds + "&"
  1277.  
  1278.   args += "qappid=no&appid=<option selected>ProcMgr&qsendid=no&"
  1279.   if ( theForm.not.options[theForm.not.selectedIndex].text == location.hostname ) {
  1280.     args += "<option selected value=\"\">" + location.hostname + "&"
  1281.     parent.webfin.location="/guruproxy/" + escape( "page=alertact&page=procman&" + args ) + "/alertmgr/actions"
  1282.   } else {
  1283.     args += "<option selected>" + theForm.not.value + "&"
  1284.     parent.webfin.location=location.protocol + "//" + location.host + "/" + GetPath() + "/guruproxy/" +
  1285.                  escape( "page=alertact&page=procman&" + args ) +
  1286.                  "/alertmgr/actions"
  1287.   }
  1288.   return false
  1289. }
  1290.  
  1291. document.writeln("<h3>Process Manager Alert Guru</h3>")
  1292. document.writeln("<form>")
  1293. document.write("On the right are the Process Manager alerts.  Confirm the conditions you want")
  1294. document.writeln(" to take action on and press <b>Submit</b>.<p>")
  1295.  
  1296. if ( GetArg( "not" ) == "" && GetArg( "remnot" ) == "" ) {
  1297.   document.writeln( "No notification has been selected. Actions will occur" )
  1298.   document.writeln( " only for processes with notification selected." )
  1299. }
  1300.  
  1301. document.writeln("<ol>")
  1302. document.writeln( "<li>Select the Alert Manager to work with: <select name=not onChange=\"Que( 'alertto' )\">" )
  1303. if ( GetArg("not") == "on" ) {
  1304.   document.writeln( "<option selected>" + location.hostname )  
  1305. }
  1306. if ( MSPathFix(location.pathname).indexOf( "::" ) > 0 && GetArg("remnot") == "on" ) {
  1307.   document.writeln( "<option>" + GetPath() )
  1308. }
  1309. if ( GetArg( "not" ) == "" && GetArg( "remnot" ) == "" ) {
  1310.   document.writeln( "<option selected>" + location.hostname )  
  1311.   if ( MSPathFix(location.pathname).indexOf( "::" ) > 0 ) {
  1312.     document.writeln( "<option>" + GetPath() )
  1313.   }
  1314. }
  1315. document.writeln( "</select>" )
  1316.  
  1317. document.writeln( "<li>Select the Severity(s) that will trigger the action: <select multiple size=4 name=sev onChange=\"Que( 'sev' )\">" )
  1318. document.writeln( "<option selected>" + GetArg( 'sev' ) )
  1319. document.writeln( "<option value=0>0" )
  1320. document.writeln( "<option value=1>1" )
  1321. document.writeln( "<option value=2>2" )
  1322. document.writeln( "<option value=3>3" )
  1323. document.writeln( "<option value=4>4" )
  1324. document.writeln( "<option value=5>5" )
  1325. document.writeln( "<option value=6>6" )
  1326. document.writeln( "<option value=7>7" )
  1327. document.writeln( "</select>")
  1328.  
  1329. document.writeln("<li>Check the condition(s) you want the action to trigger on:<br>")
  1330. DisplayCheckBox( "run", GetArg("run") )
  1331. document.writeln( "When run<br>" )
  1332. DisplayCheckBox( "stop",GetArg( "stop" ) )
  1333. document.writeln( "When stops<br>" )
  1334. DisplayCheckBox( "term",GetArg( "term" ) )
  1335. document.writeln( "When not started<br>" )
  1336.  
  1337. document.writeln("<li>Press submit:  <input type=button value=\"Submit\" onClick=\"DoIt()\">")
  1338. document.writeln("</form>")
  1339.  
  1340. document.write( '<p><form><input type=button value="Exit Guru" onClick=leave()></form>' )
  1341.  
  1342. function leave() 
  1343. {
  1344.   if ( confirm( "You are about to leave Guru.  Are you sure?" ) == true ) {
  1345.     parent.location=parent.location.protocol + "//" + parent.location.host + MSPathFix( parent.location.pathname ) + "/../../gurupage"
  1346.   }
  1347. }
  1348.  
  1349. </script>
  1350. </html>
  1351.  
  1352. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1353. Content-Disposition: file-data; filename="PROCMAN/QNEWALER.HTM"
  1354.  
  1355. <html>
  1356. Click on <b>Program Name</b> to get started.
  1357. </html>
  1358.  
  1359. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1360. Content-Disposition: file-data; filename="PROCMAN/QPICK.HTM"
  1361.  
  1362. <html>
  1363. Click on the link in the above or the side frame.
  1364. </html>
  1365. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1366. Content-Disposition: file-data; filename="PROCMAN/REMNOT.HTM"
  1367.  
  1368. <html>
  1369. Send an alert to the Alert Manager on 
  1370. <script>
  1371. function MSPathFix(path) {
  1372.         colon = path.indexOf( ":" );
  1373.         if ( colon == 1 ) return path.substring( path.indexOf( "/", 1 ));
  1374.         return path;
  1375. }
  1376.  
  1377. document.write( 
  1378.   MSPathFix(parent.location.pathname).substring(1,MSPathFix(parent.location.pathname).indexOf( "/", 1 )) +
  1379.   "." )
  1380. </script>
  1381.  
  1382. </html>
  1383.  
  1384. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1385. Content-Disposition: file-data; filename="PROCMAN/RULES"
  1386.  
  1387. .*/procman/alerts(.*)Info=
  1388.   open pickaler.htm
  1389.   sub _<img[^>]*main.gif[^>]*>__
  1390.   sub _<[^>]*type=submit[^>]*>__g
  1391.   sub _<[^>]*name=delkey[^>]*>__g
  1392.   sub _<th rowspan=2[^>]*>[^<]*</th></tr>__
  1393.   sub _<select name=timeout[^>]*>[^<]*(<option[^>]*>[^<]*)*</select>__g
  1394.   sub _</form>.*_</form>_
  1395.   
  1396. (.*)/procman/alerts(.*)add=Add
  1397.   state sev run stop term not remnot
  1398.  
  1399. .*/procman/alerts.*add=
  1400.   open newalert.htm
  1401.   sub _<img[^>]*main.gif[^>]*>_
  1402.   <script>
  1403.   function Que( name )  {
  1404.         if ( name.length > 8 ) name = name.substring( 0, 8 )
  1405.         name = "/gurupage/" + name + ".htm?page=procman"
  1406.         parent.Que.location=name
  1407.   }
  1408.   </script>
  1409.  _
  1410.   sub /<a[^>]*main[^>]>//
  1411.   sub _<[^>]*type=submit[^>]*></form>.*_</form>_
  1412.   sub _type=checkbox name=([^ >]*)_${0} onClick="Que( '${1}' )"_g
  1413.   sub _type=text name=([^ >]*)_${0} onFocus="Que( '${1}' )"_
  1414.   sub _<select name=([^ >]*)_${0} onFocus="Que( '${1}' )"_g
  1415.   nosub _<select name=([^ >]*)_${0} onChange="Que( '${1}' )"_g
  1416.  
  1417. .*/procman/alerts
  1418.   sub _<img[^>]*main.gif[^>]*>_
  1419.         <script>
  1420.     function MSPathFix(path) {
  1421.             colon = path.indexOf( ":" );
  1422.             if ( colon == 1 ) return path.substring( path.indexOf( "/", 1 ));
  1423.             return path;
  1424.     }
  1425.  
  1426.         var alertshere = 0
  1427.         function GetPath()
  1428.         {
  1429.                 var i = MSPathFix(location.pathname).indexOf( "/", 1 )
  1430.                 var c = MSPathFix(location.pathname).indexOf( "::" )
  1431.                 if ( c == -1 || i <= c ) return "/"
  1432.                 return MSPathFix(location.pathname).substring( 0, i + 1 )
  1433.         }
  1434.  
  1435.         function loaded()
  1436.         {
  1437.                 if ( alertshere == 0 ) {
  1438.                         parent.guru.location=location.protocol + "//" + location.host + GetPath() + "gurupage/noalerts.htm?page=procman"
  1439.                 } else {
  1440.                         parent.guru.location=location.protocol + "//" + location.host + GetPath() + "/../gurupage/pickaler.htm?page=procman"
  1441.                 }
  1442.         }
  1443.         </script>_
  1444.   sub _<body_<body onLoad=loaded() _
  1445.   rsub /<a[^>]*[^>]>//g
  1446.   sub _<[^>]*type=submit[^>]*>__g
  1447.   sub _<[^>]*name=delkey[^>]*>__g
  1448.   sub _<th rowspan=2[^>]*>[^<]*</th></tr>__
  1449.   sub _<select name=timeout[^>]*>[^<]*(<option[^>]*>[^<]*)*</select>__g
  1450.   sub _<[^>]*name=key0[^>]*>_${0}<script>alertshere=1</script>_
  1451.   sub _</form>.*_</form>_ 
  1452.   
  1453. .*/procman
  1454.   open pick.htm
  1455.   sub /<img[^>]*main.gif[^>]*>//
  1456.   sub /<a[^>]*main[^>]>//
  1457.   sub /<[^>]*type=checkbox[^>]*>//g
  1458.   sub /<[^>]*type=submit.*//
  1459.   nosub _<a h([^>]*)>([^>]*)</a>_${2}_
  1460.  
  1461.   
  1462.  
  1463. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1464. Content-Disposition: file-data; filename="PROCMAN/RUN.HTM"
  1465.  
  1466. <html>
  1467. If checked, an alert will be generated when the program starts running.
  1468. </html>
  1469.  
  1470. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1471. Content-Disposition: file-data; filename="PROCMAN/SEV.HTM"
  1472.  
  1473. <html>
  1474. This is the severity of the alert that will be generated.  It will be used
  1475. in Alert Manager to trigger an action.
  1476. </html>
  1477.  
  1478. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1479. Content-Disposition: file-data; filename="PROCMAN/STOP.HTM"
  1480.  
  1481. <html>
  1482. If checked, an alert will be generated when the program stops running.
  1483. </html>
  1484.  
  1485. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1486. Content-Disposition: file-data; filename="PROCMAN/TERM.HTM"
  1487.  
  1488. <html>
  1489. If checked, an alert will be generated if the program does not start within
  1490. the <b>Execution time-out</b> from startup.
  1491. </html>
  1492.  
  1493. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1494. Content-Disposition: file-data; filename="PROCMAN/TIMEOUT.HTM"
  1495.  
  1496. <html>
  1497. This time-out applies to the "not started" generating condition.  If the
  1498. program does not start within the time-out interval after start up, an 
  1499. alert will be generated.
  1500. </html>
  1501.  
  1502. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1503. Content-Disposition: file-data; filename="PROCMAN/procman.htm"
  1504.  
  1505. <html>
  1506. <title>Process Monitor Guru</title>
  1507.  
  1508. <frameset cols="30%,70%">
  1509. <frameset rows="70%,30%">
  1510. <frame name="guru" src=../gurupage/pick.htm?page=procman>
  1511. <frame name="Que" src=../gurupage/qpick.htm?page=procman>
  1512. </frameset>
  1513. <frame name="webfin" src=../guruproxy/page=procman/procman>
  1514. </frameset>
  1515. <noframes>
  1516. Frames are required to use Guru.  This browser does not support frames.
  1517. </noframes>
  1518. </html>
  1519.  
  1520. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1521. Content-Disposition: file-data; filename="PROCMAN/alertto.htm"
  1522.  
  1523. <html>
  1524. The Alert Action will be created on this machine.
  1525. </html>
  1526.  
  1527. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1528. Content-Disposition: file-data; filename="CRITFILE/ADD.HTM"
  1529.  
  1530. <html>
  1531. <h3>Critical File Monitor Guru</h3>
  1532. This guru helps you choose a file to monitor and set up an alert action
  1533. to be triggered when the file is changed, created, and/or deleted.<p>
  1534. Choose a file to be added.  You may change directories or drives with the <b>Open Directory</b>
  1535. button.  When the file to be monitored has been selected press the <b>Monitor</b>
  1536. button.<p>
  1537. <script>
  1538. function MSPathFix(path) {
  1539.         colon = path.indexOf( ":" );
  1540.         if ( colon == 1 ) return path.substring( path.indexOf( "/", 1 ));
  1541.         return path;
  1542. }
  1543.  
  1544. parent.Que.location="qadd.htm?page=critfile"
  1545. function leave() {
  1546.     if ( confirm( "You are about to leave Guru.  Are you sure?" ) == true ) {
  1547.         parent.location=parent.location.protocol + "//" + parent.location.host +MSPathFix(parent.location.pathname)+"/../../gurupage"
  1548.     }
  1549. }
  1550. document.write( '<p><form><input type=button value="Exit Guru" onClick=leave()></form>' )
  1551. </script>
  1552. </html>
  1553.  
  1554. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1555. Content-Disposition: file-data; filename="CRITFILE/DIR.HTM"
  1556.  
  1557. <html>
  1558. To change directories select a directory and press <b>Open Directory</b>.
  1559.  
  1560. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1561. Content-Disposition: file-data; filename="CRITFILE/DONE.HTM"
  1562.  
  1563. <html>
  1564. <h3>Critical File Monitor Guru</h3>
  1565.  
  1566. <b>Congratulations</b>, you are done!
  1567. <script>
  1568. function MSPathFix(path) {
  1569.         colon = path.indexOf( ":" );
  1570.         if ( colon == 1 ) return path.substring( path.indexOf( "/", 1 ));
  1571.         return path;
  1572. }
  1573.  
  1574. function leave() {
  1575.         parent.location=parent.location.protocol + "//" + parent.location.host +MSPathFix(parent.location.pathname)+"/../../gurupage"
  1576. }
  1577. document.write( '<p><form><input type=button value="Exit Guru" onClick=leave()></form>' )
  1578. </script>
  1579. </html>
  1580.  
  1581. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1582. Content-Disposition: file-data; filename="CRITFILE/DRIVE.HTM"
  1583.  
  1584. <html>
  1585. The current drive.  To change it, select the new drive letter and press <b>
  1586. Open Directory</b>.
  1587. </html>
  1588.  
  1589. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1590. Content-Disposition: file-data; filename="CRITFILE/FILE.HTM"
  1591.  
  1592. <html>
  1593. The file to be monitored.  To monitor a file select a file from the
  1594. list and click <b>Monitor</b>.
  1595. </html>
  1596.  
  1597. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1598. Content-Disposition: file-data; filename="CRITFILE/GIVEN.HTM"
  1599.  
  1600. <html>
  1601. This is the name of the file to monitor.  If wild card characters are used, this
  1602. field will be used as a filemask when you press <b>Open Directory</b>.
  1603. </html>
  1604.  
  1605. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1606. Content-Disposition: file-data; filename="CRITFILE/NEWACT.HTM"
  1607.  
  1608. <html>
  1609. <script>
  1610. function MSPathFix(path) {
  1611.         colon = path.indexOf( ":" );
  1612.         if ( colon == 1 ) return path.substring( path.indexOf( "/", 1 ));
  1613.         return path;
  1614. }
  1615.  
  1616. parent.Que.location="/gurupage/blank.htm"
  1617.  
  1618. function GetPath()
  1619. {
  1620.   var i = MSPathFix(location.pathname).indexOf( "/", 1 )
  1621.   return MSPathFix(location.pathname).substring( 1, i )
  1622. }
  1623.  
  1624. function GetArg( name )
  1625. {
  1626.   startIndex = location.search.indexOf( "?" + name + "=" )
  1627.   if ( startIndex == -1 ) {
  1628.     startIndex = location.search.indexOf( "&" + name + "=" )
  1629.   }
  1630.   if ( startIndex == -1 ) {
  1631.     return ""
  1632.   }
  1633.   endIndex = location.search.indexOf( "&", startIndex + 1 )
  1634.   startIndex = startIndex + 2 + name.length
  1635.  
  1636.   var value
  1637.   if ( endIndex == -1 ) {
  1638.     value = location.search.substring( startIndex,
  1639.                                       location.search.length )
  1640.   } else {
  1641.     value = location.search.substring( startIndex, endIndex )
  1642.   }
  1643.   return unescape( value )
  1644. }
  1645.  
  1646. function DisplayCheckBox( var1 ) 
  1647. {
  1648.   document.writeln( "<input type=checkbox" + " name=" + var1 + " checked ")
  1649.   document.write( " onClick=\"Que( '" + var1 + "' )\"" + ">")
  1650.  
  1651. }
  1652.  
  1653. function DoIt() 
  1654. {
  1655.   var theForm = document.forms[0]
  1656.   var args = "qaatype=no&qatype=no&atype="
  1657.   args += "<option selected>Application Warning\n" + "&qasev=no"
  1658.   var selSevs = ""
  1659.   if ( GetArg( "sev" ) != "" ) {
  1660.     selSevs += "<option selected>" + GetArg( "sev" ) + "\n"
  1661.   }
  1662.   for( var i = 1; i < theForm.sev.length; i++ ) {
  1663.     if ( theForm.sev.options[i].selected ) {
  1664.       selSevs += "<option selected>" + theForm.sev.options[i].value + "\n"
  1665.     }
  1666.   }
  1667.   if ( selSevs == "" ) {
  1668.     alert( "At least one severity must be selected." )
  1669.     return false
  1670.   }
  1671.   args += "&asev=" + selSevs + "&"
  1672.  
  1673.   var selConds = ""
  1674.   if ( theForm.create.checked ) {
  1675.    selConds += "<option selected>0000\n"
  1676.   }
  1677.   if ( theForm.change.checked ) {
  1678.     selConds += "<option selected>0001\n"
  1679.   }
  1680.   if ( theForm.deleted.checked ) {
  1681.     selConds += "<option selected>0002\n"
  1682.   }
  1683.   if ( selConds == "" ) {
  1684.     alert( "At least one condition must be checked" )
  1685.     return false
  1686.   }
  1687.   args += "aatype=" + selConds + "&"
  1688.   args += "qappid=no&appid=<option selected>MonCritF&qsendid=no&"
  1689.  
  1690.   if ( theForm.not.options[theForm.not.selectedIndex].text == location.hostname ) {
  1691.     args += "<option selected value=\"\">" + location.hostname + "&"
  1692.     parent.webfin.location="/guruproxy/" + escape( "page=alertact&page=critfile&" + args ) + "/alertmgr/actions"
  1693.   } else {
  1694.     args += "<option selected>" + theForm.not.value + "&"
  1695.     parent.webfin.location=location.protocol + "//" + location.host + "/" + GetPath() + "/guruproxy/" +
  1696.                  escape( "page=alertact&page=critfile&" + args ) +
  1697.                  "/alertmgr/actions"
  1698.   }
  1699.  
  1700. //  parent.webfin.location=location.protocol + "//" + location.host + "/" + GetPath() + "/guruproxy/" +
  1701. //                 escape( "page=alertact&page=critfile&" + args ) +
  1702. //                 "/alertmgr/actions"
  1703. //  }
  1704.   return false
  1705. }
  1706.  
  1707. function Que( name )  
  1708. {
  1709.   if ( name.length > 8 ) name = name.substring( 0, 8 )
  1710.         name = "/gurupage/" + name + ".htm?page=critfile"
  1711.         parent.Que.location=name
  1712. }
  1713.  
  1714. function leave() 
  1715. {
  1716.     if ( confirm( "You are about to leave Guru.  Are you sure?" ) == true ) {
  1717.         parent.location=parent.location.protocol + "//" + parent.location.host +MSPathFix(parent.location.pathname)+"/../../gurupage"
  1718.     }
  1719. }
  1720.  
  1721. document.writeln("<h3>Critical File Monitor Guru</h3>")
  1722. document.writeln("<form>")
  1723. document.writeln("The file is now being monitored.")
  1724.  
  1725. document.write("<p>If you wish to change file notifications or severities, change the appropriate boxes and ")
  1726. document.writeln("click on the <b>Save</b> button. The appropriate notification must be selected or")
  1727. document.writeln("no alert will be generated.")
  1728.   
  1729. document.write("<p>To create an alert action, confirm the")
  1730. document.writeln(" conditions you want to take action on and press <b>Submit</b>.")
  1731.  
  1732. document.writeln("<ol>")
  1733.  
  1734. document.writeln( "<li>" + "Select the Alert Manager to work with: " + " <select name=not onFocus=\"Que( 'alertto' )\">" )
  1735. document.writeln( "<option>" + location.hostname )
  1736.  
  1737. if ( MSPathFix(location.pathname).indexOf( "::" ) > 0 ) {
  1738.   document.writeln( "<option>" + GetPath() )
  1739. }
  1740.  
  1741. document.writeln( "</select><br>" )
  1742.  
  1743. document.writeln( "<li>Select the Severity(s) that will trigger the action: <br><select multiple size=3 name=sev onChange=\"Que( 'sev' )\">" )
  1744. document.writeln( "<option selected>" + GetArg( 'sev' ) )
  1745. document.writeln( "<option value=0>0" )
  1746. document.writeln( "<option value=1>1" )
  1747. document.writeln( "<option value=2>2" )
  1748. document.writeln( "<option value=3>3" )
  1749. document.writeln( "<option value=4>4" )
  1750. document.writeln( "<option value=5>5" )
  1751. document.writeln( "<option value=6>6" )
  1752. document.writeln( "<option value=7>7" )
  1753. document.writeln( "</select>")
  1754.  
  1755. document.write("<li>Check the condition(s) you want the action to trigger on:<br>")
  1756.  
  1757. DisplayCheckBox( "create" )
  1758. document.writeln( "Creation of file<br>" )
  1759. DisplayCheckBox( "change" )
  1760. document.writeln( "Change of file<br>" )
  1761. DisplayCheckBox( "deleted" )
  1762. document.writeln( "Deletion of file<br>" )
  1763.  
  1764. document.writeln("<br>")
  1765. document.writeln("<li>Press submit:  <input type=button value=\"Submit\" onClick=\"DoIt()\">")
  1766. document.write("</form>")
  1767.  
  1768. document.write( '<p><form><input type=button value="Exit Guru" onClick=leave()></form>' )
  1769. </script>
  1770. </html>
  1771.  
  1772. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1773. Content-Disposition: file-data; filename="CRITFILE/QADD.HTM"
  1774.  
  1775. <html>
  1776. Click on the <b>Monitor</b> button to monitor a selected file, or
  1777. click the <b>Open Directory</b> button to change to the selected drive or
  1778. directory.
  1779. </html>
  1780.  
  1781. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1782. Content-Disposition: file-data; filename="CRITFILE/RULES"
  1783.  
  1784. (.*)/filemon.*Monitor=
  1785.     state sev file drive
  1786.  
  1787. (.*)/filemon?.*Info=
  1788.     open newact.htm
  1789.   sub /<img[^>]*main.gif[^>]*>//
  1790.   sub \<a href=([^>]*)main">\
  1791.         <script>
  1792.         function Que( name )  {
  1793.         if ( name.length > 8 ) name = name.substring( 0, 8 )
  1794.         name = "/gurupage/" + name + ".htm?page=critfile"
  1795.         parent.Que.location=name
  1796.         } </script>\
  1797.   sub /<img[^>]*helpicon.gif[^>]*>//
  1798.   sub /<a[^>]*>//g
  1799.   sub _</a>__g
  1800.   sub _<[^<]*name=Add[^>]*>__
  1801.   sub _<[^<]*name=Delete[^>]*>__g
  1802.   sub _</form>.*</body>_</form></body>_
  1803.   sub _<input[^>]*name=select[^>]*>__g
  1804.   sub \<[^>]*name=notify[^>]*\${0} onClick="Que( 'notify' )"\g
  1805.   sub \<[^>]*name=locnotify[^>]*\${0} onClick="Que( 'locnotify' )"\g
  1806.   sub \<[^>]*name=sev[^>]*\${0} onFocus="Que( 'sever' )"\g
  1807.  
  1808. (.*)/filemon
  1809.     open add.htm
  1810.   sub _<img[^>]*main.gif[^>]*>_
  1811.   <script>
  1812.     function Que( name )  {
  1813.         if ( name.length > 8 ) name = name.substring( 0, 8 )
  1814.         name = "/gurupage/" + name + ".htm?page=critfile"
  1815.         parent.Que.location=name
  1816.         }
  1817.   </script>
  1818.  _
  1819.     sub /<a([^>]*)>//
  1820.     sub /<a([^>]*)>//
  1821.     sub _<([^>]*)name=Cancel.*_</form>_
  1822.     sub _name=(given)_${0} onFocus="Que( '${1}' )"_g
  1823.     sub _<select[^>]*name=([^ >]*)_${0} onChange="Que( '${1}' )"_g
  1824.  
  1825. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1826. Content-Disposition: file-data; filename="CRITFILE/SEV.HTM"
  1827.  
  1828. <html>
  1829. The severity of the alert that will be generated when the file is modified.
  1830. </html>
  1831.  
  1832. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1833. Content-Disposition: file-data; filename="CRITFILE/SUBTHRES.HTM"
  1834.  
  1835. <html>
  1836.  
  1837. <h3>Critical File Monitor Guru</h3>
  1838. This is the alert action that has been set up to
  1839. trigger when the file changes.  Check it
  1840. over and press "Save Changes" to finish setting up the
  1841. action.
  1842. </html>
  1843.  
  1844. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1845. Content-Disposition: file-data; filename="CRITFILE/critfile.htm"
  1846.  
  1847. <html>
  1848. <title>Critical File Guru</title>
  1849. <frameset cols="30%,70%">
  1850. <frameset rows="70%,30%">
  1851. <frame name="guru" src=../gurupage/add.htm?page=critfile> 
  1852. <frame name="Que" src=../gurupage/qadd.htm?page=critfile>
  1853. </frameset>
  1854. <frame name="webfin" src=../guruproxy/page=critfile/filemon?Add=>
  1855. </frameset>
  1856. <noframes>
  1857. Frames are required to use Guru.  This browser does not support frames.
  1858. </noframes>
  1859. </html>
  1860.  
  1861. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1862. Content-Disposition: file-data; filename="CRITFILE/create.htm"
  1863.  
  1864. <html>
  1865. If this option is selected, the Alert Action will occur when 
  1866. the selected file is created.
  1867. </html>
  1868.  
  1869. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1870. Content-Disposition: file-data; filename="CRITFILE/deleted.htm"
  1871.  
  1872. <html>
  1873. If this option is selected, the Alert Action will occur when 
  1874. the selected file is deleted.
  1875. </html>
  1876.  
  1877. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1878. Content-Disposition: file-data; filename="CRITFILE/change.htm"
  1879.  
  1880. <html>
  1881. If this option is selected, the Alert Action will occur when 
  1882. the selected file is changed.
  1883. </html>
  1884.  
  1885. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1886. Content-Disposition: file-data; filename="CRITFILE/alertto.htm"
  1887.  
  1888. <html>
  1889. The Alert Action will be created on this machine.
  1890. </html>
  1891.  
  1892. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1893. Content-Disposition: file-data; filename="CRITFILE/notify.htm"
  1894.  
  1895. <html>
  1896. If checked, alerts will be sent to the Alert Manager on
  1897. <script>
  1898. document.write( location.hostname + "." )
  1899. </script>
  1900. <br>
  1901. Changes will not take effect unless you click the <b>Save</b> button.
  1902. </html>
  1903.  
  1904. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1905. Content-Disposition: file-data; filename="CRITFILE/locnotif.htm"
  1906.  
  1907. <html>
  1908. If checked, alerts will be sent to the Alert Manager on
  1909. <script>
  1910. function MSPathFix(path) {
  1911.         colon = path.indexOf( ":" );
  1912.         if ( colon == 1 ) return path.substring( path.indexOf( "/", 1 ));
  1913.         return path;
  1914. }
  1915.  
  1916. document.write( 
  1917.   MSPathFix(parent.location.pathname).substring(1,MSPathFix(parent.location.pathname).indexOf( "/", 1 )) +
  1918.   "." )
  1919. </script>
  1920. <br>
  1921. Changes will not take effect unless you click the <b>Save</b> button.
  1922. </html>
  1923.  
  1924. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1925. Content-Disposition: file-data; filename="CRITFILE/sever.htm"
  1926.  
  1927. <html>
  1928. The severity of the alert that will be generated when the file is modified.
  1929. <br>
  1930. Changes will not take effect unless you click the <b>Save</b> button.
  1931. </html>
  1932.  
  1933. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1934. Content-Disposition: file-data; filename="ALERTACT/ALERTTYP.HTM"
  1935.  
  1936. <html>
  1937. If the <em>Selected</em> radio button is checked, only the selected
  1938. type(s) of alerts can trigger the action.
  1939. </html>
  1940.  
  1941. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1942. Content-Disposition: file-data; filename="ALERTACT/ANYALERT.HTM"
  1943.  
  1944. <html>
  1945. If <em>Any</em> is checked, any Type of Alert can trigger the action.
  1946. If <em>Selected</em> is checked, only the specified Type(s) of Alert can
  1947. trigger the action.
  1948. </html>
  1949.  
  1950. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1951. Content-Disposition: file-data; filename="ALERTACT/ANYAPPAT.HTM"
  1952.  
  1953. <html>
  1954. If <em>Any</em> is checked, any Application Alert Type can trigger the action.
  1955. If <em>Selected</em> is checked, only the specified Application Alert Type(s) can
  1956. trigger the action.
  1957. </html>
  1958.  
  1959. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1960. Content-Disposition: file-data; filename="ALERTACT/ANYAPPID.HTM"
  1961.  
  1962. <html>
  1963. If <em>Any</em> is checked, any Application ID will trigger the action.
  1964. If <em>Selected</em> is checked, only the specified Application IDs can
  1965. trigger the action.
  1966. </html>
  1967.  
  1968. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1969. Content-Disposition: file-data; filename="ALERTACT/ANYSENDE.HTM"
  1970.  
  1971. <html>
  1972. If <em>Any</em> is checked, any Sender ID can trigger the action.
  1973. If <em>Selected</em> is checked, only the specified Sender ID(s) can
  1974. trigger the action.
  1975. </html>
  1976.  
  1977. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1978. Content-Disposition: file-data; filename="ALERTACT/ANYSEV.HTM"
  1979.  
  1980. <html>
  1981. If <em>Any</em> is checked, any Severity can trigger the action.
  1982. If <em>Selected</em> is checked, only the specified Severity(s) can
  1983. trigger the action.
  1984. </html>
  1985.  
  1986. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1987. Content-Disposition: file-data; filename="ALERTACT/APPAT.HTM"
  1988.  
  1989. <html>
  1990. If the <em>Selected</em> radio button is checked, only the selected
  1991. Application Alert Type(s) can trigger the action.  Additional application alert types can
  1992. be entered in the text area.
  1993. </html>
  1994.  
  1995. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  1996. Content-Disposition: file-data; filename="ALERTACT/APPID.HTM"
  1997.  
  1998. <html>
  1999. If the <em>Selected</em> radio button is checked, only the selected
  2000. Application IDs can trigger the action.  Additional Application IDs can
  2001. be entered in the text area.
  2002. </html>
  2003.  
  2004. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2005. Content-Disposition: file-data; filename="ALERTACT/DONE.HTM"
  2006.  
  2007. <html>
  2008. <script>
  2009. parent.Que.location="/gurupage/blank.htm" // Clear the Cue card
  2010.  
  2011. // We take advantage of two facts:
  2012. // 1) The page is the first state variable
  2013. // 2) The original page is the second state variable
  2014. var i = location.href.indexOf( "?" )
  2015. var newlocation = location.href.substring( 0, i )
  2016. i = location.search.indexOf( "&" )
  2017. var newsearch = location.search.substring( i+1, location.search.length + 1)
  2018. location = newlocation + "?" + newsearch
  2019. </script>
  2020. </html>
  2021.  
  2022. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2023. Content-Disposition: file-data; filename="ALERTACT/EXTRAAPP.HTM"
  2024.  
  2025. <html>
  2026. If the <em>Selected</em> radio button is checked, Application Alert Types
  2027. entered here can trigger the action.
  2028. </html>
  2029.  
  2030. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2031. Content-Disposition: file-data; filename="ALERTACT/NEWACT.HTM"
  2032.  
  2033. <html>
  2034. <h3>Alert Action Guru</h3>
  2035. Now pick the action you want to trigger.
  2036. <script>
  2037. function MSPathFix(path) {
  2038.         colon = path.indexOf( ":" );
  2039.         if ( colon == 1 ) return path.substring( path.indexOf( "/", 1 ));
  2040.         return path;
  2041. }
  2042.  
  2043. parent.Que.location="qnewact.htm?page=alertact"
  2044. </script>
  2045. <script>
  2046. function leave() {
  2047.     if ( confirm( "You are about to leave Guru.  Are you sure?" ) == true ) {
  2048.         parent.location=parent.location.protocol + "//" + parent.location.host +MSPathFix(parent.location.pathname)+"/../../gurupage"
  2049.     }
  2050. }
  2051. document.write( '<p><form><input type=button value="Exit Guru" onClick=leave()></form>' )
  2052. </script>
  2053. </html>
  2054.  
  2055. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2056. Content-Disposition: file-data; filename="ALERTACT/PARAM.HTM"
  2057.  
  2058. <html>
  2059. Enter the parameter for the action.
  2060. </html>
  2061.  
  2062. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2063. Content-Disposition: file-data; filename="ALERTACT/QNEWACT.HTM"
  2064.  
  2065. <html>
  2066. Click on the hypertext link of the desired action.
  2067. </html>
  2068.  
  2069. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2070. Content-Disposition: file-data; filename="ALERTACT/QSUBTHRE.HTM"
  2071.  
  2072. <html>
  2073. Click on the field you would like to modify.
  2074. </html>
  2075.  
  2076. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2077. Content-Disposition: file-data; filename="ALERTACT/RULES"
  2078.  
  2079. (.*)/alertmgr/actions/define
  2080.     sub _/actions/[.]_/actions?done=yes_g
  2081.   sub /<img[^>]*main.gif[^>]*>//
  2082.  
  2083. (.*)/alertmgr/actions(.*)done=
  2084.     open done.htm
  2085.   sub /<img[^>]*main.gif[^>]*>//
  2086.         sub _<img[^>]*helpicon[^>]*>__
  2087.         sub _<INPUT[^>]*>__g
  2088.     sub _<a([^>]*)>__g
  2089.     sub _<A([^>]*)>__g
  2090.         sub _</a>__g
  2091.         sub _</A>__g
  2092.     sub _<form([^>]*)>__g
  2093.         sub _</FORM>__
  2094.     sub _<([^>]*)TYPE=SUBMIT([^>]*)>__g
  2095.         sub _<hr>[^<]*<img.*__
  2096.         sub _<H3>_<XX>_
  2097.         sub _<H3>.*</DL>__
  2098.         sub _<XX>_<H3>_
  2099.         sub _<hr[^<]*<TABLE.*</TABLE>__
  2100.  
  2101.  
  2102. (.*)/alertmgr/actions/details
  2103.     open subthres.htm
  2104.   sub /<img[^>]*main.gif[^>]*>//
  2105.     sub _<a href=([^>]*)main">_<script>
  2106.     function Que( name )  {
  2107.         if ( name.length > 8 ) name = name.substring( 0, 8 )
  2108.         name = "/gurupage/" + name + ".htm?page=alertact"
  2109.                 parent.Que.location=name
  2110.         }
  2111.         </script>
  2112.  _
  2113.     sub /<a href=([^>]*)alertmgr"><img/<img/
  2114.     sub /<TABLE(.*)<FORM/<FORM/
  2115.     sub _<TD>[^<]*<TEXTAREA NAME="extraappat"_
  2116.   <TD><SELECT NAME="appat" SIZE="4" MULTIPLE>
  2117.   <OPTION>0000
  2118.   </SELECT>
  2119.   <TEXTAREA NAME="extraappat"_
  2120.     sub /<INPUT([^>]*)NAME=return(.*)//
  2121.     sub /(NAME="anyalerttype"([^>]*))CHECKED/${1}/
  2122.     sub /NAME="anyalerttype" VALUE=$<s.qatype>/${0} CHECKED/
  2123.     sub /(NAME="anyappat"([^>]*))CHECKED/${1}/
  2124.     sub /NAME="anyappat" VALUE=$<s.qaatype>/${0} CHECKED/
  2125.     sub /(NAME="anyappid"([^>]*))CHECKED/${1}/
  2126.     sub /NAME="anyappid" VALUE=$<s.qappid>/${0} CHECKED/
  2127.     nosub /(NAME="anysender"([^>]*))CHECKED/${1}/
  2128.     nosub /NAME="anysender" VALUE=$<s.qsendid>/${0} CHECKED/
  2129.     sub _<OPTION SELECTED>0
  2130. _<OPTION>0
  2131.  _
  2132.     sub _<OPTION SELECTED>1
  2133. _<OPTION>1
  2134.  _
  2135.     sub _<OPTION SELECTED>2
  2136. _<OPTION>2
  2137.  _
  2138.     sub _<OPTION SELECTED>3
  2139. _<OPTION>3
  2140.  _
  2141.     sub _NAME="severity"[^>]*>_${0}$<s.asev>_
  2142.     sub _NAME="alerttype"[^>]*>_${0}$<s.atype>_
  2143.     sub _NAME="appid"[^>]*>_${0}$<s.appid>_
  2144.     sub _NAME="appat"[^>]*>_${0}$<s.aatype>_
  2145.     nosub _NAME="sender"[^>]*>_${0}$<s.sendid>_
  2146.     sub _<[^>]*TYPE="RADIO"[^>]*NAME="([^"]*)"_${0} onClick="Que( '${1}' )"_g
  2147.     sub _<[^>]*TYPE=RADIO[^>]*NAME="([^"]*)"_${0} onClick="Que( '${1}' )"_g
  2148.     sub _<SELECT[^>]*NAME="([^"]*)"_${0} onFocus="Que( '${1}' )"_g
  2149.     sub _<TEXTAREA[^>]*NAME="([^"]*)"_${0} onFocus="Que( '${1}' )"_g
  2150.     sub _<INPUT[^>]*TYPE="TEXT"[^>]*_${0} onFocus="Que( 'param' )"_g
  2151.         sub _<INPUT[^>]*NAME="RETURN".*_</FORM>_
  2152.  
  2153. (.*)/alertmgr/actions
  2154.     open newact.htm
  2155.   sub /<img[^>]*main.gif[^>]*>//
  2156.     sub /<a href=([^>]*)main">//
  2157.     sub /<a href=([^>]*)alertmgr"><img/<img/
  2158.     sub _<hr(.*)</FORM>__
  2159.     sub _<hr(.*)__        
  2160.  
  2161.  
  2162. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2163. Content-Disposition: file-data; filename="ALERTACT/extrasen.HTM"
  2164.  
  2165. <html>
  2166.  
  2167. If the <em>Selected</em> radio button is checked, only the selected
  2168. Sender ID(s) can trigger the action.  Additional sender IDs can
  2169. be entered in the text area.
  2170. </html>
  2171.  
  2172. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2173. Content-Disposition: file-data; filename="ALERTACT/SENDER.HTM"
  2174.  
  2175. <html>
  2176. If the <em>Selected</em> radio button is checked, only the selected
  2177. Sender ID(s) can trigger the action.  Additional sender IDs can
  2178. be entered in the text area.
  2179. </html>
  2180.  
  2181. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2182. Content-Disposition: file-data; filename="ALERTACT/SEVERITY.HTM"
  2183.  
  2184. <html>
  2185. If the <em>Selected</em> radio button is checked, only the selected
  2186. Severity(s) can trigger the action.
  2187. </html>
  2188.  
  2189. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2190. Content-Disposition: file-data; filename="ALERTACT/SUBTHRES.HTM"
  2191.  
  2192. <html>
  2193. <h3>Alert Action Guru</h3>
  2194.  
  2195. Guru has set up the Alert Action criteria for you by filling in the
  2196. Type of Alert,
  2197. Severity(s), Application ID, and Application Alert Type according to the selected threshold.  The
  2198. rest of the fields are set to <i>Any</i>. If necessary, set any required values under <i>What This
  2199. Action Does</i>. Then press <b>Save Changes</b> to finish setting up the
  2200. action.<p>
  2201. <script>
  2202. function MSPathFix(path) {
  2203.         colon = path.indexOf( ":" );
  2204.         if ( colon == 1 ) return path.substring( path.indexOf( "/", 1 ));
  2205.         return path;
  2206. }
  2207.  
  2208. parent.Que.location="qsubthre.htm?page=alertact"
  2209. function leave() {
  2210.     if ( confirm( "You are about to leave Guru.  Are you sure?" ) == true ) {
  2211.         parent.location=parent.location.protocol + "//" + parent.location.host +MSPathFix(parent.location.pathname)+"/../../gurupage"
  2212.     }
  2213. }
  2214. document.write( '<p><form><input type=button value="Exit Guru" onClick=leave()></form>' )
  2215. </script>
  2216. </html>
  2217.  
  2218. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2219. Content-Disposition: file-data; filename="REPLI/REPLI.HTM"
  2220.  
  2221. <html>
  2222. <title>Service Configuration Guru</title>
  2223. <frameset cols="30%,70%">
  2224. <frameset rows="70%,30%">
  2225. <frame name="guru" src=../gurupage/start.htm?page=repli>
  2226. <frame name="Que" src=../gurupage/qstart.htm?page=repli>
  2227. </frameset>
  2228. <frame name="webfin" src=../guruproxy/page=repli/repli>
  2229. </frameset>
  2230. <noframes>
  2231. Frames are required to use Guru.  This browser does not support frames.
  2232. </noframes>
  2233. </html>
  2234.  
  2235. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2236. Content-Disposition: file-data; filename="REPLI/empty.htm"
  2237.  
  2238. <html>
  2239. <h3>Service Configuration Guru</h3>
  2240. <script>
  2241. parent.Que.location="blank.htm"
  2242. </script>
  2243.  
  2244. This configuration is empty and should be deleted.  Press
  2245. <b>Delete This File</b> to delete it or <b>Return To Configuration Files</b>
  2246. to choose another file.
  2247.  
  2248. <script>
  2249. function MSPathFix(path) {
  2250.         colon = path.indexOf( ":" );
  2251.         if ( colon == 1 ) return path.substring( path.indexOf( "/", 1 ));
  2252.         return path;
  2253. }
  2254.  
  2255. function leave() {
  2256.     if ( confirm( "You are about to leave Guru.  Are you sure?" ) == true ) {
  2257.         parent.location=parent.location.protocol + "//" + parent.location.host +MSPathFix(parent.location.pathname)+"/../../gurupage"
  2258.     }
  2259. }
  2260. document.write( '<p><form><input type=button value="Exit Guru" onClick=leave()></form>' )
  2261. </script>
  2262. </html>
  2263.  
  2264. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2265. Content-Disposition: file-data; filename="REPLI/confirm.htm"
  2266.  
  2267. <html>
  2268. <h3>Service Configuration Guru</h3>
  2269. <script>
  2270. parent.Que.location="blank.htm"
  2271. </script>
  2272.  
  2273. Confirm or cancel the deletion.
  2274.  
  2275. <script>
  2276. function MSPathFix(path) {
  2277.         colon = path.indexOf( ":" );
  2278.         if ( colon == 1 ) return path.substring( path.indexOf( "/", 1 ));
  2279.         return path;
  2280. }
  2281.  
  2282. function leave() {
  2283.     if ( confirm( "You are about to leave Guru.  Are you sure?" ) == true ) {
  2284.         parent.location=parent.location.protocol + "//" + parent.location.host +MSPathFix(parent.location.pathname)+"/../../gurupage"
  2285.     }
  2286. }
  2287. document.write( '<p><form><input type=button value="Exit Guru" onClick=leave()></form>' )
  2288. </script>
  2289. </html>
  2290.  
  2291. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2292. Content-Disposition: file-data; filename="REPLI/return.htm"
  2293.  
  2294. <html>
  2295. Return to the list of configuration files without creating a file.
  2296. </html>
  2297.  
  2298. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2299. Content-Disposition: file-data; filename="REPLI/done.htm"
  2300.  
  2301. <html>
  2302. <h3>Service Configuration Guru</h3>
  2303. <script>
  2304. parent.Que.location="blank.htm"
  2305. </script>
  2306.  
  2307. <b>Congratulations</b>, you are done!
  2308. <script>
  2309. function MSPathFix(path) {
  2310.         colon = path.indexOf( ":" );
  2311.         if ( colon == 1 ) return path.substring( path.indexOf( "/", 1 ));
  2312.         return path;
  2313. }
  2314.  
  2315. function leave() {
  2316.         parent.location=parent.location.protocol + "//" + parent.location.host +MSPathFix(parent.location.pathname)+"/../../gurupage"
  2317. }
  2318. document.write( '<p><form><input type=button value="Exit Guru" onClick=leave()></form>' )
  2319. </script>
  2320. </html>
  2321.  
  2322. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2323. Content-Disposition: file-data; filename="REPLI/edit.htm"
  2324.  
  2325. <html>
  2326. <h3>Service Configuration Guru</h3>
  2327. <script>
  2328. function MSPathFix(path) {
  2329.         colon = path.indexOf( ":" );
  2330.         if ( colon == 1 ) return path.substring( path.indexOf( "/", 1 ));
  2331.         return path;
  2332. }
  2333.  
  2334. parent.Que.location="qedit.htm?page=repli"
  2335.  
  2336. function GetArg( name )
  2337. {
  2338.   startIndex = location.search.indexOf( "?" + name + "=" )
  2339.   if ( startIndex == -1 ) {
  2340.     startIndex = location.search.indexOf( "&" + name + "=" )
  2341.   }
  2342.   if ( startIndex == -1 ) return ""
  2343.   endIndex = location.search.indexOf( "&", startIndex + 1 )
  2344.   startIndex = startIndex + 2 + name.length
  2345.  
  2346.   var value
  2347.   if ( endIndex == -1 ) {
  2348.     value = location.search.substring( startIndex,
  2349.                                       location.search.length )
  2350.   } else {
  2351.     value = location.search.substring( startIndex, endIndex )
  2352.   }
  2353.   return unescape( value )
  2354. }
  2355.  
  2356. function GetPath()
  2357. {
  2358.         var i = MSPathFix(location.pathname).indexOf( "/", 1 )
  2359.         var c = MSPathFix(location.pathname).indexOf( "::" )
  2360.         if ( c != -1 && c < i ) return MSPathFix(location.pathname).substring( 0, i )
  2361.         return ""
  2362. }
  2363.  
  2364. function DoIt()
  2365. {
  2366.   var file = GetArg( "edit" )
  2367.   var i = file.lastIndexOf( "\\" )
  2368.   if ( i > 0 ) file = file.substring( i+1, file.length )
  2369.  
  2370.   parent.webfin.location=location.protocol + "//" + location.host + GetPath() + 
  2371.                "/guruproxy/" + escape( "page=repli&edit=" + escape(file) ) +
  2372.                "/sched/task?DllName=schrepli.dll&" + 
  2373.                "ServiceName=" + escape( "Service Configuration" )
  2374. }
  2375. </script>
  2376.  
  2377. This is the Configuration that will be scheduled.  Press:<p>
  2378. <form>
  2379. <input type=button value="Schedule" onClick="DoIt()">
  2380. </form>
  2381. <p>
  2382. to schedule this file.
  2383. <p>
  2384. You may change the Description by pressing <b>Change Description</b>.
  2385. You may delete specific items to be replicated by selecting them and pressing
  2386. <b>Delete Selected Records</b>.  If the file is empty, you may delete
  2387. the file by pressing <b>Delete This File</b> (not present unless file is empty).<p>
  2388. If this is not what you want to be scheduled, press
  2389. <b>Return to Configuration Files.</b><p>
  2390.  
  2391. <script>
  2392. function leave() {
  2393.     if ( confirm( "You are about to leave Guru.  Are you sure?" ) == true ) {
  2394.         parent.location=parent.location.protocol + "//" + parent.location.host +MSPathFix(parent.location.pathname)+"/../../gurupage"
  2395.     }
  2396. }
  2397. document.write( '<p><form><input type=button value="Exit Guru" onClick=leave()></form>' )
  2398. </script>
  2399. </html>
  2400.  
  2401. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2402. Content-Disposition: file-data; filename="REPLI/fdesc.htm"
  2403.  
  2404. <html>
  2405. This file description is for informational purposes only.
  2406. </html>
  2407.  
  2408. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2409. Content-Disposition: file-data; filename="REPLI/fname.htm"
  2410.  
  2411. <html>
  2412. The filename of the configuration file.  (To avoid
  2413. problems it's best to use a file name with at most 8 characters and
  2414. a 3 letter extension.)
  2415.  
  2416. </html>
  2417.  
  2418. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2419. Content-Disposition: file-data; filename="REPLI/new.htm"
  2420.  
  2421. <html>
  2422. <h3>Service Configuration Guru</h3>
  2423. <script>
  2424. parent.Que.location="qnew.htm?page=repli"
  2425. </script>
  2426.  
  2427. To create a new Service Configuration file do the following:
  2428. <ol>
  2429. <li><b>Select a Service</b> to copy the current settings from.
  2430. <li><b>Select a System</b> from which to take the configuration of the service.
  2431. <li><b>Choose a filename for the new configuration file</b>.
  2432. <li><b>Give a brief description</b> of the file.
  2433. <li>Choose whether to overwrite a configuration file of the same name.
  2434. <li>Click on the <b>Create File</b> button.
  2435. </ol>
  2436.  
  2437. <script>
  2438. function MSPathFix(path) {
  2439.         colon = path.indexOf( ":" );
  2440.         if ( colon == 1 ) return path.substring( path.indexOf( "/", 1 ));
  2441.         return path;
  2442. }
  2443.  
  2444. function leave() {
  2445.     if ( confirm( "You are about to leave Guru.  Are you sure?" ) == true ) {
  2446.         parent.location=parent.location.protocol + "//" + parent.location.host +MSPathFix(parent.location.pathname)+"/../../gurupage"
  2447.     }
  2448. }
  2449. document.write( '<p><form><input type=button value="Exit Guru" onClick=leave()></form>' )
  2450. </script>
  2451. </html>
  2452.  
  2453. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2454. Content-Disposition: file-data; filename="REPLI/overwrit.htm"
  2455.  
  2456. <html>
  2457. If a configuration file with the same name exists, do you want to overwrite it?
  2458. </html>
  2459.  
  2460. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2461. Content-Disposition: file-data; filename="REPLI/qedit.htm"
  2462.  
  2463. <html>
  2464. Press the <b>Schedule</b> button above, or select records to be deleted from
  2465. this file and press <b>Delete Selected Records</b> to remove records.
  2466. </html>
  2467.  
  2468. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2469. Content-Disposition: file-data; filename="REPLI/qnew.htm"
  2470.  
  2471. <html>
  2472. Select a service to begin.
  2473. </html>
  2474.  
  2475. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2476. Content-Disposition: file-data; filename="REPLI/qstart.htm"
  2477.  
  2478. <html>
  2479. Click on one of the hyperlinks.
  2480. </html>
  2481.  
  2482. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2483. Content-Disposition: file-data; filename="REPLI/qtask.htm"
  2484.  
  2485. <html>
  2486. Click on the <b>Event Name</b> entry box to start.
  2487. </html>
  2488.  
  2489. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2490. Content-Disposition: file-data; filename="REPLI/change.htm"
  2491.  
  2492. <html>
  2493. <h3>Service Configuration Guru</h3>
  2494. <script>
  2495. parent.Que.location="blank.htm"
  2496. </script>
  2497.  
  2498. Confirm or cancel the description change.
  2499. <script>
  2500. function MSPathFix(path) {
  2501.         colon = path.indexOf( ":" );
  2502.         if ( colon == 1 ) return path.substring( path.indexOf( "/", 1 ));
  2503.         return path;
  2504. }
  2505.  
  2506. function leave() {
  2507.     if ( confirm( "You are about to leave Guru.  Are you sure?" ) == true ) {
  2508.         parent.location=parent.location.protocol + "//" + parent.location.host +MSPathFix(parent.location.pathname)+"/../../gurupage"
  2509.     }
  2510. }
  2511. document.write( '<p><form><input type=button value="Exit Guru" onClick=leave()></form>' )
  2512. </script>
  2513. </html>
  2514.  
  2515. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2516. Content-Disposition: file-data; filename="REPLI/rules"
  2517.  
  2518. .*/repli/edit.*changedesc.*
  2519.   open change.htm
  2520.   sub _<a.*<table_<table_
  2521.   sub _</table.*_</table>_
  2522.   sub _=//[^/]*/_=/_g
  2523.   
  2524.  
  2525. .*/repli.delete=
  2526.   open confirm.htm
  2527.   sub _<a.*<form_<form_
  2528.   sub _</form.*_</form>_
  2529.   nosub _=//[^/]*/_=/_g
  2530.   nosub _<table.*</b>[^<]*</table>[^<]*<hr>_<hr>_
  2531.   nosub _</table>[^<]*<hr>.*_</table>_
  2532.   nosub _<td>[^?]*[?]delete=[^<]*</a>__g
  2533.   nosub _(<th>[^<]*<th>[^<]*)<th>[^<]*_${1}_g
  2534.   nosub _<img[^>]*main.gif[^>]*>__
  2535.   nosub _<a href="main">__
  2536.   nosub _(<body[^>]*>).*<hr>_${1}_
  2537.  
  2538.                   
  2539. .*/repli/edit.*pass=.*
  2540.   open confirm.htm
  2541.   sub _<a.*<form_<form_
  2542.   sub _</form.*_</form>_
  2543.   nosub _href=//[^/]*/_href=/_g
  2544.   nosub _(<body[^>]*>).*<h4>_${1}<h4>_
  2545.   nosub _</table>.*_</table>_
  2546.  
  2547. .*/repli/edit
  2548.   state edit
  2549.   open edit.htm
  2550.   sub _href=//[^/]*/_href=/_g
  2551.   sub _<img[^>]*main.gif[^>]*>__
  2552.   sub _<table.*<h3>_<h3>_
  2553.   sub _</form>.*__
  2554.   sub _<a href=([^>]*)main">_<script>
  2555.     function Que( name )  {
  2556.         if ( name.length > 8 ) name = name.substring( 0, 8 )
  2557.         name = "/gurupage/" + name + ".htm?page=repli"
  2558.                 parent.Que.location=name
  2559.         }
  2560.         </script>
  2561.  _
  2562.   sub _<select_<select onChange="Que( 'sel' )" _g
  2563.  
  2564. .*/repli/new
  2565.   open new.htm
  2566.   sub _<img[^>]*main.gif[^>]*>_<script>
  2567.   function Que( name )  {
  2568.         if ( name.length > 8 ) name = name.substring( 0, 8 )
  2569.         name = "/gurupage/" + name + ".htm?page=repli"
  2570.                 parent.Que.location=name
  2571.   }
  2572.   </script>_
  2573.   sub _<a href="main">__
  2574.   sub _</form>.*_</form>_
  2575.   sub _<p>[^<]*<select [^>]*name=proceed[^>]*>[^<]*(<option[^>]*>[^<]*)*</select>_<p><input type=hidden name=proceed value=yes>_
  2576.   sub _<select[^>]*name=([^> ]*)_${0} onFocus="Que( '${1}' )"_g
  2577.   
  2578. .*/repli
  2579.   open start.htm
  2580.   sub _=//[^/]*/_=/_g
  2581.   sub _<table.*</b>[^<]*</table>[^<]*<hr>__
  2582.   sub _</table>[^<]*<hr>.*_</table>_
  2583.   sub _<td><a[^?]*[?]delete=[^<]*</a>__g
  2584.   sub _(<th>[^<]*<th>[^<]*)<th>[^<]*_${1}_g
  2585.   sub _(</table>.*)<hr>.*_${1}_
  2586.   sub _<img[^>]*main.gif[^>]*>__
  2587.   sub _<a href="main">__
  2588.   sub _</b>[^<]*<hr>.*__
  2589.  
  2590. .*/sched/task
  2591.   open task.htm
  2592.   sub _<img[^>]*main.gif[^>]*>__
  2593.     sub _<a href=([^>]*)main">_<script>
  2594.     function Que( name )  {
  2595.         if ( name.length > 8 ) name = name.substring( 0, 8 )
  2596.         name = "/gurupage/" + name + ".htm?page=evtsched"
  2597.                 parent.Que.location=name
  2598.   }
  2599.   </script>
  2600.  _
  2601.   sub _<a[^>]*>__
  2602.   sub _</form>.*_</form>_
  2603.   sub _(<input[^>]*name=filename )value=""_${1} value="${s.edit}"_
  2604.   sub _<input[^>]*name=ReturnToSched[^>]*>__
  2605.     sub _<[^>]*type=radio[^>]*name=([^ >]*)_${0} onClick="Que( '${1}' )"_g
  2606.     sub _<select[^>]*name=([^ >]*)_${0} onFocus="Que( '${1}' )"_g
  2607.     sub _<textarea[^>]*name=([^ >]*)_${0} onFocus="Que( '${1}' )"_g
  2608.     sub _<input[^>]*type=text[^>]*name=([^ >]*)_${0} onFocus="Que( '${1}' )"_g
  2609.     sub _<input[^>]*type=check[^>]*name=([^ >]*)_${0} onClick="Que( '${1}' )"_g
  2610.  
  2611. .*/sched
  2612.   open done.htm
  2613.   sub _<img[^>]*main.gif[^>]*>__
  2614.   sub _<img[^>]*helpicon.gif[^>]*>__
  2615.   sub _<img[^>]*bigbutt.gif[^>]*>.*__
  2616.   sub _<a[^>]*>__g
  2617.   sub _<A[^>]*>__g
  2618.   sub _<FORM[^>]*>__g
  2619.   sub _<form[^>]*>__g
  2620.   sub _<input[^>]*>__g
  2621.   sub _<INPUT[^>]*>__g
  2622.   sub _<h3>_<XX>_
  2623.   sub _<h3>.*</ul>__
  2624.   sub _<XX>_<h3>_
  2625.  
  2626. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2627. Content-Disposition: file-data; filename="REPLI/sel.htm"
  2628.  
  2629. <html>
  2630. Pressing <b>Delete Selected Records</b> will remove the
  2631. records that are selected.
  2632. </html>
  2633.  
  2634. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2635. Content-Disposition: file-data; filename="REPLI/service.htm"
  2636.  
  2637. <html>
  2638. This is the service for which the configuration will be gathered.
  2639. </html>
  2640.  
  2641. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2642. Content-Disposition: file-data; filename="REPLI/start.htm"
  2643.  
  2644. <html>
  2645. <h3>Service Configuration Guru</h3>
  2646. <script>
  2647. parent.Que.location="qstart.htm?page=repli"
  2648. </script>
  2649. You may schedule an existing configuration file or create a new one.
  2650. To schedule an existing one, click on its filename.  To create a new
  2651. one, click on <b>Create New Configuration File</b>.<p>
  2652. <script>
  2653. function MSPathFix(path) {
  2654.         colon = path.indexOf( ":" );
  2655.         if ( colon == 1 ) return path.substring( path.indexOf( "/", 1 ));
  2656.         return path;
  2657. }
  2658.  
  2659. function leave() {
  2660.     if ( confirm( "You are about to leave Guru.  Are you sure?" ) == true ) {
  2661.         parent.location=parent.location.protocol + "//" + parent.location.host +MSPathFix(parent.location.pathname)+"/../../gurupage"
  2662.     }
  2663. }
  2664. document.write( '<p><form><input type=button value="Exit Guru" onClick=leave()></form>' )
  2665. </script>
  2666. </html>
  2667.  
  2668. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2669. Content-Disposition: file-data; filename="REPLI/system.htm"
  2670.  
  2671. <html>
  2672. This is the system from which the configuration will be gathered.
  2673. </html>
  2674.  
  2675. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2676. Content-Disposition: file-data; filename="REPLI/task.htm"
  2677.  
  2678. <html>
  2679. <h3>Service Configuration Guru</h3>
  2680. <script>
  2681. parent.Que.location="qtask.htm?page=repli"
  2682. </script>
  2683.  
  2684. To create a new event file do the following:
  2685. <ol>
  2686. <li>Enter an <b>Event Name</b>.
  2687. <li>Note that the <b>Service Configuration File</b> has been filled in for you.
  2688. <li>Choose whether to add to or overwrite the existing configuration.
  2689. <li>Choose whether to automatically retry the event if the machine is offline.
  2690. <li>Choose whether to overwrite a configuration file of the same name.  (If creating a new configuration.)
  2691. <li>Choose whether to automatically schedule the event if new systems are
  2692. added to the group.  (Only applicable if scheduling by groups.)
  2693. <li>Select whether to schedule by Groups or by Systems.
  2694. <li>Select the Groups or Systems to be scheduled.
  2695. <li>Select the interval to schedule on.
  2696. <li>Select the date and time fields that correspond to the interval.
  2697. <li>Press <b>Submit New Event</b>.
  2698. </ol>
  2699.  
  2700. <script>
  2701. function MSPathFix(path) {
  2702.         colon = path.indexOf( ":" );
  2703.         if ( colon == 1 ) return path.substring( path.indexOf( "/", 1 ));
  2704.         return path;
  2705. }
  2706.  
  2707. function leave() {
  2708.     if ( confirm( "You are about to leave Guru.  Are you sure?" ) == true ) {
  2709.         parent.location=parent.location.protocol + "//" + parent.location.host +MSPathFix(parent.location.pathname)+"/../../gurupage"
  2710.     }
  2711. }
  2712. document.write( '<p><form><input type=button value="Exit Guru" onClick=leave()></form>' )
  2713. </script>
  2714. </html>
  2715.  
  2716. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2717. Content-Disposition: file-data; filename="SECOUT/password.htm"
  2718.  
  2719. <html>
  2720. The password that corresponds to the UserID.  <b>Password</b> and
  2721. <b>Reenter to Verify</b> must match.
  2722. </html>
  2723.  
  2724. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2725. Content-Disposition: file-data; filename="SECOUT/pick.htm"
  2726.  
  2727. <html>
  2728. <h3>Outgoing Password Guru</h3>
  2729. <script>
  2730. parent.Que.location="qpick.htm?page=secout"
  2731. </script>
  2732.  
  2733. Click on the group that has the system for which you would like to set up the
  2734. outgoing password.<p>
  2735.  
  2736. <script>
  2737. function MSPathFix(path) {
  2738.         colon = path.indexOf( ":" );
  2739.         if ( colon == 1 ) return path.substring( path.indexOf( "/", 1 ));
  2740.         return path;
  2741. }
  2742.  
  2743. function leave() {
  2744.     if ( confirm( "You are about to leave Guru.  Are you sure?" ) == true ) {
  2745.         parent.location=parent.location.protocol + "//" + parent.location.host +MSPathFix(parent.location.pathname)+"/../../gurupage"
  2746.     }
  2747. }
  2748. document.write( '<p><form><input type=button value="Exit Guru" onClick=leave()></form>' )
  2749. </script>
  2750. </html>
  2751.  
  2752. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2753. Content-Disposition: file-data; filename="SECOUT/qpick.htm"
  2754.  
  2755. <html>
  2756. Click on a hyperlink.
  2757. </html>
  2758. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2759. Content-Disposition: file-data; filename="SECOUT/qsyspick.htm"
  2760.  
  2761. <html>
  2762. Select a system to set the outgoing password and press the
  2763. <b>Set UserID and Password</b> button.
  2764. </html>
  2765.  
  2766. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2767. Content-Disposition: file-data; filename="SECOUT/qsetuid.htm"
  2768.  
  2769. <html>
  2770. Click on the <b>UserID</b> field to get started.
  2771. </html>
  2772.  
  2773. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2774. Content-Disposition: file-data; filename="SECOUT/rules"
  2775.  
  2776. .*/error.nferror=.*65535
  2777.   open main.htm
  2778.   sub _<a[^>]*>__g
  2779.  
  2780. .*/secman.Info=
  2781.   open changed.htm
  2782.   sub _<a[^>]*>__g
  2783.   sub _<form[^>]*>__g
  2784.  
  2785. .*/secman.Error=
  2786.   sub _<body_<script>
  2787.     function MSPathFix(path) {
  2788.             colon = path.indexOf( ":" );
  2789.             if ( colon == 1 ) return path.substring( path.indexOf( "/", 1 ));
  2790.             return path;
  2791.     }
  2792.     <body onLoad="location=location.protocol+'//'+location.host+MSPathFix(location.pathname)+'/../secman?host=$[s.host]&Error=$[h.Error]&addhost='"_
  2793.  
  2794. .*/secman
  2795.   open outgo.htm
  2796.   sub _<img[^>]*main.gif[^>]*>_<script>
  2797.   function Que( name )  {
  2798.         if ( name.length > 8 ) name = name.substring( 0, 8 )
  2799.         name = "/gurupage/" + name + ".htm?page=secout"
  2800.         window.open( name, "Que" )
  2801.   }
  2802.   </script>_
  2803.   sub _<a[^>]*>(<img[^>]*Bsecman.gif[^>]*>)_${1}_
  2804.   sub _<[^>]*name=cancel[^>]*>__
  2805.   sub _</form>.*_</form>_
  2806.   sub _<[^>]*name=host_${0} onFocus="Que( 'host' )" value="${h.host}" _
  2807.   sub _<[^>]*name=userid_${0} onFocus="Que( 'userid' )" _
  2808.   sub _(<[^>]*name=password)>_${1} onFocus="Que( 'password' )">_
  2809.   sub _(<[^>]*name=passwordver)>_${1} onFocus="Que( 'password' )">_
  2810.  
  2811. .*/groups
  2812.   open pick.htm
  2813.   sub _<img[^>]*helpicon.gif[^>]*>__
  2814.   sub _<a[^>]*>__
  2815.   sub _<a[^>]*>(<img[^>]*Bgroups.gif[^>]*>)_${1}_
  2816.   sub _<img[^>]*main.gif[^>]*>__
  2817.   sub _<table.*<form_<form_
  2818.   sub _<input type=submit.*__
  2819.   sub _<input[^>]*>__g
  2820.   sub _<form[^>]*>[^<]*<hr>.*_
  2821.           This guru can't be used until some groups have been set up.
  2822.           Exit this guru and use Remote System Manager to define some
  2823.     groups.
  2824.       _
  2825.    
  2826. .*/systems.*setuid=
  2827.   state tag
  2828.   open setuid.htm
  2829.   isub _<a[^>]*>__g
  2830.   sub _<a[^>]*>(<img[^>]*Bsystems.gif[^>]*>)_${1}_
  2831.   sub _<img[^>]*main.gif[^>]*>_<script>
  2832.   function Que( name )  {
  2833.         if ( name.length > 8 ) name = name.substring( 0, 8 )
  2834.         name = "/gurupage/" + name + ".htm?page=secout"
  2835.         parent.Que.location=name
  2836.   }
  2837.   </script>_
  2838.   sub _<table.*<form_<form_
  2839.   sub _<input[^>]*type=text[^>]*name=([^> ]*)_${0} onFocus="Que( '${1}' )"_g
  2840.   sub _<input[^>]*type=password[^>]*name=([^> ]*)_${0} onFocus="Que( '${1}' )"_g
  2841.   isub _<input[^>]*type=submit[^>]*name=[^s][^>]*>__g
  2842.   sub _</form>.*_</form>_ 
  2843.  
  2844. .*/systems
  2845.   state Info
  2846.   open syspick.htm
  2847.   sub _<img[^>]*helpicon.gif[^>]*>__
  2848.   isub _<a[^>]*>(<img[^>]*Bsystems.gif[^>]*>)_${1}_
  2849.   sub _<img[^>]*main.gif[^>]*>__
  2850.   sub _<table.*discover=&[^<]*</a></td>[^<]*(<td><a[^<]*</a>).*<form_<table border=2><tr>${1}</table><form_
  2851.   isub _<table.*<form_<form_
  2852.   sub _<input[^>]*type=submit[^>]*name=[^s][^>]*>__g
  2853.   sub _<input[^>]*type=submit[^>]*name=sh[^>]*>__g
  2854.   sub _<A[^>]*>__g
  2855.   sub _</form>.*_</form>_
  2856.   sub _<table.*</table>([^<]*)<hr>.*_${1} <script>alert( "This group is empty. Select another group, or exit Guru and discover systems for this group in Remote System Manager." )
  2857.     function MSPathFix(path) {
  2858.             colon = path.indexOf( ":" );
  2859.             if ( colon == 1 ) return path.substring( path.indexOf( "/", 1 ));
  2860.             return path;
  2861.     }
  2862.  
  2863.        var i = MSPathFix(parent.location.pathname).indexOf( "/", 1 )
  2864.        var j = MSPathFix(parent.location.pathname).indexOf( "::", 1 )
  2865.        var nfpath = ""
  2866.        if ( i > 0 && j > 0 && j < i ) {
  2867.          nfpath = MSPathFix(parent.location.pathname).substring( 0, i )
  2868.        }
  2869.        
  2870.        parent.location=parent.location.protocol + "//" + parent.location.host + nfpath + "/gurupage/secout.htm?page=secout"
  2871.        </script>__
  2872.  
  2873. .*/main
  2874.   sub _<img[^>]*main[^>]*>_
  2875.         <script>
  2876.         var secmanOk = false
  2877.         var rsmOk = false
  2878.         </script>
  2879.   _
  2880.   sub _<A[^>]*groups[^>]*>[^<]_
  2881.         <script>
  2882.         rsmOk = true
  2883.         </script>
  2884.   ${0}_
  2885.   sub _<A[^>]*secman[^>]*>[^<]_
  2886.         <script>
  2887.         secmanOk = true
  2888.         </script>
  2889.   ${0}_
  2890.   sub _<body_<script>
  2891.       function checkPerm() {
  2892.         if ( rsmOk && secmanOk ) {
  2893.           var loc = location.href + "/../groups"
  2894.           location = loc
  2895.         } else {
  2896.           parent.guru.location=location.href + "/../../../gurupage/main.htm?page=secout&rsmOk=" + rsmOk +
  2897.                        "&secmanOk=" + secmanOk
  2898.         }
  2899.       }
  2900.       </script>
  2901.       <body onLoad='checkPerm()' _
  2902.   sub _<[Aa] _<forgetit _g
  2903.  
  2904. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2905. Content-Disposition: file-data; filename="SECOUT/secout.htm"
  2906.  
  2907. <html>
  2908. <title>Outgoing Password Guru</title>
  2909. <frameset cols="30%,70%">
  2910. <frameset rows="70%,30%">
  2911. <frame name="guru" src=../gurupage/pick.htm?page=secout>
  2912. <frame name="Que" src=../gurupage/qpick.htm?page=secout>
  2913. </frameset>
  2914. <frame name="webfin" src=../guruproxy/page=secout/groups>
  2915. </frameset>
  2916. <noframes>
  2917. Frames are required to use Guru.  This browser does not support frames.
  2918. </noframes>
  2919. </html>
  2920.  
  2921. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2922. Content-Disposition: file-data; filename="SECOUT/setuid.htm"
  2923.  
  2924. <html>
  2925. <h3>Outgoing Password Guru</h3>
  2926. <script>
  2927. parent.Que.location="qsetuid.htm?page=secout"
  2928. </script>
  2929.  
  2930. Enter the User ID and Password that are to be used to logon to 
  2931. <script>
  2932. function MSPathFix(path) {
  2933.         colon = path.indexOf( ":" );
  2934.         if ( colon == 1 ) return path.substring( path.indexOf( "/", 1 ));
  2935.         return path;
  2936. }
  2937.  
  2938. function GetArg( name )
  2939. {
  2940.   startIndex = location.search.indexOf( "?" + name + "=" )
  2941.   if ( startIndex == -1 ) {
  2942.     startIndex = location.search.indexOf( "&" + name + "=" )
  2943.   }
  2944.   if ( startIndex == -1 ) return ""
  2945.   endIndex = location.search.indexOf( "&", startIndex + 1 )
  2946.   startIndex = startIndex + 2 + name.length
  2947.  
  2948.   var value
  2949.   if ( endIndex == -1 ) {
  2950.     value = location.search.substring( startIndex,
  2951.                                       location.search.length )
  2952.   } else {
  2953.     value = location.search.substring( startIndex, endIndex )
  2954.   }
  2955.   return unescape( value )
  2956. }
  2957. var tag = GetArg( "tag" )
  2958. var name = tag.substring( tag.indexOf( "|" )+1, tag.length )
  2959. var i = name.indexOf( "|" )
  2960. if ( i == -1 ) i = name.length
  2961. document.write( name.substring( 0, i ) )
  2962. </script>.
  2963. Press <b>Save</b> when finished.<p>
  2964.  
  2965. <script>
  2966. function leave() {
  2967.     if ( confirm( "You are about to leave Guru.  Are you sure?" ) == true ) {
  2968.         parent.location=parent.location.protocol + "//" + parent.location.host +MSPathFix(parent.location.pathname)+"/../../gurupage"
  2969.     }
  2970. }
  2971. document.write( '<p><form><input type=button value="Exit Guru" onClick=leave()></form>' )
  2972. </script>
  2973. </html>
  2974.  
  2975. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  2976. Content-Disposition: file-data; filename="SECOUT/syspick.htm"
  2977.  
  2978. <html>
  2979. <h3>Outgoing Password Guru</h3>
  2980. <script>
  2981. function MSPathFix(path) {
  2982.         colon = path.indexOf( ":" );
  2983.         if ( colon == 1 ) return path.substring( path.indexOf( "/", 1 ));
  2984.         return path;
  2985. }
  2986.  
  2987. function leave() {
  2988.     if ( confirm( "You are about to leave Guru.  Are you sure?" ) == true ) {
  2989.         parent.location=parent.location.protocol + "//" + parent.location.host +MSPathFix(parent.location.pathname)+"/../../gurupage"
  2990.     }
  2991. }
  2992. if ( location.search.indexOf( "Info=" ) != -1 ) {
  2993.   if ( !confirm( "Congratulations! You have set up an outgoing UserID and Password! Would you like to do another?" ) )
  2994.         parent.location=parent.location.protocol + "//" + parent.location.host +MSPathFix(parent.location.pathname)+"/../../gurupage"
  2995. }
  2996. parent.Que.location="qsyspick.htm?page=secout"
  2997. </script>
  2998.  
  2999. Select the radio button for the system on which the outgoing UserID and Password are to be set
  3000. and press <b>Set UserID and Password</b> at the bottom of the page.
  3001. Press the Remote System Manager banner to select another group.
  3002. <p>
  3003. Use the <b>Detail View</b> and <b>Icon View</b> options to see more or less
  3004. information about the systems in the group.
  3005. <p>
  3006.  
  3007. <form><input type=button value="Exit Guru" onClick=leave()></form>
  3008. </html>
  3009.  
  3010. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  3011. Content-Disposition: file-data; filename="SECOUT/userid.htm"
  3012.  
  3013. <html>
  3014. The User ID to be used to get to the remote machine.
  3015. </html>
  3016.  
  3017. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  3018. Content-Disposition: file-data; filename="SECOUT/outgo.htm"
  3019.  
  3020. <html>
  3021. <h3>Outgoing Password Guru</h3>
  3022. <script>
  3023. parent.Que.location="qsetuid.htm?page=secout"
  3024. </script>
  3025.  
  3026. Enter the desired <b>User ID</b> and <b>Password</b> to use when accessing the
  3027. remote system.  Note that the <b>Host Address</b> has been filled in by Guru.<p>
  3028.  
  3029. <script>
  3030. function MSPathFix(path) {
  3031.         colon = path.indexOf( ":" );
  3032.         if ( colon == 1 ) return path.substring( path.indexOf( "/", 1 ));
  3033.         return path;
  3034. }
  3035.  
  3036. function leave() {
  3037.     if ( confirm( "You are about to leave Guru.  Are you sure?" ) == true ) {
  3038.         parent.location=parent.location.protocol + "//" + parent.location.host +MSPathFix(parent.location.pathname)+"/../../gurupage"
  3039.     }
  3040. }
  3041. document.write( '<p><form><input type=button value="Exit Guru" onClick=leave()></form>' )
  3042. </script>
  3043. </html>
  3044.  
  3045. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  3046. Content-Disposition: file-data; filename="SECOUT/host.htm"
  3047.  
  3048. <html>
  3049. The host address of the remote machine to set the password on.  (Note:  this
  3050. has been filled in by Guru and should not be changed.)
  3051. </html>
  3052.  
  3053. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  3054. Content-Disposition: file-data; filename="SECOUT/changed.htm"
  3055.  
  3056. <html>
  3057. <script>
  3058. function GetArg( name )
  3059. {
  3060.   startIndex = location.search.indexOf( "?" + name + "=" )
  3061.   if ( startIndex == -1 ) {
  3062.     startIndex = location.search.indexOf( "&" + name + "=" )
  3063.   }
  3064.   if ( startIndex == -1 ) return ""
  3065.   endIndex = location.search.indexOf( "&", startIndex + 1 )
  3066.   startIndex = startIndex + 2 + name.length
  3067.  
  3068.   var value
  3069.   if ( endIndex == -1 ) {
  3070.     value = location.search.substring( startIndex,
  3071.                                       location.search.length )
  3072.   } else {
  3073.     value = location.search.substring( startIndex, endIndex )
  3074.   }
  3075.   return unescape( value )
  3076. }
  3077.  
  3078. var newpage = "http://" + location.host + "/" + GetArg( "returnto" ) +
  3079.               "/guruproxy/page=secout/main"
  3080. parent.webfin.location=newpage
  3081.  
  3082. </script>
  3083. </html>
  3084.  
  3085. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  3086. Content-Disposition: file-data; filename="EVTSCHED/EventNam.htm"
  3087.  
  3088. <html>
  3089. The name that will identify this event.
  3090. </html>
  3091.  
  3092. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  3093. Content-Disposition: file-data; filename="EVTSCHED/GroupOrS.htm"
  3094.  
  3095. <html>
  3096. Select whether the event is to be scheduled by systems or groups.
  3097. Only the selected list will be used to schedule the event.
  3098. </html>
  3099.  
  3100. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  3101. Content-Disposition: file-data; filename="EVTSCHED/Groups.htm"
  3102.  
  3103. <html>
  3104. The event will be scheduled for the selected groups if schedule
  3105. by Groups is selected.
  3106. </html>
  3107.  
  3108. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  3109. Content-Disposition: file-data; filename="EVTSCHED/Hour.htm"
  3110.  
  3111. <html>
  3112. Valid for all intervals but Hourly.
  3113. (* uses current hour.)
  3114. </html>
  3115.  
  3116. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  3117. Content-Disposition: file-data; filename="EVTSCHED/Interval.htm"
  3118.  
  3119. <html>
  3120. How often this event is scheduled to happen.
  3121. </html>
  3122.  
  3123. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  3124. Content-Disposition: file-data; filename="EVTSCHED/MDay.htm"
  3125.  
  3126. <html>
  3127. This is only valid for One-Time, Yearly and Monthly intervals.
  3128. (* uses current day.)
  3129. </html>
  3130.  
  3131. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  3132. Content-Disposition: file-data; filename="EVTSCHED/MWeek.htm"
  3133.  
  3134. <html>
  3135. Only valid for Yearly or Monthly intervals.
  3136. (* uses current week.)
  3137. </html>
  3138.  
  3139. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  3140. Content-Disposition: file-data; filename="EVTSCHED/Minute.htm"
  3141.  
  3142. <html>
  3143. Valid for all intervals.
  3144. (* uses next possible minute.)
  3145. </html>
  3146.  
  3147. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  3148. Content-Disposition: file-data; filename="EVTSCHED/Month.htm"
  3149.  
  3150. <html>
  3151. This is only valid for One-Time and Yearly intervals.
  3152. (* uses current month.)
  3153. </html>
  3154.  
  3155. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  3156. Content-Disposition: file-data; filename="EVTSCHED/Systems.htm"
  3157.  
  3158. <html>
  3159. The event will be scheduled for the selected systems if
  3160. schedule by systems is selected.
  3161. </html>
  3162.  
  3163. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  3164. Content-Disposition: file-data; filename="EVTSCHED/WDay.htm"
  3165.  
  3166. <html>
  3167. Only valid for Yearly, Monthly, and Weekly intervals.
  3168. (* uses current day of week.)
  3169. </html>
  3170.  
  3171. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  3172. Content-Disposition: file-data; filename="EVTSCHED/Year.htm"
  3173.  
  3174. <html>
  3175. This field is only valid on a One-Time interval.
  3176. (* uses current year.)
  3177. </html>
  3178.  
  3179. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  3180. Content-Disposition: file-data; filename="EVTSCHED/autosche.htm"
  3181.  
  3182. <html>
  3183. If checked, any new machines to a group for which an event has been triggered
  3184. will have the event run automatically.
  3185. </html>
  3186.  
  3187. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  3188. Content-Disposition: file-data; filename="EVTSCHED/delete.htm"
  3189.  
  3190. <html>
  3191. Selecting <b>Overwrite Existing Configuration</b> will cause the current
  3192. configuration of the service to be lost and replace by the new configuration.
  3193. Select <b>Add to Existing Configuration</b> to add to the old configuration.
  3194.  
  3195. </html>
  3196.  
  3197. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  3198. Content-Disposition: file-data; filename="EVTSCHED/filename.htm"
  3199.  
  3200. <html>
  3201. The name of the Service Configuration File to be scheduled.
  3202. </html>
  3203.  
  3204. --0000ebcbB3nj8m1n35665587R3edw4shere4x???
  3205. Content-Disposition: file-data; filename="EVTSCHED/offliner.htm"
  3206.  
  3207. <html>
  3208. Check this box to automatically retry failed events when the system comes
  3209. back online.
  3210. </html>
  3211.  
  3212. --0000ebcbB3nj8m1n35665587R3edw4shere4x???--
  3213.