var xmlDoc;
var x;
var mozBrowser;
var Pictures = new Array();
var Products = new Array();
var Links = new Array();
var Dates = new Array();
var recallnums = new Array();
var SoldAts = new Array();
var Hazards = new Array();
var Importers = new Array();
var Categories = new Array();
var Categories2 = new Array();
var req;
var theCategory;


function traverse(tree) {
		
        if(tree.hasChildNodes()) {
                
                if(tree.tagName == "Picture")
                	Pictures.push(tree.text);                	
                else if (tree.tagName == "ProductName")
                	Products.push(tree.text); 
				else if (tree.tagName == "link")
                	Links.push(tree.text); 
               	else if (tree.tagName == "Date")
                	Dates.push(tree.text); 
                else if (tree.tagName == "NumberRecalled")
                	recallnums.push(tree.text); 
                else if (tree.tagName == "SoldAt")
                	SoldAts.push(tree.text); 
                else if (tree.tagName == "Hazard")
                	Hazards.push(tree.text); 
                else if (tree.tagName == "ImporterDistributor")
                	Importers.push(tree.text); 
               	else if (tree.tagName == "Category")
                	Categories.push(tree.text);
               	else if (tree.tagName == "Category2")
                	Categories2.push(tree.text);  
				
                var nodes=tree.childNodes.length;
                for(var i=0; i<tree.childNodes.length; i++)
                        traverse(tree.childNodes(i));
       }
}

function createTable() {

  var numcols=1;
  var numrows=Products.length, trow, trow2, trow3, trow4, trow5, trow6, tcell, seprow, sepCell;
  var tbdy = document.createElement("tbody");

  tbl=document.getElementById("hazcontainer").firstChild;
  

  for (var i = 0, n = tbl.rows.length; i < n; i ++)
    tbl.removeChild(tbl.rows[0]);

  // now re-build table
  for(var n=0;n<1;n+=numcols){
  
    for(var i=0;i<numrows;i++){
    
      trow=document.createElement("tr");
      trow2=document.createElement("tr");
      trow3=document.createElement("tr");
      trow4=document.createElement("tr");
      trow5=document.createElement("tr");
      trow6=document.createElement("tr");
      trow.setAttribute("valign", "top");
      seprow = document.createElement("tr"); 
      sepCell = document.createElement("td");
	  sepCell.setAttribute("height", "30");
	  seprow.appendChild(sepCell);    
      
      for(var j=0;j<numcols;j++){
      
        tcell  = document.createElement("td");
        tcell2 = document.createElement("td");
        tcellcontainer = document.createElement("td");
        tcell4 = document.createElement("td");
        tcell5 = document.createElement("td");
        tcell6 = document.createElement("td");
        tcell7 = document.createElement("td");
        tcell8 = document.createElement("td");
        tcell8.setAttribute("width", "250px");
        tcell8.setAttribute("valign", "top");
        
        if(!Products[n+j]){tcell.innerHTML="";}
        else
        	{
        		tcell8.innerHTML = "<a href=\""+Links[i]+"\" target=\"_blank\"><img alt=\""+Products[i]+ "\" width=\"245px\" height=\"150px\" border=0 src=\""+Pictures[i]+"\"></a>";  //<img border="0" src="../My%20Web%20Sites/images/toytrainthumb.JPG" width="245" height="164">
        		tcell.innerHTML = "<strong>Product Name: </strong><a href=\""+Links[i]+"\" target=\"_blank\">"+Products[i]+"</a>";
        		tcell2.innerHTML = "<strong>Date of Recall: </strong>" + Dates[i];
           		tcell4.innerHTML = "<strong>Units Recalled: </strong>"+recallnums[i];
        		tcell5.innerHTML = "<strong>Sold at: </strong>" + SoldAts[i];
        		tcell6.innerHTML = "<strong>Hazards: </strong>" + Hazards[i];
        		tcell7.innerHTML = Importers[i];
           	}
           	if (!mozBrowser)
           	{
				tcellcontainer.appendChild(tcell);
		        tcellcontainer.appendChild(tcell2);
		        tcellcontainer.appendChild(tcell4);
		        tcellcontainer.appendChild(tcell5);
		        tcellcontainer.appendChild(tcell6);
	        
		        tcellcontainer.setAttribute("width", "320px");
		       // tcellcontainer.setAttribute("height", "100");
		        
		        trow.appendChild(tcell8);
		        tcell8.setAttribute("valign", "top");
		       // trow.appendChild(lblcontainer);
		        
				trow.appendChild(tcellcontainer);     
				trow.appendChild(seprow);
			}
			else 
			{
					trow2.appendChild(tcell);
	        		tcellcontainer.appendChild(trow2);
	        		trow3.appendChild(tcell2);
	        		tcellcontainer.appendChild(trow3);
	        		trow4.appendChild(tcell4);
	        		tcellcontainer.appendChild(trow4);
	        		trow5.appendChild(tcell5);
	        		tcellcontainer.appendChild(trow5);
	        		trow6.appendChild(tcell6);
	        		tcellcontainer.appendChild(trow6);
	        		
		        
			        tcellcontainer.setAttribute("width", "320px");
			        
			        trow.appendChild(tcell8);
			        tcell8.setAttribute("valign", "top");
			        
					trow.appendChild(tcellcontainer); 
			} 
	}
      
      tbdy.appendChild(trow);
      tbdy.appendChild(seprow);
      tbl.appendChild(tbdy);
      
    }
  }
}

