// JavaScript Document

var suggestelements = new Array();
var focuselement = 33;

// Kill suggest when leaving input field
function ExitSuggest (){
 	document.getElementById('search_suggest').style.display = 'none';
}


// Check which key was pressed
function KeyCheck (Ereignis) {
  if (!Ereignis)
    Ereignis = window.event;
  var KeyID = Ereignis.keyCode;
  // Verschiedene Cases für unterschiedliche Tasten
   switch(KeyID)
   {

	  case 13:
	  // Übernahme des Wertes mit Enter ins Eingabefeld  -> noch verschieben als action auf dem div und nicht dem eingabefeld
	  if (suggestelements[focuselement] != null){
	  document.getElementById('search-job').value = document.getElementById(suggestelements[focuselement]).innerHTML;
   	  document.getElementById('search_suggest').innerHTML = '';
	  focuselement = 33;
	  suggestelements.length = 0;
	  }
	  else {
		  var postvariabel = "index.php?what=";
		  postvariabel += document.getElementById('search-job').value;
		  postvariabel += '&where=';
		  postvariabel += document.getElementById('search-city').value;
		  window.location.href = postvariabel;
	  }
	  break;

	case 38:
      // Aufruf Funktion Higlight eins höher
		if (focuselement == 33) {}
		else if (focuselement == 0) {
			document.getElementById(suggestelements[focuselement]).className = 'suggest_link';
			focuselement = 33;
			}
		else {
		document.getElementById(suggestelements[focuselement]).className = 'suggest_link';
		focuselement = focuselement - 1;	
		document.getElementById(suggestelements[focuselement]).className = 'suggest_link_over';
		}
      break;

      case 40:
	
	  // Aufruf Funktion Highlight eins tiefer
		if (focuselement == 33) {
			document.getElementById(suggestelements[0]).className = 'suggest_link_over';
			focuselement = 0;
			}
		else if (focuselement == suggestelements.length - 1) {}
		else {
		document.getElementById(suggestelements[focuselement]).className = 'suggest_link';
		focuselement = focuselement + 1;	
		document.getElementById(suggestelements[focuselement]).className = 'suggest_link_over';
		}
      break;



	  default:
	  // Aufruf Funktion Suggest
	  searchSuggest();
	  break;
   }
}

//Gets the browser specific XmlHttpRequest Object
function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		alert("Your Browser is to old!\nIt's about time to upgrade don't you think?");
	}
}

//Our XmlHttpRequest object to get the auto suggest
var searchReq = getXmlHttpRequestObject();
var searchReqComp = getXmlHttpRequestObject();



//Called from keyup on the search textbox.
//Starts the AJAX request.
function searchSuggest() {
	if ((searchReq.readyState == 4 || searchReq.readyState == 0) && (searchReqComp.readyState == 4 || searchReqComp.readyState == 0)) {
		var str = escape(document.getElementById('search-job').value);
		searchReqComp.open("GET", 'inc/suggest/searchSuggestComp.php?search=' + str, true);
		searchReq.open("GET", 'inc/suggest/searchSuggest.php?search=' + str, true);
		searchReq.onreadystatechange = handleSearchSuggest; 
		searchReqComp.onreadystatechange = handleSearchSuggest; 
		searchReq.send(null);
		searchReqComp.send(null);
	}		
}

//Called when the AJAX response is returned.
//Variabel "nohits" -> damit das flyout verschwindet, wenn in keiner Kategorie Treffer vorhanden sind

function handleSearchSuggest() {
	if (searchReq.readyState == 4) {
		suggestelements.length = 0;
		var ss = document.getElementById('search_suggest')
		ss.style.display = 'block';
		ss.innerHTML = '';
		var str = searchReq.responseText.split("\n");
		var nohits = 0;
		var suggest = '<div class="suggest-title">Stellen:</div>';		
		if (str.length > 12){str.length = 12;}
		for(i=1; i < str.length - 1; i++) {
			suggest += '<div onmouseover="javascript:suggestOver(this);" ';
			suggest += 'onmouseout="javascript:suggestOut(this);" ';
			suggest += 'onclick="javascript:setSearch(this.innerHTML);" ';
			suggest += 'id="jd';
			suggest += i;
			suggest += '"';
			suggest += 'class="suggest_link">';
			suggest += str[i] + '</div>';
			var suggestelement = 'jd';
			suggestelement += i;
			suggestelements.push(suggestelement);
		}
		if (i == 11) {suggest += '<div>Weitere Stellen - schränken Sie weiter ein.</div>';}
		if (i == 1){suggest += '<div>keine Jobs vorhanden</div>';}		
		else {nohits++;}
		ss.style.display = 'block';
		ss.innerHTML += suggest;
		var strComp = searchReqComp.responseText.split("\n");
		var suggest = '<div class="suggest-title">Arbeitgeber:</div>';
		if (strComp.length > 7){strComp.length = 7;}		
		for(i=1; i < strComp.length - 1; i++) {
			suggest += '<div onmouseover="javascript:suggestOver(this);" ';
			suggest += 'onmouseout="javascript:suggestOut(this);" ';
			suggest += 'onclick="javascript:setSearch(this.innerHTML);" ';
			suggest += 'id="comp';
			suggest += i;
			suggest += '"';
			suggest += 'class="suggest_link">' + strComp[i] + '</div>';
			var suggestelement2 = 'comp';
			suggestelement2 += i;
			suggestelements.push(suggestelement2);
		}
		if (i == 1){suggest += '<div>keine Unternehmen vorhanden</div>';}
		if (i == 6) {suggest += '<div>Weitere Arbeitgeber - schränken Sie weiter ein.</div>';}
		else {nohits++;}
		ss.innerHTML += suggest;
		if (nohits == 0){ss.innerHTML = '';}
	}
}



//Mouse over function
function suggestOver(div_value) {
	div_value.className = 'suggest_link_over';
}
//Mouse out function
function suggestOut(div_value) {
	div_value.className = 'suggest_link';
}

//Click function (3. Zeil = Remove suggests after click)
function setSearch(value) {
	document.getElementById('search-job').value = value;
	document.getElementById('search_suggest').style.display = 'none';
}


