function TemplateFeatureInstanceValueControl(editHybridPropertyDiv, parameterName){

	function setChanged() {
		changeNonCompoundValue(null, parameterName);
	}
	
	editHybridPropertyDiv.find('li').each(function(){
		init(jQuery(this));
	});
	
	editHybridPropertyDiv.find('ul').sortable({
		handle: '.reorderHandle',
		items: 'li:not(.newPropertyValue)',
		update: setChanged
	});
	
	updateSortable();
	
	function updateSortable() {
		if (editHybridPropertyDiv.find('li:not(.newPropertyValue)').size() >= 2) {
			editHybridPropertyDiv.find('ul').sortable('enable');
		}
		else {
			editHybridPropertyDiv.find('ul').sortable('disable');
		}
	}
	
	function advance(listElement) {
		listElement.clone()
			.insertAfter(listElement)
			.find('input').val('').focus();
		init(listElement.next());
		listElement.find('input').blur(); // autocomplete menu might open otherwise
		listElement.removeClass('newPropertyValue');
		updateSortable();
	}
	
	function init(listElement){
		listElement.find('input').attr('name', parameterName);
		listElement.find('input').bind('keypress', function(event){
			setChanged();
		});
		listElement.find('a.removePropertyValue').click(function(event){
			listElement.remove();
			setChanged();
			updateSortable();
			event.preventDefault();
		});
		if (listElement.find('input').size() > 0 && listElement.find('input').attr('type') == 'text') {
			listElement.find('input').triciaautocomplete({
				minLength: 1,
				maxWidth: 400,
				source: function(request, response){
					jQuery.ajax({
						url: "/functions/findAsset",
						dataType: "json",
						data: {
							query: request.term
						},
						success: function(data){
							response(data);
						}
					})
				},
				select: function(event, ui){
					if (listElement.hasClass("newPropertyValue")) {
						advance(listElement);
					}
					listElement.find('span.actualValue')
						.html('')
						.append(ui.item.imageTag + ui.item.label)
						.append(jQuery('<input type="hidden"/>').val(ui.item.uid));
					init(listElement);
				},
				submit: function(event, ui){
					if (ui.value && listElement.hasClass("newPropertyValue")) {
						advance(listElement);
					}
				}
			}).data("triciaautocomplete")._renderItem = autoCompleteRenderItemfunction;
		}
	}
}

function HybridSearchResultTable(tableId) {

	var hybridSearchResultTable;
    		   
    hybridSearchResultTable = jQuery('#hybridSearchResultTable' + tableId).dataTable({
        'bPaginate': false,
		'bAutoWidth': false,
		'bFilter': false,
		'bInfo': false
    });
	
}