//var tx_nxgpmevents_search_currentPage = 1;
//var tx_nxgpmevents_search_pageCount = 1;
var tx_nxgpmevents_search_titleField = 'title';

jQuery('document').ready(function() {
	jQuery("#tx-nxgpmevents-searchfield-sitesearch").click(function() {
		var searchUrl = tx_nxgpmevents_search_redirectUrl;
		if (jQuery("#tx-nxgpmevents-searchfield-searchterm").val() != "") {
			var queryChar = (searchUrl.indexOf("?") == -1) ? "?" : "&";
			searchUrl += queryChar + "tx_indexedsearch[sword]=" + jQuery("#tx-nxgpmevents-searchfield-searchterm").val();
		}
		window.location.href = searchUrl;
	});
	
	jQuery('#websitesuche').submit(function() {
		tx_nxgpmevents_search_loadPage(1);
		return false;
	});
	
	jQuery('.tx-nxgpmevents-search-results-jumptopage').css('display', 'none');
	
	jQuery('.tx-nxgpmevents-search-results-pagelist').change(function() {
		jQuery(this).closest('form').submit();
	});
	
	jQuery('.tx-nxgpmevents-search-results-pagenav').submit(function() {
		tx_nxgpmevents_search_loadPage(jQuery(this).children('.tx-nxgpmevents-search-results-pagelist').val());
		return false;
	});
	
	jQuery('.suche_results .page_listing').each(function() {
		var prevText = jQuery(this).find('.tx-nxgpmevents-search-results-pagenav-prev').text();
		jQuery(this).find('.tx-nxgpmevents-search-results-pagenav-prev').empty().append(tx_nxgpmevents_search_createPageLink(prevText, tx_nxgpmevents_search_currentPage - 1));
		var nextText = jQuery(this).find('.tx-nxgpmevents-search-results-pagenav-next').text();
		jQuery(this).find('.tx-nxgpmevents-search-results-pagenav-next').empty().append(tx_nxgpmevents_search_createPageLink(nextText, Number(tx_nxgpmevents_search_currentPage) + 1));
		
	});
});

/**
 * Load search results page
 * @param page
 * @return void
 */
function tx_nxgpmevents_search_loadPage(page) {
	var queryString = 'CMD=search&id=' + tx_nxgpmevents_search_pid + '&tx_nxgpmevents[CMD]=results&tx_nxgpmevents[page]=' + page;
	jQuery('#websitesuche :text').each(function() {
		queryString += '&' + jQuery(this).attr('name') + '=' + jQuery(this).val();
	});
	jQuery('#websitesuche :selected').each(function() {
		queryString += '&' + jQuery(this).parent().attr('name') + '=' + jQuery(this).val();
	});
	
	jQuery.ajax({
		type: 'POST',
		url: tx_nxgpmevents_search_searchUrl,
		data: queryString,
		dataType: 'json',
		
		success: function(data) {
			var odd = true;
			jQuery('.suche_results table tr.odd').add('.suche_results table tr.even').remove();
			
			jQuery(data.events).each(function() {
				jQuery('.suche_results table')
					.append(jQuery('<tr />')
						.addClass(odd ? 'odd' : 'even')
						.append(jQuery('<td />').html(this[tx_nxgpmevents_search_titleField]))
						.append(jQuery('<td />').html(this.from + ((this.to != this.from && this.to > 0) ? ' - ' + this.to : '')))
						.append(jQuery('<td />').html(this.location))
						.append(jQuery('<td />').html(this[tx_nxgpmeventes_search_dynColumn]))
						.append(jQuery('<td />').html(this.more))
					)
				;
				
				odd = !odd;
			});
			
			jQuery('#tx-nxgpmevents-search-numresults').text(data.results);
			
			tx_nxgpmevents_search_currentPage = page;
			
			//var prevLink = jQuery('.suche_results .page_listing .tx-nxgpmevents-search-pagenav-prev').eq(0);
			//var nextLink = jQuery('.suche_results .page_listing .tx-nxgpmevents-search-pagenav-next').eq(0);
			
			tx_nxgpmevents_search_pageCount = data.pages;
			
			jQuery('.suche_results .page_listing').each(function() {
				var pageBrowser = jQuery(this).find('select.tx-nxgpmevents-search-results-pagelist');
				pageBrowser.empty()
					//.append(prevLink.clone().empty().append(
					//	tx_nxgpmevents_search_createPageLink(prevLink.text(), tx_nxgpmevents_search_currentPage - 1))
					//)
					//.append(' | ')
					//.append(nextLink.clone().empty().append(
					//	tx_nxgpmevents_search_createPageLink(nextLink.text(), tx_nxgpmevents_search_currentPage + 1))
					//)
				;
				
				var prevText = jQuery(this).find('.tx-nxgpmevents-search-results-pagenav-prev').text();
				jQuery(this).find('.tx-nxgpmevents-search-results-pagenav-prev').empty().append(tx_nxgpmevents_search_createPageLink(prevText, tx_nxgpmevents_search_currentPage - 1));
				var nextText = jQuery(this).find('.tx-nxgpmevents-search-results-pagenav-next').text();
				jQuery(this).find('.tx-nxgpmevents-search-results-pagenav-next').empty().append(tx_nxgpmevents_search_createPageLink(nextText, Number(tx_nxgpmevents_search_currentPage) + 1));
				
				for (var i = 1; i <= data.pages; i++) {
					pageBrowser.append(jQuery('<option />')
						.addClass('tx-nxgpmevents-search-pagenav-page')
						.val(i)
						.text(i)
						.attr('selected', i == tx_nxgpmevents_search_currentPage)
						//.append(tx_nxgpmevents_search_createPageLink(i, i))
					);
				}
			});
		}
	});

}


/**
 * @param text
 * @param page
 * @return jQuery
 */
function tx_nxgpmevents_search_createPageLink(text, page) {
	if (page > 0 && page <= tx_nxgpmevents_search_pageCount) {
		return jQuery('<a />')
			.attr('href', '#')
			.text(text)
			.click(function() {
				tx_nxgpmevents_search_loadPage(page);
				return false;
			});
	} else {
		return text;
	}
}

