/* This script and many more are available free online at
The JavaScript Source!! http://javascript.internet.com
Created by: Steve Chipman | http://slayerofficeLicensed under: Creative Commons License
 */

var links = new Array();
var categories = new Array();
var searchFilter = "Any";

function init() {
  initLinks();
  buildCategoryArray();
  selectHeight = categories.length + 1;
  links.sort();
  drawSelect();
  buildCategoryList();
}

function initLinks() {
  // name, links, category
  links[0] = new Array("La delaminazione dei circuiti stampati","http://www.primelettronica.com/doc_tecnica/delaminazione.html","Assemblaggio Pcb");
  links[1] = new Array("Ottimizzare il layout di un circuito stampato","http://www.primelettronica.com/doc_tecnica/ottimizzazione_c_s.html","Assemblaggio Pcb");
  links[2] = new Array("Assemblaggi con normativa RoHS","http://www.primelettronica.com/doc_tecnica/rohs.html","Normative");
  links[3] = new Array("Accorgimenti per migliorare le consegne","http://www.primelettronica.com/doc_tecnica/consegne.html","Normative");
  links[4] = new Array("La saldatura con saldatrice selettiva","http://www.primelettronica.com/doc_tecnica/selettiva.html","Assemblaggio Pcb");
  links[5] = new Array("File Cad supportati dal nostro sistema di Test Ict","http://www.primelettronica.com/doc_tecnica/cad_pilot.html","Collaudi - Test elettrici");
   links[6] = new Array("Ottimizzare la Documentazione Tecnica","http://www.primelettronica.com/doc_tecnica/documentazione.html","Normative");
} 

function drawSelect() {
  mHTML = "<select name=\"lists\" class=\"sel\" size=" + selectHeight + ">";
  for(i=0;i<links.length;i++) {
    if(searchFilter == "Any") {
      mHTML+="<option title=\"test\" value=\"" + links[i][1] + "\">" + links[i][0] + "</option>";
    } else {
      if(links[i][2] == searchFilter)mHTML+="<option value=\"" + links[i][1] + "\">" + links[i][0] + "</option>";
    }
  }
  mHTML+="</select>";
  document.getElementById("mContainer").innerHTML = mHTML;
}

function narrowList(searchString) {
  resultsFound = 0;
  searchString = searchString.toLowerCase();
  mHTML = "<select size=" + selectHeight + " class=\"sel\" name=\"lists\">";
  found=false;
  partialStringMatching = document.forms[0].psm.checked;
  for(i=0;i<links.length;i++) {
    zLink = links[i][0].toLowerCase();
    if((partialStringMatching && zLink.indexOf(searchString)>-1) || (zLink.indexOf(searchString) == 0 && (links[i][2] == searchFilter || searchFilter == "Any"))) {
      found=true;
      resultsFound++;
      mHTML+="<option value=\"" + links[i][1] + "\">" + links[i][0] + "</option>";
    }
  }
  mHTML+="</select>";
  if(found)document.getElementById("mContainer").innerHTML = mHTML
  showResults(resultsFound,searchString);
}

function showResults(zResultsFound,zSearchString) {
  zHTML = "";
  zHTML += "<b>" + zResultsFound + "</b> results found";
  if(zSearchString != "") zHTML += " for search term <b>" + zSearchString + "</b>";
  zHTML += " in category <b>" + searchFilter + "</b>";
  if(zResultsFound==0) zHTML+=" so listing what was found.";
  document.getElementById("mResults").innerHTML = zHTML;
}

function buildCategoryArray() {
  for(i=0;i<links.length;i++)if(!existsInArray(categories,links[i][2])) categories[categories.length] = links[i][2];
  categories.sort();
}

function buildCategoryList() {
  zHTML = "<select size=" + selectHeight + " name=\"cats\" class=\"sel\" onClick=\"handleCategoryClick(this.value);\">";
  zHTML += "<option value=\"Any\">Any</option>";
  for(i=0;i<categories.length;i++)  zHTML+="<option value=\"" +categories[i] + "\">" + categories[i] + "</option>";
  zHTML+= "</select>";
  document.getElementById("nContainer").innerHTML = zHTML;
}

function existsInArray(arrayToCheck,valueToCheck) {
  for(z=0;z<arrayToCheck.length;z++)if(arrayToCheck[z] == valueToCheck) { return true; break; }
  return false;
}

function handleCategoryClick(sValue) {
  searchFilter = sValue;
  drawSelect();
  narrowList(document.forms[0].searchText.value);
}

function handleClear() {
  document.forms[0].searchText.value="";
  narrowList("");
}

function handleGoClick() {
  if(document.forms[0].lists.value)location.href = document.forms[0].lists.value;
}

// Multiple onload function created by: Simon Willison
function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      }
      func();
    }
  }
}

addLoadEvent(function() {
  init();
});