function createCatTable(cat) {

  var numcols=1;
  var catCnt=0;
  var trow, trow2, trow3, trow4, trow5, trow6, tcell, seprow, sepCell;
  var tbdy = document.createElement("tbody");
  
  for (k=0; k<Products.length; k++){
  	if ((Categories[k] == cat) || (Categories2[k] == cat))
  		catCnt++;
  }
  
  if (catCnt == 0){
  	return;
  }
  var numrows=Products.length;

  tbl=document.getElementById("hazcontainer").firstChild;

  for (var i = 0, n = tbl.rows.length; i < n; i ++)
      tbl.removeChild(tbl.rows[0]);

  // now re-build table
  for(var n=0;n<1;n+=numcols){
  
    for(var i=0;i<numrows;i++){
    
      trow=document.createElement("tr");
      trow2=document.createElement("tr");
      trow3=document.createElement("tr");
      trow4=document.createElement("tr");
      trow5=document.createElement("tr");
      trow6=document.createElement("tr");
      trow.setAttribute("valign", "top");
      trow.setAttribute("valign", "top");
      seprow = document.createElement("tr"); 
      sepCell = document.createElement("td");
      //sepCell.innerHTML = "Separator";
      sepCell.setAttribute("height", "30px");
      seprow.appendChild(sepCell);   
      
      for(var j=0;j<numcols;j++){
      
        tcell  = document.createElement("td");
        tcell2 = document.createElement("td");
        tcellcontainer = document.createElement("td");
        tcell4 = document.createElement("td");
        tcell5 = document.createElement("td");
        tcell6 = document.createElement("td");
        tcell7 = document.createElement("td");
        tcell8 = document.createElement("td");
        tcell8.setAttribute("width", "250px");
        tcell8.setAttribute("valign", "top");
        tcell7.setAttribute("height", "20");
        
        if(!Products[n+j]){tcell.innerHTML="";}
        else
        	{
        		if ((Categories[i] == cat) || (Categories2[i] == cat))
        		{
        			if (!mozBrowser){
		        		tcell8.innerHTML = "<a href=\""+Links[i]+"\" target=\"_blank\"><img alt=\""+Products[i]+ "\" width=\"245px\" height=\"150px\" border=0 src=\""+Pictures[i]+"\"></a>";  //<img border="0" src="../My%20Web%20Sites/images/toytrainthumb.JPG" width="245" height="164">
		        		tcell.innerHTML = "<strong>Product Name: </strong><a href=\""+Links[i]+"\" target=\"_blank\">"+Products[i]+"</a>";
		        		tcell2.innerHTML = "<strong>Date of Recall: </strong>" + Dates[i];
		           		tcell4.innerHTML = "<strong>Units Recalled: </strong>"+recallnums[i];
		        		tcell5.innerHTML = "<strong>Sold at: </strong>" + SoldAts[i];
		        		tcell6.innerHTML = "<strong>Hazards: </strong>" + Hazards[i];
		        		//tcell7.innerHTML = "nbsp;"
		        		tcellcontainer.appendChild(tcell);
				        tcellcontainer.appendChild(tcell2);
				        tcellcontainer.appendChild(tcell4);
				        tcellcontainer.appendChild(tcell5);
				        tcellcontainer.appendChild(tcell6);
				       // tcellcontainer.appendChild(tcell7);
				        
				        tcellcontainer.setAttribute("width", "320px");
				        
				        trow.appendChild(tcell8);
				        tcell8.setAttribute("valign", "top");
	
						trow.appendChild(tcellcontainer);
						trow.appendChild(seprow);
					}
					else
					{
						tcell8.innerHTML = "<a href=\""+Links[i]+"\" target=\"_blank\"><img width=\"245px\" height=\"150px\" border=0 src=\""+Pictures[i]+"\"></a>";  //<img border="0" src="../My%20Web%20Sites/images/toytrainthumb.JPG" width="245" height="164">
		        		tcell.innerHTML = "<strong>Product Name: </strong><a href=\""+Links[i]+"\" target=\"_blank\">"+Products[i]+"</a>";
		        		tcell2.innerHTML = "<strong>Date of Recall: </strong>" + Dates[i];
		           		tcell4.innerHTML = "<strong>Units Recalled: </strong>"+recallnums[i];
		        		tcell5.innerHTML = "<strong>Sold at: </strong>" + SoldAts[i];
		        		tcell6.innerHTML = "<strong>Hazards: </strong>" + Hazards[i];
		        		tcell7.innerHTML = Importers[i];
		        		trow2.appendChild(tcell);
		        		tcellcontainer.appendChild(trow2);
		        		trow3.appendChild(tcell2);
		        		tcellcontainer.appendChild(trow3);
		        		trow4.appendChild(tcell4);
		        		tcellcontainer.appendChild(trow4);
		        		trow5.appendChild(tcell5);
		        		tcellcontainer.appendChild(trow5);
		        		trow6.appendChild(tcell6);
		        		tcellcontainer.appendChild(trow6);
		        		
			        
				        tcellcontainer.setAttribute("width", "320px");
				        
				        trow.appendChild(tcell8);
				        tcell8.setAttribute("valign", "top");
				        
						trow.appendChild(tcellcontainer); 
					}
        		}
           	}
      }
      
      tbdy.appendChild(trow);
      if ((Categories[i] == cat) || (Categories2[i] == cat))
		  tbdy.appendChild(seprow);
      tbl.appendChild(tbdy);
    }
  }
}

