Ext.namespace('mm.bottompanel.leftbox.recentlistened.tmpl.item');
mm.bottompanel.leftbox.recentlistened.tmpl.item = '<li> <div class="info"> <span class="username">{username}</span><span> listens to</span><br /> <a href="{titlelink}"><span class="titleinfo">{title}</span></a><span> - </span><a href="{artistlink}"><span class="titleinfo">{artist}</span></a> </div> <div class="image"> <img src="{image}" alt="image" /> </div> </li>';
Ext.namespace('mm.bottompanel.leftbox.recentlistened.base');
mm.bottompanel.leftbox.recentlistened.base.construct = function(autoconstruct){
	this.templates = {item:mm.bottompanel.leftbox.recentlistened.tmpl.item};
	this.el = $('.mm-bottompanel-leftbox-recentlistened-base');
	this.loadtask = null;
	this.constructor = function()
	{
		this.el.find('a').bind('click', function(event){
			event.preventDefault();
		});
		this.el.disableSelection();

		var time = 10000;
		var item_template = new Ext.XTemplate(this.templates.item);
		this.loadtask = {
		    run: this.render_list.createDelegate(this),
		    interval: time,
		    stop: function()
		    {
		    	Ext.TaskMgr.stop(this);
		    },
		    start: function()
		    {
		    	Ext.TaskMgr.start(this);
		    }
		};

		var task = new Ext.util.DelayedTask(function(){
			this.loadtask.start();
		}.createDelegate(this))
		task.delay(time);
	};

	this.render_list = function()
	{
		this.rpc_get_current_listen(function(conn,success,response){
			var data = Ext.util.JSON.decode(response.responseText);

			if (typeof data != 'undefined' && data.data != 'undefined' && typeof data.data.length != 'undefined')
			{
				var list = this.el.find('ul');
			
				list.find('li').remove();
				var template = new Ext.XTemplate(this.templates.item);
				for(var i=0; i<data.data.length; i++)
				{
					list.append($(template.apply(data.data[i])));
				}
				list.find('a').bind('click', function(event){
					event.preventDefault();
				});
				list.disableSelection();
			}
		}.createDelegate(this));
	};

	if (typeof autoconstruct != 'undefined' && autoconstruct)
	{
		this.constructor();
	}
};
mm.bottompanel.leftbox.recentlistened.base.construct.prototype.domname = 'mm-bottompanel-leftbox-recentlistened-base';
mm.bottompanel.leftbox.recentlistened.base.construct.prototype.namespace = mm.bottompanel.leftbox.recentlistened.base;
mm.bottompanel.leftbox.recentlistened.base.construct.prototype.rpc_get_current_listen = function(){
	var last = arguments.length-1;
	var callback = arguments[last];
	var args = [];
	for(var i=0; i<arguments.length; i++)
	{
		args[i] = arguments[i];	
	}

	var params = {data:args.slice(0, args.length-1)}
	Ext.Ajax.request({
		url: 'http://www.my-musix.com/rpc/bottompanel/leftbox/recentlistened/base/get_current_listen',
		callback: callback,
		jsonData: params
	});
}
mm.bottompanel.leftbox.recentlistened.base.obj = new mm.bottompanel.leftbox.recentlistened.base.construct(true);
