//名前空間オブジェクト
var twitter = new Object();

/**
 * コンストラクタ
 */
twitter.PublicTimelineController = function() {
    this.documentReady();
}

/**
 * インスタンスメソッド
 */
twitter.PublicTimelineController.prototype = {

    /**
     *  A. ページがロードされた
     *      A-1. Twitterのpublic_timelineを取得するように「モデル」に依頼
     */
    documentReady: function(){
	$(document).ready(function() {
	    twitter.controller.publicTimeline = new twitter.PublicTimeline();
	    twitter.controller.callJsonp();
	});
    },

    /**
     *  B. Twitterのpublic_timelineが取得された
     *      B-1. 取得されたステータスを描画するように「ビュー」に依頼
     *      B-2. 30秒後、再度Twitterのpublic_timelineの取得をするように「モデル」に依頼
     */
    jsonpCallback: function(statuses) {
	var since_id = statuses[0].id;
	twitter.PublicTimelineView.render(statuses);
	setTimeout(function() {
	    twitter.controller.callJsonp(since_id);
	}, 30000);
    },
    
    /**
     * 「モデル」にpublic_timelineの取得を依頼する実際の処理
     */
    callJsonp: function(since_id) {
	this.publicTimeline.since_id = since_id;
	this.publicTimeline.jsonp(function(statuses) {
	    twitter.controller.jsonpCallback(statuses);
	});
    }
}

twitter.controller = new twitter.PublicTimelineController();

