var curRow = 1;
var curCol = 1;

var nUpArrow	= 0;
var nCurMenu	= 0;
var nMenuLength = 0;

var sMenuColor = "#fafcfe";
var sMenuColorSelected = "#e0e0e0";

var isKeyEvent = false;
var bAutoRequest = false;

var nHeightPerLine = 15;
var showMaxCount = 5;

var baseYPos = 200;
var baseXPos = -160;
var gapY = 14.2;
var gapX = 7.4;

var xmlHttp;
var lastKeyword = "";
var checkFirst = false;
var loopSendKeyword = false;

// ºê¶ó¿ìÀú Å¸ÀÔ
var agt = navigator.userAgent.toLowerCase();
var is_firefox = (agt.indexOf('firefox')!=-1) ? true:false;
var is_safari = (agt.indexOf("safari")!=-1) ? true:false;
var is_chrome = (agt.indexOf("chrome")!=-1) ? true:false;
var is_ie = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));

// ¸¶¿ì½º ÀÌº¥Æ®¸¦ ±â´Ù¸°´Ù.
if(window.addEventListener)
{
	document.addEventListener("mousedown", mouseDown, false);
}
else if(window.attachEvent)
{
	document.attachEvent("onmousedown", mouseDown);
}

// ÀÚµ¿¿Ï¼ºÃ¢ ÀÌ¿ÜÀÇ °÷À» Å¬¸¯ÇÏ¸é ÀÚµ¿¿Ï¼ºÃ¢À» ´Ý´Â´Ù.
function mouseDown(e)
{
	var el = e.srcElement || e.target;
	
	if (el.id == "SearchStr")
	{
		if (document.getElementById("suggest").style.visibility == "hidden")
		{
			setVisibility("suggest", "visible");
		}
		else
		{
			setVisibility("suggest", "hidden");
		}
	}
	else if(el.id != "suggest" && el.parentNode.id != "suggest")
	{
		setVisibility("suggest", "hidden");
	}
}

// ÇÑ±ÛÀÌ¸é true ¾Æ´Ï¸é false¸¦ ¸®ÅÏÇÑ´Ù.(euc-kr)
function isHangul(str)
{
	var check = /[¤¡-¤þ|°¡-Èþ]/;
	if(check.test(str)) return true;
	return false;
}

// ÇÑÀÚ¸é true ¾Æ´Ï¸é false¸¦ ¸®ÅÏÇÑ´Ù.(euc-kr)
function isHanja(str)
{
	var check = /[Ê¡-ýþ]/;
	if (check.test(str)) return true;
	return false;
}

// textareaÀÇ ÇöÀç ´Ü¾îÀÇ positionÀ» °¡Á®¿Â´Ù.
function getWordPosition(id)
{
	txtArea = document.getElementById(id);
	
	maxCol = txtArea.cols;
	curText = txtArea.value;
	curTextLength = txtArea.value.length;

	i = 0;
	iXPos = 1;
	iYPos = 1;

	tmpWordXPos = 1;

	while(i < curTextLength)
	{
		cChar = curText.charAt(i);
		// ÇÑ±Û, ÇÑÀÚ´Â µÎ ÀÚ¸®¸¦ Â÷ÁöÇÑ´Ù.
		if (isHangul(cChar) == true || isHanja(cChar) == true)
		{
			iXPos += 2;
		}
		else
		{
			iXPos++;
		}
		// °ø¹éÀÌ ÀÖÀ¸¸é tmpWordPos¿¡ ÀúÀåÇÑ´Ù.
		if (cChar == " ")
		{
			tmpWordXPos = iXPos;
		}
		// ÁÙ ¹Ù²ÞÀÌ¸é ÇöÀç row°ªÀ» 1 Áõ°¡½ÃÅ²´Ù.
		if (cChar == "\n") { 
			iXPos = 1; 
			tmpWordXPos = 1;
			iYPos++;
		}
		// textareaÀÇ cols°ª - 1À» ³Ñ¾î°¡¸é ÇöÀç row°ªÀ» 1 Áõ°¡½ÃÅ²´Ù.
		if (iXPos >= maxCol)
		{
			iYPos++;
			iXPos = iXPos - maxCol + 1;
		}
		i++;
	}
	// tmpWordXPos°¡ iXPosº¸´Ù Å©¸é row°¡ Áõ°¡Çß´Ù´Â °ÍÀÓ
	if (tmpWordXPos > iXPos)
	{
		iXPos = 1;
	}
	else
	{
		iXPos = tmpWordXPos;
	}

	// textareaÀÇ row°ªÀ» ³Ñ±â¸é textareaÀÇ row°ªÀ¸·Î ¼³Á¤
	if (iYPos > txtArea.rows)
	{
		iYPos = txtArea.rows;
	}
	// textareaÀÇ col°ª-12¸¦ ³Ñ±â¸é textareaÀÇ col-12°ªÀ¸·Î ¼³Á¤
	if (iXPos > txtArea.cols - 12)
	{
		iXPos = txtArea.cols - 12;
	}
	curRow = iYPos;
	//curCol = iXPos;
	curCol = 1;
}

