var autoComp;

function handleEnter (field, event) {
var keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode;
if (keyCode == 13) 
	{
	var i;
	for (i = 0; i < field.form.elements.length; i++)
		if (field == field.form.elements[i]) break;
	i = (i + 1) % field.form.elements.length;
	field.form.elements[i].focus();
	return false;
	} 
	else
	return true;
} 


function AutoComplete(oText, oDiv, nMaxSize)
{
	// initialize member variables
	this.oText = oText;
	this.oDiv = oDiv;
	this.nMaxSize = nMaxSize;
	this.suggest = false;
	
	// attach handlers to the text-box
	oText.AutoComplete = this;
	oText.onkeyup = AutoComplete.prototype.onTextChange;
	oText.onblur = AutoComplete.prototype.onTextBlur;
}

AutoComplete.prototype.onTextBlur = function()
{
	this.AutoComplete.onblur();
}

AutoComplete.prototype.onblur = function()
{
	this.oDiv.style.visibility = "hidden";
}

AutoComplete.prototype.onTextChange = function()
{
	this.AutoComplete.onchange();
}

AutoComplete.prototype.onDivMouseDown = function()
{
	var txt = this.innerHTML;
	this.AutoComplete.oText.value = txt;
	document.getElementById( "submit" ).style.display = "block";
	
	while ( autoComp.oDiv.hasChildNodes() )
			autoComp.oDiv.removeChild(autoComp.oDiv.firstChild);
}

AutoComplete.prototype.onDivMouseOver = function()
{
	this.className = "AutoCompleteHighlight";
}

AutoComplete.prototype.onDivMouseOut = function()
{
	this.className = "AutoCompleteBackground";
}

function outMouse()
{
	this.className = "AutoCompleteBackground";
}

function overMouse()
{
	this.className = "AutoCompleteHighlight";
}

function downMouse()
{
	var txt = this.innerHTML;
	this.AutoComplete.oText.value = txt;
	document.getElementById( "submit" ).style.display = "block";
}

AutoComplete.prototype.onchange = function()
{
	getDIV();
}

function SetDefaults()
{
	document.getElementById( "submit" ).style.display = "none";
	document.getElementById( "label" ).style.display = "none";
	// document.getElementById( "schooltxt" ).onkeypress = "return handleEnter(this, event)";
}

function showList()
{
	document.getElementById( "login-screenshot" ).style.display = "none";
	document.getElementById( "login-features" ).style.display = "none";
	
	$('lists').style.display = "block";

	new Effect.Highlight('lists', {startcolor: '#ffff99', restorecolor: 'true', duration: 1.0})


		
	document.getElementById( "ajaxcontentarea" ).innerHTML = "";
}

function setSchool(str)
{
	$('schooltxt').value = str;
	//document.getElementById( "lists" ).style.display = "none";
	//document.getElementById( "ajaxcontentarea" ).innerHTML = "";
	//$('schooltxt').style.border = "2px solid green";
	
	
	new Effect.Highlight('schooltxt', {startcolor: '#ffff99', restorecolor: 'true', duration: 1.0})
	
	
	//$( "login-screenshot" ).style.display = "block";
	//$( "login-features" ).style.display = "block";
	$( "submit" ).style.display = "block";
	document.login.action = 'index.php';
}

function createAutoComplete()
{
	autoComp = new AutoComplete(
		document.getElementById('schooltxt'), 
		document.getElementById('autoSchool'), 
		10
	);
}



function getHTTPObject() {

  var xmlhttp;

/*@cc_on

  @if (@_jscript_version >= 5)

  try {

    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");

  } catch (e) {

    try {

      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

    } catch (E) {

      xmlhttp = false;

    }

  }

  @else

    xmlhttp = false;

  @end @*/

  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {

    try {

      xmlhttp = new XMLHttpRequest();

    } catch (e) {

      xmlhttp = false;

    }

  }

  return xmlhttp;

}



var url = "auto.php?word=";

var isWorking = false;

var http = getHTTPObject();

