perl-modperl mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Carl Lipo <c...@internap.com>
Subject Re: Apache::ASP -- Corruption of statedir files/truncation of method names
Date Thu, 05 Apr 2001 00:31:17 GMT

In addition:  here are the httpd.conf configurations for this application:

        <FilesMatch "\.(htm|asp)$">
            PerlSetVar Global /usr/local/etc/infosource/apps/netcfg/
            # PerlSetVar Global .
            PerlSetVar GlobalPackage INAP::NEIS
            PerlSetVar StateDir /usr/local/etc/infosource/apps/netcfg/state-dir
            PerlSetVar CookiePath  /apps/netcfg
            SetHandler perl-script
            PerlHandler Apache::ASP Apache::SSI
            PerlSetVar SessionTimeout 90
            #0 production, 2 or 1 for dev
            PerlSetVar Debug 0
            PerlSetVar StatINCMatch PNAP|NCM
            # PerlSetVar StatINC 1
            #0 production, text compression
            # PerlSetVar DynamicIncludes 0
            PerlSetVar Clean 0
            PerlSetVar StateDB DB_File
            PerlSetVar AllowSessionState 1
            PerlSetVar DebugBufferLength 500
            PerlSetVar StateCache 0
            # PerlSetVar UseStrict 1
            PerlSetVar TimeHiRes 1
        </FilesMatch>


On Wed, 4 Apr 2001, Carl Lipo wrote:

