<%@ page language="java" contentType="text/html; charset=UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ko" lang="ko">
<head>
<title>한국역대인물 종합정보 시스템 - 한국학중앙연구원</title>
<meta http-equiv="content-type" content="text/html; charset=UTF-8" />
<script src="/js/jQuery/jquery-1.3.2.min.js" type="text/javascript"></script>
<script src="/js/jQuery/plugins/dump/jquery.dump.js" type="text/javascript"></script>
<style type="text/css">
td.first
{
width: 90px;
padding : 3px;
}
</style>
<script language="javascript">
var apiKey = "a9d4c81c6972455e8381a182988c1d08";

var selSearchWord = "";
function trim(str)
{
return str.replace(/^\s\s*/, "").replace(/\s\s*$/, "");
}

// 역대인물 상세화면 팝업창 띄우기
// id : 역대인물 고유 ID
function showAksPeople(id)
{
menu_hide();
parent.window.open("http://people.aks.ac.kr/view.jsp?id="+id);
}

function getIE_XMLHttp()
{
var msxmls = new Array(
'Msxml2.DOMDocument',
'Microsoft.XMLDOM');
for (var i = 0; i < msxmls.length; i++) {
try {
return new ActiveXObject(msxmls[i]);
} catch (e) { }
}
return null;
}

function loadXMLString(xmlString)
{
if (window.DOMParser)
{
parser=new DOMParser();
return xmlDoc=parser.parseFromString(xmlString,"text/xml");
}
else // Internet Explorer
{
xmlDoc=getIE_XMLHttp();;
xmlDoc.async="false";
return xmlDoc.loadXML(xmlString);
}
}

function loadXMLDoc(dname)
{
if (window.XMLHttpRequest)
{
xhttp=new XMLHttpRequest();
}
else
{
xhttp=getIE_XMLHttp();
}
xhttp.open("GET",dname,false);
xhttp.send("");
return xhttp.responseXML;
}
//-------------------------------------------------------
// 선택된 텍스트를 검색하기 위한 팝업메뉴 띄우기(시작)
//-------------------------------------------------------
// 선택된 문자열을 얻어오는 함수
function getSelText()
{
var selText = '';
if (window.getSelection)
selText = window.getSelection();
else if (document.getSelection)
selText = document.getSelection();
else if (document.selection)
selText = document.selection.createRange().text;
return trim(selText.toString());
}

function BlockSearchCheck(event)
{
var x = event.x+10;
var y = event.y;

// 선택된 문자열을 얻어 온다.
selSearchWord = getSelText();

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

if (popSearchMenu.visibility == "show"){
popSearchMenu.visibility= "hide"
}
else{
// 너무 작거나 큰 문자열을 선택한 경우 리턴한다.
if (selSearchWord.length <= 1 || selSearchWord.length > 10) return;

popSearchMenu.left = x;
popSearchMenu.top = y + document.body.scrollTop;
openPopup (popSearchMenu.left, popSearchMenu.top);
}
}

var getHtml = "<table><tr><td></td></tr></table>";
var popWin;
var popWinBody;
var mx = 0;
var my = 0;

try {
popWin = window.createPopup();
} catch(e)
{
}

function falseEvent(){
return false;
}
function openPopup(_x, _y) {
try {
var myHtml = getHtml;
popWin = window.createPopup();
popWinBody = popWin.document.body;

popWinBody.attachEvent('onselectstart', falseEvent);
popWinBody.attachEvent('ondragstart', falseEvent);
popWinBody.attachEvent('oncontextmenu', falseEvent);

var contents = "<table border=1 width=105 cellspacing=0 cellpadding=0 bgcolor=#828282 style=font-size:9pt><tr><td>";
contents += "<table border=0 width=105 cellspacing=0 cellpadding=0 bgcolor=#828282 style=font-size:9pt>";
contents += "<tr valing='middle' bgcolor=#FFFFFF><td style='cursor:hand;padding:3px;' onClick='parent.GoBlockSearch();parent.menu_hide();' onMouseOver='javascript:parent.menu_over(this)' onMouseOut='javascript:parent.menu_out(this)'>&nbsp;역대인물 검색</td></tr>";
contents += "<tr valing='middle' bgcolor=#FFFFFF><td style='cursor:hand;padding:3px;' onClick='parent.menu_hide();' onMouseOver='javascript:parent.menu_over(this)' onMouseOut='javascript:parent.menu_out(this)'>&nbsp;전체 검색</td></tr>";
contents += "</table>" ;
contents += "</td></tr></table>" ;

popWinBody.innerHTML = contents ;

mx=event.clientX;
my=event.clientY;

popWin.show(mx-8, my+9, popWinBody.scrollWidth, popWinBody.scrollHeight+1, document.body);//event.srcElement);
popWin.hide();
popWin.show(mx-8, my+9, popWinBody.scrollWidth, popWinBody.scrollHeight+1, document.body);//event.srcElement);
} catch(e) {
window.status = e;
}
}
function menu_over(obj)
{
obj.style.backgroundColor="#0A246A";
obj.style.color="#FFFFFF";
}
function menu_out(obj){
obj.style.backgroundColor="#FFFFFF";
obj.style.color="#000000";
}
function menu_hide(obj)
{
popWin.hide();
}
//-------------------------------------------------------
// 선택된 텍스트를 검색하기 위한 팝업메뉴 띄우기(끝)
//-------------------------------------------------------


