module.exports = new Class
({
	Extends: Htk.Widget
	,Tag: 'htk-social-bar'
	,Properties:
	{
		conn:
		{
			type: Db.Connection
			,set: function (x)
			{	
				this._conn = x;
				this._refresh ();
			}
			,get: function ()
			{
				return this._conn;
			}
		},
		priority:
		{
			type: Number
			,set: function (x)
			{	
				this._priority = x;
				this._refresh ();
			}
			,get: function ()
			{
				return this._priority;
			}
		}	
	}
	
	,_priority: 0
	
	,initialize: function ()
	{
		var node = this.createRoot ('div');
		node.className = 'htk-social-bar';
	}

	,_refresh: function ()
	{
		if (!this._conn || this._priority === null)
			return;
		
		var batch = new Sql.Batch ();
		batch.addValue ('priority', this._priority);
		
		var query = 'SELECT title, link, icon FROM social '
			+'WHERE priority >= #priority ORDER BY priority';
		this._conn.execQuery (query, this._onQueryDone.bind (this), batch);
	}

	,_onQueryDone: function (resultSet)
	{
		Vn.Node.removeChilds (this._node);	
		var res = resultSet.fetchResult ();
		
		while (res.next ())
		{
			var a = this.createElement ('a');
			a.href = res.get ('link');
			a.target = '_blank';
			this._node.appendChild (a);
			
			var img = this.createElement ('img');
			img.src = 'image/social/'+ res.get ('icon');
			img.alt = res.get ('title');
			img.title = res.get ('title');
			a.appendChild (img);
		}
	}
});