var Autocompletar = Class.create();
Autocompletar.prototype = {
	inputText:null,
	ulOptions:null,
	divOptions:null,
	valueField:null,
	timeOut:null,
	observer:null,


	initialize : function(_inputText,_divOptions,_valueField) {
		this.inputText = $(_inputText);

		$(_inputText).style.background = '#b8bf00';

		Event.observe((_inputText+"_img"),"click",this.desplegar.bind(this))
		
		this.inputText.disable=true;
		this.divOptions = $(_divOptions);
		this.ulOptions = this.divOptions.immediateDescendants()[0];

		this.valueField = $(_valueField);
		this.ulOptions.immediateDescendants().each(function(item,indx) {
			Event.observe(item,"click",this.pulsar.bind(this));
			Event.observe(item,"mouseover",this.over.bind(this));
			Event.observe(item,"mouseout",this.out.bind(this));
			item.setStyle({cursor:"hand"});
		}.bind(this))

		Event.observe(this.inputText, "keypress", this.teclaPulsada.bind(this));
		this.inputText.disable=false;
		this.inputText.focus();

		$(_inputText).value = '';
		$(_inputText).style.background = '#ffffff';
	},

	desplegar: function()
	{
		if (this.divOptions.visible()) {
			this.hide();
		}
		else {
			this.inputText.value = "";

			this.teclaPulsada();
		}
	},

	teclaPulsada: function(evt){
	    if(this.observer) clearTimeout(this.observer);
      	this.observer = setTimeout(this.filtrarItems.bind(this), 10);
	},

	filtrarItems : function(evt){

		if (!this.divOptions.visible()) {
			this.show();
		}

		this.ulOptions.immediateDescendants().each(function(item,indx) {
			if (item.innerHTML.toLowerCase().indexOf(this.inputText.value.toLowerCase())==0) {
				item.show();
			}
			else {
				item.hide();
			}
		}.bind(this));
		//clearTimeout(this.timeOut);
		//Event.stop(evt);
	},

	over: function(evt) {
		var obj = Event.element(evt);
		obj.setStyle({background:"#dddddd"});
	},

	out: function(evt) {
		var obj = Event.element(evt);
		obj.setStyle({background:"#ffffff"});
	},

	pulsar: function(evt) {
		var obj = Event.element(evt);
		this.valueField.value = obj.value;
		this.inputText.value = obj.innerHTML;
		this.hide();

		if ( (obj.style.color != '#999999') && (obj.style.color != 'rgb(153, 153, 153)') )
		{ 
			if ( obj.value != '85' ) // <-- IsNotBCN
			{
				$('comboProducts').value = obj.value;
				LoadPnlLeft_Heliports(obj.value,IdHeliports)
			}		
			else { ElementVisible('ctl2_PanelMsg14Big','visible'); }
		}
		else { ElementVisible('ctl2_PanelMsg10Big','visible'); }
	},

	show: function()
	{
		/*
		if(!this.divOptions.style.position || this.divOptions.style.position=='absolute') {
		this.divOptions.style.position = 'absolute';
		Position.clone(this.inputText, this.divOptions, {
		setHeight: false,
		setWidth: false,
		offsetTop: this.inputText.offsetHeight+5
	          });
		}
		*/
		
		$("People").hide();
		$("Heliports").hide();
		
		this.divOptions.show();
	},

	hide: function()
	{
		this.divOptions.hide();
		
		$("People").show();
		$("Heliports").show();
  	}

}
