//*****************************************************************************
//	ÀÚ¹Ù½ºÅ©¸³Æ® ½ÃÀÛ
//*****************************************************************************

var g_useYn = "Y";
var g_elementIndex = 0;
var g_element = new Array();
var g_elementKeyword = new Array();
var g_elementSubmitFunction = new Array();
var g_elementCdSite = new Array();
var g_elementData = new Array();
var g_elementCursor = new Array();
var g_timer;

var LINE_HEIGHT = 17;
var BUTTON_TOP = (navigator.userAgent.indexOf("IE") > -1) ? 2 : 8;
var WIDTH_GAP = (navigator.userAgent.indexOf("IE") > -1) ? 0 : 6;

document.onload=(g_timer = window.setInterval("fnInitButtons()", 1000));

//*****************************************************************************
// °³  ¿ä : INPUT ÇÊµå¿¡ °Ë»ö¾îÀÚµ¿¿Ï¼º±â´É Àû¿ë
// ÀÔ·Â°ª : ±¹°¡ÄÚµå, ÇØ´çINPUTÇÊµå, SUBMIT½Ã ¼öÇàÇÒ ÇÔ¼ö¸í
// ¹ÝÈ¯°ª :
//*****************************************************************************
function fnAttachSearchKeywordSuggest(cdSite, element, submitFunction)
{
	var index = g_element.length;
	
	g_element[index] = element;
	g_elementKeyword[index] = "";
	g_elementSubmitFunction[index] = submitFunction;
	g_elementCdSite[index] = cdSite;
	g_elementData[index] = new Array();
	g_elementCursor[index] = -1;

	element.setAttribute("autocomplete", "off");
	Event.observe(element, 'keyup', fnCaptureKeyword, false);
	Event.observe(element, 'keypress', fnMoveCursor, false);
		
	var htmlString = "";
	htmlString = htmlString + "<div id=\"keyword_suggest\" name=\"keyword_suggest\" style=\"display:none;position:absolute;background:#ffffff;border:1px solid #DDDDDD;padding:2 2 2 2;z-index:1000\">";
	htmlString = htmlString + "	<table width=\"100%\" border=\"0\" cellpadding=\"0\" cellspacing=\"0\">";
	htmlString = htmlString + "	  <tr>";
	htmlString = htmlString + "	    <td height=\"14\" align=\"right\" class=\"searchtop\" style=\"padding:0 10 0 0\"><a onclick=\"javascript:fnToggleUse('Y', " + index + ")\" style=\"cursor:pointer\">On</a>&nbsp;&nbsp;<font color=\"#C7C7C7\"><b>|</b></font>&nbsp;&nbsp;<a onclick=\"javascript:fnToggleUse('N', " + index + ")\" style=\"cursor:pointer\">Off</a></td>";
	htmlString = htmlString + "	  </tr>";
	htmlString = htmlString + "	</table>";
	htmlString = htmlString + "	<div id=\"keyword_suggest_list\" name=\"keyword_suggest_list\" style=\"display:none;overflow:auto\" class=search_keyword_scroll>";
	htmlString = htmlString + "	</div>";
	htmlString = htmlString + "</div>";
	htmlString = htmlString + "<div id=\"keyword_suggest_button\" name=\"keyword_suggest_button\" style=\"position:absolute;z-index:999\">";
	htmlString = htmlString + "	<div id=\"keyword_suggest_button_down\" name=\"keyword_suggest_button_down\" style=\"display:none;\">";
	htmlString = htmlString + "		<img src=\"http://www.samsung.com/include/SSI/search/images/blet_search_down.gif\" onclick=\"javascript:fnShow(" + index + ")\" style=\"cursor:pointer\">";
	htmlString = htmlString + "	</div>";
	htmlString = htmlString + "	<div id=\"keyword_suggest_button_up\" name=\"keyword_suggest_button_up\" style=\"display:none;\">";
	htmlString = htmlString + "		<img src=\"http://www.samsung.com/include/SSI/search/images/blet_search_up.gif\" onclick=\"javascript:fnHide(" + index + ")\" style=\"cursor:pointer\">";
	htmlString = htmlString + "	</div>";
	htmlString = htmlString + "</div>";
	htmlString = htmlString + "<iframe id=\"keyword_suggest_back\" name=\"keyword_suggest_back\" style=\"display:none;position:absolute;border:0px;z-index:998\">";
	htmlString = htmlString + "</iframe>";
	
	document.getElementById("keyword_suggest_buttons").innerHTML = document.getElementById("keyword_suggest_buttons").innerHTML + htmlString;
}

