﻿function CitySearchControl(selectTextClientID, BookingTypeID, LanguageId, CountryId,ControlValue,PrevValue,EnableId) 
{
    $.widget("ui.combobox", {
        _create: function () {
            var self = this;
            var select = this.element.hide();
            var input = $("input#" + selectTextClientID)
                    .zIndex(1)
                    .attr("z-index", 1)
					.insertAfter(select)
					.autocomplete({
					    source: function (request, response) {
					        $.ajax({
					            url: "AutocompleteData.ashx?lang=" + LanguageId + '&bty=' + document.getElementById(BookingTypeID).value + '&cnt=' + document.getElementById(CountryId).value,
					            dataType: "json",
					            data: request,
					            success: function (data) {
					                for (var i = 0; i < data.length; i++) {
					                    if (data[i].id.toUpperCase() != 'NO') {
					                        data[i].label = data[i].label.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + $.ui.autocomplete.escapeRegex(request.term) + ")(?![^<>]*>)(?![^&;]+;)", "gi"), "<strong>$1</strong>");
					                    }
					                }

					                response(data);
					            }
					        })
					    },
					    delay: 0,
					    minLength: 0,
					    focus: function () {
					        
					        // prevent value inserted on focus
					        return false;
					    },
					    select: function (event, ui) {
					        if (ui.item.id.toUpperCase() == 'NO') {
					            $("#" + ControlValue).val('');
					            $("#" + PrevValue).val('');
					        }
					        else {
					            $("#" + ControlValue).val(ui.item.id);
					            $("#" + PrevValue).val(ui.item.value);
					        }
					    },
					    open: function () {
					       
					        $(this).removeClass("ui-corner-all").addClass("ui-corner-top");
					    },
					    close: function () {
					        $(this).removeClass("ui-corner-top").addClass("ui-corner-all");
					    },
					    search: function (event, ui) {
					        if (document.getElementById(selectTextClientID).value.length < MaxLen) {
					            if ($("#" + selectTextClientID).is(":visible"))
					                $("#" + selectTextClientID).autocomplete("close");
					            return false;
					        }
					        else
					            return true;
					    }
					})
					.addClass("ui-widget ui-widget-content ui-corner-left");

            $("<button>&nbsp;</button>")
                .attr("tabIndex", -1)
                .attr("z-index", 1)
				.attr("title", "Show All Items")
				.insertAfter(input)
				.button({
				    icons: {
				        primary: "ui-icon-triangle-1-s"
				    },
				    text: false
				}).removeClass("ui-corner-all")
				.addClass("ui-corner-right ui-button-icon")
				.click(function () {
				    // close if already visible
				    if (input.autocomplete("widget").is(":visible")) {
				        input.autocomplete("close");
				        return false;
				    }
				    // pass empty string as value to search for, displaying all results
				    MaxLen = 0;
				    if (document.getElementById(EnableId).value == "1") {
				        input.autocomplete("search", document.getElementById(selectTextClientID).value);
				    }
				    MaxLen = 3;
				    input.focus();
				    return false;
				});
        }
    });


}

function SetControlText(cntrId, value) {

    $("#" + cntrId).val(value);
}
