var index = -1;
var XML_KEYWORD;
var queryStr;
var selectedQueryStr;
var listCount = 0;
var lowerStr;
var inputText = '';

/* 한글을 영문으로 입력시 한글로 변환해주는 작업에 필요한 변수들 */
var en_h = "rRseEfaqQtTdwWczxvg";
var reg_h = "[" + en_h + "]";

var en_b = {
    k:0,o:1,i:2,O:3,j:4,p:5,u:6,P:7,h:8,hk:9,ho:10,hl:11,y:12,n:13,nj:14,np:15,nl:16,b:17,m:18,ml:19,l:20
}
var reg_b = "hk|ho|hl|nj|np|nl|ml|k|o|i|O|j|p|u|P|h|y|n|b|m|l";

var en_f = {
    "":0,r:1,R:2,rt:3,s:4,sw:5,sg:6,e:7,f:8,fr:9,fa:10,fq:11,ft:12,fx:13,fv:14,fg:15,a:16,q:17,qt:18,t:19,T:20,d:21,w:22,c:23,z:24,x:25,v:26,g:27
}
var reg_f = "rt|sw|sg|fr|fa|fq|ft|fx|fv|fg|qt|r|R|s|e|f|a|q|t|T|d|w|c|z|x|v|g|";

var reg_exp = new RegExp("("+reg_h+")("+reg_b+")((?:"+reg_f+")(?=(?:"+reg_h+")(?:"+reg_b+"))|(?:"+reg_f+"))","g");

var regAlpha =/^[a-zA-Z]+$/;
var regHangul =/[가-힣]/;
var regHangulOnly =/^[가-힣]+$/;
/* 한글을 영문으로 입력시 한글로 변환해주는 작업에 필요한 변수들 */