//*****************************************************************************
// °³  ¿ä : º¸ÀÌ±â/¼û±â±â ¹öÆ° ÃÊ±âÈ­
// ÀÔ·Â°ª : 
// ¹ÝÈ¯°ª :
//*****************************************************************************
function fnInitButtons()
{
	if (document.getElementsByName("keyword_suggest_button").length < g_element.length)
		return;
		
	if (g_timer)
		window.clearInterval(g_timer);

	var elems = document.getElementsByName("keyword_suggest_button");
	for (var index = 0; index < elems.length; index ++)
	{
		var pos = (navigator.userAgent.indexOf("IE") > -1) ? Position.positionedOffset(g_element[index]) : Position.cumulativeOffset(g_element[index]);
		elems[index].style.left = pos[0] + g_element[index].offsetWidth - 15;
		elems[index].style.top = pos[1] + BUTTON_TOP;
	}
	
	elems = document.getElementsByName("keyword_suggest_button_down");
	for (var index = 0; index < elems.length; index ++)
		elems[index].style.display = "";
}

//*****************************************************************************
// °³  ¿ä : Àû¿ëµÈ INPUTÇÊµå·ÎºÎÅÍ ¹ß»ýÇÑ ÀÌº¥Æ® Ã³¸®(KeyUp ÀÌº¥Æ®)
// ÀÔ·Â°ª : ÀÌº¥Æ®
// ¹ÝÈ¯°ª :
//*****************************************************************************
function fnCaptureKeyword(evt)
{
	
	if (g_useYn == "Y")
	{
		for (var index = 0; index < g_element.length; index ++)
		{
			if (g_element[index] == Event.element(evt))
			{
				g_elementIndex = index;
				if ((evt.keyCode == Event.KEY_RETURN) || (evt.keyCode == Event.KEY_UP) || 
					(evt.keyCode == Event.KEY_DOWN) || (evt.keyCode == Event.KEY_LEFT) ||
					(evt.keyCode == Event.KEY_RIGHT) || (evt.keyCode == Event.KEY_ESC) ||
					(evt.keyCode == 229))
					return;
					
				fnSendRequest();
			}
		}
	}
}

