<?xml version="1.0" encoding="EUC-KR"?>
<Module>
<ModulePrefs title="Smart Mr.Tint." height="140" author="Mr.Tint">
<Require feature="tabs" />
<Require feature="minimessage"/>
</ModulePrefs>
<UserPref name="amount" display_name="결과수(1-20)" default_value="5"/>
<Content type="html">
<![CDATA[
<div>
<style type="text/css">
.contents
{
font-size:11px;
}
.query_contents
{
visibility : visible;
font-size: 10px;
}
/* 검색 결과 나타내주는 스타일 */
.query_result
{
width : 160px;
height : 150px;
}
/* 결과물 스타일 */
.item
{
}
/* 이전, 다음 페이지 스타일*/
.goResult{
}
</style>
<script type="text/javascript">
// 사용자 데이터 불러오기
var sets = new gadgets.Prefs();
// 검색어
var str_query;
// 탭 초기화 (초기 값은 네이버)
var tabs = new gadgets.TabSet(__MODULE_ID__, "Daum");
// 미니메세지 초기화
var msg = new _IG_MiniMessage(__MODULE_ID__);
// 검색창 여닫기 시그널
var queryBox = 1;
// 탭 여닫기 시그널
var showTabs = false;
/*
* 가젯 시동을 위한 모든 리소스를 세팅해주는 함수
*/
function init() {
tabs.addTab("Daum", {
contentContainer :document.getElementById("daum")
});
tabs.addTab("Naver", {
contentContainer :document.getElementById("naver")
});
tabs.addTab("Google", {
contentContainer :document.getElementById("google")
});
tabs.addTab("Yahoo", {
contentContainer :document.getElementById("yahoo")
});
setTabStyle();
}
/*
* 생기는 탭들의 스타일을 설정한다.
*/
function setTabStyle() {
var table = tabs.getHeaderContainer();
table.style.fontSize = "9px";
tabs.displayTabs(false);
}
function openAndCloseTabs() {
showTabs = !showTabs;
if (queryBox == 1)
tabs.displayTabs(showTabs);
}
function switchTabs() {
tabs.swapTabs(0, 1);
}
/*
* 검색하고자 하는 쿼리를 저장함
*/
function setQuery(str) {
str_query = str;
document.getElementById('query_value').value = '';
openAndCloseTabs();
openAndCloseQueryBox();
getResultXML(1);
}
/*
* 검색 창을 열었다 닫았다 함.
*/
function openAndCloseQueryBox() {
if (queryBox == 1) {
document.getElementById("query_box").style.visibility = 'hidden';
queryBox = 0;
} else {
document.getElementById("query_box").style.visibility = 'visible';
queryBox = 1;
}
}
gadgets.util.registerOnLoadHandler(init);
function getResultXML(pageno) {
var params = {};
params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.DOM;
var apikey = '4ced8ca0aa52445be2adc06c24f01fa54e2c21d6';
var url = "http://apis.daum.net/search/blog?apikey=" + apikey
+ "&output=xml&result=" + sets.getString('amount') + "&pageno="+ pageno +"&q=" + encodeURI(str_query);
gadgets.io.makeRequest(url, response, params);
return pageno;
}
function response(obj){
xmlData = obj.data;
var pageNo = xmlData.getElementsByTagName("pageno").item(0).firstChild.nodeValue;
var totalCount = xmlData.getElementsByTagName("totalCount").item(0).firstChild.nodeValue;
if(totalCount == 0){
document.getElementById("daum").innerHTML += "<center>검색결과가 없습니다.</center>";
}
else {
var html ="";
var resultList = xmlData.getElementsByTagName("item");
for(var i = 0 ; i < sets.getString('amount') ; i++){
var items = resultList.item(i).childNodes;
var title, desc, link;
for (var j = 0 ; j < items.length ; j++) {
var node = items.item(j);
if(node.firstChild == null){
break;
}
if (node.nodeName == "title") {
title = node.firstChild.nodeValue;
title = title.substr(0, 10);
}
if (node.nodeName == "description") {
desc = node.firstChild.nodeValue;
}
if (node.nodeName == "link") {
link = node.firstChild.nodeValue;
}
}
html += "<a class='item' href='" + link+ "' target='_blank' title='" + desc + "'>" + title + '</a><br/>';
link ="", desc = "", title = "";
}
html += '</div>';
html += '<div class="goResult"><a href="javascript:void(0)" onclick="' + 'getResultXML(' + + '</div>';
document.getElementById("daum").innerHTML += html;
}
}
</script>
<div id="naver" class="contents"> </div>
<div id="google" class="contents"> </div>
<div id="daum" class="contents"> </div>
<div id="yahoo" class="contents"> </div>
<div id="query_box" class="query_contents">
<table align=center>
<tr>
<td> <input id="query_value"type="text" size=5/> </td>
<td> <input type="button" value="확인" onclick="setQuery(document.getElementById('query_value').value)"/> </td>
</tr>
</table>
</div>
]]>
</Content>
</Module>