// 검색엔진 호출 Objects
var getLatestPapersAjaxRequestObject;
var getLatestPapersMypageAjaxRequestObject;
var getEventGroupListAjaxRequestObject;
var getSourcePapersAjaxRequestObject;
var getPersonMetadataAjaxRequestObject;
var getTopicMetadataAjaxRequestObject;
var getPersonPapersAjaxRequestObject;
var getPaperTopicsAjaxRequestObject;
var getPaperMetadataAjaxRequestObject;
var getSimilarPapersAjaxRequestObject;
var getInstitutionMetadataAjaxRequestObject;
var getSourceMetadataAjaxRequestObject;
var getTopicallyPapersAjaxRequestObject;
var getInternalPapersAjaxRequestObject;
var getListAjaxRequestObject;
var getImageAjaxRequestObject;
var getMyPapersAjaxRequestObject;
var getMyInterestedPapersAjaxRequestObject;
var getMyKeywordsAjaxRequestObject;
var getPopularKeywordsAjaxRequestObject;
var getKeywordTermTop4AjaxObject;
var getKeywordTermBottom4AjaxObject;
var getAddonExtend4AjaxRequestObject;

// 추론엔진 호출 Objects
var getTopicalPeopleAjaxRequestObject;
var getTopicalInstitutionAjaxRequestObject;
var getCitingAccomplishmentsAjaxRequestObject;
var getCitedAccomplishmentsAjaxRequestObject;
var getSimilarPeopleAjaxRequestObject;
var getCitingPeopleAjaxRequestObject;
var getCitedPeopleAjaxRequestObject;
var getPersonTopicsAjaxRequestObject;
var getInstitutionTopicsAjaxRequestObject;
var getPersonList4AjaxRequestObject;

// ChoiJY
var getGeneInformationAjaxRequestObject;
var proteinViewAjaxRequestObject;

// 키워드 확장 관련 Variable
var completeDivTop;
var inputFieldTop;
var nameTableTop;
var nameTableTopBodyTop;
var completeDivBottom;
var inputFieldBottom;
var nameTableBottom;
var nameTableTopBodyBottom;

function createAjaxRequestObject() {
    var ajaxReqObj = null;
    try {
        ajaxReqObj = new XMLHttpRequest();
    } catch(e_normalExplore) {
        try {
            ajaxReqObj = new ActiveXObject("Msxml2.XMLHTTP");
        } catch(e_oldExplore) {   
            try {
                ajaxReqObj = new ActiveXObject("Microsoft.XMLHTTP");
            } catch(e_otherExplore) {
                ajaxReqObj = null;
            }
        }
    }
    if(ajaxReqObj == null) {        
        alert("AJAX 요청 객체 생성에 실패했습니다.\n AJAX 코드를 실행할 수 없습니다.");
    }
    return ajaxReqObj;
}

function getLatestPapers4AjaxCall(pageNum) {
	var requestUrl = "getLatestPapers4Ajax.jsp?page_num=" + pageNum + "&dummy=" + (new Date()).getTime() + "a";
	getLatestPapersAjaxRequestObject = createAjaxRequestObject();
	getLatestPapersAjaxRequestObject.open("GET", requestUrl ,true);
	getLatestPapersAjaxRequestObject.onreadystatechange = getLatestPapers4AjaxOnResult;
	getLatestPapersAjaxRequestObject.send(null);
	return false;
}


function getLatestPapers4AjaxOnResult() {
	if(getLatestPapersAjaxRequestObject.readyState == 4) {
		var targetDiv = document.getElementById("getLatestPapersDiv");
		if(getLatestPapersAjaxRequestObject.status == 200) {
			targetDiv.innerHTML = getLatestPapersAjaxRequestObject.responseText;
		} else {
			alert("getLatestPapers 호출과정에 에러가 발생했습니다.[error code : " + getLatestPapersAjaxRequestObject.status + "]");
			targetDiv.innerHTML = "getLatestPapers 호출과정에 에러가 발생했습니다.[error code : " + getLatestPapersAjaxRequestObject.status + "]";
		}
	}
}

function getLatestPapersMypage4AjaxCall(pageNum) {
	var requestUrl = "getLatestPapersMypage4Ajax.jsp?page_num=" + pageNum + "&dummy=" + (new Date()).getTime() + "a";
	getLatestPapersMypageAjaxRequestObject = createAjaxRequestObject();
	getLatestPapersMypageAjaxRequestObject.open("GET", requestUrl ,true);
	getLatestPapersMypageAjaxRequestObject.onreadystatechange = getLatestPapersMypage4AjaxOnResult;
	getLatestPapersMypageAjaxRequestObject.send(null);
	return false;
}


function getLatestPapersMypage4AjaxOnResult() {
	if(getLatestPapersMypageAjaxRequestObject.readyState == 4) {
		var targetDiv = document.getElementById("mypagePapersDiv");
		if(getLatestPapersMypageAjaxRequestObject.status == 200) {
			targetDiv.innerHTML = getLatestPapersMypageAjaxRequestObject.responseText;
		} else {
			alert("getLatestPapersMypage 호출과정에 에러가 발생했습니다.[error code : " + getLatestPapersMypageAjaxRequestObject.status + "]");
			targetDiv.innerHTML = "getLatestPapersMypage 호출과정에 에러가 발생했습니다.[error code : " + getLatestPapersMypageAjaxRequestObject.status + "]";
		}
	}
}

function getSourcePapers4AjaxCall(pageNum, keyword, uri) {
	var requestUrl = "getSourcePapers4Ajax.jsp?page_num=" + pageNum + "&sword=" + keyword + "&linkgo=" + uri + "&dummy=" + (new Date()).getTime() + "d";
	getSourcePapersAjaxRequestObject = createAjaxRequestObject();
	getSourcePapersAjaxRequestObject.open("GET", requestUrl ,true);
	getSourcePapersAjaxRequestObject.onreadystatechange = getSourcePapers4AjaxOnResult;
	getSourcePapersAjaxRequestObject.send(null);
	return false;
}

function getSourcePapers4AjaxOnResult() {
	if(getSourcePapersAjaxRequestObject.readyState == 4) {
		var targetDiv = document.getElementById("getSourcePapersDiv");
		if(getSourcePapersAjaxRequestObject.status == 200) {
			targetDiv.innerHTML = getSourcePapersAjaxRequestObject.responseText;
		} else {
			alert("getSourcePapers 호출과정에 에러가 발생했습니다.[error code : " + getSourcePapersAjaxRequestObject.status + "]");
			targetDiv.innerHTML = "getSourcePapers 호출과정에 에러가 발생했습니다.[error code : " + getSourcePapersAjaxRequestObject.status + "]";
		}
	}
}

function getPersonMetadata4AjaxCall(sword, linkgo, personUri, personName, size) {
	var requestUrl = "getPersonMetadata4Ajax.jsp?sword=" + sword + "&linkgo=" + linkgo + "&person_uri=" + personUri + "&person_name=" + personName + "&size=" + size + "&dummy=" + (new Date()).getTime() + "e";
	getPersonMetadataAjaxRequestObject = createAjaxRequestObject();
	getPersonMetadataAjaxRequestObject.open("GET", requestUrl ,true);
	getPersonMetadataAjaxRequestObject.onreadystatechange = getPersonMetadata4AjaxOnResult;
	getPersonMetadataAjaxRequestObject.send(null);
	return false;
}

