#!/usr/bin/perl

my $view_config = "/etc/klfree/conf.views";
my $views_dir = "/var/www";
my $default_view = "main";

use Config::General;
use Template;
use Template::Constants qw( :debug );
use CGI;

use lib '/usr/local/share/perl';
use lib './lib';

my $DEBUG=0;
my $AP_CONTACT="/etc/default/contact.html";
my $AP_MESSAGE="/var/etc/www/ap_message.html";

my $query = new CGI;
my $view = $query->param('view') || $default_view;
my $view = $default_view;
my $templateConfig = {
    INCLUDE_PATH => '/var/www',
    INTERPOLATE => 1,
    TRIM => 1,
    RELATIVE => 1,
    ABSOLUTE => 1,
    LOAD_PERL => 1,
#    DEBUG => DEBUG_ALL
};

my $template = Template->new($templateConfig);
my $client_ip = $query->remote_host();

my ($client_mac) = `arping -n -c1 -t1 -q &> /dev/null ; ip neigh | grep $client_ip` =~ /lladdr ([0-9:A-Fa-f]+)/;

sub doView() {
    my %conf = ParseConfig($view_config);    
    
    if ( ! -r "$views_dir/$view.html" ) {
	$view = $default_view;
    }
#    @{$conf{'taborder'}} = ( split(/ ,/, $conf{'taborder'}) );
    $conf{'taborder'} = [ split(/\s/, $conf{'taborder'}) ];
    $conf{'selected'} = \%{$conf{'content'}{$view}};
    $conf{'client_ip'} = $client_ip;
    $conf{'client_mac'} = $client_mac;
    print $query->header('text/html');
    print $template->process("view.tmpl", \%conf ) || die Template->error();
}

doView if $view;