// ÀÚµ¿¿Ï¼ºÃ¢À» ÇöÀç ´Ü¾î À§Ä¡¿¡ µû¶ó ¿Å±ä´Ù.
function moveSuggestBox(id)
{
	getWordPosition('SearchStr');
	suggestBox = document.getElementById(id);
	suggestBox.style.top = baseYPos + curRow * gapY + "px";
	suggestBox.style.marginLeft = baseXPos + curCol * gapX + "px";
}

// suggest´Ü¾î °¹¼ö¿¡ µû¶ó ÀÚµ¿¿Ï¼ºÃ¢ ³ôÀÌ¸¦ Á¤ÇÑ´Ù.
function setHeightSuggestBox(id)
{
	suggestBox = document.getElementById(id);
	var topMax = showMaxCount;
	var itemHeight;
	if (is_ie)
	{
		itemHeight = 16.5;
	}
	else
	{
		itemHeight = 15;
	}
	
	var FrontCount = parseInt(document.getElementById("acFront").getAttribute("value"));
	var MiddleCount = parseInt(document.getElementById("acMiddle").getAttribute("value"));
	var BackCount = parseInt(document.getElementById("acBack").getAttribute("value"));

	if (FrontCount + MiddleCount + BackCount > showMaxCount)
	{
		suggestBox.style.height = itemHeight * showMaxCount;
	}
	else
	{
		if (FrontCount > 0 && MiddleCount > 0 && BackCount > 0)
		{
			suggestBox.style.height = itemHeight * (FrontCount + MiddleCount + BackCount);
		}
		else
		{
			suggestBox.style.height = itemHeight * (FrontCount + MiddleCount + BackCount);
		}
	}
}

// textareaÀÇ word¸¦ °¡Á®¿Â´Ù.
function getTextAreaWord(id)
{
	txtArea = document.getElementById(id);
	curText = txtArea.value;

	return curText;
}

// textareaÀÇ word¸¦ ¹Ù²Û´Ù.
function setTextAreaWord(id, str)
{
	txtArea = document.getElementById(id);
	txtArea.value = str;
}

// textareaÀÇ last word¸¦ °¡Á®¿Â´Ù.
function getLastWord(id)
{
	txtArea = document.getElementById(id);
	curText = txtArea.value;
	lastWordPosition = curText.lastIndexOf(" ");
	newLinePosition = curText.lastIndexOf("\n");
	
	if (lastWordPosition < newLinePosition)
	{
		lastWordPosition = newLinePosition;
	}
	
	return curText.substring(lastWordPosition + 1, curText.length);
}

// textareaÀÇ last word¸¦ ¹Ù²Û´Ù.
function setLastWord(id, str)
{
	txtArea = document.getElementById(id);
	curText = txtArea.value;
	lastWordPosition = curText.lastIndexOf(" ");
	newLinePosition = curText.lastIndexOf("\n");
	
	if (lastWordPosition < newLinePosition)
	{
		lastWordPosition = newLinePosition;
	}

	txtArea.value = curText.substring(0, lastWordPosition + 1) + str;
}

// visibility Á¶Àý(option : "hidden" or "visible") - keeps the element
function setVisibility(id, option)
{
	suggestBox = document.getElementById(id);
	if (suggestBox.style.display != "none")
	{
		if (option == "hidden" || option == "visible")
		{
			suggestBox.style.visibility = option;
		}
	}
	
}

// display Á¶Àý(option : "none" or "block" or "inline") - removes the element
function setDisplay(id, option)
{
	if (option == "none" || option == "block" || option == "inline")
	{
		suggestBox = document.getElementById(id);
		suggestBox.style.display = option;
	}
}

