/* GX - SearchResults
 * Author: paulm
 */

rows = 10;
currentPage = 1
start = 0;
keyword = '';
category = 'consumenten';

/* JQuery init */
$(function(){
    category = $('#site-search-category').val();
    
    // only if link is present (on searchpage)
	if ($('#ajaxcall').length > 0 && $('#ajaxcall').attr("href") != '') {
		
		// keyword is set for initiation
		if ($('#keywordresults').html() != '') {
			keyword = $('#keywordresults').html();            
		}
		
		// no page refresh when alreade on searchresult page
  		$('#searchform').submit(function (event) {
  			event.preventDefault();
  			keyword = $('#site-search-input').val();
            category = $('#site-search-category').val();
  			search();
  		});
  		
  		// searchresult paging navigation
  		$('#search-navigation a').live("click",function () {
  			currentPage = $(this).attr('name');
  			search();
  		});
  		search();	
	}
});

/* search function */
function search() {
  $('#site-search-input').val(keyword);
  $('#keywordresults').html(keyword);
  
  base = $('#ajaxcall').attr("href");
  query = escape(keyword);
  base += '&query=' + query;
  base += '&rows=' + rows;
  base += '&category=' + category;

  if (currentPage > 1) {
	  	// not on firstpage
	  	start = (currentPage-1) * rows;
  } else {
	  	start = 0;
  }
  base += '&start=' + start;
  url = base + '&retrieve=all'

  // ajax call to get searchresults
  $.ajax({
      url: url,
      type: "GET",
      dataType: 'json',
      success: fillResult      
  });
}

/* ajaxcall succesfull, function called */
function fillResult(data) {
  $('#searchresults').empty();
  $('#countresults').html(data.count);
  
  if (data.count != 0) {
	  $('#showresults').css('display', 'block'); 
	  $('#shownoresults').css('display', 'none');
	  resultnr = 1;
	  
	  // paging blok
	  if (data.count > rows) {
		    // more items then per page
			// added paging div
			dataPaging = '<div id="search-navigation"><p>';
		    pages = parseInt(data.count / rows);
			if (data.count % rows != 0) {
				pages = pages + 1;
			}
			if (currentPage > pages) {
				// currentpage must be set to 1
				currentPage = 1;
			}
			//dataPaging += 'data.count: ' + data.count + '|| pp: ' + rows + '|| pages: ' + pages + ' || currentPage: ' + currentPage + '<br />';
		    for (var i = 1; i <= pages; i++) {
				if (i == 1) {
					start = '1';
					end = rows; 
				} else {
					start = ((i-1) * rows) + 1; 
					end = i * rows;
				}
				if (end > data.count) {
					end = data.count;
				}
				range = '[' + start + '-' + end + ']';
		    	if (currentPage == i) {
		    		resultnr = parseInt(start);
		    		dataPaging += ' ' + range;
					$('#rangeresults').html(start + '-' + end);
				} else {
					dataPaging += ' <a href="#" onclick="return false;"';
					dataPaging += ' name="' + i + '">' + range + '</a>';
				}
		    }
		  	dataPaging += '</p></div>';
		  	$('#searchresults').append(dataPaging); 	
	  } else {
		// no paging
		$('#rangeresults').html('1-' + data.count);  
	  }
	  
	  // fill searchresults
	  contentData = '';
	  $.each(data.results, function(i,r){
		  contentData += '<p><span class="searchresult_kop nr">';
		  contentData += '<a href="' + r.location + '">' + parseInt(resultnr + i) + '. ' + r.title;
		  contentData += '</a></span><br />';
		  $.each(r.snippets, function(j,s){
			  contentData += s.snippet;
		  });
		  contentData += '</p>';
	  });
	  $('#searchresults').append(contentData);
  } else {
	  // no results
	  $('#showresults').css('display', 'none');
	  $('#shownoresults').css('display', 'block');
  }
 }