dojo.provide("epages.cartridges.de_epages.product.widget.SmartSearchProducts");
dojo.require("epages.cartridges.de_epages.content.widget.SmartSearchInput");

dojo.declare(
	"epages.cartridges.de_epages.product.widget.SmartSearchProducts",
	[epages.cartridges.de_epages.content.widget.SmartSearchInput],
	{
		/**
		 * public properties
		 */
		ViewAction:					'JSONSmartSearchProductAlias',
		inputName :					'NewProduct',
		placeholder: '',

		/**
		 * dojo widget properties
		 */
		templatePath:       dojo.moduleUrl('epages.cartridges.de_epages.product.widget', 'templates/SmartSearchProducts.html'),

		// overloads smartsearchinput's method
		queryObjectAliases: function(callbackArgs) {
			if(!this._lastInputValue) {
				return;
			}
			var inputValue = this._lastInputValue;
			var me = this;
			var json = new epages.io.Json();
			var result = json.loadAsync(this.url,
			function(result){
				if(result.error || !result.data) {
					return;
				}
				// update tageditor available tags ... result.data
				me._lastSeachResultCount = parseInt(result.data.NumResults);

				// mapping for name attribute
				var fixedResults = [];
				var results = result.data.Results;
				var len = result.data.NumResults;

				for(var i=0; i<len; i++) {
					fixedResults[i] = {};
					fixedResults[i].inputvalue = results[i].alias;
					fixedResults[i].labelvalue = results[i].alias;
					if(results[i].name) {
						 fixedResults[i].labelvalue += ' <span class="SmartSearchProductsName">- ' + epages.format.slice(results[i].name, 23, true) + '</span>';
					}
				}
				dojo.publish(me.SmartSearchBox.id + '/onNewSearchResults', [fixedResults, callbackArgs]);
			},
			{
				'ObjectID' 			: this.objectId,
				'ViewAction'		: this.ViewAction,
				'SearchString' 	: inputValue
			});
		}
	}
);