//-------------------------------------------------------
// 역대인물 Openapi를 이용한 검색(시작)-JSON 이용 예제
//-------------------------------------------------------
function GoBlockSearch()
{
$.post("/openapi",
{
key : apiKey,
query:selSearchWord, /* query : 검색어 */

/*
category : 검색 영역 설정 대소문자구분하지 않음
total : 통합인물메타 전체 검색
name_eq : 이름 일치 검색(이순으로 시작하는 인물 중에 일치로 하고 싶은 경우 이순*로 검색)
name : 이름 낱자 검색(검색어 이순 시 김이순, 이순, 이순신도 검색됨)
ex_name_eq : 확장 인명 일치(자,호,시호,묘호등 확장일치 검색)
ex_name : 확장 인명 낱자 검색

uci : 인물 UCI 코드 검색(검색어가 uci코드 임)
pplid : 인물 고유 ID검색
*/
category:"total",
startPage:1,
pageSize:50,
startHilightTag:"",
endHilightTag:"",
format:"json"
},
function(data) {
var result = data[0].resultInfo;

if (result.success == "false")
{
alert(result.message);
return;
}
var resultHtml = "";
if (result.totalCount == 0)
{
resultHtml = resultHtml + "<tr><td align='center'>검색된 결과가 없습니다.</td><tr>";
}
else {
var list = result.resultSet;
for (i = 0; i < result.resultSize; i++)
{
var livedie = list[i].document.통합인명메타.생몰년정보.생년.연도["#text"];
livedie = " (" +livedie + " ~ " + list[i].document.통합인명메타.생몰년정보.생년.연도["#text"] + ")"
resultHtml = resultHtml + "<tr><td style='width:300xp; padding:3px;' align='left'>["+list[i].document.통합인명메타.시대+ "] "+ list[i].title+ livedie +"<br>";
var d = "";
for (j =0; j < list[i].document.통합인명메타.인명정보.length; j++)
{
var s = list[i].document.통합인명메타.인명정보[j];
d = d + getPeopleName(s);
}
resultHtml = resultHtml + d+"</td><td valign='bottom' align='right' style='width:100px;'>[ <a href=\"javascript:parent.showAksPeople('"+list[i].pplid +"');\">자세히보기</a> ]</td><tr>";
resultHtml = resultHtml + "<tr><td colspan=2 height=1 bgColor='#AAAAAA'></td></tr>";
}
}
openResultPopup(resultHtml);
},"json");
}

function openResultPopup(strHtml) {
try {
var myHtml = getHtml;
popWin = window.createPopup();
popWinBody = popWin.document.body;

popWinBody.attachEvent('onselectstart', falseEvent);
popWinBody.attachEvent('ondragstart', falseEvent);
popWinBody.attachEvent('oncontextmenu', falseEvent);

var contents = "<table border=1 width=400 cellspacing=0 cellpadding=0 bgcolor=#828282 style=font-size:9pt><tr><td>";
contents += "<table border=0 width=400 cellspacing=0 cellpadding=0 bgcolor=#F0F0F0 style=font-size:9pt>";
contents += strHtml;
contents += "</table>" ;
contents += "</td></tr></table>" ;

popWinBody.innerHTML = contents ;

popWin.show(mx-8, my+9, popWinBody.scrollWidth, popWinBody.scrollHeight+1, document.body);//event.srcElement);
popWin.hide();
popWin.show(mx-8, my+9, popWinBody.scrollWidth, popWinBody.scrollHeight+1, document.body);//event.srcElement);
} catch(e) {
window.status = e;
}
}

// 한글(한자) 형식으로 인명 가져오기
function getPeopleName(s)
{
var sRet = "";
try {
if ((s["@한글음"] == null) || (s["@한글음"] == ""))
return sRet;
sRet = s["@한글음"];
if ((s["#text"] != null) && (s["#text"] != ""))
sRet = sRet + "("+s["#text"]+")";
}
catch(e) {}
return sRet;
}
//-------------------------------------------------------
// 역대인물 Openapi를 이용한 검색(끝)
//-------------------------------------------------------