function getPersonMetadata4AjaxOnResult() {
	if(getPersonMetadataAjaxRequestObject.readyState == 4) {
		var targetDiv = document.getElementById("metadataDiv");
		if(getPersonMetadataAjaxRequestObject.status == 200) {
			targetDiv.innerHTML = getPersonMetadataAjaxRequestObject.responseText;
			//var jsondata = eval('('+getPersonMetadataAjaxRequestObject.responseText+')');
			//targetDiv.innerHTML = jsondata.pageResult;
			//getPersonQuantityGraph(jsondata.personUri);
		} else {
			alert("getPersonMetadata 호출과정에 에러가 발생했습니다.[error code : " + getPersonMetadataAjaxRequestObject.status + "]");
			targetDiv.innerHTML = "getPersonMetadata 호출과정에 에러가 발생했습니다.[error code : " + getPersonMetadataAjaxRequestObject.status + "]";
		}
	}
}

function getPersonMetadata4ToolTipCall(keyword, keywordURI, personName, uri, size) {
	var requestUrl = "getPersonMetadata4ToolTip.jsp?sword="+keyword+"&linkgo=" + keywordURI + "&name=" + personName + "&uri=" + uri + "&size=" + size + "&dummy=" + (new Date()).getTime() + "e";
	getPersonMetadataAjaxRequestObject = createAjaxRequestObject();
	getPersonMetadataAjaxRequestObject.open("GET", requestUrl ,true);
	getPersonMetadataAjaxRequestObject.onreadystatechange = getPersonMetadata4ToolTipOnResult;
	getPersonMetadataAjaxRequestObject.send(null);
	return "Receiving Data...";
}

function getPersonMetadata4ToolTipOnResult() {
	if(getPersonMetadataAjaxRequestObject.readyState == 4) {
		var targetDiv = document.getElementById("ToolTip");
		document.getElementById('ToolTip').style.visibility = "visible";
		if(getPersonMetadataAjaxRequestObject.status == 200) {
			//targetDiv.innerHTML = getPersonMetadataAjaxRequestObject.responseText;
			var jsondata = eval('('+getPersonMetadataAjaxRequestObject.responseText+')');
			targetDiv.innerHTML = jsondata.pageResult;
			//getPersonQuantityGraph(jsondata.personUri);
		} else {
			alert("getPersonMetadata 호출과정에 에러가 발생했습니다.[error code : " + getPersonMetadataAjaxRequestObject.status + "]");
			targetDiv.innerHTML = "";//getPersonMetadata 호출과정에 에러가 발생했습니다.[error code : " + getPersonMetadataAjaxRequestObject.status + "]";
		}
	}
}

function getTopicMetadata4ToolTipCall(keyword, keywordURI, Name, uri) {
	var requestUrl = "getTopicMetadata4ToolTip.jsp?sword="+keyword+"&linkgo="+keywordURI+"&name="+Name+"&uri="+uri+"&dummy="+(new Date()).getTime()+"e";
	getTopicMetadataAjaxRequestObject = createAjaxRequestObject();
	getTopicMetadataAjaxRequestObject.open("GET", requestUrl ,true);
	getTopicMetadataAjaxRequestObject.onreadystatechange = getTopicMetadata4ToolTipOnResult;
	getTopicMetadataAjaxRequestObject.send(null);
	return "Receiving Data...";
}

function getTopicMetadata4ToolTipOnResult() {
	if(getTopicMetadataAjaxRequestObject.readyState == 4) {
		var targetDiv = document.getElementById("ToolTip");
		document.getElementById('ToolTip').style.visibility = "visible";
		if(getTopicMetadataAjaxRequestObject.status == 200) {
			targetDiv.innerHTML = getTopicMetadataAjaxRequestObject.responseText;
			//var jsondata = eval('('+getTopicMetadataAjaxRequestObject.responseText+')');
			//targetDiv.innerHTML = jsondata.pageResult;
			//getPersonQuantityGraph(jsondata.personUri);
		} else {
			alert("getTopicMetadata 호출과정에 에러가 발생했습니다.[error code : " + getTopicMetadataAjaxRequestObject.status + "]");
			targetDiv.innerHTML = "";//getPersonMetadata 호출과정에 에러가 발생했습니다.[error code : " + getTopicMetadataAjaxRequestObject.status + "]";
		}
	}
}

function getPaperMetadata4ToolTipCall(keyword, uri, size) {
	var requestUrl = "getPaperMetadata4ToolTip.jsp?sword=" + keyword + "&linkgo=" + uri + "&size=" + size + "&dummy=" + (new Date()).getTime() + "h";
	getPaperMetadataAjaxRequestObject = createAjaxRequestObject();
	getPaperMetadataAjaxRequestObject.open("GET", requestUrl ,true);
	getPaperMetadataAjaxRequestObject.onreadystatechange = getPaperMetadata4ToolTipOnResult;
	getPaperMetadataAjaxRequestObject.send(null);
	return "Receiving Data...";
}

function getPaperMetadata4ToolTipOnResult() {
	if(getPaperMetadataAjaxRequestObject.readyState == 4) {
		var targetDiv = document.getElementById("ToolTip");
		document.getElementById('ToolTip').style.visibility = "visible";
		if(getPaperMetadataAjaxRequestObject.status == 200) {
			//targetDiv.innerHTML = getPaperMetadataAjaxRequestObject.responseText;
			var jsondata = eval('('+getPaperMetadataAjaxRequestObject.responseText+')');
			targetDiv.innerHTML = jsondata.pageResult;
		} else {
			alert("getPaperMetadata 호출과정에 에러가 발생했습니다.[error code : " + getPaperMetadataAjaxRequestObject.status + "]");
			targetDiv.innerHTML = "";//getPaperMetadata 호출과정에 에러가 발생했습니다.[error code : " + getPaperMetadataAjaxRequestObject.status + "]";
		}
	}
}

function getInstitutionMetadata4ToolTipCall(topicUri, keyword, uri, size) {
	var requestUrl = "getInstitutionMetadata4ToolTip.jsp?sword=" + keyword + "&linkgo=" + uri + "&topicUri=" + topicUri + "&size=" + size + "&dummy=" + (new Date()).getTime() + "h";
	getInstitutionMetadataAjaxRequestObject = createAjaxRequestObject();
	getInstitutionMetadataAjaxRequestObject.open("GET", requestUrl ,true);
	getInstitutionMetadataAjaxRequestObject.onreadystatechange = getInstitutionMetadata4ToolTipOnResult;
	getInstitutionMetadataAjaxRequestObject.send(null);
	return "Receiving Data...";
}

