$(function() {
    var timeout;
    var isSearching = false;
    var lastQ = '';

    $('#search_field')
		.keyup(function(e) {
		    if (isSearching && e.keyCode == 13) {
		        var q = $('#search_field').val();
		        var searchLink = '/Sokresultat?query=' + q;
		        location = searchLink;
		    }
		})
		.focus(function() {
		    if (timeout) clearTimeout(timeout);
		    timeout = 0;

		    $('body').addClass('searching');
		    isSearching = true;

		})
		.blur(function() {
		    isSearching = false;
		    timeout = setTimeout(function() { $('body').removeClass('searching'); timeout = 0; }, 200);
		})
		.typeWatch({
		    callback: function() {
		        var q = $('#search_field').val().replace(/^\s+|\s+$/g, '');
		        if (q == lastQ) return;
		        lastQ = q;

		        var searchLink = '/Sokresultat?query=' + q;
		        $('#result').html('<h3>S&ouml;ker...</h3>');
		        $('#search_link').attr('href', searchLink);
		        $('#search_button').unbind('click').click(function() { location.href = searchLink; });

		        call('QuickSearch', { query: q, website: 'delizie' }, function(data) {
		            var results = $('#result').empty();
		           
		            for (var i = 0; i < data.length; i++) {
		                var category = data[i];

		                $('<h3/>').text(category.Name).appendTo(results);

		                var list = $('<ul/>').appendTo(results);
		                for (var j = 0; j < category.Results.length; j++) {
		                    var result = category.Results[j];
		                    if (result.Title.length > 45) result.Title = result.Title.substring(0, 42) + '...';
		                    $('<li/>')
								.append($('<a/>').attr('href', result.PageUrl)
									.append($('<span/>')
										.addClass('thumb')
										.append($('<img/>')
											.load(function() {
											    setTimeout(function() {
											        var img = $(this);
											        img.width(img.width() * (39 / img.height()));
											    }, 1);
											})
											.attr({ alt: '', src: result.ImageUrl || '/Images/Delizie/delizie_thumb.gif', height: 39 })))
									.append(result.Title))
								.appendTo(list);
		                }
		            }
		        });
		    },
		    wait: 500,
		    highlight: true,
		    enterkey: true
		});
});
