var reTxt, loading, blank, loadP, blankP, bTag, lTag;
var theTxt = {
l : "Please wait......... Loading",
b : "",
e : "There was an error processing your request!"
}
function viewImg(url) {
var viewImg = window.open(url,"","menubar=no, height=430px, width=565px, resizable=no, toolbar=no, location=no, top=100px, left=100px");
}
function chkSum() {
var val1 = document.Catalog.machine.value;
var val2 = document.Catalog.section.value;
var val3 = document.Catalog.dSearch.value;
var answer = val3.search(/[^\w\s-]/g);
reTxt = document.getElementById("replaceTxt");
loadDiv = document.createElement("div");
blankDiv = document.createElement("div");
loading = document.createTextNode(theTxt.l);
blank = document.createTextNode(theTxt.b);
loadP = document.createElement("p");
blankP = document.createElement("p");
bTag = document.getElementById("blank");
lTag = document.getElementById("loading");
loadP.appendChild(loading);
blankP.appendChild(blank);
loadDiv.appendChild(loadP);
blankDiv.appendChild(blankP);
loadDiv.id = "replaceTxt";
blankDiv.id = "replaceTxt";
reTxt.parentNode.replaceChild(loadDiv, reTxt);
if (val1 == "" && val2 == "" && val3 == "") {
alert ("Sorry, you must make one selection to begin the search.\nPlease try again.");
document.getElementById("replaceTxt").replaceChild(blankP, document.getElementById("replaceTxt").firstChild);
setTimeout("document.Catalog.dSearch.focus();",1);
return;
} else if (val1 != "" && val2 != "") {
alert ("Sorry, you may only select one option to perform your search\nPlease try again.");
document.Catalog.reset();
document.getElementById("replaceTxt").replaceChild(blankP, document.getElementById("replaceTxt").firstChild);
setTimeout("document.Catalog.dSearch.focus();",1);
return;
} else if (val1 != "" && val3 != "") {
alert ("Sorry, you may only select one option to perform your search\nPlease try again.");
document.Catalog.reset();
document.getElementById("replaceTxt").replaceChild(blankP, document.getElementById("replaceTxt").firstChild);
setTimeout("document.Catalog.dSearch.focus();",1);
return;
} else if (val2 != "" && val3 != "") {
alert ("Sorry, you may only select one option to perform your search\nPlease try again.");
document.Catalog.reset();
document.getElementById("replaceTxt").replaceChild(blankP, document.getElementById("replaceTxt").firstChild);
setTimeout("document.Catalog.dSearch.focus();",1);
return;
} else {
if (val1 != "" && val2 == "" && val3 == "") {
searchtype = 1;
importXML();
}
else if (val2 != "" && val1 == "" && val3 == "") {
searchtype = 2;
importXML();
}
else if (val3 != "" && val1 == "" && val2 == "") {
if (answer != -1) {
alert ("You may only use letters and numbers for your search");
document.Catalog.reset();
document.getElementById("replaceTxt").replaceChild(blankP, document.getElementById("replaceTxt").firstChild);
setTimeout("document.Catalog.dSearch.focus();",1);
} else {
searchtype = 3;
importXML();
}
}
}
}
function importXML()
{
if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.open("GET","products.xml",false);
xmlhttp.send();
xmlDoc=xmlhttp.responseXML;
createTable();
}
function createTable() {
var machine = document.Catalog.machine.value;
var dSearch = document.Catalog.dSearch.value;
var section = document.Catalog.section.value;
reTxt = document.getElementById("replaceTxt");
loading = document.createTextNode(theTxt.l);
blank = document.createTextNode(theTxt.b);
gotErr = document.createTextNode(theTxt.e);
loadP.setAttribute("id","loading");
blankP.setAttribute("id", "blank");
errP = document.createElement("p");
bTag = document.getElementById("blank");
lTag = document.getElementById("loading");
loadP.appendChild(loading);
blankP.appendChild(blank);
errP.appendChild(gotErr);
reTxt.parentNode.replaceChild(loadDiv, reTxt);
var x = xmlDoc.getElementsByTagName("record");
var y = xmlDoc.getElementsByTagName("data");
var newEl = document.createElement("TABLE");
newEl.className = "resultsTab";
newEl.setAttribute("id", "blank");
var tmp = document.createElement("TBODY");
var row = document.createElement("TR");
var n = 1;
var headings = new Array("Machine Type", "Section", "Part No.", "Description", "Price");
var dcount = 0;
for (t=0;t<y[0].childNodes.length;t++) {
if (y[0].childNodes[t].tagName == "record") {
dcount++;
}
}
if (document.Catalog.thumbImg[0].checked) {
var container = document.createElement("TH");
var theData = document.createTextNode("Pic");
container.className = "topline1";
container.appendChild(theData);
row.appendChild(container);
}
for (h=0;h<headings.length;h++) {
var container = document.createElement("TH");
var theData = document.createTextNode(headings[h]);
container.className = 'topline' + n; // Set the class for header cells color
container.appendChild(theData);
row.appendChild(container);
n++;
}
tmp.appendChild(row); 
switch (searchtype) {
case 1:
var objRegex = new RegExp(machine);
break;
case 2:
var objRegex = new RegExp(section, "i");
break;
case 3:
var objRegex = new RegExp(dSearch, "i");
break;
default:
reTxt.replaceChild(errP, reTxt.firstChild);
}
var rowColor = 1;
var noResult = "false";
for (i=0;i<dcount;i++) {
var row = document.createElement("TR");
var searcharr = new Array();
for (j=0;j<x[i].childNodes.length;j++) {
if (x[i].childNodes[j].nodeType != 1) continue;
searcharr.push(x[i].childNodes[j].firstChild.nodeValue);
}
switch (searchtype) {
case 1:
searchstrg = searcharr[0].toString();
break;
case 2:
searchstrg = searcharr[1].toString();
break;
case 3:
searchstrg = searcharr[2].toString();
searchstrg = searchstrg + searcharr[3].toString();
break;
default:
reTxt.replaceChild(errP, reTxt.firstChild);
}
if (searchstrg.match(objRegex)) {
var t;
var m=1;
if (document.Catalog.thumbImg[0].checked) {
var pn = "images/"+searcharr[2]+".jpg";
var container = document.createElement("TD");
var refLink = document.createElement("A");
refLink.setAttribute('href', "javascript:viewImg(\""+pn+"\")");
var imgHolder = document.createElement("IMG");
imgHolder.setAttribute("src", pn);
imgHolder.style.height = "75px";
imgHolder.style.width = "auto";
refLink.appendChild(imgHolder);
container.appendChild(refLink);
container.className = "img"+rowColor;
row.appendChild(container);
}
for (t=0; t<searcharr.length; t++) {
container = document.createElement("TD");
var theData = document.createTextNode(searcharr[t]);
container.appendChild(theData);
container.className = 'line' + rowColor + '_' + m;
row.appendChild(container);
m++;
}
tmp.appendChild(row);
newEl.appendChild(tmp);
rowColor == 1 ? rowColor++ : rowColor--;
var newDiv = document.createElement("DIV");
newDiv.setAttribute("id", "replaceTxt");
newDiv.appendChild(newEl);
document.getElementById("replaceTxt").parentNode.replaceChild(newDiv,document.getElementById("replaceTxt"));
noResult = "true";
} 
}
if (noResult=="false") {
document.getElementById("replaceTxt").innerHTML = "<h3>Sorry, there was no match to your search. &nbsp;Please try again</h3>";
}
document.Catalog.machine.selectedIndex = 0;
document.Catalog.section.selectedIndex = 0;
document.Catalog.dSearch.value = "";
}
