﻿var SearchBox_WindowWidth 	= 0;
var SearchBox_WindowHeight 	= 0;
var SearchBox_curIndex		= -1;		
var SearchBox_curURL		= "";

function closeStuff()
{
	hideSearchResults(true);
}

function getXmlHttpRequestObject()
 {
	if (window.XMLHttpRequest) 
	{
		return new XMLHttpRequest(); //Not IE
	} 
	else if(window.ActiveXObject) 
	{

		return new ActiveXObject("Microsoft.XMLHTTP"); //IE
	}
	else 
	{
		//Display your error message here. 
		//and inform the user they might want to upgrade
		//their browser.
		alert("Your browser doesn't support the XmlHttpRequest object.  Better upgrade to Firefox.");
	}
}	
		
var receiveSer = getXmlHttpRequestObject();		
function getSearchResults(searchKey) 
{
	searchKey = trim(searchKey);

//	if (!alphaNumericCheck(searchKey)) 
	if (searchKey == '') 
	{
		hideSearchResults(true);
	}
	else
	{
		hideSearchResults(false);
		if (receiveSer.readyState == 4 || receiveSer.readyState == 0) 
		{
			var Str = 'http://www.alessandroguido.it/Widgets/SearchResult.asp?SearchKey=' + searchKey + '&Command=Lista'
			receiveSer.open("GET", Str, true);
			receiveSer.onreadystatechange = handleGetSearchResults; 
			receiveSer.send(null);
		}	
	}
	
	
}

function handleGetSearchResults() 
{

	var widget = document.getElementById('SearchResultsDIV');

	if (receiveSer.readyState == 4) 
	{
		widget.innerHTML = receiveSer.responseText;
	}
	
	if(receiveSer.responseText == "")
	{
		hideSearchResults(true);
	}
	else
	{
		hideSearchResults(false);
	}

}

function hideSearchResults(param) 
{

	var widget = document.getElementById('SearchResultsDIV');
	var box = document.getElementById('SearchBox');
	
	if(param == true)
	{
		widget.style.display = 'none';
	}
	else
	{
		getWindowSize();
		widget.style.display = 'inline';
		widget.style.top = box.offsetTop + box.offsetHeight;
		if(box.offsetLeft < SearchBox_WindowWidth * 0.5)
		{
			widget.style.left = box.offsetLeft;
		}
		else
		{
			widget.style.left = box.offsetLeft + box.offsetWidth - widget.offsetWidth;
		}
	}

}

function trim(stringa)
{
    while (stringa.substring(0,1) == ' ')
    {
        stringa = stringa.substring(1, stringa.length);
    }
    while (stringa.substring(stringa.length-1, stringa.length) == ' ')
    {
        stringa = stringa.substring(0,stringa.length-1);
    }
    return stringa;
}

function getWindowSize() 
{
  if( typeof( window.innerWidth ) == 'number' ) 
  {
    //Non-IE
    SearchBox_WindowWidth = window.innerWidth;
    SearchBox_WindowHeight = window.innerHeight;
  } 
   else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) 
   {
    //IE 6+ in 'standards compliant mode'
    SearchBox_WindowWidth = document.documentElement.clientWidth;
    SearchBox_WindowHeight = document.documentElement.clientHeight;
  } 
   else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) 
   {
    //IE 4 compatible
    SearchBox_WindowWidth = document.body.clientWidth;
    SearchBox_WindowHeight = document.body.clientHeight;
  }
}

function selectItem(e)
{
	var keynum;
	var keychar;
	var numcheck;
	
	if(window.event) // IE
	{
		keynum = e.keyCode;
	}
	else if(e.which) // Netscape/Firefox/Opera
	{
		keynum = e.which;
	}
	
	if(keynum == 38 || keynum == 100) // up arrow
	{
		document.getElementById('FI' + SearchBox_curIndex).style.background = "White";
		SearchBox_curIndex--;
		var item = document.getElementById('FI' + SearchBox_curIndex);
		if(null == item)
		{
			SearchBox_curURL = "";
			if(SearchBox_curIndex < -1)
			{
				SearchBox_curIndex = -1;
			}
		}
		else
		{
			SearchBox_curURL = document.getElementById('FI' + SearchBox_curIndex).getAttribute("URL");
			item.style.background = "PaleGreen";
		}
	}
	else if(keynum == 40 || keynum == 102) // down arrow
	{
		if(SearchBox_curIndex >= 0)
		{
			document.getElementById('FI' + SearchBox_curIndex).style.background = "White";
		}

		SearchBox_curIndex++;
		var item = document.getElementById('FI' + SearchBox_curIndex);
		if(null == item)
		{
			SearchBox_curIndex--;
			document.getElementById('FI' + SearchBox_curIndex).style.background = "PaleGreen";
		}
		else
		{
			SearchBox_curURL = document.getElementById('FI' + SearchBox_curIndex).getAttribute("URL");
			item.style.background = "PaleGreen";
		}
 	}
	else if(keynum == 13 && SearchBox_curURL != "") // Enter
	{
		window.location.href = SearchBox_curURL;
 	}


}

function manageKeyUp(e,searchKey)
 {
	var keynum;
	var keychar;
	var numcheck;
	
	if(window.event) // IE
	{
		keynum = e.keyCode;
	}
	else if(e.which) // Netscape/Firefox/Opera
	{
		keynum = e.which;
	}
	
	
	if(keynum == 27)
	{
		hideSearchResults(true);
	}

	else if(keynum != 38 && keynum != 100 && keynum != 40 && keynum != 102 &&
		keynum != 37 && keynum != 100  && keynum != 39 && keynum != 102 )
	{
		getSearchResults(searchKey);
	}
}	

function alphaNumericCheck(value)
{
	var bRetVal;
	var regex=/^[0-9a-zA-Zs]+$/; 
	if(regex.test(value))
	{
		bRetVal = true;
	} 
	else 
	{
		bRetVal = false;
	} 

	return bRetVal;
}

function manageFocus(id, value)
{
	if(value == "Ricerca")
	{
		document.getElementById(id).value = "";
	} 
}