function gotoSearch(type, qu) {
	//parent.document.search.qu.value= qu;
	//parent.location.href='http://www.happycampus.com/search/?type="+ type +"&qu="+ qu
	return;
}
function msg() {
	alert("안돼");
}
function eventCompatibility(event)
{
	if(navigator.appName == "Microsoft Internet Explorer")
	{
		event = window.event;
		event.target = event.srcElement;
	}

	return event;
}
function setListBox() {
	var e = arguments[0];
	var str = arguments[1];
	var str_len = arguments[2] ? arguments[2] : "20";
	var int_top = arguments[3] ? arguments[3] : 31;

	//e = eventCompatibility(e);

	var autokeyword_div = document.getElementById("autokeyword_div");

//	var box = document.getElementById("i_list");
	var text;
	if(document.search.QU) {
		text = document.search.QU;
	} else {
		text = document.search.qu;
	}

	if(document.getElementById("autokey_qu")) {

		var s_top = document.body.scrollTop;
		var s_left = document.body.scrollLeft;

		var col_height = jQuery("#autokey_qu").height();
		var topmargin = jQuery("#autokey_qu").css("marginTop");
		var botmargin =jQuery("#autokey_qu").css("marginBottom");
		var leftmargin =jQuery("#autokey_qu").css("marginLeft");

		var col = document.getElementById("autokey_qu").getClientRects();
		var col_top = parseInt(col[0].top) + parseInt(s_top) + int_top;//+ parseInt(topmargin);
		var brand_box_filter = /(www.happycampus.com\/cart)/;
		if(brand_box_filter.test(location.href)){
			col_top = col_top-7;
		}
		var col_left = col[0].left - 2;// - leftmargin - 2;

		jQuery("#autokeyword_div").css({"top":col_top,"left":col_left});
	}

	var type = document.search.type.value;
	var list_div = document.getElementById("list_div");

	inputText = text.value.toLowerCase();

	if(trim(str)) {
		if(navigator.appName == "Netscape"){
			if(!(e.keyCode == 38 || e.keyCode == 40)) {
				queryStr = text.value.toLowerCase();
				queryStr = inputText;
				index = -1;

				//if(regAlpha.test(str)) {
					temp = toKorean(queryStr);

					if(temp && regHangulOnly.test(temp) && !regAlpha.test(temp)) {
						//text.value = temp;
						queryStr = temp;
					}
				//}


				xmlhttp = createHttpRequest(); /* changed */
				with(xmlhttp) {
					open("POST", "/scrap/auto_search/search.html", false);
					//open("POST", "/scrap/auto_search/auto_keyword.html", false);
					setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
					send("keywords=" + encodeURIComponent(queryStr) +"&str_len="+str_len);
					xml = responseXML;
				}
				XML_KEYWORD = xml.getElementsByTagName("KEYWORD");
				listCount = XML_KEYWORD.length;


				html = new String;
				/*
				for(i = 0; i < XML_KEYWORD.length; i++) {
					var string = XML_KEYWORD.item(i).getAttribute("ADDR").toLowerCase();
					html += "<div id='no_" + i + "' style='background:#FFFFFF;width:100%;height:18px;cursor:pointer;'";
					html += "onmouseover=\"if(parent.index>-1&&parent.index!=" + i + "){document.getElementById('no_' + parent.index).style.backgroundColor='';} parent.index=" + i + ";this.style.backgroundColor='#F5F5F5';parent.selectedQueryStr='" + XML_KEYWORD.item(i).getAttribute('ADDR').toLowerCase() + "';\" ";
					html += "onmouseout=\"parent.index=-1;this.style.backgroundColor='#FFFFFF'\"; ";
					html += "onmousedown=\"parent.document.search.qu.value='" + XML_KEYWORD.item(i).getAttribute("ADDR").toLowerCase() + "';parent.location.href='http://www.happycampus.com/search/?type="+type+"&qu="+ XML_KEYWORD.item(i).getAttribute("ADDR").toLowerCase() +"'\">";
					html +=  string.replace(queryStr, '<b>'+queryStr+'</b>')+ "</div>\r\n";
				}
				*/

				for(i = 0; i < XML_KEYWORD.length; i++) {
					var string = XML_KEYWORD.item(i).getAttribute("ADDR").toLowerCase();
					var rcnt = XML_KEYWORD.item(i).getAttribute("CNT").toLowerCase();
					var cntno = XML_KEYWORD.item(i).getAttribute("CNTNO").toLowerCase();


					html += "<li id='no_" + i + "' style='background:#FFFFFF;width:100%;height:18px;cursor:pointer;'";
					html += "onmouseover=\"if(parent.index>-1&&parent.index!=" + i + "){document.getElementById('no_' + parent.index).style.backgroundColor='';} parent.index=" + i + ";this.style.backgroundColor='#F5F5F5';parent.selectedQueryStr='" + string + "';\" ";
					html += "onmouseout=\"parent.index=-1;this.style.backgroundColor='#FFFFFF'\"; ";

					html += " onclick=\"document.search.qu.value='" + string + "';location.href='http://www.happycampus.com/search/?type="+type+"&qu="+ encodeURIComponent(string) +"'\"";

					html += " onmousedown=\"document.search.qu.value='" + string + "';location.href='http://www.happycampus.com/search/?type="+type+"&qu="+ encodeURIComponent(string) +"'\">";

					//html += "<table border=0 cellpadding=0 cellspacing=0 width='100%'><tr><td width='60%'>";
					//html +=  string.replace(queryStr, '<b>'+queryStr+'</b>')+ "</td>";
					//html += "<td width='40%' align=right>" + rcnt + "결과</td></tr></table>";

					html += "<span style='float:left;'>";
					html +=  string.replace(queryStr, '<b>'+queryStr+'</b>')+ "</span>";
					if(cntno > 0) {
						html += "<span style='float:right;' class='c1f83cf'>" + rcnt + "결과</span>";
					}

					html +=  "</li>\r\n";
				}

				list_div.innerHTML = html;

				var f_Hsize = 68 + (18 * (listCount-1));
							autokeyword_div.style.height = f_Hsize; //box

				if(listCount > 0) {
					autokeyword_div.style.display="inline";
				}
				else {
					autokeyword_div.style.display="none";
				}
			}
			else {
				if(e.keyCode == 40 && index < XML_KEYWORD.length - 1) {
					with(list_div) {
						if(index > -1) document.getElementById("no_" + index).style.backgroundColor = "";
						document.getElementById("no_"+ ++index).style.backgroundColor = "#EEEEEE";
						text.value = XML_KEYWORD.item(index).getAttribute("ADDR").toLowerCase();
						body.scrollTop = Math.floor(index / 5) * 75;
					}

	//				box.style.display = "inline";
					autokeyword_div.style.display="inline";
				}
				else if(e.keyCode == 38) {
					if(index > 0) {
//						with(box.contentWindow.document) {
						with(list_div) {
							document.getElementById("no_" + index).style.backgroundColor = "";
							document.getElementById("no_" + --index).style.backgroundColor = "#EEEEEE";
							text.value = XML_KEYWORD.item(index).getAttribute("ADDR").toLowerCase();
							body.scrollTop = Math.floor(index / 5) * 75;
						}
					}
					else {
						index = -1;
	//					box.style.display = "none";
						autokeyword_div.style.display="inline";
						text.value = queryStr;
					}
				}
			}

		} else { //explorer ...
			if(!(event.keyCode == 38 || event.keyCode == 40)) {
				queryStr = text.value.toLowerCase();

				index = -1;

				//if(regAlpha.test(str)) {
					temp = toKorean(queryStr);

					if(temp && regHangulOnly.test(temp) && !regAlpha.test(temp)) {
						//text.value = temp;
						queryStr = temp;
					}
				//}


				xmlhttp = createHttpRequest(); /* changed */
				with(xmlhttp) {
					open("POST", "/scrap/auto_search/search.html", false);
					//open("POST", "/scrap/auto_search/auto_keyword.html", false);
					setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
					send("keywords=" + encodeURIComponent(queryStr) +"&str_len="+str_len);
					xml = responseXML;
				}
				XML_KEYWORD = xml.getElementsByTagName("KEYWORD");
				listCount = XML_KEYWORD.length;


				html = new String;
				for(i = 0; i < XML_KEYWORD.length; i++) {

					var string = XML_KEYWORD.item(i).getAttribute("ADDR").toLowerCase();
					var rcnt = XML_KEYWORD.item(i).getAttribute("CNT").toLowerCase();
					var cntno = XML_KEYWORD.item(i).getAttribute("CNTNO").toLowerCase();

					//<li><span style="float:left; "><DIV id="list_div" style="width:246px;"></DIV></span> <span style="float:right; " class="c1f83cf">21532</span></li>

					html += "<li id='no_" + i + "' style='background:#FFFFFF;width:100%;height:18px;cursor:pointer;'";
					html += "onmouseover=\"if(parent.index>-1&&parent.index!=" + i + "){document.getElementById('no_' + parent.index).style.backgroundColor='';} parent.index=" + i + ";this.style.backgroundColor='#F5F5F5';parent.selectedQueryStr='" + string + "';\" ";
					html += "onmouseout=\"parent.index=-1;this.style.backgroundColor='#FFFFFF'\"; ";
					html += "onclick=\"parent.document.search.qu.value='" + string + "';parent.location.href='http://www.happycampus.com/search/?type="+type+"&qu="+ encodeURIComponent(string) +"'\">";

					//html += "<table border=0 cellpadding=0 cellspacing=0 width='100%'><tr><td width='60%'>";
					//html +=  string.replace(queryStr, '<b>'+queryStr+'</b>')+ "</td>";
					//html += "<td width='40%' align=right>" + rcnt + "결과</td></tr></table>";

					html += "<span style='float:left;'>";
					html +=  string.replace(queryStr, '<b>'+queryStr+'</b>')+ "</span>";
					if(cntno > 0) {
						html += "<span style='float:right;' class='c1f83cf'>" + rcnt + "결과</span>";
					}

					html += "</li>\r\n";
				}
				list_div.innerHTML = html;

				var f_Hsize = 71 + (18 * (listCount-1));

				autokeyword_div.style.height = f_Hsize;
//							box.style.height = f_Hsize;

				if(listCount > 0) {
					autokeyword_div.style.display="inline";
				}
				else {
					autokeyword_div.style.display="none";
				}
			}
			else {
				if(event.keyCode == 40 && index < XML_KEYWORD.length - 1) {
					with(list_div) {
						if(index > -1) document.getElementById("no_" + index).style.backgroundColor = "";
						document.getElementById("no_" + ++index).style.backgroundColor = "#EEEEEE";
						text.value = XML_KEYWORD.item(index).getAttribute("ADDR").toLowerCase();
						//document.body.scrollTop = Math.floor(index / 5) * 75;
					}
					autokeyword_div.style.display="inline";
				}
				else if(event.keyCode == 38) {
					if(index > 0) {
						with(list_div) {
							if(index > -1) document.getElementById("no_" + index).style.backgroundColor = "";
							document.getElementById("no_" + --index).style.backgroundColor = "#EEEEEE";
							text.value = XML_KEYWORD.item(index).getAttribute("ADDR").toLowerCase();
							//document.body.scrollTop = Math.floor(index / 5) * 75;
						}
					}
					else {
						index = -1;
						autokeyword_div.style.display="inline";
						text.value = queryStr;
					}
				}
			}

		}
	}
	else {
		autokeyword_div.style.display="none";
	}
}
function setAutocomplete() {
	listCount = 0;
	var e = arguments[0];
	var str = arguments[1];
	var str_len = arguments[2] ? arguments[2] : "20";

	var text = document.searchresult.equ;

	var list_div = document.getElementById("sub_autocomplete_div");
	$listdiv = $(list_div);
	$listdiv.css("position", "absolute");


	if(trim(str)) {
		if(navigator.appName == "Netscape"){
			if(!(e.keyCode == 38 || e.keyCode == 40)) {
				queryStr = text.value.toLowerCase();
				index = -1;

				temp = toKorean(queryStr);

				if(temp && regHangulOnly.test(temp) && !regAlpha.test(temp)) {
					queryStr = temp;
				}

				xmlhttp = createHttpRequest(); /* changed */
				with(xmlhttp) {
					open("POST", "/scrap/auto_search/search.html", false);
					setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
					send("keywords=" + encodeURIComponent(queryStr) +"&str_len="+str_len);
					xml = responseXML;
				}
				XML_KEYWORD = xml.getElementsByTagName("KEYWORD");
				listCount = XML_KEYWORD.length;


				html = new String;

				for(i = 0; i < XML_KEYWORD.length; i++) {
					var string = XML_KEYWORD.item(i).getAttribute("ADDR").toLowerCase();
					var rcnt = XML_KEYWORD.item(i).getAttribute("CNT").toLowerCase();


					html += "<div id='sno_" + i + "' style='background:#FFFFFF;width:100%;height:18px;cursor:pointer;'";
					html += "onmouseover=\"if(parent.index>-1&&parent.index!=" + i + "){document.getElementById('sno_' + parent.index).style.backgroundColor='';} parent.index=" + i + ";this.style.backgroundColor='#F5F5F5';parent.selectedQueryStr='" + string + "';\" ";
					html += "onmouseout=\"parent.index=-1;this.style.backgroundColor='#FFFFFF'\"; ";

					html += " onclick=\"document.searchresult.equ.value='" + string + "';\"";

					html += " onmousedown=\"document.searchresult.equ.value='" + string + "';\">";

					html += "<span class='grayfont'>";
					html +=  string.replace(queryStr, '<b>'+queryStr+'</b>')+ "</span>";

					html +=  "</div>\r\n";
				}

				list_div.innerHTML = html;

				var f_Hsize = 18 + (18 * (listCount-1));

				$list_div.style.height = f_Hsize; //box

				if(listCount > 0) {
					display = "block";
				}
				else {
					display = "none";
				}
			}
			else {
				if(e.keyCode == 40 && index < XML_KEYWORD.length - 1) {
					with(list_div) {
						if(index > -1) document.getElementById("sno_" + index).style.backgroundColor = "#FFFFFF";
						document.getElementById("sno_"+ ++index).style.backgroundColor = "#EEEEEE";
						text.value = XML_KEYWORD.item(index).getAttribute("ADDR");
						body.scrollTop = Math.floor(index / 10) * 75;
					}

					display = "block";
				}
				else if(e.keyCode == 38) {
					if(index > 0) {
//						with(box.contentWindow.document) {
						with(list_div) {
							document.getElementById("sno_" + index).style.backgroundColor = "#FFFFFF";
							document.getElementById("sno_" + --index).style.backgroundColor = "#EEEEEE";
							text.value = XML_KEYWORD.item(index).getAttribute("ADDR");
							body.scrollTop = Math.floor(index / 10) * 75;
						}
					}
					else {
						index = -1;
						display = "block";
						text.value = queryStr;
					}
				}
			}

		} else { //explorer ...
			if(!(event.keyCode == 38 || event.keyCode == 40)) {
				queryStr = text.value.toLowerCase();
				index = -1;

				//if(regAlpha.test(str)) {
					temp = toKorean(queryStr);

					if(temp && regHangulOnly.test(temp) && !regAlpha.test(temp)) {
						queryStr = temp;
					}
				//}

				xmlhttp = createHttpRequest(); /* changed */
				with(xmlhttp) {
					open("POST", "/scrap/auto_search/search.html", false);
					//open("POST", "/scrap/auto_search/auto_keyword.html", false);
					setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
					send("keywords=" + encodeURIComponent(queryStr) +"&str_len="+str_len);
					xml = responseXML;
				}
				XML_KEYWORD = xml.getElementsByTagName("KEYWORD");
				listCount = XML_KEYWORD.length;


				html = new String;
				for(i = 0; i < XML_KEYWORD.length; i++) {

					var string = XML_KEYWORD.item(i).getAttribute("ADDR").toLowerCase();
					var rcnt = XML_KEYWORD.item(i).getAttribute("CNT").toLowerCase();

					html += "<div id='sno_" + i + "' style='background:#FFFFFF;width:100%;height:18px;cursor:pointer;'";
					html += "onmouseover=\"if(parent.index>-1&&parent.index!=" + i + "){document.getElementById('sno_' + parent.index).style.backgroundColor='';} parent.index=" + i + ";this.style.backgroundColor='#F5F5F5';parent.selectedQueryStr='" + string + "';\" ";
					html += "onmouseout=\"parent.index=-1;this.style.backgroundColor='#FFFFFF'\"; ";
					html += "onclick=\"parent.document.searchresult.equ.value='" + string + "';\">";

					html += "<span class='grayfont'>";
					html +=  string.replace(queryStr, '<b>'+queryStr+'</b>')+ "</span>";

					html += "</div>\r\n";
				}

				list_div.innerHTML = html;

				var f_Hsize = (18 * (listCount-1));

				$listdiv.css("height", f_Hsize);

				if(listCount > 0) {
					display = "block";
				}
				else {
					display = "none";
				}

			}
			else {
				if(event.keyCode == 40 && index < XML_KEYWORD.length - 1) {
					with(list_div) {
						if(index > -1) document.getElementById("sno_" + index).style.backgroundColor = "#FFFFFF";
						document.getElementById("sno_" + ++index).style.backgroundColor = "#EEEEEE";
						text.value = XML_KEYWORD.item(index).getAttribute("ADDR");
						document.body.scrollTop = Math.floor(index / 10) * 75;
					}
					display = "block";
				}
				else if(event.keyCode == 38) {
					if(index > 0) {
						with(list_div) {
							if(index > -1) document.getElementById("sno_" + index).style.backgroundColor = "#FFFFFF";
							document.getElementById("sno_" + --index).style.backgroundColor = "#EEEEEE";
							text.value = XML_KEYWORD.item(index).getAttribute("ADDR");
							document.body.scrollTop = Math.floor(index / 10) * 75;
						}
					}
					else {
						index = -1;
						display = "block";
						text.value = queryStr;
					}
				}
			}
		}

		var pos = findPosition(text);
		// either use the specified width, or autocalculate based on form element

		var iWidth = text.offsetWidth;
		var iHeight = text.offsetHeight;

		// reposition

		$listdiv.css({
			width: parseInt(iWidth) + "px",
			top: (pos.y + parseInt(iHeight)) + "px",
			left: pos.x + "px",
			display: display
		});


	}
	else {
		removeListBox2();
	}
}

function findPosition(obj) {
	var curleft = obj.offsetLeft || 0;
	var curtop = obj.offsetTop || 0;
	while (obj = obj.offsetParent) {
		curleft += obj.offsetLeft
		curtop += obj.offsetTop
	}
	return {x:curleft,y:curtop};
}

function removeListBox() {
	var autokeyword_div = document.getElementById("autokeyword_div");
	autokeyword_div.style.display = "none";
}
function removeListBox2() {
	$("#sub_autocomplete_div").hide();
}

function XMLHTTP() {
	try	{
		xmlhttp = new ActiveXObject("MSXML2.XMLHTTP");
	}
	catch(e) {
		xmlhttp = new XMLHttpRequest();
	}
	return xmlhttp;
}

function navigateView(){
	setTimeout("removeListBox()", 150);
}
function navigateView2(){
	setTimeout("removeListBox2()", 150);
}


function toKorean(str) {
    return str.replace(reg_exp,replace);
}

function replace(str,h,b,f) {
    return String.fromCharCode(en_h.indexOf(h)*21*28 + en_b[b]*28 + en_f[f] + 44032);
}
