

//	RICERCA CON AUTOCOMPLECTION x www.angololibero.it
//      LIB: scriptaculous, prototype
//	VER: 1.0
//	AUTORE: 2 x Gerardo Lombardo
//

function onUserChoice() {
  
 var formInput = document.getElementById('q').value;
 var field = document.getElementById('q');
 var maschera=document.getElementById('SearchResult');

if ( formInput != lastSearchFieldValue ) {

	if (lastSearchFieldValue.length > 0) formInput = formInput.replace((lastSearchFieldValue), "");

	while (formInput.charAt(0) == " ") formInput = formInput.replace(" ", "");
 
	lastSearchFieldValue = document.getElementById('q').value;

} else {
	var typedKeywordsTemp = formInput.split(" ");
	var i = 0;
	for (var n=0;n<typedKeywordsTemp.length-1;n++) {
		if ( keywords.indexOf(typedKeywordsTemp[n]) >= 0 ) {
			typedKeywords[i] = keywords.indexOf(typedKeywordsTemp[n]);
			i++;
		}
	}
	formInput=typedKeywordsTemp[typedKeywordsTemp.length-1];
}

 
 var softwareIndex = softwares.indexOf(formInput);
 var keywordsIndex = keywords.indexOf(formInput);
 
 if (softwareIndex >= 0) // one of most rated software selected...
 {   
  lastSearchFieldValue = "";
  typedKeywords = new Array();
  document.getElementById('q').value = "";

  document.location.href="http://www.angololibero.it/"+softwaresLinks[softwareIndex];

 } else if (keywordsIndex >= 0 ) { // tag keyword selected...
 
  typedKeywords[(typedKeywords.length)] = keywordsIndex;
  
  var matchingKeywords = 0;
  var objUl;
  var objLi;
  var objA;
  
  objUl = document.createElement("ul");
  objUl.className = 'SearchField';
  
  for (var i=0; i<tagsPairs.length; i+=1)
  { 
    for (var j=0; j<typedKeywords.length; j+=1)
    { 
       if (tagsPairs[i].indexOf(typedKeywords[j]) >= 0)
       {
          matchingKeywords+=1;
       
          if (matchingKeywords==typedKeywords.length)
          {
		objLi = document.createElement("li");
		objLi.className = 'SearchField';

		objA = document.createElement("a");
		objA.className = 'SearchField';
		objA.href=softwaresLinks[i];
		objA.target = '_self';
		objA.innerHTML = softwares[i];

		objLi.appendChild(objA);
		objUl.appendChild(objLi);		

		break;
          }
       }
       else break;
    }
    matchingKeywords = 0;
  }
	maschera.innerHTML='';
	maschera.appendChild(objUl);
	Position.clone(field, maschera, { setHeight: false, offsetTop: field.offsetHeight});
	Event.observe(document.getElementById('q'), 'keydown', hideResults);
	Event.observe(maschera, 'click', hideResults);
	Event.observe(document.body, 'click', hideResults);
	Effect.Appear(maschera,{duration:0.15});
	typedKeywords = new Array();

 } else {  // reset auto-completion and form...
	resetResults();
	document.getElementById('q').value = "";
 } 

}

function resetResults() {
	lastSearchFieldValue = "";
	typedKeywords = new Array();
	
}

function hideResults() {
	
	var maschera=document.getElementById('SearchResult');
	if ( maschera.style.display!='none' ) {
		Effect.Fade(maschera,{duration:0.15});
		Event.observe(document.body, 'click', function(){});
	}

}

function initSearchDiv() {

//	var objBody = document.body;
	var objBody = document.getElementById('form_search');
	if ( !objBody ) return;


	var objContenitore = document.createElement("div");
		objContenitore.setAttribute('id','contenitoreSearchResult');
		objContenitore.style.position='absolute';
		objContenitore.style.left='0px';
		objContenitore.style.top='0px';
		objContenitore.style.width='1px';
		objContenitore.style.height='1px';
	
	var objDiv = document.createElement("div");
	objDiv.setAttribute('id','SearchFieldContainer');
	objDiv.className='SearchFieldStyle';
	objDiv.style.display ='none';

	var objDiv2 = document.createElement("div");
	objDiv2.setAttribute('id','SearchResult');
	objDiv2.className='SearchFieldStyle';
	objDiv2.style.overflow='auto';
	objDiv2.style.height="200px";
	objDiv2.style.display ='none';

	objContenitore.appendChild(objDiv);
	objContenitore.appendChild(objDiv2);

	objBody.appendChild(objContenitore);

	myAutoCompleter = new Autocompleter.Local( 'q', 'SearchFieldContainer', allList, {tokens: [' '], partialSearch:true,fullSearch:true, ignoreCase:true, partialChars:1, choices:25, minChars:1, afterUpdateElement:onUserChoice} );

	initFormSearch();

}

var allList = softwares.concat(keywords);
var lastSearchFieldValue = "";
var typedKeywords = new Array();
var myAutoCompleter=null;

// addLoadEvent(initSearch);



