window.onload = initAll;
var xhr = false;
/*var makeArray = new Array();
var oempnArray = new Array();
var bedfordpnArray = new Array();
var descArray = new Array();
var oemlistArray = new Array();
var priceArray = new Array();
var unitArray = new Array();
*/
var myItems = new Array();
var formField = "bedfordtext";
var formField2 = "oempntext";
var formField3 = "description";
var formField0 = "maketext";
var itemchoosen = "";
var ipicked = "none";
var url = "readxml.php";
var thecount;
var additem = "<span class='product'>\r\n";
additem = additem + "                    <table width='800' border='1'>\r\n";
additem = additem + "  <tr>\r\n";
additem = additem + "    <th scope='col' align='center'><span id='make' class='product-attr-make'></span><br>part number</th>\r\n";
additem = additem + "    <th scope='col' align='center'>Bedford part number</th>\r\n";
additem = additem + "    <th scope='col' align='center'>Description</th>\r\n";
additem = additem + "    <th scope='col' align='center'><span id='make'></span><br>List Price</th>\r\n";
additem = additem + "    <th scope='col' align='center'>Price/<span id='unit'></span></th>\r\n";
additem = additem + "    <th scope='col' align='center'>Quantity</th>\r\n";
additem = additem + "    <th scope='col' align='center'>Buy Now</th>\r\n";
additem = additem + "  </tr>\r\n";
additem = additem + "  <tr>\r\n";
additem = additem + "    <td><span id='oempn' class='product-attr-oem-pn'> </span></td>\r\n";
additem = additem + "    <td><span id='bedfordpn' class='product-title'> </span></td>\r\n";
additem = additem + "    <td><span id='desc' class='product-attr-desc'> </span></td>\r\n";
additem = additem + "    <td><span id='oemlist'> </span></td>\r\n";
additem = additem + "    <td><span id='price' class='product-price'> </span><span class='product-shipping-first' style='display:none'>9.95</span></td>\r\n";
additem = additem + "    <td align='center'><input name='quantity' type='text' id='quantity' value='1' size='5' maxlength='3' class='googlecart-quantity'></td>\r\n";
additem = additem + "    <td><span class='googlecart-add-button'></span></td>\r\n";
additem = additem + "  </tr>\r\n";
additem = additem + "</table></span>\r\n";


function initAll() {
	
	document.getElementById(formField).onkeyup = searchSuggest;
	document.getElementById(formField2).onkeyup = searchSuggest2;
	document.getElementById(formField3).onkeyup = searchSuggest3;
	document.getElementById(formField0).onchange = searchSuggest4;

	if (window.XMLHttpRequest) {
		xhr = new XMLHttpRequest();
	}
	else {
		if (window.ActiveXObject) {
			try {
				xhr = new ActiveXObject("Microsoft.XMLHTTP");
			}
			catch (e) { }
		}
	}

	if (xhr) {
		xhr.onreadystatechange = setDataArray;
		xhr.open("GET", url, true);
		xhr.send(null);
	}
	else {
		alert("Sorry, your browser does not support AJAX. Please update your browser and try again.");
	}
}

