$(function() {    
    // NO-JS-Dinger ausblenden
	$('.ohne_javascript').hide();
	$('.mit_javascript').show();
    
    
	if(! $('input[name="region_freitext"]').length == 0) {
		$.getJSON(url('/service/RegionalAutocomplete/find'), function(data) {
			var source = [];
			
			$(data).each(function(elem) {
				source.push({
					id: this.id,
					label: this.region + ' ('+this.objekte+')',
					value: this.region,
					results: this.objekte
				});
			});
						
			$('input[name="region_freitext"]')
				.css('visibility', 'visible')
				.focus(function() {
					$(this)
						.val('')
						.unbind('focus')
						.autocomplete({
							source: function(request, response) {
								var matches = [];
								var matcher = new RegExp($.ui.autocomplete.escapeRegex(request.term), "i");
								
								$.each(source, function() {
									if(this.value.toLowerCase().indexOf(request.term.toLowerCase()) != -1) {
									//if(this.value.toLowerCase().substring(0, request.term.length) == request.term.toLowerCase()) {
										matches.push({
											id: this.id,
											label: this.label.replace(new RegExp(
													"(?![^&;]+;)(?!<[^<>]*)(" +
													$.ui.autocomplete.escapeRegex(request.term) +
													")(?![^<>]*>)(?![^&;]+;)", "gi"
												), "<strong>$1</strong>"),
											value: this.value,
											results: this.results
										});	
									}
								});
								
								matches.sort(function(a, b) {
									return b.results - a.results;
								});
								
								response(matches.slice(0, 10));
							},
							'select': function(event, ui) {
								$("#kombi").val(ui.item.id);
							}
						})
					;
				})
			;
		});
    }
});
