<?php

require_once __DIR__ . "/bootstrap.php";
$sql = new \sql\Database();
$report = null;
if (isset($_GET['report'])) {
    $report = \reports\Report::get($_GET['report']);
    $sql->selectDB(\util\Config::$database->tablesDB);
    $report->run($sql);
} else {
    if (isset($_GET['table'])) {
        $sql->selectDB(\util\Config::$database->tablesDB);
        $table = $_GET['table'];
        $chart = new \reports\Chart();
        $chart->setType('Table');
        $report = new \reports\Report();
        $report->setTitle($table)->setQuery("SELECT * FROM {$table}")->setChart($chart)->run($sql);
    } else {
        if (isset($_GET['serial'])) {
            $report = \reports\Report::unserialize($_GET['serial']);
            $sql->selectDB(\util\Config::$database->tablesDB);
            $report->run($sql);
        }
    }
}
if (!is_null($report)) {
    $header = new \html\Header();
    $header->title(\util\Config::$app->name)->css('css/style.min.css')->js('js/jquery.min.js', 'js/bootstrap.min.js')->addToIncludes($report->script('chart_container'));
    $content = "<div id='chart_container' class='chart'></div>";
    echo "<!DOCTYPE html>\n<html lang='en'>" . $header->html() . "<body>\n\t\t\t<header>" . \util\Html::genNavbar() . "</header>\n\t\t\t<article>\n\t\t\t\t{$content}\n\t\t\t</article>\n\t\t\t<footer>\n\t\t\t</footer>\n\t\t</body>\n\t</html>";
}
        $chart = new \reports\Chart();
        $chart->setTitle($title)->setAxisLabels($vAxis, $hAxis)->setColumnNames(array($column1, $column2))->setType($type);
        $report = new \reports\Report();
        $report->setTitle($title)->setQuery($query)->setChart($chart);
        if (isset($_POST['submit_type']) && $_POST['submit_type'] === 'save_report') {
            \reports\Report::add($report);
            header("Location: run_report.php?report={$title}");
        } else {
            $serial = $report->serialize();
            header("Location: run_report.php?serial={$serial}");
        }
        exit;
    }
}
$header = new \html\Header();
$header->title(\util\Config::$app->name)->css('css/style.min.css')->js('js/jquery.min.js', 'js/bootstrap.min.js');
$form = new \html\FormPanel("Import Spreadsheets", "form-panel", 'md-10', "form-horizontal", "");
foreach ($errors as $err) {
    $form->error($err);
}
echo "<header>" . \util\Html::genNavbar() . "</header>";
$form = new \html\FormPanel("Create Report", "form-panel", 'md-10', "form-horizontal", "");
if (isset($_POST['errormsg'])) {
    $form->error($_POST['errormsg']);
}
$form->textInput('title', 'Title*', true)->textArea('sql', 'SQL*', true)->select('type', 'Chart Type*', true)->option('AreaChart', 'Area Chart')->option('BarChart', 'Bar Chart')->option('BubbleChart', 'Bubble Chart')->option('CandlestickChart', 'Candlestick Chart')->option('ColumnChart', 'Column Chart')->option('ComboChart', 'Combo Chart')->option('LineChart', 'Line Chart')->option('PieChart', 'Pie Chart')->option('ScatterChart', 'Scatter Chart')->option('SteppedAreaChart', 'Stepped Area Chart')->option('Table', 'Table')->option('Timeline', 'Timeline')->option('Histogram', 'Histogram')->textInput('hAxis', 'hAxis Label')->textInput('vAxis', 'vAxis Label')->textInput('column1', 'Column #1 Name')->textInput('column2', 'Column #2 Name')->numberInput('sortcolumn', 'Sort by Column#', 1)->select('submit_type', 'Submit Type*', true)->option('preview_report', "View Only")->option('save_report', 'Save and View')->button('submit', 'Confirm/Upload', 'btn btn-primary');
$container = new \html\GridDiv("container");
$container->row()->column('md-1')->column('md-10', null, $form->html())->column('md-1');
echo "<!DOCTYPE html>\n<html lang='en'>" . $header->html() . "<body>";
echo "<header>" . \util\Html::genNavbar() . "</header>";
echo $container->html(), "</body></html>";