public static function highlighter(array $terms, $start = 'highlighter-start', $end = 'highlighter-end', $className = 'highlight', $tag = 'span')
	{
		$sig = md5(serialize(array($terms, $start, $end)));
		if (isset(self::$loaded[__METHOD__][$sig]))
		{
			return;
		}

		$script = 'assets/jquery.highlight.js';
		if (App::get('config')->get('debug'))
		{
			$script = 'assets/jquery.highlight.min.js';
		}
		Asset::script($script, true, true);

		$terms = str_replace('"', '\"', $terms);

		$options = "{
			className: '" . $className . "',
			element: '" . $tag . "'
		}";

		App::get('document')->addScriptDeclaration("
			jQuery(document).ready(function($){
				$('body').highlight([\"" . implode('","', $terms) . "\"], " . $options . ");
			});
		");

		self::$loaded[__METHOD__][$sig] = true;

		return;
	}