home *** CD-ROM | disk | FTP | other *** search
/ Chip 1998 February / CHIP_2_98.iso / software / pelne / optionp / ims.cab / smadvhd.asp.2 < prev    next >
Text File  |  1997-10-20  |  17KB  |  658 lines

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