require('./social-bar.scss');

module.exports = new Class({
	Extends: Vn.Component
	,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;
		
		const params = {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), params);
	}

	,_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);
		}
	}
});