//'nahrazuje tagy bezpečnou alternativou a povoluje vybrané
function HandleHTML(str, ANotParseLink) { 
	//'... zákaz všech tagů převodem na bezpečné znaky
	var txt = "" + str + "";
	txt = ReplaceString(txt, "<br />", "\r\n");
	txt = ReplaceString(txt, "<", "&lt;");
	txt = ReplaceString(txt, ">", "&gt;");
	txt = ReplaceString(txt, "'", "&rsquo;");
	txt = ReplaceString(txt, "\"", "&rdquo;");
	//'... povolení vybraných tagů
	txt = ReplaceString(txt, "&lt;i&gt;", "<i>");
	txt = ReplaceString(txt, "&lt;I&gt;", "<i>");
	txt = ReplaceString(txt, "&lt;/i&gt;", "</i>");
	txt = ReplaceString(txt, "&lt;/I&gt;", "</i>");
	txt = ReplaceString(txt, "&lt;b&gt;", "<strong>");
	txt = ReplaceString(txt, "&lt;B&gt;", "<strong>");
	txt = ReplaceString(txt, "&lt;/b&gt;", "</strong>");
	txt = ReplaceString(txt, "&lt;/B&gt;", "</strong>");
	txt = ReplaceString(txt, "&lt;u&gt;", "<span class=\"podtrzene\">");
	txt = ReplaceString(txt, "&lt;U&gt;", "<span class=\"podtrzene\">");
	txt = ReplaceString(txt, "&lt;/u&gt;", "</span>");
	txt = ReplaceString(txt, "&lt;/U&gt;", "</span>");
	txt = ReplaceString(txt, "&lt;br&gt;", "");
	txt = ReplaceString(txt, "&lt;BR&gt;", "");
	txt = ReplaceString(txt, "&lt;Br&gt;", "");
	txt = ReplaceString(txt, "&lt;bR&gt;", "");
	txt = ReplaceString(txt, "&lt;br/&gt;", "");
	txt = ReplaceString(txt, "&lt;BR/&gt;", "");
	txt = ReplaceString(txt, "&lt;Br/&gt;", "");
	txt = ReplaceString(txt, "&lt;bR/&gt;", "");
	if (ANotParseLink == null || !ANotParseLink) txt = ParseHTTPLink(txt);
	txt = ReplaceString(txt, "\r\n", "<br />");
	return txt;
}

function ParseHTTPLink(AText) {
	var ret = "";
	if (AText.toLowerCase().indexOf("http://") < 0 && AText.toLowerCase().indexOf("https://") < 0 && AText.toLowerCase().indexOf("ftp://") < 0) return AText;
	else {
		var protocol = null;
		for (var protocol_i = 0; protocol_i < 3; protocol_i ++) {
			switch (protocol_i) {
				case 0: protocol = "http://"; break;
				case 1: protocol = "https://"; break;
				case 2: protocol = "ftp://"; break;
			}
			while (AText.toLowerCase().indexOf(protocol) >= 0) {
				var index = AText.toLowerCase().indexOf(protocol);
				ret += AText.substring(0, index);
				AText = AText.substring(index + protocol.length, AText.length);
				var url_index = AText.indexOf(" ") < 0 && AText.indexOf("\r\n") < 0 ? AText.length : AText.indexOf("\r\n") >= 0 && AText.indexOf(" ") >= 0 ? (AText.indexOf("\r\n") < AText.indexOf(" ") ? AText.indexOf("\r\n") : AText.indexOf(" ")) : AText.indexOf("\r\n") >= 0 ? AText.indexOf("\r\n") : AText.indexOf(" ");
				var url = AText.substring(0, url_index);
				ret += "<a href=\"" + protocol + "" + url + "\">" + protocol + (url.length < 40 ? url : url.substring(0, 40) + " ...") + "</a>";
				AText = AText.substring(url_index, AText.length);
			}
		}
		ret += AText;
		return ret;
	}
}

function UnhandleHTML(str) { 
	var txt = "" + str + "";
	txt = ReplaceString(txt, "<br />", "\r\n");
	txt = ReplaceString(txt, "<strong>", "<b>");
	txt = ReplaceString(txt, "</strong>", "</b>");
	txt = txt.replace(/<a[^>]* href="([^"]+)[^>]*>[^<]+<\/a>/gi, "$1");
	return txt;
}
