L.Control.Search = L.Control.extend({
	options: {
		collapsed: true,
		position: "topright"
	},
	
	initialize: function(options){
		L.Util.setOptions(this, options);			
		
		this._isMouseOnMap = true; 
	},
	
	onAdd: function(map) {
		this._initLayout();
		
		return this._container;
	},
	
	_setSearchList: function() {
		
	},
	
	_initLayout: function() {
		var className = "acert-control-search";
		var container = this._container = L.DomUtil.create("div", className);	
		
		// Resolve conflicts between this control the map activities
		if (!L.Browser.touch) {
			L.DomEvent.disableClickPropagation(container);
		} else {
			L.DomEvent.addListener(container, 'click', L.DomEvent.stopPropagation);
		}
		
		var input = this._input = L.DomUtil.create("input", className + "-input", container);
		input.id = this._input.id = "search-input";
		var button = this._button = L.DomUtil.create("button", className + "-button", container);		
		
	},
	
	setAutocompleteItems: function(jsonLayer, labelField) {
		var that = this;
		this.autocompleteItems = [];
		var features = this._features = jsonLayer.jsonData.features;		
		
		for(var i = 0; i < features.length; i ++) {
			var thisFeature = features[i];
			var obj = {};
			obj["label"] = thisFeature.properties[labelField];
			obj["value"] = i;
			
			this.autocompleteItems.push(thisFeature.properties[labelField]);
		}
		
		this.autocompleteItems.sort();
		
		$("#" + this._input.id).autocomplete({source: that.autocompleteItems});
	}
	
	
})
@@ -470,16 +470,17 @@
 %0A%09%09%0A%09%09//
+/
  Resolve
@@ -833,16 +833,19 @@
 input%22;%0A
+%09%09%0A
 %09%09var bu
@@ -927,21 +927,629 @@
 tainer);
+%0A
 %09%09
-%0A%09%09
+L.DomEvent.addListener(button, 'click', this._search, this);%0A%09%09%0A%09%7D,%0A%09%0A%09_search: function(evt) %7B%0A%09%09if(this._map.highlight) %7B map.removeLayer(this._map.highlight); %7D%0A%09%09%0A%09%09var searchTerm = $(%22#search-input%22).val()%0A%09%09%0A%09%09var thisFeature = this._featureKVP%5BsearchTerm%5D;%0A%09%09%0A%09%09var coors = thisFeature.geometry.coordinates;%0A%09%09var latLng = new L.LatLng(coors%5B1%5D, coors%5B0%5D);%0A%09%09this._map.panTo(latLng);%0A%09%09%0A%09%09var highlight = this._map.highlight = new L.Marker(latLng, %7B%0A%09%09%09icon: new L.Icon(%7B %0A%09%09%09%09iconUrl: %22style/images/yellow-circle.png%22,%0A%09%09%09%09iconSize: new L.Point(32, 32) %0A%09%09%09%7D) %0A%09%09%7D);%0A%09%09%0A%09%09this._map.addLayer(highlight);
 %0A%09%7D,%0A%09%0A%09
@@ -1660,29 +1660,40 @@
 ;%0A%09%09
-var 
+this._
 feature
-s = this._
+KVP = %7B%7D;%0A%09%09%0A%09%09var 
 feat
@@ -1727,18 +1727,16 @@
 eatures;
-%09%09
 %0A%09%09%0A%09%09fo
@@ -1822,33 +1822,15 @@
 var 
-obj = %7B%7D;%0A%09%09%09obj%5B%22label%22%5D
+thisKey
  = t
@@ -1871,24 +1871,47 @@
 %0A%09%09%09
-obj%5B%22value%22%5D = i
+this._featureKVP%5BthisKey%5D = thisFeature
 ;%0A%09%09
@@ -1951,38 +1951,11 @@
 this
-Feature.properties%5BlabelField%5D
+Key
 );%0A%09
@@ -2036,16 +2036,20 @@
 mplete(%7B
+%0A%09%09%09
 source: 
@@ -2074,16 +2074,19 @@
 tems
+%0A%09%09
 %7D);%0A%09%7D%0A%09
 %0A%09%0A%7D
@@ -2081,13 +2081,12 @@
 %7D);%0A%09%7D%0A%09
-%0A
 %09%0A%7D)

Add 'highlight' function for search