var UtanowaApi = function(targetBaseName){
	this.url = 'http://utanowa.net/api/?action_api_blog=1&id=%d&callback=%s';
	this.logo = './js/utanowa_logo.gif';
	this.serviceurl = 'http://utanowa.net';
	this.targetBaseName = targetBaseName;
};

UtanowaApi.prototype = {
	request : function(userid, callback){
		var url = this.url.replace('%d', userid).replace('%s', callback);
		var self = this;

		var script = document.createElement('script');
		script.charset = 'utf-8';
		script.src = url;
		document.body.appendChild(script);
	},
	render : function(data){
		var target = $('#' + this.targetBaseName + data.userid);
		var img = this._buildTankaImage(data.url_image);
		var links = this._buildLinks(data.url_tanka, data.url_list);
		var footer = this._buildFooter();

		target.append(img);
		target.append(links);
		target.append(footer);
	},
	_buildTankaImage : function(src){
		return $('<img />').attr('src', src);
	},
	_buildLinks : function(url_tanka, url_list){
		var div = $('<div></div>').addClass('links');
		var links = {
			detail : {
				url : url_tanka,
				text : 'このうたの詳細'
			},
			list : {
				url : url_list,
				text : 'うたをもっと見る'
			}
		};
		for(var k in links){
			var a = $('<a></a>').attr('href', links[k].url).text('≫' + links[k].text);
			div.append(a).append($('<br />'));
		}
		return div;
	},
	_buildFooter : function(){
		var div = $('<div></div>').addClass('footer');
		var a = $('<a></a>').attr('href', this.serviceurl);
		var logo = $('<img width="65" height="16" />').attr('src', this.logo);
		div.append(a.append(logo));
		return div;
	}

};

