$(function() {

	function split( val ) {
		return val.split( /,\s*/ );
	}
	function extractLast( term ) {
		return split( term ).pop();
	}

	$( "#sp-searchtext" )
		// don't navigate away from the field on tab when selecting an item
		.bind( "keydown", function( event ) {
			if ( event.keyCode === $.ui.keyCode.TAB &&
					$( this ).data( "autocomplete" ).menu.active ) {
				event.preventDefault();
			}
		})
		.autocomplete({
/*
			source: "/api/autocomplete",
*/
			source: function( request, response ) {
				$.ajax({
					url: "/api/autocomplete",
					dataType: "json",
					data: {
						type: $('input[name="cell"]:checked', '#frmSideSearch').val(),
						term: request.term
					},
					success: function( data ) {
						response( $.map( data, function( item ) {
							return {
								label: item.label,
								value: item.value,
								desc: item.label
							}
						}));

					}
				});
			},
			minLength: 2,
			focus: function() {
				// prevent value inserted on focus
				return false;
			},
			select: function( event, ui ) {
				this.value = ui.item.value;
				return false;
			}
		});


	$( "#main-searchtext" )
		// don't navigate away from the field on tab when selecting an item
		.bind( "keydown", function( event ) {
			if ( event.keyCode === $.ui.keyCode.TAB &&
					$( this ).data( "autocomplete" ).menu.active ) {
				event.preventDefault();
			}
		})
		.autocomplete({
/*
			source: "/api/autocomplete",
*/
			source: function( request, response ) {
				$.ajax({
					url: "/api/autocomplete",
					dataType: "json",
					data: {
						type: 'all',
						term: request.term
					},
					success: function( data ) {
						response( $.map( data, function( item ) {
							return {
								label: item.label,
								value: item.value,
								desc: item.label
							}
						}));

					}
				});
			},
			minLength: 2,
			focus: function() {
				// prevent value inserted on focus
				return false;
			},
			select: function( event, ui ) {
				this.value = ui.item.value;
				return false;
			}
		});

});