function handleHttpResponse() {

  if (http.readyState == 4) {

    isWorking = false;

    if (http.responseText.indexOf('invalid') == -1) {

	var xmlDocument = http.responseXML;

    var nCount = xmlDocument.getElementsByTagName('count').item(0).firstChild.data;
	var txt = autoComp.oText.value;
	
	if (txt == "") nCount = 0;
	
	var label = document.getElementById( "label" );
	
	if ( (autoComp.nMaxSize == -1 ) || (nCount > 1) )
	{
		// clear the popup-div.
		while ( autoComp.oDiv.hasChildNodes() )
			autoComp.oDiv.removeChild(autoComp.oDiv.firstChild);
			
		// get all the matching strings from the AutoCompleteDB
		
		// add each string to the popup-div
		var i, n = nCount;
		if (n > autoComp.nMaxSize) n = autoComp.nMaxSize;
		
		for ( i = 0; i < n; i++ )
		{
			var oDiv = document.createElement('div');
			autoComp.oDiv.appendChild(oDiv);
			
			oDiv.innerHTML = xmlDocument.getElementsByTagName('school').item(i).firstChild.data;
			oDiv.onmousedown = AutoComplete.prototype.onDivMouseDown;
			oDiv.onmouseover = AutoComplete.prototype.onDivMouseOver;
			oDiv.onmouseout = AutoComplete.prototype.onDivMouseOut;
			oDiv.AutoComplete = autoComp;			
		}
		
		if (nCount > autoComp.nMaxSize)
		{
			var oDiv = document.createElement('div');
			autoComp.oDiv.appendChild(oDiv);
			oDiv.innerHTML = "...";
			oDiv.AutoComplete = autoComp;			
		}
		
		if ( nCount == 1 ) 
			{
			document.getElementById( "submit" ).style.display = "block";
			// document.getElementById( "schooltxt" ).onkeypress = "";
			document.login.action = 'index.php';
			}
		else 
			{
			document.getElementById( "submit" ).style.display = "none";
			// document.getElementById( "schooltxt" ).onkeypress = "return handleEnter(this, event)";
			document.login.action = '';
			}
			
		label.style.display = "none";
		autoComp.oDiv.style.visibility = "visible";
		autoComp.suggest = false;
	}
	else if ( (nCount == 0) && (txt != "") )
	{
		//this.oText.value = txt.substring(0,txt.length - 1);
		label.style.display = "block";
		autoComp.oDiv.innerHTML = "";
		autoComp.oDiv.style.visibility = "hidden";
		document.getElementById( "submit" ).style.display = "none";
		// document.getElementById( "schooltxt" ).onkeypress = "return handleEnter(this, event)";
		autoComp.suggest = false;
	}
	else if ( (nCount == 0) && (txt == "") )
	{
		//this.oText.value = txt.substring(0,txt.length - 1);
		label.style.display = "none";
		autoComp.oDiv.innerHTML = "";
		autoComp.oDiv.style.visibility = "hidden";
		document.getElementById( "submit" ).style.display = "none";
		// document.getElementById( "schooltxt" ).onkeypress = "return handleEnter(this, event)";
		autoComp.suggest = false;
	}
	else if (( nCount ==  1) && (! autoComp.suggest))
	{
		label.style.display = "none";
		autoComp.oText.value = xmlDocument.getElementsByTagName('school').item(0).firstChild.data;
		autoComp.oDiv.innerHTML = "";
		autoComp.oDiv.style.visibility = "hidden";
		autoComp.suggest = true;
		document.getElementById( "submit" ).style.display = "block";
		// document.getElementById( "schooltxt" ).onkeypress = "";
		document.login.action = 'index.php';
	}
	else if (( nCount ==  1) && (autoComp.suggest))
	{
		autoComp.oText.value = "";
		label.style.display = "none";
		autoComp.oDiv.innerHTML = "";
		autoComp.oDiv.style.visibility = "hidden";
		autoComp.suggest = false;
		// document.getElementById( "schooltxt" ).onkeypress = "return handleEnter(this, event)";
		document.getElementById( "submit" ).style.display = "none";
		document.login.action = '';
	}
	else  //hide the popup-div
	{
		this.oDiv.innerHTML = "";
		this.oDiv.style.visibility = "hidden";
	}
	
	isWorking = false;

    }

  }

}

function getDIV() {

  if (!isWorking) {

    var schoolValue = document.getElementById("schooltxt").value;
	http.open("GET", url + escape(schoolValue) + "&limit=" + escape(autoComp.nMaxSize), true);

	isWorking = true;

	http.onreadystatechange = handleHttpResponse;

	http.send(null);
  }

}

