[minor] replace autocomplete with awesomplete
diff --git a/erpnext/accounts/page/pos/pos.js b/erpnext/accounts/page/pos/pos.js
index c52d4fa..bd9d8ed 100644
--- a/erpnext/accounts/page/pos/pos.js
+++ b/erpnext/accounts/page/pos/pos.js
@@ -410,33 +410,37 @@
 			this.frm.doc.customer = this.default_customer;
 		}
 
-		this.party_field.$input.autocomplete({
-			autoFocus: true,
-			source: function (request, response) {
-				me.customer_data = me.get_customers(request.term)
-				response($.map(me.customer_data, function(data){
+		this.party_field.awesomeplete = new Awesomplete(this.party_field.$input.get(0), {
+				minChars: 0,
+				maxItems: 99,
+				autoFirst: true,
+				list: [],
+			});
+
+		this.party_field.$input
+			.on('input', function(e) {
+				var customer_data = me.get_customers(e.target.value) || [];
+				me.party_field.awesomeplete.list = customer_data.map(function(data){
 					return {label: data.name, value: data.name,
 						customer_group: data.customer_group, territory: data.territory}
-				}))
-			},
-			change: function(event, ui){
-				if(ui.item){
-					me.frm.doc.customer = ui.item.label;
-					me.frm.doc.customer_name = ui.item.customer_name;
-					me.frm.doc.customer_group = ui.item.customer_group;
-					me.frm.doc.territory = ui.item.territory;
-				}else{
+				});
+			})
+			.on('awesomplete-select', function(e) {
+				var item = me.party_field.awesomeplete.get_item(e.originalEvent.text.value);
+				console.log(item);
+				if(item) {
+					me.frm.doc.customer = item.label;
+					me.frm.doc.customer_name = item.customer_name;
+					me.frm.doc.customer_group = item.customer_group;
+					me.frm.doc.territory = item.territory;
+				} else {
 					me.frm.doc.customer = me.party_field.$input.val();
 				}
 				me.refresh();
-			}
-		}).on("focus", function(){
-			setTimeout(function() {
-				if(!me.party_field.$input.val()) {
-					me.party_field.$input.autocomplete( "search", " " );
-				}
-			}, 500);
-		});
+			})
+			.on('focus', function(e) {
+				$(e.target).val('').trigger('input');
+			});
 	},
 
 	get_customers: function(key){
@@ -570,7 +574,7 @@
 			me.update_qty(item_code, qty)
 		})
 	},
-	
+
 	update_qty: function(item_code, qty) {
 		var me = this;
 		this.items = this.get_items(item_code);
@@ -1012,13 +1016,13 @@
 			frappe.throw(__("Select items to save the invoice"))
 		}
 	},
-	
+
 	validate_mode_of_payments: function(){
 		if (this.frm.doc.payments.length === 0){
 			frappe.throw(__("Payment Mode is not configured. Please check, whether account has been set on Mode of Payments or on POS Profile."))
 		}
 	},
-	
+
 	validate_serial_no: function(){
 		var me = this;
 		var item_code = serial_no = '';
diff --git a/erpnext/stock/doctype/item/item.js b/erpnext/stock/doctype/item/item.js
index 1f793d1..8844528 100644
--- a/erpnext/stock/doctype/item/item.js
+++ b/erpnext/stock/doctype/item/item.js
@@ -88,13 +88,13 @@
 	image: function(frm) {
 		refresh_field("image_view");
 	},
-	
+
 	is_fixed_asset: function(frm) {
 		if (frm.doc.is_fixed_asset) {
 			frm.set_value("is_stock_item", 0);
 		}
 	},
-	
+
 	page_name: frappe.utils.warn_page_name_change,
 
 	item_code: function(frm) {
@@ -191,15 +191,15 @@
 
 		frm.fields_dict.reorder_levels.grid.get_field("warehouse").get_query = function(doc, cdt, cdn) {
 			var d = locals[cdt][cdn];
-			
+
 			var filters = {
 				"is_group": 0
 			}
-			
+
 			if (d.parent_warehouse) {
 				filters.extend({"parent_warehouse": d.warehouse_group})
 			}
-			
+
 			return {
 				filters: filters
 			}
@@ -313,39 +313,38 @@
 
 			$(field.input_area).addClass("ui-front");
 
-			field.$input.autocomplete({
-				minLength: 0,
+			var input = field.$input.get(0);
+			input.awesomplete = new Awesomplete(input, {
 				minChars: 0,
-				autoFocus: true,
-				source: function(request, response) {
+				maxItems: 99,
+				autoFirst: true,
+				list: [],
+			});
+			input.field = field;
+
+			field.$input
+				.on('input', function(e) {
+					var term = e.target.value;
 					frappe.call({
 						method:"frappe.client.get_list",
 						args:{
 							doctype:"Item Attribute Value",
 							filters: [
 								["parent","=", i],
-								["attribute_value", "like", request.term + "%"]
+								["attribute_value", "like", term + "%"]
 							],
 							fields: ["attribute_value"]
 						},
 						callback: function(r) {
 							if (r.message) {
-								response($.map(r.message, function(d) { return d.attribute_value; }));
+								e.target.awesomplete.list = r.message.map(function(d) { return d.attribute_value; });
 							}
 						}
 					});
-				},
-				select: function(event, ui) {
-					field.$input.val(ui.item.value);
-					field.$input.trigger("change");
-				},
-			}).on("focus", function(){
-				setTimeout(function() {
-					if(!field.$input.val()) {
-						field.$input.autocomplete("search", "");
-					}
-				}, 500);
-			});
+				})
+				.on('focus', function(e) {
+					$(e.target).val('').trigger('input');
+				})
 		});
 	},
 	toggle_attributes: function(frm) {