//*****************************************************************************
// °³  ¿ä : Ä¿¼­Å°¸¦ ´©¸§¿¡ µû¸¥ Ä¿¼­ ÀÌµ¿(KeyPress ÀÌº¥Æ®)
// ÀÔ·Â°ª : ÀÌº¥Æ®
// ¹ÝÈ¯°ª :
//*****************************************************************************
function fnMoveCursor(evt)
{
	if (g_useYn == "Y")
	{
		var index = 0;
		for (index = 0; index < g_element.length; index ++)
		{
			if (g_element[index] == Event.element(evt))
			{
				g_elementIndex = index;
				
				if (evt.keyCode == Event.KEY_RETURN)
				{
					fnOnSelectKeyword(g_element[index].value);
				}
					
				var elems = document.getElementsByName("keyword_suggest_list");
	
				if ((g_elementData[index].length > 0) && ((evt.keyCode == Event.KEY_DOWN) || (evt.keyCode == Event.KEY_UP)))
				{		
					var scrollIndex = elems[index].scrollTop / LINE_HEIGHT;
					if ((g_elementCursor[index] > -1) && (g_elementData[index].length > g_elementCursor[index]))
						document.getElementById("search_keyword_" + index + "_" + g_elementCursor[index]).style.background="#FFFFFF";
	
					if (evt.keyCode == Event.KEY_UP)
					{
						g_elementCursor[index] --;
						if (g_elementCursor[index] < 0)
							g_elementCursor[index] = 0;
						
						if (navigator.userAgent.indexOf("IE") > -1)
						{
							if (g_elementCursor[index] < scrollIndex)
								elems[index].doScroll("scrollbarUp");
							else if (scrollIndex < g_elementCursor[index] - 7)
								elems[index].scrollTop = (g_elementCursor[index] - 7) * LINE_HEIGHT;
						}
					}
					else
					{
						g_elementCursor[index] ++;
						if (g_elementCursor[index] > g_elementData[index].length - 1)
							g_elementCursor[index] = g_elementData[index].length - 1;
							
						if (navigator.userAgent.indexOf("IE") > -1)
						{							
							if (g_elementCursor[index] > scrollIndex + 7)
								elems[index].doScroll("scrollbarDown");
							else if (scrollIndex > g_elementCursor[index])
								elems[index].scrollTop = g_elementCursor[index] * LINE_HEIGHT;
						}
					}
					
					document.getElementById("search_keyword_" + index + "_" + g_elementCursor[index]).style.background="#EEEEEE";
					g_element[index].value = g_elementData[index][g_elementCursor[index]];
				}
			}
		}
	}
}

//*****************************************************************************
// °³  ¿ä : INPUTÇÊµå·ÎºÎÅÍ ÀÔ·ÂµÈ °ª Å°¿öµå·Î °Ë»ö¾î¸¦ ¼­¹ö¿¡ ¿äÃ»
// ÀÔ·Â°ª : 
// ¹ÝÈ¯°ª :
//*****************************************************************************
function fnSendRequest()
{
	var keyword = "";
	keyword = g_element[g_elementIndex].value.replace(/(^ *)|( *$)/g, "");

	if (keyword != g_elementKeyword[g_elementIndex])
	{
		g_elementKeyword[g_elementIndex] = keyword;
		var url = "/search/searchKeywordSuggest.asp";
		var pars = "cdsite=" + g_elementCdSite[g_elementIndex] + "&keyword=" + keyword;
		var myAjax = new Ajax.Request(url, {method: "post", parameters: pars, onComplete: fnShowResponse});
	}
	

}

//*****************************************************************************
// °³  ¿ä : XMLHttpRequest °´Ã¼·ÎºÎÅÍ ÀÀ´äÀÌ µµÂøÇÏ¿´À» °æ¿ì È£ÃâµÇ´Â ÄÝ¹éÇÔ¼ö
// ÀÔ·Â°ª : 
// ¹ÝÈ¯°ª :
//*****************************************************************************
function fnShowResponse(originalRequest)
{
	g_elementData[g_elementIndex] = originalRequest.responseText.split("||");
	g_elementData[g_elementIndex].length = g_elementData[g_elementIndex].length - 1;
	fnDisplay();
}

//*****************************************************************************
// °³  ¿ä : ¼­¹ö·ÎºÎÅÍ µµÂøÇÑ °á°ú¸¦ È­¸é¿¡ Ãâ·Â
// ÀÔ·Â°ª : 
// ¹ÝÈ¯°ª :
//*****************************************************************************
function fnDisplay()
{
	if (g_elementData[g_elementIndex].length > 0)
	{
		var htmlString = "<table width=100% border=0 cellpadding=0 cellspacing=0>";

		for (var count = 0; count < g_elementData[g_elementIndex].length; count ++)
		{
			htmlString = htmlString + "<tr id=search_keyword_" + g_elementIndex + "_" + count + " name=search_keyword_" + g_elementIndex + "_" + count + " ";
			htmlString = htmlString + "onclick=\"javascript:fnOnSelectKeyword('" + g_elementData[g_elementIndex][count] + "')\" ";
			htmlString = htmlString + "onmouseover=\"javascript:fnOnMouseOver(" + g_elementIndex + ", " + count + ")\" ";
			htmlString = htmlString + "onmouseout=\"javascript:fnOnMouseOut(" + g_elementIndex + ", " + count + ")\">";
			htmlString = htmlString + "<td width=100%>";
			htmlString = htmlString + "<span class=search_keyword2>";
			htmlString = htmlString + g_elementKeyword[g_elementIndex];
			htmlString = htmlString + "</span><span class=search_keyword1>";
			htmlString = htmlString + g_elementData[g_elementIndex][count].substring(g_elementKeyword[g_elementIndex].length);
			htmlString = htmlString + "</span></td></tr>";
		}
		htmlString = htmlString + "</table>";
		
		var elems = document.getElementsByName("keyword_suggest_list");
		elems[g_elementIndex].innerHTML = htmlString;
		fnShow(g_elementIndex);
	}
	else
	{
		if (g_element.length > 1)
			fnHide(g_elementIndex);
		else
			fnHide(0);
	}
}

