File: 1.16.1a/server/web/main.php (View as HTML)

  1: <?php
  2: /* -------------------------------------------------------------
  3: This file is part of FreeNATS
  4: 
  5: FreeNATS is (C) Copyright 2008-2011 PurplePixie Systems
  6: 
  7: FreeNATS is free software: you can redistribute it and/or modify
  8: it under the terms of the GNU General Public License as published by
  9: the Free Software Foundation, either version 3 of the License, or
 10: (at your option) any later version.
 11: 
 12: FreeNATS is distributed in the hope that it will be useful,
 13: but WITHOUT ANY WARRANTY; without even the implied warranty of
 14: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 15: GNU General Public License for more details.
 16: 
 17: You should have received a copy of the GNU General Public License
 18: along with FreeNATS.  If not, see www.gnu.org/licenses
 19: 
 20: For more information see www.purplepixie.org/freenats
 21: -------------------------------------------------------------- */
 22: 
 23: ob_start();
 24: require("include.php");
 25: $NATS->Start();
 26: if (!$NATS_Session->Check($NATS->DB))
 27: 	{
 28: 	header("Location: ./?login_msg=Invalid+Or+Expired+Session");
 29: 	exit();
 30: 	}
 31: ob_end_flush();
 32: 
 33: if (isset($_REQUEST['mode'])) $mode=$_REQUEST['mode'];
 34: else 
 35: 	{
 36: 	$mode="overview";
 37: 	$_REQUEST['mode']="overview";
 38: 	}
 39: 
 40: Screen_Header($NATS->Lang->Item("overview.title"),1,0,"","main");
 41: 
 42: if (isset($_REQUEST['message'])) 
 43: 	{
 44: 	echo "<b>".$_REQUEST['message']."</b><br>";
 45: 	$poplist[]=$_REQUEST['message'];
 46: 	}
 47: 	
 48: if (isset($_REQUEST['nodemove'])) $nm=true;
 49: else $nm=false;
 50: 
 51: function dispyn($val)
 52: {
 53: if ($val==0) return "N";
 54: else if ($val==1) return "Y";
 55: else return $val."?";
 56: }
 57: 
 58: ?>
 59: <br>
 60: <?php
 61: if (isset($_REQUEST['check_updates'])) $check_update=true;
 62: else $check_update=false;
 63: if (isset($_REQUEST['quiet_check'])) $quiet_check=true;
 64: else $quiet_check=false;
 65: 
 66: if ($check_update)
 67: {
 68: 	echo "<b>".$NATS->Lang->Item("checking.updates").":</b> ";
 69: 	echo "<span id=\"version-info\">&nbsp;<img src=\"images/loading/small-circle-lines.gif\" style=\"position: relative; top: 4px;\"></span><br>";
 70: 	if (!$quiet_check)
 71: 	{
 72: 		echo "<br>";
 73: 		echo $NATS->Lang->Item("update.desc")." ";
 74: 		echo $NATS->Version.$NATS->Release.".";
 75: 		echo "<br>";
 76: 	}
 77: 	echo "<br>\n";
 78: }
 79: 
 80: 
 81: if ($mode=="overview")
 82: 	{
 83: 	$t="<b class=\"subtitle\">".$NATS->Lang->Item("overview.subtitle")."</b>";
 84: 	Start_Round($t,600);
 85: 	echo "<table width=100% border=0><tr><td align=left width=50%>";
 86: 	$al=$NATS->GetAlerts();
 87: 	if (($al===false)||(count($al)==0))
 88: 		{
 89: 		echo "<b class=\"al0\">".$NATS->Lang->Item("no.monitor.alerts")."</b>";
 90: 		}
 91: 	else
 92: 		{
 93: 		echo "<a href=monitor.php>";
 94: 		echo "<b class=\"al2\">".$NATS->Lang->Item("monitor.alerts")."</b>";
 95: 		echo "</a>";
 96: 		}
 97: 	echo "</td><td align=right><b><a href=main.php?check_updates=1>".$NATS->Lang->Item("check.updates")."</a></b></td></tr>";
 98: 	
 99: 	echo "<tr><td colspan=2><hr class=\"nspacer\"></td></tr>";
100: 	$fx=time();
101: 	$sx=$fx-(60*60*24);
102: 	echo "<tr><td align=left valign=top>";
103: 	 echo "<b>".$NATS->Lang->Item("monitoring")."</b><br><br>";
104: 	$nq="SELECT COUNT(nodeid) FROM fnnode";
105: 	$nr=$NATS->DB->Query($nq);
106: 	if ($nrow=$NATS->DB->Fetch_Array($nr)) $nodecount=$nrow['COUNT(nodeid)'];
107: 	else $nodecount=0;
108: 	$NATS->DB->Free($nr);
109: 	$gq="SELECT COUNT(groupid) FROM fngroup";
110: 	$gr=$NATS->DB->Query($gq);
111: 	if ($nrow=$NATS->DB->Fetch_Array($gr)) $groupcount=$nrow['COUNT(groupid)'];
112: 	else $groupcount=0;
113: 	$NATS->DB->Free($gr);
114: 	 echo "<a href=main.php?mode=nodes>".$nodecount." ".$NATS->Lang->Item("nodes.configured")."</a><br><br>";
115: 	 echo "<a href=main.php?mode=groups>".$groupcount." ".$NATS->Lang->Item("node.groups")."</a><br>";
116: 	echo "</td><td align=right valign=top>";
117: 	echo "<b>".$NATS->Lang->Item("common.tasks")."</b><br><br>";
118: 	echo "<a href=main.php?mode=nodes>".$NATS->Lang->Item("add.nodes")."</a><br>";
119: 	echo "<a href=admin.php?mode=alertactions>".$NATS->Lang->Item("email.alerting")."</a><br>";
120: 	echo "<a href=main.php?mode=nodes>".$NATS->Lang->Item("configure.tests")."</a><br>";
121: 	echo "</td></tr>";
122: 	echo "<tr><td colspan=2><hr class=\"nspacer\"></td></tr>";
123: 	echo "<tr><td colspan=2><b>".$NATS->Lang->Item("test.summaries")."</b><br><br>";
124: 	echo "<a href=summary.test.php?nodeid=*>".$NATS->Lang->Item("today")."</a> - ";
125: 	echo "<a href=summary.test.php?nodeid=*&startx=".$sx."&finishx=".$fx.">".$NATS->Lang->Item("last.24h")."</a> - ";
126: 	echo "<a href=summary.test.php?mode=custom>".$NATS->Lang->Item("custom")."</a>";
127: 	echo "</td></tr>";
128: 	echo "<tr><td colspan=2><hr class=\"nspacer\"></td></tr>";
129: 	echo "<tr><td colspan=2>";
130: 	/*
131: 	echo "<b>Installed Test Modules</b><br><br>";
132: 	echo "<table class=\"nicetable\" width=100%>";
133: 	echo "<tr><td><b>Name</b></td><td><b>Provides</b></td><td><b>Revision</b></td><td><b>Additional</b></td></tr>";
134: 	foreach($NATS->Tests->QuickList as $key => $val)
135: 		{
136: 		echo "<tr><td>";
137: 		echo $NATS->Tests->Tests[$key]->name;
138: 		echo "</td><td>";
139: 		echo $NATS->Tests->Tests[$key]->type;
140: 		echo "</td><td>";
141: 		echo $NATS->Tests->Tests[$key]->revision;
142: 		echo "</td><td>";
143: 		echo $NATS->Tests->Tests[$key]->additional;
144: 		echo "</td></tr>";
145: 		}
146: 	echo "</table>";
147: 	*/
148: 	echo "<b>".$NATS->Lang->Item("monitored.nodes")."</b><br><br>";
149: 	$q="SELECT nodeid,nodename,alertlevel FROM fnnode WHERE nodeenabled=1 ORDER BY alertlevel DESC, weight ASC";
150: 	$r=$NATS->DB->Query($q);
151: 	$first=true;
152: 	while ($row=$NATS->DB->Fetch_Array($r))
153: 		{
154: 		if ($first) $first=false;
155: 		else echo ", ";
156: 		echo "<a href=node.php?nodeid=".$row['nodeid'].">";
157: 		echo "<b class=\"al".$row['alertlevel']."\">";
158: 		if ($row['nodename']!="") echo $row['nodename'];
159: 		else if ($row['nodeid'] != "") echo $row['nodeid'];
160: 		else echo $NATS->Lang->Item("node");
161: 		echo "</b></a>";
162: 		}
163: 	echo "</td></tr>";
164: 	echo "</table>";
165: 	echo "<br>";
166: 	End_Round();
167: 	echo "<br><br>";
168: 	
169: 	if ($NATS->Cfg->Get("site.nonews",0)!=1)
170: 	{
171: 		$t="<b class=\"subtitle\">".$NATS->Lang->Item("freenats.news")."</b>";
172: 		Start_Round($t,600);
173: 		
174: 		echo "<DIV ID=\"news-holder\" STYLE=\"padding: 4px;\">";
175: 		echo "<IMG SRC=\"images/loading/small-circle-lines.gif\">";
176: 		echo "</DIV>\n";
177: 		
178: 		echo "<I>Want to disable news? Set variable site.nonews to 1</I>";
179: 		
180: 		End_Round();
181: 		
182: 		echo "<SCRIPT TYPE=\"text/javascript\">\n";
183: 		//echo "alert('check');\n";
184: 		echo "var url='http://www.purplepixie.org/freenats/newsfeed.js.php';\n";
185: 		echo "var nf=document.createElement('script');\n";
186: 		echo "nf.type='text/javascript';\n";
187: 		echo "nf.src=url;\n";
188: 		echo "nf.async=true;\n";
189: 		echo "var fs=document.getElementsByTagName('script')[0];\n";
190: 		echo "fs.parentNode.insertBefore(nf, fs);\n";
191: 		echo "</SCRIPT>\n";
192: 		
193: 	}
194: 	
195: 	}
196: 	
197: else if ($mode=="nodes")
198: {
199: 
200: 	if ($nm)
201: 	{
202: 	$q="SELECT nodeid,weight FROM fnnode ORDER BY weight ASC";
203: 	$r=$NATS->DB->Query($q);
204: 	$nml="<span style=\"font-size: 8pt;\">".$NATS->Lang->Item("move.before")." </span><select name=move_before style=\"font-size: 8pt;\">";
205: 	while ($row=$NATS->DB->Fetch_Array($r))
206: 		{
207: 		$nml.="<option value=".$row['weight'].">".$row['nodeid']."</option>";
208: 		}
209: 	$nml.="</select>";
210: 	$NATS->DB->Free($r);	
211: 	}
212: 	
213: 	Start_Round("<b class=\"subtitle\">".$NATS->Lang->Item("nodes")."</b> ".hlink("Node",12),600);
214: 	$q="SELECT nodeid,nodename,alertlevel,weight FROM fnnode ORDER BY weight ASC";
215: 	$r=$NATS->DB->Query($q);
216: 	
217: 	echo "<table class=\"nicetablehov\" width=100%>";
218: 	echo "<tr><td><b>".$NATS->Lang->Item("node")."</b></td><td><b>".$NATS->Lang->Item("options")."</b></td><td><a href=main.php?mode=nodes&nodemove=1>";
219: 	echo "<b>".$NATS->Lang->Item("move")."</a></b></td></tr>";
220: 	$f=0;
221: 	$l=$NATS->DB->Num_Rows($r);
222: 	while ($row=$NATS->DB->Fetch_Array($r))
223: 		{
224: 		//echo "<tr class=\"nicetablehov\" id=\"noderow_".$row['nodeid']."\" onmouseover=\"highlightrow('noderow_".$row['nodeid']."')\"><td align=left>";
225: 		echo "<tr class=\"nicetablehov\"><td align=left>";
226: 		echo "<a href=node.php?nodeid=".$row['nodeid'].">";
227: 		
228: 		echo "<b class=\"al".$row['alertlevel']."\">";
229: 		if ($row['nodename']!="") echo $row['nodename'];
230: 		else if ($row['nodeid'] != "") echo $row['nodeid'];
231: 		else echo $NATS->Lang->Item("node");
232: 		echo "</b>";
233: 		
234: 		echo "</a> ";
235: 		echo "(".$row['nodeid'].")";
236: 		echo "</td><td align=left>";
237: 		echo "&nbsp;<a href=node.edit.php?nodeid=".$row['nodeid']."><img src=images/options/application.png border=0 title=\"".$NATS->Lang->Item("edit")."\"></a>";
238: 		echo "&nbsp;";
239: 		echo "<a href=node.action.php?action=delete&nodeid=".$row['nodeid']."><img src=images/options/action_delete.png border=0 title=\"".$NATS->Lang->Item("delete")."\"></a> ";
240: 		echo "</td>";
241: 		
242: 		if ($nm) 
243: 			{
244: 			echo "<form action=node.action.php method=post>";
245: 			echo "<input type=hidden name=nodeid value=".$row['nodeid'].">";
246: 			echo "<input type=hidden name=action value=move_before>";
247: 			}
248: 		
249: 		echo "<td>";
250: 		if ($f==0) echo "<img src=images/arrows/off/arrow_top.png>";
251: 		else 
252: 			{
253: 			echo "<a href=node.action.php?nodeid=".$row['nodeid']."&action=move&dir=up>";
254: 			echo "<img src=\"images/arrows/on/arrow_top.png\" border=0>";
255: 			echo "</a>";
256: 			}
257: 		
258: 		if ($f>=($l-1)) echo "<img src=images/arrows/off/arrow_down.png>";
259: 		else 
260: 			{
261: 			echo "<a href=node.action.php?nodeid=".$row['nodeid']."&action=move&dir=down>";
262: 			echo "<img src=\"images/arrows/on/arrow_down.png\" border=0>";
263: 			echo "</a>";
264: 			}
265: 		
266: 		if ($nm)
267: 			{
268: 			echo "<span style=\"font-size: 8pt;\">&nbsp;[".$row['weight']."]&nbsp;</span>";
269: 			echo $nml;
270: 			echo " <input type=submit value=\"Go\" style=\"font-size: 8pt;\">";
271: 			}
272: 			
273: 		echo "</td>";
274: 		
275: 		if ($nm) echo "</form>"; 
276: 		$f++;
277: 		
278: 		echo "</tr>";
279: 		}
280: 	echo "<tr><td colspan=3>&nbsp;<br></td></tr>";
281: 	echo "<form action=node.action.php><input type=hidden name=action value=create>";
282: 	echo "<tr><td><input type=text name=nodeid size=20 maxlenth=32></td><td colspan=2><input type=submit value=\"".$NATS->Lang->Item("create.node")."\"> ";
283: 	echo hlink("Node:Create");
284: 	if ($nm) echo " <a href=node.action.php?action=reorderweight>".$NATS->Lang->Item("refresh.weight")."</a>";
285: 	echo "</td></tr></form>";
286: 	
287: 	$fx=time();
288: 	$sx=$fx-(60*60*24);
289: 	echo "<tr><td colspan=3><b>Summary: </b><a href=summary.test.php?nodeid=*>".$NATS->Lang->Item("today")."</a> - ";
290: 	echo "<a href=summary.test.php?nodeid=*&startx=".$sx."&finishx=".$fx.">".$NATS->Lang->Item("last.24h")."</a> - ";
291: 	echo "<a href=summary.test.php?mode=custom>".$NATS->Lang->Item("custom")."</a> - ";
292: 	echo "<a href=main.php?mode=configsummary>".$NATS->Lang->Item("config")."</a></td></tr>";
293: 	
294: 	echo "</table>";
295: 	End_Round();
296: 	}
297: 
298: else if ($mode=="groups")
299: 	{
300: 	
301: 	$t="<b class=\"subtitle\">".$NATS->Lang->Item("node.groups")."</b> ".hlink("Group",12);
302: 	Start_Round($t,600);
303: 	
304: 	$q="SELECT groupid,groupname FROM fngroup ORDER BY weight ASC";
305: 	$r=$NATS->DB->Query($q);
306: 	$f=0;
307: 	echo "<table class=\"nicetablehov\" width=100%>";
308: 	$l=$NATS->DB->Num_Rows($r);
309: 	while ($row=$NATS->DB->Fetch_Array($r))
310: 		{
311: 		echo "<tr class=\"nicetablehov\">";
312: 		echo "<td><a href=group.php?groupid=".$row['groupid']."><b class=\"al".$NATS->GroupAlertLevel($row['groupid'])."\">".$row['groupname']."</b></a></td>";
313: 		echo "<td><a href=group.edit.php?groupid=".$row['groupid']."><img src=images/options/application.png border=0 title=\"".$NATS->Lang->Item("edit")."\"></a>";
314: 		echo "&nbsp;";
315: 		echo "<a href=group.action.php?action=delete&groupid=".$row['groupid']."><img src=images/options/action_delete.png border=0 title=\"".$NATS->Lang->Item("delete")."\"></a></td>";
316: 		echo "<td>";
317: 		
318: 		if ($f==0) echo "<img src=images/arrows/off/arrow_top.png>";
319: 		else 
320: 			{
321: 			echo "<a href=group.action.php?groupid=".$row['groupid']."&action=move&dir=up>";
322: 			echo "<img src=\"images/arrows/on/arrow_top.png\" border=0>";
323: 			echo "</a>";
324: 			}
325: 		
326: 		if ($f>=($l-1)) echo "<img src=images/arrows/off/arrow_down.png>";
327: 		else 
328: 			{
329: 			echo "<a href=group.action.php?groupid=".$row['groupid']."&action=move&dir=down>";
330: 			echo "<img src=\"images/arrows/on/arrow_down.png\" border=0>";
331: 			echo "</a>";
332: 			}
333: 			
334: 		echo "</td>";
335: 		$f++;
336: 		
337: 		echo "</tr>";
338: 		}
339: 	echo "<tr><td colspan=3>&nbsp;<br></td></tr>";
340: 	echo "<form action=group.action.php method=post>";
341: 	echo "<input type=hidden name=action value=create>";
342: 	echo "<tr><td><input type=text size=20 name=groupname maxlength=120></td><td colspan=2><input type=submit value=\"".$NATS->Lang->Item("create.group")."\">";
343: 	echo " ".hlink("Group:Create")."</td></tr></form>";
344: 	echo "</table>";
345: 	End_Round();
346: 	}
347: 	
348: else if ($mode=="views")
349: 	{
350: 	$t="<b class=\"subtitle\">".$NATS->Lang->Item("views")."</b> ".hlink("View",12);
351: 	Start_Round($t,600);
352: 	echo "<table class=\"nicetablehov\" width=100%>";
353: 	// get views...
354: 	$q="SELECT viewid,vtitle FROM fnview";
355: 	$r=$NATS->DB->Query($q);
356: 	while ($row=$NATS->DB->Fetch_Array($r))
357: 		{
358: 		echo "<tr class=\"nicetablehov\"><td>";
359: 		echo "<a href=view.php?viewid=".$row['viewid'].">".$row['vtitle']."</a>";
360: 		echo "</td><td>";
361: 		echo "<a href=view.edit.php?viewid=".$row['viewid']."><img src=images/options/application.png border=0 title=\"".$NATS->Lang->Item("edit")."\"></a>";
362: 		echo "&nbsp;";
363: 		echo "<a href=view.edit.php?viewid=".$row['viewid']."&action=delete><img src=images/options/action_delete.png border=0 title=\"".$NATS->Lang->Item("delete")."\"></a>";
364: 		echo "</td></tr>";
365: 		}
366: 	
367: 	echo "<tr><td colspan=2>&nbsp;<br></td></tr>";
368: 	echo "<form action=view.edit.php method=post><input type=hidden name=action value=create>";
369: 	echo "<tr><td><input type=text name=vtitle size=20 maxlength=64></td><td><input type=submit value=\"".$NATS->Lang->Item("create.view")."\"> ";
370: 	echo hlink("View:Create")."</td></tr></form>";
371: 	echo "</table>";
372: 	End_Round();
373: 	
374: 	echo "<br><br>";
375: 	$t="<b class=\"subtitle\">".$NATS->Lang->Item("reports")." ".hlink("Report",12)."</b>";
376: 	Start_Round($t,600);
377: 	echo "<b><a href=report.php>".$NATS->Lang->Item("create.report")."</a></b> ".hlink("Report",12);
378: 	echo "<br><br>";
379: 	
380: 	// reports in here
381: 	$rq="SELECT reportid,reportname FROM fnreport";
382: 	$rr=$NATS->DB->Query($rq);
383: 	if ($NATS->DB->Num_Rows($rr)>0)
384: 		{
385: 		echo "<table class=\"nicetablehov\" width=100%>";
386: 		while ($rep=$NATS->DB->Fetch_Array($rr))
387: 			{
388: 			echo "<tr class=\"nicetablehov\">";
389: 			echo "<td align=left>";
390: 			echo "<a href=report.php?reportid=".$rep['reportid'].">".$rep['reportname']."</a>";
391: 			echo "</td><td align=right>";
392: 			echo "<a href=report.php?mode=delete&reportid=".$rep['reportid'].">";
393: 			echo "<img src=images/options/action_delete.png border=0 title=\"".$NATS->Lang->Item("delete").": ".$rep['reportname']."\">";
394: 			echo "</a>";
395: 			echo "&nbsp;&nbsp;";
396: 			echo "</td></tr>";
397: 			}
398: 		echo "</table>";
399: 		}
400: 	
401: 	End_Round();
402: 	
403: 	}
404: 	
405: else if ($mode=="configsummary")
406: 	{
407: 	$scheds=array();
408: 	$q="SELECT scheduleid,schedulename FROM fnschedule";
409: 	$r=$NATS->DB->Query($q);
410: 	while ($row=$NATS->DB->Fetch_Array($r))
411: 		{
412: 		$scheds[$row['scheduleid']]=$row['schedulename'];
413: 		}
414: 	$NATS->DB->Free($r);
415: 		
416: 	echo "<b class=\"subtitle\">".$NATS->Lang->Item("config.summary")."</b><br><br>";
417: 	echo "<table width=100% border=1>";
418: 	echo "<tr>";
419: 	echo "<td><b>";
420: 	echo $NATS->Lang->Item("nodeid");
421: 	echo "</b></td>";
422: 	echo "<td><b>";
423: 	echo $NATS->Lang->Item("name");
424: 	echo "</b></td>";
425: 	echo "<td><b>";
426: 	echo $NATS->Lang->Item("hostname");
427: 	echo "</b></td>";
428: 	echo "<td><b>";
429: 	echo $NATS->Lang->Item("schedule");
430: 	echo "</b></td>";
431: 	echo "<td><b>";
432: 	echo $NATS->Lang->Item("enabled");
433: 	echo "</b></td>";
434: 	echo "<td><b>";
435: 	echo $NATS->Lang->Item("ping")." / ".$NATS->Lang->Item("required");;
436: 	echo "</b></td>";
437: 	echo "<td><b>";
438: 	echo $NATS->Lang->Item("interval");
439: 	echo "</b></td>";
440: 	echo "<td><b>";
441: 	echo $NATS->Lang->Item("nodeside");
442: 	echo "</b></td>";
443: 	echo "</tr>";
444: 	$q="SELECT * FROM fnnode ORDER BY weight ASC";
445: 	$r=$NATS->DB->Query($q);
446: 	while ($row=$NATS->DB->Fetch_Array($r))
447: 		{
448: 		echo "<tr><td>";
449: 		echo $row['nodeid'];
450: 		echo "</td><td>";
451: 		echo $row['nodename'];
452: 		echo "</td><td>";
453: 		echo $row['hostname'];
454: 		echo "</td><td>";
455: 		if ($row['scheduleid']==0) $s="All Times";
456: 		else if (isset($scheds[$row['scheduleid']])) $s=$scheds[$row['scheduleid']];
457: 		else $s="UNKNOWN";
458: 		echo $s;
459: 		echo "</td><td>";
460: 		echo dispyn($row['nodeenabled']);
461: 		echo "</td><td>";
462: 		echo dispyn($row['pingtest'])." / ".dispyn($row['pingfatal']);
463: 		echo "</td><td>";
464: 		echo $row['testinterval'];
465: 		echo "</td><td>";
466: 		echo dispyn($row['nsenabled']);
467: 		echo "</td>";
468: 		
469: 		echo "</tr>";
470: 		}
471: 	$NATS->DB->Free($r);
472: 	echo "</table><br><br>";
473: 	
474: 	}	
475: 
476: else
477: 	{
478: 	echo "Sorry - unknown mode for main.php";
479: 	}
480: 
481: 
482: echo "<br><br>";
483: 
484: ?>
485: 
486: 
487: <?php
488: if ($check_update)
489: {
490: 	echo "<SCRIPT TYPE=\"text/javascript\">\n";
491: 	//echo "alert('check');\n";
492: 	echo "var url='http://www.purplepixie.org/freenats/download.php?CheckVersion2=".$NATS->Version."';\n";
493: 	echo "var us=document.createElement('script');\n";
494: 	echo "us.type='text/javascript';\n";
495: 	echo "us.src=url;\n";
496: 	echo "us.async=true;\n";
497: 	echo "var fs=document.getElementsByTagName('script')[0];\n";
498: 	echo "fs.parentNode.insertBefore(us, fs);\n";
499: 	echo "</SCRIPT>\n";
500: }
501: Screen_Footer();
502: /* old PhoneHome Ping Tracker - now in screen as a png
503: $t=$NATS->Cfg->Get("freenats.tracker");
504: if ( ($t!="") && ($t>0) )
505: 	$NATS->PhoneHome();
506: */
507: ?>
508: