$(document).ready(function () {
    var blog = $('#blogAboutBook');
    get_hatenabookmark(blog, create_bookmarks);

    var publicity = $('#publicity');
    get_hatenabookmark(publicity, create_publicity);
});


function get_hatenabookmark (element, create_func) {
    if ( ! element.text() ) { return null; }
    $.ajax({
            url : "http://api.d21.co.jp/hatena/tag/" + element.text(),
        dataType : "jsonp",
        data : "",
        jsonp : "jsoncallback",
        success : function(json){
            create_func(element,json['list']);
        },
        error : function(){
        }
    });
}

function create_publicity (element,data) {

    var header = '<h2>パブリシティ・プレスリリース</h2>';

    element.text('');
    $.each(data, function () {
        var section = create_section_publicity(this);
        element.prepend(section)
    });

    element.prepend(header)
}


function create_bookmarks (element,data) {

    var header = '<h2><img src="/design/pcjp/images/books/blog_about_book.gif" alt="この商品について書いているブログ" width="321" height="41" /></h2>';

    element.text('');
    $.each(data, function () {
        var section = create_section(this);
        element.prepend(section)
    });

    element.prepend(header)
}

function create_section_publicity (data) {

    var normalColumn = $('<div class="normalColumn"></div>');
    var caption = $('<div class="caption"></div>');

    caption.prepend('<p class="detail"><a href="' + data['link'] + '"><img width="94" height="20" alt="詳細を見る" src="/design/pcjp/images/seminar/detail.gif"></a></p>');
    caption.prepend('<p>' + data['body'] + '</p>');
    caption.prepend('<h3><a href="' + data['link'] + '">' + data['title'] + '</a></h3>');

    normalColumn.prepend(caption);
    return normalColumn;
}

function create_section (data) {

    var section = $('<div class="section">');

    section.prepend('<p><span class="datetime">' + convertWithLang( $.timeago(data['date']), 'ja' ) + '</p>'); /* </span><a href="#">Discover21さん</a> */
    section.prepend('<p>' + data['body'] + '</p>');
    section.prepend('<h3><a href="' + data['link'] + '">' + data['title'] + '</a></h3>');

    return section;
}

function convertWithLang(timeAgo, lang) {
    if (lang == "ja")
	return toJa(timeAgo);

    return timeAgo;
}

function convert(timeAgo, dict, strip) {
    var delim = " ";
    var arr = timeAgo.split(delim);
    if (strip)
	delim = "";

    return jQuery.map(arr, function(key, i) {
	    var replace = dict[key];
	    return replace ? replace : key;
	}).join(delim);
}

function toJa(timeAgo) {
    var dict = {
	"about":      "約",
	"a":          "1",
	"an":         "1",
	"minute":     "分",
	"minutes":    "分",
	"hour":       "時間",
	"hours":      "時間",
	"ago":        "前",
	"day":        "日",
	"days":       "日",
	"month":      "月",
	"months":     "月",
	"year":       "年",
	"years":      "年"
    };

    toJa = function(str) {
	if (str == "less than a minute")
	    return "1分未満";
	return convert(str, dict, true);
    }

    return toJa(timeAgo);
}


