var SUG_xmlHttp = null; 
var SUG_wert_global = ""; 
var SUG_selected_suggest = -1;

// request suggestions
function hall_suggest(wert) { 
	SUG_wert_global = wert; 
	document.getElementById('search_input').focus(); 
	if (window.ActiveXObject) {
		try {
			SUG_xmlHttp= new ActiveXObject("Msxml2.XMLHTTP");
		} catch (e) {
			try {
				SUG_xmlHttp= new ActiveXObject("Microsoft.XMLHTTP");
			} catch (e) {
			}
		}
	} else if (window.XMLHttpRequest) {
		try {
			SUG_xmlHttp= new XMLHttpRequest();
		} catch (e) {
		}
	} 
	if (SUG_xmlHttp) {
		
		SUG_xmlHttp.open('GET', 'https://impact-group.de/includes/hall_SUG_search.php?search_string=' + wert.replace(/"/g, ""), true);
		SUG_xmlHttp.onreadystatechange = SUG_daten;
		SUG_xmlHttp.send(null);
	}
	SUG_selected_suggest = -1;
} 

var SUG_text = '';
var SUG_textteile = new Array();

// show suggestions
function SUG_daten() {
	var ausgabe = ''; 
	if (SUG_xmlHttp.readyState == 4) {
		SUG_text = SUG_xmlHttp.responseText;
		// sug_text.length is 1 by default (include_once --> config_values.php)
		if (SUG_text.length > 1) {
			SUG_textteile = SUG_text.split("&;"); 
			for (var SUG_teil=0; SUG_teil<SUG_textteile.length; SUG_teil++) {
				SUG_textteile_a = SUG_textteile[SUG_teil];
				SUG_textteile_a = SUG_textteile_a.replace(/\<\/font\>/g, "");
				SUG_textteile_a = SUG_textteile_a.replace(/\<font class="sug_highlight"\>/g, "");
				ausgabe += '<a href="/de/Suche?y=' + SUG_textteile_a + '"><div id="SUG_suggest_element_' + SUG_teil + '" class="SUG_suggest_element">';
				ausgabe += SUG_textteile[SUG_teil] + '</div></a>';
//				<a href="/de/' + SUG_textteile_a + '"> </a>
			} 
//			alert(ausgabe);
			document.getElementById('hall_suggestions').innerHTML = ausgabe;
		}
		if (ausgabe != "") {
			document.getElementById('hall_suggestions').style.display = "block";
		} else {
			document.getElementById('hall_suggestions').style.display = "none";
		}
	}
} 

function SUG_unshow () {
	document.getElementById('hall_suggestions').style.display='none';
}

// add the rest of the selected suggestion to the searchfield
function SUG_wert_mark(teil) {
	if (SUG_textteile[teil] != null && SUG_textteile[teil] != "") {
		var suchfeld = document.getElementById('search_input'); 
		var start = SUG_wert_global.length; 
		var laenge = SUG_textteile[teil].length; 

		SUG_textteile[teil] = SUG_textteile[teil].replace(/\<\/font\>/g, "");
		SUG_textteile[teil] = SUG_textteile[teil].replace(/\<font class="sug_highlight"\>/g, "");
		suchfeld.value = SUG_textteile[teil]; 

		if (suchfeld.createTextRange) { 
			var Auswahl = suchfeld.createTextRange();
			Auswahl.moveStart("character", start);
			Auswahl.moveEnd("character", laenge - start);
			Auswahl.select(); 
		} else if (suchfeld.setSelectionRange) {
			suchfeld.setSelectionRange(start, laenge);
		} 

		suchfeld.focus();
	}
} 


// onmouseout unselect suggestion
function hall_unselect_suggest() {
	document.getElementById('SUG_suggest_element_' + SUG_selected_suggest).className = 'SUG_suggest_element';
	SUG_selected_suggest = -1;
	document.getElementById('search_input').value = SUG_wert_global;
}



// use arrow keys, enter and mouse to navigate suggestions
function hall_select_suggest(keycode,suggestion_id) {
	// arrow key up
	if (keycode==38) {
		if (document.getElementById('SUG_suggest_element_' + (SUG_selected_suggest - 1))) {
			document.getElementById('SUG_suggest_element_' + SUG_selected_suggest).className = 'SUG_suggest_element';
			SUG_selected_suggest--;
			document.getElementById('SUG_suggest_element_' + SUG_selected_suggest).className = 'SUG_selected_suggest';
			SUG_wert_mark(SUG_selected_suggest);
		}
		// don't select any suggestion
		else if ((SUG_selected_suggest - 1) == -1) {
			document.getElementById('SUG_suggest_element_' + SUG_selected_suggest).className = 'SUG_suggest_element';
			SUG_selected_suggest--;
			document.getElementById('search_input').value = SUG_wert_global;
		}
	}
	// arrow key down
	if (keycode==40) {
		if (document.getElementById('SUG_suggest_element_' + (SUG_selected_suggest + 1))) {
			if (SUG_selected_suggest!=-1) 
				document.getElementById('SUG_suggest_element_' + SUG_selected_suggest).className = 'SUG_suggest_element';
			SUG_selected_suggest++;
			document.getElementById('SUG_suggest_element_' + SUG_selected_suggest).className = 'SUG_selected_suggest';
			SUG_wert_mark(SUG_selected_suggest);
		}
		else {
			document.getElementById('SUG_suggest_element_' + SUG_selected_suggest).className = "SUG_suggest_element";
			SUG_selected_suggest = 0;
			document.getElementById('SUG_suggest_element_' + SUG_selected_suggest).className = "SUG_selected_suggest";
			SUG_wert_mark(SUG_selected_suggest);
		}
	}
	// mouse select
	if (keycode==9999) {
		if (SUG_selected_suggest!=-1)
			document.getElementById('SUG_suggest_element_' + SUG_selected_suggest).className = "SUG_suggest_element";
		SUG_selected_suggest = suggestion_id;
		document.getElementById('SUG_suggest_element_' + SUG_selected_suggest).className = "SUG_selected_suggest";
		document.getElementById('search_input').focus();
//		SUG_wert_mark(SUG_selected_suggest);
	}
	// enter
	if (keycode==13) {
		if (SUG_selected_suggest!=-1)
			SUG_wert_mark(SUG_selected_suggest);
	}
}