//-------------------------------------------------------
// 역대인물 Openapi를 이용한 검색(시작)-XML 이용 예제
//-------------------------------------------------------
function showPplDetail(e, pplid)
{
var htmlString = "";
try {
$.post("/openapi",
{
key : apiKey,
query:pplid, /* query : 검색어 */
category:"pplid",
startPage:1,
pageSize:50,
startHilightTag:"",
endHilightTag:"",
format:"xml"
},
function(xml) {
xsl=loadXMLDoc("/openapi/openapi.xsl");
if (window.ActiveXObject)
{
htmlString = xml.transformNode(xsl);
}
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation && document.implementation.createDocument)
{
xsltProcessor=new XSLTProcessor();
xsltProcessor.importStylesheet(xsl);
htmlString = xsltProcessor.transformToFragment(xml,document);
}
var myHtml = getHtml;
popWin = window.createPopup();
popWinBody = popWin.document.body;

popWinBody.attachEvent('onselectstart', falseEvent);
popWinBody.attachEvent('ondragstart', falseEvent);
popWinBody.attachEvent('oncontextmenu', falseEvent);

popWinBody.innerHTML = htmlString ;
var xPos = 0;
var yPos = 0;
if (e.pageX || e.pageY) {
xPos = e.pageX;
yPos = e.pageY;
} else if (e.clientX || e.clientY) {
xPos = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
yPos = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
}
popWin.show(xPos+2, yPos+2, popWinBody.scrollWidth, popWinBody.scrollHeight+1, document.body);//event.srcElement);
popWin.hide();
popWin.show(xPos+2, yPos+2, popWinBody.scrollWidth, popWinBody.scrollHeight+1, document.body);//event.srcElement);

}
,"xml");
} catch(e) {
window.status = e;
}
}
//-----------------------------------------------------------
// "/openmeta/openmeta.xsl" openmeta xml을 html로 변환하는 xsl
//-----------------------------------------------------------
function displayXMLResult()
{
xml=loadXMLDoc("cdcatalog.xml");
xsl=loadXMLDoc("/openmeta/openmeta.xsl");
// code for IE
if (window.ActiveXObject)
{
ex=xml.transformNode(xsl);
document.getElementById("example").innerHTML=ex;
}
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation && document.implementation.createDocument)
{
xsltProcessor=new XSLTProcessor();
xsltProcessor.importStylesheet(xsl);
resultDocument = xsltProcessor.transformToFragment(xml,document);
document.getElementById("example").appendChild(resultDocument);
}
}
</script>
</head>
<body onMouseUp="javascript:BlockSearchCheck(event);">
<table width="800" border="0" cellpadding="0" cellspacing="0">
<tr><td align="center">
<h2>[ 한국역대인물종합정보시스템 OpenApi사용 예시 샘플 ]</h2>
</td>
</tr>
<tr><td align="left">
<div style="font-size:13px;line-height:140%;">아래의 화면에서 세종이란 단어를 블럭설정 후 팝업 메뉴에서 역대인물 검색을 선택하여 보십시오.<br/>
세종대왕이란 단어 위에 마우스를 올려보십시오.<br/><br/></div>
</td>
</tr>
</table>
<table width="800" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="1" bgcolor="E6E6C4"></td>
</tr>
<tr>
<td valign="center" height="40" class="sTblTLLYM"><b>▶ 세종대왕(世宗大王)</b></td>
</tr>
<tr>
<td height="1" bgcolor="E6E6C4"></td>
</tr>
<tr><td height="2"></td></tr>
<tr>
<td>
<div style="margin:5px;padding:10px;border:1px solid #cccccc;">조선 <b style="padding:1px;border:1px solid red">세종</b><sup style="color:#FF2222;">"세종"을 블럭선택해보세요.</sup> 때 최윤덕(崔潤德) 등을 보내 여진족(女眞族)을 토벌하고
압록강 상류의 여연(閭延)ㆍ자성(慈城)ㆍ무창(茂昌)ㆍ우예(虞芮)의 4군을 설치했는데,
뒤에 그 유지ㆍ확보가 용이하지 못하다는 이유에서 철폐론이 제기되어오다가 단종ㆍ세조 때에 걸쳐 드디어 철폐되자,
그후 이 지방은 오랫동안 폐사군이라 불리게 되었다. <b><span style="color:blue;" onmouseover="javascript:showPplDetail(event, 'PPL_6JOa_A1397_1_0005792');">세종대왕</span></b><sup style="color:#FF2222;">"세종대왕"에 마우스를 올려보세요.</sup>은...
<br></div>
</table>
<!--블록검색을 위한 조건-->
<div id="popSearchMenu" style="position: absolute; visibility: hidden;">
<table border="0" width="120" cellspacing="1" cellpadding="0"
bgcolor="#828282">
<tr valing="middle" bgcolor="#CADEF0"
onMouseOver="this.style.backgroundColor='#EFEFEF'"
onMouseOut="this.style.backgroundColor='#CADEF0'">
<td style="cursor: hand; padding: 3px;" onClick="GoBlockSearch()">&nbsp;▷&nbsp;역대인물
검색</td>
</tr>
<tr valing="middle" bgcolor="#CADEF0"
onMouseOver="this.style.backgroundColor='#EFEFEF'"
onMouseOut="this.style.backgroundColor='#CADEF0'">
<td style="cursor: hand; padding: 3px;">&nbsp;▷&nbsp;전체 검색</td>
</tr>
</table>
</div>
</td>
</tr>
</table>
<div id="popSearchResult"style="position: absolute; visibility: hidden;width:340px; ">
<table border="0" width="340" cellspacing="1" cellpadding="0"
bgcolor="#828282">
</table>
</div>
</body>
</html>