//<![CDATA[

var REQ;
var curTag = -1;
var Interval = new Array();

// Á¢¼Ó IE, Netscape ÀÎÁö È®ÀÎ º¯¼ö
var NS = (navigator.appName == 'Netscape') ? 1 : 0;

// ¹®¼­¿¡¼­ ID="TagAutoComplete" ÇÑ°³À» °ªÀ» °¡Á®¿È
var idTagAutoComplete = document.getElementById('TagAutoComplete');

// ¹®¼­¿¡¼­ name="search" ¹è¿­ °ªÀ» °¡Á®¿È
var search = document.getElementsByName('search');
for(var i = 0; i < search.length; i++) {
//Á¤±Ô½Ä: Ã³À½inputÀÏ¶§ÀÏÄ¡  input³¡¿¡ ÀÖÀ»¶§ÀÏÄ¡  /½ÃÀÛ      /³¡  i´ë¼Ò¹®ÀÚ ±¸ºÐÇÏÁö ¸»±¸
	if(search[i].tagName.match(/^INPUT$/i)) {
		var TagSearch = search[i];
//alert(TagSearch.value);
		break;
	}
}


function newXMLHttpRequest() {
	var xmlReq = false;

	if(window.XMLHttpRequest) {
		xmlReq = new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		try {
			xmlReq = new ActiveXObject("Msxml2.XMLHTTP");
		} catch(e1) {
			try {
				xmlReq = new ActiveXObject("Microsoft.XMLHTTP");
			} catch(e2) {
			}
		}
	}

	return xmlReq;
}


function TagAutoComplete() {
	var tag = TagSearch.value;
	if(tag == TagSearch.ovalue) {
		return false;
	}

	TagSearch.ovalue = tag;
	idTagAutoComplete.innerHTML = "";

	if(tag.trim() == "") {
		hideTagAutoComplete();
		return false;
	}

	REQ = null;

	REQ = newXMLHttpRequest();

//===============|| µ¥ÀÌÅ¸ ÆÄÀÏ¸í ÁöÁ¤ ||========================================
	REQ.open("POST", TagAutoCompleteURL + "/TagAutoComplete.asp", true);
//=============================================================================	
	REQ.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

//=====|| Ã³¸®ÈÄ ¹ÞÀ» ÆÄÀÏ ÁÖ¼Ò¿Í ³Ñ°Ü¿Ã°ª ¼³Á¤ ½ÃÀÛ ||==========================================================
	//xml ÆÄÀÏ Ã³¸®½Ã 
//	REQ.onreadystatechange = processGetTagAutoComplete;

	//Å×½ºÆ® Ã³¸®½Ã ¹ÞÀ» º¯¼ö Ã³¸®
	REQ.onreadystatechange = function() {
        if(REQ.readyState == 4)
        {
            switch (REQ.status) 
            {
                case 404:
                    break;
               case 500:
                   break;
               default:
                   eval('processGetTagAutoComplete(REQ.responseText);');
                   break;        
            }            
        }
    }
//=====|| Ã³¸®ÈÄ ¹ÞÀ» ÆÄÀÏ ÁÖ¼Ò¿Í ³Ñ°Ü¿Ã°ª ¼³Á¤ ³¡ ||==========================================================

	switch(selOpt_aj) {
		case '4' :
			var sgubun_sel = document.getElementById('sgubun');
			var select_gb_sel = document.getElementById('select_gb');
			var sgubun_aj = sgubun_sel.value;
			var select_gb_aj = select_gb_sel.value;
			break;
		case '5' :
			var sgubun_sel = document.getElementById('sgubun');
			var select_gb_sel = document.getElementById('select_gb');
			var sgubun_aj = sgubun_sel.value;
			var select_gb_aj = select_gb_sel.value;
			break;
		default :
			var sgubun_sel = document.getElementsByName('sgubun');
			for(var i = 0; i < sgubun_sel.length; i++) {
				if(sgubun_sel[i].checked) {
					var sgubun_aj = sgubun_sel[i].value;
				}
			}
			select_gb_aj = '';
			break;
	}

	REQ.send("tag=" + tag + "&selOpt_aj=" + selOpt_aj + "&sgubun_aj=" + sgubun_aj + "&select_gb_aj=" + select_gb_aj);
//	REQ.send("tag=" + tag + "&owner=" + owner);
}