//*****************************************************************************
// °³  ¿ä : È­¸é¿¡ Ç¥½ÃµÈ Å°¿öµå¸ñ·Ï °¢°¢¿¡ ¸¶¿ì½º°¡ ³õ¿´À» ¶§ÀÇ Ã³¸®
// ÀÔ·Â°ª : INPUTÇÊµåÀÇ ¹è¿­ ÀÎµ¦½º, ¸ñ·ÏÀÇ ¹è¿­ ÀÎµ¦½º
// ¹ÝÈ¯°ª :
//*****************************************************************************
function fnOnMouseOver(elementIndex, index)
{
	if ((g_elementCursor[elementIndex] > -1) && (g_elementData[elementIndex].length > g_elementCursor[elementIndex]))
		document.getElementById("search_keyword_" + elementIndex + "_" + g_elementCursor[elementIndex]).style.background="#FFFFFF";

	if ((index > -1) && (g_elementData[elementIndex].length > index))
	{
		g_elementCursor[elementIndex] = index;
		document.getElementById("search_keyword_" + elementIndex + "_" + index).style.background="#EEEEEE";
		document.getElementById("search_keyword_" + elementIndex + "_" + index).style.cursor="pointer";
	}
}

//*****************************************************************************
// °³  ¿ä : È­¸é¿¡ Ç¥½ÃµÈ Å°¿öµå¸ñ·Ï °¢°¢¿¡ ¸¶¿ì½º°¡ ³ª°¬À» ¶§ÀÇ Ã³¸®
// ÀÔ·Â°ª : INPUTÇÊµåÀÇ ¹è¿­ ÀÎµ¦½º, ¸ñ·ÏÀÇ ¹è¿­ ÀÎµ¦½º
// ¹ÝÈ¯°ª :
//*****************************************************************************
function fnOnMouseOut(elementIndex, index)
{
	if ((index > -1) && (g_elementData[elementIndex].length > index))
		document.getElementById("search_keyword_" + elementIndex + "_" + index).style.background="#FFFFFF";
}

//*****************************************************************************
// °³  ¿ä : È­¸é¿¡ Ç¥½ÃµÈ Å°¿öµå¸ñ·Ï Áß ÇÏ³ª¸¦ ¼±ÅÃÇÏ¿© Å¬¸¯ÇÏ¿´À» °æ¿ìÀÇ Ã³¸®
// ÀÔ·Â°ª : ¼±ÅÃµÈ Å°¿öµå °ª
// ¹ÝÈ¯°ª :
//*****************************************************************************
function fnOnSelectKeyword(keyword)
{
	if (g_element[g_elementIndex])
	{
		g_element[g_elementIndex].value = keyword;
		eval(g_elementSubmitFunction[g_elementIndex] + "();");
	}
}

