
function makeAjaxRequest(url, callbackFunction, returnXml) {
	var httpRequest = false;
	if (window.XMLHttpRequest) { // Mozilla, Safari,...
		httpRequest = new XMLHttpRequest();
		if (httpRequest.overrideMimeType) {
			httpRequest.overrideMimeType("text/xml");
		}
	} else {
		if (window.ActiveXObject) { // IE
			try {
				httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
			}
			catch (e) {
				try {
					httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
				}
				catch (e) {
				}
			}
		}
	}
	if (!httpRequest) {
		alert("Unfortunatelly you browser doesn't support this feature.");
		return false;
	}
	httpRequest.onreadystatechange = function () {
		if (httpRequest.readyState == 4) {
			if (httpRequest.status == 200) {
				if (returnXml) {
					eval(callbackFunction + "(httpRequest.responseXML)");
				} else {
					eval(callbackFunction + "(httpRequest.responseText)");
				}
			} else {
				alert("There was a problem with the request.(Code: " + httpRequest.status + ")");
			}
		}
	};
	httpRequest.open("GET", url, true);
	httpRequest.send(null);
}

function callBackAutocompletePlayer(response) {
	var autocompleteDiv = document.getElementById("autocompleteDiv");
	
	var loggerDiv = document.getElementById("loggerDiv");

	if(response == "")
	{	
		new Effect.Fade(autocompleteDiv, {queue: {position:'front', scope: 'autocompleteDiv'}, afterFinish: autocompletePlayerAfterFinish});
	}
	else
	{
		a1 = autocompleteDiv.innerHTML.replace(new RegExp("\"","g"), "_");
		a2 = response.replace(new RegExp("\"","g"), "_");
		
		endId1 = a1.indexOf("</div>");
		endId2 = a2.indexOf("</div>");
	
		if((a1.substr(0,endId1) != a2.substr(0,endId2)) || autocompleteDiv.style.display == "none")
		{
			autocompleteDiv.innerHTML = response;		

			if(autocompleteDiv.style.display == "none")
			{			
				//alert(Effect.Queues.get('global'));
				new Effect.Appear('autocompleteDiv', {queue: {position:'end', scope: 'autocompleteDiv'}, beforeStart: autocompletePlayerBeforeStart});
			}
		}
	}
}

function autocompletePlayer(playerPrefix, localeCode)
{
	if(playerPrefix.length > 0)
	{
		makeAjaxRequest("http://www.frisbee-freestyle.com/actions/searchPlayerAjax.php?playerPrefix=" + playerPrefix + "&#38;localeCode=" +  localeCode, "callBackAutocompletePlayer", false);
	}
	else
	{
		//alert(Effect.Queues.get('global'));
		new Effect.Fade('autocompleteDiv', {queue: {position:'front', scope: 'autocompleteDiv'}, afterFinish: autocompletePlayerAfterFinish});
	}
}


function autocompletePlayerAfterFinish()
{
	var	playerPrefix = document.getElementById('searchPlayerName').value;
	var	localeCode = "IT";

	if(playerPrefix.length > 0)
	{
		makeAjaxRequest("http://www.frisbee-freestyle.com/actions/searchPlayerAjax.php?playerPrefix=" + playerPrefix + "&#38;localeCode=" +  localeCode, "callBackAutocompletePlayer", false);
	}	
}

function autocompletePlayerBeforeStart()
{
	var queue = Effect.Queues.get('autocompleteDiv');
	queue.each(function(e) { e.cancel(); });
}
