/*
  twitter.js
  d@kakura.jp
  Last Updated: "2010-04-27 Mon 23:27:32"
*/

function twitterCallback(json) {
    var tweetHTML = '<p>Could not get twitter message.</p>';
    var len       = json.length;

    if (json != '') {
        tweetHTML = '';
        for (i = 0; i < len; i++) {
            tweetHTML = tweetHTML + '<p><span class="tw-msg">' + json[i].text + '</span><span class="tw-time">... ' +
                        relative_time(json[i].created_at) + '</span></p>';
        }
    }
    document.getElementById('tweet_' + json[0].user.screen_name).innerHTML = tweetHTML;
}

function relative_time(time_value) {
    var values      = time_value.split(' ');
    time_value      = values[1] + ' ' + values[2] + ', ' + values[5] + ' ' + values[3];
    var parsed_date = Date.parse(time_value);
    var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
    var delta       = parseInt((relative_to.getTime() - parsed_date) / 1000);
    delta           = delta + (relative_to.getTimezoneOffset() * 60);

    if (delta < 60) {
        return '1分以内';
    } else if (delta < 120) {
        return '約1分前';
    } else if (delta < (60 * 60)) {
        return (parseInt(delta / 60)).toString() + '分前';
    } else if (delta < (120 * 60)) {
        return '約1時間前';
    } else if (delta < (24 * 60 * 60)) {
        return '約' + (parseInt(delta / 3600)).toString() + '時間前';
    } else if (delta < (48 * 60 * 60)) {
        return '1日前';
    } else {
        return (parseInt(delta / 86400)).toString() + '日前';
    }
}

function getTweets(id, num) {
    var src    = 'http://twitter.com/statuses/user_timeline/' + id + '.json?callback=twitterCallback&count=' + num;
    var script = document.createElement('script');
    var body   = document.getElementsByTagName('head').item(0);

    script.setAttribute('type', 'text/javascript');
    script.setAttribute('src', src);
    script.setAttribute('charset', 'UTF-8');
    body.appendChild(script);
}