function setDataArray() {
	var thispart;
	var thismake;
	var thieoempn;
	var thisbedfordpn;
	var thisdesc;
	var thisoemlist;
	var thisprice;
	var thisunit;
	
	if (xhr.readyState == 4) {
		if (xhr.status == 200) {
			if (xhr.responseXML) {
				//alert(xhr.responseText);
				var thetable = document.getElementById("thetable");
				thetable.style.display="";
				//var thetable = document.getElementById("firstimage");
				//thetable.innerHTML = "<img src=\"images/downarrow.jpeg\" width=\"184\" height=\"147\"><br>Browse the catalog";
				
				var counter = document.getElementById("counter");

				var allData = xhr.responseXML.getElementsByTagName('part');
				var record = "";
				for (var i=0; i<allData.length; i++) {
					record = allData[i];
					thispart = "";
					thismake = "";
					thieoempn = "";
					thisbedfordpn = "";
					thisdesc = "";
					thisoemlist = "";
					thisprice = "";
					thisunit = "";
					
					if( record.getElementsByTagName('make')[0].firstChild != null ){
						thismake = record.getElementsByTagName('make')[0].firstChild.nodeValue;	
					}
					if( record.getElementsByTagName('oempn')[0].firstChild != null ){
						thisoempn = record.getElementsByTagName('oempn')[0].firstChild.nodeValue;	
					}
					if( record.getElementsByTagName('bedfordpn')[0].firstChild != null ){
						thisbedfordpn = record.getElementsByTagName('bedfordpn')[0].firstChild.nodeValue;	
					}
					if( record.getElementsByTagName('desc')[0].firstChild != null ){
						thisdesc = record.getElementsByTagName('desc')[0].firstChild.nodeValue;	
					}
					if( record.getElementsByTagName('oemlist')[0].firstChild != null ){
						thisoemlist = record.getElementsByTagName('oemlist')[0].firstChild.nodeValue;	
					}
					if( record.getElementsByTagName('price')[0].firstChild != null ){
						thisprice = record.getElementsByTagName('price')[0].firstChild.nodeValue;	
					}
					if( record.getElementsByTagName('unit')[0].firstChild != null ){
						thisunit = record.getElementsByTagName('unit')[0].firstChild.nodeValue;	
					}
					myItems[myItems.length++] = new makeitem(thismake,thisoempn,thisbedfordpn,thisdesc,thisoemlist,thisprice,thisunit);
				}
				counter.innerHTML = myItems.length + ' Total Items In Database';
				dotheonload();
			}
		}
		else {
			alert("There was a problem with the request " + xhr.status);
		}
	}
}


