HP.Modules.Recommender = Class.create(HP.Module, {
	initialize: function($super, moduleid){
		$super(moduleid);
		this.select('li').each(this.registerItem.bind(this));
		var prev = this.rootNode.select('[action=previous]').first();
		prev.observe('click',this.previous.bind(this));
		var next = this.rootNode.select('[action=next]').first();
		next.observe('click',this.next.bind(this));
	},
	registerItem: function(element){
		element = $(element);
		var instance = element.readAttribute('instance');
		var addInstance = this.addInstance.bind(this, instance);
		var noThanksInstance = this.noThanksInstance.bind(this, instance);
		var addBtns = element.select('[action=add]');
		for(var i = 0; i < addBtns.length; i++){
			addBtns[i].observe('click',addInstance);
		}
		var noBtns = element.select('[action=remove]');
		for(var i = 0; i < noBtns.length; i++){
			noBtns[i].observe('click',noThanksInstance);
		}
	},
	addInstance: function(instance){
		this.doAJAX('add',{instance: instance}, this.addRecInstance.bind(this, instance));
	},
	addRecInstance: function(instance){
		this.addModule(instance);
	},
	noThanksInstance: function(instance){
		this.doAJAX('remove',{instance: instance}, this.refreshContent.bind(this));
	},
	previous: function(){
		this.doAJAX('previous',{}, this.refreshContent.bind(this));
	},
	next: function(){
		this.doAJAX('next',{}, this.refreshContent.bind(this));
	}
});