function getInstitutionMetadata4ToolTipOnResult() {
	if(getInstitutionMetadataAjaxRequestObject.readyState == 4) {
		var targetDiv = document.getElementById("ToolTip");
		document.getElementById('ToolTip').style.visibility = "visible";
		if(getInstitutionMetadataAjaxRequestObject.status == 200) {
			//targetDiv.innerHTML = getInstitutionMetadataAjaxRequestObject.responseText;
			var jsondata = eval('('+getInstitutionMetadataAjaxRequestObject.responseText+')');
			targetDiv.innerHTML = jsondata.pageResult;
		} else {
			alert("getInstitutionMetadata 호출과정에 에러가 발생했습니다.[error code : " + getInstitutionMetadataAjaxRequestObject.status + "]");
			targetDiv.innerHTML = "";//getInstitutionMetadata 호출과정에 에러가 발생했습니다.[error code : " + getInstitutionMetadataAjaxRequestObject.status + "]";
		}
	}
}

function getSourceMetadata4ToolTipCall(keyword, uri, size) {
	var requestUrl = "getSourceMetadata4ToolTip.jsp?sword=" + keyword + "&linkgo=" + uri + "&size=" + size + "&dummy=" + (new Date()).getTime() + "h";
	getSourceMetadataAjaxRequestObject = createAjaxRequestObject();
	getSourceMetadataAjaxRequestObject.open("GET", requestUrl ,true);
	getSourceMetadataAjaxRequestObject.onreadystatechange = getSourceMetadata4ToolTipOnResult;
	getSourceMetadataAjaxRequestObject.send(null);
	return "Receiving Data...";
}

function getSourceMetadata4ToolTipOnResult() {
	if(getSourceMetadataAjaxRequestObject.readyState == 4) {
		var targetDiv = document.getElementById("ToolTip");
		document.getElementById('ToolTip').style.visibility = "visible";
		if(getSourceMetadataAjaxRequestObject.status == 200) {
			//targetDiv.innerHTML = getSourceMetadataAjaxRequestObject.responseText;
			var jsondata = eval('('+getSourceMetadataAjaxRequestObject.responseText+')');
			targetDiv.innerHTML = jsondata.pageResult;
		} else {
			alert("getSourceMetadata 호출과정에 에러가 발생했습니다.[error code : " + getSourceMetadataAjaxRequestObject.status + "]");
			targetDiv.innerHTML = "";//getSourceMetadata 호출과정에 에러가 발생했습니다.[error code : " + getSourceMetadataAjaxRequestObject.status + "]";
		}
	}
}

function getPersonPapers4AjaxCall(pageNum, keyword, uri) {
	var requestUrl = "getPersonPapers4Ajax.jsp?page_num=" + pageNum + "&sword=" + keyword + "&linkgo=" + uri + "&dummy=" + (new Date()).getTime() + "f";
	getPersonPapersAjaxRequestObject = createAjaxRequestObject();
	getPersonPapersAjaxRequestObject.open("GET", requestUrl ,true);
	getPersonPapersAjaxRequestObject.onreadystatechange = getPersonPapers4AjaxOnResult;
	getPersonPapersAjaxRequestObject.send(null);
	return false;
}

function getPersonPapers4AjaxOnResult() {
	if(getPersonPapersAjaxRequestObject.readyState == 4) {
		var targetDiv = document.getElementById("getPersonPapersDiv");
		if(getPersonPapersAjaxRequestObject.status == 200) {
			targetDiv.innerHTML = getPersonPapersAjaxRequestObject.responseText;
		} else {
			alert("getPersonPapers 호출과정에 에러가 발생했습니다.[error code : " + getPersonPapersAjaxRequestObject.status + "]");
			targetDiv.innerHTML = "getPersonPapers 호출과정에 에러가 발생했습니다.[error code : " + getPersonPapersAjaxRequestObject.status + "]";
		}
	}
}

function getPaperTopics4AjaxCall(uri, size) {
	var requestUrl = "getPaperTopics4Ajax.jsp?linkgo=" + uri + "&size=" + size + "&dummy=" + (new Date()).getTime() + "g";
	getPaperTopicsAjaxRequestObject = createAjaxRequestObject();
	getPaperTopicsAjaxRequestObject.open("GET", requestUrl ,true);
	getPaperTopicsAjaxRequestObject.onreadystatechange = getPaperTopics4AjaxOnResult;
	getPaperTopicsAjaxRequestObject.send(null);
	return false;
}

function getPaperTopics4AjaxOnResult() {
	if(getPaperTopicsAjaxRequestObject.readyState == 4) {
		var targetDiv = document.getElementById("getPaperTopicsDiv");
		if(getPaperTopicsAjaxRequestObject.status == 200) {
			targetDiv.innerHTML = getPaperTopicsAjaxRequestObject.responseText;
		} else {
			alert("getPaperTopics 호출과정에 에러가 발생했습니다.[error code : " + getPaperTopicsAjaxRequestObject.status + "]");
			targetDiv.innerHTML = "getPaperTopics 호출과정에 에러가 발생했습니다.[error code : " + getPaperTopicsAjaxRequestObject.status + "]";
		}
	}
}

function getSimilarPapers4AjaxCall(pageNum, keyword, uri) {
	var requestUrl = "getSimilarPapers4Ajax.jsp?page_num=" + pageNum + "&sword=" + keyword + "&linkgo=" + uri + "&dummy=" + (new Date()).getTime() + "i";
	getSimilarPapersAjaxRequestObject = createAjaxRequestObject();
	getSimilarPapersAjaxRequestObject.open("GET", requestUrl ,true);
	getSimilarPapersAjaxRequestObject.onreadystatechange = getSimilarPapers4AjaxOnResult;
	getSimilarPapersAjaxRequestObject.send(null);
	return false;
}

function getSimilarPapers4AjaxOnResult() {
	if(getSimilarPapersAjaxRequestObject.readyState == 4) {
		var targetDiv = document.getElementById("getSimilarPapersDiv");
		if(getSimilarPapersAjaxRequestObject.status == 200) {
			targetDiv.innerHTML = getSimilarPapersAjaxRequestObject.responseText;
			//var jsondata = eval('('+getSimilarPapersAjaxRequestObject.responseText+')');
			targetDiv.innerHTML = jsondata.pageResult;
		} else {
			alert("getSimilarPapers 호출과정에 에러가 발생했습니다.[error code : " + getSimilarPapersAjaxRequestObject.status + "]");
			targetDiv.innerHTML = "getSimilarPapers 호출과정에 에러가 발생했습니다.[error code : " + getSimilarPapersAjaxRequestObject.status + "]";
		}
	}
}

function getTopicallyPapers4AjaxCall(pageNum, keyword, uri, sortField) {
	var requestUrl = "getTopicallyPapers4Ajax.jsp?page_num=" + pageNum + "&sword=" + keyword + "&linkgo=" + uri + "&sort_field=" + sortField + "&dummy=" + (new Date()).getTime() + "k";
	getTopicallyPapersAjaxRequestObject = createAjaxRequestObject();
	getTopicallyPapersAjaxRequestObject.open("GET", requestUrl ,true);
	getTopicallyPapersAjaxRequestObject.onreadystatechange = getTopicallyPapers4AjaxOnResult;
	getTopicallyPapersAjaxRequestObject.send(null);
	return false;
}

