Index: /trunk/DNSDB.pm
===================================================================
--- /trunk/DNSDB.pm	(revision 3)
+++ /trunk/DNSDB.pm	(revision 3)
@@ -0,0 +1,484 @@
+# dns/trunk/DNSDB.pm
+# Abstraction functions for DNS administration
+###
+# SVN revision info
+# $Date$
+# SVN revision $Rev$
+# Last update by $Author$
+###
+# Copyright (C) 2008 - Kris Deugau <kdeugau@deepnet.cx>
+
+package DNSDB;
+
+use strict;
+use warnings;
+use Exporter;
+use DBI;
+#use Net::SMTP;
+#use NetAddr::IP qw( Compact );
+#use POSIX;
+use vars qw($VERSION @ISA @EXPORT @EXPORT_OK %EXPORT_TAGS);
+
+$VERSION	= 0.1;
+@ISA		= qw(Exporter);
+@EXPORT_OK	= qw(
+	&initGlobals &connectDB &finish &addDomain &delDomain &domainName &getSOA &getRecLine &getDomRecs
+	&addRec &delRec &domStatus
+	%typemap %reverse_typemap
+	);
+
+@EXPORT		= (); # Export nothing by default.
+%EXPORT_TAGS	= ( ALL => [qw(
+		&initGlobals &connectDB &finish &addDomain &delDomain &domainName &getSOA &getRecLine &getDomRecs
+		&addRec &delRec &domStatus
+		%typemap %reverse_typemap
+		)]
+	);
+
+our $group = 1;
+our $errstr = '';
+
+# Halfway sane defaults for SOA, TTL, etc.
+our %def = qw (
+	contact	hostmaster.DOMAIN
+	prins	ns1.myserver.com
+	soattl	86400
+	refresh	10800
+	retry	3600
+	expire	604800
+	minttl	10800
+	ttl	10800
+);
+
+# DNS record type map and reverse map.
+# loaded from the database, from http://www.iana.org/assignments/dns-parameters
+our %typemap;
+our %reverse_typemap;
+
+##
+## Initialization and cleanup subs
+##
+
+## DNSDB::connectDB()
+# Creates connection to DNS database.
+# Requires the database name, username, and password.
+# Returns a handle to the db.
+# Set up for a PostgreSQL db;  could be any transactional DBMS with the
+# right changes.
+sub connectDB {
+  $errstr = '';
+  my ($dbname,$user,$pass) = @_;
+  my $dbh;
+  my $DSN = "DBI:Pg:dbname=$dbname";
+
+  my $host = shift;
+  $DSN .= ";host=$host" if $host;
+
+# Note that we want to autocommit by default, and we will turn it off locally as necessary.
+# We may not want to print gobbledygook errors;  YMMV.  Have to ponder that further.
+  $dbh = DBI->connect($DSN, $user, $pass, {
+	AutoCommit => 1,
+	PrintError => 0
+	})
+    or return (undef, $DBI::errstr) if(!$dbh);
+
+# Return here if we can't select.  Note that this indicates a
+# problem executing the select.
+  my $sth = $dbh->prepare("select group_id from groups limit 1");
+  $sth->execute();
+  return (undef,$DBI::errstr) if ($sth->err);
+
+# See if the select returned anything (or null data).  This should
+# succeed if the select executed, but...
+  $sth->fetchrow();
+  return (undef,$DBI::errstr)  if ($sth->err);
+
+  $sth->finish;
+
+# If we get here, we should be OK.
+  return ($dbh,"DB connection OK");
+} # end connectDB
+
+
+## DNSDB::finish()
+# Cleans up after database handles and so on.
+# Requires a database handle
+sub finish {
+  my $dbh = $_[0];
+  $dbh->disconnect;
+} # end finish
+
+
+## DNSDB::initGlobals()
+# Initialize global variables
+# NB: this does NOT include web-specific session variables!
+# Requires a database handle
+sub initGlobals {
+  my $dbh = shift;
+
+# load system-wide site defaults and things from config file
+  open SYSDEFAULTS, "</etc/dnsdb.conf";
+##fixme - error check!
+  while (<SYSDEFAULTS>) {
+    next if /^\s*#/;
+    $def{contact}	= $1 if /contact ?= ?([a-z0-9_.-]+)/i;
+    $def{prins}		= $1 if /prins ?= ?([a-z0-9_.-]+)/i;
+    $def{soattl}	= $1 if /soattl ?= ?([a-z0-9_.-]+)/i;
+    $def{refresh}	= $1 if /refresh ?= ?([a-z0-9_.-]+)/i;
+    $def{retry}		= $1 if /retry ?= ?([a-z0-9_.-]+)/i;
+    $def{expire}	= $1 if /expire ?= ?([a-z0-9_.-]+)/i;
+    $def{minttl}	= $1 if /minttl ?= ?([a-z0-9_.-]+)/i;
+    $def{ttl}		= $1 if /ttl ?= ?([a-z0-9_.-]+)/i;
+##fixme?  load DB user/pass from config file?
+  }
+# load from database
+  my $sth = $dbh->prepare("select val,name from rectypes");
+  $sth->execute;
+  while (my ($recval,$recname) = $sth->fetchrow_array()) {
+    $typemap{$recval} = $recname;
+    $reverse_typemap{$recname} = $recval;
+  }
+} # end initGlobals
+
+
+##
+## Processing subs
+##
+
+## DNSDB::addDomain()
+# Add a domain
+# Takes a database handle, domain name, numeric group, and boolean(ish) state (active/inactive)
+# Returns a status code and message
+sub addDomain {
+  $errstr = '';
+  my $dbh = shift;
+  return ('FAIL',"Need database handle") if !$dbh;
+  my $domain = shift;
+  return ('FAIL',"Need domain") if !defined($domain);
+  my $group = shift;
+  return ('FAIL',"Need group") if !defined($group);
+  my $state = shift;
+  return ('FAIL',"Need domain status") if !defined($state);
+
+  my $dom_id;
+
+  # Allow transactions, and raise an exception on errors so we can catch it later.
+  # Use local to make sure these get "reset" properly on exiting this block
+  local $dbh->{AutoCommit} = 0;
+  local $dbh->{RaiseError} = 1;
+
+  # Wrap all the SQL in a transaction
+  eval {
+    # insert the domain...
+    my $sth = $dbh->prepare("insert into domains (domain,group_id,status) values (?,?,?)");
+    $sth->execute($domain,$group,$state);
+
+    # get the ID...
+    $sth = $dbh->prepare("select domain_id from domains where domain='$domain'");
+    $sth->execute;
+    ($dom_id) = $sth->fetchrow_array();
+
+    # ... and now we construct the standard records from the default set.  NB:  group should be variable.
+    $sth = $dbh->prepare("select host,type,val,distance,weight,port,ttl from default_records where group_id=$group");
+    my $sth_in = $dbh->prepare("insert into records (domain_id,host,type,val,distance,weight,port,ttl)".
+	" values ($dom_id,?,?,?,?,?,?,?)");
+    $sth->execute;
+    while (my ($host,$type,$val,$dist,$weight,$port,$ttl) = $sth->fetchrow_array()) {
+      $host =~ s/DOMAIN/$domain/g;
+      $sth_in->execute($host,$type,$val,$dist,$weight,$port,$ttl);
+    }
+
+    # once we get here, we should have suceeded.
+    $dbh->commit;
+  }; # end eval
+
+  if ($@) {
+    my $msg = $@;
+    eval { $dbh->rollback; };
+    return ('FAIL',$msg);
+  } else {
+    return ('OK',$dom_id);
+  }
+} # end addDomain
+
+
+## DNSDB::delDomain()
+# Delete a domain.
+# for now, just delete the records, then the domain.
+# later we may want to archive it in some way instead (status code 2, for example?)
+sub delDomain {
+  my $dbh = shift;
+  my $domain = shift;
+
+  # Allow transactions, and raise an exception on errors so we can catch it later.
+  # Use local to make sure these get "reset" properly on exiting this block
+  local $dbh->{AutoCommit} = 0;
+  local $dbh->{RaiseError} = 1;
+
+  # Wrap all the SQL in a transaction
+  eval {
+    # brute force.
+    my $sth = $dbh->prepare("select domain_id from domains where domain=?");
+    $sth->execute($domain);
+    die "Domain not found, can't delete\n" if $sth->rows < 1;
+    my ($id) = $sth->fetchrow_array;
+
+    $sth = $dbh->prepare("delete from records where domain_id=$id");
+    $sth->execute;
+    $sth = $dbh->prepare("delete from domains where domain=?");
+    $sth->execute($domain);
+
+    # once we get here, we should have suceeded.
+    $dbh->commit;
+  }; # end eval
+
+  if ($@) {
+    my $msg = $@;
+    eval { $dbh->rollback; };
+    return ('FAIL',$msg);
+  } else {
+    return ('OK','OK');
+  }
+
+} # end delDomain()
+
+
+## DNSDB::domainName()
+# Return the domain name based on a domain ID
+# Takes a database handle and the domain ID
+# Returns the domain name or undef on failure
+sub domainName {
+  $errstr = '';
+  my $dbh = shift;
+  my $domid = shift;
+  my $sth = $dbh->prepare("select domain from domains where domain_id=?");
+  $sth->execute($domid);
+  my ($domname) = $sth->fetchrow_array();
+  $errstr = $DBI::errstr if !$domname;
+  return $domname if $domname;
+} # end domainName
+
+
+## DNSDB::editRecord()
+# Change an existing record
+# Takes a database handle, default/live flag, record ID, and new data and updates the data fields for it
+sub editRecord {
+  $errstr = '';
+  my $dbh = shift;
+  my $defflag = shift;
+  my $recid = shift;
+  my $host = shift;
+  my $address = shift;
+  my $distance = shift;
+  my $weight = shift;
+  my $port = shift;
+  my $ttl = shift;
+}
+
+
+## DNSDB::getSOA()
+# Return all suitable fields from an SOA record in separate elements of a hash
+# Takes a database handle, default/live flag, and group (default) or domain (live) ID
+sub getSOA {
+  $errstr = '';
+  my $dbh = shift;
+  my $def = shift;
+  my $id = shift;
+  my %ret;
+
+  my $sql = "select record_id,host,val,ttl from";
+  if ($def eq 'def' or $def eq 'y') {
+    $sql .= " default_records where group_id=$id and type=$reverse_typemap{SOA}";
+  } else {
+    # we're editing a live SOA record;  find based on domain
+    $sql .= " records where domain_id=$id and type=$reverse_typemap{SOA}";
+  }
+#print "getSOA DEBUG: $sql<br>\n";
+  my $sth = $dbh->prepare($sql);
+  $sth->execute;
+
+  my ($recid,$host,$val,$ttl) = $sth->fetchrow_array();
+  my ($prins,$contact) = split /:/, $host;
+  my ($refresh,$retry,$expire,$minttl) = split /:/, $val;
+
+  $ret{recid}	= $recid;
+  $ret{ttl}	= $ttl;
+  $ret{prins}	= $prins;
+  $ret{contact}	= $contact;
+  $ret{refresh}	= $refresh;
+  $ret{retry}	= $retry;
+  $ret{expire}	= $expire;
+  $ret{minttl}	= $minttl;
+
+  return %ret;
+} # end getSOA()
+
+
+## DNSDB::getRecLine()
+# Return all data fields for a zone record in separate elements of a hash
+# Takes a database handle, default/live flag, and record ID
+sub getRecLine {
+  $errstr = '';
+  my $dbh = shift;
+  my $def = shift;
+  my $id = shift;
+
+  my $sql = "select record_id,host,type,val,distance,weight,port,ttl from ".
+	(($def eq 'def' or $def eq 'y') ? 'default_' : '').
+	"records where record_id=$id";
+print "MDEBUG: $sql<br>\n";
+  my $sth = $dbh->prepare($sql);
+  $sth->execute;
+
+  my ($recid,$host,$rtype,$val,$distance,$weight,$port,$ttl) = $sth->fetchrow_array();
+
+  if ($sth->err) {
+    $errstr = $DBI::errstr;
+    return undef;
+  }
+  my %ret;
+  $ret{recid}	= $recid;
+  $ret{host}	= $host;
+  $ret{type}	= $rtype;
+  $ret{val}	= $val;
+  $ret{distance}= $distance;
+  $ret{weight}	= $weight;
+  $ret{port}	= $port;
+  $ret{ttl}	= $ttl;
+
+  return %ret;
+}
+
+
+##fixme: should use above (getRecLine()) to get lines for below?
+## DNSDB::getDomRecs()
+# Return records for a domain
+# Takes a database handle, default/live flag, group/domain ID, start,
+# number of records, sort field, and sort order
+# Returns a reference to an array of hashes
+sub getDomRecs {
+  $errstr = '';
+  my $dbh = shift;
+  my $type = shift;
+  my $id = shift;
+
+  my $sql = "select record_id,host,type,val,distance,weight,port,ttl from";
+  if ($type eq 'def' or $type eq 'y') {
+    $sql .= " default_records where group_id=$id";
+  } else {
+    $sql .= " records where domain_id=$id";
+  }
+  $sql .= " and not type=$reverse_typemap{SOA}";
+  my $sth = $dbh->prepare($sql);
+  $sth->execute;
+
+  my @retbase;
+  while (my $ref = $sth->fetchrow_hashref()) {
+    push @retbase, $ref;
+  }
+
+  my $ret = \@retbase;
+  return $ret;
+} # end getDomRecs()
+
+
+## DNSDB::addRec()
+# Add a new record to a domain or a group's default records
+# Takes a database handle, default/live flag, group/domain ID,
+# host, type, value, and TTL
+# Some types require additional detail: "distance" for MX and SRV,
+# and weight/port for SRV
+# Returns a status code and detail message in case of error
+sub addRec {
+  $errstr = '';
+  my $dbh = shift;
+  my $defrec = shift;
+  my $id = shift;
+
+  my $host = shift;
+  my $rectype = shift;
+  my $val = shift;
+  my $ttl = shift;
+
+  my $fields = ($defrec eq 'y' ? 'group_id' : 'domain_id').",host,type,val,ttl";
+  my $vallist = "$id,'$host',$rectype,'$val',$ttl";
+
+  my $dist;
+  if ($rectype == $reverse_typemap{MX} or $rectype == $reverse_typemap{SRV}) {
+    $dist = shift;
+    return ('FAIL',"Need distance for $typemap{$rectype} record") if !defined($dist);
+    $fields .= ",distance";
+    $vallist .= ",$dist";
+  }
+  my $weight;
+  my $port;
+  if ($rectype == $reverse_typemap{SRV}) {
+    $weight = shift;
+    $port = shift;
+    return ('FAIL',"Need weight and port for SRV record") if !defined($weight) or !defined($port);
+    $fields .= ",weight,port";
+    $vallist .= ",$weight,$port";
+  }
+
+  my $sql = "insert into ".($defrec eq 'y' ? 'default_' : '')."records ($fields) values ($vallist)";
+# something is bugging me about this...
+print "DEBUG: $sql<br>\n";
+  my $sth = $dbh->prepare($sql);
+  $sth->execute;
+
+  return ('FAIL',$sth->errstr) if $sth->err;
+
+  return ('OK','OK');
+} # end addRec()
+
+
+## DNSDB::delRec()
+# Delete a record.  
+sub delRec {
+  $errstr = '';
+  my $dbh = shift;
+  my $defrec = shift;
+  my $id = shift;
+
+  my $sth = $dbh->prepare("delete from ".($defrec eq 'y' ? 'default_' : '')."records where record_id=?");
+  $sth->execute($id);
+
+  return ('FAIL',$sth->errstr) if $sth->err;
+
+  return ('OK','OK');
+} # end delRec()
+
+
+## DNSDB::domStatus()
+# Sets and/or returns a domain's status
+# Takes a database handle, domain ID and optionally a status argument
+# Returns undef on errors.
+sub domStatus {
+  my $dbh = shift;
+  my $id = shift;
+  my $newstatus = shift;
+
+  return undef if $id !~ /^\d+$/;
+
+  my $sth;
+
+# ooo, fun!  let's see what we were passed for status
+  if ($newstatus) {
+    $sth = $dbh->prepare("update domains set status=? where domain_id=?");
+    # ass-u-me caller knows what's going on in full
+    if ($newstatus =~ /^[01]$/) {	# only two valid for now.
+      $sth->execute($newstatus,$id);
+    } elsif ($newstatus =~ /^domo(?:n|ff)$/) {
+      $sth->execute(($newstatus eq 'domon' ? 1 : 0),$id);
+    }
+  }
+
+  $sth = $dbh->prepare("select status from domains where domain_id=?");
+  $sth->execute($id);
+  my ($status) = $sth->fetchrow_array;
+  return $status;
+} # end domStatus()
+
+
+# shut Perl up
+1;
Index: /trunk/dns.cgi
===================================================================
--- /trunk/dns.cgi	(revision 3)
+++ /trunk/dns.cgi	(revision 3)
@@ -0,0 +1,438 @@
+#!/usr/bin/perl -w -T
+# dns/cgi-bin/dns.cgi
+###
+# SVN revision info
+# $Date$
+# SVN revision $Rev$
+# Last update by $Author$
+###
+# Copyright (C) 2008,2009 - Kris Deugau <kdeugau@deepnet.cx>
+
+use strict;
+use warnings;
+
+use CGI::Carp qw (fatalsToBrowser);
+use CGI::Simple;
+use HTML::Template;
+use CGI::Session;
+use DBI;
+
+use lib '.';
+# custom modules
+use DNSDB qw(:ALL);
+
+# Let's do these templates right...
+my $templatedir = "templates";
+my $sessiondir = "session";
+
+# Set up the CGI object...
+my $q = new CGI::Simple;
+# ... and get query-string params as well as POST params if necessary
+$q->parse_query_string;
+
+my %webvar;
+# This is probably excessive fiddling, but it puts the parameters somewhere my fingers know about...
+foreach ($q->param()) {
+  $webvar{$_} = $q->param($_);
+}
+
+my $sid = ($webvar{sid} ? $webvar{sid} : undef);
+my $session = new CGI::Session("driver:File", $sid, {Directory => $sessiondir});
+#$sid = $session->id() if !$sid;
+if (!$sid) {
+  # init stuff.  can probably axe this down to just above if'n'when user manipulation happens
+  $sid = $session->id();
+# need to know the "upper" group the user can deal with;  may as well
+# stick this in the session rather than calling out to the DB every time.
+  $session->param('logingroupid',1);
+  $session->param('workinggroupid',1);	# yes, we *do* need to track this too.  er, probably.
+}
+
+# handle login redirect
+if ($webvar{action} && $webvar{action} eq 'login') {
+  # handle user check
+  my $newurl = "http://$ENV{HTTP_HOST}$ENV{REQUEST_URI}?sid=$sid&page=domlist";
+  print "Status: 302\nLocation: $newurl\n\n";
+  exit;
+}
+
+my $header = HTML::Template->new(filename => "$templatedir/header.tmpl");
+my $footer = HTML::Template->new(filename => "$templatedir/footer.tmpl");
+
+print "Content-type: text/html\n\n", $header->output;
+
+# default
+#my $perpage = 15;
+my $perpage = 3;
+my $offset = ($webvar{offset} ? $webvar{offset} : 0);
+
+# NB:  these must match the field name and SQL ascend/descend syntax respectively
+my $sortfield = "domains";
+my $sortorder = "asc";
+
+my ($dbh,$msg) = connectDB("dnsdb","dnsdb","secret");
+#my $dbh = DBI->connect("DBI:mysql:database=vegadns","vegadns","secret",
+#	{ AutoCommit => 0 }) or die $DBI::errstr;
+
+##fixme.  PLEASE!  <G>
+print $msg if !$dbh;
+
+# fiddle hardcoded "defaults" as per system/user (?) prefs
+initGlobals($dbh);
+
+# Default page is a login page
+my $page;	# to be initialized as an HTML::Template entity sooner or later
+
+
+
+# decide which page to spit out...
+if (!$webvar{page}) {
+  $page = HTML::Template->new(filename => "$templatedir/login.tmpl");
+} else {
+  $page = HTML::Template->new(filename => "$templatedir/$webvar{page}.tmpl");
+}
+
+$page->param(sid => $sid);
+
+if ($webvar{page} eq 'domlist' or $webvar{page} eq 'index') {
+
+# hmm.  seeing problems in some possibly-not-so-corner cases.
+  if (defined($webvar{action})) {
+    domStatus($dbh,$webvar{id},$webvar{action});
+  }
+
+  my $sth = $dbh->prepare("select count(*) from domains");
+  $sth->execute;
+  my ($count) = ($sth->fetchrow_array);
+
+##fixme
+  if ($offset eq 'all') {
+    print "foo!  wanna see'em all\n";
+  } else {
+    # all these bits only have sensible behaviour if offset is numeric. err, probably.
+    if ($count > $perpage) {
+      # if there are more results than the default, always show the "all" link
+      $page->param(navall => 1);
+
+      if ($offset > 0) {
+        $page->param(navfirst => 1);
+        $page->param(navprev => 1);
+        $page->param(prevoffs => $offset-1);
+      }
+
+      # show "next" and "last" links if we're not on the last page of results
+      if ( (($offset+1) * $perpage - $count) < 0 ) {
+        $page->param(navnext => 1);
+        $page->param(nextoffs => $offset+1);
+        $page->param(navlast => 1);
+        $page->param(lastoffs => int $count/$perpage);
+      }
+    }
+  }
+
+  $page->param(ndomains => $count);
+  $page->param(nstart => (($offset eq 'all' ? 0 : $offset)*$perpage+1));
+  $page->param(npglast => ($offset eq 'all' ? $count :
+	( (($offset+1)*$perpage) > $count ? $count : (($offset+1)*$perpage) )
+	));
+  my @domlist;
+  $sth = $dbh->prepare("select domain_id,domain,status,groups.name from domains".
+	" inner join groups on domains.group_id=groups.group_id".
+	" order by domain".($offset eq 'all' ? '' : " limit $perpage offset ".$offset*$perpage));
+  $sth->execute;
+  my $rownum = 0;
+  while (my @data = $sth->fetchrow_array) {
+    my %row;
+    $row{domainid} = $data[0];
+    $row{domain} = $data[1];
+    $row{status} = ($data[2] ? 'Active' : 'Inactive');
+    $row{group} = $data[3];
+    $row{bg} = ($rownum++)%2;
+#    $row{mkactive} = ($data[2] eq 'inactive' ? 1 : 0);
+    $row{mkactive} = !$data[2];
+    $row{sid} = $sid;
+    $row{offset} = $offset;
+##fixme:  need to clean up status indicator/usage/inversion
+    push @domlist, \%row;
+  }
+  $page->param(domtable => \@domlist);
+
+} elsif ($webvar{page} eq 'reclist') {
+
+#} elsif ($webvar{page} eq 'domdetail') {
+
+  $page->param(defrec => $webvar{defrec});
+
+##fixme
+  $page->param(domain => domainName($dbh,$webvar{id}));
+  $page->param(grpid => 1);
+##fixme
+
+  if ($webvar{defrec} eq 'y') {
+    $page->param(id => $webvar{grpid});	##fixme, hack! hack!
+    showdomain('y',1);
+  } else {
+    $page->param(id => $webvar{id});
+    showdomain('n',$webvar{id});
+  }
+
+} elsif ($webvar{page} eq 'defrecs') {
+
+  showdomain('def',1);
+  $page->param(defrec => 'y');
+
+  my $sth = $dbh->prepare("select * from default_records");
+  $sth->execute;
+print "<pre>\n";
+  while (my @data = $sth->fetchrow_array) {
+    foreach (@data) { print; print "\t" };
+    print "\n";
+  }
+print "</pre>\n";
+
+} elsif ($webvar{page} eq 'newdomain') {
+  # weesa gonna discard parent_group_id for now
+  my $sth = $dbh->prepare("select group_id,parent_group_id,name from groups order by group_id");
+  $sth->execute;
+  my @grplist;
+  while (my ($grpid,$pargrp,$grpname) = $sth->fetchrow_array()) {
+    my %row;
+    $row{grpname} = $grpname;
+    $row{grpval} = $grpid;
+##fixme: need magic
+#    $row{defgrp} = '';
+    push @grplist, \%row;
+  }
+
+  $page->param(grplist => \@grplist);
+
+} elsif ($webvar{page} eq 'newrec') {
+  print "whee!\n";
+
+  # populate most fields as needed.  (eg, type list.)
+  newrec();
+
+} elsif ($webvar{page} eq 'addrec') {
+  print "wanna add<br>DEBUG: $webvar{parentid}<br>\n";
+
+  my @recargs = ($dbh,$webvar{defrec},$webvar{parentid},$webvar{name},$webvar{type},$webvar{address},$webvar{ttl});
+  if ($webvar{type} == $reverse_typemap{MX} or $webvar{type} == $reverse_typemap{SRV}) {
+    push @recargs, $webvar{distance};
+    if ($webvar{type} == $reverse_typemap{SRV}) {
+      push @recargs, $webvar{weight};
+      push @recargs, $webvar{port};
+    }
+  }
+  push @recargs, 
+  my ($code,$msg) = addRec(@recargs);
+
+  if ($code eq 'OK') {
+    showdomain($webvar{defrec},$webvar{parentid});
+# NB: should **really** redirect here, in case of reload.  >_<  eyowch.
+  } else {
+    $page->param(add_failed => 1);
+    $page->param(errmsg => $msg);
+    newrec();	# populate the form... er, mostly.
+    $page->param(name => $webvar{name});
+    $page->param(address => $webvar{address});
+    $page->param(distance => $webvar{distance})
+	if ($webvar{type} == $reverse_typemap{MX} or $webvar{type} == $reverse_typemap{SRV});
+    $page->param(weight => $webvar{weight}) if $webvar{type} == $reverse_typemap{SRV};
+    $page->param(port => $webvar{port}) if $webvar{type} == $reverse_typemap{SRV};
+  }
+
+  $page->param(defrec => $webvar{defrec});
+
+} elsif ($webvar{page} eq 'conf_del') {
+
+  $page->param(id => $webvar{id});
+  $page->param(defrec => $webvar{defrec});
+
+  my @tmp = getrecdata($dbh,$webvar{id},$webvar{defrec});
+
+  
+} elsif ($webvar{page} eq 'delrec') {
+
+  $page->param(id => $webvar{id});
+  $page->param(defrec => $webvar{defrec});
+  # first pass = confirm y/n (sorta)
+  if (!defined($webvar{del})) {
+    $page->param(del_getconf => 1);
+    my %rec = getRecLine($dbh,$webvar{defrec},$webvar{id});
+    $page->param(host => $rec{host});
+    $page->param(ftype => $typemap{$rec{type}});
+    $page->param(recval => $rec{val});
+  } else {
+    my ($code,$msg) = delRec($dbh,$webvar{defrec},$webvar{id});
+    if ($code ne 'OK') {
+## need to find failure mode
+      $page->param(del_failed => 1);
+      $page->param(errmsg => $msg);
+    }
+##fixme:  group/parent instead of hardcoded 1
+    showdomain('y',1);
+  }
+
+} elsif ($webvar{page} eq 'editsoa') {
+
+  fillsoa($webvar{defrec},$webvar{recid});
+
+} elsif ($webvar{page} eq 'updatesoa') {
+  print "ooooo!\n";
+
+  my $sth;
+  my $sql = '';
+  # no domain ID, so we're editing the default SOA for a group (we don't care which one here)
+  # plus a bit of magic to update the appropriate table
+  $sql = "update ".($webvar{domainid} eq '' ? "default_records" : "records").
+	" set host='$webvar{prins}:$webvar{contact}',".
+	" val='$webvar{refresh}:$webvar{retry}:$webvar{expire}:$webvar{minttl}',".
+	" ttl=$webvar{ttl} where record_id=$webvar{recid}";
+  $sth = $dbh->prepare($sql);
+  $sth->execute;
+
+  if ($sth->err) {
+    $page->param(update_failed => 1);
+    $page->param(msg => $DBI::errstr);
+    fillsoa($webvar{defrec},1);
+  } else {
+    $page->param(update_failed => 0);
+##fixme!  need to set group ID properly here
+    showdomain('y',1);
+  }
+
+} elsif ($webvar{page} eq 'adddomain') {
+  # Need some magic here.
+
+##fixme:  Group should be variable
+  my ($code,$msg) = addDomain($dbh,$webvar{domain},1,($webvar{makeactive} eq 'on' ? 1 : 0));
+
+# hokay, a bit of magic to decide which page we hit.
+  if ($code eq 'OK') {
+    $page = HTML::Template->new(filename => "$templatedir/reclist.tmpl");
+    showdomain(0,$msg);
+##work
+  } else {
+# oooh, yeah, this is supposed to be a redirect.  er, maybe.  whee.
+    $page = HTML::Template->new(filename => "$templatedir/newdomain.tmpl");
+    $page->param(add_failed => 1);
+    $page->param(domain => $webvar{domain});
+    $page->param(errmsg => $msg);
+  }
+
+
+}
+
+
+# spit it out
+print $page->output;
+
+print "<div id=debug>webvar keys: <pre>\n";
+foreach my $key (keys %webvar) {
+  print "key: $key\tval: $webvar{$key}\n";
+}
+print "</pre>\nENV:\n<pre>\n";
+foreach my $key (keys %ENV) {
+  print "key: $key\tval: $ENV{$key}\n";
+}
+print "</pre></div>\n";
+
+print $footer->output;
+
+
+exit 0;
+
+
+sub fillsoa {
+  my $def = shift;
+  my $id = shift;
+  my $domname;
+
+  if ($webvar{domain} == 0) {
+    $domname = "DOMAIN";
+  } else {
+    my $sth = $dbh->prepare("select domain from domains where domain_id=$webvar{domain}");
+    $sth->execute();
+    ($domname) = $sth->fetchrow_array();
+  }
+
+  $page->param(domain => $domname);
+  $page->param(defrec => !$webvar{domain});
+  $page->param(group => $DNSDB::group);
+
+# defaults
+  $page->param(defcontact => $DNSDB::def{contact});
+  $page->param(defns => $DNSDB::def{prins});
+  $page->param(defsoattl => $DNSDB::def{soattl});
+  $page->param(defrefresh => $DNSDB::def{refresh});
+  $page->param(defretry => $DNSDB::def{retry});
+  $page->param(defexpire => $DNSDB::def{expire});
+  $page->param(defminttl => $DNSDB::def{minttl});
+
+  # there are probably better ways to do this.  TMTOWTDI.
+  my %soa = getSOA($dbh,$def,$id);
+
+  $page->param(domainid	=> $webvar{domain});
+  $page->param(recid	=> $soa{recid});
+  $page->param(prins	=> ($soa{prins} ? $soa{prins} : $DNSDB::def{prins}));
+  $page->param(contact	=> ($soa{contact} ? $soa{contact} : $DNSDB::def{contact}));
+  $page->param(refresh	=> ($soa{refresh} ? $soa{refresh} : $DNSDB::def{refresh}));
+  $page->param(retry	=> ($soa{retry} ? $soa{retry} : $DNSDB::def{retry}));
+  $page->param(expire	=> ($soa{expire} ? $soa{expire} : $DNSDB::def{expire}));
+  $page->param(minttl	=> ($soa{minttl} ? $soa{minttl} : $DNSDB::def{minttl}));
+  $page->param(ttl	=> ($soa{ttl} ? $soa{ttl} : $DNSDB::def{soattl}));
+}
+
+sub showdomain {
+  my $def = shift;
+  my $id = shift;
+
+  # get the SOA first
+  my %soa = getSOA($dbh,$def,$id);
+
+  $page->param(recid	=> $soa{recid});
+  $page->param(contact	=> $soa{contact});
+  $page->param(prins	=> $soa{prins});
+  $page->param(refresh	=> $soa{refresh});
+  $page->param(retry	=> $soa{retry});
+  $page->param(expire	=> $soa{expire});
+  $page->param(minttl	=> $soa{minttl});
+  $page->param(ttl	=> $soa{ttl});
+
+#  my @foo2 = getDomRecs($dbh,'def',1);
+  my $foo2 = getDomRecs($dbh,$def,$id);
+
+  my $row = 0;
+  foreach my $rec (@$foo2) {
+    $rec->{type} = $typemap{$rec->{type}};
+    $rec->{row} = $row % 2;
+    # Feh.
+    $rec->{defrec} = $webvar{defrec};
+    # And **FEH!!**
+    $rec->{sid} = $webvar{sid};
+    $row++;
+  }
+  $page->param(reclist => $foo2);
+}
+
+sub newrec {
+  my $sth = $dbh->prepare("select val,name from rectypes where stdflag=1 order by listorder");
+  $sth->execute;
+
+  my @typelist;
+  while (my ($rval,$rname) = $sth->fetchrow_array()) {
+    my %row = ( recval => $rval, recname => $rname );
+    $row{tselect} = 1 if $rval == $webvar{type};
+    push @typelist, \%row;
+  }
+  $page->param(typelist	=> \@typelist);
+  $page->param(domain	=> domainName($dbh,$webvar{domainid}));
+  $page->param(defrec	=> $webvar{defrec});
+  $page->param(ttl	=> ($webvar{ttl} ? $webvar{ttl} : $DNSDB::def{minttl}));
+  if ($webvar{defrec} eq 'y') {
+    ##fixme - should be groupid
+    $page->param(parentid => 1);
+  } else {
+    $page->param(parentid => $webvar{parentid});
+  }
+}
Index: /trunk/index.shtml
===================================================================
--- /trunk/index.shtml	(revision 3)
+++ /trunk/index.shtml	(revision 3)
@@ -0,0 +1,1 @@
+<!--#include virtual="dns.cgi" -->
Index: /trunk/new-dns.sql
===================================================================
--- /trunk/new-dns.sql	(revision 3)
+++ /trunk/new-dns.sql	(revision 3)
@@ -0,0 +1,144 @@
+-- fixme:  include template-ish ACL?
+CREATE TABLE groups (
+	group_id SERIAL UNIQUE,
+	parent_group_id int NOT NULL DEFAULT '1',
+	name varchar(255) NOT NULL DEFAULT ''
+);
+-- gotta have a default group to attach some further default data to...
+INSERT INTO groups (name) VALUES ('default');
+
+-- use ON DELETE (CASCADE|RESTRICT|NO ACTION) on FKs
+
+CREATE TABLE domains (
+	domain_id SERIAL UNIQUE,
+	domain varchar(80) NOT NULL PRIMARY KEY,
+	group_id int NOT NULL DEFAULT 1 REFERENCES groups (group_id),
+	description varchar(255) NOT NULL DEFAULT '',
+	status int NOT NULL DEFAULT 1
+);
+
+CREATE TABLE default_records (
+	record_id SERIAL PRIMARY KEY,
+	group_id int NOT NULL DEFAULT 1 REFERENCES groups (group_id),
+	host varchar(100) NOT NULL DEFAULT '',
+	type int NOT NULL DEFAULT 1,
+	val varchar(100) NOT NULL DEFAULT '',
+	distance int NOT NULL DEFAULT 0,
+	weight int NOT NULL DEFAULT 0,
+	port int NOT NULL DEFAULT 0,
+	ttl int NOT NULL DEFAULT 86400,
+	description varchar(255)
+);
+
+-- let's take pity on the poor sod installing things and include some default data that's halfway sane
+INSERT INTO default_records (group_id,host,type,val,ttl) VALUES (1,'ns1.example.com:hostmaster.DOMAIN',6,'10800:3600:604800:10800',86400);
+
+CREATE TABLE records (
+	domain_id int NOT NULL REFERENCES domains (domain_id),
+	record_id SERIAL PRIMARY KEY,
+	host varchar(100) NOT NULL DEFAULT '',
+	type int NOT NULL DEFAULT 1,
+	val varchar(100) NOT NULL DEFAULT '',
+	distance int NOT NULL DEFAULT 0,
+	weight int NOT NULL DEFAULT 0,
+	port int NOT NULL DEFAULT 0,
+	ttl int NOT NULL DEFAULT 86400,
+	description varchar(255)
+);
+
+-- oooo! oooo!  allow staff/unwashed-masses parallel users?
+--  - multitable, or just another column in the database...?
+--  - go with column for now (could even overload groups...)
+CREATE TABLE users (
+	user_id SERIAL PRIMARY KEY,
+	group_id int NOT NULL DEFAULT 1 REFERENCES groups (group_id),
+	email varchar(60) NOT NULL,
+	password varchar(34) NOT NULL,
+	firstname varchar(30),
+	lastname varchar(30),
+	phone varchar(15),
+	type char NOT NULL DEFAULT 'S',
+	status int NOT NULL DEFAULT 1,
+	acl varchar(40) NOT NULL DEFAULT 'b'
+);
+
+-- include a default user, so we don't break on install.  not happy with this, but...
+-- default password is 'test'
+INSERT INTO users (group_id,email,password,type,status,acl) VALUES (1,'test@test','$1$BByge8u2$48AaGX3YeHplfErX5Tlqa1','S',1,'A');
+
+-- these could be stuffed in a hash, but that gets tedious
+CREATE TABLE rectypes (
+	val int NOT NULL,
+	name varchar(12) NOT NULL,
+	stdflag int NOT NULL DEFAULT 1,
+	listorder int NOT NULL DEFAULT 255,
+	PRIMARY KEY (val,name)
+);
+-- data from http://www.iana.org/assignments/dns-parameters
+COPY rectypes (val, name, stdflag, listorder) FROM stdin;
+1	A	1	1
+2	NS	1	2
+3	MD	2	255
+4	MF	2	255
+5	CNAME	1	6
+6	SOA	0	8
+7	MB	3	255
+8	MG	3	255
+9	MR	3	255
+10	NULL	3	255
+11	WKS	3	255
+12	PTR	2	4
+13	HINFO	3	255
+14	MINFO	3	255
+15	MX	1	3
+16	TXT	1	5
+17	RP	2	255
+18	AFSDB	3	255
+19	X25	3	255
+20	ISDN	3	255
+21	RT	3	255
+22	NSAP	3	255
+23	NSAP-PTR	3	255
+24	SIG	3	255
+25	KEY	3	255
+26	PX	3	255
+27	GPOS	3	255
+28	AAAA	2	2
+29	LOC	3	255
+30	NXT	3	255
+31	EID	3	255
+32	NIMLOC	3	255
+33	SRV	1	7
+34	ATMA	3	255
+35	NAPTR	3	255
+36	KX	3	255
+37	CERT	3	255
+38	A6	3	3
+39	DNAME	3	255
+40	SINK	3	255
+41	OPT	3	255
+42	APL	3	255
+43	DS	3	255
+44	SSHFP	3	255
+45	IPSECKEY	3	255
+46	RRSIG	3	255
+47	NSEC	3	255
+48	DNSKEY	3	255
+49	DHCID	3	255
+50	NSEC3	3	255
+51	NSEC3PARAM	3	255
+55	HIP	3	255
+99	SPF	3	255
+100	UINFO	3	255
+101	UID	3	255
+102	GID	3	255
+103	UNSPEC	3	255
+249	TKEY	3	255
+250	TSIG	3	255
+251	IXFR	3	255
+252	AXFR	3	255
+253	MAILB	3	255
+254	MAILA	3	255
+32768	TA	3	255
+32769	DLV	3	255
+\.
Index: /trunk/notes
===================================================================
--- /trunk/notes	(revision 3)
+++ /trunk/notes	(revision 3)
@@ -0,0 +1,225 @@
+web frontend:
+
+workflow:
+
+log in, see domain list from current group
+
+-> "current group" includes all subgroups?  (hairy SQL)
+
+
+logic:
+-> need to pass session ID on every call, otherwise we don't know who we are
+-> should check ACLs on every call in case of changing permissions
+-> should be able to store all webvar bits in the session
+
+
+ooo! ooo!  what about "clone existing domain"?
+
+
+components:
+menu list (actions/sections)
+domain list
+group tree
+user list
+<various edit <entity> pages>
+
+
+
+time tables:
+3600: 1h
+7200: 2h
+10800: 3h
+14400: 4h
+21600: 6h
+43200: 12h
+86400: 1d
+172800: 2d
+604800: 7d (1w)
+
+valid records:
+
+nb:  wildcards are supported for most types.  use with extreme caution!  (I don't plan on writing
+tools that will create them.)
+
+.fqdn:ip:x:ttl:timestamp:lo
+ -> x.fqdn is a nameserver at ip, SOA sets x.fqdn as master with hostmaster@fqdn as contact
+ -> if x contains a . that is used as the NS name
+(Not much use for us)
+
+Zfqdn:primary:contact:serial:refresh:retry:expire:minttl:recttl:(timestamp:lo)
+ -> SOA for fqdn
+
+&fqdn:ip:x:ttl:timestamp:lo
+ -> x.fqdn is a nameserver
+ -> if x contains a . that is used as the NS name
+ -> ip may be omitted;  A record for fqdn->ip is created otherwise
+
+=fqdn:ip:ttl:timestamp:lo
+ -> A record and matching PTR record with fqdn and ip
+
++fqdn:ip:ttl:timestamp:lo
+ -> A record
+
+^ptr:fqdn:ttl:timestamp:lo
+ -> PTR record.  note ptr must be reverse-IP format ending in .in-addr.arpa
+
+@fqdn:ip:x:dist:ttl:timestamp:lo
+ -> MX.  Dist defaults to 0.
+ -> ip may be omitted;  A record for fqdn->ip is created otherwise
+
+-fqdn:ip:ttl:timestamp:lo
+ -> ignored
+
+'fqdn:text:ttl:timestamp:lo
+ -> TXT record
+ -> octal-encode special characters in text as \nnn
+
+Cfqdn:name:ttl:timestamp:lo
+ -> CNAME for fqdn pointing to name
+
+:fqdn:n:data:ttl:timestamp:lo
+ -> Generic data, of type n (n is a 16-bit unsigned integer)
+    17 is RP
+    16 is TXT
+    2 (NS), 5 (CNAME), 6 (SOA), 12 (PTR), 15 (MX) and 252 (AXFR) (WTF?) should not be used
+ -> data must use octal escapes for : or nondisplayable characters.  axfr-get seems to escape all
+    non-alphanumerics, therefore so will we.
+
+two primary groups of data:
+-> forward zones
+  -> local master zones
+  -> local slave zones
+-> reverse zones
+- note that it would be really nice to eliminate duplicated A records (+domain.com:ip:: plus =domain.com:ip::)
+
+operations:
+-> import zone data (BIND*, djbdns, vegadns-mysql)
+  -> allow overwrite of existing SOA
+-> export data (BIND*, djbdns)
+-> add zone/domain
+  -> as slave
+  -> as master
+-> delete zone/domain
+-> add record to domain
+-> remove record from domain
+-> change record
+  -> A record IP
+  -> CNAME destination
+  -> MX destination
+  -> MX priority
+  -> A <-> CNAME ?
+  -> flag record as "primary" A record for an IP (means that PTR will set that name as rDNS)
+-> force propagation (execute propagation script)
+-> User ACL fiddling:
+  -> take IPDB model, include groups/delegation/etc
+    "admin" -> nominally full access to anything/everything
+    "staff" -> general access to all domains, can create users and delegate domains to them
+    "bulk hoster" -> customer with more than one domain, (can create users and delegate domains to them)?
+    "user" -> customer with one domain
+    
+
+recommended SOA/TTL/etc times:
+refresh 86400 (24h), retry 7200 (2h), expire 2592000 (30d), ttl 345600 (4d)
+
+Qs re: new servers:
+-> IPs for cache/authoritative?
+
+
+flow of data:
+user input -> database -> local "zone" data -> rsync/scp to slaves
+
+don't use "domain ID" goop;  its only advantage is slightly lower disk use.  otherwise it's more
+complicated, less traceable thru the DB manually
+
+
+db structure (current)
+
+domains:
+| domain_id   | int(11)                   |      | MUL | NULL     | auto_increment |
+| domain      | varchar(100)              |      |     |          |                |
+| group_id    | int(11)                   | YES  |     | NULL     |                |
+| description | varchar(255)              |      |     |          |                |
+| status      | enum('active','inactive') |      |     | inactive |                |
+
+records:
+| domain_id   | int(11)      |      | MUL | 0       |                |
+| record_id   | int(11)      |      | PRI | NULL    | auto_increment |
+| host        | varchar(100) |      |     |         |                |
+| type        | char(1)      | YES  |     | NULL    |                |
+| val         | varchar(100) | YES  |     | NULL    |                |
+| distance    | int(4)       | YES  |     | 0       |                |
+| weight      | int(4)       | YES  |     | NULL    |                | - for SRV only
+| port        | int(4)       | YES  |     | NULL    |                | - for SRV only
+| ttl         | int(11)      |      |     | 86400   |                |
+| description | varchar(255) |      |     |         |                |
+
+default_records is a duplicate of records structurally
+
+log:  (not sure how useful this really is, in this form...)
+| domain_id | int(11)      |      |     | 0       |       |
+| user_id   | int(11)      |      |     | 0       |       |
+| group_id  | int(11)      |      |     | 0       |       |
+| email     | varchar(60)  |      |     |         |       |
+| name      | varchar(60)  |      |     |         |       |
+| entry     | varchar(200) |      |     |         |       |
+| time      | int(11)      |      |     | 0       |       |
+
+db structure (proposed)
+
+domains:
+domain	char(128)	pk, indexed
+group	char(32)	fk, indexed?
+status	enum?
+masterns char(64)
+email	char(128)
+serial  long int (needs 2^32 at least)
+refresh	long int	needs semi-sane default
+retry	long int	needs semi-sane default
+expire	long int	needs semi-sane default
+minttl	long int	needs semi-sane default
+ctime	timestamp
+mtime	timestamp
+
+records:
+recid	serial
+domain	char(128)	fk, indexed?
+host	char(128)	pk, indexed
+type	enum?
+val	char(256)	to allow for 255-char TXT records
+extra	char(10)	10 should be enough to express any needs for MX, SRV, or anything else...right?
+ttl	long int
+ctime	timestamp
+mtime	timestamp
+
+default records to be either database-coded as default values or coded in er, code.
+-> hrm.
+  database-level defaults are "recommended practice" according to the cricket book
+  code-level defaults may be hardcoded (easy) or loaded from a config file (harder, but cleaner)
+  all must be overrideable by a database-table-stored "local policy defaults" widget
+
+add domain:
+ -> need domain name
+ -> IP/"company default" radio button pair, with some Javascript to change defaults for:
+ -> radio buttons with sane defaults for standard hosts (www/mail/ftp/smtp)
+   -> www CNAME @
+   -> FTP CNAME @
+   -> mail CNAME mail.company.com
+   -> smtp CNAME smtp.company.com
+   -> MX defaults to <mxlist>
+   
++----------------------------------------------------------------+
+| Domain: _________________________________                      |
+| o Company hosting       o Slave zone        o Custom settings  |
++----------------------------------------------------------------+
+
+add_domain($domain,$class)
+update_domain($domain,$group,$status,[$contact,$primary,$serial,$ttl,$refresh,$retry,$expire,$minttl])
+delete_domain($domain)
+lock_domain($domain)  -hm..  lock/unlock may be admin-level "don't touch!" flags vs "active/inactive" flags
+unlock_domain($domain)
+add_record($domain,$host,$type,$value,$extra,$ttl)
+update_record($id,$host,$type,$val,$extra,$ttl)
+delete_record($id)
+export_data($domain,$format) ->takes special <ALL> arg for all zones.  $format -> BIND or djb (implement DJB first)
+update_nameservers()
+
Index: /trunk/templates/Login.html
===================================================================
--- /trunk/templates/Login.html	(revision 3)
+++ /trunk/templates/Login.html	(revision 3)
@@ -0,0 +1,51 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+  <meta content="text/html; charset=ISO-8859-1"
+ http-equiv="content-type">
+  <title>Login</title>
+</head>
+<body>
+<div class="center" style="text-align: center;">
+<table
+ style="border: thin solid rgb(0, 0, 0); text-align: left; margin-left: auto; margin-right: auto;">
+  <tbody>
+    <tr>
+      <td>
+      <table style="text-align: left;" border="0" cellpadding="2"
+ cellspacing="2">
+        <tbody>
+          <tr>
+            <td style="vertical-align: top;" colspan="2" align="center">Please
+log in </td>
+          </tr>
+          <tr>
+            <td style="vertical-align: top;">Email Address:<br>
+            </td>
+            <td style="vertical-align: top;"><input name="email"><br>
+            </td>
+          </tr>
+          <tr>
+            <td style="vertical-align: top;">Password:<br>
+            </td>
+            <td style="vertical-align: top;"><input name="password"
+ type="password"> </td>
+          </tr>
+          <tr>
+            <td style="vertical-align: top;"><br>
+            </td>
+            <td style="vertical-align: top;" align="right"><input
+ value="login" type="submit"><br>
+            </td>
+          </tr>
+        </tbody>
+      </table>
+      </td>
+    </tr>
+  </tbody>
+</table>
+</div>
+<br>
+<br>
+</body>
+</html>
Index: /trunk/templates/adddomain.tmpl
===================================================================
--- /trunk/templates/adddomain.tmpl	(revision 3)
+++ /trunk/templates/adddomain.tmpl	(revision 3)
@@ -0,0 +1,5 @@
+<TMPL_IF add_failed>
+<TMPL_INCLUDE NAME="newdomain.tmpl">
+<TMPL_ELSE>
+<TMPL_INCLUDE NAME="reclist.tmpl">
+</TMPL_IF>
Index: /trunk/templates/addrec.tmpl
===================================================================
--- /trunk/templates/addrec.tmpl	(revision 3)
+++ /trunk/templates/addrec.tmpl	(revision 3)
@@ -0,0 +1,5 @@
+<TMPL_IF add_failed>
+<TMPL_INCLUDE NAME="newrec.tmpl">
+<TMPL_ELSE>
+<TMPL_INCLUDE NAME="reclist.tmpl">
+</TMPL_IF>
Index: /trunk/templates/axfr.tmpl
===================================================================
--- /trunk/templates/axfr.tmpl	(revision 3)
+++ /trunk/templates/axfr.tmpl	(revision 3)
@@ -0,0 +1,107 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+    <HEAD>
+        <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
+        <TITLE>VegaDNS Administration</TITLE>
+        <link rel="STYLESHEET" type="text/css" href="templates/core-style.css">
+        <!--[if gte IE 5.5000]>
+        <script type="text/javascript" src="templates/pngfix.js"></script>
+        <![endif]-->
+            </HEAD>
+<body onload="focus()">
+<table border="0" height="100%" width="100%">
+
+    <tr valign="top">
+
+        <td class="border" width="20%" align="left">
+        &nbsp;<b>test@test.com</b> logged in<br>
+    &nbsp<a href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=end">log out</a>
+    <hr>
+    <table border="0" cellpadding="0" cellspacing="0">
+
+<tr><td><table cellpadding="0" cellspacing="0" border="0"><tr><td><img border="0" alt="home" 
+src="images/home.png"></td><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=groups&group=1">VegaDNS</a></td></tr></table>
+<table cellpadding="0" cellspacing="0" border="0"><tr><td><img border="0" src="images/dirtree_tee.gif"><td><img 
+border="0" src="images/newfolder.png"></td><td class="white"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&group=1">Domains</a></td></tr></table>
+<table cellpadding="0" cellspacing="0" border="0"><tr><td><img border="0" 
+src="images/dirtree_tee.gif"></td><td><img border="0" src="images/user_folder.png"></td><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&group=1">Users</a></td></tr></table>
+<table cellpadding="0" cellspacing="0" border="0"><tr><td><img border="0" 
+src="images/dirtree_tee.gif"></td><td><img border="0" src="images/newfolder.png"></td><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=log&group=1">Log</a></td></tr></table>
+<!-- COUNTER: 1 COUNT: 2 -->
+<table cellpadding="0" cellspacing="0" border="0"><tr><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&expanded=2&group=1&mode=domains&domain_mode=import_domains"><img 
+border="0" alt="home" src="images/dirtree_plus_tee.gif"><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=groups&group=2"><img border="0" 
+alt="home" src="images/group.gif"></a></td><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=groups&group=2">domain 
+owners</a></td></tr></table>
+<!-- COUNTER: 2 COUNT: 2 -->
+<table cellpadding="0" cellspacing="0" border="0"><tr><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&expanded=3&group=1&mode=domains&domain_mode=import_domains"><img 
+border="0" alt="home" src="images/dirtree_plus_elbow.gif"><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=groups&group=3"><img border="0" 
+alt="home" src="images/group.gif"></a></td><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=groups&group=3">bulk 
+hosters</a></td></tr></table>
+</td></tr>
+</table>
+
+
+    
+    <hr>
+        <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=default_records">Default 
+Records</a><br>
+        <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&domain_mode=import_domains">AXFR 
+Import</a><br>
+        <a href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=dnsquery">DNS 
+Query</a><br>
+        <a href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=whoisquery">Whois 
+Query</a>    </td>
+
+    <td align="center">
+    <img src="images/vegadns-small.png" alt="VegaDNS"><p>
+        <br></b><br>
+    <p><form action="/index.php">
+<input type="hidden" name="state" value="logged_in">
+<input type="hidden" name="mode" value="domains">
+<input type="hidden" name="domain_mode" value="import_domains_now">
+<input type="hidden" name="VDNSSessid" value="65d033c4ff10d2e73c9ca1050c7746f1">
+
+
+<table border=0 bgcolor="white">
+<tr><td>
+    <table border=0 width="100%">
+
+    <tr bgcolor="#cccccc"><td align="center">Import Domains via AXFR</td></tr>
+    </table>
+
+    <table border=0 width="100%">
+    <tr bgcolor="#eeeeee">
+        <td>Hostname or IP address:</td>
+        <td><input type="text" name="hostname" value=""></td>
+    </tr>
+
+    <tr valign="top" bgcolor="#eeeeee">
+        <td>List of Domains:<br>(one per line)</td>
+        <td><textarea name="domains" rows=10></textarea></td>
+    </tr>
+    </table>
+</td></tr>
+</table>
+    Rewrite SOA to default value?<input type="checkbox" name="default_soa">
+
+    <br>Rewrite NS servers to defalt values?<input type="checkbox" name="default_ns">
+    <br><br><input type="submit" value="get domains">
+</form>    
+</tr>
+</table>
+</center>
+execution time: 0.06 seconds
+</body>
+</html>
Index: /trunk/templates/conf_del.tmpl
===================================================================
--- /trunk/templates/conf_del.tmpl	(revision 3)
+++ /trunk/templates/conf_del.tmpl	(revision 3)
@@ -0,0 +1,9 @@
+<table class="wholepage"><tr>
+<TMPL_INCLUDE NAME="menu.tmpl">
+
+<td align="center">
+<h3>Are you really sure you want to delete <TMPL_VAR NAME=ftype> record <TMPL_VAR NAME=recval>?</h3>
+<a href="dns.cgi?sid=<TMPL_VAR NAME=sid>&page=delrec&del=cancel&id=<TMPL_VAR NAME=id>&defrec=<TMPL_VAR NAME=defrec>">cancel</a> &nbsp; | &nbsp; <a href="dns.cgi?sid=<TMPL_VAR NAME=sid>&page=delrec&del=ok&id=<TMPL_VAR NAME=id>&defrec=<TMPL_VAR NAME=defrec>">confirm</a>
+</td>
+
+</tr></table>
Index: /trunk/templates/defrecs.tmpl
===================================================================
--- /trunk/templates/defrecs.tmpl	(revision 3)
+++ /trunk/templates/defrecs.tmpl	(revision 3)
@@ -0,0 +1,1310 @@
+<!-- <TMPL_VAR NAME=sid> -->
+<table class="wholepage"><tr>
+<TMPL_INCLUDE NAME="menu.tmpl">
+
+<td align="center">
+default records
+<div id=tableholder width=100%>
+
+<TMPL_INCLUDE NAME=soadata.tmpl>
+
+<table border=0 width="100%">
+<tr class="darkrowheader">
+	<td colspan>
+	Listing <TMPL_VAR NAME=nfirst> - <TMPL_VAR NAME=nlast> of <TMPL_VAR NAME=ntot> entries in <TMPL_VAR NAME=domain>
+	</td>
+	<td align=center>
+	<TMPL_INCLUDE NAME="fpnla.tmpl">
+	</td>
+	<td>
+		<form action="dns.cgi">
+		<input type=hidden name=sid value="<TMPL_VAR NAME=sid>">
+		<input name=search>
+		<input type=submit value="Filter">
+		</form>
+	</td>
+</tr>
+<tr class="darkrowheader">
+	<td>Records</td>
+	<td><a href="dns.cgi?sid=&page=addrec">Add record</a></td>
+	<td><a href="dns.cgi?sid=&page=showlog">View log</a></td>
+</tr>
+
+</table>
+
+<table width="100%">
+<tr><td>Name</td><td>Type</td><td>Address</td><td>Distance</td><td>Weight</td><td>Port</td><td>TTL</td><td>Delete</td></tr>
+<TMPL_LOOP NAME=reclist>
+<tr><td><TMPL_VAR NAME=name></td>
+<td><TMPL_VAR NAME=type></td>
+<td><TMPL_VAR NAME=addr></td>
+<td><TMPL_VAR NAME=dist></td>
+<td><TMPL_VAR NAME=weight></td>
+<td><TMPL_VAR NAME=port></td>
+<td><TMPL_VAR NAME=ttl></td>
+<td><img src="trash2.png"></td>
+</TMPL_LOOP>
+</table>
+
+</td></tr></table>
+
+<hr><hr>
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+    <HEAD>
+        <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
+        <TITLE>VegaDNS Administration</TITLE>
+        <link rel="STYLESHEET" type="text/css" href="templates/core-style.css">
+        <!--[if gte IE 5.5000]>
+        <script type="text/javascript" src="templates/pngfix.js"></script>
+        <![endif]-->
+            </HEAD>
+<body onload="focus()">
+<table border="0" height="100%" width="100%">
+
+    <tr valign="top">
+
+        <td class="border" width="20%" align="left">
+        &nbsp;<b>test@test.com</b> logged in<br>
+    &nbsp<a href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=end">log out</a>
+    <hr>
+    <table border="0" cellpadding="0" cellspacing="0">
+
+<tr><td><table cellpadding="0" cellspacing="0" border="0"><tr><td><img border="0" alt="home" src="images/home.png"></td><td><a href="/index.php?state=logged_in&mode=groups&group=1">VegaDNS</a></td></tr></table>
+<table cellpadding="0" cellspacing="0" border="0"><tr><td><img border="0" src="images/dirtree_tee.gif"><td><img border="0" src="images/newfolder.png"></td><td class="white"><a href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&group=1">Domains</a></td></tr></table>
+<table cellpadding="0" cellspacing="0" border="0"><tr><td><img border="0" src="images/dirtree_tee.gif"></td><td><img border="0" src="images/user_folder.png"></td><td><a href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&group=1">Users</a></td></tr></table>
+<table cellpadding="0" cellspacing="0" border="0"><tr><td><img border="0" src="images/dirtree_tee.gif"></td><td><img border="0" src="images/newfolder.png"></td><td><a href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=log&group=1">Log</a></td></tr></table>
+<!-- COUNTER: 1 COUNT: 2 -->
+<table cellpadding="0" cellspacing="0" border="0"><tr><td><a href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&expanded=2&group=1&mode=records&domain=wh-int"><img border="0" alt="home" src="images/dirtree_plus_tee.gif"><td><a href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=groups&group=2"><img border="0" alt="home" src="images/group.gif"></a></td><td><a href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=groups&group=2">domain owners</a></td></tr></table>
+<!-- COUNTER: 2 COUNT: 2 -->
+<table cellpadding="0" cellspacing="0" border="0"><tr><td><a href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&expanded=3&group=1&mode=records&domain=wh-int"><img border="0" alt="home" src="images/dirtree_plus_elbow.gif"><td><a href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=groups&group=3"><img border="0" alt="home" src="images/group.gif"></a></td><td><a href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=groups&group=3">bulk hosters</a></td></tr></table>
+</td></tr>
+</table>
+
+
+    
+    <hr>
+        <a href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=default_records">Default Records</a><br>
+        <a href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&domain_mode=import_domains">AXFR Import</a><br>
+        <a href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=dnsquery">DNS Query</a><br>
+        <a href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=whoisquery">Whois Query</a>    </td>
+
+    <td align="center">
+    <img src="images/vegadns-small.png" alt="VegaDNS"><p>
+        <br></b><br>
+    <p><b>Edit Domain</b><br>
+<table border=0 width="90%" bgcolor="white">
+<tr><td>
+
+<table border=0 width="100%">
+<tr bgcolor="#cccccc">
+  <td>Properties (SOA)</td>
+
+  <td align="right" width="5%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_soa&domain=wh-int">edit</a></td>
+</table>
+
+
+<table border=0 width="100%">
+  <tr bgcolor="#eeeeee">
+      <td width="10%">Domain:</td>
+      <td width="40%" nowrap>wh-int</td>
+      <td width="10%" nowrap>Refresh:</td>
+
+      <td width="40%" nowrap>16384</td>
+  </tr>
+  <tr bgcolor="#eeeeee">
+      <td width="10%" nowrap>Contact Address:</td>
+      <td width="40%" nowrap>hostmaster.wh-int</td>
+      <td width="10%" nowrap>Retry:</td>
+      <td width="40%" nowrap>2048</td>
+
+  </tr>
+  <tr bgcolor="#eeeeee">
+      <td width="10%" nowrap>Primary Nameserver:&nbsp</td>
+      <td width="40%" nowrap>ns1.myserver.com</td>
+      <td width="10%" nowrap>Expiration:</td>
+      <td width="40%" nowrap>1048576</td>
+  </tr>
+
+  <tr bgcolor="#eeeeee">
+      <td width="10%" nowrap>Serial Number:</td>
+      <td width="40%" nowrap>Default</td>
+      <td width="10%" nowrap>Minimum TTL:&nbsp</td>
+      <td width="40%" nowrap>2560</td>
+  </tr>
+  <tr bgcolor="#eeeeee">
+
+      <td width="10%" nowrap>Default TTL:</td>
+      <td width="40%" nowrap>86400</td>
+      <td width="10%" nowrap>&nbsp</td>
+      <td width="40%" nowrap>&nbsp</td>
+  </tr>
+</table>
+<br>
+
+<table border=0 width="100%">
+<tr bgcolor="#cccccc">
+
+    <td colspan=6 align="center">
+            <table width="100%" border=0 cellspacing=0 cellpadding=3 bgcolor="#cccccc">
+                <tr valign="top" bgcolor="#cccccc">
+                <td align="left" colspan="2">
+
+                Listing 1 - 75 of 102 Records </td>
+                <td align="center" colspan="2">
+                previous                 <a 
+href=/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&domain=wh-int&mode=records&page=2&sortfield=type&sortway=asc&search=>next</a>
+
+                                first                 <a 
+href=/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&domain=wh-int&mode=records&page=2&sortfield=type&sortway=asc&search=>last</a>
+                                <a 
+href=/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&domain=wh-int&page=all&sortfield=type&sortway=asc&search=>all</a>
+                </td>
+                <td align="right" colspan="2">
+                    <form action="/index.php">
+                    <input type="hidden" name="state" value="logged_in">
+                    <input type="hidden" name="mode" value="records">
+
+                    <input type="hidden" name="VDNSSessid" value="65d033c4ff10d2e73c9ca1050c7746f1">
+                    <input type="hidden" name="domain" value="wh-int">
+                    <input type="text" name="search" value="">
+                    <input type="submit" value="search"></form>
+
+                </td>
+                </tr>
+            </table>
+    </td>
+
+</tr>
+<tr bgcolor="#cccccc">
+  <td>Records</td>
+  <td align="right" width="5%" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=add_record&domain=wh-int">add 
+record</a></td>
+  <td align="right" width="5%" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=log&domain_id=4">view 
+log</a></td>
+  </tr>
+</table>
+
+<table border=0 width="100%">
+  <tr bgcolor="#cccccc">
+
+      <td nowrap><a 
+href='/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&domain=wh-int&page=1&sortway=asc&sortfield=host'>Name</a></td>
+      <td width="5%" nowrap><a 
+href='/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&domain=wh-int&page=1&sortway=desc&sortfield=type'>Type</a>&nbsp;<img 
+border=0 alt='asc' src=images/asc.png></td>
+      <td nowrap><a 
+href='/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&domain=wh-int&page=1&sortway=asc&sortfield=val'>Address</a></td>
+      <td nowrap width="10%"><a 
+href='/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&domain=wh-int&page=1&sortway=asc&sortfield=distance'>Distance</a></td>
+      <td width="10%"><a 
+href='/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&domain=wh-int&page=1&sortway=asc&sortfield=weight'>Weight</a></td>
+      <td width="5%"><a 
+href='/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&domain=wh-int&page=1&sortway=asc&sortfield=port'>Port</a></td>
+
+      <td nowrap width="5%"><a 
+href='/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&domain=wh-int&page=1&sortway=asc&sortfield=ttl'>TTL</a></td></td>
+      <td width="5%">Delete</td>
+  </tr>
+
+    <tr bgcolor="#ffffff">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=18&domain=wh-int">billing2.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+
+        <td nowrap>192.168.99.62</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=18&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+
+    </tr>
+    <tr bgcolor="#dcdcdc">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=43&domain=wh-int">hplj4.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+        <td nowrap>192.168.99.119</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=43&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+    </tr>
+    <tr bgcolor="#ffffff">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=48&domain=wh-int">ictest.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+
+        <td nowrap>192.168.99.30</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=48&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+
+    </tr>
+    <tr bgcolor="#dcdcdc">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=51&domain=wh-int">ifilter.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+        <td nowrap>192.168.99.19</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=51&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+    </tr>
+    <tr bgcolor="#ffffff">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=52&domain=wh-int">inewzeus.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+
+        <td nowrap>192.168.99.6</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=52&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+
+    </tr>
+    <tr bgcolor="#dcdcdc">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=53&domain=wh-int">int-switch.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+        <td nowrap>192.168.99.2</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=53&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+    </tr>
+    <tr bgcolor="#ffffff">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=59&domain=wh-int">izeus.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+
+        <td nowrap>192.168.99.8</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=59&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+
+    </tr>
+    <tr bgcolor="#dcdcdc">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=60&domain=wh-int">linksys.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+        <td nowrap>192.168.99.3</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=60&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+    </tr>
+    <tr bgcolor="#ffffff">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=63&domain=wh-int">marc-laptop.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+
+        <td nowrap>192.168.99.124</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=63&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+
+    </tr>
+    <tr bgcolor="#dcdcdc">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=62&domain=wh-int">marc.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+        <td nowrap>192.168.99.123</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=62&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+    </tr>
+    <tr bgcolor="#ffffff">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=67&domain=wh-int">pem-billing.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+
+        <td nowrap>192.168.99.121</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=67&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+
+    </tr>
+    <tr bgcolor="#dcdcdc">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=68&domain=wh-int">pem-goatfarm-int.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+        <td nowrap>192.168.99.1</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=68&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+    </tr>
+    <tr bgcolor="#ffffff">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=71&domain=wh-int">snafu.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+
+        <td nowrap>192.168.99.10</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=71&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+
+    </tr>
+    <tr bgcolor="#dcdcdc">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=44&domain=wh-int">store.ic489.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+        <td nowrap>192.168.99.30</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=44&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+    </tr>
+    <tr bgcolor="#ffffff">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=45&domain=wh-int">store.ic520.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+
+        <td nowrap>192.168.99.30</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=45&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+
+    </tr>
+    <tr bgcolor="#dcdcdc">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=46&domain=wh-int">store.ic540.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+        <td nowrap>192.168.99.30</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=46&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+    </tr>
+    <tr bgcolor="#ffffff">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=72&domain=wh-int">support.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+
+        <td nowrap>192.168.99.120</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=72&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+
+    </tr>
+    <tr bgcolor="#dcdcdc">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=75&domain=wh-int">test0.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+        <td nowrap>192.168.99.20</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=75&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+    </tr>
+    <tr bgcolor="#ffffff">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=76&domain=wh-int">test1.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+
+        <td nowrap>192.168.99.21</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=76&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+
+    </tr>
+    <tr bgcolor="#dcdcdc">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=77&domain=wh-int">test2.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+        <td nowrap>192.168.99.22</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=77&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+    </tr>
+    <tr bgcolor="#ffffff">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=78&domain=wh-int">test3.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+
+        <td nowrap>192.168.99.23</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=78&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+
+    </tr>
+    <tr bgcolor="#dcdcdc">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=79&domain=wh-int">test4.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+        <td nowrap>192.168.99.24</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=79&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+    </tr>
+    <tr bgcolor="#ffffff">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=80&domain=wh-int">test5.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+
+        <td nowrap>192.168.99.25</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=80&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+
+    </tr>
+    <tr bgcolor="#dcdcdc">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=81&domain=wh-int">test6.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+        <td nowrap>192.168.99.26</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=81&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+    </tr>
+    <tr bgcolor="#ffffff">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=82&domain=wh-int">test7.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+
+        <td nowrap>192.168.99.27</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=82&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+
+    </tr>
+    <tr bgcolor="#dcdcdc">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=83&domain=wh-int">test8.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+        <td nowrap>192.168.99.28</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=83&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+    </tr>
+    <tr bgcolor="#ffffff">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=84&domain=wh-int">test9.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+
+        <td nowrap>192.168.99.29</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=84&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+
+    </tr>
+    <tr bgcolor="#dcdcdc">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=86&domain=wh-int">turboprop.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+        <td nowrap>192.168.99.118</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=86&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+    </tr>
+    <tr bgcolor="#ffffff">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=89&domain=wh-int">vm-99-80.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+
+        <td nowrap>192.168.99.80</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=89&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+
+    </tr>
+    <tr bgcolor="#dcdcdc">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=90&domain=wh-int">vm-99-81.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+        <td nowrap>192.168.99.81</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=90&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+    </tr>
+    <tr bgcolor="#ffffff">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=91&domain=wh-int">vm-99-82.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+
+        <td nowrap>192.168.99.82</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=91&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+
+    </tr>
+    <tr bgcolor="#dcdcdc">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=92&domain=wh-int">vm-99-83.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+        <td nowrap>192.168.99.83</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=92&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+    </tr>
+    <tr bgcolor="#ffffff">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=93&domain=wh-int">vm-99-84.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+
+        <td nowrap>192.168.99.84</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=93&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+
+    </tr>
+    <tr bgcolor="#dcdcdc">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=94&domain=wh-int">vm-99-85.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+        <td nowrap>192.168.99.85</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=94&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+    </tr>
+    <tr bgcolor="#ffffff">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=95&domain=wh-int">vm-99-86.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+
+        <td nowrap>192.168.99.86</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=95&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+
+    </tr>
+    <tr bgcolor="#dcdcdc">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=96&domain=wh-int">vm-99-87.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+        <td nowrap>192.168.99.87</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=96&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+    </tr>
+    <tr bgcolor="#ffffff">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=97&domain=wh-int">vm-99-88.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+
+        <td nowrap>192.168.99.88</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=97&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+
+    </tr>
+    <tr bgcolor="#dcdcdc">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=98&domain=wh-int">vm-99-89.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+        <td nowrap>192.168.99.89</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=98&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+    </tr>
+    <tr bgcolor="#ffffff">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=99&domain=wh-int">vm-99-90.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+
+        <td nowrap>192.168.99.90</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=99&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+
+    </tr>
+    <tr bgcolor="#dcdcdc">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=100&domain=wh-int">vm-99-91.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+        <td nowrap>192.168.99.91</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=100&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+    </tr>
+    <tr bgcolor="#ffffff">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=101&domain=wh-int">vm-99-92.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+
+        <td nowrap>192.168.99.92</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=101&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+
+    </tr>
+    <tr bgcolor="#dcdcdc">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=102&domain=wh-int">vm-99-93.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+        <td nowrap>192.168.99.93</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=102&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+    </tr>
+    <tr bgcolor="#ffffff">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=103&domain=wh-int">vm-99-94.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+
+        <td nowrap>192.168.99.94</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=103&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+
+    </tr>
+    <tr bgcolor="#dcdcdc">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=104&domain=wh-int">vm-99-95.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+        <td nowrap>192.168.99.95</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=104&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+    </tr>
+    <tr bgcolor="#ffffff">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=105&domain=wh-int">vm-99-96.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+
+        <td nowrap>192.168.99.96</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=105&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+
+    </tr>
+    <tr bgcolor="#dcdcdc">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=106&domain=wh-int">vm-99-97.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+        <td nowrap>192.168.99.97</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=106&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+    </tr>
+    <tr bgcolor="#ffffff">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=107&domain=wh-int">vm-99-98.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+
+        <td nowrap>192.168.99.98</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=107&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+
+    </tr>
+    <tr bgcolor="#dcdcdc">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=108&domain=wh-int">vm-99-99.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+        <td nowrap>192.168.99.99</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=108&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+    </tr>
+    <tr bgcolor="#ffffff">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=116&domain=wh-int">watcher.wh-int</a></td>
+        <td width="5%" nowrap>A</td>
+
+        <td nowrap>192.168.99.122</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=116&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+
+    </tr>
+    <tr bgcolor="#dcdcdc">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=17&domain=wh-int">authtest.wh-int</a></td>
+        <td width="5%" nowrap>CNAME</td>
+        <td nowrap>test0.wh-int.</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=17&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+    </tr>
+    <tr bgcolor="#ffffff">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=19&domain=wh-int">dapper.wh-int</a></td>
+        <td width="5%" nowrap>CNAME</td>
+
+        <td nowrap>test2.wh-int.</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=19&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+
+    </tr>
+    <tr bgcolor="#dcdcdc">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=20&domain=wh-int">etch.wh-int</a></td>
+        <td width="5%" nowrap>CNAME</td>
+        <td nowrap>test6.wh-int.</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=20&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+    </tr>
+    <tr bgcolor="#ffffff">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=21&domain=wh-int">host1.wh-int</a></td>
+        <td width="5%" nowrap>CNAME</td>
+
+        <td nowrap>test3.wh-int.</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=21&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+
+    </tr>
+    <tr bgcolor="#dcdcdc">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=23&domain=wh-int">host10.wh-int</a></td>
+        <td width="5%" nowrap>CNAME</td>
+        <td nowrap>turboprop.wh-int.</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=23&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+    </tr>
+    <tr bgcolor="#ffffff">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=25&domain=wh-int">host2.wh-int</a></td>
+        <td width="5%" nowrap>CNAME</td>
+
+        <td nowrap>test3.wh-int.</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=25&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+
+    </tr>
+    <tr bgcolor="#dcdcdc">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=27&domain=wh-int">host3.wh-int</a></td>
+        <td width="5%" nowrap>CNAME</td>
+        <td nowrap>test2.wh-int.</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=27&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+    </tr>
+    <tr bgcolor="#ffffff">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=29&domain=wh-int">host4.wh-int</a></td>
+        <td width="5%" nowrap>CNAME</td>
+
+        <td nowrap>test2.wh-int.</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=29&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+
+    </tr>
+    <tr bgcolor="#dcdcdc">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=31&domain=wh-int">host5.wh-int</a></td>
+        <td width="5%" nowrap>CNAME</td>
+        <td nowrap>vm-99-82.wh-int.</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=31&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+    </tr>
+    <tr bgcolor="#ffffff">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=33&domain=wh-int">host6.wh-int</a></td>
+        <td width="5%" nowrap>CNAME</td>
+
+        <td nowrap>vm-99-86.wh-int.</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=33&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+
+    </tr>
+    <tr bgcolor="#dcdcdc">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=35&domain=wh-int">host7.wh-int</a></td>
+        <td width="5%" nowrap>CNAME</td>
+        <td nowrap>vm-99-83.wh-int.</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=35&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+    </tr>
+    <tr bgcolor="#ffffff">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=37&domain=wh-int">host8.wh-int</a></td>
+        <td width="5%" nowrap>CNAME</td>
+
+        <td nowrap>vm-99-83.wh-int.</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=37&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+
+    </tr>
+    <tr bgcolor="#dcdcdc">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=39&domain=wh-int">host9.wh-int</a></td>
+        <td width="5%" nowrap>CNAME</td>
+        <td nowrap>turboprop.wh-int.</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=39&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+    </tr>
+    <tr bgcolor="#ffffff">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=41&domain=wh-int">hosting.wh-int</a></td>
+        <td width="5%" nowrap>CNAME</td>
+
+        <td nowrap>turboprop.wh-int.</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=41&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+
+    </tr>
+    <tr bgcolor="#dcdcdc">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=42&domain=wh-int">hostingtools.wh-int</a></td>
+        <td width="5%" nowrap>CNAME</td>
+        <td nowrap>turboprop.wh-int.</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=42&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+    </tr>
+    <tr bgcolor="#ffffff">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=47&domain=wh-int">icfoundation.wh-int</a></td>
+        <td width="5%" nowrap>CNAME</td>
+
+        <td nowrap>vm-99-81.wh-int.</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=47&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+
+    </tr>
+    <tr bgcolor="#dcdcdc">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=49&domain=wh-int">ictest1.wh-int</a></td>
+        <td width="5%" nowrap>CNAME</td>
+        <td nowrap>vm-99-81.wh-int.</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=49&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+    </tr>
+    <tr bgcolor="#ffffff">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=50&domain=wh-int">ictest2.wh-int</a></td>
+        <td width="5%" nowrap>CNAME</td>
+
+        <td nowrap>vm-99-81.wh-int.</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=50&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+
+    </tr>
+    <tr bgcolor="#dcdcdc">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=54&domain=wh-int">ipdb-db.wh-int</a></td>
+        <td width="5%" nowrap>CNAME</td>
+        <td nowrap>turboprop.wh-int.</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=54&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+    </tr>
+    <tr bgcolor="#ffffff">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=55&domain=wh-int">ipdb-devel.wh-int</a></td>
+        <td width="5%" nowrap>CNAME</td>
+
+        <td nowrap>turboprop.wh-int.</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=55&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+
+    </tr>
+    <tr bgcolor="#dcdcdc">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=56&domain=wh-int">ipdb-merge.wh-int</a></td>
+        <td width="5%" nowrap>CNAME</td>
+        <td nowrap>turboprop.wh-int.</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=56&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+    </tr>
+    <tr bgcolor="#ffffff">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=57&domain=wh-int">ipdb-rdns.wh-int</a></td>
+        <td width="5%" nowrap>CNAME</td>
+
+        <td nowrap>turboprop.wh-int.</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=57&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+
+    </tr>
+    <tr bgcolor="#dcdcdc">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=58&domain=wh-int">ipdb-stable.wh-int</a></td>
+        <td width="5%" nowrap>CNAME</td>
+        <td nowrap>turboprop.wh-int.</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=58&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+    </tr>
+    <tr bgcolor="#ffffff">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=61&domain=wh-int">logger.wh-int</a></td>
+        <td width="5%" nowrap>CNAME</td>
+
+        <td nowrap>turboprop.wh-int.</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=61&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+
+    </tr>
+    <tr bgcolor="#dcdcdc">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=64&domain=wh-int">osc1.wh-int</a></td>
+        <td width="5%" nowrap>CNAME</td>
+        <td nowrap>test3.wh-int.</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=64&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+    </tr>
+    <tr bgcolor="#ffffff">
+        <td nowrap width="20%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=edit_record&record_id=65&domain=wh-int">osc2.wh-int</a></td>
+        <td width="5%" nowrap>CNAME</td>
+
+        <td nowrap>test3.wh-int.</td>
+        <td width="10%" nowrap>n/a</td>
+     	<td width="10%" nowrap>n/a</td>
+        <td width="5%" nowrap>n/a</td>
+        <td width="5%" nowrap>86400</td>
+        <td width="5%" align="center" nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&record_mode=delete&record_id=65&domain=wh-int"><img 
+border=0 src="images/trash.png" alt="Trash"></a></td>
+
+    </tr>
+
+</table>
+</td></tr>
+</table>    
+</tr>
+</table>
+</center>
+execution time: 0.07 seconds
+</body>
+</html>
Index: /trunk/templates/delrec.tmpl
===================================================================
--- /trunk/templates/delrec.tmpl	(revision 3)
+++ /trunk/templates/delrec.tmpl	(revision 3)
@@ -0,0 +1,19 @@
+<TMPL_IF del_getconf>
+<table class="wholepage"><tr>
+<TMPL_INCLUDE NAME="menu.tmpl">
+
+<td align="center">
+<h3>Are you really sure you want to delete record:<br>
+<TMPL_VAR NAME=host> <TMPL_VAR NAME=ftype> <TMPL_VAR NAME=recval></h3>
+<a href="dns.cgi?sid=<TMPL_VAR NAME=sid>&page=delrec&del=cancel&id=<TMPL_VAR NAME=id>&defrec=<TMPL_VAR NAME=defrec>">cancel</a> &nbsp; | &nbsp; <a href="dns.cgi?sid=<TMPL_VAR NAME=sid>&page=delrec&del=ok&id=<TMPL_VAR NAME=id>&defrec=<TMPL_VAR NAME=defrec>">confirm</a>
+</td></tr></table>
+
+<TMPL_ELSE>
+<TMPL_IF del_failed>
+<!-- Need to find failure mode to cause/test this -->
+<h1>FOO!</h1>
+<TMPL_VAR NAME=errmsg>
+<TMPL_ELSE>
+<TMPL_INCLUDE NAME="reclist.tmpl">
+</TMPL_IF>
+</TMPL_IF>
Index: /trunk/templates/dns.css
===================================================================
--- /trunk/templates/dns.css	(revision 3)
+++ /trunk/templates/dns.css	(revision 3)
@@ -0,0 +1,133 @@
+#debug {
+	background-color: #990066;
+}
+
+/* General settings */
+body {
+	font-family: Verdana, Helvetica, sans-serif;
+	font-size: 12px;
+	margin-left: 0px;
+	margin-right: 0px;
+/*	background-color: #deadDD;*/
+/*	background-color: #FFFF00;*/
+}
+hr {
+	background-color: #666;
+	height: 1px;
+	border: 0;
+}
+
+table.login {
+        text-align: center;
+        border: thin solid #000000;
+        background-color: #CCCCFF;
+}
+table.list {
+        background-color: #F0F0F0;
+}
+table.wholepage {
+	width: 100%;
+}
+tr.row0 {
+        background-color: #FFFFFF;
+}
+tr.row1 {
+        background-color: #DDDDDD;
+}
+tr.tableheader {
+        background-color: #CCCCCC;
+	padding: 3px;
+}
+tr.darkrowheader {
+        background-color: #CCCCCC;
+	padding: 3px;
+}
+tr.datalinelight {
+        background-color: #F0F0F0;
+}
+td.tblsubmit {
+        text-align: center;
+}
+td.inputlabel {
+        text-align: right;
+	padding: 3px;
+}
+td.data {
+	padding: 3px;
+}
+td.title {
+        text-align: center;
+}
+td.menu {
+	width: 200px;
+	white-space: nowrap;
+	border: thin solid #000000;
+	background-color: #ffccee;
+	vertical-align: top;
+}
+td.defaults {
+	background-color: #DDDDDD;
+}
+.meat {
+	align: center;
+	width: 100%;
+}
+input {
+	font-size: 10px;
+}
+
+/* general classes */
+.errmsg {
+	font-weight: bold;
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+	font-size:100%;
+	color: red;
+	background-color: #404040;
+	text-align: center;
+	border: thin solid #FFFFFF;
+	padding: 5px;
+	width: 70%;
+}
+.right {
+	right: 3px;
+}
+
+/* Specific common divs */
+#header {
+	border-bottom: thin solid #000000;
+	clear: both;
+	float: left;
+	width: 100%;
+}
+#footer {
+	border-top: thin solid #000000;
+	clear: both;
+}
+#contact {
+	font-size: 10px;
+	position: absolute;
+	right: 10px;
+	text-align: right;
+}
+
+#main {
+	position: relative;
+	float: right;
+	width: 100%;
+}
+#login {
+	margin-top: 50px;
+	margin-bottom: 50px;
+	padding: 3px;
+	border: thin solid #000000;
+}
+#tableholder {
+	padding: 2px;
+	background: #FFFFFF;
+	width: 70%;
+}
+#menu {
+	border-right: thin solid #000000;
+	margin-right: 5px;
+	padding: 3px;
+}
Index: /trunk/templates/dns.tmpl
===================================================================
--- /trunk/templates/dns.tmpl	(revision 3)
+++ /trunk/templates/dns.tmpl	(revision 3)
@@ -0,0 +1,119 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+    <HEAD>
+        <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
+        <TITLE>VegaDNS Administration</TITLE>
+        <link rel="STYLESHEET" type="text/css" href="templates/core-style.css">
+        <!--[if gte IE 5.5000]>
+        <script type="text/javascript" src="templates/pngfix.js"></script>
+        <![endif]-->
+            </HEAD>
+<body onload="focus()">
+<table border="0" height="100%" width="100%">
+
+    <tr valign="top">
+
+        <td class="border" width="20%" align="left">
+        &nbsp;<b>test@test.com</b> logged in<br>
+    &nbsp<a href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=end">log out</a>
+    <hr>
+    <table border="0" cellpadding="0" cellspacing="0">
+
+<tr><td><table cellpadding="0" cellspacing="0" border="0"><tr><td><img border="0" alt="home" 
+src="images/home.png"></td><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=groups&group=1">VegaDNS</a></td></tr></table>
+<table cellpadding="0" cellspacing="0" border="0"><tr><td><img border="0" src="images/dirtree_tee.gif"><td><img 
+border="0" src="images/newfolder.png"></td><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&group=1">Domains</a></td></tr></table>
+<table cellpadding="0" cellspacing="0" border="0"><tr><td><img border="0" 
+src="images/dirtree_tee.gif"></td><td><img border="0" src="images/user_folder.png"></td><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&group=1">Users</a></td></tr></table>
+<table cellpadding="0" cellspacing="0" border="0"><tr><td><img border="0" 
+src="images/dirtree_tee.gif"></td><td><img border="0" src="images/newfolder.png"></td><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=log&group=1">Log</a></td></tr></table>
+<!-- COUNTER: 1 COUNT: 2 -->
+<table cellpadding="0" cellspacing="0" border="0"><tr><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&expanded=2&group=1&mode=dnsquery"><img 
+border="0" alt="home" src="images/dirtree_plus_tee.gif"><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=groups&group=2"><img border="0" 
+alt="home" src="images/group.gif"></a></td><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=groups&group=2">domain 
+owners</a></td></tr></table>
+<!-- COUNTER: 2 COUNT: 2 -->
+<table cellpadding="0" cellspacing="0" border="0"><tr><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&expanded=3&group=1&mode=dnsquery"><img 
+border="0" alt="home" src="images/dirtree_plus_elbow.gif"><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=groups&group=3"><img border="0" 
+alt="home" src="images/group.gif"></a></td><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=groups&group=3">bulk 
+hosters</a></td></tr></table>
+</td></tr>
+</table>
+
+
+    
+    <hr>
+        <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=default_records">Default 
+Records</a><br>
+        <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&domain_mode=import_domains">AXFR 
+Import</a><br>
+        <a href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=dnsquery">DNS 
+Query</a><br>
+        <a href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=whoisquery">Whois 
+Query</a>    </td>
+
+    <td align="center">
+    <img src="images/vegadns-small.png" alt="VegaDNS"><p>
+        <br></b><br>
+    <p><form action="/index.php">
+<input type="hidden" name="state" value="logged_in">
+<input type="hidden" name="mode" value="dnsquery">
+<input type="hidden" name="query_mode" value="do_query">
+<input type="hidden" name="VDNSSessid" value="65d033c4ff10d2e73c9ca1050c7746f1">
+
+<table border="0">
+<tr bgcolor="#cccccc">
+  <td colspan="2" align="middle">DNS Query</td>
+
+</tr>
+<tr bgcolor="#cccccc">
+  <td>Name</td>
+  <td><input type="text" name="name" value=""</td>
+</tr>
+<tr bgcolor="#cccccc">
+  <td>Query Type:</td>
+  <td><select name="type">
+  <option label="A" value="A">A</option>
+
+<option label="NS" value="NS">NS</option>
+<option label="MX" value="MX">MX</option>
+<option label="PTR" value="PTR">PTR</option>
+<option label="TXT" value="TXT">TXT</option>
+<option label="CNAME" value="CNAME">CNAME</option>
+<option label="SOA" value="SOA">SOA</option>
+
+  </td>
+</tr>
+<tr bgcolor="#cccccc">
+
+  <td>Recursive</td>
+  <td><input type="checkbox" name="recursive"></td>
+</tr>
+<tr bgcolor="#cccccc">
+  <td>Host (only for non-recursive)</td>
+  <td><input type="text" name="host" value=""></td>
+</tr>
+<tr bgcolor="#cccccc">
+  <td colspan="2" align="right"><input type="submit" value="query"></td>
+</tr>
+
+</table>
+</form>    
+</tr>
+</table>
+</center>
+execution time: 0.08 seconds
+</body>
+</html>
Index: /trunk/templates/domlist.tmpl
===================================================================
--- /trunk/templates/domlist.tmpl	(revision 3)
+++ /trunk/templates/domlist.tmpl	(revision 3)
@@ -0,0 +1,53 @@
+<!-- <TMPL_VAR NAME=sid> -->
+<table class="wholepage"><tr>
+<TMPL_INCLUDE NAME="menu.tmpl">
+
+<td align="center">
+<table width="98%">
+<tr><td colspan=3 align=center>Domain list</td></tr>
+<tr><td>Listing <TMPL_VAR NAME=nstart> - <TMPL_VAR NAME=npglast> of <TMPL_VAR NAME=ndomains> Domains</td>
+<td>
+<TMPL_IF navfirst><a href="dns.cgi?sid=<TMPL_VAR NAME=sid>&page=domlist&offset=0"><img src="images/frev.png" border=0>first</a><TMPL_ELSE><img src="images/frev.png" border=0>first</TMPL_IF>&nbsp;
+<TMPL_IF navprev><a href="dns.cgi?sid=<TMPL_VAR NAME=sid>&page=domlist&offset=<TMPL_VAR NAME=prevoffs>"><img src="images/rev.png" border=0>previous</a><TMPL_ELSE><img src="images/rev.png" border=0>previous</TMPL_IF>&nbsp;
+<TMPL_IF navnext><a href="dns.cgi?sid=<TMPL_VAR NAME=sid>&page=domlist&offset=<TMPL_VAR NAME=nextoffs>">next<img src="images/fwd.png" border=0></a><TMPL_ELSE>next<img src="images/fwd.png" border=0></TMPL_IF>&nbsp;
+<TMPL_IF navlast><a href="dns.cgi?sid=<TMPL_VAR NAME=sid>&page=domlist&offset=<TMPL_VAR NAME=lastoffs>">last<img src="images/ffwd.png" border=0></a><TMPL_ELSE>last<img src="images/ffwd.png" border=0></TMPL_IF>&nbsp;
+<TMPL_IF navall><a href="dns.cgi?sid=<TMPL_VAR NAME=sid>&page=domlist&offset=all">all</a><TMPL_ELSE>all</TMPL_IF>
+</td><td align=right>insert search box here</td></tr>
+
+<tr><td colspan=3 align=center>insert letter search here</td></tr>
+
+<tr><td colspan=3 align=right><a href="dns.cgi?sid=<TMPL_VAR NAME=sid>&page=newdomain">New Domain</a></td></tr>
+</table>
+
+<table border=0 cellspacing="5" cellpadding="3">
+<tr>
+<TMPL_IF NAME=foobarbaz>
+<!-- This block to be un-TMPL_IF'ed once we care about sort order - by default, we sort by domain, ascending -->
+	<td class="underline" nowrap><a href="dns.cgi?sid=<TMPL_VAR NAME=sid>&page=domlist&offset=<TMPL_VAR NAME=offset>">Domain<TMPL_IF NAME=sortdomain>&nbsp;<img border=0 alt='<TMPL_VAR NAME=sortorder>' src="images/<TMPL_VAR NAME=sortorder>.png"></TMPL_IF></a></td>
+	<td class="underline" nowrap><a href="dns.cgi?sid=<TMPL_VAR NAME=sid>&page=domlist&offset=<TMPL_VAR NAME=offset>">Status<TMPL_IF NAME=sortstatus>&nbsp;<img border=0 alt='<TMPL_VAR NAME=sortorder>' src="images/<TMPL_VAR NAME=sortorder>.png"></TMPL_IF></a></td>
+	<td class="underline" align="center" nowrap><a href="dns.cgi?sid=<TMPL_VAR NAME=sid>&page=domlist&offset=<TMPL_VAR NAME=offset>">Group<TMPL_IF NAME=sortgroup>&nbsp;<img border=0 alt='<TMPL_VAR NAME=sortorder>' src="images/<TMPL_VAR NAME=sortorder>.png"></TMPL_IF></a></td>
+<TMPL_ELSE>
+	<td class="underline" nowrap>Domain</td>
+	<td class="underline" nowrap>Status</td>
+	<td class="underline" align="center" nowrap>Group</td>
+</TMPL_IF>
+	<td class="underline" align="center" nowrap>Change Status</td>
+	<td class="underline" width="1%">Delete</td>
+</tr>
+<TMPL_IF name=domtable>
+<TMPL_LOOP name=domtable>
+<tr class="row<TMPL_VAR name=bg>">
+	<td><a href="dns.cgi?sid=<TMPL_VAR NAME=sid>&page=reclist&id=<TMPL_VAR NAME=domainid>&defrec=n"><TMPL_VAR NAME=domain></a></td>
+	<td width="1%" nowrap><TMPL_VAR name=status></td>
+	<td width="1%" nowrap><TMPL_VAR name=group></td>
+	<td width="1%" nowrap align=center><a href="dns.cgi?sid=<TMPL_VAR NAME=sid>&page=domlist<TMPL_IF NAME=offset>&offset=<TMPL_VAR NAME=offset></TMPL_IF>&id=<TMPL_VAR NAME=domainid>&action=<TMPL_IF NAME=mkactive>domon<TMPL_ELSE>domoff</TMPL_IF>"><TMPL_IF NAME=mkactive>activate<TMPL_ELSE>deactivate</TMPL_IF></a></td>
+	<td width="1%" nowrap align=center><a href="dns.cgi?sid=<TMPL_VAR NAME=sid>&page=del&id=<TMPL_VAR NAME=domainid>&defrec=w"><img src="images/trash2.png" border=0></a></td>
+</tr>
+</TMPL_LOOP>
+<TMPL_ELSE>
+<tr><td colspan=5>No domains found</td></tr>
+</TMPL_IF>
+</table>
+
+</td>
+</table>
Index: /trunk/templates/editsoa.tmpl
===================================================================
--- /trunk/templates/editsoa.tmpl	(revision 3)
+++ /trunk/templates/editsoa.tmpl	(revision 3)
@@ -0,0 +1,70 @@
+<!-- <TMPL_VAR NAME=sid> -->
+<table class="wholepage"><tr>
+<TMPL_INCLUDE NAME="menu.tmpl">
+
+<td align="center">
+<TMPL_IF update_failed><div class="errmsg">Error updating SOA record: <TMPL_VAR NAME=msg></div></TMPL_IF>
+<div>edit SOA</div>
+<div id="tableholder">
+<table border=0 cellspacing=2 cellpadding=1 width="100%">
+<tr class="darkrowheader">
+	<td colspan=2 class="title"><TMPL_IF NAME=defrec>Edit default SOA record for group <TMPL_VAR NAME=group><TMPL_ELSE>Edit SOA record for <TMPL_VAR NAME=domain></TMPL_IF></td>
+	<td class="title">Systemwide defaults:</td>
+</tr>
+
+<form action="dns.cgi" method=POST>
+<input type="hidden" name="sid" value="<TMPL_VAR NAME=sid>">
+<input type="hidden" name="recid" value="<TMPL_VAR NAME=recid>">
+<input type="hidden" name="page" value="updatesoa">
+<input type="hidden" name="domainid" value="<TMPL_VAR NAME=domainid>">
+
+<tr class="datalinelight">
+	<td class="inputlabel">Primary Name Server</td>
+	<td><input name=prins value="<TMPL_VAR NAME=prins>"></td>
+	<td class="data"><TMPL_VAR NAME=defns></td>
+</tr>
+<tr class="datalinelight">
+	<td class="inputlabel">Contact Address</td>
+	<td><input name=contact value="<TMPL_VAR NAME=contact>"></td>
+	<td class="data"><TMPL_VAR NAME=defcontact></td>
+</tr>
+<tr class="datalinelight">
+	<td class="inputlabel">SOA TTL</td>
+	<td><input name=ttl value="<TMPL_VAR NAME=ttl>"></td>
+	<td class="data"><TMPL_VAR NAME=defsoattl></td>
+</tr>
+<tr class="datalinelight">
+	<td class="inputlabel">Refresh</td>
+	<td><input name=refresh value="<TMPL_VAR NAME=refresh>"></td>
+	<td class="data"><TMPL_VAR NAME=defrefresh></td>
+</tr>
+<tr class="datalinelight">
+	<td class="inputlabel">Retry</td>
+	<td><input name=retry value="<TMPL_VAR NAME=retry>"></td>
+	<td class="data"><TMPL_VAR NAME=defretry></td>
+</tr>
+<tr class="datalinelight">
+	<td class="inputlabel">Expire</td>
+	<td><input name=expire value="<TMPL_VAR NAME=expire>"></td>
+	<td class="data"><TMPL_VAR NAME=defexpire></td>
+</tr>
+<tr class="datalinelight">
+	<td class="inputlabel">Minimum TTL</td>
+	<td><input name=minttl value="<TMPL_VAR NAME=minttl>"></td>
+	<td class="data"><TMPL_VAR NAME=defminttl></td>
+</tr>
+<tr class="datalinelight">
+	<td colspan=3 align=center><input type=submit value=" Update record "></td>
+</tr>
+</table>
+
+</form>
+
+</div>
+
+</td></tr>
+</table>    
+
+<hr><hr>
+
+
Index: /trunk/templates/footer.tmpl
===================================================================
--- /trunk/templates/footer.tmpl	(revision 3)
+++ /trunk/templates/footer.tmpl	(revision 3)
@@ -0,0 +1,11 @@
+
+</div>
+
+<div id="footer">
+<div id="contact">contact: <a href="mailto:kdeugau@deepnet.cx">Kris Deugau</a> (c) 2008 - <a href="http://www.deepnet.cx">deepnet</a><br />
+Get a real browser: <a href="http://www.firefox.com">FireFox</a>/<a href="http://www.mozilla.org">Mozilla</a>
+</div>
+</div>
+
+</body>
+</html>
Index: /trunk/templates/fpnla.tmpl
===================================================================
--- /trunk/templates/fpnla.tmpl	(revision 3)
+++ /trunk/templates/fpnla.tmpl	(revision 3)
@@ -0,0 +1,5 @@
+<TMPL_IF navfirst><a href="dns.cgi?sid=<TMPL_VAR NAME=sid>&page=<TMPL_VAR NAME=curpage>&offset=0"><img src="images/frev.png" border=0>first</a><TMPL_ELSE><img src="images/frev.png" border=0>first</TMPL_IF>&nbsp;
+<TMPL_IF navprev><a href="dns.cgi?sid=<TMPL_VAR NAME=sid>&page=<TMPL_VAR NAME=curpage>&offset=<TMPL_VAR NAME=prevoffs>"><img src="images/rev.png" border=0>previous</a><TMPL_ELSE><img src="images/rev.png" border=0>previous</TMPL_IF>&nbsp;
+<TMPL_IF navnext><a href="dns.cgi?sid=<TMPL_VAR NAME=sid>&page=<TMPL_VAR NAME=curpage>&offset=<TMPL_VAR NAME=nextoffs>">next<img src="images/fwd.png" border=0></a><TMPL_ELSE>next<img src="images/fwd.png" border=0></TMPL_IF>&nbsp;
+<TMPL_IF navlast><a href="dns.cgi?sid=<TMPL_VAR NAME=sid>&page=<TMPL_VAR NAME=curpage>&offset=<TMPL_VAR NAME=lastoffs>">last<img src="images/ffwd.png" border=0></a><TMPL_ELSE>last<img src="images/ffwd.png" border=0></TMPL_IF>&nbsp;
+<TMPL_IF navall><a href="dns.cgi?sid=<TMPL_VAR NAME=sid>&page=<TMPL_VAR NAME=curpage>">all</a><TMPL_ELSE>all</TMPL_IF>
Index: /trunk/templates/header.tmpl
===================================================================
--- /trunk/templates/header.tmpl	(revision 3)
+++ /trunk/templates/header.tmpl	(revision 3)
@@ -0,0 +1,12 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html>
+    <head>
+	<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
+	<title>tinyDNS Administration</title>
+	<link rel="stylesheet" type="text/css" href="templates/dns.css" />
+    </head>
+<body>
+<div id="header">
+<p>fobie bar bletch</p>
+</div>
+<div id="main">
Index: /trunk/templates/log.tmpl
===================================================================
--- /trunk/templates/log.tmpl	(revision 3)
+++ /trunk/templates/log.tmpl	(revision 3)
@@ -0,0 +1,163 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+    <HEAD>
+        <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
+        <TITLE>VegaDNS Administration</TITLE>
+        <link rel="STYLESHEET" type="text/css" href="templates/core-style.css">
+        <!--[if gte IE 5.5000]>
+        <script type="text/javascript" src="templates/pngfix.js"></script>
+        <![endif]-->
+            </HEAD>
+<body onload="focus()">
+<table border="0" height="100%" width="100%">
+
+    <tr valign="top">
+
+        <td class="border" width="20%" align="left">
+        &nbsp;<b>test@test.com</b> logged in<br>
+    &nbsp<a href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=end">log out</a>
+    <hr>
+    <table border="0" cellpadding="0" cellspacing="0">
+
+<tr><td><table cellpadding="0" cellspacing="0" border="0"><tr><td><img border="0" alt="home" 
+src="images/home.png"></td><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=groups&group=1">VegaDNS</a></td></tr></table>
+<table cellpadding="0" cellspacing="0" border="0"><tr><td><img border="0" src="images/dirtree_tee.gif"><td><img 
+border="0" src="images/newfolder.png"></td><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&group=1">Domains</a></td></tr></table>
+<table cellpadding="0" cellspacing="0" border="0"><tr><td><img border="0" 
+src="images/dirtree_tee.gif"></td><td><img border="0" src="images/user_folder.png"></td><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&group=1">Users</a></td></tr></table>
+<table cellpadding="0" cellspacing="0" border="0"><tr><td><img border="0" 
+src="images/dirtree_tee.gif"></td><td><img border="0" src="images/newfolder.png"></td><td class="white"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=log&group=1">Log</a></td></tr></table>
+<!-- COUNTER: 1 COUNT: 2 -->
+<table cellpadding="0" cellspacing="0" border="0"><tr><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&expanded=2&group=1&mode=log"><img 
+border="0" alt="home" src="images/dirtree_plus_tee.gif"><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=groups&group=2"><img border="0" 
+alt="home" src="images/group.gif"></a></td><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=groups&group=2">domain 
+owners</a></td></tr></table>
+<!-- COUNTER: 2 COUNT: 2 -->
+<table cellpadding="0" cellspacing="0" border="0"><tr><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&expanded=3&group=1&mode=log"><img 
+border="0" alt="home" src="images/dirtree_plus_elbow.gif"><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=groups&group=3"><img border="0" 
+alt="home" src="images/group.gif"></a></td><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=groups&group=3">bulk 
+hosters</a></td></tr></table>
+</td></tr>
+</table>
+
+
+    
+    <hr>
+        <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=default_records">Default 
+Records</a><br>
+        <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&domain_mode=import_domains">AXFR 
+Import</a><br>
+        <a href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=dnsquery">DNS 
+Query</a><br>
+        <a href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=whoisquery">Whois 
+Query</a>    </td>
+
+    <td align="center">
+    <img src="images/vegadns-small.png" alt="VegaDNS"><p>
+        <br></b><br>
+    <p>
+Log entries for domain <p>
+<table border=0 width="70%">
+  <tr bgcolor="#cccccc">
+      <td>Name</td>
+      <td>Customer ID</td>
+
+      <td>Email</td>
+      <td>Log Entry</td>
+      <td>Date / Time</td></td>
+  </tr>
+
+    <tr bgcolor="#eeeeee">
+        <td nowrap>Test User</td>
+
+        <td nowrap>1</td>
+        <td nowrap>test@test.com</td>
+        <td nowrap>added domain foo.com with status active</td>
+        <td nowrap>03/28/2008 16:06:32</td>
+    </tr>
+    <tr bgcolor="#eeeeee">
+        <td nowrap>Test User</td>
+
+        <td nowrap>1</td>
+        <td nowrap>test@test.com</td>
+        <td nowrap>added soa</td>
+        <td nowrap>03/28/2008 16:06:32</td>
+    </tr>
+    <tr bgcolor="#eeeeee">
+        <td nowrap>Test User</td>
+
+        <td nowrap>1</td>
+        <td nowrap>test@test.com</td>
+        <td nowrap>added N foo.com with value ns1.example.com</td>
+        <td nowrap>03/28/2008 16:06:32</td>
+    </tr>
+    <tr bgcolor="#eeeeee">
+        <td nowrap>Test User</td>
+
+        <td nowrap>1</td>
+        <td nowrap>test@test.com</td>
+        <td nowrap>added C www.foo.com with value webcluster.example.com</td>
+        <td nowrap>03/28/2008 16:06:32</td>
+    </tr>
+    <tr bgcolor="#eeeeee">
+        <td nowrap>Test User</td>
+
+        <td nowrap>1</td>
+        <td nowrap>test@test.com</td>
+        <td nowrap>added C mail.foo.com with value dmail.example.com</td>
+        <td nowrap>03/28/2008 16:06:32</td>
+    </tr>
+    <tr bgcolor="#eeeeee">
+        <td nowrap>Test User</td>
+
+        <td nowrap>1</td>
+        <td nowrap>test@test.com</td>
+        <td nowrap>added M foo.com with value dmail.example.com</td>
+        <td nowrap>03/28/2008 16:06:32</td>
+    </tr>
+    <tr bgcolor="#eeeeee">
+        <td nowrap>Test User</td>
+
+        <td nowrap>1</td>
+        <td nowrap>test@test.com</td>
+        <td nowrap>Changed status to INACTIVE</td>
+        <td nowrap>03/28/2008 16:24:12</td>
+    </tr>
+    <tr bgcolor="#eeeeee">
+        <td nowrap>Test User</td>
+
+        <td nowrap>1</td>
+        <td nowrap>test@test.com</td>
+        <td nowrap>Changed status to ACTIVE</td>
+        <td nowrap>03/28/2008 16:27:44</td>
+    </tr>
+    <tr bgcolor="#eeeeee">
+        <td nowrap>Test User</td>
+
+        <td nowrap>1</td>
+        <td nowrap>test@test.com</td>
+        <td nowrap>imported via axfr from olddns.webhart.net</td>
+        <td nowrap>06/13/2008 13:47:44</td>
+    </tr>
+</table>
+
+</table>    
+
+</tr>
+</table>
+</center>
+execution time: 0.04 seconds
+</body>
+</html>
Index: /trunk/templates/login.tmpl
===================================================================
--- /trunk/templates/login.tmpl	(revision 3)
+++ /trunk/templates/login.tmpl	(revision 3)
@@ -0,0 +1,13 @@
+<center>
+<table id="login">
+<tr><td colspan=2 class="title" align="center">Please log in:</td></tr>
+<form method="POST" action="dns.cgi">
+<input type="hidden" name="action" value="login">
+<input type="hidden" name="sid" value="<TMPL_VAR NAME=sid>">
+<input type="hidden" name="page" value="domlist">
+<tr><td class="inputlabel">Email Address:</td><td><input type="text" name="email"></td></tr>
+<tr><td class="inputlabel">Password:</td><td><input type="password" name="password"></td></tr>
+<tr><td colspan=2 class="tblsubmit" align="right"><input type="submit" value="Login"></td></tr>
+</form>
+</table>
+</center>
Index: /trunk/templates/menu.tmpl
===================================================================
--- /trunk/templates/menu.tmpl	(revision 3)
+++ /trunk/templates/menu.tmpl	(revision 3)
@@ -0,0 +1,12 @@
+<td class="menu">
+<div class="menu">
+<a href="dns.cgi?sid=<TMPL_VAR NAME=sid>&page=domlist">Domains</a><br />
+<a href="dns.cgi?sid=<TMPL_VAR NAME=sid>&page=useradmin">Users</a><br />
+<a href="dns.cgi?sid=<TMPL_VAR NAME=sid>&page=log">Log</a><br />
+<a href="dns.cgi?sid=<TMPL_VAR NAME=sid>&page=reclist&grpid=<TMPL_VAR NAME=grpid>&defrec=y">Default Records</a><br />
+<a href="dns.cgi?sid=<TMPL_VAR NAME=sid>&page=axfr">AXFR Import</a><br />
+<hr>
+<a href="dns.cgi?sid=<TMPL_VAR NAME=sid>&page=dnsq">DNS Query</a><br />
+<a href="dns.cgi?sid=<TMPL_VAR NAME=sid>&page=whoisq">WHOIS Query</a><br />
+</div>
+</td>
Index: /trunk/templates/newdomain.tmpl
===================================================================
--- /trunk/templates/newdomain.tmpl	(revision 3)
+++ /trunk/templates/newdomain.tmpl	(revision 3)
@@ -0,0 +1,43 @@
+<!-- <TMPL_VAR NAME=sid> -->
+<table class="wholepage"><tr>
+<TMPL_INCLUDE NAME="menu.tmpl">
+
+<td>
+<TMPL_IF add_failed><span class="errmsg">Error adding domain <TMPL_VAR NAME=domain>: <TMPL_VAR 
+NAME=errmsg></span></TMPL_IF>
+<form action="dns.cgi">
+
+<input type="hidden" name="sid" value="<TMPL_VAR NAME=sid>">
+<input type="hidden" name="page" value="adddomain">
+<input type="hidden" name="newdomain" value="yes">
+
+<table border=0 width="70%" bgcolor="white">
+<tr><td>
+    <table border=0 cellspacing=0 cellpadding=2 width="100%">
+	<tr bgcolor="#cccccc"><td colspan=2 align="center">Add Domain</td></tr>
+
+	<tr bgcolor="#eeeeee">
+		<td>Domain Name:</td>
+		<td align="left"><input type="text" name="domain" value="<TMPL_VAR NAME=domain>"></td>
+	</tr>
+	<tr bgcolor="#eeeeee">
+		<td>Add domain to group:</td>
+		<td><select name=group>
+<TMPL_LOOP name=grplist>		<option value="<TMPL_VAR NAME=grpval>" <TMPL_VAR name=defgrp>><TMPL_VAR name=grpname></option>
+</TMPL_LOOP>
+		</select></td>
+	</tr>
+	<tr bgcolor="#eeeeee">
+		<td></td><td><input type=checkbox name=makeactive checked>Make domain active on next DNS propagation</td>
+	</tr>
+	<tr><td colspan=2 align="center"><input type="submit" value="add"></td></tr>
+<tr><td>tmp note:  radio button select "group template" vs "clone domain"?</td></tr>
+    </table>
+    </td>
+</tr>
+</table>
+
+</form>
+
+</td></tr>
+</table>
Index: /trunk/templates/newrec.tmpl
===================================================================
--- /trunk/templates/newrec.tmpl	(revision 3)
+++ /trunk/templates/newrec.tmpl	(revision 3)
@@ -0,0 +1,64 @@
+<!-- <TMPL_VAR NAME=sid> -->
+<table class="wholepage"><tr>
+<TMPL_INCLUDE NAME="menu.tmpl">
+
+<td align="center">
+
+<TMPL_IF add_failed><span class="errmsg">Error adding record: <TMPL_VARNAME=errmsg></span></TMPL_IF>
+<form action="dns.cgi">
+<input type="hidden" name="page" value="addrec">
+<input type="hidden" name="defrec" value="<TMPL_VAR NAME=defrec>">
+<input type="hidden" name="sid" value="<TMPL_VAR NAME=sid>">
+<input type="hidden" name="parentid" value="<TMPL_VAR NAME=parentid>">
+
+        <table border=0 bgcolor="white">
+
+<tr><td>
+
+	<table border=0 width="100%">
+	<tr class="tableheader"><td align="center" colspan=2>Add Record to <TMPL_VAR NAME=domain></td></tr>
+	<tr class="datalinelight">
+		<td>Hostname</td>
+		<td><input type="text" name="name" value="<TMPL_VAR NAME=name>"></td>
+	</tr>
+	<tr class="datalinelight">
+		<td>Type</td>
+		<td><select name="type">
+	<TMPL_LOOP NAME=typelist>
+			<option value="<TMPL_VAR NAME=recval>" <TMPL_IF NAME=tselect>selected</TMPL_IF>><TMPL_VAR NAME=recname></option>
+	</TMPL_LOOP>
+		</select></td>
+	</tr>
+	<tr class="datalinelight">
+		<td>Address</td>
+		<td><input type="text" name="address" value="<TMPL_VAR NAME=address>"></td>
+	</tr>
+	<tr class="datalinelight">
+		<td>Distance (MX and SRV only)</td>
+		<td><input type="text" name="distance" value="<TMPL_VAR NAME=distance>" size=5 maxlength=10></td>
+	</tr>
+	<tr class="datalinelight">
+		<td>Weight (SRV only)</td>
+		<td><input type="text" name="weight" value="<TMPL_VAR NAME=weight>" size=5 maxlength=10></td>
+	</tr>
+	<tr class="datalinelight">
+		<td>Port (SRV only)</td>
+		<td><input type="text" name="port" value="<TMPL_VAR NAME=port>" size=5 maxlength=10></td>
+	</tr>
+	<tr class="datalinelight">
+		<td>TTL</td>
+		<td><input size=7 maxlenth=20 type="text" name="ttl" value="<TMPL_VAR NAME=ttl>">
+	</tr>
+	<tr class="datalinelight">
+		<td colspan=2 align=center><input type="submit" value=" Add record "></td>
+	</tr>
+	</table>
+
+</td></tr>
+</table>
+
+</form>    
+
+
+</td></tr></table>
+
Index: /trunk/templates/reclist.tmpl
===================================================================
--- /trunk/templates/reclist.tmpl	(revision 3)
+++ /trunk/templates/reclist.tmpl	(revision 3)
@@ -0,0 +1,55 @@
+<!-- <TMPL_VAR NAME=sid> -->
+<table class="wholepage"><tr>
+<TMPL_INCLUDE NAME="menu.tmpl">
+
+<td align="center">
+domain details
+<div id=tableholder width=100%>
+
+<TMPL_INCLUDE NAME=soadata.tmpl>
+
+<table border=0 width="100%">
+<tr class="darkrowheader">
+	<td colspan>
+	Listing <TMPL_VAR NAME=nfirst> - <TMPL_VAR NAME=nlast> of <TMPL_VAR NAME=ntot> entries in <TMPL_VAR NAME=domain>
+	</td>
+	<td align=center>
+	<TMPL_INCLUDE NAME="fpnla.tmpl">
+	</td>
+	<td>
+		<form action="dns.cgi">
+		<input type=hidden name=sid value="<TMPL_VAR NAME=sid>">
+		<input name=search>
+		<input type=submit value="Filter">
+		</form>
+	</td>
+</tr>
+<tr class="darkrowheader">
+	<td colspan=2>Records</td>
+	<td align=right><a href="dns.cgi?sid=<TMPL_VAR NAME=sid>&page=newrec&parentid=<TMPL_VAR NAME=id>&defrec=<TMPL_VAR NAME=defrec>">Add record</a>
+	<a href="dns.cgi?sid=<TMPL_VAR NAME=sid>&page=showlog&id=<TMPL_VAR NAME=id>&defrec=<TMPL_VAR NAME=defrec>">View log</a>
+	</td>
+</tr>
+
+</table>
+
+<table>
+<tr class="darkrowheader">
+<td nowrap>Name</td>
+<td width="5%">Type</td>
+<td>Address</td>
+<td>Distance</td><td>Weight</td><td>Port</td><td>TTL</td><td>Delete</td></tr>
+<TMPL_LOOP NAME=reclist>
+<tr class="row<TMPL_VAR NAME=row>">
+<td width="20%" nowrap><a href="dns.cgi?sid=<TMPL_VAR NAME=sid>&page=editrec&id=<TMPL_VAR NAME=record_id>&defrec=<TMPL_VAR NAME=defrec>"><TMPL_VAR NAME=host></a></td>
+<td width="5%" nowrap><TMPL_VAR NAME=type></td>
+<td nowrap><TMPL_VAR NAME=val></td>
+<td width="10%" nowrap><TMPL_VAR NAME=distance></td>
+<td width="10%" nowrap><TMPL_VAR NAME=weight></td>
+<td width="5%" nowrap><TMPL_VAR NAME=port></td>
+<td width="5%" nowrap><TMPL_VAR NAME=ttl></td>
+<td width="5%" align="center" nowrap><a href="dns.cgi?sid=<TMPL_VAR NAME=sid>&page=delrec&id=<TMPL_VAR NAME=record_id>&defrec=<TMPL_VAR NAME=defrec>"><img border=0 src="images/trash2.png"></a></td>
+</TMPL_LOOP>
+</table>
+
+</td></tr></table>
Index: /trunk/templates/soadata.tmpl
===================================================================
--- /trunk/templates/soadata.tmpl	(revision 3)
+++ /trunk/templates/soadata.tmpl	(revision 3)
@@ -0,0 +1,33 @@
+<table name=soahead border=0 cellspacing=3 cellpadding=3 width="100%">
+<tr class="darkrowheader">
+        <td>SOA:</td>
+        <td width="5%"><a href="dns.cgi?sid=<TMPL_VAR NAME=sid>&page=editsoa&recid=<TMPL_VAR NAME=recid>&defrec=<TMPL_VAR NAME=defrec>">edit</a></td>
+</tr>
+</table>
+
+<table name=soadetail>
+<tr class="datalinelight">
+        <td width="10%" nowrap>Contact address:</td>
+        <td width="40%" nowrap><TMPL_VAR NAME=contact></td>
+        <td width="10%" nowrap>Primary Nameserver:</td>
+        <td width="40%" nowrap><TMPL_VAR NAME=prins></td>
+</tr>
+<tr class="datalinelight">
+        <td width="10%" nowrap>Serial Number:</td>
+        <td width="40%" nowrap><TMPL_VAR NAME=serial></td>
+        <td width="10%" nowrap>Refresh:</td>
+        <td width="40%" nowrap><TMPL_VAR NAME=refresh></td>
+</tr>
+<tr class="datalinelight">
+        <td width="10%" nowrap>Retry:</td>
+        <td width="40%" nowrap><TMPL_VAR NAME=retry></td>
+        <td width="10%" nowrap>Expiration:</td>
+        <td width="40%" nowrap><TMPL_VAR NAME=expire></td>
+</tr>
+<tr class="datalinelight">
+        <td width="10%" nowrap>Minimum TTL:</td>
+        <td width="40%" nowrap><TMPL_VAR NAME=minttl></td>
+        <td width="10%" nowrap>Default TTL:</td>
+        <td width="40%" nowrap><TMPL_VAR NAME=ttl></td>
+</tr>
+</table>
Index: /trunk/templates/test.tmpl
===================================================================
--- /trunk/templates/test.tmpl	(revision 3)
+++ /trunk/templates/test.tmpl	(revision 3)
@@ -0,0 +1,14 @@
+<table width="98%">
+<tr><td class="menu">
+<TMPL_INCLUDE NAME="menu.tmpl">
+</td>
+
+<td align="center">
+<form action="test.cgi?sid=<TMPL_VAR NAME=sid>" method="POST">
+<!-- input type=hidden name=sid value=<TMPL_VAR NAME=sid> -->
+<input name=fooby>
+<input type=submit value="gimme">
+</form
+</td>
+</tr>
+</table>
Index: /trunk/templates/updatesoa.tmpl
===================================================================
--- /trunk/templates/updatesoa.tmpl	(revision 3)
+++ /trunk/templates/updatesoa.tmpl	(revision 3)
@@ -0,0 +1,5 @@
+<TMPL_IF update_failed>
+<TMPL_INCLUDE NAME="editsoa.tmpl">
+<TMPL_ELSE>
+<TMPL_INCLUDE NAME="defrecs.tmpl">
+</TMPL_IF>
Index: /trunk/templates/users.tmpl
===================================================================
--- /trunk/templates/users.tmpl	(revision 3)
+++ /trunk/templates/users.tmpl	(revision 3)
@@ -0,0 +1,220 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+    <HEAD>
+        <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
+        <TITLE>VegaDNS Administration</TITLE>
+        <link rel="STYLESHEET" type="text/css" href="templates/core-style.css">
+        <!--[if gte IE 5.5000]>
+        <script type="text/javascript" src="templates/pngfix.js"></script>
+        <![endif]-->
+            </HEAD>
+<body onload="focus()">
+<table border="0" height="100%" width="100%">
+
+    <tr valign="top">
+
+        <td class="border" width="20%" align="left">
+        &nbsp;<b>test@test.com</b> logged in<br>
+    &nbsp<a href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=end">log out</a>
+    <hr>
+    <table border="0" cellpadding="0" cellspacing="0">
+
+<tr><td><table cellpadding="0" cellspacing="0" border="0"><tr><td><img border="0" alt="home" 
+src="images/home.png"></td><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=groups&group=1">VegaDNS</a></td></tr></table>
+<table cellpadding="0" cellspacing="0" border="0"><tr><td><img border="0" src="images/dirtree_tee.gif"><td><img 
+border="0" src="images/newfolder.png"></td><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&group=1">Domains</a></td></tr></table>
+<table cellpadding="0" cellspacing="0" border="0"><tr><td><img border="0" 
+src="images/dirtree_tee.gif"></td><td><img border="0" src="images/user_folder.png"></td><td class="white"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&group=1">Users</a></td></tr></table>
+<table cellpadding="0" cellspacing="0" border="0"><tr><td><img border="0" 
+src="images/dirtree_tee.gif"></td><td><img border="0" src="images/newfolder.png"></td><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=log&group=1">Log</a></td></tr></table>
+<!-- COUNTER: 1 COUNT: 2 -->
+<table cellpadding="0" cellspacing="0" border="0"><tr><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&expanded=2&group=1&mode=users"><img 
+border="0" alt="home" src="images/dirtree_plus_tee.gif"><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=groups&group=2"><img border="0" 
+alt="home" src="images/group.gif"></a></td><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=groups&group=2">domain 
+owners</a></td></tr></table>
+<!-- COUNTER: 2 COUNT: 2 -->
+<table cellpadding="0" cellspacing="0" border="0"><tr><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&expanded=3&group=1&mode=users"><img 
+border="0" alt="home" src="images/dirtree_plus_elbow.gif"><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=groups&group=3"><img border="0" 
+alt="home" src="images/group.gif"></a></td><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=groups&group=3">bulk 
+hosters</a></td></tr></table>
+</td></tr>
+</table>
+
+
+    
+    <hr>
+        <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=default_records">Default 
+Records</a><br>
+        <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&domain_mode=import_domains">AXFR 
+Import</a><br>
+        <a href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=dnsquery">DNS 
+Query</a><br>
+        <a href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=whoisquery">Whois 
+Query</a>    </td>
+
+    <td align="center">
+    <img src="images/vegadns-small.png" alt="VegaDNS"><p>
+        <br></b><br>
+    <p><table width="70%" border=0 cellspacing=5 cellpadding=3 bgcolor="white">
+<tr bgcolor="#cccccc">
+    <td colspan="6" align="center">
+<table border=0 width="100%">
+<tr bgcolor="#cccccc">
+    <td align="middle">All User Accounts
+                    </td>
+        </tr>
+
+</table>
+    </td>
+</tr>
+<tr bgcolor="#cccccc">
+    <td colspan="6" align="center">
+        <table width="100%" border=0 bgcolor="#cccccc">
+        <tr bgcolor="#cccccc">
+            <td align="left" valign="top" colspan="2">
+                Listing 1 - 2 of 2 Accounts </td>
+                <td align="center" colspan="2">
+
+                previous                next                first                last                <a 
+href=/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&user_mode=show_users&page=all&sortfield=account_type&sortway=asc&search=>all</a>
+            </td>
+            <td align="right" colspan="2">
+                <form action="/index.php">
+                <input type="hidden" name="state" value="logged_in">
+                <input type="hidden" name="mode" value="users">
+                <input type="hidden" name="VDNSSessid" value="65d033c4ff10d2e73c9ca1050c7746f1">
+                search sub groups <input type="checkbox" name="recursive" >
+
+                <input type="text" name="search" value="">
+                <input type="submit" value="search"></form>
+            </td>
+        </tr>
+        <tr bgcolor="#cccccc">
+            <td align="center" colspan="6" width=100% nowrap>
+                <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&user_mode=show_users&page=all&sortfield=account_type&sortway=asc&search=">ALL</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&user_mode=show_users&page=all&sortfield=account_type&sortway=asc&search=&scope=num">0-9</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&user_mode=show_users&page=all&sortfield=account_type&sortway=asc&search=&scope=a">A</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&user_mode=show_users&page=all&sortfield=account_type&sortway=asc&search=&scope=b">B</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&user_mode=show_users&page=all&sortfield=account_type&sortway=asc&search=&scope=c">C</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&user_mode=show_users&page=all&sortfield=account_type&sortway=asc&search=&scope=d">D</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&user_mode=show_users&page=all&sortfield=account_type&sortway=asc&search=&scope=e">E</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&user_mode=show_users&page=all&sortfield=account_type&sortway=asc&search=&scope=f">F</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&user_mode=show_users&page=all&sortfield=account_type&sortway=asc&search=&scope=g">G</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&user_mode=show_users&page=all&sortfield=account_type&sortway=asc&search=&scope=h">H</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&user_mode=show_users&page=all&sortfield=account_type&sortway=asc&search=&scope=i">I</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&user_mode=show_users&page=all&sortfield=account_type&sortway=asc&search=&scope=j">J</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&user_mode=show_users&page=all&sortfield=account_type&sortway=asc&search=&scope=k">K</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&user_mode=show_users&page=all&sortfield=account_type&sortway=asc&search=&scope=l">L</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&user_mode=show_users&page=all&sortfield=account_type&sortway=asc&search=&scope=m">M</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&user_mode=show_users&page=all&sortfield=account_type&sortway=asc&search=&scope=n">N</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&user_mode=show_users&page=all&sortfield=account_type&sortway=asc&search=&scope=o">O</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&user_mode=show_users&page=all&sortfield=account_type&sortway=asc&search=&scope=p">P</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&user_mode=show_users&page=all&sortfield=account_type&sortway=asc&search=&scope=q">Q</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&user_mode=show_users&page=all&sortfield=account_type&sortway=asc&search=&scope=r">R</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&user_mode=show_users&page=all&sortfield=account_type&sortway=asc&search=&scope=s">S</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&user_mode=show_users&page=all&sortfield=account_type&sortway=asc&search=&scope=t">T</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&user_mode=show_users&page=all&sortfield=account_type&sortway=asc&search=&scope=u">U</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&user_mode=show_users&page=all&sortfield=account_type&sortway=asc&search=&scope=v">V</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&user_mode=show_users&page=all&sortfield=account_type&sortway=asc&search=&scope=w">W</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&user_mode=show_users&page=all&sortfield=account_type&sortway=asc&search=&scope=x">X</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&user_mode=show_users&page=all&sortfield=account_type&sortway=asc&search=&scope=y">Y</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&user_mode=show_users&page=all&sortfield=account_type&sortway=asc&search=&scope=z">Z</a>
+
+            </td>
+        </tr>
+        <tr bgcolor="#cccccc">
+            <td align="right" colspan="6" width=100% nowrap><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&user_mode=add_account">Add 
+Account</a></td>
+        </tr>
+        </table>
+    </td>
+</tr>
+<tr bgcolor="#cccccc">
+
+  <td nowrap><a 
+href='/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&user_mode=show_users&sortway=asc&sortfield=last_name'>name</a></td>
+  <td nowrap><a 
+href='/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&user_mode=show_users&sortway=asc&sortfield=email'>email</a></td>
+  <td nowrap><a 
+href='/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&user_mode=show_users&sortway=desc&sortfield=account_type'>account 
+type</a>&nbsp;<img border=0 alt='asc' src=images/asc.png></td>
+  <td nowrap><a 
+href='/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&user_mode=show_users&sortway=asc&sortfield=status'>status</a></td>
+  <td>edit</td>
+  <td>delete</td>
+
+</tr>
+
+<tr bgcolor="#eeeeee">
+  <td>foo, bob</td>
+  <td>foo@foo.com</td>
+  <td>user</td>
+  <td>active</td>
+  <td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&user_mode=edit_account&user_id=2">edit</a></td>
+
+  <td align="center"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&user_mode=delete&user_id=2"><img 
+border=0 src="images/trash.png" alt="Trash"></a>
+    </td>
+</tr>
+<tr bgcolor="#eeeeee">
+  <td>User, Test</td>
+  <td>test@test.com</td>
+  <td>senior_admin</td>
+  <td>active</td>
+
+  <td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&user_mode=edit_account&user_id=1">edit</a></td>
+  <td align="center"><img border=0 src="images/trash.png">
+    </td>
+</tr>
+
+</table>    
+</tr>
+</table>
+</center>
+execution time: 0.06 seconds
+</body>
+</html>
Index: /trunk/templates/vega-domainlist.tmpl
===================================================================
--- /trunk/templates/vega-domainlist.tmpl	(revision 3)
+++ /trunk/templates/vega-domainlist.tmpl	(revision 3)
@@ -0,0 +1,230 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+    <HEAD>
+        <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
+        <TITLE>VegaDNS Administration</TITLE>
+        <link rel="STYLESHEET" type="text/css" href="templates/core-style.css">
+        <!--[if gte IE 5.5000]>
+        <script type="text/javascript" src="templates/pngfix.js"></script>
+        <![endif]-->
+            </HEAD>
+<body onload="focus()">
+<table border="0" height="100%" width="100%">
+
+    <tr valign="top">
+
+        <td class="border" width="20%" align="left">
+        &nbsp;<b>test@test.com</b> logged in<br>
+    &nbsp<a href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=end">log out</a>
+    <hr>
+    <table border="0" cellpadding="0" cellspacing="0">
+
+<tr><td><table cellpadding="0" cellspacing="0" border="0"><tr><td><img border="0" alt="home" 
+src="images/home.png"></td><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=groups&group=1">VegaDNS</a></td></tr></table>
+<table cellpadding="0" cellspacing="0" border="0"><tr><td><img border="0" src="images/dirtree_tee.gif"><td><img 
+border="0" src="images/newfolder.png"></td><td class="white"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&group=1">Domains</a></td></tr></table>
+<table cellpadding="0" cellspacing="0" border="0"><tr><td><img border="0" 
+src="images/dirtree_tee.gif"></td><td><img border="0" src="images/user_folder.png"></td><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&group=1">Users</a></td></tr></table>
+<table cellpadding="0" cellspacing="0" border="0"><tr><td><img border="0" 
+src="images/dirtree_tee.gif"></td><td><img border="0" src="images/newfolder.png"></td><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=log&group=1">Log</a></td></tr></table>
+<!-- COUNTER: 1 COUNT: 2 -->
+<table cellpadding="0" cellspacing="0" border="0"><tr><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&expanded=2&group=1&mode=domains"><img 
+border="0" alt="home" src="images/dirtree_plus_tee.gif"><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=groups&group=2"><img border="0" 
+alt="home" src="images/group.gif"></a></td><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=groups&group=2">domain 
+owners</a></td></tr></table>
+<!-- COUNTER: 2 COUNT: 2 -->
+<table cellpadding="0" cellspacing="0" border="0"><tr><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&expanded=3&group=1&mode=domains"><img 
+border="0" alt="home" src="images/dirtree_plus_elbow.gif"><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=groups&group=3"><img border="0" 
+alt="home" src="images/group.gif"></a></td><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=groups&group=3">bulk 
+hosters</a></td></tr></table>
+</td></tr>
+</table>
+
+
+    
+    <hr>
+        <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=default_records">Default 
+Records</a><br>
+        <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&domain_mode=import_domains">AXFR 
+Import</a><br>
+        <a href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=dnsquery">DNS 
+Query</a><br>
+        <a href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=whoisquery">Whois 
+Query</a>    </td>
+
+    <td align="center">
+    <img src="images/vegadns-small.png" alt="VegaDNS"><p>
+        <br></b><br>
+    <p>    <table width="90%">
+    <tr>
+    <td class="border">
+    <table width="100%" border="0" cellspacing="5" cellpadding="3" bgcolor="white">
+        <tr>
+
+            <td colspan="6" align="center">
+
+            Domains in group VegaDNS<p>
+            <table width="100%" border=0 cellspacing=0 cellpadding=3>
+                <tr valign="top">
+                <td align="left" colspan="2">
+
+                Listing 1 - 2 of 2 Domains </td>
+                <td align="center" colspan="2">
+
+                previous                next                first                last                <a 
+href=/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&page=all&sortfield=status&sortway=asc&search=>all</a>
+                </td>
+                <td align="right" colspan="2">
+                    <form action="/index.php">
+                    <input type="hidden" name="state" value="logged_in">
+                    <input type="hidden" name="mode" value="domains">
+                    <input type="hidden" name="VDNSSessid" value="65d033c4ff10d2e73c9ca1050c7746f1">
+                    <input type="hidden" name="group" value="1">
+
+                    search sub domains <input type="checkbox" name="recursive" >
+                    <input type="text" name="search" value="">
+                    <input type="submit" value="search"></form>
+
+                </td>
+                </tr>
+               <tr>
+                <td nowrap align="center" colspan="6" width=100%>
+<a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&page=all&sortfield=status&sortway=asc&search=">ALL</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&page=all&sortfield=status&sortway=asc&search=&scope=num">0-9</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&page=all&sortfield=status&sortway=asc&search=&scope=a">A</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&page=all&sortfield=status&sortway=asc&search=&scope=b">B</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&page=all&sortfield=status&sortway=asc&search=&scope=c">C</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&page=all&sortfield=status&sortway=asc&search=&scope=d">D</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&page=all&sortfield=status&sortway=asc&search=&scope=e">E</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&page=all&sortfield=status&sortway=asc&search=&scope=f">F</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&page=all&sortfield=status&sortway=asc&search=&scope=g">G</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&page=all&sortfield=status&sortway=asc&search=&scope=h">H</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&page=all&sortfield=status&sortway=asc&search=&scope=i">I</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&page=all&sortfield=status&sortway=asc&search=&scope=j">J</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&page=all&sortfield=status&sortway=asc&search=&scope=k">K</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&page=all&sortfield=status&sortway=asc&search=&scope=l">L</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&page=all&sortfield=status&sortway=asc&search=&scope=m">M</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&page=all&sortfield=status&sortway=asc&search=&scope=n">N</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&page=all&sortfield=status&sortway=asc&search=?&scope=o">O</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&page=all&sortfield=status&sortway=asc&search=&scope=p">P</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&page=all&sortfield=status&sortway=asc&search=&scope=q">Q</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&page=all&sortfield=status&sortway=asc&search=&scope=r">R</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&page=all&sortfield=status&sortway=asc&search=&scope=s">S</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&page=all&sortfield=status&sortway=asc&search=&scope=t">T</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&page=all&sortfield=status&sortway=asc&search=&scope=u">U</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&page=all&sortfield=status&sortway=asc&search=&scope=v">V</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&page=all&sortfield=status&sortway=asc&search=&scope=w">W</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&page=all&sortfield=status&sortway=asc&search=&scope=x">X</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&page=all&sortfield=status&sortway=asc&search=&scope=y">Y</a> 
+| <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&page=all&sortfield=status&sortway=asc&search=&scope=z">Z</a>
+
+                </td>
+               </tr>
+
+            </table>
+
+
+            </td>
+        </tr>
+        <tr><td colspan="4" align="right"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&domain_mode=add">New 
+Domain</a></td>
+        </tr>
+
+        <tr>
+            <td class="underline" nowrap><a 
+href='/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&page=1&sortway=asc&sortfield=domain'>Domain</a></td><td 
+class="underline" nowrap><a 
+href='/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&page=1&sortway=desc&sortfield=status'>Status</a>&nbsp;<img 
+border=0 alt='asc' src=images/asc.png></td>
+            <td class="underline" align="center" nowrap><a 
+href='/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&page=1&sortway=asc&sortfield=group_id'>Group</a></td>
+            <td class="underline" align="center" nowrap>Change Status</td>
+            <td class="underline" width="1%">Delete</td>
+        </tr>
+
+                <tr bgcolor="#dcdcdc">
+            <td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&domain=foo.com">foo.com</a></td>
+            <td width="1%" nowrap>active</td>
+            <td width="1%" align="center" nowrap>
+                            <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&domain_mode=change_owner&domain_id=1&domain=foo.com"></a>
+                        </td>
+            <td width="1%" align="center">
+
+            <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&domain_mode=deactivate_domain&domain_id=1&domain=foo.com">de-activate</a>
+            </td>
+            <td align="center" width="1%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&domain_mode=delete&domain_id=1&domain=foo.com"><img 
+src="images/trash.png" border=0 alt="Trash"></a></td>
+            </tr>
+                <tr bgcolor="#ffffff">
+            <td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=records&domain=wh-int">wh-int</a></td>
+            <td width="1%" nowrap>active</td>
+
+            <td width="1%" align="center" nowrap>
+                            <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&domain_mode=change_owner&domain_id=4&domain=wh-int"></a>
+                        </td>
+            <td width="1%" align="center">
+            <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&domain_mode=deactivate_domain&domain_id=4&domain=wh-int">de-activate</a>
+            </td>
+            <td align="center" width="1%"><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&domain_mode=delete&domain_id=4&domain=wh-int"><img 
+src="images/trash.png" border=0 alt="Trash"></a></td>
+            </tr>
+
+            </table>
+    </td>
+    </tr>
+    </table>    
+</tr>
+</table>
+</center>
+execution time: 0.06 seconds
+</body>
+</html>
Index: /trunk/templates/viadns.css
===================================================================
--- /trunk/templates/viadns.css	(revision 3)
+++ /trunk/templates/viadns.css	(revision 3)
@@ -0,0 +1,100 @@
+/* Global defaults and things */
+
+body {
+	font-family: Arial, Helvetica, sans-serif;
+	font-size: 10px;
+	margin-left: 0px;
+	margin-right: 0px;
+/*	background-color: #deadDD;*/
+/*	background-color: #FFFF00;*/
+}
+
+tr {
+	vertical-align: top;
+}
+
+tr.row0 {
+	background-color: #FFFFFF;
+}
+tr.row1 {
+	background-color: #DDDDDD;
+}
+tr.darkrowheader {
+	background-color: #CCCCCC;
+}
+tr.datalinelight {
+	background-color: #F0F0F0;
+}
+
+td.tblsubmit {
+	text-align: center;
+}
+td.inputlabel {
+	text-align: right;
+}
+td.title {
+	text-align: center;
+}
+table.login {
+	text-align: center;
+	border: thin solid #000000;
+	background-color: #CCCCFF;
+}
+table.list {
+	background-color: #F0F0F0;
+}
+
+/* Definitions for specific divs */
+#main {
+	position: relative;
+}
+#login {
+	text-align: center;
+	border: thin solid #000000;
+	background-color: #CCCCFF;
+	max-width: 300px;
+}
+/*#menu {
+	border: thin solid #000000;
+	background-color: #CCCCFF;
+	position: relative;
+	left: 5px;
+	top: 5px;
+}*/
+
+#domlist {
+	text-align: center;
+	border thin solid #000000;
+	position: relative;
+	margin: 5px;
+}
+#domlisttitle {
+	font-size: 16px;
+	background-color: #FFEEDD;
+	position: absolute;
+	left: 5px;
+}
+#foo1 {
+	position: absolute;
+	left: 100px;
+}
+
+#footer {
+	border-top: thin solid #000000;
+}
+#contact {
+	font-size: 10px;
+	position: absolute;
+	right: 10px;
+	text-align: right;
+}
+
+/* Generalized classes */
+#tableholder {
+	background-color: #FFFFFF;
+}
+.center {
+	text-align: center;
+	font-family: Verdana, Arial, Helvetica, sans-serif;
+/*	font-size: 100%;*/
+}
Index: /trunk/templates/whois.tmpl
===================================================================
--- /trunk/templates/whois.tmpl	(revision 3)
+++ /trunk/templates/whois.tmpl	(revision 3)
@@ -0,0 +1,100 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<HTML>
+    <HEAD>
+        <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
+        <TITLE>VegaDNS Administration</TITLE>
+        <link rel="STYLESHEET" type="text/css" href="templates/core-style.css">
+        <!--[if gte IE 5.5000]>
+        <script type="text/javascript" src="templates/pngfix.js"></script>
+        <![endif]-->
+            </HEAD>
+<body onload="focus()">
+<table border="0" height="100%" width="100%">
+
+    <tr valign="top">
+
+        <td class="border" width="20%" align="left">
+        &nbsp;<b>test@test.com</b> logged in<br>
+    &nbsp<a href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=end">log out</a>
+    <hr>
+    <table border="0" cellpadding="0" cellspacing="0">
+
+<tr><td><table cellpadding="0" cellspacing="0" border="0"><tr><td><img border="0" alt="home" 
+src="images/home.png"></td><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=groups&group=1">VegaDNS</a></td></tr></table>
+<table cellpadding="0" cellspacing="0" border="0"><tr><td><img border="0" src="images/dirtree_tee.gif"><td><img 
+border="0" src="images/newfolder.png"></td><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&group=1">Domains</a></td></tr></table>
+<table cellpadding="0" cellspacing="0" border="0"><tr><td><img border="0" 
+src="images/dirtree_tee.gif"></td><td><img border="0" src="images/user_folder.png"></td><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=users&group=1">Users</a></td></tr></table>
+<table cellpadding="0" cellspacing="0" border="0"><tr><td><img border="0" 
+src="images/dirtree_tee.gif"></td><td><img border="0" src="images/newfolder.png"></td><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=log&group=1">Log</a></td></tr></table>
+<!-- COUNTER: 1 COUNT: 2 -->
+<table cellpadding="0" cellspacing="0" border="0"><tr><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&expanded=2&group=1&mode=whoisquery"><img 
+border="0" alt="home" src="images/dirtree_plus_tee.gif"><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=groups&group=2"><img border="0" 
+alt="home" src="images/group.gif"></a></td><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=groups&group=2">domain 
+owners</a></td></tr></table>
+<!-- COUNTER: 2 COUNT: 2 -->
+<table cellpadding="0" cellspacing="0" border="0"><tr><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&expanded=3&group=1&mode=whoisquery"><img 
+border="0" alt="home" src="images/dirtree_plus_elbow.gif"><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=groups&group=3"><img border="0" 
+alt="home" src="images/group.gif"></a></td><td><a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=groups&group=3">bulk 
+hosters</a></td></tr></table>
+</td></tr>
+</table>
+
+
+    
+    <hr>
+        <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=default_records">Default 
+Records</a><br>
+        <a 
+href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=domains&domain_mode=import_domains">AXFR 
+Import</a><br>
+        <a href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=dnsquery">DNS 
+Query</a><br>
+        <a href="/index.php?VDNSSessid=65d033c4ff10d2e73c9ca1050c7746f1&state=logged_in&mode=whoisquery">Whois 
+Query</a>    </td>
+
+    <td align="center">
+    <img src="images/vegadns-small.png" alt="VegaDNS"><p>
+        <br></b><br>
+    <p><form action="/index.php">
+<input type="hidden" name="state" value="logged_in">
+<input type="hidden" name="mode" value="whoisquery">
+<input type="hidden" name="query_mode" value="do_query">
+<input type="hidden" name="VDNSSessid" value="65d033c4ff10d2e73c9ca1050c7746f1">
+
+<table border="0">
+<tr bgcolor="#cccccc">
+  <td colspan="2" align="middle">Whois Query</td>
+
+</tr>
+<tr bgcolor="#cccccc">
+  <td colspan="2" align="middle">Enter the domain name to run whois on</td>
+</tr>
+<tr bgcolor="#cccccc">
+  <td>Name</td>
+  <td><input type="text" name="name" value=""</td>
+</tr>
+<tr bgcolor="#cccccc">
+  <td colspan="2" align="right"><input type="submit" value="query whois"></td>
+</tr>
+
+
+</table>
+</form>    
+</tr>
+</table>
+</center>
+execution time: 0.07 seconds
+</body>
+</html>
