// Author: Bill Borton 2009

var searchResultsTable  = false;                   // A global var to contain search results
var searchUrl           = "/cgi-bin/pnsearch.cgi"; // The server-side script
var xmlHttpReq          = false;                   // The request object
var searchResponse      = false;                   // The response from the server

if (window.XMLHttpRequest)      // Mozilla and Safari
{  xmlHttpReq = new XMLHttpRequest();
}
else if (window.ActiveXObject)  // IE
{  xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
}// end if-elsif

function pnSearch()
{  var request = 'pn=' + document.getElementById('pn').value;

   xmlHttpReq.open("POST", searchUrl, true);
   xmlHttpReq.onreadystatechange = handleSearchResponse;
   xmlHttpReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
   xmlHttpReq.send(request);

}// end function pnSearch


function handleSearchResponse()
{  if (xmlHttpReq.readyState == 4)
   {  var jsonTxt = xmlHttpReq.responseText

      try
      {  searchResponse = JSON.parse(jsonTxt);
      }
      catch(er)
      {  alert('An error occured while searching the database.  Please notify webmaster@conwin.com.');
      }// end try-catch

      searchResultsTable =  "<h1>Search Results</h1>";
      searchResultsTable += "<p>" + searchResponse.matches + " part number matches found:</p>";
      
      if (searchResponse.matches < 51)
      {  searchResultsTable += "<table class=\"overview\">";
         searchResultsTable += "<tr class=\"column-names\">";
         searchResultsTable += "<td>Part Number</td>";
         searchResultsTable += "<td>Model Family</td>";
         searchResultsTable += "<td>Product Type</td>";
         searchResultsTable += "<td>Package</td>";
         searchResultsTable += "<td>Frequency Stability</td>";
         searchResultsTable += "<td>Frequency Tolerance</td>";
         searchResultsTable += "<td>Supply Voltage</td>";
         searchResultsTable += "<td>Logic Family</td>";
         searchResultsTable += "<td>Frequency Range</td>";
         searchResultsTable += "<td>Temperature Range</td>";
         searchResultsTable += "</tr>";
         for (var x = 0; x < searchResponse.results.length; x++)
         {  var DKString      = "";
            var RoHSString    = "";
            var IntViewString = "";
            if(searchResponse.results[x].DigiKey == "Y")
            {   DKString = "<br><a href=\"" + searchResponse.results[x].DkLink + "\"><span class=\"red\">Buy Now</span></a>"
            }// end if
            if(searchResponse.results[x].RoHSCompl == "YES")
            {   RoHSString = "<br><a href=\"rohs.html\"><span class=\"green\">RoHS</span></a>"
            }
            else if(searchResponse.results[x].RoHSCompl == "5/6 Compliant")
            {   RoHSString = "<br><a href=\"rohs.html\"><span class=\"green\">RoHS 5/6</span></a>"
            }// end if
            if(searchResponse.results[x].Restriction != "A")
            {   IntViewString = "<br><span class=\"red\">INTERNAL VIEW ONLY!</span></a>"
            }// end if

            searchResultsTable += "<tr>";
            searchResultsTable += ("<td><a href=\"" + searchResponse.results[x].Link + "\">" + searchResponse.results[x].ModelNum + "</a>" + RoHSString + DKString + IntViewString + "</td>");
            searchResultsTable += ("<td>" + searchResponse.results[x].ModelFam       + "</td>");
            searchResultsTable += ("<td>" + searchResponse.results[x].ProdType       + "</td>");
            searchResultsTable += ("<td>" + searchResponse.results[x].Pkg            + "</td>");
            searchResultsTable += ("<td>" + searchResponse.results[x].FreqStability  + "</td>");
            searchResultsTable += ("<td>" + searchResponse.results[x].FreqTol        + "</td>");
            searchResultsTable += ("<td>" + searchResponse.results[x].SupplyVolt     + "</td>");
            searchResultsTable += ("<td>" + searchResponse.results[x].LogicFam       + "</td>");
            searchResultsTable += ("<td>" + searchResponse.results[x].FreqRange      + "</td>");
            searchResultsTable += ("<td>" + searchResponse.results[x].TempRange      + "</td>");
            searchResultsTable += "</tr>";
         }// end for
         searchResultsTable += "</table>";
      }
      else
      {  searchResultsTable += "<p><span class=\"red\">" + searchResponse.error + "</span></p>";
      }// end if-else

      // replace the contents of the main text area with the search results
      document.getElementById('right-column').innerHTML = searchResultsTable;
   
   }// end if

}// end function handleSearchResponse
