/**
  * constructor
  *
  * @param array $values data array
  * @access public
  */
 function XooNIpsGraphDataBrushLine($values)
 {
     parent::XooNIpsGraphData();
     $this->values =& $values;
     $this->data_type = 'brush';
     $this->setPoint('none');
 }
/**
 * draw graph (private)
 *
 * @access private
 * @param array &$xdata X data
 * @param array &$ydata Y data
 * @param string $title graph title
 * @param string $xlabel X label
 * @param string $mode query type
 */
function _xoonips_eventlog_graph_draw(&$xdata, &$ydata, $title, $xlabel, $mode)
{
    // load graph library
    include_once dirname(dirname(__FILE__)) . '/class/base/graph.class.php';
    $unicode =& xoonips_getutility('unicode');
    // count number of data
    $num = count($ydata);
    // create graph object
    $xgraph = new XooNIpsGraph(500, 400);
    // initilize parameters
    $xgraph->setAxisGrid('x', 'none');
    $xgraph->setAxisGridLines('y', 6);
    $xgraph->frame->setType('axis');
    $xgraph->setTitle($unicode->encode_utf8($title));
    $xgraph->axis['bottom']->setLabel($unicode->encode_utf8($xlabel));
    switch ($mode) {
        case 'month':
            // hide x ticks
            if ($num > 24) {
                $xgraph->setAxisTicksColor('x', 'none');
            }
            // rotate x tick labels
            if ($num > 6) {
                $xgraph->setAxisAngle('x', 60);
            }
            // set x tick interval
            if ($num < 24) {
                $xinterval = 1;
            } else {
                if ($num < 60) {
                    $xinterval = 4;
                } else {
                    $xinterval = 12;
                }
            }
            $xgraph->axis['bottom']->setTickInterval($xinterval);
            // create y data
            $xgraph_data = new XooNIpsGraphDataBar($ydata);
            $xgraph_data->setBarSize(0.5);
            $xgraph->setXAxisOffset(0.5);
            $xgraph_data->setColor('red');
            break;
        case 'day':
        case 'total':
            // hide x ticks
            if ($num > 70) {
                $xgraph->setAxisTicksColor('x', 'none');
            }
            // rotate x tick labels
            if ($num > 130) {
                $xgraph->setAxisAngle('x', 60);
            }
            // set x tick interval
            if ($num < 32) {
                $xinterval = 3;
            } else {
                if ($num < 70) {
                    $xinterval = 5;
                } else {
                    $xinterval = 1;
                }
            }
            $xgraph->axis['bottom']->setTickInterval($xinterval);
            // create y data
            $xgraph_data = new XooNIpsGraphDataLine($ydata);
            $xgraph_data->setColor('blue');
            $xgraph_data->setShadowColor('none');
            break;
        case 'domain':
            // create y data
            $xgraph_data = new XooNIpsGraphDataBar($ydata);
            $xgraph_data->setBarSize(0.5);
            $xgraph->setXAxisOffset(0.5);
            $xgraph_data->setColor('green');
            break;
    }
    // set x tick labels
    $xgraph->setXData($xdata);
    // add y data and set prefered maximum/minimum y axis range
    $xgraph->addYData($xgraph_data);
    $xgraph->setPreferedYAxisRange();
    // draw
    $xgraph->draw();
}