function getTopicallyPapers4AjaxOnResult() {
	if(getTopicallyPapersAjaxRequestObject.readyState == 4) {
		var targetDiv = document.getElementById("getTopicallyPapersDiv");
		if(getTopicallyPapersAjaxRequestObject.status == 200) {
			targetDiv.innerHTML = getTopicallyPapersAjaxRequestObject.responseText;
		} else {
			alert("getTopicallyPapers 호출과정에 에러가 발생했습니다.[error code : " + getTopicallyPapersAjaxRequestObject.status + "]");
			targetDiv.innerHTML = "getTopicallyPapers 호출과정에 에러가 발생했습니다.[error code : " + getTopicallyPapersAjaxRequestObject.status + "]";
		}
	}
}

function getInternalPapers4AjaxCall(pageNum, keyword, uri, searchField, sortField, isHighlight) {
	var requestUrl = "getInternalPapers4Ajax.jsp?sword=" + keyword + "&linkgo=" + uri + "&search_field=" + searchField + "&sort_field=" + sortField + "&page_num=" + pageNum + "&is_highlight=" + isHighlight + "&dummy=" + (new Date()).getTime() + "l";
	getInternalPapersAjaxRequestObject = createAjaxRequestObject();
	getInternalPapersAjaxRequestObject.open("GET", requestUrl ,true);
	getInternalPapersAjaxRequestObject.onreadystatechange = getInternalPapers4AjaxOnResult;
	getInternalPapersAjaxRequestObject.send(null);
	return false;
}

function getInternalPapers4AjaxOnResult() {
	if(getInternalPapersAjaxRequestObject.readyState == 4) {
		var targetDiv = document.getElementById("getInternalPapersDiv");
		if(getInternalPapersAjaxRequestObject.status == 200) {
			targetDiv.innerHTML = getInternalPapersAjaxRequestObject.responseText;
		} else {
			alert("getInternalPapers 호출과정에 에러가 발생했습니다.[error code : " + getInternalPapersAjaxRequestObject.status + "]");
			targetDiv.innerHTML = "getInternalPapers 호출과정에 에러가 발생했습니다.[error code : " + getInternalPapersAjaxRequestObject.status + "]";
		}
	}
}

function getList4AjaxCall(pageNum, keyword, uri, searchField, sortField, isHighlight) {
	var requestUrl = "getList4Ajax.jsp?page_num=" + pageNum + "&sword=" + keyword + "&linkgo=" + uri + "&search_field=" + searchField + "&sort_field=" + sortField + "&is_highlight=" + isHighlight + "&dummy=" + (new Date()).getTime() + "l";
	getListAjaxRequestObject = createAjaxRequestObject();
	getListAjaxRequestObject.open("GET", requestUrl ,true);
	getListAjaxRequestObject.onreadystatechange = getList4AjaxOnResult;
	getListAjaxRequestObject.send(null);
	return false;
}

function getList4AjaxOnResult() {
	if(getListAjaxRequestObject.readyState == 4) {
		var targetDiv = document.getElementById("getListDiv");
		if(getListAjaxRequestObject.status == 200) {
			targetDiv.innerHTML = getListAjaxRequestObject.responseText;
		} else {
			alert("getListPapers 호출과정에 에러가 발생했습니다.[error code : " + getListAjaxRequestObject.status + "]");
			targetDiv.innerHTML = "getInternalPapers 호출과정에 에러가 발생했습니다.[error code : " + getListAjaxRequestObject.status + "]";
		}
	}
}

function getImage4AjaxCall(pageNum, keyword) {
	var requestUrl = "getImage4Ajax.jsp?page_num=" + pageNum + "&sword=" + keyword  + "&dummy=" + (new Date()).getTime() + "l";
	getImageAjaxRequestObject = createAjaxRequestObject();
	getImageAjaxRequestObject.open("GET", requestUrl ,true);
	getImageAjaxRequestObject.onreadystatechange = getImage4AjaxOnResult;
	getImageAjaxRequestObject.send(null);
	return false;
}

function getImage4AjaxOnResult() {
	if(getImageAjaxRequestObject.readyState == 4) {
		var targetDiv = document.getElementById("getImageDiv");
		if(getImageAjaxRequestObject.status == 200) {
			targetDiv.innerHTML = getImageAjaxRequestObject.responseText;
		} else {
			alert("getImageDatas 호출과정에 에러가 발생했습니다.[error code : " + getImageAjaxRequestObject.status + "]");
			targetDiv.innerHTML = "getImageDatas 호출과정에 에러가 발생했습니다.[error code : " + getImageAjaxRequestObject.status + "]";
		}
	}
}

function getMyPapers4AjaxCall(pageNum, uri) {
	var requestUrl = "getMyPapers4Ajax.jsp?page_num=" + pageNum + "&linkgo=" + uri + "&dummy=" + (new Date()).getTime() + "l";
	getMyPapersAjaxRequestObject = createAjaxRequestObject();
	getMyPapersAjaxRequestObject.open("GET", requestUrl ,true);
	getMyPapersAjaxRequestObject.onreadystatechange = getMyPapers4AjaxOnResult;
	getMyPapersAjaxRequestObject.send(null);
	return false;
}

function getMyPapers4AjaxOnResult() {
	if(getMyPapersAjaxRequestObject.readyState == 4) {
		var targetDiv = document.getElementById("mypagePapersDiv");
		if(getMyPapersAjaxRequestObject.status == 200) {
			targetDiv.innerHTML = getMyPapersAjaxRequestObject.responseText;
		} else {
			alert("getMyPapers 호출과정에 에러가 발생했습니다.[error code : " + getMyPapersAjaxRequestObject.status + "]");
			targetDiv.innerHTML = "getMyPapers 호출과정에 에러가 발생했습니다.[error code : " + getMyPapersAjaxRequestObject.status + "]";
		}
	}
}

function getMyInterestedPapers4AjaxCall(pageNum, uri) {
	var requestUrl = "getMyInterestedPapers4Ajax.jsp?page_num=" + pageNum + "&linkgo=" + uri + "&dummy=" + (new Date()).getTime() + "l";
	getMyInterestedPapersAjaxRequestObject = createAjaxRequestObject();
	getMyInterestedPapersAjaxRequestObject.open("GET", requestUrl ,true);
	getMyInterestedPapersAjaxRequestObject.onreadystatechange = getMyInterestedPapers4AjaxOnResult;
	getMyInterestedPapersAjaxRequestObject.send(null);
	return false;
}

function getMyInterestedPapers4AjaxOnResult() {
	if(getMyInterestedPapersAjaxRequestObject.readyState == 4) {
		var targetDiv = document.getElementById("mypagePapersDiv");
		if(getMyInterestedPapersAjaxRequestObject.status == 200) {
			targetDiv.innerHTML = getMyInterestedPapersAjaxRequestObject.responseText;
		} else {
			alert("getMyInterestedPapers 호출과정에 에러가 발생했습니다.[error code : " + getMyInterestedPapersAjaxRequestObject.status + "]");
			targetDiv.innerHTML = "getMyInterestedPapers 호출과정에 에러가 발생했습니다.[error code : " + getMyInterestedPapersAjaxRequestObject.status + "]";
		}
	}
}

