
function Autocomplete_init( objid ) {
	$("#"+objid).keyup( function() { Autocomplete_onkeyup( this ); } );
	$("#"+objid).keydown( function() { Autocomplete_onkeydown( this ); } );
	$("#"+objid).focus( function() { Autocomplete_onfocus( this ); } );
	$("#"+objid).blur( function() { Autocomplete_onblur( this ); } );
	$("#"+objid).data( "tooltipmouse" , false );
	o = $("#"+objid);
}

function Autocomplete_onfocus( obj , dval ) {
	if (obj.value==dval) obj.value='';
}

function Autocomplete_onblur( obj , dval ) {
	o = $( obj );
	if (obj.value=='') obj.value=dval;
	if (!o.data("tooltipmouse"))
		Autocomplete_showtooltip( obj , false );
}

function Autocomplete_showtooltip( obj , sh ) {
	o = $("#"+obj.id+"_relatives");
	if (sh) {
		if (o.hasClass( "h" )) o.removeClass( "h" );
		if (!o.hasClass( "d" )) o.addClass( "d" );
	} else {
		if (!o.hasClass( "h" )) o.addClass( "h" );
		if (o.hasClass( "d" )) o.removeClass( "d" );
	}
}

function Autocomplete_onkeyup( obj ) {
	if (obj.value=="") {
		Autocomplete_showtooltip( obj , false );
		return;
	}
	o = $(obj);
	if (o.data("oldval")==obj.value) {
		console.log( "simple button" );
		return;
	}
	$.ajax(
		{
			type: "POST",
			cache: false,
			data: (
				{
					ac : obj.id,
					dat : obj.value
				}
			),
			success: function( ret ) {
				a = eval( ret );
				o = $("#"+obj.id+"_relatives");
				o.empty();
				s = "";
				for (i in a) {
					row = a[i];
					d=$("<div></div>" );
					d.data( "ac_parent" , obj );
					d.data( "ac_index" , i );
					d.data( "ac_tooltip" , row );
					d.html( row.t_name );
					d.addClass( "item" );
					d.click( function() { Autocomplete_itemonclick( $(this) ); } );
					d.mouseenter( function() { Autocomplete_itemmouseenter( $(this) ); } );
					d.mouseleave( function() { Autocomplete_itemmouseleave( $(this) ); } );
					o.append( d );
					Autocomplete_showtooltip( obj , true );
				}
			}
		}
	);
}

function Autocomplete_onkeydown( obj ) {
	o = $(obj);
	o.data( "oldval" , obj.value );
}

function Autocomplete_itemonclick( item ) {
	row = item.data( "ac_tooltip" );
	p = item.data( "ac_parent" );
	p.value = row.t_name;
	Autocomplete_showtooltip( p , false );
}

function Autocomplete_itemmouseenter( item ) {
	p = $( item.data( "ac_parent" ) );
	p.data( "tooltipmouse" , true );
}

function Autocomplete_itemmouseleave( item ) {
	p = $( item.data( "ac_parent" ) );
	p.data( "tooltipmouse" , false );
}

