function WizardTags(element_query, options) {
	options = options || {};

	var TagsGenerator = function() {
		return [];
	};
	if (options.tags instanceof Function) {
		TagsGenerator = options.tags;
	} else if (options.tags instanceof Array) {
		TagsGenerator = function(query) {
			return options.tags.filter(
				function(tag) {
					return tag.substr(0, query.length) == query;
				}
			);
		};
	}

	var root = document.querySelector(element_query);
	root.className = 'wizard-tags';

	var list = null;
	var CreateList = function(query) {
		list = document.createElement('ul');
		list.className = 'wizard-tags-autocomplete-list';
		if (typeof options.list_maximal_height !== "undefined") {
			list.style.maxHeight = options.list_maximal_height + 'px';
		}

		var tags = TagsGenerator(query);
		for (var i = 0; i < tags.length; i++) {
			var item = document.createElement('li');
			item.innerText = tags[i];

			list.appendChild(item);
		}

		root.appendChild(list);
	};
	var RemoveList = function() {
		root.removeChild(list);
	};

	var input = document.createElement('input');
	input.addEventListener(
		'focus',
		function() {
			CreateList(input.value);
		}
	);
	input.addEventListener('blur', RemoveList);
	root.appendChild(input);
}

@@ -39,16 +39,49 @@
 ions) %7B%0A
+%09var LIST_UPDATE_TIMEOUT = 300;%0A%0A
 %09options
@@ -1191,16 +1191,322 @@
 %09%09%7D%0A%09);%0A
+%09var list_update_timer = null;%0A%09input.addEventListener(%0A%09%09'keyup',%0A%09%09function() %7B%0A%09%09%09if (list_update_timer != null) %7B%0A%09%09%09%09clearTimeout(list_update_timer);%0A%09%09%09%7D%0A%09%09%09list_update_timer = setTimeout(%0A%09%09%09%09function() %7B%0A%09%09%09%09%09RemoveList();%0A%09%09%09%09%09CreateList(input.value);%0A%09%09%09%09%7D,%0A%09%09%09%09LIST_UPDATE_TIMEOUT%0A%09%09%09);%0A%09%09%7D%0A%09);%0A
 %09input.a

Add update list on input text.