// ¸¶¿ì½º Æ÷ÀÎÅÍ°¡ µé¾î¿ÔÀ» ¶§
function onMouseOverKeyword(cursorNum)
{
	if (nCurMenu > 0)
	{
		document.getElementById("word"+nCurMenu).style.backgroundColor = sMenuColor;
	}
	curCursorPos = cursorNum;
	var element = document.getElementById("word"+curCursorPos);
	if(element) {
		element.style.backgroundColor = sMenuColorSelected;
		nCurMenu = curCursorPos;
	}
}

// ¸¶¿ì½º Æ÷ÀÎÅÍ°¡ ¹þ¾î³µÀ» ¶§
function onMouseOutKeyword(cursorNum)
{
	curCursorPos = cursorNum;
	var element = document.getElementById("word"+curCursorPos);
	if(element) {
		element.style.backgroundColor = sMenuColor;
	}
}

// ´Ü¾î ¼±ÅÃ
function selectKeyword(cursorNum)
{
	setTextAreaWord("SearchStr", document.getElementById('word'+cursorNum).getAttribute("value"));
	initValue();
	document.getElementById("SearchStr").focus();
}

// ÃÊ±âÈ­
function initValue()
{
	document.getElementById("suggest").innerHTML = "";
	document.getElementById("suggest").scrollTop = 0;
	lastKeyword = "";
	nUpArrow = 0;
	nCurMenu	= 0;
	nMenuLength = 0;
	isKeyEvent = false;
	setDisplay("suggest", "none");
}

