/* $Id: ajax.js 9 2008-05-16 13:21:21Z thomas $ */

function getXmlHttpRequestObject() {
	if (window.XMLHttpRequest) {
		return new XMLHttpRequest();
	} else if(window.ActiveXObject) {
		return new ActiveXObject("Microsoft.XMLHTTP");
	} else {
		//alert("Sie sollten Ihren Browser auf den neusten Stand bringen...");
	}
}

var groupid = 0;
var searchReq = getXmlHttpRequestObject();

function performsuggest(code, tgro) {
	if (code == 27 || code == 13) {
		// wenn ESC oder ENTER -> hide
		anyone_selected = false;
		select_next = false;
		barfoo = document.getElementsByName('sugglink[]');

		for (i = 0; i < barfoo.length-1; i++) {
			if (barfoo[i].className == 'suggest_link_over') {
					setSearch(barfoo[i].innerHTML, tgro);
			}
		}

		hide('search_suggest_' + tgro);

		return false;
	} else if (code == 40 || code == 38) {
		// wenn pfeil hoch oder runter
		
		themsg = 'Debugging';
		anyone_selected = false;
		select_next = false;
		barfoo = document.getElementsByName('sugglink[]');
		if (code == 40) {
			for (i = 0; i < barfoo.length-1; i++) {
				tmpi = i + 1;
				if (select_next == true) {
					barfoo[i].className = 'suggest_link_over';
					anyone_selected = true;
					select_next = false;
				} else {
					if (barfoo[i].className == 'suggest_link_over') {
						select_next = true;
						barfoo[i].className = 'suggest_link';
					} else {
						select_next = false;
					}
				}
				if (tmpi >= (barfoo.length-1)) {
					if (anyone_selected == false) {
						//barfoo[(i-1)].className = 'suggest_link';
						barfoo[0].className = 'suggest_link_over';
					}

				}
			}
		} else {
			//alert('der pfeil geht nich :P');
			for (i = barfoo.length-1; i > 0; i--) {
				tmpi = i - 1;
				if (select_next == true) {
					barfoo[i].className = 'suggest_link_over';
					anyone_selected = true;
					select_next = false;
				} else {
					if (barfoo[i].className == 'suggest_link_over') {
						select_next = true;
						barfoo[i].className = 'suggest_link';
					} else {
						select_next = false;
					}
				}
				if (tmpi <= 0) {
					if (anyone_selected == false) {
						//barfoo[(i-1)].className = 'suggest_link';
						barfoo[0].className = 'suggest_link_over';
					}

				}
			}
			
		}

	} else {
		if (document.getElementById('txtSearch_' + tgro).value == '') {
			hide('search_suggest_' + tgro);
		} else {
			if (performsuggest.arguments[2] == 'undefined') {
				searchSuggest(tgro);
			} else {
				searchSuggest(tgro, performsuggest.arguments[2]);
			}
		}
	}
}


function searchSuggest(tgroupid) {
	if (searchReq.readyState == 4 || searchReq.readyState == 0) {
		var str = escape(document.getElementById('txtSearch_' + tgroupid).value);
		if (performsuggest.arguments[1] == 'undefined') {
			searchReq.open("GET", 'api/eaapi.php?action=search&groupid=' + tgroupid + '&value=' + str, true);
		} else {
			switch (searchSuggest.arguments[1]) {
				case 1:{
					// City Districts
					searchReq.open("GET", 'api/eaapi.php?action=district&groupid=' + tgroupid + '&value=' + str, true);
					break;
				}
				case 2:{
					// Search Usernames ~~ PM System
					searchReq.open("GET", 'api/eaapi.php?action=uname&groupid=' + tgroupid + '&value=' + str, true);

					break;
				}
				default:{
					//alert('Es ist ein Fehler aufgetreten.\n' + searchSuggest.arguments[1] + '\n' + searchSuggest.arguments[1].value);
					break;
				}
			}
		}
		//alert('groupid gesetzt zu: ' + tgroupid);
		groupid = tgroupid;
		searchReq.onreadystatechange = handleSearchSuggest;
		searchReq.send(null);
	}
}

