var AutoSuggest2 = new Class({

	Implements: [Options, Events],
	
	options: {
		script: '/search/autosuggest/?search=',
		autosuggestclass: '.autosuggest',
		currentitemclass: 0,
		ulid: 'autosuggest'
	},
	
	input: new Element('input'),
	
	initialize: function (input, options) {
		this.setOptions(options);
		this.input = input;
		this.input.addEvent('keyup', function (current) {
			if (this.input.value.length > 0)
			{
				var myRequest = new Request({
					url: this.options.script + this.input.value,
					onComplete: function(response){
						response = eval('(' + response + ')');
						if (response.results.length > 0 && response.results.length < 25)
						{
							if (!$(this.options.ulid))
							{
								var resultsDiv = new Element('div').addClass('autosuggest').setStyles({
									'top': this.input.getPosition().y + 20,
									'left': this.input.getPosition().x
								});

							}
							var resultsUl = $(this.options.ulid) ? $(this.options.ulid) : new Element('ul', {'id': this.options.ulid}).inject(resultsDiv);
							for (var i = 0; i < response.results.length; i++)
							{
								var resultLi = new Element('li').addClass('asitems' + (this.options.currentitemclass + 1)).inject(resultsUl);
								var resultA = new Element('a', {
									'html': response.results[i].value,
									'href': '#'
								}).addClass('aslinks').addEvents({
									'click': function(e) {
										e.stop();
										this.input.value = e.target.get('html');
										this.input.focus();
										$('autosuggest').dispose();
									}.bind(this)
								}).inject(resultLi);
							}
							$$('.asitems' + this.options.currentitemclass).dispose();
							this.options.currentitemclass++;
							if (!$(this.options.ulid)) resultsDiv.inject(window.document.body, 'bottom');
						}
					}.bind(this)
				});
				myRequest.send();
			}
		}.bind(this));
	}
});