function processGetTagAutoComplete(ret) {

//		alert(ret);

//		alert(REQ.readyState);
	if(REQ.readyState == 4) {
//		alert(REQ.status);
		if(REQ.status == 200) {
//==========|| text ÆÄÀÏ·Î ¼³Á¤À¸·Î ³Ñ°Ü¿À´Â °ªÃ³¸® ·çÆ¾ ½ÃÀÛ ||=========================
			var resultList = ret.split('|');
			var Tags = '';
			curTag = -1;
			for(i = 0 ; i < resultList.length; i++)
			{
					try {
						Tags += '<div style="width:100%;overflow:hidden;cursor:pointer;color:'+tagColor+';font:'+tagFont+';background-color:'+bgColor+'" onclick="TagSearchSubmit(this.innerHTML);return false;" onmouseover="curTag='+i+';selectTag();">' + resultList[i] + '</div>';
					} catch(e) { continue; }
			}        
			setTagAutoCompletePos(true);
			idTagAutoComplete.innerHTML = Tags;
//==========|| text ÆÄÀÏ·Î ¼³Á¤À¸·Î ³Ñ°Ü¿À´Â °ªÃ³¸® ·çÆ¾ ³¡ ||=========================

//==========||xml ÆÄÀÏ·Î ¼³Á¤À¸·Î ³Ñ°Ü¿À´Â °ªÃ³¸® ·çÆ¾ ½ÃÀÛ ||=========================
/*			var item = REQ.responseXML.getElementsByTagName("item");
			var Tags = '';
			curTag = -1;
			if(item.length != 0) {
				for(var i = 0; i < item.length; i++) {
					try {
						var tag = item[i].firstChild.nodeValue;
						if(tag.trim() == "") tag = item[i].textContent;
						tag = tag.trim().replace(/"/, '&quot;').replace(/<.*>/g, '');
						Tags += '<div style="width:100%;overflow:hidden;cursor:pointer;color:'+tagColor+';font:'+tagFont+';background-color:'+bgColor+'" onclick="TagSearchSubmit(this.innerHTML);return false;" onmouseover="curTag='+i+';selectTag();">' + tag + '</div>';
					} catch(e) { continue; }
				}
				setTagAutoCompletePos(true);
				idTagAutoComplete.innerHTML = Tags;
			} else {
				hideTagAutoComplete();
			}
*/
//==========||xml ÆÄÀÏ·Î ¼³Á¤À¸·Î ³Ñ°Ü¿À´Â °ªÃ³¸® ·çÆ¾ ³¡ ||=========================

		} else {
			hideTagAutoComplete();
		}
	}
}

function setTagAutoCompletePos(block) {
	var _left = findPosition(TagSearch, 1);
	var _top = findPosition(TagSearch, 0);

	with(idTagAutoComplete.style) {
		opacity = bgOpacity / 100;
		filter = "alpha(opacity="+bgOpacity+")";
		backgroundColor = bgColor;

		top = _top + TagSearch.offsetHeight + 'px';
		left = _left + 'px';
		width = TagSearch.offsetWidth - 6 + 'px';
		if(block == true) display = 'block';
	}
}


function findPosition(obj, type) {
	var cur = type ? obj.offsetLeft : obj.offsetTop;
	obj = obj.offsetParent;

	while(obj) {
		cur += type ? obj.offsetLeft : obj.offsetTop;
		if(!NS) { cur += type ? obj.clientLeft : obj.clientTop;}
		obj = obj.offsetParent;
	}

	return cur;
}