function makeitem(make, oempn, bedfordpn, desc, oemlist, price, munit) {
    this.make = make;
    this.oempn = oempn;
    this.bedfordpn = bedfordpn;
    this.desc = desc;
    this.oemlist = oemlist;
    this.price = price;
    this.munit = munit;
}
function searchSuggest() {
	//alert('joe');
	var counter = document.getElementById("counter");
	document.getElementById("bedfordtable").innerHTML = 'SEARCHING ITEMS...';
	document.getElementById("additem").style.display="none";

	var str = document.getElementById(formField).value;
	document.getElementById(formField).className = "";
	document.getElementById(formField2).className = "";
	document.getElementById(formField3).className = "";
	document.getElementById(formField0).className = "";	
	if (str != "") {
		myItems.sort(sortBybedfordpn);
		document.getElementById("popups").innerHTML = "";
		document.getElementById("popups2").innerHTML = "";
		document.getElementById("desclist").innerHTML = "";
		document.getElementById("makelist").innerHTML = "";		
		document.getElementById(formField2).value = "";
		document.getElementById(formField3).value = "";
		document.getElementById(formField0).value = "";
		
		var oemhtml = "";
		var bedfordhtml = "";
		var makehtml = "";
		var deschtml = "";
		var foundCt = 0;
		var myitemset = "";
		for (var i=0; i<myItems.length; i++) {
			myitemset = myItems[i].bedfordpn.toLowerCase()
			myitemset = myitemset.replace(/-/g,"");
			str = str.toLowerCase();
			if (myitemset.indexOf(str.replace(/-/g,"")) == 0) {
				foundCt++;
				oemhtml = oemhtml + "<div onclick=\"setColor2('" + myItems[i].oempn + "')\" class=\"suggestions\">" + myItems[i].oempn + "</div>";
				bedfordhtml = bedfordhtml + "<div onclick=\"setColor('" + myItems[i].bedfordpn + "')\" class=\"suggestions\">" + myItems[i].bedfordpn + "</div>";
				makehtml = makehtml + '<div class="suggestions">' + myItems[i].make + '</div>';
				deschtml = deschtml + "<div onclick=\"makeChoice('" + escape(myItems[i].desc) + "')\" class=\"suggestions\">" + myItems[i].desc + "</div>";
			}
		}
		document.getElementById("popups2").innerHTML = oemhtml;
		document.getElementById("popups").innerHTML = bedfordhtml;
		document.getElementById("makelist").innerHTML = makehtml;
		document.getElementById("desclist").innerHTML = deschtml;
		counter.innerHTML = foundCt + ' Items found with Bedford part number starting with ' + str;
		if (foundCt == 0) {
			document.getElementById(formField).className = "error";
			document.getElementById("popups").innerHTML = '<span style="color:#FF0000; font-size:medium">No Items Found starting with ' + str + '</span>';
		}
		if (foundCt == 1) {
			setColor(document.getElementById("popups").firstChild.innerHTML);
		}
	}
	else
	{
		document.getElementById("popups").innerHTML = "";
		document.getElementById("popups2").innerHTML = "";
		document.getElementById("desclist").innerHTML = "";
		document.getElementById("makelist").innerHTML = "";		
		counter.innerHTML = myItems.length + ' Total Items In Database';
	}
	document.getElementById("bedfordtable").innerHTML = '-OR-<br>A Bedford part number';
}
function searchSuggest2() {
	var counter = document.getElementById("counter");
	document.getElementById("oempntable").innerHTML = 'SEARCHING ITEMS...';
	document.getElementById("additem").style.display="none";
	
	var str = document.getElementById(formField2).value;
	document.getElementById(formField).className = "";
	document.getElementById(formField2).className = "";
	document.getElementById(formField3).className = "";
	document.getElementById(formField0).className = "";	
	if (str != "") {
		myItems.sort(sortByoempn);
		document.getElementById("popups").innerHTML = "";
		document.getElementById("popups2").innerHTML = "";
		document.getElementById("desclist").innerHTML = "";
		document.getElementById("makelist").innerHTML = "";		
		document.getElementById(formField).value = "";
		document.getElementById(formField3).value = "";
		document.getElementById(formField0).value = "";	
		
		var oemhtml = "";
		var bedfordhtml = "";
		var makehtml = "";
		var deschtml = "";
		var foundCt = 0;
		var myitemset = "";
		for (var i=0; i<myItems.length; i++) {
			myitemset = myItems[i].oempn.toLowerCase()
			myitemset = myitemset.replace(/-/g,"");
			str = str.toLowerCase();
			if (myitemset.indexOf(str.replace(/-/g,"")) == 0) {
				foundCt++;
				oemhtml = oemhtml + "<div onclick=\"setColor2('" + myItems[i].oempn + "')\" class=\"suggestions\">" + myItems[i].oempn + "</div>";
				bedfordhtml = bedfordhtml + "<div onclick=\"setColor('" + myItems[i].bedfordpn + "')\" class=\"suggestions\">" + myItems[i].bedfordpn + "</div>";
				makehtml = makehtml + '<div class="suggestions">' + myItems[i].make + '</div>';
				deschtml = deschtml + "<div onclick=\"makeChoice('" + escape(myItems[i].desc) + "')\" class=\"suggestions\">" + myItems[i].desc + "</div>";
			}
		}
		document.getElementById("popups2").innerHTML = oemhtml;
		document.getElementById("popups").innerHTML = bedfordhtml;
		document.getElementById("makelist").innerHTML = makehtml;
		document.getElementById("desclist").innerHTML = deschtml;
		counter.innerHTML = foundCt + ' Items found with OEM part number starting with ' + str;
		if (foundCt == 0) {
			document.getElementById(formField2).className = "error";
			document.getElementById("popups2").innerHTML = '<span style="color:#FF0000; font-size:medium">No Items Found starting with ' + str + '</span>';
		}
		if (foundCt == 1) {
			setColor2(document.getElementById("popups2").firstChild.innerHTML);
		}
	}
	else
	{
		document.getElementById("popups").innerHTML = "";
		document.getElementById("popups2").innerHTML = "";
		document.getElementById("desclist").innerHTML = "";
		document.getElementById("makelist").innerHTML = "";		
		counter.innerHTML = myItems.length + ' Total Items In Database';
	}
	document.getElementById("oempntable").innerHTML = '-OR-<br>A manufacturer part number';
}
function searchSuggest3() {
	//alert('hi');
	var counter = document.getElementById("counter");
	document.getElementById("desctable").innerHTML = 'SEARCHING ITEMS...';
	document.getElementById("additem").style.display="none";

	var str = document.getElementById(formField3).value;
	
	document.getElementById(formField).className = "";
	document.getElementById(formField2).className = "";
	document.getElementById(formField3).className = "";
	document.getElementById(formField0).className = "";
	if (str != "") {
		myItems.sort(sortBydesc);
		document.getElementById("popups").innerHTML = "";
		document.getElementById("popups2").innerHTML = "";
		document.getElementById("desclist").innerHTML = "";
		document.getElementById("makelist").innerHTML = "";		
		document.getElementById(formField).value = "";
		document.getElementById(formField2).value = "";
		document.getElementById(formField0).value = "";		

		var oemhtml = "";
		var bedfordhtml = "";
		var makehtml = "";
		var deschtml = "";
		var foundCt = 0;

		for (var i=0; i<myItems.length; i++) {
			
			if (myItems[i].desc.toLowerCase().indexOf(str.toLowerCase()) >= 0) {
				foundCt++;
				oemhtml = oemhtml + "<div onclick=\"setColor2('" + myItems[i].oempn + "')\" class=\"suggestions\">" + myItems[i].oempn + "</div>";
				bedfordhtml = bedfordhtml + "<div onclick=\"setColor('" + myItems[i].bedfordpn + "')\" class=\"suggestions\">" + myItems[i].bedfordpn + "</div>";
				makehtml = makehtml + '<div class="suggestions">' + myItems[i].make + '</div>';
				deschtml = deschtml + "<div onclick=\"makeChoice('" + escape(myItems[i].desc) + "')\" class=\"suggestions\">" + myItems[i].desc + "</div>";
			}
		}
		document.getElementById("popups2").innerHTML = oemhtml;
		document.getElementById("popups").innerHTML = bedfordhtml;
		document.getElementById("makelist").innerHTML = makehtml;
		document.getElementById("desclist").innerHTML = deschtml;
		counter.innerHTML = foundCt + ' Items found with description containing ' + str;
		if (foundCt == 0) {
			document.getElementById(formField3).className = "error";
			document.getElementById("desclist").innerHTML = '<span style="color:#FF0000; font-size:medium">No Items Found containing ' + str + '</span>';
		}
		if (foundCt == 1) {
			setColor2(document.getElementById("popups2").firstChild.innerHTML);
		}
	}
	else
	{
		document.getElementById("popups").innerHTML = "";
		document.getElementById("popups2").innerHTML = "";
		document.getElementById("desclist").innerHTML = "";
		document.getElementById("makelist").innerHTML = "";		
		counter.innerHTML = myItems.length + ' Total Items In Database';
	}
	document.getElementById("desctable").innerHTML = '-OR-<br>A Description / machine name<br>Example: 390st';
}
function searchSuggest4() {
	var counter = document.getElementById("counter");
	//var thepic = document.getElementById("mantable");
	document.getElementById("mantable").innerHTML = 'SEARCHING ITEMS...';
	document.getElementById("additem").style.display="none";
	var selectBoxp = document.getElementById(formField0);
	str = selectBoxp.options[selectBoxp.selectedIndex].text;
	//var str = document.getElementById(formField0).value;
	
	document.getElementById(formField).className = "";
	document.getElementById(formField2).className = "";
	document.getElementById(formField3).className = "";
	document.getElementById(formField0).className = "";
	if (str != "") {
		myItems.sort(sortBymake);
		document.getElementById("popups").innerHTML = "";
		document.getElementById("popups2").innerHTML = "";
		document.getElementById("desclist").innerHTML = "";
		document.getElementById("makelist").innerHTML = "";		
		document.getElementById(formField).value = "";
		document.getElementById(formField2).value = "";
		document.getElementById(formField3).value = "";		

		var oemhtml = "";
		var bedfordhtml = "";
		var makehtml = "";
		var deschtml = "";
		var foundCt = 0;

		for (var i=0; i<myItems.length; i++) {
			
			if (myItems[i].make.toLowerCase().indexOf(str.toLowerCase()) == 0) {
				foundCt++;
				oemhtml = oemhtml + "<div onclick=\"setColor2('" + myItems[i].oempn + "')\" class=\"suggestions\">" + myItems[i].oempn + "</div>\r\n";
				bedfordhtml = bedfordhtml + "<div onclick=\"setColor('" + myItems[i].bedfordpn + "')\" class=\"suggestions\">" + myItems[i].bedfordpn + "</div>";
				makehtml = makehtml + '<div class="suggestions">' + myItems[i].make + '</div>';
				deschtml = deschtml + "<div onclick=\"makeChoice('" + escape(myItems[i].desc) + "')\" class=\"suggestions\">" + myItems[i].desc + "</div>";
			}
		}
		document.getElementById("popups2").innerHTML = oemhtml;
		document.getElementById("popups").innerHTML = bedfordhtml;
		document.getElementById("makelist").innerHTML = makehtml;
		document.getElementById("desclist").innerHTML = deschtml;
		counter.innerHTML = foundCt + ' Items found of make ' + str;
		if (foundCt == 0) {
			document.getElementById(formField0).className = "error";
			document.getElementById("makelist").innerHTML = '<span style="color:#FF0000; font-size:medium">No Items Found starting with ' + str + '</span>';
		}
		if (foundCt == 1) {
			setColor2(document.getElementById("popups2").firstChild.innerHTML);
		}
	}
	else
	{
		document.getElementById("popups").innerHTML = "";
		document.getElementById("popups2").innerHTML = "";
		document.getElementById("desclist").innerHTML = "";
		document.getElementById("makelist").innerHTML = "";		
		counter.innerHTML = myItems.length + ' Total Items In Database';
	}
	document.getElementById("mantable").innerHTML = 'Choose a manufacturer';
}

