	var currentForm;
	var currentFormIndex;
	var nav_ie=true;
	var focused = false;

	var _checker = "1234567890";

	function clearOnFocus(obj) {
		if (obj == null)
			return;
		obj.value = "";
		focused = true;
	}

	if(navigator.appName == 'Netscape'){
		nav_ie=false;
	}

	var currentd = "";


	//페이지 이동
	function goPage(page) {
		document.frmSearch.CurrentPage.value = page;
		document.frmSearch.ReSearch.value = "N";
		document.frmSearch.SortSearch.value = "Y";
		document.frmSearch.submit();
	}

	// trim함수
	function trim(str) {
		return str.replace(/(^\s*)|(\s*$)/g, "");
	}

	// 재검색 필드에서 검색을 시도했을 때
	function checkResearchField(f, limit) {
		var isResearch = false;
		if (f.ReSearchFlag != null)
			isResearch = f.ReSearchFlag.checked;
		if (limit == null)
			limit = false;
		if (trim(f.SearchWord.value) == "" && !limit) {
			alert("검색어를 입력하십시오.");
			return false;
		}
		if (f.Branch != null)
			document.frmSearch.Branch.value = f.Branch.value;
		if (f.Division != null)
			document.frmSearch.Division.value = f.Division.value;
		document.frmSearch.IndexID[0].value = f.IndexID.value;
		document.frmSearch.SearchWord[0].value = f.SearchWord.value;
		document.frmSearch.SearchOperator[0].value = f.SearchOperator.value;
		document.frmSearch.IndexID[1].value = "";
		document.frmSearch.SearchWord[1].value = "";
		document.frmSearch.SearchOperator[1].value = "";
		document.frmSearch.IndexID[2].value = "";
		document.frmSearch.SearchWord[2].value = "";
		document.frmSearch.SearchOperator[2].value = "";
		document.frmSearch.IndexSearch.value = "";
		if (f.ContentList != null)
			document.frmSearch.ContentList.value = f.ContentList.value;
		document.frmSearch.ReSearch.value = (isResearch ? "Y" : "N");
		document.frmSearch.CurrentPage.value = "0";
		document.frmSearch.FirstChar.value = "";
		document.frmSearch.Multi.value = "";
		if (f.PYB != null) {
			document.frmSearch.PYB.value = f.PYB.value;
		}
		if (f.PYE != null) {
			document.frmSearch.PYE.value = f.PYE.value;
		}
		if (!isResearch) {
			document.frmSearch.SetNum.value = "0";
			document.frmSearch.IndexID[1].value = "";
			document.frmSearch.SearchWord[1].value = "";
			document.frmSearch.IndexID[2].value = "";
			document.frmSearch.SearchWord[2].value = "";
			document.frmSearch.SortSearch.value = "N";
			document.frmSearch.CurrentPage.value = "1";
			document.frmSearch.LANG.value = "";
			document.frmSearch.CLASS.value = "";
			document.frmSearch.Relation.value = "";
			document.frmSearch.Collection.value = "";
		}
		checkExtra();
		checkExtraLimit();
		document.frmSearch.action = "/search/search01.jsp";
		//document.frmSearch.target = "__new__";
		document.frmSearch.submit();
	}

	// 간략 검색 필드에서 검색을 시도했을 때
	function simpleSearch(f) {
		if (trim(f.SearchWord[0].value) == "") {
			alert("검색어를 입력하십시오.");
			return false;
		}
		f.submit();
	}

	function checkSearchField(frm) {
		if (frm != null) {
			var fname = frm.name;
			var f = document.getElementsByName(fname);
			var checker = false;
			for (var i = 0; i < f.length; i++) {
				if (f[i].name != "frmTemp")
					continue;
				if (trim(f[i].SearchWord.value) != "") {
					checker = true;
					break;
				}
			}

			if (document.frmLimit != null && document.frmLimit.CLASS != null) {
				if (document.frmLimit.CLASS.value != "") {
					checker = true;
				}
			}

			if (!checker) {
				alert("검색어를 입력하세요.");
				return false;
			}
			checkSearch(f);
		}
		checkGeneral();
		checkLimit();
		checkExtra();
		checkExtraLimit();

		frmSearch.action = "/search/search01.jsp";
		frmSearch.submit();
	}
	function doSearch() {
		checkSearchField(currentForm);
	}

	function getRadioValue(ctrl) {
		if (ctrl == null)
			return "";
		try {
			if (ctrl.length == null) {
				return ctrl.value;
			}
			for (var i = 0; i < ctrl.length; i++) {
				if (ctrl[i].checked)
					return ctrl[i].value;
			}
			return "";
		} catch (e) {
			return ctrl.value;
		}
	}

	// 일반사항 체크
	function checkGeneral() {
		if (document.frmGeneral == null)
			return;
		var f = document.frmGeneral;
		document.frmSearch.Division.value = f.Division.value;
		document.frmSearch.Branch.value = f.Branch.value;
		document.frmSearch.SearchType.value = getRadioValue(f.SearchType);
		document.frmSearch.FirstChar.value = "";
	}



	// 검색사항 체크
	function checkSearch(f) {
		var currentIndex = 0;
		for (var i = 0; i < f.length; i++) {
			if (f[i].name != "frmTemp")
				continue;
			frmSearch.IndexID[currentIndex].value = f[i].IndexID.value;
			frmSearch.SearchWord[currentIndex].value = f[i].SearchWord.value;
			frmSearch.SearchOperator[currentIndex].value = getRadioValue(f[i].SearchOperator);
			currentIndex++;
		}
	}

	function getCheckedValues(ctrl, sep, dv, sc) {
		var objCnt = 0;
		var _sc = "";
		if (getCheckedValues.arguments.length == 4)
			_sc = sc;
		try {
			objCnt = ctrl.length;
		} catch (e) {
			objCnt = 1;
		}
		if (ctrl == null) {
			if (getCheckedValues.arguments.length >= 3)
				return dv;
			return "";
		}
		var v = "";
		if (objCnt > 1) {
			for (var i = 0; i < ctrl.length; i++) {
				if (_sc != '') {
					if (ctrl[i].value.substring(0, 1) == _sc) {
						if (v == "") {
							v += ctrl[i].value.substring(_sc.length);
						} else {
							v += sep + ctrl[i].value.substring(_sc.length);
						}
					}
					continue;
				}
				if (ctrl[i].checked) {
					if (_checker.indexOf(ctrl[i].value.substring(0,1)) >= 0) {
						if (v == "") {
							v += ctrl[i].value;
						} else {
							v += sep + ctrl[i].value;
						}
					}
				}
			}
			return v;
		} else {
			if (ctrl.checked)
				return ctrl.value;
			else
				return '';
		}
	}

	function checkLimit() {
		if (document.frmLimit == null)
			return;
		var f = document.frmLimit;
		if (f._ContentList != null) {
			document.frmSearch.ContentList.value =   getCheckedValues(f._ContentList, '^', document.frmSearch.ContentList.value);
		}
		if (f._ExtraContentList != null) {
			document.frmSearch.ExtraContentList.value = getCheckedValues(f._ExtraContentList, '^','');
		}
		if (f.PYB != null)
			document.frmSearch.PYB.value =           f.PYB.value ;
		if (f.PYE != null)
			document.frmSearch.PYE.value = 	         f.PYE.value ;
		if (f.LANG != null)
			document.frmSearch.LANG.value = 	 	 f.LANG.value;
		if (f.CLASS!= null)
			document.frmSearch.CLASS.value = 	 	 f.CLASS.value;
		if (f._Relation!= null)
			document.frmSearch.Relation.value =      getCheckedValues(f._Relation, '^', document.frmSearch.Relation.value) ;
		if (f.PageSize!= null)
			document.frmSearch.PageSize.value =      f.PageSize.value ;
		if (f.MaxLimit != null)
			document.frmSearch.MaxLimit.value =      f.MaxLimit.value ;
		if (f.Sort != null)
			document.frmSearch.Sort.value =           f.Sort.value ;
		if (f.SortType != null)
			document.frmSearch.SortType.value =       f.SortType.value ;
		checkNewArrival();
	}
	// DB상에 설정되어있는 hidden tag의 값을 가지고 처리하는 js
	function checkExtra() {
		if (document.frmExtra == null)
			return;
		if (document.frmExtra.Param == null)
			return;
		var obj = eval("document.frmSearch." + document.frmExtra.Param.value);
		if (obj == null)
			return;
		if (obj.value == '')
			obj.value = document.frmExtra.ParamValue.value;
	}

	function checkNewArrival() {
		var f = document.frmLimit;
		if (f == null)
			return;
		if (f.radNewArrival == null)
			return;

		if (f.radNewArrival[0].checked) {
			var dateDiff = f.ArrivedDate.value;
			var dateFrom = getDiffDate(-1 * dateDiff);
			var dateTo = getDiffDate(0);
			document.frmSearch.ArrivalFrom.value = getFormattedDate(dateFrom);
			document.frmSearch.ArrivalTo.value = getFormattedDate(dateTo);
		} else {
			document.frmSearch.ArrivalFrom.value =    f.ArrivalFrom.value ;
			document.frmSearch.ArrivalTo.value =      f.ArrivalTo.value ;
		}
	}


	// 폼내에서 택스트 변경상태에 대한 상태를 알린다.
	function focusChanged(form, index) {
		currentForm = form;
		currentIndex = index;
	}


	function resetForm(f) {
		if (f != null) {
			f.reset();
		}
	}

	function resetAllForm() {
		var f = document.getElementsByTagName("form");
		for (var i = 0; i < f.length; i++) {
			f[i].reset();
		}
	}


	function checkExtraLimit() {
		var extraObject = document.getElementsByName("EXTRA_LIMIT");
		var extraValue = document.getElementsByName("EXTRA_VALUE");
		var extraType = document.getElementsByName("EXTRA_TYPE");
		var extraID = document.getElementsByName("EXTRA_ID");

		var indexID = document.getElementsByName("ExtraLimit");
		var limitValue = document.getElementsByName("ExtraValue");
		var limitID = document.getElementsByName("ExtraID");
		var temp = "";

		for (var i = 0; i < extraObject.length; i++) {
			if (extraType[i].value == "CHECK") {
				var objs = document.getElementsByName(extraObject[i].value);
				for (var j = 0; j < objs.length; j++) {
					if (objs[j].checked)
						temp = temp + objs[j].value + " ";
				}
				extraValue[i].value = temp;
				temp = "";
			}
			if (extraType[i].value == "COMBO") {
				var obj = document.getElementById(extraObject[i].value);
				if (obj == null)
					continue;
				extraValue[i].value = obj.value;
			}
			indexID[i].value = extraObject[i].value;
			limitValue[i].value = extraValue[i].value;
			limitID[i].value = extraID[i].value;
		}
	}

	function checkSimpleSearchField(obj) {
		if (!focused) {
			alert("검색어를 입력하십시오!");
			obj.SearchWord[0].focus();
			return;
		} else {
			simpleSearch(obj);
		}
	}

	function showEventHistory() {
		window.location = "http://library.snu.ac.kr/EventSearchHistory.jsp";
	}

	function searchResearchWord(val)
	{
		frmSearch.issue_search.value = "1";
		frmResearch.SearchWord.value = val;
		checkResearchField(frmResearch);
	}