function handleSearchSuggest() {
	if (searchReq.readyState == 4) {
		//alert('im handle drin.. groupid: ' + groupid);
		var ss = document.getElementById('search_suggest_' + groupid)
		ss.style.display = 'block';
		ss.innerHTML = '';
		var str = searchReq.responseText.split("\n");
		for(i=0; i < str.length - 1; i++) {
			var suggest = '<div name="sugglink[]" onmouseover="javascript:suggestOver(this);" ';
			suggest += 'onmouseout="javascript:suggestOut(this);" ';
			suggest += 'onclick="javascript:setSearch(this.innerHTML, \'' + groupid + '\');" ';
			suggest += 'class="suggest_link">' + unescape(str[i]) + '</div>';
			ss.innerHTML += suggest;
		}
	}
}


function suggestOver(div_value) {
	div_value.className = 'suggest_link_over';
}
function suggestOut(div_value) {
	div_value.className = 'suggest_link';
}

function setSearch(value, groupid) {
	document.getElementById('txtSearch_' + groupid).value = value;
	document.getElementById('search_suggest_' + groupid).innerHTML = '';
	document.getElementById('search_suggest_' + groupid).style.display = 'none';
}


function showhide(div_value) {
	if (div_value.className == 'tt_hidden') {
		div_value.className = 'tt_show';
	} else {
		div_value.className = 'tt_hidden';
	}
}

function show(id) {
	div_val = document.getElementById(id);
	div_val.style.display = 'block';
}

function hide(id) {
	div_val = document.getElementById(id);
	div_val.style.display = 'none';
}





/* AJAX - ALTE Funktion */
/***********************************************
*** URL-Request - Funktionalität             ***
************************************************/
/*var reqSuccCallback;
var connTermCallback;
var connectionSuccess;
var httpRequest = new XMLHttpRequest();

function getURL(sUrl) {

sUrl = 'api/11api.php?aktion=' + sUrl;
//document.getElementById("ka_status-textbox").setAttribute("value", getOurString("url.connection.attempt"));
httpRequest.open("GET", sUrl, true);
httpRequest.setRequestHeader("User-Agent", 'Firefox/DE V1.0.0');
httpRequest.onerror=getURL_onError;
httpRequest.onreadystatechange=getURL_onReadyStateChange;
//document.getElementById("ka_status-textbox").setAttribute("value", getOurString("url.connection.established"));
httpRequest.send("");

}

function getURL_onReadyStateChange()
{
connectionSuccess = 0;
if (httpRequest.readyState == 2) {
//document.getElementById("ka_status-textbox").setAttribute("value", getOurString("url.connection.recieve"));
return;
}
if (httpRequest.readyState == 4) {
//document.getElementById("ka_status-textbox").setAttribute("value", getOurString("url.connection.complete"));
connectionSuccess = 1;
getURL_done();
}
}

function getURL_onError()
{
connectionSuccess = 0;
getURL_done();
}

function getURL_done() {

statusfield = document.getElementById("status");
//status = statusfield.getAttribute("value");
if (!connectionSuccess) {
//statusfield.setAttribute("value", status+getOurString("url.connection.clienterror"));
alert('client error');
return;
}

if (httpRequest.status != 200) {
//statusfield.setAttribute("value", status+getOurString("url.connection.servererror")+String(httpRequest.status)+")");
alert('server error');
return;
}

if (httpRequest.responseText == "") {
//statusfield.setAttribute("value", status+getOurString("response.nodata"));
alert('keine daten empfangen');
return;
}
lines = httpRequest.responseText.split("\n");
n = lines.length;
switch (lines[0]) {
default:{
statusfield.value = lines[0];
break;
}
}
return;
}*/