function hideTagAutoComplete() {
//	idTagAutoComplete.style.display = 'none';
    idTagAutoComplete.style.visibility = "hidden";

}

function showTagAutoComplete() {
	if(idTagAutoComplete.innerHTML.trim() != "")
	//	idTagAutoComplete.style.display = 'block';
	    idTagAutoComplete.style.visibility = "visible";

}

function TagSearchSubmit(t) {
//	window.location.href = path + '?/tag/' + t.replace('%', '%25');
//  °¢ ÆäÀÌÁö ¸¶´Ù Á÷Á¢ ½áÁà¾ß ÇÏ´Â°É±î? 
	TagSearch.value = t;
	document.search_form.submit();
	return false;
}

function allClearInterval() {
	while(pop = Interval.pop()) {
		clearInterval(pop);
	}
}

String.prototype.trim = function () {
	return this.replace(/^\s*/g, "").replace(/\s*$/g, "");
}


function addEvent(obj, event, listener) {
	try	{
		//³Ý½º, ¸ðÁú¶ó ¿¡¼­´Â addEventListener
		obj.addEventListener(event, listener, false);
	} catch(e) {
		try {
			//ie ¿¡¼­´Â attachEvent
			obj.attachEvent("on"+event, listener);
		} catch(e) { }
	}
}
//¿©±â°¡ Ã¹ ½ÃÀÛ
//alert(TagSearch.value);

addEvent(TagSearch, 'focus', showTagAutoComplete);
addEvent(window, 'resize', setTagAutoCompletePos);
addEvent(document, 'mousedown', function(e) {
	var evt = NS ? e : event;
	var target = NS ? evt.target : evt.srcElement;

	if(evt.button == 0 || evt.button == 1) {
		if(target != TagSearch) {
			var el = idTagAutoComplete.getElementsByTagName('div');

			for(var i = 0; i < el.length; i++) {
				if(target == el[i]) return false;
			}

			hideTagAutoComplete();
		}
	}
});
addEvent(TagSearch, 'keypress', function(e) {
	var evt = NS ? e : event;

	if(evt.keyCode == 13) {
		if(curTag == -1) return true;

		var el = idTagAutoComplete.getElementsByTagName('div');
		TagSearch.value = el[curTag].innerHTML;
		hideTagAutoComplete();
		TagSearchSubmit(TagSearch.value);
		return false;
	}
});
addEvent(TagSearch, 'keydown', function(e) {
	var el = idTagAutoComplete.getElementsByTagName('div');
	var evt = NS ? e : event;
	allClearInterval();

	switch(evt.keyCode) {
		case 9 :
			hideTagAutoComplete();
			return true;
		case 40 :
			curTag = ++curTag % el.length;
			selectTag();
			evt.returnValue = false;
			return false;
		case 38 :
			curTag = (--curTag < 0 ) ? el.length-1 : curTag % el.length;
			selectTag();
			evt.returnValue = false;
			return false;
		default :
		showTagAutoComplete();
		Interval[Interval.length] = setInterval("TagAutoComplete()", 10);
			return true;
	}
});

function selectTag() {
	if(idTagAutoComplete.style.display == 'none') {
		return false;
	}

	var el = idTagAutoComplete.getElementsByTagName('div');

	for(var i = 0; i < el.length; i++) {
		el[i].style.backgroundColor = (curTag == i) ? bgOverColor : bgColor;
	}

	allClearInterval();
//	TagSearch.value = el[curTag].innerHTML;
}

function onClick_sub(value) {
	var el = idTagAutoComplete.getElementsByTagName('div');
		TagSearch.value = el[curTag].innerHTML;
//	alert(search_pk_id.value);
//	search_pk_id.value = value;
	hideTagAutoComplete();

}



TagSearch.focus();
//]]>
