var Person = {	suggest: {		params: {},		elem: Object,		resultSet: {},		request: false,		click: false,		delay: false,		data: Object,		request: Object,		init: function(elem, params) {				Person.suggest.params = params;			Person.suggest.elem = elem;						elem.focus();			elem.blur(function() {				Person.suggest.cancel();			});			elem.click(function() {				if ($(this).val()) {					Person.suggest.update($(this).val());				}			});			elem.keyup(function() {				Person.suggest.update($(this).val());			});		},		cancel: function() {			$('#person_suggest_results').hide();			$('#person_suggest_results').html('');		},		update: function(value) {			if (Person.suggest.delay) {				clearTimeout(Person.suggest.delay);			}			Person.suggest.delay = setTimeout('Person.suggest.fetch(\''+value+'\')', 400);		},		fetch: function(value) {			if (Person.suggest.request && !$.browser.msie && Person.suggest.request.abort) {				Person.suggest.request.abort();			}						$.post(url('/person/search'), {"query": value}, function (data) {				if (!$('#person_suggest_results').size()) {					Person.suggest.createDiv();				}								$('#person_suggest_results').hide();				var html = '';				Person.suggest.resultSet = [];				if (data.length) {					$('#person_suggest_results').show();					$('#person_suggest_results').html('');					for (x in data) {						html = '<div class="item" id="person_suggest_result_'+data[x].id+'">';							html += data[x].name;						html += '</div>';						$('#person_suggest_results').append(html);												Person.suggest.resultSet[data[x].id] = data[x];					}										$('#person_suggest_results div').mouseover(function() {						$(this).addClass('over');					});					$('#person_suggest_results div').mouseout(function() {						$(this).removeClass('over');					});					$('#person_suggest_results div').mousedown(function() {						id = this.id;												id = id.split("_");						id = id[3];						Person.suggest.select(id);					});				}				}, "json");		},		createDiv: function() {			elem = Person.suggest.elem;			var wrapper = $('#wiki_edit_wrapper');			wrapper = wrapper[0];						var div = document.createElement('div');			div.id = 'person_suggest_results';						wrapper.appendChild(div);						$('#person_suggest_results').css('position', 'absolute');			$('#person_suggest_results').width(elem.width() + 4);			$('#person_suggest_results').addClass('suggestions');			$('#person_suggest_results').css('top', elem.position().top + 17 +'px');			$('#person_suggest_results').css('left', elem.position().left + 'px');		},		select: function(id) {			elem = Person.suggest.elem;			Person.suggest.click = true;			data = Person.suggest.resultSet[id];			Person.suggest.cancel();						console.log(".o");			$(elem).parent().append('<input type="hidden" name="'+$(elem).attr('name')+'" value="'+id+'" />'); 			$(elem).parent().append('<div><a href="'+data.url+'" target="_blank">'+data.name+'</a></div>');			console.log($(elem).parent().html());			$(elem).remove();		}	}}
