var xmlhttp = AJAX(); 
var currentNode = null;	
var currentIndicator = null;	

window.onload = function () {
	focusSearchInput();
	//addSimpleSearchBehavior();
	//addResultListBehavior();
}

function focusSearchInput() {
	var searchInput = document.getElementById('simple_search_input');
	
	if (!searchInput) { return; }
	
	searchInput.focus();
}

function addSimpleSearchBehavior() {
	var searchInput = document.getElementById('simple_search_input');
	
	if (!searchInput) { return; }
	
	try {
		document.addEventListener('keyup', setSearchTrigger, false)
	}
	catch (exception) {
		document.onkeyup = setSearchTrigger;
	}
}

function setSearchTrigger (e) {
	setTimeout('updateSearchResults()', 100);
}

function updateSearchResults () {
	var searchInput = document.getElementById('simple_search_input');
	
	if( xmlhttp ) { 
		xmlhttp.open('get', 'simple_search.php?simple_query=' + escape(searchInput.value));
		xmlhttp.onreadystatechange = displaySimpleSearch; 
		xmlhttp.send(null);
	}
}

function displaySimpleSearch() {
	if(xmlhttp.readyState == 4) {
		resultListDiv = document.getElementById('result_list_entries');
		if (resultListDiv) {
			resultListDiv.innerHTML = xmlhttp.responseText;
		} else {
			alert('No result list div found.');
			return false;
		}
	}
}

function addResultListBehavior() {
	var resultList = document.getElementById('result_list_entries');
	
	if (!resultList) { return; }
	
	resultEntries = resultList.getElementsByTagName('div');
	
	for (var i = 0; i < resultEntries.length; i++) {
		try {
			resultEntries[i].addEventListener('mouseover', resultListOver, false)
			resultEntries[i].addEventListener('mouseout', resultListOut, false)
			resultEntries[i].addEventListener('click', resultListClick, false)
		}
		catch (exception) {
			resultEntries[i].onmouseover = resultListOver;
			resultEntries[i].onmouseout = resultListOut;
			resultEntries[i].onclick = resultListClick;
		}
		
		resultLink = resultEntries[i].getElementsByTagName('a');
		
		if (resultLink[0]) {
			resultLink[0].href = '#';
		}
	}
	
}

function resultListOver(that){
	var objNode = (typeof(this.nodeName)=='undefined') ? that : this ;
	// replace hover by link
	if (!/current/.test(objNode.className)) {
		objNode.className = "result_list_entry_hilite";
	}
}

function resultListOut(that){
	var objNode = (typeof(this.nodeName)=='undefined') ? that : this ;
	// replace hover by link
	if (!/current/.test(objNode.className)) {
		objNode.className = "result_list_entry";
	}
}

function resultListClick(that){
	var objNode = (typeof(this.nodeName)=='undefined') ? that : this ;
	
	var resultList = document.getElementById('result_list_entries');
	
	if (!resultList) { return; }
	
	resultEntries = resultList.getElementsByTagName('div');
	
	for (var i = 0; i < resultEntries.length; i++) {
		resultEntries[i].className = "result_list_entry";
	}
	
	if (!/current/.test(objNode.className)) {
		objNode.className = "result_list_entry_current";
		
		if( xmlhttp ) { 
			xmlhttp.open('get', 'entry_detail.php?uid=' + objNode.id);
			xmlhttp.onreadystatechange = displayEntryDetail; 
			xmlhttp.send(null);
		} else {
			// Let the click fall through to the browser.
		}
		
	}
	
	return false;
}

function displayEntryDetail() {
	var entryDetailDiv;
	
	if(xmlhttp.readyState == 4) {
		entryDetailDiv = document.getElementById('entry_detail_block');
		if (entryDetailDiv) {
			entryDetailDiv.innerHTML = xmlhttp.responseText;
		} else {
			alert('No entry detail div found.');
			return false;
		}
	}
}

// XMLHttpRequest function to initiate request object 
function AJAX() { 
var xmlhttp=false;
/*@cc_on @*/
/*@if (@_jscript_version >= 5)
// JScript gives us Conditional compilation, we can cope with old IE versions.
// and security blocked creation of the objects.
 try {
  xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
 } catch (e) {
  try {
   xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  } catch (E) {
   xmlhttp = false;
  }
 }
@end @*/
if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  xmlhttp = new XMLHttpRequest();
}
return xmlhttp;
} 

function insert_toggle(which) {
	if(xmlhttp) {
		document.writeln('<img src="' + off_url + '" onclick=\'toggle(this, "' + which + '")\'>');
	}
}

function toggle(indicator, which) {
	if( !xmlhttp ) { 
		return false;
	}
	
	currentIndicator = indicator;
	currentNode = document.getElementById(which);
	
	if (currentNode && currentIndicator) {
		if (/off.gif/.test(currentIndicator.src)) {
			xmlhttp.open('get', 'entry_detail.php?uid=' + which);
			xmlhttp.onreadystatechange = displayEntryDetail; 
			xmlhttp.send(null);
		} else {
			currentIndicator.src = off_url;
			currentNode.className = 'off';
			currentNode.innerHTML = '';
		}
	} else {
		alert("Couldn't get " + which);
	}
}

function displayEntryDetailOLD() {
	if(xmlhttp.readyState == 4) {
		if (currentNode && currentIndicator) {
			currentIndicator.src = on_url;
			currentNode.className = 'on';
			currentNode.innerHTML = xmlhttp.responseText;
		} else {
			alert('No current node');
			return false;
		}
	}
}

