<?php
// $Id: highlighter.inc.php,v 0.1 2019/10/02
// Copyright (C)
//   2019 Kwansei Gakuin University comp-staff
// License; GPL v2
// highlighter plugin

function plugin_highlighter_inline() {
	$args	= func_get_args();
	$style  = "background: repeating-linear-gradient(-45deg, #ffcce7, #ffcce7 3px,#ffe9f4 3px, #ffe9f4 7px);";//default

	$len = func_num_args();

	if (func_num_args() == 2) {
		$style = $args[0];
		$pat    = $args[1];
	} else {
		$pat    = $args[0];
	}

	if (func_num_args() <= 2) {
		$ret = "<span style='$style'>$pat</span>";
		return $ret;
	}

	return FALSE;
}

function plugin_highlighter_convert() {
	$argc  = func_num_args();
	$args  = func_get_args();
	$style = "background: repeating-linear-gradient(-45deg, #ffcce7, #ffcce7 3px,#ffe9f4 3px, #ffe9f4 7px);";//default
	$wholeline = false;
	if (($args[$argc-1] == "true")) {
		$wholeline = true;
	} else {
		$wholelien = false;
	}

	if ($wholeline) {
		$argc -= 1;
	}

	if ($argc == 2) {
		$style = $args[1];
	}

	if (! $wholeline) {
		$pat    = $args[0];
		$ret = <<<EOT
<script type="text/javascript">
    (function() {
	let lst = document.getElementsByTagName("li");
	let pat = "$pat";
	for (let i = 0; i< lst.length; i++) {
	    if (lst[i].parentNode.classList.contains("list1")){
		var text = lst[i].innerHTML;
		var reg = new RegExp(pat, "g");
		lst[i].innerHTML = text.replace(reg, '<span style="$style">$&</span>');
	    }
	}
    })()
 </script>
EOT;
		return $ret;

	} else {
		$pat = $args[0];
		$sytle = $args[1];

		$ret = <<<EOT
<script type="text/javascript">
    let lst = document.getElementsByTagName("li");
    let pat = "$pat";
    let style = "background: green;"
    for (let i = 0; i< lst.length; i++) {
	if (lst[i].parentNode.classList.contains("list1")){
	    var reg = RegExp(pat);
	    var text = lst[i].innerHTML;

	    if (text.match(reg)) {
		lst[i].style = "$args[1]";
	    }
	}

    }
 </script>
EOT;
		return $ret;

	}

	return FALSE;
}

function plugin_highlighter_init() {
}
?>