function getMyKeywords4AjaxCall(pageNum, uri) {
	var requestUrl = "getMyKeywords4Ajax.jsp?page_num=" + pageNum + "&linkgo=" + uri + "&dummy=" + (new Date()).getTime() + "l";
	getMyKeywordsAjaxRequestObject = createAjaxRequestObject();
	getMyKeywordsAjaxRequestObject.open("GET", requestUrl ,true);
	getMyKeywordsAjaxRequestObject.onreadystatechange = getMyKeywords4AjaxOnResult;
	getMyKeywordsAjaxRequestObject.send(null);
	return false;
}

function getMyKeywords4AjaxOnResult() {
	if(getMyKeywordsAjaxRequestObject.readyState == 4) {
		var targetDiv = document.getElementById("mypageSearchesDiv");
		if(getMyKeywordsAjaxRequestObject.status == 200) {
			targetDiv.innerHTML = getMyKeywordsAjaxRequestObject.responseText;
		} else {
			alert("getMyKeywords 호출과정에 에러가 발생했습니다.[error code : " + getMyKeywordsAjaxRequestObject.status + "]");
			targetDiv.innerHTML = "getMyKeywords 호출과정에 에러가 발생했습니다.[error code : " + getMyKeywordsAjaxRequestObject.status + "]";
		}
	}
}

function getPopularKeywords4AjaxCall(pageNum) {
	var requestUrl = "getPopularKeywords4Ajax.jsp?page_num=" + pageNum + "&dummy=" + (new Date()).getTime() + "l";
	getPopularKeywordsAjaxRequestObject = createAjaxRequestObject();
	getPopularKeywordsAjaxRequestObject.open("GET", requestUrl ,true);
	getPopularKeywordsAjaxRequestObject.onreadystatechange = getPopularKeywords4AjaxOnResult;
	getPopularKeywordsAjaxRequestObject.send(null);
	return false;
}

function getPopularKeywords4AjaxOnResult() {
	if(getPopularKeywordsAjaxRequestObject.readyState == 4) {
		var targetDiv = document.getElementById("mypageSearchesDiv");
		if(getPopularKeywordsAjaxRequestObject.status == 200) {
			targetDiv.innerHTML = getPopularKeywordsAjaxRequestObject.responseText;
		} else {
			alert("getPopularKeywords 호출과정에 에러가 발생했습니다.[error code : " + getPopularKeywordsAjaxRequestObject.status + "]");
			targetDiv.innerHTML = "getPopularKeywords 호출과정에 에러가 발생했습니다.[error code : " + getPopularKeywordsAjaxRequestObject.status + "]";
		}
	}
}

function getTopicalPeople4AjaxCall(keyword, pageNum, uri, flag) {
	var targetDiv = document.getElementById("getTopicalPeopleDiv");
	targetDiv.innerHTML = "<center>Receiving Data...</center>";
	
	var requestUrl = "getTopicalPeople4Ajax.jsp?sword="+keyword+"&page_num=" + pageNum + "&linkgo=" + uri + "&flag=" + flag + "&dummy=" + (new Date()).getTime() + "m";
	getTopicalPeopleAjaxRequestObject = createAjaxRequestObject();
	getTopicalPeopleAjaxRequestObject.open("GET", requestUrl ,true);
	getTopicalPeopleAjaxRequestObject.onreadystatechange = getTopicalPeople4AjaxOnResult;
	getTopicalPeopleAjaxRequestObject.send(null);
	return false;
}

function getTopicalPeople4AjaxOnResult() {
	if(getTopicalPeopleAjaxRequestObject.readyState == 4) {
		var targetDiv = document.getElementById("getTopicalPeopleDiv");
		if(getTopicalPeopleAjaxRequestObject.status == 200) {
			//targetDiv.innerHTML = getTopicalPeopleAjaxRequestObject.responseText;
			var jsondata = eval('('+getTopicalPeopleAjaxRequestObject.responseText+')');
			targetDiv.innerHTML = jsondata.pageResult;
			addOnGroupSetPage(jsondata.pageNum, jsondata.flag);
		} else {
			alert("getTopicalPeople 호출과정에 에러가 발생했습니다.[error code : " + getTopicalPeopleAjaxRequestObject.status + "]");
			targetDiv.innerHTML = "getTopicalPeople 호출과정에 에러가 발생했습니다.[error code : " + getTopicalPeopleAjaxRequestObject.status + "]";
		}
	}
}

function getTopicalInstitutions4AjaxCall(keyword, pageNum, uri, flag) {
	var targetDiv = document.getElementById("getTopicalInstitutionsDiv");
	targetDiv.innerHTML = "<center>Receiving Data...</center>";
	
	var requestUrl = "getTopicalInstitutions4Ajax.jsp?sword="+keyword+"&page_num=" + pageNum + "&linkgo=" + uri + "&flag=" + flag + "&dummy=" + (new Date()).getTime() + "n";
	getTopicalInstitutionsAjaxRequestObject = createAjaxRequestObject();
	getTopicalInstitutionsAjaxRequestObject.open("GET", requestUrl ,true);
	getTopicalInstitutionsAjaxRequestObject.onreadystatechange = getTopicalInstitutions4AjaxOnResult;
	getTopicalInstitutionsAjaxRequestObject.send(null);
	return false;
}

function getTopicalInstitutions4AjaxOnResult() {
	if(getTopicalInstitutionsAjaxRequestObject.readyState == 4) {
		var targetDiv = document.getElementById("getTopicalInstitutionsDiv");
		if(getTopicalInstitutionsAjaxRequestObject.status == 200) {
			//targetDiv.innerHTML = getTopicalInstitutionsAjaxRequestObject.responseText;
			var jsondata = eval('('+getTopicalInstitutionsAjaxRequestObject.responseText+')');
			targetDiv.innerHTML = jsondata.pageResult;
		} else {
			alert("getTopicalInstitutions 호출과정에 에러가 발생했습니다.[error code : " + getTopicalInstitutionsAjaxRequestObject.status + "]");
			targetDiv.innerHTML = "getTopicalInstitutions 호출과정에 에러가 발생했습니다.[error code : " + getTopicalInstitutionsAjaxRequestObject.status + "]";
		}
	}
}

function getCitingAccomplishments4AjaxCall(pageNum, uri) {
	var requestUrl = "getCitingAccomplishments4Ajax.jsp?page_num=" + pageNum + "&linkgo=" + uri + "&dummy=" + (new Date()).getTime() + "o";
	getCitingAccomplishmentsAjaxRequestObject = createAjaxRequestObject();
	getCitingAccomplishmentsAjaxRequestObject.open("GET", requestUrl ,true);
	getCitingAccomplishmentsAjaxRequestObject.onreadystatechange = getCitingAccomplishments4AjaxOnResult;
	getCitingAccomplishmentsAjaxRequestObject.send(null);
	return false;
}

function getCitingAccomplishments4AjaxOnResult() {
	if(getCitingAccomplishmentsAjaxRequestObject.readyState == 4) {
		var targetDiv = document.getElementById("getCitingAccomplishmentsDiv");
		if(getCitingAccomplishmentsAjaxRequestObject.status == 200) {
			targetDiv.innerHTML = getCitingAccomplishmentsAjaxRequestObject.responseText;
		} else {
			alert("getCitingAccomplishments 호출과정에 에러가 발생했습니다.[error code : " + getCitingAccomplishmentsAjaxRequestObject.status + "]");
			targetDiv.innerHTML = "getCitingAccomplishments 호출과정에 에러가 발생했습니다.[error code : " + getCitingAccomplishmentsAjaxRequestObject.status + "]";
		}
	}
}

