public function getAvgRuntime(Mage_Index_Model_Process $process)
 {
     $indexerCode = $process->getIndexerCode();
     if (!isset($this->_avgRuntimes[$indexerCode])) {
         $this->_avgRuntimes[$indexerCode] = Mage::getModel('hackathon_indexerstats_resource/history')->getAvg($process->getId());
     }
     return $this->_avgRuntimes[$indexerCode];
 }
    /**
     * Renders progress bar with estimated time (for running process)
     *
     * @param Mage_Index_Model_Process $process
     * @return string
     */
    protected function _renderProgress(Mage_Index_Model_Process $process)
    {
        $progressBarId = 'hackathon_indexerstats_progress_' . $process->getIndexerCode();
        $progress = min(100, $this->_runtimeModel->getProgress($process) * 100);
        if ($this->_runtimeModel->getProgress($process) >= 1) {
            $inTimeClass = 'hackathon_indexerstats_not_in_time';
            $timeCaption = Mage::helper('hackathon_indexerstats')->__('over time');
        } else {
            $inTimeClass = 'hackathon_indexerstats_in_time';
            $timeCaption = Mage::helper('hackathon_indexerstats')->__('remaining');
        }
        $now = date_create()->getTimestamp();
        $startTimestamp = $this->_runtimeModel->getStartTime($process)->getTimestamp();
        $estimatedEndTimestamp = $this->_runtimeModel->getEstimatedEndTime($process)->getTimestamp();
        $timeDisplay = $this->_runtimeModel->getRemainingTime($process);
        return <<<HTML
<div id="{$progressBarId}" data-now="{$now}" data-started="{$startTimestamp}" data-estimated_end="{$estimatedEndTimestamp}" class="hackathon_indexerstats_info hackathon_indexerstats_progress {$inTimeClass}">
    <span style="width: {$progress}%;"><span></span></span>
    <div><span class="hackathon_indexerstats_time_display">{$timeDisplay}</span> <span class="hackathon_indexerstats_time_caption">{$timeCaption}</span></div>
</div>
HTML;
    }