<?xml version="1.0" encoding="UTF-8"?>
<Module>
    <ModulePrefs title="ThinkGeek.JP"
                 title_url="http://thinkgeek.jp/"
                 description="ThinkGeekのアレゲなアイテムを紹介"
                 author="OSDN Corp."
                 author_email="admin@osdn.jp"
                 author_location="Tokyo, Japan"
                 author_affiliation="OSDN Crop."
                 author_aboutme="OSDN株式会社が運営するオープンソース開発者のためのオンラインメディアネットワークを運営しており、OSDNに所属するサイトには、SourceForge.JP、Slashdot Japan、ThinkGeek.JP、Freshmeat.JPが存在します。ThinkGeek.JP では 米GeekNet社が運営する ThinkGeek.net から様々なおもしろアイテムを紹介しています。"
                 author_link="http://osdn.co.jp/"
                 screenshot=""
                 thumbnail=""
                 category="news"
                 category2="technology">
        <Require feature="dynamic-height" />
        <Require feature="setprefs" />
    </ModulePrefs>
    <UserPref name="display_item" display_name="表示件数" datatype="enum" default_value="5" >
    <EnumValue value="3" />
    <EnumValue value="4" />
    <EnumValue value="5" />
    <EnumValue value="6" />
    <EnumValue value="7" />
    <EnumValue value="8" />
    <EnumValue value="9" />
    <EnumValue value="10" />
    </UserPref>
    <UserPref name="display_summary" display_name="本文を表示する" datatype="bool" default_value="true" />
    <UserPref name="category_slashdotjp" display_name="全部(分類なし)を表示" datatype="bool" default_value="true" />
<Content type="html"><![CDATA[
<style type="text/css">
.links {
    font-size: 13px;
    padding-left: 0px;
    margin-left: 0px;
    list-style-type: none;
}

.links li {
    margin-top: 10px;
    margin-bottom: 10px;
    margin-left: 0px
    padding-left: 0px;
}


.item {
    display: block;
    clear: both;
}

.item_link {
    padding-left: 18px;
    background: url('http://images.slashdot.jp/favicon.gif') no-repeat left top;
}

.item_date {
    margin-left: 8px;
    font-size: 10px;
}

.item_digest, .item_summary {
    color: #4D4D4D;
    background-color: #eee;
    font-size: 11px;
    border-top: 1px solid #676767;
    border-bottom: 1px solid #676767;
    padding: 3px 5px;
    margin: 3px 0px;
}

.item_summary {
    max-height: 400px;
    overflow: auto;
    padding-left: 18px;
    padding-right: 4px;
    display: block;
    font-size: 12px;
}

.item_summary.hidden_summary, .item_digest.hidden_summary {
    display: none;
}

.summary_close_sw {
    font-size: 11px;
    float: right;
}

.other_link {
    font-size: 12px;
}

</style>
<div id="outer_box">
<a class="other_link" target="_blank" href="http://slashdot.jp/submit.pl">記事をタレコむ</a> | <a class="other_link" target="_blank" href="http://twitter.com/thinkgeekjp">@thinkgeekjp on Twitter</a>
<a id="logo_link" class="logo_link" target="_blank" href="http://slashdot.jp/"></a>
</div>
<script type="text/javascript">
(function () {
    function dateFormat(d){
	var objDate = new Date(d);
	var year = objDate.getFullYear();
	var month = objDate.getMonth() + 1;
	var date = objDate.getDate();
	if ( month < 10 ) { month = "0" + month; }
	if ( date < 10 ) { date = "0" + date; }
	str = year + '/' + month + '/' + date;
	return str;
    }

    function summary_toggle(id) {
	var s_obj = document.getElementById(id);

	if (s_obj.className.match(/ hidden_summary/)) {
	    s_obj.className = s_obj.className.replace(/ hidden_summary/,'');
	} else {
	    s_obj.className = s_obj.className + ' hidden_summary';
	}
	gadgets.window.adjustHeight();
    }

    function load_tab(id) {
	var target = document.getElementById(id);
	var url = target.getAttribute('rel');
	params[gadgets.io.RequestParameters.CONTENT_TYPE] = gadgets.io.ContentType.FEED;
	params[gadgets.io.RequestParameters.GET_SUMMARIES] = true;
	params[gadgets.io.RequestParameters.NUM_ENTRIES] = max;
	gadgets.io.makeRequest(url, function(obj) {
	    var feed = obj.data;

	    var ul = document.createElement('ul');
	    ul.className = 'links';

	    for (var i = 0 ; i < feed.Entry.length; i++) {
		var url = feed.Entry[i].Link;
		var title = feed.Entry[i].Title;
		var date_str = dateFormat(feed.Entry[i].Date);
		var summary = feed.Entry[i].Summary;
		var digest = summary.replace(/<.*?>|\n/g,'').substring(0,75);

		var li = document.createElement('li');
		li.className = 'item';

		var div_in = document.createElement('div');
		div_in.className = 'item_box';

		var a = document.createElement('a');
		a.setAttribute('href', url);
		a.setAttribute('target', '_blank');
		a.setAttribute('title', digest + '...');
		a.className = 'item_link';
		a.innerHTML = title;

		var d_span = document.createElement('span');
		d_span.className = 'item_date';
		d_span.innerHTML = '(' + date_str + ')';

		if (display_summary) {
		    var body_div = document.createElement('div');
		    body_div.id = id + '_summary_' + i;
		    body_div.className = 'item_summary hidden_summary';
		    body_div.innerHTML = summary;
		    var a_elm = body_div.getElementsByTagName('a');
		    if (typeof a_elm != 'undefined') {
			for (var j = 0; j < a_elm.length; j++) {
			    a_elm[j].setAttribute('target', '_blank');
			}
		    }

		    var o = document.createElement('a');
		    o.setAttribute('href', '#');
		    o.setAttribute('rel', body_div.id);
		    o.className = 'summary_toggle_sw';
		    o.innerHTML = '...';
		    o.onclick = function () {
			summary_toggle(this.getAttribute('rel'));
			return false;
		    };

		    var digest_div = document.createElement('div');
		    digest_div.id = id + '_digest_' + i;
		    digest_div.className = 'item_digest';
		    digest_div.innerHTML = digest;
		    digest_div.appendChild(o);
		}

		div_in.appendChild(a);
		div_in.appendChild(d_span);
		if (display_summary) {
		    div_in.appendChild(digest_div);
		    div_in.appendChild(body_div);
		}
		li.appendChild(div_in);
		ul.appendChild(li);
	    }
	    try {
		target.replaceChild(ul, target.childNodes.item(0));
	    } catch(e) {
		target.appendChild(ul);
	    }
	    gadgets.window.adjustHeight();
	}, params);
    }

    /*
    var logo_img = document.createElement("img");
    logo_img.src = gadgets.io.getProxyUrl('http://images.slashdot.jp/igoogle_gadget/logo.png');
    logo_img.setAttribute('align', 'right');
    document.getElementById('logo_link').appendChild(logo_img);
    */

    var feed = 'http://thinkgeek.jp/feed/';

    var prefs = new gadgets.Prefs();
    var max = prefs.getInt('display_item');
    var display_summary = prefs.getBool('display_summary');

    var outer = document.getElementById('outer_box');

    var cont = document.createElement('div');
    cont.id = 'rss_entries';
    cont.setAttribute('rel', feed);
    outer.appendChild(cont);
    load_tab('rss_entries');
})();
</script>
]]></Content>
</Module>