function getCitedAccomplishments4AjaxCall(pageNum, uri) {
	var requestUrl = "getCitedAccomplishments4Ajax.jsp?page_num=" + pageNum + "&linkgo=" + uri + "&dummy=" + (new Date()).getTime() + "p";
	getCitedAccomplishmentsAjaxRequestObject = createAjaxRequestObject();
	getCitedAccomplishmentsAjaxRequestObject.open("GET", requestUrl ,true);
	getCitedAccomplishmentsAjaxRequestObject.onreadystatechange = getCitedAccomplishments4AjaxOnResult;
	getCitedAccomplishmentsAjaxRequestObject.send(null);
	return false;
}

function getCitedAccomplishments4AjaxOnResult() {
	if(getCitedAccomplishmentsAjaxRequestObject.readyState == 4) {
		var targetDiv = document.getElementById("getCitedAccomplishmentsDiv");
		if(getCitedAccomplishmentsAjaxRequestObject.status == 200) {
			targetDiv.innerHTML = getCitedAccomplishmentsAjaxRequestObject.responseText;
		} else {
			alert("getCitedAccomplishments 호출과정에 에러가 발생했습니다.[error code : " + getCitedAccomplishmentsAjaxRequestObject.status + "]");
			targetDiv.innerHTML = "getCitedAccomplishments 호출과정에 에러가 발생했습니다.[error code : " + getCitedAccomplishmentsAjaxRequestObject.status + "]";
		}
	}
}

function getSimilarPeople4AjaxCall(keyword, pageNum, uri, flag) {
	var targetDiv = document.getElementById("getSimilarPeopleDiv");
	targetDiv.innerHTML = "<center>Receiving Data...</center>";
	
	var requestUrl = "getSimilarPeople4Ajax.jsp?sword="+keyword+"&page_num=" + pageNum + "&linkgo=" + uri + "&flag=" + flag + "&dummy=" + (new Date()).getTime() + "q";
	getSimilarPeopleAjaxRequestObject = createAjaxRequestObject();
	getSimilarPeopleAjaxRequestObject.open("GET", requestUrl ,true);
	getSimilarPeopleAjaxRequestObject.onreadystatechange = getSimilarPeople4AjaxOnResult;
	getSimilarPeopleAjaxRequestObject.send(null);
	return false;
}

function getSimilarPeople4AjaxOnResult() {
	if(getSimilarPeopleAjaxRequestObject.readyState == 4) {
		var targetDiv = document.getElementById("getSimilarPeopleDiv");
		if(getSimilarPeopleAjaxRequestObject.status == 200) {
			//targetDiv.innerHTML = getSimilarPeopleAjaxRequestObject.responseText;
			var jsondata = eval('('+getSimilarPeopleAjaxRequestObject.responseText+')');
			targetDiv.innerHTML = jsondata.pageResult;
		} else {
			alert("getSimilarPeople 호출과정에 에러가 발생했습니다.[error code : " + getSimilarPeopleAjaxRequestObject.status + "]");
			targetDiv.innerHTML = "getSimilarPeople 호출과정에 에러가 발생했습니다.[error code : " + getSimilarPeopleAjaxRequestObject.status + "]";
		}
	}
}

function getCitingPeople4AjaxCall(pageNum, uri, flag) {
	var targetDiv = document.getElementById("getCitingPeopleDiv");
	targetDiv.innerHTML = "<center>Receiving Data...</center>";
	
	var requestUrl = "getCitingPeople4Ajax.jsp?page_num=" + pageNum + "&linkgo=" + uri + "&flag=" + flag + "&dummy=" + (new Date()).getTime() + "r";
	getCitingPeopleAjaxRequestObject = createAjaxRequestObject();
	getCitingPeopleAjaxRequestObject.open("GET", requestUrl ,true);
	getCitingPeopleAjaxRequestObject.onreadystatechange = getCitingPeople4AjaxOnResult;
	getCitingPeopleAjaxRequestObject.send(null);
	return false;
}

function getCitingPeople4AjaxOnResult() {
	if(getCitingPeopleAjaxRequestObject.readyState == 4) {
		var targetDiv = document.getElementById("getCitingPeopleDiv");
		if(getCitingPeopleAjaxRequestObject.status == 200) {
			targetDiv.innerHTML = getCitingPeopleAjaxRequestObject.responseText;
		} else {
			alert("getCitingPeople 호출과정에 에러가 발생했습니다.[error code : " + getCitingPeopleAjaxRequestObject.status + "]");
			targetDiv.innerHTML = "getCitingPeople 호출과정에 에러가 발생했습니다.[error code : " + getCitingPeopleAjaxRequestObject.status + "]";
		}
	}
}

function getCitedPeople4AjaxCall(pageNum, uri, flag) {
	var targetDiv = document.getElementById("getCitedPeopleDiv");
	targetDiv.innerHTML = "<center>Receiving Data...</center>";
	
	var requestUrl = "getCitedPeople4Ajax.jsp?page_num=" + pageNum + "&linkgo=" + uri + "&flag=" + flag + "&dummy=" + (new Date()).getTime() + "s";
	getCitedPeopleAjaxRequestObject = createAjaxRequestObject();
	getCitedPeopleAjaxRequestObject.open("GET", requestUrl ,true);
	getCitedPeopleAjaxRequestObject.onreadystatechange = getCitedPeople4AjaxOnResult;
	getCitedPeopleAjaxRequestObject.send(null);
	return false;
}

function getCitedPeople4AjaxOnResult() {
	if(getCitedPeopleAjaxRequestObject.readyState == 4) {
		var targetDiv = document.getElementById("getCitedPeopleDiv");
		if(getCitedPeopleAjaxRequestObject.status == 200) {
			targetDiv.innerHTML = getCitedPeopleAjaxRequestObject.responseText;
		} else {
			alert("getCitedPeople 호출과정에 에러가 발생했습니다.[error code : " + getCitedPeopleAjaxRequestObject.status + "]");
			targetDiv.innerHTML = "getCitedPeople 호출과정에 에러가 발생했습니다.[error code : " + getCitedPeopleAjaxRequestObject.status + "]";
		}
	}
}

function getPersonTopics4AjaxCall(uri, size) {
	var requestUrl = "getPersonTopics4Ajax.jsp?linkgo=" + uri + "&size=" + size + "&dummy=" + (new Date()).getTime() + "t";
	getPersonTopicsAjaxRequestObject = createAjaxRequestObject();
	getPersonTopicsAjaxRequestObject.open("GET", requestUrl ,true);
	getPersonTopicsAjaxRequestObject.onreadystatechange = getPersonTopics4AjaxOnResult;
	getPersonTopicsAjaxRequestObject.send(null);
	return false;
}

