<?php

// Pandora FMS - http://pandorafms.com
// ==================================================
// Copyright (c) 2005-2009 Artica Soluciones Tecnologicas
// Please see http://pandorafms.org for full contribution list

// This program is free software; you can redistribute it and/or
// modify it under the terms of the GNU General Public License
// as published by the Free Software Foundation for version 2.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
// GNU General Public License for more details.

// Load global vars
global $config;

require_once ("include/functions_agents.php");

if (! give_acl ($config['id_user'], $id_grupo, "AR")) {
	pandora_audit("ACL Violation",
		"Trying to access (read) to agent ".get_agent_name($id_agente));
	include ("general/noaccess.php");
	return;
}

require_once('include/fgraph.php');

$period = get_parameter ( "period", 3600);
$draw_alerts = get_parameter("draw_alerts", 0);
$avg_only = get_parameter ("avg_only", 0);
$period = get_parameter ("period", 3600);
$width = get_parameter ("width", 555);
$height = get_parameter ("height", 245);
$label = get_parameter ("label", "");
$start_date = get_parameter ("start_date", date("Y-m-d"));
$draw_events = get_parameter ("draw_events", 0);
$zoom = get_parameter ("zoom", 1);
$modulesChecked = get_parameter('modules', array());
$filter = get_parameter('filter', 0);

$modules = get_agent_modules($id_agente);

if (!$filter) {
	foreach ($modules as $id => $module) {
		$modulesChecked[$id] = 1;
	}
}


$table = null;
$table->width = '90%';

$table->size = array();
$table->size[0] = '20%';
$table->size[1] = '80%'; 

$table->style[0] = 'font-weight: bolder; text-align: right;';
$table->style[1] = '';

$table->data[0][0] = __('Modules');
$listModules = array();
foreach ($modules as $id => $module) {
	$checked = false;
	if (isset($modulesChecked[$id]))
		$checked = (bool) $modulesChecked[$id];
	$listModules[] = '<span style="white-space: nowrap;">' . print_checkbox('modules[' .  $id . ']', 1, $checked, true) . ' ' . $module . '</span>';
}
$table->data[0][1] = implode(' ', $listModules);

$table->data[1][0] = __('Begin date');
$table->data[1][1] = print_input_text ("start_date", substr ($start_date, 0, 10),'', 10, 40, true);
$table->data[1][1] .= print_image ("images/calendar_view_day.png", true, array ("onclick" => "scwShow(scwID('text-start_date'),this);"));

$table->data[2][0] = __('Zoom factor');
$options = array ();
$options[$zoom] = 'x'.$zoom;
$options[1] = 'x1';
$options[2] = 'x2';
$options[3] = 'x3';
$options[4] = 'x4';
$table->data[2][1] = print_select ($options, "zoom", $zoom, '', '', 0, true);

$table->data[3][0] = __('Time range');
$options = array ();
$options[3600] = human_time_description_raw (3600);
$options[7200] = human_time_description_raw (7200);
$options[21600] = human_time_description_raw (21600);
$options[43200] = human_time_description_raw (43200);
$options[86400] = human_time_description_raw (86400);
$options[172800] = human_time_description_raw (172800);
$options[432000] = human_time_description_raw (432000);
$options[604800] = human_time_description_raw (604800);
$options[1296000] = human_time_description_raw (1296000);
$options[2592000] = human_time_description_raw (2592000);
$options[5184000] = human_time_description_raw (5184000);
$options[15552000] = human_time_description_raw (15552000);
$table->data[3][1] = print_extended_select_for_time($options, 'period', $period, '', '', 0, 7, true) . ' ' . __('secs');

$table->data[4][0] = __('Show events');
$table->data[4][1] = print_checkbox ("draw_events", 1, (bool) $draw_events, true);
$table->data[5][0] = __('Show alerts');
$table->data[5][1] = print_checkbox ("draw_alerts", 1, (bool) $draw_alerts, true);

$htmlForm = '<form method="post" action="index.php?sec=estado&sec2=operation/agentes/ver_agente&tab=graphs&id_agente=' . $id_agente . '" >';
$htmlForm .= print_table($table, true);
$htmlForm .= print_input_hidden('filter', 1, true);
$htmlForm .= '<div class="action-buttons" style="width: '.$table->width.'">';
$htmlForm .= print_submit_button (__('Filter'), 'filter_button', false, 'class="sub upd"', true);
$htmlForm .= '</div>';
$htmlForm .= '</form>';

toggle($htmlForm,__('Filter graphs'), __('Toggle filter(s)'));

$utime = get_system_time ();
$current = date("Y-m-d", $utime);

if ($start_date != $current)
	$date = strtotime($start_date);
else
	$date = $utime;

foreach ($modulesChecked as $idModuleShowGraph => $value) {
	echo "<h3>" . $modules[$idModuleShowGraph] . '</h3>';
	if ($config['flash_charts']) {
		echo grafico_modulo_sparse ($idModuleShowGraph, $period, $draw_events, $width, $height,
			$modules[$idModuleShowGraph], $unit_name, $draw_alerts, $avg_only, $pure, $date);
	}
	else {
		$image = 'include/fgraph.php?' . 
			'tipo=sparse' . 
			'&draw_alerts=' . $draw_alerts .
			'&draw_events=' . $draw_events .
			'&id=' . $idModuleShowGraph .
			'&zoom=' . $zoom .
			'&label=' . $modules[$idModuleShowGraph] .
			'&height=' . $height .
			'&width=' . $width .
			'&period=' . $period .
			'&avg_only=' . $avg_only .
			'&date=' . $date;
	
		print_image ($image, false, array ("border" => 0));
	}
}

echo "<div style='clear: both;'></div>";
?>