<?php
include_once($UTIL_DIR . "/convert.php");
include_once($UTIL_DIR . "/smileys.php");

function parse($input, $indent = "")
{
  global $testing;
	// Remove all tags from input (convert to xml)
	$output = convert_xml($input);

	// Replace newlines with '\n' and indent code.
	$nls = array("\n\r", "\n\c", "\n");
	$nls = str_replace($nls, "\n" . $indent, $indent . $output);
	$output = $nls;

	// Put in the smileys
	global $smileys;
	foreach($smileys as $smiley) {
	  $smile = $smiley[0];
	  $smile = str_replace($smile, "<img alt=\"\" src=\"gfx/smileys/" . $smiley[1] . "\"></img>", $output);
	  $output = $smile;
	}

	// Replace URLs with <a></a> tags
	$urls = "";
	while(($start = strpos($output, "http://"))) {
		$pre = substr($output, 0, $start);
		$url = substr($output, $start);
		$end1 = strpos($url, " ");
		$end2 = strpos($url, "\n");
		if($end1 == 0) {
			if($end2 == 0) $end = strlen($url);
			else $end = $end2;
		} else {
			if($end2 == 0) $end = $end1;
			else if($end1 < $end2) $end = $end1;
			else $end = $end2;
		}
		$url = substr($url, 0, $end);
		$post = substr($output, $start + $end);
		if(strstr($url, ".jpg") || strstr($url, ".gif") || strstr($url, ".png")) {
		  $urls .= $pre . "<a href=\"" . $url . "\"><img alt=\"" . $url . "\" style=\"border: solid red 1px;\" src=\"imagecache.php?filename=" . urlencode($url) . "\"/></a>";
		} else {
		  $urls .= $pre . "<a href=\"" . $url . "\">" . $url . "</a>";
		}
		$output = $post;
	}
	$urls .= $output;
	$output = $urls;

	// Replace [quote title=...]...[/quote]
        $urls = "";
	while(($start = strpos($output, "[quote"))) {
                $pre = substr($output, 0, $start);
                $url = substr($output, $start);
                $end = strpos($url, "[/quote]") + strlen("[/quote]");
                $url = substr($url, 0, $end - strlen("[/quote]"));
                $post = substr($output, $start + $end + strlen("[/quote]") );

		$header = substr($url, 0, strpos($url, "]") + 1);
		$body = substr($url, strpos($url, "]") + 1);

		$header = str_replace(array("title"), "", $header);
		$header = str_replace(array("="), "<div class=\"title\">", $header);
		$header = str_replace(array("[quote"), "<div class=\"quote\">", $header);
		$header = str_replace(array("]"), "  </div>", $header);

                $urls .= $pre . $header . $body . "</div>";
                $output = $post;
	}
        $urls .= $output;
        $output = $urls;
	
	//
	// Hack to make quotes two levels deep.
	//
	// Replace [quote title=...]...[/quote]
        $urls = "";
	while(($start = strpos($output, "[quote"))) {
                $pre = substr($output, 0, $start);
                $url = substr($output, $start);
                $end = strpos($url, "[/quote]") + strlen("[/quote]");
                $url = substr($url, 0, $end - strlen("[/quote]"));
                $post = substr($output, $start + $end + strlen("[/quote]") );

		$header = substr($url, 0, strpos($url, "]") + 1);
		$body = substr($url, strpos($url, "]") + 1);

		$header = str_replace(array("title"), "", $header);
		$header = str_replace(array("="), "<div class=\"title\">", $header);
		$header = str_replace(array("[quote"), "<div class=\"quote\">", $header);
		$header = str_replace(array("]"), "  </div>", $header);

                $urls .= $pre . $header . $body . "</div>";
                $output = $post;
	}
        $urls .= $output;
        $output = $urls;

        // <b></b>
        $b = array("[b]", "[B]");
        $b = str_replace($b, "<strong>", $output);
        $output = $b;

        $b = array("[/b]", "[/B]");
        $b = str_replace($b, "</strong>", $output);
        $output = $b;

        // <i></i>
        $i = array("[i]", "[I]");
        $i = str_replace($i, "<em>", $output);
        $output = $i;

        $i = array("[/i]", "[/i]");
        $i = str_replace($i, "</em>", $output);
        $output = $i;

	// Replace newlines with <br/> tags
	$nls = array("\n");
	$nls = str_replace($nls, "<br/>\n", $output);
	$output = $nls;

	return $output;
}

?>