var cleanupTimeout = 5000;
var doPauseCleanup = 0;

function syncCleanup() {
	if(cleanupTimeout < (microtime()+2501) && doPauseCleanup == 0) {
		$('searchcompletion').style.display = 'none';
		$('searchcompletion').innerHTML = '';
	}
}

function searchPick(text) {
	$('pbjs_searchquery').value = text;
}

function pauseCleanup() {
	doPauseCleanup = 1;
	cleanupTimeout = microtime();
}

function resumeCleanup() {
	doPauseCleanup = 0;
	cleanupTimeout = microtime();
	window.setTimeout('syncCleanup()', 2500);		
}

function syncSearch() {
	try {
		var searchBox = $('pbjs_searchquery');
		var searchCompletion = $('searchcompletion');

		var searchQuery = searchBox.value;

		var tmpHTML = '';

		doSyncCleanup = 0;
		
		var jsonRequest = new Request.JSON({url: "http://www.azphpguru.com/index.php", onComplete: function(responseJSON, responseText){
			response = JSON.decode(responseText);
			searchCompletion.innerHTML = '<ul id="searchquery_recommended">';
			for(var i=0;i<response.recommended.length;i++) {
				tmpHTML += '<li onmouseover="pauseCleanup()" onmouseout="resumeCleanup()" onclick="searchPick(\''+response.recommended[i].text+'\');">'+response.recommended[i].text+'</li>';
			}
			searchCompletion.style.display = '';
			searchCompletion.style.top = (searchBox.offsetTop + 20)+'px';
			searchCompletion.style.left = (searchBox.offsetLeft)+'px';
			searchCompletion.innerHTML += tmpHTML + '</ul>';
			cleanupTimeout = microtime()+2500;
			window.setTimeout('syncCleanup()', 2500);
		}}).get({'action': 'searchrecommend', 'query': searchQuery});
	} catch(e) {
		alert(e);
	}
}

function microtime(get_as_float) {
    // http://kevin.vanzonneveld.net
    // +   original by: Paulo Ricardo F. Santos
    // *     example 1: timeStamp = microtime(true);
    // *     results 1: timeStamp > 1000000000 && timeStamp < 2000000000
 
    var now = new Date().getTime() / 1000;
    var s = parseInt(now);
 
    return (get_as_float) ? now : (Math.round((now - s) * 1000) / 1000) + ' ' + s;
}