//*****************************************************************************
// °³  ¿ä : °Ë»ö¾î ÀÚµ¿¿Ï¼º ±â´É On/Off Åä±Û
// ÀÔ·Â°ª : »ç¿ë¿©ºÎ Boolean°ª
// ¹ÝÈ¯°ª :
//*****************************************************************************
function fnToggleUse(useYn, elementIndex)
{
	g_useYn = useYn;
	fnSendUseYn(useYn);
	if (useYn == "Y")
	{
		g_elementIndex = elementIndex;
		g_elementKeyword[g_elementIndex] = "";
		fnSendRequest();
	}
	else
	{
		var elems = document.getElementsByName("keyword_suggest_list");
		for (index = 0; index < elems.length; index ++)
		{
			g_elementData[index].length = 0;
			elems[index].innerHTML = "";
			fnHide(index);
		}
	}
}

//*****************************************************************************
// °³  ¿ä : °Ë»ö¾î ÀÚµ¿¿Ï¼º »ç¿ë¿©ºÎ¸¦ ¼¼¼Ç¿¡ ÀúÀå
// ÀÔ·Â°ª : 
// ¹ÝÈ¯°ª :
//*****************************************************************************
function fnSendUseYn(useYn)
{
	var url = "/search/searchKeywordSuggest.asp";


	var pars = "useyn=" + useYn;
	var myAjax = new Ajax.Request(url, {method: "post", parameters: pars});
}

//*****************************************************************************
// °³  ¿ä : °Ë»ö¾î ÀÚµ¿¿Ï¼º ¸ñ·ÏÀ» È­¸é¿¡ º¸¿©ÁÜ
// ÀÔ·Â°ª : °Ë»ö¾î ÀÚµ¿¿Ï¼ºÀÇ ¹è¿­ ÀÎµ¦½º
// ¹ÝÈ¯°ª :
//*****************************************************************************
function fnShow(index)
{
	var elems1 = document.getElementsByName("keyword_suggest");
	var elems2 = document.getElementsByName("keyword_suggest_list");
	var elems3 = document.getElementsByName("keyword_suggest_button_up");
	var elems4 = document.getElementsByName("keyword_suggest_button_down");
	
	var pos = (navigator.userAgent.indexOf("IE") > -1) ? Position.positionedOffset(g_element[index]) : Position.cumulativeOffset(g_element[index]);
	elems1[index].style.left = pos[0];
	elems1[index].style.top = pos[1] + g_element[index].offsetHeight;
	elems1[index].style.width = g_element[index].offsetWidth - WIDTH_GAP;
	
	if (g_elementData[index].length > 8)
		elems2[index].style.height = LINE_HEIGHT * 8;
	else
		elems2[index].style.height = LINE_HEIGHT * (g_elementData[index].length);	
		
	if (g_elementData[index].length > 0)
		elems2[index].style.display = "";
	else
		elems2[index].style.display = "none";

	elems1[index].style.display = "";
	elems3[index].style.display = "";
	elems4[index].style.display = "none";

	// Back IFRAME	
	var elems5 = document.getElementsByName("keyword_suggest_back");
	Position.clone(elems1[index], elems5[index]);
	elems5[index].style.display = "";
}

//*****************************************************************************
// °³  ¿ä : °Ë»ö¾î ÀÚµ¿¿Ï¼º ¸ñ·ÏÀ» °¨Ãã
// ÀÔ·Â°ª : °Ë»ö¾î ÀÚµ¿¿Ï¼ºÀÇ ¹è¿­ ÀÎµ¦½º
// ¹ÝÈ¯°ª :
//*****************************************************************************
function fnHide(index)
{
	var elems1 = document.getElementsByName("keyword_suggest");
	var elems2 = document.getElementsByName("keyword_suggest_button_up");
	var elems3 = document.getElementsByName("keyword_suggest_button_down");

	elems1[index].style.display = "none";
	elems2[index].style.display = "none";
	elems3[index].style.display = "";
	
	// Back IFRAME
	var elems4 = document.getElementsByName("keyword_suggest_back");
	elems4[index].style.display = "none";
}

//*****************************************************************************
//	ÀÚ¹Ù½ºÅ©¸³Æ® ³¡
//*****************************************************************************