function getPersonTopics4AjaxOnResult() {
	if(getPersonTopicsAjaxRequestObject.readyState == 4) {
		var targetDiv = document.getElementById("getPersonTopicsDiv");
		if(getPersonTopicsAjaxRequestObject.status == 200) {
			targetDiv.innerHTML = getPersonTopicsAjaxRequestObject.responseText;
		} else {
			alert("getPersonTopics 호출과정에 에러가 발생했습니다.[error code : " + getPersonTopicsAjaxRequestObject.status + "]");
			targetDiv.innerHTML = "getPersonTopics 호출과정에 에러가 발생했습니다.[error code : " + getPersonTopicsAjaxRequestObject.status + "]";
		}
	}
}

function getInstitutionTopics4AjaxCall(uri, size) {
	var requestUrl = "getInstitutionTopics4Ajax.jsp?linkgo=" + uri + "&size=" + size + "&dummy=" + (new Date()).getTime() + "u";
	getInstitutionTopicsAjaxRequestObject = createAjaxRequestObject();
	getInstitutionTopicsAjaxRequestObject.open("GET", requestUrl ,true);
	getInstitutionTopicsAjaxRequestObject.onreadystatechange = getInstitutionTopics4AjaxOnResult;
	getInstitutionTopicsAjaxRequestObject.send(null);
	return false;
}

function getInstitutionTopics4AjaxOnResult() {
	if(getInstitutionTopicsAjaxRequestObject.readyState == 4) {
		var targetDiv = document.getElementById("getInstitutionTopicsDiv");
		if(getInstitutionTopicsAjaxRequestObject.status == 200) {
			targetDiv.innerHTML = getInstitutionTopicsAjaxRequestObject.responseText;
		} else {
			alert("getInstitutionTopics 호출과정에 에러가 발생했습니다.[error code : " + getInstitutionTopicsAjaxRequestObject.status + "]");
			targetDiv.innerHTML = "getInstitutionTopics 호출과정에 에러가 발생했습니다.[error code : " + getInstitutionTopicsAjaxRequestObject.status + "]";
		}
	}
}

function getAddonExtend4AjaxCall(type,uri) {
	var requestUrl = "getAddonExtend4Ajax.jsp?type=" + type + "&uri=" + uri + "&dummy=" + (new Date()).getTime() + "u";
	getAddonExtend4AjaxRequestObject = createAjaxRequestObject();
	getAddonExtend4AjaxRequestObject.open("GET", requestUrl ,true);
	getAddonExtend4AjaxRequestObject.onreadystatechange = getAddonExtend4AjaxOnResult;
	getAddonExtend4AjaxRequestObject.send(null);
}

function getAddonExtend4AjaxOnResult() {
	if(getAddonExtend4AjaxRequestObject.readyState == 4) {
		var targetDiv = document.getElementById("AddonExtend");
		document.getElementById('AddonExtend').style.visibility = "visible";
		if(getAddonExtend4AjaxRequestObject.status == 200) {
			targetDiv.innerHTML = getAddonExtend4AjaxRequestObject.responseText;
		} else {
			alert("getAddonExtend 호출과정에 에러가 발생했습니다.[error code : " + getAddonExtend4AjaxRequestObject.status + "]");
			targetDiv.innerHTML = "getAddonExtend 호출과정에 에러가 발생했습니다.[error code : " + getAddonExtend4AjaxRequestObject.status + "]";
		}
	}
}

function getOverlappedTopics4AjaxCall(name, uri) {
	var requestUrl = "getOverlappedTopics4Ajax.jsp?sword=" + name + "&linkgo=" + uri + "&dummy=" + (new Date()).getTime() + "u";
	getOverlappedTopics4AjaxRequestObject = createAjaxRequestObject();
	getOverlappedTopics4AjaxRequestObject.open("GET", requestUrl ,true);
	getOverlappedTopics4AjaxRequestObject.onreadystatechange = getOverlappedTopics4AjaxOnResult;
	getOverlappedTopics4AjaxRequestObject.send(null);
}

function getOverlappedTopics4AjaxOnResult() {
	if(getOverlappedTopics4AjaxRequestObject.readyState == 4) {
		var targetDiv = document.getElementById("OverlappedDiv");
		if(getOverlappedTopics4AjaxRequestObject.status == 200) {
			targetDiv.innerHTML = getOverlappedTopics4AjaxRequestObject.responseText;
		} else {
			alert("getOverlappedTopics 호출과정에 에러가 발생했습니다.[error code : " + getOverlappedTopics4AjaxRequestObject.status + "]");
			targetDiv.innerHTML = "getOverlappedTopics 호출과정에 에러가 발생했습니다.[error code : " + getOverlappedTopics4AjaxRequestObject.status + "]";
		}
	}
}

function getPersonList4AjaxCall(topicUri, insUri, pageNum) {
	var requestUrl = "getPersonList4Ajax.jsp?topicUri=" + topicUri + "&insUri=" + insUri + "&page_num=" + pageNum + "&dummy=" + (new Date()).getTime() + "d";
	getPersonList4AjaxRequestObject = createAjaxRequestObject();
	getPersonList4AjaxRequestObject.open("GET", requestUrl ,true);
	getPersonList4AjaxRequestObject.onreadystatechange = getPersonList4AjaxOnResult;
	getPersonList4AjaxRequestObject.send(null);
	return false;
}

function getPersonList4AjaxOnResult() {
	if(getPersonList4AjaxRequestObject.readyState == 4) {
		var targetDiv = document.getElementById("getPersonListDiv");
		if(getPersonList4AjaxRequestObject.status == 200) {
			if (getPersonList4AjaxRequestObject.responseText!=null) {
				targetDiv.innerHTML = getPersonList4AjaxRequestObject.responseText;
			}				
		} else {
			alert("getPersonInINSByTopics 호출과정에 에러가 발생했습니다.[error code : " + getPersonList4AjaxRequestObject.status + "]");
			targetDiv.innerHTML = "getPersonInINSByTopics 호출과정에 에러가 발생했습니다.[error code : " + getPersonList4AjaxRequestObject.status + "]";
		}
	}
}

function getKeywordTermTop4AjaxCall() {
	inputFieldTop = document.getElementById("names_top");
	nameTableTop = document.getElementById("name_table_top");
	completeDivTop = document.getElementById("popup_top");
	nameTableTopBodyTop = document.getElementById("name_table_body_top");

	if (inputFieldTop.value.length > 0) {
		var requestUrl = "getKeywordTerm4Ajax.jsp?keyword=" + escape(inputFieldTop.value) + "&dummy=" + (new Date()).getTime() + "a";
		getKeywordTermTop4AjaxObject = createAjaxRequestObject();
		getKeywordTermTop4AjaxObject.open("GET", requestUrl ,true);
		getKeywordTermTop4AjaxObject.onreadystatechange = getKeywordTermTop4AjaxOnResult;
		getKeywordTermTop4AjaxObject.send(null);
	} else {
		clearNames(true);
	}
	return false;
}

function getKeywordTermTop4AjaxOnResult() {
	if(getKeywordTermTop4AjaxObject.readyState == 4) {
		if(getKeywordTermTop4AjaxObject.status == 200) {
			var jsondata = eval('('+getKeywordTermTop4AjaxObject.responseText+')');
			setNames(jsondata.keywords, true);
		} else if(getKeywordTermTop4AjaxObject.status == 204) {
			clearNames(true);
		}
	}
}