// textarea¿¡ Å¸ÀÌÇÎÇßÀ» ¶§
function searchDown(e, eventObj) {
	if (!e) {
		e = top.window.event;
	}

	var oPValue = getTextAreaWord('SearchStr');
	var oLayerSuggest = document.getElementById('suggest');

	var nKeyCode = e.keyCode;

	switch (nKeyCode)
	{
	case 40:	// down arrow
		if (nMenuLength > 0 && oPValue != "" && oLayerSuggest.style.visibility != "hidden")
		{
			if (nCurMenu != nMenuLength && nCurMenu > 0)
			{
				document.getElementById('word'+nCurMenu).style.background = sMenuColor;
			}
			nCurMenu++;
			if (nCurMenu >= nMenuLength)
			{
				nCurMenu = nMenuLength;
			}
			isKeyEvent = false;
			document.getElementById('word'+nCurMenu).style.background = sMenuColorSelected;
			document.getElementById('word'+nCurMenu).focus();	
			if (nCurMenu > showMaxCount - 1)
			{
				if (is_ie)
				{
					oLayerSuggest.doScroll("scrollbarDown");
				}
			}

			if (is_ie)
			{
				nHeightPerLine = 15;
			}
			else
			{
				nHeightPerLine = 15;
			}
			if (!(
				oLayerSuggest.scrollTop > ((nCurMenu - 4) * nHeightPerLine) &&
				oLayerSuggest.scrollTop < ((nCurMenu - 4) * nHeightPerLine) + (nHeightPerLine * 2)
				)) 
			{
				if ((oLayerSuggest.scrollTop + nHeightPerLine) == ((nCurMenu - 2) * nHeightPerLine))
				{
					oLayerSuggest.scrollTop = oLayerSuggest.scrollTop - nHeightPerLine;
				}
				else
				{	
					oLayerSuggest.scrollTop = (nCurMenu - 4) * nHeightPerLine;
				}
			}
			cancelEvent(e);
		}
		else if (nUpArrow < 1 && nCurMenu == 0 && oLayerSuggest.style.visibility == "hidden")
		{
			setVisibility("suggest", "visible");
			cancelEvent(e);
			nUpArrow = 0;
		}
		else if (nUpArrow >= 1 && nCurMenu == 0 && oLayerSuggest.style.visibility == "hidden")
		{
			nUpArrow--;
		}
		break;
	case 38:	// up arrow
		if (nMenuLength > 0 && oPValue != "" && oLayerSuggest.style.visibility != "hidden")
		{
			if (nCurMenu > 0)
			{
				document.getElementById('word'+nCurMenu).style.background = sMenuColor;
				nCurMenu--;
			}
			if (nCurMenu <= 0)
			{
				//nCurMenu = 1;
				setVisibility("suggest", "hidden");
				cancelEvent(e);
				break;
			}
			isKeyEvent = false;
			document.getElementById('word'+nCurMenu).style.background = sMenuColorSelected;
			if (is_ie)
			{
				oLayerSuggest.doScroll("scrollbarUp");
			}

			if (is_ie)
			{
				nHeightPerLine = 15;
			}
			else
			{
				nHeightPerLine = 15;
			}
			
			if (!(
				oLayerSuggest.scrollTop > ((nCurMenu - 4) * nHeightPerLine) &&
				oLayerSuggest.scrollTop < ((nCurMenu - 4) * nHeightPerLine) + (nHeightPerLine * 2)
				)) 
			{
				if ((oLayerSuggest.scrollTop + nHeightPerLine) == ((nCurMenu - 2) * nHeightPerLine))
				{
					oLayerSuggest.scrollTop = oLayerSuggest.scrollTop - nHeightPerLine;
				}
				else
				{	
					oLayerSuggest.scrollTop = (nCurMenu - 2) * nHeightPerLine;
				}
			}
			cancelEvent(e);
		}
		else if (oLayerSuggest.style.visibility == "hidden" && nCurMenu <= 0)
		{
			if (curRow > nUpArrow + 1)
			{
				nUpArrow++;
			}
		}
		break;
	case 27:	// esc Å°
		// ÀÚµ¿¿Ï¼ºÃ¢À» ´Ý´Â´Ù.
		setVisibility("suggest", "hidden");
		if (nCurMenu > 0)
		{
			document.getElementById('word'+nCurMenu).style.background = sMenuColor;
		}
		nCurMenu = 0;
		cancelEvent(e);
		break;
	case 32:	// space Å°
		// ctrl+spaceÇÏ¸é ÀÚµ¿¿Ï¼ºÃ¢À» ¿¬´Ù.
		if (e.ctrlKey)	//ctrl Å°
		{
			setVisibility("suggest", "visible");
			cancelEvent(e);
		}
		break;
	case 13:			// enter Å°
		if (e.ctrlKey)	//ctrl Å°
		{
			this.form.submit();
		}
		else if (nMenuLength > 0 && oPValue != "" && oLayerSuggest.style.visibility != "hidden")
		{
			if (nCurMenu > 0)
			{
				selectKeyword(nCurMenu);
				cancelEvent(e);
			}
			else if (nCurMenu == 0)
			{
				setVisibility("suggest", "hidden");
			}
		}
		break;
	case 9:				// tab Å°
		// suggest´Ü¾î ¼±ÅÃ
		if (nMenuLength > 0 && oPValue != "" && oLayerSuggest.style.visibility != "hidden")
		{
			if (nCurMenu > 0)
			{
				selectKeyword(nCurMenu);
				cancelEvent(e);
			}
			else if (nCurMenu == 0)
			{
				setVisibility("suggest", "hidden");
			}
		}
		break;
	default:
		bAutoRequest = false;
		startSuggest();
		isKeyEvent = true;
	}
}

// ÀÌº¥Æ® ÁßÁö
function cancelEvent(e) {
	e.returnValue = false;
	if (e && e.preventDefault) e.preventDefault();
}

// ÀÚµ¿¿Ï¼º ½ÃÀÛ
function startSuggest()
{
	if(checkFirst == false)
	{
		setTimeout("sendKeyword();", 50);
		loopSendKeyword = true;	// 0.05ÃÊ ÈÄ¿¡ sendKeyword()ÇÔ¼ö¸¦ ½ÇÇà
	}
	checkFirst = true;
}

// ÀÔ·Â¹ÞÀº ´Ü¾î¸¦ autoComplete.asp¿¡ GET ¹æ½ÄÀ¸·Î º¸³½´Ù.
function sendKeyword()
{
	if(loopSendKeyword == false)
		return;
	
	var keyword = getTextAreaWord("SearchStr");
	if(keyword == "")
	{
		initValue();
	}
	else if(keyword != lastKeyword && isKeyEvent == true)
	{
		lastKeyword = keyword;

		if(keyword != "")
		{
			xmlHttp = GetXmlHttpObject();

			if (xmlHttp == null)
			{
				alert ("Your browser does not support AJAX!");
				return;
			}
			var url = "./suggest/autoComplete.asp";
			first = 6;		// ³ëÃâ ¼ö : ¾Õ ´Ü¾î ÀÏÄ¡
			middle = 4;		// ³ëÃâ ¼ö : Áß°£ ´Ü¾î ÀÏÄ¡
			last = 3;		// ³ëÃâ ¼ö : µÚ ´Ü¾î ÀÏÄ¡
			url += "?keyword=" + encodeURIComponent(keyword);
			url += "&first=" + first;
			url += "&middle=" + middle;
			url += "&last=" + last;

			xmlHttp.open("GET",url,true);
			xmlHttp.onreadystatechange = displayResult;
			xmlHttp.send(null);
		}
		else
		{
			initValue();
		}
	}
	setTimeout("sendKeyword();", 50);
}