function makeChoice(evt) {
	evt = unescape(evt)
	document.getElementById(formField3).value = evt;
	searchSuggest3();
}

function setColor(newColor) {
	document.getElementById(formField).value = newColor;

	for (var o=0; o<myItems.length; o++) {
		var thispick = myItems[o].bedfordpn;
		if (thispick == newColor){
			ipicked = "bedford";			
			//document.getElementById(formField2).value = myItems[o].oempn;
			//document.getElementById(formField3).value = myItems[o].desc;
			//document.getElementById(formField0).value = myItems[o].make;			
			document.getElementById(formField2).value = '';
			document.getElementById(formField3).value = '';
			document.getElementById(formField0).value = '';			
			document.getElementById(formField).value = '';			

			//document.getElementById("additem").innerHTML = additem;
			//document.getElementById(formField2).value = myItems[o].oempn;
			//document.getElementById(formField3).value = myItems[o].desc;
			document.getElementById("make1").innerHTML = myItems[o].make;
			document.getElementById("make2").innerHTML = myItems[o].make;			
			document.getElementById("oempn").innerHTML = myItems[o].oempn;
			document.getElementById("bedfordpn").innerHTML = "Bedford " + myItems[o].bedfordpn;
			itemchoosen = "Bedford " + myItems[o].bedfordpn;			
			document.getElementById("desc").innerHTML = myItems[o].desc;
			document.getElementById("oemlist").innerHTML = myItems[o].oemlist;
			document.getElementById("price").innerHTML = myItems[o].price;
			document.getElementById("unit").innerHTML = myItems[o].munit;
			
			window.location = "#thetop";
			
			if (IsNumeric(myItems[o].price)){
				var thebutt = document.getElementById("butt");
				thebutt.style.display="";
			}
			else{
				var thebutt = document.getElementById("butt");
				thebutt.style.display="none";
			}
		}
	}
	var thething = document.getElementById("additem");
	thething.style.display="";
	document.getElementById("popups").innerHTML = "";
	document.getElementById("popups2").innerHTML = "";
	document.getElementById("desclist").innerHTML = "";
	document.getElementById("makelist").innerHTML = "";
	//document.getElementById(formField2).value = "";
}
function setColor2(newColor) {
	document.getElementById(formField2).value = newColor;

	for (var o=0; o<myItems.length; o++) {
		var thispick = myItems[o].oempn;
		if (thispick == newColor){
			ipicked = "oempn";			
			//document.getElementById(formField).value = myItems[o].bedfordpn;
			//document.getElementById(formField3).value = myItems[o].desc;
			//document.getElementById(formField0).value = myItems[o].make;		
			document.getElementById(formField2).value = '';
			document.getElementById(formField3).value = '';
			document.getElementById(formField0).value = '';			
			document.getElementById(formField).value = '';			


			//document.getElementById("additem").innerHTML = additem;
			document.getElementById("make1").innerHTML = myItems[o].make;
			document.getElementById("make2").innerHTML = myItems[o].make;			
			document.getElementById("oempn").innerHTML = myItems[o].oempn;
			document.getElementById("bedfordpn").innerHTML = "Bedford " + myItems[o].bedfordpn;
			itemchoosen = "Bedford " + myItems[o].bedfordpn;			
			document.getElementById("desc").innerHTML = myItems[o].desc;
			document.getElementById("oemlist").innerHTML = myItems[o].oemlist;
			document.getElementById("price").innerHTML = myItems[o].price;
			document.getElementById("unit").innerHTML = myItems[o].munit;
			
			window.location = "#thetop";
			
			if (IsNumeric(myItems[o].price)){
				var thebutt = document.getElementById("butt");
				thebutt.style.display="";
			}
			else{
				var thebutt = document.getElementById("butt");
				thebutt.style.display="none";
			}
		}
	}
	var thething = document.getElementById("additem");
	thething.style.display="";
	document.getElementById("popups").innerHTML = "";
	document.getElementById("popups2").innerHTML = "";
	document.getElementById("desclist").innerHTML = "";
	document.getElementById("makelist").innerHTML = "";	
	//document.getElementById(formField).value = "";
}
function hidebox(){
	var thething = document.getElementById("additem");
	thething.style.display="none";
	document.getElementById(formField).value = "";
	document.getElementById(formField2).value = "";
	document.getElementById(formField3).value = "";
	document.getElementById(formField0).value = "";	
	if (ipicked == "oem"){
		var textbox = document.getElementByName(formField2);
	    textbox.focus();
	}
	if (ipicked == "bedford"){
		var textbox = document.getElementByName(formField);
	    textbox.focus();
	}
}
function IsNumeric(sText){
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;
   
   for (i = 0; i < sText.length && IsNumber == true; i++) 
      { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) 
         {
         IsNumber = false;
         }
      }
   return IsNumber;
   
   }

function addclick(t){
	//alert(t);
	writetofile('addtocart',t);
	hidebox();
	//alert('done');
}

function sortByoempn(a, b) {
    var x = a.oempn.toLowerCase();
    var y = b.oempn.toLowerCase();
    return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}
function sortBybedfordpn(a, b) {
    var x = a.bedfordpn.toLowerCase();
    var y = b.bedfordpn.toLowerCase();
    return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}
function sortBydesc(a, b) {
    var x = a.desc.toLowerCase();
    var y = b.desc.toLowerCase();
    return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}
function sortBymake(a, b) {
    var x = a.make.toLowerCase();
    var y = b.make.toLowerCase();
    return ((x < y) ? -1 : ((x > y) ? 1 : 0));
}