<?php
class EVAutoCompleteCat extends AppEvento{
	
	public $asociados = array();
	public $caracteres_minimos = 2;
	
	
	public function renderEvento(){
		$script = "$( '".$this->padre->identificadorScript()."' ).catcomplete({
			source: function( request, response ) {
				$.ajax({
					url: baseUrl + '/tiposservicio/actiposervicio',
					dataType: 'json',
					data: {
						featureClass: 'P',
						style: 'full',
						maxRows: 12,
						nombre: request.term
					},
					success: function( jsonData ) {
						response( $.map( jsonData.tipos, function( item ) {
							return {
								label: item.nombre,
								category: item.descripcion,
								value: item.nombre+ ' - ' + item.descripcion,
								id: item.idTipoServicio,
								idDepartamento : item.idDepartamento
							}
						}));
								
					},
					error: function(){alert('falla');}
				});
			},
			minLength: ".$this->caracteres_minimos.",
			select: function( event, ui ) {
				";
		foreach ($this->asociados as $asociado){
			$campo = $asociado["campo"];
			$script .= "$('".$campo->identificadorScript()."').val(ui.item.".$asociado["dato"].");";
		}
		
		
		$script .= "
					
			},
			open: function() {
				//$( this ).removeClass( 'ui-corner-all' ).addClass( 'ui-corner-top' );
			},
			close: function() {
				//$( this ).removeClass( 'ui-corner-top' ).addClass( 'ui-corner-all' );
			}
		});";
	}
	public function addAsociado($elemento , $dato){
		$this->asociados[] = array('campo'=> $elemento, 'dato'=> 'dato');
	}
	
	public function setMinimoCaracteres($numero){
		$this->caracteres_minimos = $numero;
	}
}