NetR = typeof NetR === 'undefined' ? {} : NetR;

/**
 * SiteSeeker statistics functions
 * @requires jquery
 * @requires jquery.eventdelegation
 */
NetR.SiteSeeker = function() {
	function init() {
		$('#search-results').delegate('click', 'a.log-stats', function () {
			var link = $(this);

			$.ajax({
				type: "GET",
				url: clickTrackActivationUrl(link),
				dataType: "text",
				complete: function() { window.location = link.attr('href'); },
				timeout: 2000
				});

			return false;
		});
	}
	
	function clickTrackActivationUrl(link) {
		try {
			var hitCounter = '/SiteSeeker/HitCounter.aspx';
			var q = encodeURIComponent($('#searchtext').val());
			var resid = encodeURIComponent($('#resid').val());
			var uaid = encodeURIComponent($('#uaid').val());
			var url = encodeURIComponent(link.attr('href'));

			var hitId = link.attr('id');
			var hitParameter = hitId.split('-')[0]
			var hitNumber = hitId.split('-')[1]

			return hitCounter
					+ '?'
					+ 'q=' + q
					+ '&resid=' + resid
					+ '&uaid=' + uaid
					+ '&url=' + url
					+ '&' + hitParameter + '=' + hitNumber;
		} catch (e) { 
			return;
		}
	}
	
	return {
		init: init
	};
} ();


/**
 * SiteSeeker search field autocompletion
 * @requires jquery
 * @requires jquery.autocomplete
 */
NetR.SiteSeeker.AutoComplete = function (elements) {
	elements.autocomplete(NetR.SiteSeeker.AutoComplete.queryCompletionUrl, NetR.SiteSeeker.AutoComplete.options).result(function(event, item) {
		var $this = $(this);
		$this.val(item.suggestion);
		$this.parents('form').submit();
	});
};
NetR.SiteSeeker.AutoComplete.queryCompletionUrl = '/SiteSeeker/QueryCompletion.axd';
NetR.SiteSeeker.AutoComplete.options = {
	cacheLength: 0,
	dataType: 'json',
	delay: 200,
	extraParams: {
		ilang: $('html').attr('lang')
	},
	highlight: false,
	scroll: false,
	selectFirst: false,
	parse: function(data) {
		return $.map(data, function(row) {
			return {data: row};
		});
	},
	formatItem: function(item) {
		if (item) {
			return item.suggestionHighlighted;
		}
		return;
	}
};