function mozloaddata()
{
	var x = xmlDoc.getElementsByTagName('Recalls');
	var prod = xmlDoc.getElementsByTagName('ProductName');
	var pics = xmlDoc.getElementsByTagName('Picture');
	var lnks = xmlDoc.getElementsByTagName('link');
	var pdates = xmlDoc.getElementsByTagName('Date');
	var rNums = xmlDoc.getElementsByTagName('NumberRecalled');
	var sold = xmlDoc.getElementsByTagName('SoldAt');
	var haz = xmlDoc.getElementsByTagName('Hazard');
	var imp = xmlDoc.getElementsByTagName('ImporterDistributor');
	var cat = xmlDoc.getElementsByTagName('Category');
	var cat2 = xmlDoc.getElementsByTagName('Category2');
	
	n_elems = prod.length;
	for (i = 0; i < n_elems; i++) 
	{
	   	Products.push(prod[i].firstChild.nodeValue);
	   	Pictures.push(pics[i].firstChild.nodeValue);
	   	Links.push(lnks[i].firstChild.nodeValue);
	   	Dates.push(pdates[i].firstChild.nodeValue);
	   	recallnums.push(rNums[i].firstChild.nodeValue);
	   	SoldAts.push(sold[i].firstChild.nodeValue);
	   	Hazards.push(haz[i].firstChild.nodeValue);
	   	Importers.push(imp[i].firstChild.nodeValue);
	   	Categories.push(cat[i].firstChild.nodeValue);
	   	Categories2.push(cat2[i].firstChild.nodeValue);

	}
}


function getdata(category)
{
	//alert(window.navigator.appName);
	theCategory = category;
	req = false;
if (window.XMLHttpRequest && !(window.ActiveXObject))
{	
	mozBrowser = true;
	try{
		req = new XMLHttpRequest();
		}
	catch (e){
		req = false;
	}
	
}
//load xml file
// code for IE
else if (window.ActiveXObject)
{
	mozBrowser = false;
	xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
	xmlDoc.async=false;
	xmlDoc.load("LeadHazardx.xml");
	
	//load data for IE
	traverse(xmlDoc);
}
// code for Mozilla, Firefox, Opera, etc.
else if (document.implementation && document.implementation.createDocument)
{
	mozBrowser = true;
	xmlDoc=document.implementation.createDocument("","",null);
	
	xmlDoc.async= false;
	// load data for Mozilla compatible browser
	xmlDoc.onload=mozloaddata;
	xmlDoc.load("LeadHazardx.xml");
}
else
{
	alert('Your browser cannot handle this script');
}
 	if (req)
 	{
 		req.onreadystatechange = processReqChange;
 		req.open("GET", "LeadHazardx.xml", true);
 		req.send("");
 	}
	

	if (category == "All")
		createTable();
	else
		createCatTable(category);

	var x=document.getElementById("datefooter")
    x.innerHTML= "Last Updated: " + Dates[0];
}

function processReqChange()
{
	var xmlstuff;
	//only if req shows "loaded"
	if (req.readyState == 4)
	{
		// only if "OK"
		if (req.status == 200)
		{
			xmlDoc = req.responseXML;
			// processing instructions
			mozloaddata();
			if (theCategory == "All")
				createTable();
			else
				createCatTable(theCategory);
		
			var x=document.getElementById("datefooter")
		    x.innerHTML= "Last Updated: " + Dates[0];
			
		}
		else
		{
			alert("There was a problem retrieving the XML data:\n" + req.statusText);
		}
	}
}