$(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 = '/web/Search.aspx?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 = '/web/Search.aspx?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: 'zeta' }, 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/zeta_thumb.gif', height: 39 })))
									.append(result.Title))
								.appendTo(list);
						}
					}
				});
			},
			wait: 500,
			highlight: true,
			enterkey: true
		});
});