// autoComplete.asp¿¡¼­ °á°ú¸¦ ¹Þ¾Æ È­¸é¿¡ Ãâ·ÂÇÑ´Ù.
function displayResult() 
{ 
	if(xmlHttp.readyState == 4)
	{ 
		if(xmlHttp.status == 200)
		{
			var XmlText = xmlHttp.responseText;
			var innerHtml = getHtmlResult(XmlText, "./suggest/suggest.xsl");
			suggestBox = document.getElementById("suggest");
			
			if (is_ie)	// internet explorer
			{
				innerHtml = innerHtml.replace(/&gt;/g, ">");
				innerHtml = innerHtml.replace(/&lt;/g, "<");
				suggestBox.innerHTML = innerHtml;
			}
			else	// firefox µî
			{
				
				suggestBox.innerHTML = "";
				suggestBox.appendChild(innerHtml);
				tmpHtml = suggestBox.innerHTML;
				tmpHtml = tmpHtml.replace(/&gt;/g, ">");
				tmpHtml = tmpHtml.replace(/&lt;/g, "<");
				suggestBox.innerHTML = tmpHtml;
			}
		
			nCurMenu = 0;
			nMenuLength = document.getElementById("acWord").getAttribute("value");
			if (nMenuLength != 0)
			{
				setDisplay("suggest", "block");
				setVisibility("suggest", "visible");
				getWordPosition("SearchStr");
				moveSuggestBox("suggest");
				setHeightSuggestBox("suggest")
				highlightAll();
			}
			else
			{
				initValue();
			}
		}
		else
		{
			// FIXME: Á¾ÈÆ - ½ÇÁ¦ »ç¿ëµÉ ¶§´Â ÀÌ¸¦ Á×¿©³ö¾ß ÇÑ´Ù.
			if (xmlHttp.status == 500)
			{
				//alert(xmlHttp.responseText);
			//	alert("[Debug Mode] 500 Error. ÆäÀÌÁö¸¦ Refresh ÇØ ÁÖ¼¼¿ä.");
			}
			else
			{
				alert("[Debug Mode] ¿¡·¯ ¹ß»ý: " + xmlHttp.status);
			}
		}
	}
}

