// This is a client based class to communicate with the remote recommender.
// 
var Recommender = Class.create();
Recommender.prototype = {
    initialize: function(
			recommendationLayer, 
			itemid, 
			maxitem) {
			this.recommendationLayer = recommendationLayer;
			var myRecTemplate = new Template('<!-- this is the template for an recommended item --><span id="recommendeditem-#{easyrecitemid}" style="float:left;margin-right:6px;"><a href="#{easyrecitemurl}" alt="#{easyrecitemdescription}"><img src="http://www.flimmit.com/media/catalog/product/cache/1/small_image/98x140/5e06319eda06f020e43594a9c230972d/F/L/#{easyrecitemitemId}.jpg"/></a></span>');		
			
	        this.itemTemplate = myRecTemplate;
	        this.itemid = itemid;
	        this.maxitem = 6;
			if (maxitem)
			{
				this.maxitem = maxitem;
			}
	        this.onComplete = this.updateRecommender.bindAsEventListener(this);
    },


	///////////////////////////////// Recommendation WIDGET //////////////////////////////////////////////
	viewRecommendations: function() {
		recommendationUrl = '/easyrec/ajax/recommendation/id/' + encodeURIComponent(this.itemid);		
		var request = new Ajax.Request(recommendationUrl, {
					method: 'get',
					onSuccess: this.onComplete
				}
			);
	},

	updateRecommender: function(transport) {
		var recommendation = eval('('+transport.responseText+')');
		var item;
		if (recommendation.recommendeditems.item.length>1) {
			for (var i = 0; i < recommendation.recommendeditems.item.length && i<this.maxitem; i++) {			
				item = recommendation.recommendeditems.item[i];		
				this.addItem(i+1, item, this.recommendationLayer, this.itemTemplate);		
			}
		} else {
			item = recommendation.recommendedItems;
			this.addItem(1, item, this.recommendationLayer, this.itemTemplate);
		}
		this.recommendationLayer.style.display = "block";
	},
	
	addItem: function (index, item, recommendationLayer, itemTemplate) {
		
		var show = { easyrecitemid: item.id, easyrecitemurl: item.url, easyrecitemdescription: unescape(item.description).replace(/^\s+/, '').replace (/\s+$/, ''), easyrecitemitemId: item.id};
		/*var itemHTML = itemTemplate.innerHTML;
		itemHTML = itemHTML.replace(/easyrec.item.position/g,index);
		itemHTML = itemHTML.replace(/easyrec.item.id/g,item.id);
		itemHTML = itemHTML.replace(/easyrec.item.description/g,unescape(item.description).replace(/^\s+/, '').replace (/\s+$/, ''));
		itemHTML = itemHTML.replace(/easyrec.item.itemId/g,item.id);
		itemHTML = itemHTML.replace(/easyrec.item.url/g,item.url);*/
	//	itemHTML = itemHTML.replace(/http\:\/\/easyrec.org\/img\/blank_easyrec.gif/g,item.imageUrl);

		recommendationLayer.innerHTML += itemTemplate.evaluate(show);
		
		

	}
	///////////////////////////////// Recommendation WIDGET END //////////////////////////////////////////////	

}
	

