home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 February / CHIP_2_98.iso / software / pelne / optionp / ins.cab / nnadvhd.asp < prev    next >
Text File  |  1997-10-19  |  17KB  |  632 lines

  1. <% Response.Expires = 0 %>
  2. <%
  3. rem     strings for localization
  4. L_ACCESSDENIED_TEXT ="Access Denied" 
  5. L_HELP_TEXT = "Help"
  6. L_DOCS_TEXT = "Documentation"
  7. L_ABOUT_TEXT = "About..."
  8. L_MICROSOFT_TEXT = "Go to www.microsoft.com"
  9. L_DELETE_ERRORMESSAGE            = "Are you sure you want to delete this item, and all its children?"
  10. L_NOHELP_ERRORMESSAGE            = "Sorry, the help file is unavailable."
  11. L_NOTIMPLEMENTED_ERRORMESSAGE = "This feature is not yet implemented."
  12. L_PAGETITLE_TEXT                = "Microsoft Internet Service Manager"
  13. L_DEFAULTNNTPSITE_TEXT            = "Default NNTP Site"
  14. L_NNTPSITE_TEXT                    = "NNTP Site #"
  15. L_UNKNOWN_TEXT                    = "Unknown" 'Internal string do NOT localize
  16. L_STARTING_TEXT                    = "Starting" 'Internal string do NOT localize
  17. L_STARTED_TEXT                    = "Started" 'Internal string do NOT localize
  18. L_STOPPING_TEXT                    = "Stopping" 'Internal string do NOT localize
  19. L_STOPPED_TEXT                    = "Stopped" 'Internal string do NOT localize
  20. L_PAUSING_TEXT                    = "Pausing" 'Internal string do NOT localize
  21. L_PAUSED_TEXT                    = "Paused" 'Internal string do NOT localize
  22. L_CONTINUING_TEXT                = "Continuing" 'Internal string do NOT localize
  23. L_BROWSE_TEXT                    = "Browse"
  24. L_EXPIRATIONPOLICIES_TEXT        = "Expiration Policies"
  25. L_DIRECTORIES_TEXT                = "Directories"
  26. L_CURRENTSESSIONS_TEXT            = "Current Sessions"
  27.  
  28.  
  29. L_SERVERCONNECT_TEXT            = "Please enter the name of the server you wish to connect to:"
  30. NODENUMBER_NUMBER                = 4
  31. MS_TEXT        = "ms"
  32. NS_TEXT        = "ns"
  33. ABOUT_TEXT    = "About"
  34.  
  35.  
  36.  
  37. %>
  38.  
  39. <% REM Service Status Enum Array
  40.  
  41. Dim szServiceStateArray()
  42. Redim szServiceStateArray(8)
  43. szServiceStateArray(0) = L_UNKNOWN_TEXT
  44. szServiceStateArray(1) = L_STARTING_TEXT
  45. szServiceStateArray(2) = L_STARTED_TEXT
  46. szServiceStateArray(3) = L_STOPPING_TEXT
  47. szServiceStateArray(4) = L_STOPPED_TEXT
  48. szServiceStateArray(5) = L_PAUSING_TEXT
  49. szServiceStateArray(6) = L_PAUSED_TEXT
  50. szServiceStateArray(7) = L_CONTINUING_TEXT
  51.  
  52. %>
  53.  
  54. <% if (Session("svr") = "") then %>
  55.     <% Session("svr") = Request.ServerVariables("SERVER_NAME") %>
  56. <% end if %>
  57.  
  58. <% set nntpSvcAdmin = Server.CreateObject("nntpadm.admin.1") %>
  59.  
  60. <% nntpSvcAdmin.Server = Session("svr") %>
  61.  
  62. <% On Error Resume Next %>
  63. <% x = nntpSvcAdmin.EnumerateInstancesVariant %>
  64. <% if (Err <> 0) then %>
  65.     <% ErrorVal = Err.description %>
  66. <% end if %>
  67.  
  68. <% REM Create javascript array to hold virtual server information per instance %>
  69. <script language="javascript">
  70.     serverList = new Array();
  71. </script>    
  72.  
  73.  
  74. <% low = LBound(x) %>
  75. <% high = UBound(x) %>
  76.  
  77. <% REM count of service instances %>
  78. <% cServiceInstances = high + 1 %>
  79.  
  80. <% for i = low to high %>
  81.     <% set testServer = Server.CreateObject ( "Nntpadm.virtualserver.1" ) %>
  82.     <% testServer.Server = Session("svr") %>
  83.     <% testServer.ServiceInstance = x(i) %>
  84.     <% testServer.Get %>
  85.     <% szComment = testServer.Comment %>
  86.     <% szServiceState = szServiceStateArray(testServer.State) %>
  87. <script language="javascript">
  88.     serverList[<% = i %>] = new Object();
  89.     serverList[<% = i %>].serviceInstance = "<% = x(i) %>";
  90.     serverList[<% = i %>].Comment         = "<% = szComment %>";
  91.     serverList[<% = i %>].ServiceState    = "<% = testServer.State %>";
  92. </script>
  93. <% next %>
  94.  
  95. <% session("isAdmin") = yes %>
  96.  
  97. <% if Instr(Request.ServerVariables("HTTP_USER_AGENT"),"MSIE") then %>
  98.     <% browser = MS_TEXT %>
  99.     <% bgcolor = "#FFCC00" %>
  100. <% else %>
  101.     <% browser = NS_TEXT %>
  102.     <% bgcolor = "#000000" %>
  103. <% end if %>
  104.  
  105. <HTML>
  106. <HEAD>
  107. <SCRIPT LANGUAGE="JavaScript">
  108.  
  109.     function helpBox()
  110.     {
  111.         if (Global.helpFileName == null)
  112.         {
  113.             alert("<%=L_NOHELP_ERRORMESSAGE%>");
  114.         }
  115.         else
  116.         {
  117.             <%REM removed +".htm" from the following line %>
  118.             thefile = Global.helpDir +Global.helpFileName;
  119.             window.open(thefile ,"<% = L_HELP_TEXT %>","toolbar=no,scrollbars=yes,directories=no,menubar=no,width=450,height=450");
  120.         }
  121.     }
  122.  
  123.     function aboutBox()
  124.     {
  125.         
  126.         popbox=window.open("nnabout.asp","about","toolbar=no,scrollbars=yes,directories=no,menubar=no,width="+525+",height="+305);
  127.         if(popbox !=null)
  128.         {
  129.             if (popbox.opener==null)
  130.             {
  131.                 popbox.opener=self;
  132.             }
  133.         }
  134.     }
  135.  
  136.     function popBox(title, width, height, filename)
  137.     {
  138.         thefile = (filename + ".asp");
  139.         thefile = "nnpop.asp?pg="+thefile;
  140.         <% if Instr(Request.ServerVariables("HTTP_USER_AGENT"),"MSIE") then %>
  141.         <% else %>
  142.             width = width +25;
  143.             height = height + 50;
  144.         <% end if %>
  145.  
  146.         popbox = window.open(thefile,title,"toolbar=no,scrollbars=yes,directories=no,menubar=no,width="+width+",height="+height);
  147.         if(popbox !=null){
  148.             if (popbox.opener == null){
  149.                 popbox.opener = self;
  150.             }
  151.         }
  152.     }
  153.  
  154.  
  155.     function globalVars()
  156.     {
  157.  
  158.         // Sets the global variables for the script. 
  159.         // These may be changed to quickly customize the tree's apperance
  160.  
  161.         // Fonts
  162.         this.face = "Helv";
  163.         this.fSize = 1;
  164.  
  165.         // Spacing
  166.         this.vSpace = 2;
  167.         this.hSpace = 4;
  168.         this.tblWidth = 700;
  169.         this.selTColor = "#FFCC00";
  170.         this.selFColor = "#FFFFFF";
  171.         this.selUColor = "#CCCCCC";
  172.  
  173.         // Images
  174.         this.imagedir = "images/";
  175.         
  176.         this.spaceImg = this.imagedir  + "space.gif";
  177.         this.lineImg = this.imagedir  + "line.gif";
  178.         this.plusImg =  this.imagedir  + "plus.gif";
  179.         this.minusImg = this.imagedir  + "minus.gif";
  180.         this.emptyImg = this.imagedir + "blank.gif";
  181.         this.plusImgLast =  this.imagedir  + "plusl.gif";
  182.         this.minusImgLast = this.imagedir  + "minusl.gif";
  183.         this.emptyImgLast= this.imagedir + "blankl.gif";
  184.  
  185.         this.stateImg = new Array()
  186.         this.stateImg[0]= this.imagedir + "stop.gif"
  187.         this.stateImg[1]= this.imagedir + "go.gif"
  188.         this.stateImg[2]= this.imagedir + "pause.gif"
  189.  
  190.         this.state = new Array()
  191.         this.state[4]= "<% = L_STOPPED_TEXT %>"
  192.         this.state[2]= "<% = L_STARTED_TEXT %>"
  193.         this.state[1]= "<% = L_STARTING_TEXT %>"
  194.         this.state[3]= "<% = L_STOPPING_TEXT %>"
  195.  
  196.         // ID of selected item
  197.         this.selId = 0;
  198.         this.selName = "";
  199.         this.selSType = "";
  200.         this.selVType = "";
  201.  
  202.         // Other Flags
  203.         this.showState = false;
  204.  
  205.         this.helpFileName = "nnadvh.htm";
  206.         this.helpDir = "help/"
  207.         this.updated = false;
  208.  
  209.     }
  210.  
  211.     function openLocation()
  212.     {
  213.         var sel = Global.selId;
  214.         Global.selName = cList[sel].title;
  215.         Global.selSType = cList[sel].stype;
  216.         Global.selVType = cList[sel].vtype;
  217.         var path = "";
  218.         path = path + "svr=<% = Session("svr") %>";
  219.         path = path + "&pg=" + escape(cList[sel].path);
  220.         path = path + "&ServiceInstance=" + Global.selVType;
  221.                 
  222.         <% REM the location of the main nntp service page %>
  223.         page = "nntp.asp?"+path;
  224.         top.location = page;
  225.     }
  226.  
  227.  
  228.     function sortOrder(a,b)
  229.     {
  230.  
  231.         return a.id - b.id;
  232.     }
  233.     
  234.     function sortList()
  235.     {
  236.         cList.sort(sortOrder);
  237.     }
  238.  
  239.     function selectItem( item )
  240.     {
  241.         cList[Global.selId].selected = false;
  242.         Global.selId = item;
  243.         cList[item].selected = true;
  244.     }
  245.  
  246.     function insertNode( title, parent, vtype )
  247.     {
  248.         var indexnum = cList.length;
  249.         var nextid = parent+1;
  250.         <% REM remove "server" path type for nntp %>
  251.         //if (cList[parent].vtype == "server"){
  252.             //var path = cList[parent].path + "/root/" + title;            
  253.     //    }
  254.         //else{
  255.             var path = cList[parent].path + "/" + title;
  256.         //}
  257.         title = title;
  258.  
  259.         while ((cList.length > nextid) && (cList[nextid].parent >= parent)) 
  260.         {
  261.             if(cList[nextid].parent == parent)
  262.             {
  263.                 if(cList[nextid].title > title)
  264.                 {
  265.                     break;
  266.                 }
  267.             }
  268.             nextid = nextid +1;
  269.         }
  270.         if (cList.length <= nextid)
  271.         {
  272.             var newid = cList.length;
  273.         }
  274.         else
  275.         {
  276.             var newid = cList[nextid].id;
  277.         }
  278.  
  279.         cList[indexnum] = cList[parent].addNode(new listObj(indexnum,title,path,vtype,0));
  280.         cList[indexnum].isCached = true;
  281.         cList[indexnum].id = newid;        
  282.         for (var i = newid; i < indexnum; i++) 
  283.         {
  284.             cList[i].id = cList[i].id + 1;        
  285.             if (cList[i].parent >= cList[indexnum].id)
  286.             {
  287.                 cList[i].parent = cList[i].parent +1;
  288.             }    
  289.         }
  290.         cList[parent].open = true;
  291.         cList.sort(sortOrder);
  292.         selectItem(newid);
  293.         markTerms();
  294.         top.body.list.location="nnadvls.asp";
  295.     }
  296.  
  297.     function deleteItem() 
  298.     {
  299.         if(confirm("<%=L_DELETE_ERRORMESSAGE%>"))
  300.         {
  301.             cList[Global.selId].deleted = true;
  302.             deleteChildren(Global.selId);
  303.             markTerms();
  304.             top.body.list.location="nnadvls.asp";
  305.         }
  306.     }
  307.  
  308.  
  309. function addServiceInstance( Comment )
  310. {
  311.     if(Comment == "")
  312.     {
  313.         Comment = "<% = L_NNTPSITE_TEXT %><% = cServiceInstances + 1 %>";
  314.     }
  315.     cList[(cList.length)] = new listObj((cList.length), Comment, "", "<% = cServiceInstances + 1 %>", 2);
  316.     top.body.list.location="nnadvls.asp";
  317. }
  318.  
  319.     function browseItem() 
  320.     {
  321.         popBox('<% = L_BROWSE_TEXT %>',640,480, cList[Global.selId].loc)
  322.     }
  323.  
  324.     function deleteChildren(item)
  325.     {
  326.         var z=item+1;
  327.         while (cList[z].parent >= item) 
  328.         {
  329.             cList[z].deleted = true;
  330.             z=z+1;
  331.             if(z >= cList.length)
  332.             {
  333.                 break;
  334.             }
  335.         }            
  336.     }
  337.  
  338.     function markTerms()
  339.     {
  340.         var i
  341.         listLength = cList.length; 
  342.         for (i=0; i < listLength; i++) 
  343.         {
  344.             cList[i].lastChild = isLast(i);
  345.         }
  346.     }
  347.  
  348.     function isLast(item)
  349.     {
  350.         var i
  351.         last = false;
  352.         if (item+1 == listLength)
  353.         {
  354.             last = true;
  355.         }
  356.         else
  357.         {
  358.             if (cList[item].parent == null)
  359.             {
  360.                 last = true;
  361.                 for (i=item+1; i < listLength; i++) 
  362.                 {
  363.                     if (cList[i].parent == null)
  364.                     {
  365.                         last = false;
  366.                         break;
  367.                     }
  368.                 }
  369.             }
  370.             else
  371.             {
  372.                 last = true;
  373.                 var y = item+1;
  374.                 while(cList[y].parent >= cList[item].parent) 
  375.                 {
  376.                     if(cList[y].parent == cList[item].parent)
  377.                     {
  378.                         if(!cList[y].deleted)
  379.                         {
  380.                             last = false;
  381.                             break;
  382.                         }
  383.                     }
  384.     
  385.                     y = y+1;
  386.     
  387.                     if ((y) == listLength)
  388.                     {
  389.                         break;
  390.                     }
  391.                 }
  392.             }
  393.         }
  394.         return last;
  395.     }
  396.  
  397.     function addNode(childNode)
  398.     {
  399.         childNode.parent = this.id;
  400.         childNode.level = this.level +1;
  401.  
  402.         dir = "images/"
  403.  
  404.         if (childNode.path == "nnf")
  405.         {    
  406.             childNode.loc = "http://"+childNode.title+"/";
  407.             childNode.icon = dir +"slidroff";        
  408.         }
  409.         
  410.         if (childNode.path == "nnses")
  411.         {
  412.             childNode.loc = "http://"+childNode.title+"/";
  413.             childNode.icon = dir +"slidersp";
  414.         }
  415.  
  416.         if (childNode.path == "nndir")
  417.         {    
  418.             childNode.loc = "http://"+childNode.title+"/";
  419.             childNode.icon = dir +"slidrend";        
  420.         }
  421.         
  422.         if (childNode.path == "nnexp")
  423.         {
  424.             childNode.loc = "http://"+childNode.title+"/";
  425.             childNode.icon = dir +"slideron";
  426.         }
  427.  
  428.         return childNode;
  429.     }
  430.  
  431.     function connect()
  432.     {
  433.         serverurl=prompt("<% = L_SERVERCONNECT_TEXT %>", "<% = Request.ServerVariables("SERVER_NAME")%>")
  434.         if (serverurl != "")
  435.         {
  436.             top.location = "nnadv.asp?svr=" + serverurl;
  437.  
  438.         }
  439.     }
  440.  
  441.     function cache(item)
  442.     {
  443.         page ="iicache.asp?sname="+escape(cList[item].path)+"&nextid="+cList.length+"¤tid="+item;
  444.         top.body.statusbar.location= "nnstat.asp?thisState=Loading";
  445.         top.connect.location = page;
  446.     }
  447.  
  448. <%
  449. REM This is the object that represents each line item 
  450. REM in the tree structure.
  451.  
  452. REM ID            id refered to by the parent property
  453. REM title         text string that appears in the list
  454. REM parent        ID of the parent list item
  455. REM level         depth of the list item, 0 being the furthest left on the tree
  456. REM href          location to open when selected
  457. REM open          flag that determines whether children are displayed
  458. REM state         flag to determine the state (4=stopped, 2=running)
  459. REM selected      internal flag
  460. REM openLocation  function that opens the href file in a frame
  461. REM sortby        changes to reflect the new sort order when a new item is added to the list.
  462. %>
  463.  
  464.     function listObj( id, title, path, vtype, state )
  465.     {
  466.         this.id = id;
  467.         this.title=title;
  468.         this.path=path;
  469.     
  470.         this.stype = "nntp"
  471.         
  472.         this.vtype = vtype;
  473.         this.open = false;
  474.         this.state = state;
  475.         this.isCached = false;
  476.         this.isWorkingServer = false;
  477.         this.parent=null;
  478.         this.level = 1;
  479.         this.loc = "http://"+this.title;
  480.         dir = "images/"
  481.         this.icon = dir +"comp"
  482.         this.href = "blank.htm";
  483.         this.deleted = false;
  484.         this.selected = false;
  485.         this.lastChild = false;
  486.  
  487.         //methods
  488.         this.openLocation = openLocation;
  489.         this.addNode = addNode;
  490.         this.insertNode = insertNode;
  491.         this.deleteItem = deleteItem;
  492.         this.browseItem = browseItem;
  493.         this.markTerms = markTerms;
  494.         this.cache= cache;
  495.         this.connect = connect;
  496.         this.sortList = sortList;
  497.  
  498.         }
  499.  
  500.     <%
  501.     REM Create the cList array, and fill with the objects.
  502.     REM The array items will be displayed in the id # order,
  503.     REM as Jscript has limited array sorting capabilities.
  504.     REM Children should always follow their parent item.
  505.     %>
  506.  
  507.     <% REM initialize and null out new array of tree nodes %>
  508.     cList = new Array()
  509.     cList[0] = ""
  510.  
  511.     <%
  512.     dim newid
  513.     dim computer
  514.     computer = Session("svr") 
  515.  
  516.     REM the instance
  517.     %>
  518.     //test loop
  519.     <% j = 0 %>
  520.     <% While j < (cServiceInstances * NODENUMBER_NUMBER) %>
  521.     
  522.         <% REM if it's the first time through the list, use index "0" to get commment %>
  523.         <% if (j = 0) then %>
  524.             thisComment = serverList[0].Comment;
  525.             if (thisComment == "")
  526.             {
  527.                 thisComment = "<% = L_DEFAULTNNTPSITE_TEXT %>";
  528.             }
  529.             cList[<% = j %>] = new listObj( <% = j %>, thisComment, "", serverList[0].serviceInstance, serverList[0].ServiceState );
  530.  
  531.             var serviceInstance = serverList[0].serviceInstance;
  532.             var serviceState    = serverList[0].ServiceState;
  533.  
  534.         <% else %>
  535.         <% REM use (index / NODENUMBER_NUMBER) %>
  536.             thisComment = serverList[<% = j / NODENUMBER_NUMBER %>].Comment;
  537.             if (thisComment == "")
  538.             {
  539.                 thisComment = "<% = L_NNTPSITE_TEXT %><% = (j / NODENUMBER_NUMBER) + 1 %>";
  540.             }
  541.             cList[<% = j %>] = new listObj(<% = j %>, thisComment, "", serverList[<% = j / NODENUMBER_NUMBER %>].serviceInstance, serverList[<% = (j / NODENUMBER_NUMBER) %>].ServiceState);
  542.  
  543.             var serviceInstance = serverList[<% = j / NODENUMBER_NUMBER %>].serviceInstance;
  544.             var serviceState    = serverList[<% = j / NODENUMBER_NUMBER %>].ServiceState;
  545.  
  546.         <% end if %>
  547.         cList[<% = j %>].isWorkingServer = false;
  548.         cList[<% = j %>].isCached = true;
  549.         cList[<% = j %>].open = true;
  550.         cList[<% = j %>].icon = "images/comp"
  551.         cList[<% = j %>].loc = "http://<%=Request.ServerVariables("SERVER_NAME")%>/" 
  552.  
  553.         <% newid = j + 1 %>
  554.         <% j = j + 1 %>
  555.         // DEBUG
  556.         <% REM set node count to zero to count up to 4 to add each node  %>
  557.         <% REM to the different server pages (feeds, directories, groups %>
  558.         <% REM and expirations                                           %>
  559.  
  560.         <% cNodeCount = 0 %>
  561.         <% for k = j to j + 2 %>
  562.             <%
  563.             if (cNodeCount = 0)    then
  564.                 linkType = L_EXPIRATIONPOLICIES_TEXT
  565.                 linkPage = "nnexp"
  566.             elseif (cNodeCount = 1)    then
  567.                 linkType = L_DIRECTORIES_TEXT
  568.                 linkPage = "nndir"
  569.             elseif (cNodeCount = 2)    then
  570.                 linkType = L_CURRENTSESSIONS_TEXT
  571.                 linkPage = "nnses"
  572.             end if
  573.             %>                
  574.             <% REM passing in newid, caption, path, vtype, state %>
  575.             cList[<% = j %>] = cList[<% = newid - 1 %>].addNode( new top.head.listObj( <% = j %>, "<% = linkType %>", "<% = linkPage %>", serviceInstance, serviceState ) );
  576.             cList[<% = j %>].isCached = true;    
  577.             
  578.             <% cNodeCount = cNodeCount + 1 %>
  579.             
  580.             <% j = j + 1 %>
  581.             
  582.         <% Next %>
  583.         
  584.     <% Wend %>
  585.     
  586.     markTerms();
  587.  
  588.     // Create an instance of our Global Variables for reference by other frames...
  589.  
  590.     Global = new globalVars();
  591.  
  592.     function loadPage()
  593.     {
  594.     <% if (ErrorVal = "") then %>
  595.         top.body.location='nnadvbd.asp';
  596.     <% else %>
  597.         top.body.location = "nnadvbd.asp?ErrorVal=<% = ErrorVal %>";
  598.     <% end if %>
  599.     }
  600.  
  601.     </SCRIPT>
  602. <TITLE><% = L_PAGETITLE_TEXT %></TITLE>
  603. </HEAD>
  604.  
  605. <BODY TEXT="#FFFFFF" BGCOLOR=<% = bgcolor %> TOPMARGIN=0 LEFTMARGIN=0 onLoad="loadPage();">
  606.  
  607. <TABLE WIDTH=100% CELLPADDING=0 CELLSPACING=0 BORDER=0 ALIGN=LEFT>
  608.     <TR>
  609.         <TD  BGCOLOR="#000000" ><IMG SRC="images/ismhd.gif" WIDTH=216 HEIGHT=27 BORDER=0 ALT=""></TD>
  610.         <TD ALIGN="right" BGCOLOR="#000000" VALIGN="middle "><FONT COLOR = "#FFFFFF">
  611.             <A HREF="javascript:aboutBox()"><IMG HEIGHT=16 WIDTH = 16 SRC="images/about.gif"  ALT="<%=L_ABOUT_TEXT%>" BORDER = 0 VSPACE=3 HSPACE=4></A>
  612.             <A HREF="/IISHELP/iis/misc/default.asp" TARGET="window"><IMG HEIGHT=16 WIDTH = 16 SRC="images/doc.gif"  ALT="<%=L_DOCS_TEXT%>" BORDER = 0 VSPACE=3 HSPACE=4></A>
  613.             <A HREF="javascript:helpBox();"><IMG HEIGHT=16 WIDTH = 16 SRC="images/help.gif" ALT="Help" BORDER = 0 VSPACE=3 HSPACE=4 ALT="<%=L_HELP_TEXT%>"></A>
  614.             <A HREF="http://www.microsoft.com/" TARGET = "_parent"><IMG SRC="images/logo.gif" BORDER = 0 VSPACE=3 HSPACE=2 ALT="<%=L_MICROSOFT_TEXT%>"></A></FONT>
  615.         </TD>
  616.     </TR>
  617.  
  618. <% if (browser = NS_TEXT) then %>
  619.     <TR>
  620.         <TD BGCOLOR="#FFCC00" COLSPAN=2> </TD>
  621.     </TR>
  622. <% end if %>
  623.  
  624. </TABLE>
  625. <FORM NAME="hiddenform" ACTION="nnadvhd.asp" METHOD="get">
  626.     <INPUT TYPE="hidden" NAME="updated" VALUE="false">
  627.     <INPUT TYPE="hidden" NAME="slash" VALUE="\">
  628. </FORM>
  629.  
  630. </BODY>
  631. </HTML>
  632.