// Get Ajax Object
function GetXmlHttpObject()
{
	var xmlHttp=null;
	try
	{
		// Firefox, Opera 8.0+, Safari
		xmlHttp=new XMLHttpRequest();
	}
	catch (e)
	{
		// Internet Explorer
		try
		{
			xmlHttp=new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return xmlHttp;
}

// XML Document Load From XML Data
function loadXMLDocFromStr(xmlData)
{
	var xmlDoc;
	try		// Internet Explorer
	{
		xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async = "false";
		xmlDoc.loadXML(xmlData);
		return xmlDoc;
	}
	catch(e)
	{
		try		// Firefox, Mozilla, Opera, etc.
		{
			parser = new DOMParser();
			xmlDoc = parser.parseFromString(xmlData, "text/xml");
			return xmlDoc;
		}
		catch(e)
		{
			alert(e.message);
			return;
		}
	}
}

// XML Document Load From XML File
function loadXMLDocFromFile(xmlFile)
{
	var X = !window.XMLHttpRequest ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest;
	X.open('GET', xmlFile, false);
	X.setRequestHeader('Content-Type', 'text/xml');
	X.send('');
	return X.responseXML;
}

// XML Data¸¦ XSLT Sheet¿¡ ¸Â°Ô ÆÄ½ÌÇÏ¿© Ãâ·Â
function getHtmlResult(xmlData, xslFileName)
{
	xml=loadXMLDocFromStr(xmlData);
	xsl=loadXMLDocFromFile(xslFileName);
	// code for IE
	if (window.ActiveXObject)
	{
		ex=xml.transformNode(xsl);
		return ex;
	}
	// code for Mozilla, Firefox, Opera, etc.
	else if (document.implementation
			&& document.implementation.createDocument)
	{
		xsltProcessor=new XSLTProcessor();
		xsltProcessor.importStylesheet(xsl);
		resultDocument = xsltProcessor.transformToFragment(xml, document);
		return resultDocument;
	}
}

// ÇÏÀÌ¶óÀÌÆÃ ALL
function highlightAll()
{
	var frontValue = parseInt(document.getElementById("acFront").getAttribute("value"))
					+ parseInt(document.getElementById("acMiddle").getAttribute("value"));
	var totalValue = parseInt(document.getElementById("acWord").getAttribute("value"));

	var i = 1;
	
	for(i = 1; i <= frontValue; i++)
	{
		var eWord = document.getElementById("word"+i);
		eWord.innerHTML = highlightCheck(eWord.innerHTML);
	}

	for(; i <= totalValue; i++)
	{
		var eWord = document.getElementById("word"+i);
		eWord.innerHTML = highlightrCheck(eWord.innerHTML);
	}
}

// ÇÏÀÌ¶óÀÌÆÃ Front
function highlightCheck(str) {
	if (str.indexOf("&") != -1)
	{
		return str;
	}
	var rtStr = "";
	var revertQuery = getTextAreaWord("SearchStr");
	var _str = str;
	var _userKeyword = revertQuery;
	_str = _str.toLowerCase();
	_userKeyword = _userKeyword.toLowerCase();
	
	startPosition = -1;
	while(true)
	{
		if(_userKeyword == _str.substring(startPosition + 1, startPosition + 1 + _userKeyword.length))
		{
			rtStr += str.substring(0, startPosition + 1);
			rtStr += "<font color='#eb550c'>";
			rtStr += str.substring(startPosition + 1, startPosition + 1 + _userKeyword.length);
			rtStr += "</font>";
			rtStr += str.substring(startPosition + 1 + _userKeyword.length, _str.length);
			break;
		}
		startPosition = _str.indexOf(" ", startPosition + 1);
		if(startPosition == -1)
		{
			break;
		}
	}
	if(rtStr == "")
	{
		rtStr += str;
	}

	return rtStr;
}

// ÇÏÀÌ¶óÀÌÆÃ Back
function highlightrCheck(str) {
	var rtStr = "";
	var revertQuery = getTextAreaWord("SearchStr");
	var _str = str.replace(/ /g, "");
	var _userKeyword = revertQuery.replace(/ /g, "");
	_str = _str.toLowerCase();
	_userKeyword = _userKeyword.toLowerCase();
	if (_userKeyword == _str.substring(_str.length - _userKeyword.length)) {
		for (var i=0,j=0; j<_str.length - _userKeyword.length; i++) {
			if (str.substring(i, i+1)!=" ") j++;
			rtStr += str.substring(i, i+1);
		}
		rtStr += "<font color='#eb550c'>";
		
		for (var k=i,l=0; l<_userKeyword.length; k++) {
			if (str.substring(k, k+1)!=" ") l++;
			rtStr += str.substring(k, k+1);
		}
		rtStr += "</font>";
	}
	else if (_str.indexOf(",") != -1)
	{
		if (_userKeyword == _str.substring(_str.indexOf(",") - _userKeyword.length, _str.indexOf(",") - _userKeyword.length + _userKeyword.length))
		{
			for (var i=0,j=0; j<_str.indexOf(",") - _userKeyword.length; i++)
			{
				if (str.substring(i, i+1)!=" ") j++;
				rtStr += str.substring(i, i+1);
			}
			rtStr += "<font color='#eb550c'>";
			
			for (var k=i,l=0; l<_userKeyword.length; k++) {
				if (str.substring(k, k+1)!=" ") l++;
				rtStr += str.substring(k, k+1);
			}
			rtStr += "</font>";

			for (var m=k,n=0; n<_str.length + _userKeyword.length - _str.indexOf(","); m++)
			{
				if (str.substring(m, m+1)!=" ") n++;
				rtStr += str.substring(m, m+1);
			}
		}
		else
		{
			rtStr += str;
		}
	}
	else{
		rtStr += str;
	}
	return rtStr;
}