<?php
if (!defined('PICONTROL')) exit();

(include_once PLUGIN_PATH.'resources/library/main/main.function.php')	or die('Error: 9x0001');
(include_once LIBRARY_PATH.'statistic/statistic.class.php')				or die('Error: 9x0002');
(include_once LIBRARY_PATH.'cron/cron.class.php')						or die('Error: 9x0003');

$statistics = array();

$controller = new StatisticController();
$controller->loadStatistics('plugin/');

if ($controller->checkStatistic('plugin/fritzbox.traffic-download') === true)
{
	$builder = new StatisticBuilder();
	$builder->loadFromFile('plugin/fritzbox.traffic-download', 'fritzbox');
	$statistics[$builder->getId()] = array('array' => $builder->getArray());
}

if ($controller->checkStatistic('plugin/fritzbox.traffic-upload') === true)
{
	$builder = new StatisticBuilder();
	$builder->loadFromFile('plugin/fritzbox.traffic-upload', 'fritzbox');
	$statistics[$builder->getId()] = array('array' => $builder->getArray());
}

if (!isset($_GET['reset']))
{
	$cron = new Cron;
	$cron->setName('traffic');
	
	if (isset($_POST['submit-main']))
	{
		if (isset($_POST['address'], $_POST['version'], $_POST['unit']) && ($pAddress = trim($_POST['address'])) && ($pVersion = trim($_POST['version'])) && ($pUnit = trim($_POST['unit'])) && in_array($_POST['version'], array('5', '6')) && in_array($_POST['unit'], array('mbit', 'mbyte')))
		{
			$tpl->msg('success', _t('Einstellungen gespeichert'), _t('Die Einstellungen wurden erfolgreich gespeichert.'), true, 10);
			
			if (preg_match('#http[s]?:\/\/.*#i', $pAddress) !== 1)
				$pAddress = 'http://'.$pAddress;
			
			setPluginConfig('main:address', $pAddress) or $tpl->msg('error', _t('Fehler'), _t('Die Einstellungen konnten nicht gespeichert werden!'), true, 10);
			setPluginConfig('main:version', $pVersion) or $tpl->msg('error', _t('Fehler'), _t('Die Einstellungen konnten nicht gespeichert werden!'), true, 10);
			setPluginConfig('main:unit', $pUnit) or $tpl->msg('error', _t('Fehler'), _t('Die Einstellungen konnten nicht gespeichert werden!'), true, 10);
		}
	}
	elseif (isset($_POST['submit-statistic']))
	{
		if (isset($_POST['activation']) && $_POST['activation'] == 'checked')
        {
            if ($cron->isExists() === false)
            {
                $cron->setInterval(10);
                $cron->setSource(PLUGIN_PATH.'resources/templates/traffic_monitoring.tmp.php');
				
                if ($cron->save() === true)
                    $tpl->msg('success', _t('Statistik aktiviert'), _t('Die Statistik wurde aktiviert.'));
                else
                    $tpl->msg('error', _t('Fehler'), _t('Konnte die Statistik nicht aktivieren!'));
            }
        }
        else
        {
            if ($cron->isExists() === true)
            {
                $cron->getInterval();
				
                if ($cron->delete() === true)
                    $tpl->msg('success', _t('Statistik deaktiviert'), _t('Die Statistik wurde deaktiviert.'));
                else
                    $tpl->msg('error', _t('Fehler'), _t('Konnte die Statistik nicht deaktivieren!'));
            }
        }
	}
	
	$tpl->assign('address', getPluginConfig('main:address', 'http://fritz.box'));
	$tpl->assign('version', getPluginConfig('main:version', '5'));
	$tpl->assign('unit', getPluginConfig('main:unit', 'mbit'));
	$tpl->assign('activation', $cron->isExists());
	$tpl->assign('statistics', $statistics);
	
	$tpl->draw('settings/settings');
}
elseif (isset($_GET['reset']))
{
	if (!isset($statistics[$_GET['reset']]))
		$tpl->msg('error', _t('Fehler'), _t('Der Verlauf konnte nicht gefunden werden: %s', $_GET['reset']));
	
	if (isset($_GET['confirm']) && $_GET['confirm'] == '')
	{
		if (isset($statistics[$_GET['reset']]))
		{
			if (($logFile = fopen(LOG_PATH.$statistics[$_GET['reset']]['array']['raw'].'.csv', 'w')) !== false)
			{
				$tpl->msg('success', _t('Verlauf zur&uuml;ckgesetzt'), _t('Verlauf wurde erfolgreich zur&uuml;ckgesetzt.'));
				fclose($logFile);
			}
			else
				$tpl->msg('error', _t('Fehler'), _t('Verlauf konnte nicht zur&uuml;ckgesetzt werden.'));
		}
	}
	
	$tpl->assign('log', $_GET['reset']);
	$tpl->assign('label', $statistics[$_GET['reset']]['array']['title']);
	
	$tpl->draw('settings/statistic_reset');
}
?>