> 
> I've just started having problems with asp state files for Apache::ASP
> 2.09 becoming corrupted during use. My application will work just fine but
> at somepoint the session asp state files get corrupted and only deleting
> them allows the application to continue working. Oddly, this occurs on two
> different servers so the problem does not appear to be machine specific. 
> 
> The symptom of the problem is that application errors are returned
> from the asp code execution that look something like this:
> 
> Uncaught exception from user code:
>         Can't locate object method 'Quer' via package
> &quot;Apache::ASP::Request'; at (eval 263) <a href=#167>l
> ine 167</a>. INAP::NEIS::_usr_local_applprod_infosource_apps_netcfg_viewNodes_htmxINL() called
> at /usr/local/lib/site_perl/Apache/
> ASP.pm line 1504
> 
> or
> 
> $Response::Appe not defined at /usr/local/lib/site_perl/Apache/ASP.pm <a
> href=#3132>line 3132</a>
> 
> Where the object method that cant be located is truncated from the actual
> ASP method (i.e., Query will be truncated to be Quer or $Response::Append
> to log will be tructed at Response::Appe). What appears to be happnening
> is that the namespace is corrupted somehow and the Apache::ASP/mod_perl is
> not mapping the names of methods correctly. 
> 
> When we delete the state files, the problem goes away (and then returns at
> some point in the future). Has anyone encountered this problem? Is there a
> bug in the 2.09 code?
> 
> This is our environment:
> Linux,  Apache 1.3.19, mod_perl 1.25
> Apache::ASP 2.09
> 
> ----------------------------------------------------------------------------
> Here is the actual error output:
> 
> <table>
> <tr><td valign=top><font size=-1><b> Global: </b><td valign=top><font size=-1> /usr/local/etc/infosource/apps/netcfg/
> <tr><td valign=top><font size=-1><b>   File: </b><td valign=top><font size=-1> /usr/local/applprod/infosource/apps/netcfg/viewNodes.htm
> <tr><td valign=top><font size=-1><b>     IP: </b><td valign=top><font size=-1> 64.94.117.16
> <tr><td valign=top><font size=-1><b> HTTP_*: </b><td valign=top><font size=-1> HTTP_ACCEPT= image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, image/png, */*<br>
>   HTTP_ACCEPT_CHARSET= iso-8859-1,*,utf-8<br>
>   HTTP_ACCEPT_ENCODING= gzip<br>
>   HTTP_ACCEPT_LANGUAGE= en<br>
>   HTTP_CONNECTION= Keep-Alive<br>
>   HTTP_COOKIE= session-id=0eef76d5377c6e62def6333423014869<br>
>   HTTP_HOST= applprod4.sea.internap.com<br>
>   HTTP_REFERER= https://applprod4.sea.internap.com/apps/netcfg/searchNode.htm<br>
>   HTTP_USER_AGENT= Mozilla/4.75 [en] (X11; U; Linux 2.2.16 i686)
> <tr><td valign=top><font size=-1><b>  Query: </b><td valign=top><font size=-1> 
> <tr><td valign=top><font size=-1><b>   Form: </b><td valign=top><font size=-1> search=   Search  <br>
>   searchLocation= <br>
>   searchNodeName= <br>
>   searchNodeStatus= <br>
>   searchNodeType= <br>
>   searchRack= <br>
>   searchSiteCode= sea<br>
>   sessionActive= Active
> </table>
> 
> <tt>
> <b><u>Errors Output</u></b>
> <ol>
> 
> <li> Uncaught exception from user code:
> 	Can't locate object method &quot;Quer&quot; via package &quot;Apache::ASP::Request&quot; at (eval 263) <a href=#167>line 167</a>.
> 	INAP::NEIS::_usr_local_applprod_infosource_apps_netcfg_viewNodes_htmxINL() called at /usr/local/lib/site_perl/Apache/ASP.pm line 1504
> 	eval {...} called at /usr/local/lib/site_perl/Apache/ASP.pm line 1504
> 	Apache::ASP::Execute('Apache::ASP=HASH(0x8d7d930)') called at /usr/local/lib/site_perl/Apache/ASP.pm line 174
> 	Apache::ASP::handler('Apache=SCALAR(0x8d2b978)') called at /dev/null line 0
> 	eval {...} called at /dev/null line 0
> , /usr/local/lib/site_perl/Apache/ASP.pm line 1506
> </ol>
> 
> <b><u>Debug Output</u></b>
> <ol>
> 
> <li> Uncaught exception from user code:
> 	Can't locate object method &quot;Quer&quot; via package &quot;Apache::ASP::Request&quot; at (eval 263) line 167.
> 	INAP::NEIS::_usr_local_applprod_infosource_apps_netcfg_viewNodes_htmxINL() called at /usr/local/lib/site_perl/Apache/ASP.pm line 1504
> 	eval {...} called at /usr/local/lib/site_perl/Apache/ASP.pm line 1504
> 	Apache::ASP::Execute('Apache::ASP=HASH(0x8d7d930)') called at /usr/local/lib/site_perl/Apache/ASP.pm line 174
> 	Apache::ASP::handler('Apache=SCALAR(0x8d2b978)') called at /dev/null line 0
> 	eval {...} called at /dev/null line 0
> , /usr/local/lib/site_perl/Apache/ASP.pm line 1506
> </ol>
> </tt>
> <pre>
> 
> <b><u>ASP to Perl Script</u></b><a name=1>&nbsp;</a>
> 
> <a name=2>  1</a>: package INAP::NEIS; ;; sub INAP::NEIS::_usr_local_applprod_infosource_apps_netcfg_viewNodes_htmxINL {  ;;  @_ = (); ;; no strict;;use vars qw($Application $Session $Response $Server $Request);;use lib qw(/usr/local/etc/infosource/apps/netcfg/);;;
> <a name=3>  2</a>: 
> <a name=4>  3</a>: $Response-&gt;AppendToLog(&quot;[NEIS] - init.htm:&quot;);
> <a name=5>  4</a>: 
> <a name=6>  5</a>: 
> <a name=7>  6</a>: ###################################################
> <a name=8>  7</a>: #
> <a name=9>  8</a>: #	init.htm
> <a name=10>  9</a>: #
> <a name=11> 10</a>: #	Dexter and Wayland
> <a name=12> 11</a>: #
> <a name=13> 12</a>: #	October 2000
> <a name=14> 13</a>: #
> <a name=15> 14</a>: #	10/12/00  Wayland Wasserman
> <a name=16> 15</a>: #	Common header file for entire NCM app
> <a name=17> 16</a>: #	Contains database info and other global data
> <a name=18> 17</a>: #
> <a name=19> 18</a>: #
> <a name=20> 19</a>: ####################################################
> <a name=21> 20</a>: 
> <a name=22> 21</a>: use DBI;                                    # Used for database calls.
> <a name=23> 22</a>: use PNAP::NETCFG::DBconn qw(dbconnect);     # Used for database calls.
> <a name=24> 23</a>: use PNAP::Conf;
> <a name=25> 24</a>: use PNAP::Database::Query;
> <a name=26> 25</a>: use NCM::Nodes;
> <a name=27> 26</a>: use NCM::Common;
> <a name=28> 27</a>: use XML::Config;
> <a name=29> 28</a>: use strict;
> <a name=30> 29</a>: 
> <a name=31> 30</a>: # This part is in the Apache configuration file, httpd.conf.
> <a name=32> 31</a>: # BEGIN
> <a name=33> 32</a>: # {
> <a name=34> 33</a>: # 	$ENV{'ORACLE_HOME'} = 'usr/local/oracle_client/v8_0_5';
> <a name=35> 34</a>: # }
> <a name=36> 35</a>: 
> <a name=37> 36</a>: $Response-&gt;AppendToLog(&quot;[NEIS] - init.htm: test 1&quot;);
> <a name=38> 37</a>: 
> <a name=39> 38</a>: ### Read the conf file  ###
> <a name=40> 39</a>: # my $g_conffile = &quot;/usr/local/etc/netcfg/neis.conf&quot;; # Not used anywhere else.
> <a name=41> 40</a>: my $g_debug = 0;
> <a name=42> 41</a>: # my $conf = new XML::Config; # Not used anywhere else without first being re-initialized.
> <a name=43> 42</a>: 
> <a name=44> 43</a>: $Response-&gt;AppendToLog(&quot;[NEIS] - init.htm: $Application-&gt;{'DBService'}&quot;);
> <a name=45> 44</a>: 
> <a name=46> 45</a>: my $DEBUG = $Application-&gt;{'Debug'};
> <a name=47> 46</a>: 
> <a name=48> 47</a>: $DEBUG &amp;&amp; $Response-&gt;AppendToLog(&quot;[NEIS] - init.htm: DEBUG level is $DEBUG&quot;);
> <a name=49> 48</a>: 
> <a name=50> 49</a>: my $g_dbsection = $Application-&gt;{'DBService'};
> <a name=51> 50</a>: 
> <a name=52> 51</a>: $DEBUG &amp;&amp; $Response-&gt;AppendToLog(&quot;[NEIS] - init.htm: $Application-&gt;{'Application'} $Application-&gt;{'CVS_Version'} - $g_dbsection&quot;);
> <a name=53> 52</a>: 
> <a name=54> 53</a>: ### Misc Global Variables ###
> <a name=55> 54</a>: my $g_nodeName;
> <a name=56> 55</a>: my $g_nodeOID;
> <a name=57> 56</a>: my $g_retPage;
> <a name=58> 57</a>: my $g_prevPage;
> <a name=59> 58</a>: my $g_searchCriteria;
> <a name=60> 59</a>: 
> <a name=61> 60</a>: ### Database connection (Database::Query) ###
> <a name=62> 61</a>: my $g_dbconn = new PNAP::Database::Query(Connection=&gt;$g_dbsection, Debug=&gt;$g_debug);
> <a name=63> 62</a>: 
> <a name=64> 63</a>: ### Database connection (straight DBI) ###
> <a name=65> 64</a>: ### Dev Note: this is a test to see how well this works
> <a name=66> 65</a>: # my $dbconf = $Application-&gt;{'DBConf'};
> <a name=67> 66</a>: # $DEBUG &amp;&amp; $Response-&gt;AppendToLog(&quot;[NEIS] - init.htm: dbconf is $dbconf&quot;);
> <a name=68> 67</a>: 
> <a name=69> 68</a>: # my $dbconfobj = new PNAP::Conf($dbconf, $g_debug);
> <a name=70> 69</a>: # my $service = $dbconfobj-&gt;getServInfo($Application-&gt;{'DBService'});
> <a name=71> 70</a>: 
> <a name=72> 71</a>: # $Application-&gt;{'DBSID'}      = $service-&gt;{'SID'};
> <a name=73> 72</a>: # $Application-&gt;{'DBDriver'}   = $service-&gt;{'Driver'};
> <a name=74> 73</a>: # $Application-&gt;{'DBServer'}   = $service-&gt;{'Server'};
> <a name=75> 74</a>: # $Application-&gt;{'DBUsername'} = $service-&gt;{'Username'};
> <a name=76> 75</a>: # $Application-&gt;{'DBPassword'} = $service-&gt;{'Password'};
> <a name=77> 76</a>: # $Application-&gt;{'DBTnsname'}  = $service-&gt;{'Tnsname'};
> <a name=78> 77</a>: 
> <a name=79> 78</a>: # my $driver    = $Application-&gt;{'DBDriver'};
> <a name=80> 79</a>: # my $server    = $Application-&gt;{'DBServer'};
> <a name=81> 80</a>: # my $sid       = $Application-&gt;{'DBSID'};
> <a name=82> 81</a>: # my $user      = $Application-&gt;{'DBUsername'};
> <a name=83> 82</a>: # my $pw        = $Application-&gt;{'DBPassword'};
> <a name=84> 83</a>: # my $connstr   = &quot;dbi:$driver:host=$server;sid=$sid&quot;;
> <a name=85> 84</a>: # my $g_dbiconn = DBI-&gt;connect($connstr, $user, $pw);
> <a name=86> 85</a>: my $g_dbiconn = dbconnect();
> <a name=87> 86</a>: 
> <a name=88> 87</a>: # This is where we check for form submission for the header.inc
> <a name=89> 88</a>: # check for ChangeRole
> <a name=90> 89</a>: $Session-&gt;{'Role'} = $Request-&gt;Form('role') if ($Request-&gt;Form('control') eq &quot;ChangeRole&quot;);
> <a name=91> 90</a>: 
> <a name=92> 91</a>: my $err    = $g_dbiconn-&gt;err() || &quot;&quot;;
> <a name=93> 92</a>: my $errstr = $g_dbiconn-&gt;errstr() || &quot;&quot;;
> <a name=94> 93</a>: if ($err || $errstr) {
> <a name=95> 94</a>: 	$Response-&gt;AppendToLog(&quot;[NEIS] - init.htm: DATABASE ERROR -- ($err) $errstr&quot;);
> <a name=96> 95</a>: }
> <a name=97> 96</a>: 
> <a name=98> 97</a>: ; $main::Response-&gt;WriteRef(\('
> <a name=99> 98</a>: 
> <a name=100> 99</a>: '));
> <a name=101>100</a>: ############################################################################
> <a name=102>101</a>: #
> <a name=103>102</a>: # viewNodes.htm
> <a name=104>103</a>: #
> <a name=105>104</a>: # Purpose: displays information about nodes matching the given search criteria
> <a name=106>105</a>: #
> <a name=107>106</a>: # Input:
> <a name=108>107</a>: #	search criteria, read from the Form or $Session variable
> <a name=109>108</a>: # 	column name by which results should be sorted, passed along the URL
> <a name=110>109</a>: #
> <a name=111>110</a>: # Created by:	Catherine Higuchi, Dexter Lieu
> <a name=112>111</a>: # Last Update: 09/29/2000
> <a name=113>112</a>: #
> <a name=114>113</a>: ############################################################################
> <a name=115>114</a>: 
> <a name=116>115</a>: ### Variable definition ###
> <a name=117>116</a>: my $asppage = $INAP::NEIS::asppage;
> <a name=118>117</a>: my $pagetitle = &quot;View Nodes&quot;;
> <a name=119>118</a>: 
> <a name=120>119</a>: ###########################
> <a name=121>120</a>: #
> <a name=122>121</a>: #	Code to check users permission to edit
> <a name=123>122</a>: #		current area
> <a name=124>123</a>: #
> <a name=125>124</a>: 
> <a name=126>125</a>: my $pageTopic = 'NODE';
> <a name=127>126</a>: my $userRole = $Session-&gt;{'Role'};
> <a name=128>127</a>: my $allowEdit = NCM::Nodes::checkUserRole($userRole, $pageTopic);
> <a name=129>128</a>: my $editcols = 2;
> <a name=130>129</a>: $editcols = 3 if $allowEdit;
> <a name=131>130</a>: $Session-&gt;{&quot;nodeSearchError&quot;} = '';
> <a name=132>131</a>: 
> <a name=133>132</a>: 
> <a name=134>133</a>: ### testing of pagehash...
> <a name=135>134</a>: 
> <a name=136>135</a>: ##	for ( keys %g_PageHash)
> <a name=137>136</a>: ##	{
> <a name=138>137</a>: ##		$DEBUG &amp;&amp; $Response-&gt;AppendToLog(&quot;[NEIS] - viewNodes.htm - $g_PageHash-&gt;{$_}&quot;);
> <a name=139>138</a>: ##	}
> <a name=140>139</a>: 
> <a name=141>140</a>: 
> <a name=142>141</a>: 
> <a name=143>142</a>: 
> <a name=144>143</a>: ### read the values from the previous form	###
> <a name=145>144</a>: ### and save to the session vars			###
> <a name=146>145</a>: my $form=$Request-&gt;Form();
> <a name=147>146</a>: my $nm;
> <a name=148>147</a>: for ( keys %{$form}) {
> <a name=149>148</a>: 	$nm = $_;
> <a name=150>149</a>: 	$Session-&gt;{$nm}= $form-&gt;{$nm};
> <a name=151>150</a>: 	$DEBUG &amp;&amp; $Response-&gt;AppendToLog(&quot;[NEIS] - viewNodes.htm - $nm: $form-&gt;{$nm}&quot;);
> <a name=152>151</a>: }
> <a name=153>152</a>: 
> <a name=154>153</a>: 
> <a name=155>154</a>: if ($Request-&gt;QueryString('assetTag')) {
> <a name=156>155</a>: 	$Session-&gt;{&quot;searchNodeOID&quot;} = NCM::Nodes::getNodeFromAsset($g_dbconn, $Request-&gt;QueryString('assetTag'));
> <a name=157>156</a>: 	if ( !($Session-&gt;{&quot;searchNodeOID&quot;}) )
> <a name=158>157</a>: 	{
> <a name=159>158</a>: 		$Session-&gt;{'ERROR'} = 'Invalid Asset Tag';
> <a name=160>159</a>: 
> <a name=161>160</a>: 		$Response-&gt;Redirect(&quot;index.htm&quot;);
> <a name=162>161</a>: 	}
> <a name=163>162</a>: 
> <a name=164>163</a>: }
> <a name=165>164</a>: 
> <a name=166>165</a>: 
> <a name=167>166</a>: ### get the criteria from the session vars	###
> <a name=168><b><font color=red>167</font></b></a>: my $searchNodeOID = $Session-&gt;{&quot;searchNodeOID&quot;} || $Request-&gt;QueryString('OID') || &quot;&quot;;
> <a name=169>168</a>: 	my $searchNodeName = $Session-&gt;{&quot;searchNodeName&quot;} || &quot;&quot;;
> <a name=170>169</a>: 	my $searchNodeType = $Session-&gt;{&quot;searchNodeType&quot;} || &quot;&quot;;
> <a name=171>170</a>: 	my $searchNodeStatus = $Session-&gt;{&quot;searchNodeStatus&quot;} || &quot;&quot;;
> <a name=172>171</a>: 	my $searchSiteCode = $Session-&gt;{&quot;searchSiteCode&quot;} || &quot;&quot;;
> <a name=173>172</a>: 	my $searchLocation = $Session-&gt;{&quot;searchLocation&quot;} || &quot;&quot;;
> <a name=174>173</a>: 	my $searchRack = $Session-&gt;{&quot;searchRack&quot;} || &quot;&quot;;
> <a name=175>174</a>: 
> <a name=176>175</a>: ### whack the other fields if searching by nodeoid
> <a name=177>176</a>: if ($searchNodeOID)
> <a name=178>177</a>: {
> <a name=179>178</a>: 	$searchNodeName = '';
> <a name=180>179</a>: 	$searchNodeType = '';
> <a name=181>180</a>: 	$searchNodeStatus = '';
> <a name=182>181</a>: 	$searchSiteCode = '';
> <a name=183>182</a>: 	$searchLocation = '';
> <a name=184>183</a>: 	$searchRack = '';
> <a name=185>184</a>: }
> <a name=186>185</a>: my @altNodeOIDs;
> <a name=187>186</a>: 
> <a name=188>187</a>: 
> <a name=189>188</a>: $searchNodeName =~ s/'/_/g;
> <a name=190>189</a>: $searchLocation =~ s/'/_/g;
> <a name=191>190</a>: $searchRack =~ s/'/_/g;
> <a name=192>191</a>: 
> <a name=193>192</a>: $searchNodeName =~ s/&quot;/_/g;
> <a name=194>193</a>: $searchLocation =~ s/&quot;/_/g;
> <a name=195>194</a>: $searchRack =~ s/&quot;/_/g;
> <a name=196>195</a>: 
> <a name=197>196</a>: 
> <a name=198>197</a>: if ($Session-&gt;{&quot;altNodeSearch&quot;})
> <a name=199>198</a>: {
> <a name=200>199</a>: 	@altNodeOIDs = @{$Session-&gt;{&quot;altNodeSearch&quot;}};
> <a name=201>200</a>: }
> <a name=202>201</a>: 
> <a name=203>202</a>: 
> <a name=204>203</a>: ### if no criteria bounce them back to search page
> <a name=205>204</a>: if ( (! ($searchNodeOID) ) &amp;&amp; (! ($searchNodeName) ) &amp;&amp; (! ($searchNodeType) ) &amp;&amp; (! ($searchNodeStatus) ) &amp;&amp; (! ($searchSiteCode) ) &amp;&amp; (! ($searchLocation) ) &amp;&amp; (! ($searchRack) ) )  {
> <a name=206>205</a>: 
> <a name=207>206</a>: 	$Session-&gt;{&quot;nodeSearchError&quot;} = 'Search requires at least one field be filled in';
> <a name=208>207</a>: 
> <a name=209>208</a>: 	$Response-&gt;Redirect(&quot;searchNode.htm&quot;);
> <a name=210>209</a>: 
> <a name=211>210</a>: 
> <a name=212>211</a>: }
> <a name=213>212</a>: 
> <a name=214>213</a>: 
> <a name=215>214</a>: 
> <a name=216>215</a>: 
> <a name=217>216</a>: 
> <a name=218>217</a>: 
> <a name=219>218</a>: 
> <a name=220>219</a>: 
> <a name=221>220</a>: 
> <a name=222>221</a>: 
> <a name=223>222</a>: 
> <a name=224>223</a>: 
> <a name=225>224</a>: ### Get the order by column ###
> <a name=226>225</a>: my $ordercolumn = $Request-&gt;QueryString('ordercolumn') || &quot;NODENAME, NODETYPE, STATUS, SITECODE&quot;;
> <a name=227>226</a>: 
> <a name=228>227</a>: ### lists of returned data ###
> <a name=229>228</a>: my (@nodeOIDList, @nodeNameList, @nodeTypeList, @nodeTypeCodeList, @statusList, @statusCodeList, @siteCodeList, @locationList, @rackList, @commentList, @updateNbrList);
> <a name=230>229</a>: my $nodecount = NCM::Nodes::getNodes($g_dbconn, $searchNodeOID, $searchNodeName, $searchNodeType, $searchNodeStatus,
> <a name=231>230</a>: 	$searchSiteCode, $searchLocation, $searchRack, \@altNodeOIDs, $ordercolumn, \@nodeOIDList,
> <a name=232>231</a>: 	\@nodeNameList, \@nodeTypeList, \@nodeTypeCodeList, \@statusList, \@statusCodeList,
> <a name=233>232</a>: 	\@siteCodeList, \@locationList, \@rackList, \@commentList, \@updateNbrList);
> <a name=234>233</a>: 
> <a name=235>234</a>: ######################### HTML START #########################
> <a name=236>235</a>: 
> <a name=237>236</a>: ; $main::Response-&gt;WriteRef(\('
> <a name=238>237</a>: &lt;html&gt;
> <a name=239>238</a>: &lt;head&gt;
> <a name=240>239</a>: 	'));
> <a name=241>240</a>:   ######################################################################
> <a name=242>241</a>:   # head.inc
> <a name=243>242</a>:   #
> <a name=244>243</a>:   # use: include in the &lt;head&gt; block on every page and add onload=&quot;init()&quot;
> <a name=245>244</a>:   #   to the &lt;body&gt; tag on every page
> <a name=246>245</a>:   #
> <a name=247>246</a>:   # purpose: defines the meta tags and stylesheets for the page,
> <a name=248>247</a>:   #     sets the timeout redirect, sets the page title
> <a name=249>248</a>:   #     and creates the menus to be used in the nav bar
> <a name=250>249</a>:   #
> <a name=251>250</a>:   # prerequisites: the value of $pagetitle describing the specific page
> <a name=252>251</a>:   #     is set in each page where this include is used
> <a name=253>252</a>:   #
> <a name=254>253</a>:   # Created By: Will Stevenson, Dexter Lieu
> <a name=255>254</a>:   # Last Update: 09/29/2000
> <a name=256>255</a>:   #
> <a name=257>256</a>:   ######################################################################
> <a name=258>257</a>: 
> <a name=259>258</a>:   use vars qw($pagetitle);
> <a name=260>259</a>: 
> <a name=261>260</a>: # Put go.script include file here rather than in each htm file.
> <a name=262>261</a>: if ($asppage =~ /^(searchCircuit|searchBandwidth|searchService|viewCircuitService|editservice|addSecondary)/) {
> <a name=263>262</a>:   ; $main::Response-&gt;WriteRef(\(' &lt;script language=&quot;JavaScript&quot;&gt;
> <a name=264>263</a>: &lt;!--
> <a name=265>264</a>: if(document.layers){origWidth=innerWidth;origHeight=innerHeight;onresize=function(){if(innerWidth!=origWidth||innerHeight!=origHeight)location.reload()}}
> <a name=266>265</a>: function MM_showHideLayers() { //v2.0
> <a name=267>266</a>:   var i, visStr, args, theObj;
> <a name=268>267</a>:   args = MM_showHideLayers.arguments;
> <a name=269>268</a>:   for (i=0; i&lt;(args.length-2); i+=3) { //with arg triples (objNS,objIE,visStr)
> <a name=270>269</a>:     visStr   = args[i+2];
> <a name=271>270</a>:     if (navigator.appName == \'Netscape\' &amp;&amp; document.layers != null) {
> <a name=272>271</a>:       theObj = eval(args[i]);
> <a name=273>272</a>:       if (theObj) theObj.visibility = visStr;
> <a name=274>273</a>:     } else if (document.all != null) { //IE
> <a name=275>274</a>:       if (visStr == \'show\') visStr = \'visible\'; //convert vals
> <a name=276>275</a>:       if (visStr == \'hide\') visStr = \'hidden\';
> <a name=277>276</a>:       theObj = eval(args[i+1]);
> <a name=278>277</a>:       if (theObj) theObj.style.visibility = visStr;
> <a name=279>278</a>:   } }
> <a name=280>279</a>: }
> <a name=281>280</a>: 
> <a name=282>281</a>: function PopSearch(){
> <a name=283>282</a>:         var QUERY=prompt(&quot;Enter Search Term&quot;, &quot;&quot;);
> <a name=284>283</a>:         if (QUERY) {
> <a name=285>284</a>:                 document.location.href=&quot;/cgi-bin/nph-seek.cgi/query.html?qt=&quot;+QUERY;
> <a name=286>285</a>:         }
> <a name=287>286</a>: }
> <a name=288>287</a>: //--&gt;
> <a name=289>288</a>: &lt;/script&gt;
> <a name=290>289</a>:  '));
> <a name=291>290</a>: }
> <a name=292>291</a>: 
> <a name=293>292</a>: 
> <a name=294>293</a>: ; $main::Response-&gt;WriteRef(\('
> <a name=295>294</a>: 
> <a name=296>295</a>: 
> <a name=297>296</a>: &lt;meta http-equiv=&quot;Pragma&quot;  content=&quot;No-cache&quot;&gt;
> <a name=298>297</a>: &lt;meta http-equiv=&quot;Content-Type&quot; content=&quot;text/html; charset=iso-8859-1&quot;&gt;
> <a name=299>298</a>: &lt;meta http-equiv=&quot;refresh&quot; content=&quot;'.(($Session-&gt;{'Timeout'}*60) ).';URL=logout.htm&quot;&gt;
> <a name=300>299</a>: 
> <a name=301>300</a>: &lt;noscript&gt;
> <a name=302>301</a>: &lt;!-- in case the user is not using javascript we send them to infosource
> <a name=303>302</a>:   which has a nice red page that tells them how to enable it --&gt;
> <a name=304>303</a>: &lt;meta http-equiv=&quot;refresh&quot; content=&quot;0;URL=http://infosource.internap.com/&quot;&gt;
> <a name=305>304</a>: &lt;/noscript&gt;
> <a name=306>305</a>: 
> <a name=307>306</a>: &lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/track.css&quot;&gt;
> <a name=308>307</a>: &lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;/sub.css&quot;&gt;
> <a name=309>308</a>: &lt;link rel=&quot;stylesheet&quot; type=&quot;text/css&quot; href=&quot;netcfg.css&quot;&gt;
> <a name=310>309</a>: 
> <a name=311>310</a>: &lt;title&gt;')); $Response-&gt;Write(&quot;$Application-&gt;{'Application'} $Application-&gt;{'CVS_Version'}&quot;);; $main::Response-&gt;WriteRef(\(' | '.($pagetitle).'&lt;/title&gt;
> <a name=312>311</a>: 
> <a name=313>312</a>: &lt;script language=&quot;JavaScript1.2&quot; SRC=&quot;./inc/menu.js&quot;&gt;&lt;/script&gt;
> <a name=314>313</a>: &lt;script language=&quot;JavaScript1.2&quot; SRC=&quot;./inc/dhtmllib.js&quot;&gt;&lt;/script&gt;
> <a name=315>314</a>: 
> <a name=316>315</a>: &lt;script language=&quot;JavaScript1.2&quot;&gt;
> <a name=317>316</a>: 
> <a name=318>317</a>: '));
> <a name=319>318</a>: #check for errormsgs
> <a name=320>319</a>: if($Session-&gt;{ERRORMSG} ne ''){
> <a name=321>320</a>: ; $main::Response-&gt;WriteRef(\('
> <a name=322>321</a>:   top.errorWindow = window.open(\'error.htm\',\'errorWindow\',\'scrollbars=yes,titlebar=no,dependent=yes,width=400,height=400,screenX=200,screenY=200\');
> <a name=323>322</a>:   top.errorWindow.focus();
> <a name=324>323</a>: '));}; $main::Response-&gt;WriteRef(\('
> <a name=325>324</a>: 
> <a name=326>325</a>: //&lt;!--
> <a name=327>326</a>: var isNetscape=0;
> <a name=328>327</a>: var isIE=0;
> <a name=329>328</a>: 
> <a name=330>329</a>: //This is to fix netscape bug with style sheets;
> <a name=331>330</a>: //Reload the document if resized;
> <a name=332>331</a>: function onResize(){
> <a name=333>332</a>: 
> <a name=334>333</a>:   //Netscape has a bug and needs to be reloaded after resized if it
> <a name=335>334</a>:   //contains css or dhtml
> <a name=336>335</a>:   if(isNetscape){
> <a name=337>336</a>:     location.reload();
> <a name=338>337</a>:   }
> <a name=339>338</a>: }
> <a name=340>339</a>: 
> <a name=341>340</a>: 
> <a name=342>341</a>: //global menus
> <a name=343>342</a>: 
> <a name=344>343</a>: /***************************************************************
> <a name=345>344</a>:  * client side initialization of NEIS::Network Configuration
> <a name=346>345</a>:  */
> <a name=347>346</a>: function init(){
> <a name=348>347</a>: 
> <a name=349>348</a>:   //which browser?
> <a name=350>349</a>:   if(navigator.appName.indexOf(&quot;Internet Explorer&quot;) != -1){
> <a name=351>350</a>:     isIE=1;
> <a name=352>351</a>:   }
> <a name=353>352</a>:   if( navigator.appName.indexOf(&quot;Netscape&quot;) != -1){
> <a name=354>353</a>:     isNetscape=1;
> <a name=355>354</a>:   }
> <a name=356>355</a>:   if(!isNetscape &amp;&amp; !isIE){
> <a name=357>356</a>:     alert(navigator.appName + &quot; is an unsupported browser for NEIS::Network Configuration. \\n Use at your own risk.&quot;);
> <a name=358>357</a>:   }
> <a name=359>358</a>: 
> <a name=360>359</a>:   // if we are using netscape we can create menus right now
> <a name=361>360</a>:   // else we will create the menus in ./inc/header.inc for IE
> <a name=362>361</a>:   if(isNetscape){
> <a name=363>362</a>:     CreateMenus();
> <a name=364>363</a>:   }
> <a name=365>364</a>: 
> <a name=366>365</a>:   window.document.onkeyup=function(event){
> <a name=367>366</a>:     if( !isNetscape){
> <a name=368>367</a>:       event=window.event;
> <a name=369>368</a>:     }
> <a name=370>369</a>: 
> <a name=371>370</a>:     if (event){
> <a name=372>371</a>:       var charCode = (navigator.appName == &quot;Netscape&quot;) ? event.which : event.keyCode;
> <a name=373>372</a>:       var actualChar = String.fromCharCode(charCode);
> <a name=374>373</a>:     }
> <a name=375>374</a>:   } //end function(event)
> <a name=376>375</a>: } // end init()
> <a name=377>376</a>: 
> <a name=378>377</a>: 
> <a name=379>378</a>: /**********************************************************
> <a name=380>379</a>:  * Creates the menus for NEIS Net Config (NCM)
> <a name=381>380</a>:  */
> <a name=382>381</a>: 
> <a name=383>382</a>: var myMenu;
> <a name=384>383</a>: var mainMenu;
> <a name=385>384</a>: var roleMenu;
> <a name=386>385</a>: 
> <a name=387>386</a>: function CreateMenus(){
> <a name=388>387</a>:   // create main menu; items to be added via navmenu.htm
> <a name=389>388</a>:   mainMenu = new Menu(&quot;main&quot;);
> <a name=390>389</a>: 
> <a name=391>390</a>:   // get the menu options from navmenu.htm
> <a name=392>391</a>:   '));
> <a name=393>392</a>: 	#################################################################################
> <a name=394>393</a>: 	#
> <a name=395>394</a>: 	# navmenu.inc
> <a name=396>395</a>: 	#
> <a name=397>396</a>: 	# use: this file is included in head.inc; so, as long as head.inc is included
> <a name=398>397</a>: 	#		in the file, this file does not have to be explicitly included as well
> <a name=399>398</a>: 	#
> <a name=400>399</a>: 	# purpose: used to generate the options in the main menu, based on the current
> <a name=401>400</a>: 	#			page and context
> <a name=402>401</a>: 	#
> <a name=403>402</a>: 	# prerequisites: the boolean $allowEdit must be defined in each page (this
> <a name=404>403</a>: 	#			determines if the add links are displayed)
> <a name=405>404</a>: 	#
> <a name=406>405</a>: 	# comment: it may be better to not try to suppress the add links based on role,
> <a name=407>406</a>: 	#			and just let the role security in the add pages reject users without
> <a name=408>407</a>: 	#			the right access
> <a name=409>408</a>: 	#
> <a name=410>409</a>: 	# Created By:	Dexter Lieu
> <a name=411>410</a>: 	# Last Revision:	10/16/2000
> <a name=412>411</a>: 	#
> <a name=413>412</a>: 	#################################################################################
> <a name=414>413</a>: 
> <a name=415>414</a>: 	### define hash of context-sensitive help docs
> <a name=416>415</a>: 
> <a name=417>416</a>: 	### done just in case someone forgets to define this var
> <a name=418>417</a>: 	use vars qw($allowEdit);
> <a name=419>418</a>: 
> <a name=420>419</a>: 	my %helpdoc = (
> <a name=421>420</a>: 		&quot;index.htm&quot;					=&gt; &quot;ncm30.htm&quot;,
> <a name=422>421</a>: 		&quot;addLinkGroup.htm&quot;			=&gt; &quot;about_links_and_link_groups.htm&quot;,
> <a name=423>422</a>: 		&quot;addNode.htm&quot;				=&gt; &quot;about_nodes.htm&quot;,
> <a name=424>423</a>: 		&quot;editEndpoint.htm&quot;			=&gt; &quot;about_endpoints.htm&quot;,
> <a name=425>424</a>: 		&quot;editInstalledAsset.htm&quot;	=&gt; &quot;about_assets.htm&quot;,
> <a name=426>425</a>: 		&quot;editLinks.htm&quot;				=&gt; &quot;about_links_and_link_groups.htm&quot;,
> <a name=427>426</a>: 		&quot;editLinkGroup.htm&quot;			=&gt; &quot;about_links_and_link_groups.htm&quot;,
> <a name=428>427</a>: 		&quot;editNode.htm&quot;				=&gt; &quot;about_nodes.htm&quot;,
> <a name=429>428</a>: 		&quot;listBWServices.htm&quot;		=&gt; &quot;to_navigate_from_search_results.htm&quot;,
> <a name=430>429</a>: 		&quot;listCircuits.htm&quot;			=&gt; &quot;to_navigate_from_search_results.htm&quot;,
> <a name=431>430</a>: 		&quot;pickAsset.htm&quot;				=&gt; &quot;about_assets.htm&quot;,
> <a name=432>431</a>: 		&quot;pickEndpoint.htm&quot;			=&gt; &quot;about_endpoints.htm&quot;,
> <a name=433>432</a>: 		&quot;pickLocation.htm&quot;			=&gt; &quot;about_locations.htm&quot;,
> <a name=434>433</a>: 		&quot;pickNode.htm&quot;				=&gt; &quot;about_nodes.htm&quot;,
> <a name=435>434</a>: 		&quot;pickRack.htm&quot;				=&gt; &quot;about_racks.htm&quot;,
> <a name=436>435</a>: 		&quot;refineAsset.htm&quot;			=&gt; &quot;refining_a_search.htm&quot;,
> <a name=437>436</a>: 		&quot;refineEndpoint.htm&quot;		=&gt; &quot;refining_a_search.htm&quot;,
> <a name=438>437</a>: 		&quot;refineLocation.htm&quot;		=&gt; &quot;refining_a_search.htm&quot;,
> <a name=439>438</a>: 		&quot;refineNode.htm&quot;			=&gt; &quot;refining_a_search.htm&quot;,
> <a name=440>439</a>: 		&quot;refineRack.htm&quot;			=&gt; &quot;refining_a_search.htm&quot;,
> <a name=441>440</a>: 		&quot;searchBandwidthService.htm&quot;	 	    =&gt; &quot;about_bandwidth_services.htm&quot;,
> <a name=442>441</a>: 		&quot;searchCircuit.htm&quot;			=&gt; &quot;about_circuits_and_secondary_circuits.htm&quot;,
> <a name=443>442</a>: 		&quot;searchLinkGroup.htm&quot;		=&gt; &quot;searching_for_link_groups.htm&quot;,
> <a name=444>443</a>: 		&quot;searchNode.htm&quot;			=&gt; &quot;about_nodes.htm&quot;,
> <a name=445>444</a>: 		&quot;viewEndpoints.htm&quot;			=&gt; &quot;to_navigate_from_search_results.htm&quot;,
> <a name=446>445</a>: 		&quot;viewInstalledAssets.htm&quot;	=&gt; &quot;to_navigate_from_search_results.htm&quot;,
> <a name=447>446</a>: 		&quot;viewLinkGroups.htm&quot;		=&gt; &quot;to_navigate_from_search_results.htm&quot;,
> <a name=448>447</a>: 		&quot;viewNodes.htm&quot;				=&gt; &quot;to_navigate_from_search_results.htm&quot;
> <a name=449>448</a>: 	);
> <a name=450>449</a>: 
> <a name=451>450</a>: 
> <a name=452>451</a>: 
> <a name=453>452</a>: 
> <a name=454>453</a>: 
> <a name=455>454</a>: 
> <a name=456>455</a>: 
> <a name=457>456</a>: 	#################################################################################
> <a name=458>457</a>: 	# add menu options for the viewEndpoints.htm page
> <a name=459>458</a>: 	#################################################################################
> <a name=460>459</a>: 	if ($asppage =~ /viewEndpoints/)
> <a name=461>460</a>: 	{ ; $main::Response-&gt;WriteRef(\('
> <a name=462>461</a>: 		mainMenu.addMenuItem(&quot;Back to Nodes List&quot;, &quot;document.location.href=\'viewNodes.htm\'&quot;);
> <a name=463>462</a>: &lt;!--		mainMenu.addMenuItem(&quot;Search Nodes&quot;, &quot;document.location.href=\'searchNode.htm\'&quot;); --&gt;
> <a name=464>463</a>: 		mainMenu.addMenuSeparator();
> <a name=465>464</a>: 		')); if ($allowEdit)
> <a name=466>465</a>: 		{ ; $main::Response-&gt;WriteRef(\('
> <a name=467>466</a>: 			mainMenu.addMenuItem(&quot;Add Endpoints&quot;, &quot;document.location.href=\'editEndpoint.htm?nodeOID='.($g_nodeOID).'\'&quot;);
> <a name=468>467</a>: 			mainMenu.addMenuSeparator();
> <a name=469>468</a>: 		')); } ; $main::Response-&gt;WriteRef(\('
> <a name=470>469</a>: 	')); }
> <a name=471>470</a>: 
> <a name=472>471</a>: 
> <a name=473>472</a>: 	#################################################################################
> <a name=474>473</a>: 	# add menu options for the viewInstalledAssets.htm page
> <a name=475>474</a>: 	#################################################################################
> <a name=476>475</a>: 	if ($asppage =~ /viewInstalledAssets/)
> <a name=477>476</a>: 	{ ; $main::Response-&gt;WriteRef(\('
> <a name=478>477</a>: 		mainMenu.addMenuItem(&quot;Back to Nodes List&quot;, &quot;document.location.href=\'viewNodes.htm\'&quot;);
> <a name=479>478</a>: &lt;!--		mainMenu.addMenuItem(&quot;Search Nodes&quot;, &quot;document.location.href=\'searchNode.htm\'&quot;); --&gt;
> <a name=480>479</a>: 		mainMenu.addMenuSeparator();
> <a name=481>480</a>: 		')); if ($allowEdit)
> <a name=482>481</a>: 		{ ; $main::Response-&gt;WriteRef(\('
> <a name=483>482</a>: 			mainMenu.addMenuItem(&quot;Add Installed Asset&quot;, &quot;document.location.href=\'editInstalledAsset.htm?OID='.($g_nodeOID).'\'&quot;);
> <a name=484>483</a>: 			mainMenu.addMenuSeparator();
> <a name=485>484</a>: 		')); } ; $main::Response-&gt;WriteRef(\('
> <a name=486>485</a>: 	')); }
> <a name=487>486</a>: 
> <a name=488>487</a>: 
> <a name=489>488</a>: 	#################################################################################
> <a name=490>489</a>: 	# add common options to all menus except the denied page
> <a name=491>490</a>: 	#################################################################################
> <a name=492>491</a>: 	if ( $asppage !~ /(denied|logout)/ ) {
> <a name=493>492</a>: 
> <a name=494>493</a>: 
> <a name=495>494</a>: 	#################################################################################
> <a name=496>495</a>: 	# add menu options for adding a node
> <a name=497>496</a>: 	#################################################################################
> <a name=498>497</a>: 	if (NCM::Nodes::checkUserRole($Session-&gt;{'Role'}, 'NODE'))
> <a name=499>498</a>: 	{ ; $main::Response-&gt;WriteRef(\('
> <a name=500>499</a>: 		mainMenu.addMenuItem(&quot;Add a Node&quot;, &quot;document.location.href=\'addNode.htm?origPage='.($asppage).'\'&quot;);
> <a name=501>500</a>: 		mainMenu.addMenuSeparator();
> <a name=502>501</a>: 	')); }
> <a name=503>502</a>: 
> <a name=504>503</a>: 
> <a name=505>504</a>: 	#################################################################################
> <a name=506>505</a>: 	# add menu options for adding linkgroups
> <a name=507>506</a>: 	#################################################################################
> <a name=508>507</a>: 	if (NCM::Nodes::checkUserRole($Session-&gt;{'Role'}, 'LINK'))
> <a name=509>508</a>: 	{ ; $main::Response-&gt;WriteRef(\('
> <a name=510>509</a>: 		mainMenu.addMenuItem(&quot;Add a Link Group&quot;, &quot;document.location.href=\'editLinkGroup.htm?origPage='.($asppage).'\'&quot;);
> <a name=511>510</a>: 		mainMenu.addMenuItem(&quot;Add a PNAP&quot;, &quot;document.location.href=\'addPNAP.htm\'&quot;);
> <a name=512>511</a>: 		mainMenu.addMenuSeparator();
> <a name=513>512</a>: 	')); }
> <a name=514>513</a>: ; $main::Response-&gt;WriteRef(\('
> <a name=515>514</a>: 		mainMenu.addMenuItem(&quot;Go To Asset&quot;, &quot;javascript:GoToAsset();&quot;);
> <a name=516>515</a>: 		mainMenu.addMenuItem(&quot;Go To Link Group&quot;, &quot;javascript:GoToLG();&quot;);
> <a name=517>516</a>: 		mainMenu.addMenuItem(&quot;Go To Service&quot;, &quot;javascript:GoToSVC();&quot;);
> <a name=518>517</a>: 		mainMenu.addMenuSeparator();
> <a name=519>518</a>: 		mainMenu.addMenuItem(&quot;Search Bandwidth Services&quot;, &quot;document.location.href=\'searchBandwidthService.htm\'&quot;);
> <a name=520>519</a>: 		mainMenu.addMenuItem(&quot;Search Circuit Services&quot;, &quot;document.location.href=\'searchCircuit.htm\'&quot;);
> <a name=521>520</a>: 		mainMenu.addMenuItem(&quot;Search Link Groups and Links&quot;, &quot;document.location.href=\'searchLinkGroup.htm\'&quot;);
> <a name=522>521</a>: 		mainMenu.addMenuItem(&quot;Search Nodes and Endpoints&quot;, &quot;document.location.href=\'searchNode.htm\'&quot;);
> <a name=523>522</a>: 		mainMenu.addMenuItem(&quot;Search Services&quot;, &quot;document.location.href=\'searchService.htm\'&quot;);
> <a name=524>523</a>:     ')); if ($Session-&gt;{'Role'} =~ /^NCMADM$/) { ; $main::Response-&gt;WriteRef(\('
> <a name=525>524</a>:     mainMenu.addMenuSeparator();
> <a name=526>525</a>:     &lt;!-- mainMenu.addMenuItem(&quot;Administer Roles&quot;, &quot;document.location.href=\'roleAdmin.htm\'&quot;); --&gt;
> <a name=527>526</a>:     mainMenu.addMenuItem(&quot;Administer Roles&quot;, &quot;document.location.href=\''.($INAP::NEIS::Application-&gt;{'RolesLocation'}).'/index.htm?rct=NEIS&amp;logo=/apps/netcfg/images/netconfig.gif\'&quot;);
> <a name=528>527</a>:     ')); } ; $main::Response-&gt;WriteRef(\('
> <a name=529>528</a>: 		mainMenu.addMenuSeparator();
> <a name=530>529</a>: 		mainMenu.addMenuItem(&quot;NCM Home&quot;, &quot;document.location.href=\'index.htm\'&quot;);
> <a name=531>530</a>: 		mainMenu.addMenuSeparator();
> <a name=532>531</a>: 		mainMenu.addMenuItem(&quot;Help&quot;, &quot;open(\'https://infosource.internap.com/appdocs/ncm/WebHelp/index.htm\',\'helpwindow\',\'scrollbars\');&quot;);
> <a name=533>532</a>: 
> <a name=534>533</a>: ////    mainMenu.addMenuItem(&quot;Help&quot;, &quot;open(\'https://infosource.internap.com/apps/ncm/webhelp/'.($helpdoc{$asppage}).'\',\'helpwindow\',\'scrollbars\');&quot;);
> <a name=535>534</a>: 
> <a name=536>535</a>: 	')); } elsif ( $asppage =~ /(denied|logout)/ ) { ; $main::Response-&gt;WriteRef(\('
> <a name=537>536</a>: 		mainMenu.addMenuItem(&quot;NCM Home&quot;, &quot;document.location.href=\'index.htm\'&quot;);
> <a name=538>537</a>:   ')); }
> <a name=539>538</a>: ; $main::Response-&gt;WriteRef(\('
> <a name=540>539</a>: 
> <a name=541>540</a>: 
> <a name=542>541</a>:   setupMenu(mainMenu,\'grayblue\');
> <a name=543>542</a>: 
> <a name=544>543</a>:   //located in ./inc/header.inc
> <a name=545>544</a>:   createRoleMenu(&quot;'.($Session-&gt;{'Role'}).'&quot;);
> <a name=546>545</a>: 
> <a name=547>546</a>:   mainMenu.writeMenus();
> <a name=548>547</a>: }
> <a name=549>548</a>: 
> <a name=550>549</a>: function setupMenu( menu, type){
> <a name=551>550</a>:   menu.enableHideOnMouseOut=1;
> <a name=552>551</a>:   menu.menuBorder=0;
> <a name=553>552</a>:   menu.menuItemHeight=0;
> <a name=554>553</a>:   menu.menuItemBorder=0;
> <a name=555>554</a>:   menu.menuHiliteBgColor=&quot;#cccccc&quot;;
> <a name=556>555</a>:   menu.fontSize=12;
> <a name=557>556</a>: 
> <a name=558>557</a>:   if(type==\'white\'){
> <a name=559>558</a>:     menu.fontColor = &quot;blue&quot;;
> <a name=560>559</a>:     menu.bgColor = &quot;#dddddd&quot;;
> <a name=561>560</a>:     menu.menuItemBgColor = &quot;white&quot;;
> <a name=562>561</a>:     menu.menuHiliteBgColor = &quot;#a6b9e9&quot;;
> <a name=563>562</a>:   }
> <a name=564>563</a>: 
> <a name=565>564</a>:   if(type==\'grayblue\'){
> <a name=566>565</a>:     menu.fontColorHilite = &quot;#0000ff&quot;;
> <a name=567>566</a>:   }
> <a name=568>567</a>: }
> <a name=569>568</a>: 
> <a name=570>569</a>: 
> <a name=571>570</a>: // Note from Dex: I don\'t think we need these last three menus,
> <a name=572>571</a>: // but they may become useful so I\'m leaving them in for now
> <a name=573>572</a>: 
> <a name=574>573</a>: function ShowUserMenu( UserName){
> <a name=575>574</a>:   if(UserName != &quot;No data&quot;){
> <a name=576>575</a>:     userMenu = new Menu(UserName);
> <a name=577>576</a>:     userMenu.addMenuItem(&quot;Infosource Page&quot;, &quot;document.location.href=\'https://infosource.internap.com/corp/staff/info.htm?login=&quot;+UserName+&quot;\'&quot;);
> <a name=578>577</a>:     userMenu.addMenuSeparator();
> <a name=579>578</a>:     userMenu.addMenuItem(&quot;Email&quot;, &quot;document.location.href=\'mailto:&quot;+UserName+&quot;@internap.com\'&quot;);
> <a name=580>579</a>:     userMenu.addMenuItem(&quot;Page&quot;, &quot;document.location.href=\'https://infosource.internap.com/corp/staff/page.htm?login=&quot;+UserName+&quot;\'&quot;);
> <a name=581>580</a>:     setupMenu(userMenu,\'white\');
> <a name=582>581</a>:     userMenu.writeMenus();
> <a name=583>582</a>:     showMenu(userMenu);
> <a name=584>583</a>:   }
> <a name=585>584</a>: }
> <a name=586>585</a>: 
> <a name=587>586</a>: function NewContact(){
> <a name=588>587</a>:   top.contactWindow = window.open(\'newcontact.htm\',\'contactWindow\',\'titlebar=no,dependent=yes,width=300,height=200,screenX=100,screenY=100\');
> <a name=589>588</a>:   top.contactWindow.focus();
> <a name=590>589</a>: 
> <a name=591>590</a>:   document.FNewContact.target=\'contactWindow\';
> <a name=592>591</a>:   document.FNewContact.submit();
> <a name=593>592</a>: }
> <a name=594>593</a>: 
> <a name=595>594</a>: function GetUserInfo( UserName){
> <a name=596>595</a>:   document.location.href=&quot;https://infosource.internap.com/corp/staff/info.htm?login=&quot;+UserName;
> <a name=597>596</a>: }
> <a name=598>597</a>: 
> <a name=599>598</a>: //***************************************
> <a name=600>599</a>: //Navigates to the next service
> <a name=601>600</a>: //
> <a name=602>601</a>: //
> <a name=603>602</a>: function GoToSVC(){
> <a name=604>603</a>:   var SVCOID=prompt(&quot;Enter Service&quot;, &quot;'.($Session-&gt;{'LastsvcOID'}).'&quot;);
> <a name=605>604</a>:   if(SVCOID!=null){
> <a name=606>605</a>:     if(isNaN(SVCOID))
> <a name=607>606</a>:       alert(\'Sorry.  You did not enter a valid number\');
> <a name=608>607</a>:     else
> <a name=609>608</a>:       document.location.href=&quot;viewCircuitService.htm?SVCOID=&quot;+SVCOID;
> <a name=610>609</a>:   }
> <a name=611>610</a>: }
> <a name=612>611</a>: 
> <a name=613>612</a>: //***************************************
> <a name=614>613</a>: //Navigates to the asset
> <a name=615>614</a>: //
> <a name=616>615</a>: //
> <a name=617>616</a>: function GoToAsset(){
> <a name=618>617</a>:   var ASTNBR=prompt(&quot;Enter Asset Tag&quot;,&quot;&quot;);
> <a name=619>618</a>:   if(ASTNBR.length &gt; 0){
> <a name=620>619</a>:     if(isNaN(ASTNBR))
> <a name=621>620</a>:       alert(\'Sorry.  You did not enter a valid number\');
> <a name=622>621</a>:     else
> <a name=623>622</a>:       document.location.href=&quot;viewNodes.htm?assetTag=&quot;+ASTNBR;
> <a name=624>623</a>:   } else {
> <a name=625>624</a>:       alert(\'Sorry.  You did not enter a valid number\');
> <a name=626>625</a>:   }
> <a name=627>626</a>: }
> <a name=628>627</a>: 
> <a name=629>628</a>: //***************************************
> <a name=630>629</a>: //Navigates to the next link group
> <a name=631>630</a>: //
> <a name=632>631</a>: //
> <a name=633>632</a>: function GoToLG(){
> <a name=634>633</a>:   var LGOID=prompt(&quot;Enter Link Group&quot;, &quot;'.($Session-&gt;{'searchLinkGroupOID'}).'&quot;);
> <a name=635>634</a>:   if(LGOID!=null){
> <a name=636>635</a>:     if(isNaN(LGOID))  {
> <a name=637>636</a>:       alert(\'Sorry.  You did not enter a valid number\');
> <a name=638>637</a>:       return 0;
> <a name=639>638</a>:     } else {
> <a name=640>639</a>:       document.FGoToLinkGroupDetail.searchLinkGroupOID.value=LGOID;
> <a name=641>640</a>:       document.FGoToLinkGroupDetail.submit();
> <a name=642>641</a>:     }
> <a name=643>642</a>:   }
> <a name=644>643</a>: }
> <a name=645>644</a>: 
> <a name=646>645</a>: /***************************************************
> <a name=647>646</a>:  * Function is used to submit the LinkGroupOID to
> <a name=648>647</a>:  * the View Link Group page
> <a name=649>648</a>:  *
> <a name=650>649</a>:  */
> <a name=651>650</a>: function GoToLinkGroupDetail(linkgroupOID){
> <a name=652>651</a>:   document.FGoToLinkGroupDetail.searchLinkGroupOID.value=linkgroupOID;
> <a name=653>652</a>:   document.FGoToLinkGroupDetail.submit();
> <a name=654>653</a>: }
> <a name=655>654</a>: /**********************************************************
> <a name=656>655</a>: 	TOOL TIP
> <a name=657>656</a>: 	Timing and positioning constants for tool tip display.
> <a name=658>657</a>: 	*/
> <a name=659>658</a>: 
> <a name=660>659</a>: 
> <a name=661>660</a>: var toolTipWait = 1000;    // Delay before showing tool tip.
> <a name=662>661</a>: var toolTipShow = 25000;   // Time to keep tool tip active.
> <a name=663>662</a>: var toolTipxOff =    0;    // Horizontal distance from mouse.
> <a name=664>663</a>: var toolTipyOff =   20;    // Vertical distance from mouse.
> <a name=665>664</a>: 
> <a name=666>665</a>: function startToolTip(name) {
> <a name=667>666</a>:   var tip = getLayer(name);
> <a name=668>667</a>:   // Clear out any pending timer.
> <a name=669>668</a>:   if (tip.timerID)
> <a name=670>669</a>:     clearTimeout(tip.timerID);
> <a name=671>670</a>: 
> <a name=672>671</a>:   // Set timer to show tool tip.
> <a name=673>672</a>:   tip.timerID = setTimeout(\'showToolTip(&quot;\' + name + \'&quot;)\', toolTipWait);
> <a name=674>673</a>: }
> <a name=675>674</a>: 
> <a name=676>675</a>: function showToolTip(name) {
> <a name=677>676</a>:   var tip = getLayer(name);
> <a name=678>677</a>:     // Clear out any pending timer.
> <a name=679>678</a>:   if (tip.timerID)
> <a name=680>679</a>:     clearTimeout(tip.timerID);
> <a name=681>680</a>: 
> <a name=682>681</a>:   // Position and show the tool tip.
> <a name=683>682</a>:   moveLayerTo(tip, window.pageX + toolTipxOff, window.pageY + toolTipyOff);
> <a name=684>683</a>:   showLayer(tip);
> <a name=685>684</a>:   // Set timer to hide the tool tip after a delay.
> <a name=686>685</a>:   tip.timerID = setTimeout(\'hideToolTip(&quot;\' + name + \'&quot;)\', toolTipShow);
> <a name=687>686</a>: }
> <a name=688>687</a>: 
> <a name=689>688</a>: function hideToolTip(name) {
> <a name=690>689</a>:   var tip = getLayer(name);
> <a name=691>690</a>:   // Clear out any pending timer.
> <a name=692>691</a>:   if (tip.timerID)
> <a name=693>692</a>:     clearTimeout(tip.timerID);
> <a name=694>693</a>: 
> <a name=695>694</a>:   hideLayer(tip);
> <a name=696>695</a>: }
> <a name=697>696</a>: //--&gt;
> <a name=698>697</a>: &lt;/script&gt;
> <a name=699>698</a>: 
> <a name=700>699</a>: 	&lt;script language=&quot;JavaScript&quot;&gt;
> <a name=701>700</a>: &lt;!--
> <a name=702>701</a>: if(document.layers){origWidth=innerWidth;origHeight=innerHeight;onresize=function(){if(innerWidth!=origWidth||innerHeight!=origHeight)location.reload()}}
> <a name=703>702</a>: function MM_showHideLayers() { //v2.0
> <a name=704>703</a>:   var i, visStr, args, theObj;
> <a name=705>704</a>:   args = MM_showHideLayers.arguments;
> <a name=706>705</a>:   for (i=0; i&lt;(args.length-2); i+=3) { //with arg triples (objNS,objIE,visStr)
> <a name=707>706</a>:     visStr   = args[i+2];
> <a name=708>707</a>:     if (navigator.appName == \'Netscape\' &amp;&amp; document.layers != null) {
> <a name=709>708</a>:       theObj = eval(args[i]);
> <a name=710>709</a>:       if (theObj) theObj.visibility = visStr;
> <a name=711>710</a>:     } else if (document.all != null) { //IE
> <a name=712>711</a>:       if (visStr == \'show\') visStr = \'visible\'; //convert vals
> <a name=713>712</a>:       if (visStr == \'hide\') visStr = \'hidden\';
> <a name=714>713</a>:       theObj = eval(args[i+1]);
> <a name=715>714</a>:       if (theObj) theObj.style.visibility = visStr;
> <a name=716>715</a>:   } }
> <a name=717>716</a>: }
> <a name=718>717</a>: 
> <a name=719>718</a>: function PopSearch(){
> <a name=720>719</a>:         var QUERY=prompt(&quot;Enter Search Term&quot;, &quot;&quot;);
> <a name=721>720</a>:         if (QUERY) {
> <a name=722>721</a>:                 document.location.href=&quot;/cgi-bin/nph-seek.cgi/query.html?qt=&quot;+QUERY;
> <a name=723>722</a>:         }
> <a name=724>723</a>: }
> <a name=725>724</a>: //--&gt;
> <a name=726>725</a>: &lt;/script&gt;
> <a name=727>726</a>: 
> <a name=728>727</a>: &lt;/head&gt;
> <a name=729>728</a>: &lt;body onLoad=&quot;init()&quot;&gt;
> <a name=730>729</a>: 	'));
> <a name=731>730</a>: 
> <a name=732>731</a>:   # this file is included in the &lt;body&gt; tag of every page
> <a name=733>732</a>:   # and generates the role menu and HTML for the header
> <a name=734>733</a>:   # (company logo, application gif, nav bar)
> <a name=735>734</a>: 
> <a name=736>735</a>: ; $main::Response-&gt;WriteRef(\('
> <a name=737>736</a>: 
> <a name=738>737</a>: &lt;script language=&quot;JavaScript1.2&quot;&gt;
> <a name=739>738</a>: &lt;!--
> <a name=740>739</a>: 
> <a name=741>740</a>:   function ChangeRole(role) {
> <a name=742>741</a>:     document.FChangeRole.role.value=role;
> <a name=743>742</a>:     document.FChangeRole.submit();
> <a name=744>743</a>:   }
> <a name=745>744</a>: 
> <a name=746>745</a>:   function createRoleMenu() {
> <a name=747>746</a>:     roleMenu=new Menu(&quot;role&quot;);
> <a name=748>747</a>: 
> <a name=749>748</a>: 
> <a name=750>749</a>: '));  if ($Session-&gt;{'Role'}) { ; $main::Response-&gt;WriteRef(\('
> <a name=751>750</a>: 
> <a name=752>751</a>: 
> <a name=753>752</a>:     roleMenu.addMenuItem(&quot;'.($Session-&gt;{'RoleLong'}).'&quot;);
> <a name=754>753</a>: 
> <a name=755>754</a>: 
> <a name=756>755</a>: '));
> <a name=757>756</a>:     }
> <a name=758>757</a>: 
> <a name=759>758</a>:     if ($Session-&gt;{'Roles'}) {
> <a name=760>759</a>:       my @Roles = @{$Session-&gt;{'Roles'}};
> <a name=761>760</a>:       my @RolesLong = @{$Session-&gt;{'RolesLong'}};
> <a name=762>761</a>:       my $role;
> <a name=763>762</a>:       my $roleCounter = 0;
> <a name=764>763</a>: 
> <a name=765>764</a>:       foreach $role (@Roles) {
> <a name=766>765</a>: 
> <a name=767>766</a>:         unless ($role eq $Session-&gt;{'Role'}) {  ; $main::Response-&gt;WriteRef(\('
> <a name=768>767</a>: 
> <a name=769>768</a>:      		roleMenu.addMenuItem(&quot;'.( $RolesLong[$roleCounter] ).'&quot;,&quot;ChangeRole(\''.( $role ).'\');&quot;);
> <a name=770>769</a>: 
> <a name=771>770</a>: 
> <a name=772>771</a>: 		'));
> <a name=773>772</a>:         }
> <a name=774>773</a>:         $roleCounter++;
> <a name=775>774</a>:       }
> <a name=776>775</a>: 
> <a name=777>776</a>:       if ($Session-&gt;{'Role'} =~ /^NCMADM$/) {
> <a name=778>777</a>: ; $main::Response-&gt;WriteRef(\('
> <a name=779>778</a>:     roleMenu.addMenuSeparator();
> <a name=780>779</a>: 
> <a name=781>780</a>:     roleMenu.addMenuItem(&quot;Administer Roles&quot;, &quot;document.location.href=\''.( $INAP::NEIS::Application-&gt;{'RolesLocation'} ).'/index.htm?rct=NEIS&amp;logo=/apps/netcfg/images/netconfig.gif\'&quot;);
> <a name=782>781</a>: '));
> <a name=783>782</a>:       }
> <a name=784>783</a>: ; $main::Response-&gt;WriteRef(\('
> <a name=785>784</a>: 
> <a name=786>785</a>:     setupMenu(roleMenu,\'grayblue\');
> <a name=787>786</a>: '));
> <a name=788>787</a>:     } ### end if
> <a name=789>788</a>: 
> <a name=790>789</a>: ; $main::Response-&gt;WriteRef(\('
> <a name=791>790</a>: 
> <a name=792>791</a>:   }   // end function
> <a name=793>792</a>: 
> <a name=794>793</a>: //--&gt;
> <a name=795>794</a>: &lt;/script&gt;
> <a name=796>795</a>: 
> <a name=797>796</a>: &lt;!-- form used to change user role --&gt;
> <a name=798>797</a>: &lt;form name=&quot;FChangeRole&quot; method=&quot;post&quot;&gt;
> <a name=799>798</a>:   &lt;input type=&quot;hidden&quot; name=&quot;control&quot; value=&quot;ChangeRole&quot;&gt;
> <a name=800>799</a>:   &lt;input type=&quot;hidden&quot; name=&quot;role&quot;&gt;
> <a name=801>800</a>: &lt;/form&gt;
> <a name=802>801</a>: 
> <a name=803>802</a>: &lt;!-- form used to move to the viewLinkGroups.htm page --&gt;
> <a name=804>803</a>: &lt;form name=&quot;FGoToLinkGroupDetail&quot; method=&quot;post&quot; action=&quot;viewLinkGroups.htm&quot;&gt;
> <a name=805>804</a>:   &lt;input type=&quot;hidden&quot; name=&quot;searchLinkGroupOID&quot;&gt;
> <a name=806>805</a>:   &lt;input type=&quot;hidden&quot; name=&quot;search&quot; value=&quot;SEARCH&quot;&gt;
> <a name=807>806</a>: &lt;/form&gt;
> <a name=808>807</a>: 
> <a name=809>808</a>: &lt;!-- main nav --&gt;
> <a name=810>809</a>: &lt;table width=&quot;100%&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot;&gt;
> <a name=811>810</a>:   &lt;tr&gt;
> <a name=812>811</a>:   &lt;td&gt;&lt;img src=&quot;../../images/info-sm2.gif&quot; align=&quot;left&quot; usemap=&quot;#gomenu&quot; border=&quot;0&quot; alt=&quot;InfoSource&quot;&gt;&lt;/td&gt;
> <a name=813>812</a>:   &lt;td align=&quot;right&quot;&gt; &lt;/td&gt;
> <a name=814>813</a>:   &lt;td align=&quot;right&quot; valign=&quot;top&quot;&gt;
> <a name=815>814</a>:     &lt;a href=&quot;index.htm&quot;&gt;&lt;img src=&quot;./images/netconfig.gif&quot; alt=&quot;Network Configuration&quot; border=&quot;0&quot;&gt;&lt;/a&gt;
> <a name=816>815</a>:     &lt;font size=&quot;-1&quot; color=&quot;red&quot;&gt;&lt;br&gt;
> <a name=817>816</a>:     &lt;div align=&quot;center&quot;&gt;
> <a name=818>817</a>: '));
> <a name=819>818</a>: $Response-&gt;Write(&quot;DEBUG MODE ON&quot;) if ($Application-&gt;{'Debug'} eq &quot;1&quot;);
> <a name=820>819</a>: ; $main::Response-&gt;WriteRef(\('
> <a name=821>820</a>:     &lt;/div&gt;
> <a name=822>821</a>:     &lt;/font&gt;
> <a name=823>822</a>:   &lt;/td&gt;
> <a name=824>823</a>:   &lt;/tr&gt;
> <a name=825>824</a>: &lt;/table&gt;
> <a name=826>825</a>: &lt;!-- end mainnav --&gt;
> <a name=827>826</a>: 
> <a name=828>827</a>: &lt;script language=&quot;JavaScript1.2&quot;&gt;
> <a name=829>828</a>: &lt;!--
> <a name=830>829</a>: 	//this is nessecary for the menus to show up on IE.
> <a name=831>830</a>: 	//IE needs to create the menus after the &lt;BODY&gt; tag
> <a name=832>831</a>: 
> <a name=833>832</a>: 	if(document.all){
> <a name=834>833</a>: 		CreateMenus();
> <a name=835>834</a>: 	}
> <a name=836>835</a>: //--&gt;
> <a name=837>836</a>: &lt;/script&gt;
> <a name=838>837</a>: 
> <a name=839>838</a>: 
> <a name=840>839</a>: 
> <a name=841>840</a>: &lt;!-- begin navbar --&gt;
> <a name=842>841</a>: &lt;table border=&quot;0&quot; bgcolor=&quot;#0000AA&quot; cellpadding=&quot;2&quot; cellspacing=&quot;0&quot; width=&quot;100%&quot;&gt;
> <a name=843>842</a>:   &lt;tr&gt;
> <a name=844>843</a>:   &lt;td align=&quot;left&quot; class=&quot;navsm&quot;&gt;Current User: '.($Session-&gt;{'FirstName'}).' '.($Session-&gt;{'LastName'}).'&amp;nbsp&amp;nbsp&amp;nbsp
> <a name=845>844</a>: '));
> <a name=846>845</a>: if ($Session-&gt;{'Role'} ne '') {
> <a name=847>846</a>:   if ($asppage eq &quot;index.htm&quot;) { ; $main::Response-&gt;WriteRef(\('
> <a name=848>847</a>:     Current Role: &lt;a class=&quot;navsm&quot; href=&quot;javascript:void(0)&quot; onmouseover=&quot;window.showMenu(window.roleMenu);&quot; &gt;'.($Session-&gt;{'RoleLong'}).'&lt;/a&gt;
> <a name=849>848</a>:   ')); } else { ; $main::Response-&gt;WriteRef(\('
> <a name=850>849</a>:     Current Role: '.($Session-&gt;{'RoleLong'}).'
> <a name=851>850</a>:   ')); }
> <a name=852>851</a>: }
> <a name=853>852</a>: ; $main::Response-&gt;WriteRef(\('
> <a name=854>853</a>:   &lt;/td&gt;
> <a name=855>854</a>:   &lt;td align=&quot;right&quot; class=&quot;navsm&quot;&gt;
> <a name=856>855</a>:     &lt;!-- &lt;a href=&quot;mywo.htm&quot; onMouseOver=&quot;window.showMenu(window.myMenu);&quot; class=&quot;navsm&quot;&gt;My NetConfig&lt;/a&gt;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp; --&gt;
> <a name=857>856</a>:     &lt;a href=&quot;javascript:void(0)&quot; onmouseover=&quot;window.showMenu(window.mainMenu);&quot; class=&quot;navsm&quot;&gt;Main Menu&lt;/a&gt;
> <a name=858>857</a>:     &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;|&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
> <a name=859>858</a>:     &lt;a href=&quot;logout.htm&quot; class=&quot;navsm&quot;&gt;Sign Out&lt;/a&gt; &amp;nbsp;&amp;nbsp;
> <a name=860>859</a>:   &lt;/td&gt;
> <a name=861>860</a>:   &lt;/tr&gt;
> <a name=862>861</a>: &lt;/table&gt;
> <a name=863>862</a>: &lt;!-- end navbar --&gt;
> <a name=864>863</a>: &lt;br&gt;
> <a name=865>864</a>: 
> <a name=866>865</a>: 
> <a name=867>866</a>: 	&lt;center&gt;
> <a name=868>867</a>: 	&lt;form method=&quot;POST&quot;&gt;
> <a name=869>868</a>: 		&lt;table border=&quot;0&quot; cellpadding=&quot;4&quot;&gt;
> <a name=870>869</a>: 			&lt;tr&gt;
> <a name=871>870</a>: 				&lt;th class=&quot;header&quot; colspan=&quot;9&quot;&gt;&lt;font size=&quot;+1&quot;&gt;Nodes&lt;/font&gt;&lt;/th&gt;
> <a name=872>871</a>: 			&lt;/tr&gt;
> <a name=873>872</a>: 			&lt;tr&gt;
> <a name=874>873</a>: 				&lt;td colspan=&quot;9&quot;&gt;
> <a name=875>874</a>: 
> <a name=876>875</a>: 					')); ### if the user has edit rights, show the edit links
> <a name=877>876</a>: 						if ($allowEdit)
> <a name=878>877</a>: 						{ ; $main::Response-&gt;WriteRef(\('
> <a name=879>878</a>: 					&lt;img src=&quot;images/edite.gif&quot; width=&quot;15&quot; height=&quot;18&quot; border=&quot;0&quot; alt=&quot;Edit&quot;&gt; Edit
> <a name=880>879</a>: 					&amp;nbsp;&amp;nbsp;&amp;nbsp;
> <a name=881>880</a>: 					')); } ; $main::Response-&gt;WriteRef(\('
> <a name=882>881</a>: 
> <a name=883>882</a>: 					&lt;img src=&quot;images/editp.gif&quot; width=&quot;15&quot; height=&quot;18&quot; border=&quot;0&quot; alt=&quot;Endpoints&quot;&gt; Endpoints
> <a name=884>883</a>: 					&amp;nbsp;&amp;nbsp;&amp;nbsp;
> <a name=885>884</a>: 					&lt;img src=&quot;images/edita.gif&quot; width=&quot;15&quot; height=&quot;18&quot; border=&quot;0&quot; alt=&quot;Assets&quot;&gt; Assets
> <a name=886>885</a>: 				&lt;/td&gt;
> <a name=887>886</a>: 			&lt;/tr&gt;
> <a name=888>887</a>: 			&lt;tr&gt;
> <a name=889>888</a>:  				&lt;th colspan=&quot;'.($editcols).'&quot;&gt;Select:&lt;/th&gt;
> <a name=890>889</a>: 				&lt;td class=&quot;columnHeader&quot;&gt;
> <a name=891>890</a>: 					&lt;A href=&quot;'.($asppage).'?ordercolumn=NODENAME&quot;&gt;Name&lt;/A&gt;
> <a name=892>891</a>: 				&lt;/td&gt;
> <a name=893>892</a>: 				&lt;td class=&quot;columnHeader&quot;&gt;
> <a name=894>893</a>: 					&lt;A href=&quot;'.($asppage).'?ordercolumn=NODETYPE&quot;&gt;Type&lt;/A&gt;
> <a name=895>894</a>: 				&lt;/td&gt;
> <a name=896>895</a>: 				&lt;td class=&quot;columnHeader&quot;&gt;
> <a name=897>896</a>: 					&lt;A href=&quot;'.($asppage).'?ordercolumn=STATUS&quot;&gt;Status&lt;/A&gt;
> <a name=898>897</a>: 				&lt;/td&gt;
> <a name=899>898</a>: 				&lt;td class=&quot;columnHeader&quot;&gt;
> <a name=900>899</a>: 					&lt;A href=&quot;'.($asppage).'?ordercolumn=SITECODE&quot;&gt;Site Code&lt;/A&gt;
> <a name=901>900</a>: 				&lt;/td&gt;
> <a name=902>901</a>: 				&lt;td class=&quot;columnHeader&quot;&gt;
> <a name=903>902</a>: 					&lt;A href=&quot;'.($asppage).'?ordercolumn=LOCATIONDSCR&quot;&gt;Location&lt;/A&gt;
> <a name=904>903</a>: 				&lt;/td&gt;
> <a name=905>904</a>: 				&lt;td class=&quot;columnHeader&quot;&gt;
> <a name=906>905</a>: 					&lt;A href=&quot;'.($asppage).'?ordercolumn=RACKNBR&quot;&gt;Rack #&lt;/A&gt;
> <a name=907>906</a>: 				&lt;/td&gt;
> <a name=908>907</a>: 			&lt;/tr&gt;
> <a name=909>908</a>: 
> <a name=910>909</a>:             ')); ### Add the data to the table ###
> <a name=911>910</a>:                  my $iCount;
> <a name=912>911</a>: 				 my $bgcolor;
> <a name=913>912</a>:                  for ($iCount = 0; $iCount &lt; $nodecount; $iCount++)
> <a name=914>913</a>:                  {
> <a name=915>914</a>: 					# set the alternating row colors
> <a name=916>915</a>: 					if ($iCount%2 != 0) {
> <a name=917>916</a>: 						$bgcolor = &quot;eeeeee&quot;
> <a name=918>917</a>: 					} else {
> <a name=919>918</a>: 						$bgcolor = &quot;ffffff&quot;
> <a name=920>919</a>: 					}
> <a name=921>920</a>: 					; $main::Response-&gt;WriteRef(\('
> <a name=922>921</a>:              &lt;tr&gt;
> <a name=923>922</a>: 
> <a name=924>923</a>: 				')); ### if the user has edit rights, show the edit links
> <a name=925>924</a>: 					if ($allowEdit)
> <a name=926>925</a>: 					{ ; $main::Response-&gt;WriteRef(\('
> <a name=927>926</a>: 
> <a name=928>927</a>: 				&lt;td&gt;&lt;A href=&quot;editNode.htm?OID='.($nodeOIDList[$iCount]).'&quot;&gt;
> <a name=929>928</a>: 					&lt;img src=&quot;images/edite.gif&quot; width=&quot;15&quot; height=&quot;18&quot; border=&quot;0&quot; alt=&quot;Edit&quot;&gt;&lt;/a&gt;
> <a name=930>929</a>: 				&lt;/td&gt;
> <a name=931>930</a>: 
> <a name=932>931</a>: 				')); } ; $main::Response-&gt;WriteRef(\('
> <a name=933>932</a>: 
> <a name=934>933</a>: 				&lt;td&gt;&lt;A href=&quot;viewEndpoints.htm?OID='.($nodeOIDList[$iCount]).'&amp;nodeName='.($nodeNameList[$iCount]).'&quot;&gt;
> <a name=935>934</a>: 					&lt;img src=&quot;images/editp.gif&quot; width=&quot;15&quot; height=&quot;18&quot; border=&quot;0&quot; alt=&quot;Endpoints&quot;&gt;&lt;/a&gt;
> <a name=936>935</a>: 				&lt;/td&gt;
> <a name=937>936</a>: 				&lt;td&gt;&lt;A href=&quot;viewInstalledAssets.htm?OID='.($nodeOIDList[$iCount]).'&quot;&gt;
> <a name=938>937</a>: 					&lt;img src=&quot;images/edita.gif&quot; width=&quot;15&quot; height=&quot;18&quot; border=&quot;0&quot; alt=&quot;Assets&quot;&gt;&lt;/a&gt;
> <a name=939>938</a>: 				&lt;/td&gt;
> <a name=940>939</a>:                  &lt;td bgcolor=&quot;#'.($bgcolor).'&quot;&gt;'.( $nodeNameList[$iCount] ).'&amp;nbsp;&lt;/td&gt;
> <a name=941>940</a>:                  &lt;td bgcolor=&quot;#'.($bgcolor).'&quot;&gt;'.( $nodeTypeList[$iCount] ).'&amp;nbsp;&lt;/td&gt;
> <a name=942>941</a>:                  &lt;td bgcolor=&quot;#'.($bgcolor).'&quot;&gt;'.( $statusList[$iCount] ).'&amp;nbsp;&lt;/td&gt;
> <a name=943>942</a>:                  &lt;td bgcolor=&quot;#'.($bgcolor).'&quot;&gt;'.( $siteCodeList[$iCount] ).'&amp;nbsp;&lt;/td&gt;
> <a name=944>943</a>:                  &lt;td bgcolor=&quot;#'.($bgcolor).'&quot;&gt;'.( $locationList[$iCount] ).'&amp;nbsp;&lt;/td&gt;
> <a name=945>944</a>:                  &lt;td bgcolor=&quot;#'.($bgcolor).'&quot;&gt;'.( $rackList[$iCount] ).'&amp;nbsp;&lt;/td&gt;
> <a name=946>945</a>:             &lt;/tr&gt;
> <a name=947>946</a>: 
> <a name=948>947</a>: 				')); } ### end for loop 
> <a name=949>948</a>: ; $main::Response-&gt;WriteRef(\('
> <a name=950>949</a>: 
> <a name=951>950</a>: 			&lt;tr&gt;
> <a name=952>951</a>: 				&lt;td colspan=&quot;9&quot;&gt;
> <a name=953>952</a>: 					&lt;font color=&quot;red&quot;&gt;
> <a name=954>953</a>: 
> <a name=955>954</a>: 				'));
> <a name=956>955</a>: 				if (0 == $nodecount)
> <a name=957>956</a>: 				{ ; $main::Response-&gt;WriteRef(\('
> <a name=958>957</a>: 					&lt;font size=&quot;+2&quot;&gt;
> <a name=959>958</a>: 					No nodes were found with that search critera. Please try again.
> <a name=960>959</a>: 					&lt;/font&gt;
> <a name=961>960</a>: 				')); } else { ; $main::Response-&gt;WriteRef(\('
> <a name=962>961</a>: 					Your search returned '.($nodecount ).' nodes.
> <a name=963>962</a>: 				')); } ; $main::Response-&gt;WriteRef(\('
> <a name=964>963</a>: 
> <a name=965>964</a>: 					&lt;/font&gt;
> <a name=966>965</a>: 				&lt;/td&gt;
> <a name=967>966</a>: 			&lt;/tr&gt;
> <a name=968>967</a>: 		&lt;/table&gt;
> <a name=969>968</a>: 		&lt;!-- SAVE THE SEARCH CRITERIA --&gt;
> <a name=970>969</a>: 		&lt;input type=&quot;hidden&quot; name=&quot;searchNodeOID&quot; value=&quot;'.($searchNodeOID).'&quot;&gt;
> <a name=971>970</a>: 		&lt;input type=&quot;hidden&quot; name=&quot;searchNodeName&quot; value=&quot;'.($searchNodeName).'&quot;&gt;
> <a name=972>971</a>: 		&lt;input type=&quot;hidden&quot; name=&quot;searchNodeType&quot; value=&quot;'.($searchNodeType).'&quot;&gt;
> <a name=973>972</a>: 		&lt;input type=&quot;hidden&quot; name=&quot;searchNodeStatus&quot; value=&quot;'.($searchNodeStatus).'&quot;&gt;
> <a name=974>973</a>: 		&lt;input type=&quot;hidden&quot; name=&quot;searchSiteCode&quot; value=&quot;'.($searchSiteCode).'&quot;&gt;
> <a name=975>974</a>: 		&lt;input type=&quot;hidden&quot; name=&quot;searchLocation&quot; value=&quot;'.($searchLocation).'&quot;&gt;
> <a name=976>975</a>: 		&lt;input type=&quot;hidden&quot; name=&quot;searchRack&quot; value=&quot;'.($searchRack).'&quot;&gt;
> <a name=977>976</a>: 	&lt;/form&gt;
> <a name=978>977</a>: 	&lt;/center&gt;
> <a name=979>978</a>:   &lt;div align=&quot;center&quot;&gt;Problems? Please &lt;a href=&quot;javascript:document.FBug.submit();&quot;&gt;let us know.&lt;/a&gt;&lt;/div&gt;
> <a name=980>979</a>: &lt;form name=&quot;FBug&quot; method=&quot;get&quot; action=&quot;/cgi-bin/itservices.cgi&quot;&gt;
> <a name=981>980</a>:   &lt;input type=&quot;hidden&quot; name=&quot;app&quot; value=&quot;'));$Response-&gt;Write(qq($Application-&gt;{'Application'} $Application-&gt;{'CVS_Version'}));; $main::Response-&gt;WriteRef(\('&quot;&gt;
> <a name=982>981</a>: &lt;/form&gt;
> <a name=983>982</a>: &lt;div align=&quot;left&quot;&gt;&lt;b&gt;&lt;i&gt;Version '.($Application-&gt;{'CVS_Version'}).'&lt;/i&gt;&lt;/b&gt;&lt;/div&gt;
> <a name=984>983</a>: &lt;!-- &lt;div align=&quot;right&quot;&gt;&lt;i&gt;For &lt;/i&gt;&lt;b&gt;&lt;font face=&quot;Helvetica&quot; color=&quot;blue&quot;&gt;Inter&lt;/font&gt;NAP&lt;/b&gt;&lt;i&gt; internal use only.&lt;/i&gt;&lt;/div&gt; --&gt;
> <a name=985>984</a>: &lt;div align=&quot;right&quot;&gt;&lt;i&gt;For &lt;b&gt;INTERNAP&lt;/b&gt; internal use only.&lt;/i&gt;&lt;/div&gt;
> <a name=986>985</a>: ')); # Comment out this functionality until I need to add menus later.
> <a name=987>986</a>: # &lt;script language=&quot;JavaScript1.2&quot;&gt;
> <a name=988>987</a>: # &lt;!--
> <a name=989>988</a>: # 	//this is nessecary for the menus to show up on IE.
> <a name=990>989</a>: # 	//IE needs to create the menus after the &lt;BODY&gt; tag
> <a name=991>990</a>: # 	if(document.all){ # document.all is only defined in IE, not in Netscape.
> <a name=992>991</a>: # 		CreateMenus();
> <a name=993>992</a>: #   }
> <a name=994>993</a>: # //--&gt;
> <a name=995>994</a>: # &lt;/script&gt;
> <a name=996>995</a>: unless ($asppage =~ /^(pick|refine)/) { ; $main::Response-&gt;WriteRef(\('
> <a name=997>996</a>:   &lt;Map name=&quot;gomenu&quot;&gt;
> <a name=998>997</a>:   &lt;area shape=&quot;rect&quot; coords=&quot;61,0,251,25&quot; href=&quot;/&quot;&gt;
> <a name=999>998</a>: &lt;/map&gt;
> <a name=1000>999</a>: 
> <a name=1001>1000</a>: &lt;div id=&quot;goOff&quot;&gt;&lt;a href=&quot;javascript:void(0)&quot; onMouseOver=&quot;MM_showHideLayers(\'document.layers[\\\'goOff\\\']\',\'document.all[\\\'goOff\\\']\',\'hide\',\'document.layers[\\\'go\\\']\',\'document.all[\\\'go\\\']\',\'hide\')&quot;&gt;&lt;img src=&quot;/images/1space.gif&quot; alt=&quot;&quot; width=&quot;150&quot; height=&quot;400&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/div&gt;
> <a name=1002>1001</a>: 
> <a name=1003>1002</a>: &lt;div id=&quot;goTgl&quot;&gt;&lt;a href=&quot;javascript:void(0)&quot; onMouseOver=&quot;MM_showHideLayers(\'document.layers[\\\'goOff\\\']\',\'document.all[\\\'goOff\\\']\',\'show\',\'document.layers[\\\'go\\\']\',\'document.all[\\\'go\\\']\',\'show\')&quot;&gt;&lt;img src=&quot;/images/1space.gif&quot; alt=&quot;&quot; width=&quot;120&quot; height=&quot;55&quot; border=&quot;0&quot;&gt;&lt;/a&gt;&lt;/div&gt;
> <a name=1004>1003</a>: 
> <a name=1005>1004</a>: &lt;div id=&quot;go&quot;&gt;
> <a name=1006>1005</a>:   &lt;div align=&quot;center&quot;&gt;&lt;a href=&quot;/&quot;&gt;&lt;font face=&quot;sans-serif&quot; color=&quot;#000000&quot; size=&quot;-1&quot;&gt;&lt;b&gt;Home&lt;/b&gt;&lt;/font&gt;&lt;/a&gt;&lt;/div&gt;&lt;br&gt;
> <a name=1007>1006</a>:   &lt;a href=&quot;/corp/staff/pageall.htm&quot;&gt;&lt;font face=&quot;sans-serif&quot; color=&quot;#000099&quot; size=&quot;-1&quot;&gt;&lt;b&gt;Paging&lt;/b&gt;&lt;/font&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
> <a name=1008>1007</a>:   &lt;a href=&quot;/passwd/cgi-bin/prox/password.cgi&quot;&gt;&lt;font face=&quot;sans-serif&quot; color=&quot;#000099&quot; size=&quot;-1&quot;&gt;&lt;b&gt;Change&amp;nbsp;Password&lt;/b&gt;&lt;/font&gt;&lt;/a&gt;&amp;nbsp;&lt;br&gt;&lt;br&gt;
> <a name=1009>1008</a>:   &lt;a href=&quot;/top/help.htm&quot;&gt;&lt;font face=&quot;sans-serif&quot; color=&quot;#000099&quot; size=&quot;-1&quot;&gt;&lt;b&gt;Help&lt;/b&gt;&lt;/font&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
> <a name=1010>1009</a>:   &lt;a href=&quot;/dept/index.htm&quot;&gt;&lt;font face=&quot;sans-serif&quot; color=&quot;#000099&quot; size=&quot;-1&quot;&gt;&lt;b&gt;Departments&lt;/b&gt;&lt;/font&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
> <a name=1011>1010</a>:   &lt;a href=&quot;/apps/index.htm&quot;&gt;&lt;font face=&quot;sans-serif&quot; color=&quot;#000099&quot; size=&quot;-1&quot;&gt;&lt;b&gt;Applications&lt;/b&gt;&lt;/font&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
> <a name=1012>1011</a>:   &lt;a href=&quot;/corp/staff/search.htm&quot;&gt;&lt;font face=&quot;sans-serif&quot; color=&quot;#000099&quot; size=&quot;-1&quot;&gt;&lt;b&gt;Staff&amp;nbsp;Search&lt;/b&gt;&lt;/font&gt;&lt;/a&gt;&lt;br&gt;&lt;br&gt;
> <a name=1013>1012</a>:   &lt;a href=&quot;javascript:PopSearch();&quot;&gt;&lt;font face=&quot;sans-serif&quot; color=&quot;#000099&quot; size=&quot;-1&quot;&gt;&lt;b&gt;InfoSource&amp;nbsp;Search&lt;/b&gt;&lt;/font&gt;&lt;/a&gt;&lt;br&gt;
> <a name=1014>1013</a>:   &lt;!--&lt;a href=&quot;javascript:q=document.getSelection();for(i=0;i&lt;frames.length;i++){q=frames[i].document.getSelection();if(q)break;}if(!q)void(q=prompt(\'Enter Search Terms\',\'\'));if(q)location.href=\'https://infosource.internap.com/cgi-bin/nph-seek.cgi/query.html?qt=\'+escape(q)&quot;&gt;&lt;font face=&quot;sans-serif&quot; color=&quot;#000099&quot; size=&quot;-1&quot;&gt;&lt;b&gt;InfoSource&amp;nbsp;Search&lt;/b&gt;&lt;/font&gt;&lt;/a&gt;--&gt;&lt;br&gt;
> <a name=1015>1014</a>: &lt;/div&gt;
> <a name=1016>1015</a>: 
> <a name=1017>1016</a>: ')); } ; $main::Response-&gt;WriteRef(\('
> <a name=1018>1017</a>: 
> <a name=1019>1018</a>: 
> <a name=1020>1019</a>: &lt;/body&gt;
> <a name=1021>1020</a>: &lt;/html&gt;'));;;no lib qw(/usr/local/etc/infosource/apps/netcfg/); ;; }
> 
> </pre>
> <hr width=30% size=1>
> <font size=-1>
> <i> 
> An error has occured with the Apache::ASP script just run. 
> If you are the developer working on this script, and cannot work 
> through this problem, please try researching the it at the 
> <a href=http://www.apache-asp.org/>Apache::ASP web site</a>,
> specifically the <a href=http://www.apache-asp.org/faq.html>FAQ section</a>.
> Failing that, check out your 
> <a href=http://www.apache-asp.org/support.html>support options</a>, and 
> if necessary include this debug output with any query. 
> 
> 
> 
> 
> 
> 


Mime
View raw message