function getKeywordTermBottom4AjaxCall() {
	inputFieldBottom = document.getElementById("names_bottom");
	nameTableBottom = document.getElementById("name_table_bottom");
	completeDivBottom = document.getElementById("popup_bottom");
	nameTableTopBodyBottom = document.getElementById("name_table_body_bottom");

	if (inputFieldBottom.value.length > 0) {
		var requestUrl = "getKeywordTerm4Ajax.jsp?keyword=" + escape(inputFieldBottom.value) + "&dummy=" + (new Date()).getTime() + "a";
		getKeywordTermBottom4AjaxObject = createAjaxRequestObject();
		getKeywordTermBottom4AjaxObject.open("GET", requestUrl ,true);
		getKeywordTermBottom4AjaxObject.onreadystatechange = getKeywordTermBottom4AjaxOnResult;
		getKeywordTermBottom4AjaxObject.send(null);
	} else {
		clearNames(false);
	}
	return false;
}

function getKeywordTermBottom4AjaxOnResult() {
	if(getKeywordTermBottom4AjaxObject.readyState == 4) {
		if(getKeywordTermBottom4AjaxObject.status == 200) {
			var jsondata = eval('('+getKeywordTermBottom4AjaxObject.responseText+')');
			setNames(jsondata.keywords, false);
		} else if(getKeywordTermBottom4AjaxObject.status == 204) {
			clearNames(false);
		}
	}
}

// ChoiJY
function getGeneInformation4AjaxCall(keyword) {
	var targetDiv = document.getElementById("getGeneInformationDiv");
	targetDiv.innerHTML = "<center>Receiving Data...</center>";
	
	var requestUrl = "getGeneInformation4Ajax.jsp?sword="+keyword;//+"&page_num=" + pageNum + "&linkgo=" + uri + "&flag=" + flag + "&dummy=" + (new Date()).getTime() + "n";
	getGeneInformationAjaxRequestObject = createAjaxRequestObject();
	getGeneInformationAjaxRequestObject.open("GET", requestUrl ,true);
	getGeneInformationAjaxRequestObject.onreadystatechange = getGeneInformation4AjaxOnResult;
	getGeneInformationAjaxRequestObject.send(null);
	return false;
}

function getGeneInformation4AjaxOnResult() {
    if(getGeneInformationAjaxRequestObject.readyState == 4) {
        var targetDiv = document.getElementById("getGeneInformationDiv");
        if(getGeneInformationAjaxRequestObject.status == 200) {
            targetDiv.innerHTML = getGeneInformationAjaxRequestObject.responseText;
        } else {
            alert("getGeneInformation 호출과정에 에러가 발생했습니다.[error code : " + getGeneInformationAjaxRequestObject.status + "]");
            targetDiv.innerHTML = "getGeneInformation 호출과정에 에러가 발생했습니다.[error code : " + getGeneInformationAjaxRequestObject.status + "]";
        }
    }
}

function getProteinView4AjaxCall(imgPath, entryID, title, author, description, keywords) {
	var targetDiv = document.getElementById("ToolTip");
	targetDiv.innerHTML = "<center>Receiving Data...</center>";

	var requestUrl = "proteinViewToolTip.jsp?imgPath=" + imgPath + "&entryID=" + entryID + "&title=" + title + "&author=" + author + "&description=" + description + "&keywords=" + keywords;
	proteinViewAjaxRequestObject = createAjaxRequestObject();
	proteinViewAjaxRequestObject.open("GET", requestUrl ,true);
	proteinViewAjaxRequestObject.onreadystatechange = getProteinView4AjaxOnResult;
	proteinViewAjaxRequestObject.send(null);
	return false;
}

function getProteinView4AjaxOnResult() {
    var targetDiv = document.getElementById("ToolTip");

    if(proteinViewAjaxRequestObject != null && proteinViewAjaxRequestObject.readyState == 4) {
        targetDiv.innerHTML = proteinViewAjaxRequestObject.responseText;
    } else {
        targetDiv.innerHTML = "No Informaion";
    }
}


function setNames(keywords, isTop) {
	clearNames(isTop);
	var size = keywords.length;
	setOffsets(isTop);
	
	var row, cell, txtNode;
	for (var i = 0; i < size; i++) {
		var nextNode = keywords[i];
		row = document.createElement("tr");
		cell = document.createElement("td");
		
		cell.onmouseout = function() {this.className='mouseOver';};
		cell.onmouseover = function() {this.className='mouseOut';};
		cell.setAttribute("bgcolor", "#FFFAFA");
		cell.setAttribute("border", "0");
		cell.onclick = function() { populateName(this, isTop); } ;                             
		
		txtNode = document.createTextNode(nextNode);
		cell.appendChild(txtNode);
		row.appendChild(cell);
		if(isTop == true) {
			nameTableTopBodyTop.appendChild(row);
		} else {
			nameTableTopBodyBottom.appendChild(row);
		}
	}
}

function setOffsets(isTop) {
	var end;
	var left;
	var top;
	if(isTop == true) {
		end = inputFieldTop.offsetWidth;
		left = calculateOffsetLeft(inputFieldTop);
		top = calculateOffsetTop(inputFieldTop) + inputFieldTop.offsetHeight;
		
		completeDivTop.style.border = "black 1px solid";
		completeDivTop.style.left = left + "px";
		completeDivTop.style.top = top + "px";
		nameTableTop.style.width = end + "px";
	} else {
		end = inputFieldBottom.offsetWidth;
		left = calculateOffsetLeft(inputFieldBottom);
		top = calculateOffsetTop(inputFieldBottom) + inputFieldBottom.offsetHeight;
		
		completeDivBottom.style.border = "black 1px solid";
		completeDivBottom.style.left = left + "px";
		completeDivBottom.style.top = top + "px";
		nameTableBottom.style.width = end + "px";
	}
}

function populateName(cell, isTop) {
	if(isTop == true) {
		inputFieldTop.value = cell.firstChild.nodeValue;
	} else {
		inputFieldBottom.value = cell.firstChild.nodeValue;
	}
	clearNames(isTop);
}

function clearNames(isTop) {
	var ind;
	if(isTop == true) {
		ind = nameTableTopBodyTop.childNodes.length;
		for (var i = ind - 1; i >= 0 ; i--) {
		 	nameTableTopBodyTop.removeChild(nameTableTopBodyTop.childNodes[i]);
		}
		completeDivTop.style.border = "none";
	} else {
		ind = nameTableTopBodyBottom.childNodes.length;
		for (var i = ind - 1; i >= 0 ; i--) {
		 	nameTableTopBodyBottom.removeChild(nameTableTopBodyBottom.childNodes[i]);
		}
		completeDivBottom.style.border = "none";
	}
}


function calculateOffsetLeft(field) {
	return calculateOffset(field, "offsetLeft");
}

function calculateOffsetTop(field) {
	return calculateOffset(field, "offsetTop");
}

function calculateOffset(field, attr) {
	var offset = 0;
	while(field) {
		offset += field[attr]; 
		field = field.offsetParent;
	}
	return offset;
}

