﻿

// jQuery escapes html on autocomplete ..
$["ui"]["autocomplete"].prototype["_renderItem"] = function (ul, item) {
	return $("<li></li>")
  .data("item.autocomplete", item)
  .append($("<a></a>").html(item.label))
  .appendTo(ul);
};


var spinner_preload = new Image(16, 16); 
spinner_preload.src = "/Content/Images/suggestion/spinner_basic_16x16.gif";


$(document).ready(function () {

    $("#_TxtSearch").focus();
    $("#_TxtSearch").val('Indtast s' + String.fromCharCode(0x00f8) + 'geord...');

    setBlurEvent();
    $('#_TxtSearch').keydown(function () {
        if ($(this).val() == 'Indtast s' + String.fromCharCode(0x00f8) + 'geord...') { $(this).val(''); }
        setBlurEvent();
    });

    $('#_TxtSearch').mousedown(function () {
        if ($(this).val() == 'Indtast s' + String.fromCharCode(0x00f8) + 'geord...') { $(this).val(''); }
        setBlurEvent();
    });

    $("#_TxtSearch").autocomplete({
        source: function (request, response) {
            delay: 25,

			$.ajax({
			    url: "/Webservices/Search/JSONSearchResult.aspx",
			    dataType: "json",
			    data: {
			        param: EncodeUrl(jQuery.trim(request.term))
			    },
			    success: function (data) {
			        response($.map(data.results, function (item) {
			            return {
			                label: unescape(item.title).replace(/\\'/ig, "'").replace(/\\"/ig, '"'),
			                value: unescape(item.title).replace(/\\'/ig, "'").replace(/\\"/ig, '"').replace(/(<([^>]+)>)/ig, ""),
			                url: item.url
			            }
			        }));
			    }
			});
        },

        open: function (event, ui) {
            $(".ui-autocomplete").append('<li class="ui-menu-item" style="background-color: #ccc; color: #000; padding: 0.4em 0 0.4em 0;">&nbsp;Tryk [ENTER] for flere resultater</li>');
        },

        select: function (event, ui) {
                window.location.href = ui.item.url;
        }
    });
});

function setBlurEvent() {
	$('#_TxtSearch').unbind('focus').blur(function() {
	  if ($(this).val() == '') { $(this).val('Indtast s' + String.fromCharCode(0x00f8) + 'geord...'); }
	  setFocusEvent();
	});
}

function setFocusEvent() {
	$('#_TxtSearch').unbind('blur').focus(function() {
	  if ($(this).val() == 'Indtast s' + String.fromCharCode(0x00f8) + 'geord...') { $(this).val(''); }
	  setBlurEvent();
	});
}
