//-------------------------------------------------------------------------------------------------------------------------------
// AJAX-based loading of search results; 2011, by Dominik Klauser, BSc
//-------------------------------------------------------------------------------------------------------------------------------

function loadResults(url, page, searchString){
  // Erzeugen des Request-Objektes
  var req = null;
  
  try{
	  req = new XMLHttpRequest();
  }catch(e){
	  try{
		  req = new ActiveXObject("Msxml2.XMLHTTP");
	  }catch(e){
		  try{
			  req = new ActiveXObject("Microsoft.XMLHTTP");
		  }catch(failed){
			  req = null;
		  }
	  }
  }
  
  if(req == null)
	  alert("Error creating request object!");

  // Anforderung der Daten (GET)
  // req.open("GET", url, true);
  
  // Anforderung der Daten (POST)
  var params = "s=" + document.getElementById('s').value + "&page=" + page;
  //var params = "s=" + document.getElementById('s').value + "&page=3";
  req.open("POST", url, true);
  
  //Send the proper header information along with the (POST-)request
  req.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
  req.setRequestHeader("Content-length", params.length);
  req.setRequestHeader("Connection", "close");

  // Abschließen des Requests; Überprüfung des Status
  req.onreadystatechange = function(){
	  
	  switch(req.readyState){
		   case 4:
			  if(req.status!=200){
					alert("Fehler: " + req.status); 
			  }
			  else{
				  // alert(req.responseText);
				  // Present result
				  document.getElementById("content").innerHTML = req.responseText;
				  
				  // Get page data
				  // Define number of results per page
				  var resultsPerPage = 6;
				  var from = document.getElementsByClassName("isearch-head")[2].innerHTML.split(" ")[1];
				  // alert("From: " + from);
				  var to = document.getElementsByClassName("isearch-head")[2].innerHTML.split(" ")[3];
				  // alert("To: " + to);
				  var overall = document.getElementsByClassName("isearch-head")[2].innerHTML.split(" ")[5];
				  // alert("Overall: " + overall);
				  var overallPages = Math.ceil(overall / resultsPerPage);
				  var currentPage = overallPages - Math.ceil((overall - to) / resultsPerPage);
				  
				  // alert("Gefundene Seiten: " + overallPages);
				  // alert("Aktuelle Seite: " + currentPage);
				  
				  // Remove page listing/links & generate new page listing/links
				  var pageListing = '<col width="10%" /><col width="80%" /><col width="10%" /><tr class="isearch-prevnext">';
				  
				  var tmpURL = "";
				  
				  // Previous page
				  if(currentPage != 1){
					tmpURL = "javascript:loadResults('/isearch2/index.php?action=search&s=" + document.getElementById('s').value + "&group=&page=" + (currentPage - 1) + "', " + (currentPage - 1) + ", '');";
					
				  	pageListing += '<td class="isearch-prevnext" onclick="' + tmpURL + '" style="text-align: left">&nbsp;&nbsp;<a class="isearch-prevnext" href="#?action=search&s=' + document.getElementById('s').value + '&group=&page=' + (currentPage - 1) + '">&lt;&lt;&nbsp;Vorige&nbsp;Seite</a></td><td class="isearch-prevnext" style="text-align: center">&nbsp;';
				  }
				  
				  else{
					  pageListing += '<td class="isearch-prevnext" style="text-align: left">&nbsp;</td><td class="isearch-prevnext" style="text-align: center">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
				  }
				  
				  // Page listing
				  for(var i = 1; i <= overallPages; i++){
					  tmpURL = "javascript:loadResults('/isearch2/index.php?action=search&s=" + document.getElementById('s').value + "&group=&page=" + i + "', " + i + ", '');";
				  // tmpURL = "javascript:loadResults('/isearch2/index.php?action=search&s=" + document.getElementById('s').value + "&group=&page=" + i + "', " + i + ", '');";
					if(i != currentPage)
						pageListing += '<a class="isearch-prevnext" onclick="' + tmpURL + '" href="#?action=search&s=' + document.getElementById('s').value + '&group=&page=' + i + '">' + i + '</a>&nbsp;';
					else
						pageListing += i + '&nbsp;';
				  }
				  
				  // Next page
				  if(currentPage < overallPages){
				  	tmpURL = "javascript:loadResults('/isearch2/index.php?action=search&s=" + document.getElementById('s').value + "&group=&page=" + (currentPage + 1) + "', " + (currentPage + 1) + ", '');";
					
					pageListing += '</td><td class="isearch-prevnext" onclick="' + tmpURL + '" style="text-align: left"><a class="isearch-prevnext" href="#?action=search&s=' + document.getElementById('s').value + '&group=&page=' + (currentPage + 1) + '">N&auml;chste&nbsp;Seite&nbsp;&gt;&gt;</a>&nbsp;&nbsp;</td>';
				  }
				  
				  else{
					  pageListing += '</td><td class="isearch-prevnext" style="text-align: right">&nbsp;</td></tr>';
				  }
				  
				  // alert(pageListing);
				  document.getElementsByClassName("isearch-prevnext")[0].innerHTML = pageListing;
				  
				  // alert(currentPage + "/" + overallPages);
				  // alert(req.responseText);
				  /* responseText
				  var tmp_parent = document.getElementById("window");
				  tmp_parent.style.top = "5px";
				  tmp_parent.style.left = "5px";
				  var tmp = document.getElementById("windowContent");
				  tmp.innerHTML = req.responseText;
				  */
				  
				  // responseXML
				  /*var xml = req.responseXML;
				  
				  var tmp1 = xml.getElementsByTagName("content_anfahrt_container")[1];
				  var tmp = document.getElementById("window");
				  tmp.style.top = "5px";
				  tmp.style.left = "5px";
				  tmp.appendChild(tmp1);
				  */
			  }
			  break;
		  default:
			  return false;
			  break;
	  }
  };
  
  req.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
  req.send(params);
}
