

log = function(s) {
	//document.getElementById ("debug").innerHTML += "" + s ;
}

var subcategory = function(){};
var category = function(){};
category.prototype = {
	addSubCategory: function(nodeId, description) {
		var sc = new subcategory();
		sc.nodeId = nodeId;
		sc.description = description;
		return sc;
	},
        clearSubCategories: function() {
            var element = document.getElementById ("subcategory");
            while (element.childNodes.length > 0)
                element.remove (element.childNodes[0]);
        
        },
	populateSubCategories: function() {
		try {
			//clear existing subcategory options
			this.clearSubCategories();

                        //clear any results in table
                        var el = document.getElementById ("productResults");
                        while (el.childNodes.length > 0) {
                            el.removeChild (el.childNodes[0]);
                        }

                        var element = document.getElementById ("subcategory");

			var option = document.createElement ("option");
			option.setAttribute ("value", 0);
			option.appendChild (document.createTextNode ("Select Sub-Category"));
			element.appendChild (option);
		
			for (var x=0;x < this.subCategories.length;x++) {
				var subCategory = this.subCategories[x];
				var option = document.createElement ("option");
				option.setAttribute ("value", subCategory.nodeId);
				option.appendChild (document.createTextNode (subCategory.description));
				element.appendChild (option);
			}
			
		} catch (e) {
			alert (e.message);
		}
	}
}

var productCategory = function(){};
productCategory.prototype = {
		categorys: new Array(),
		addItem: function(categoryid, description) {
			var cat = new category();
			cat.subCategories = new Array();
			cat.categoryId = categoryid;
			cat.description = description;
			this.categorys.push (cat);
			return cat;
		},
		getItem: function(categoryid) {
			try {
				for (var x=0;x < this.categorys.length;x++) {
					var cat = this.categorys[x];
					if (cat.categoryId == categoryid)
						return cat;
				}
			} catch (e) {
				alert (e.message);
			}
		},
		categoryOnChange: function() {
			try {
				
				var categoryId = document.getElementById ("category").value;
				//alert (c.getItem(categoryId).description);
				
				//attempt to find entry in category object
				var element = c.getItem (categoryId);
				if (element) {
					//populate subcategories
					element.populateSubCategories();
					document.getElementById ("subcategory").parentNode.className = "formselect";
				}
				
			} catch (e) {
				alert (e.message);
			}
		},
		subCategoryOnChange: function() {
			try {
			
				var categoryId = document.getElementById ("category").value;
				var subCategoryId = document.getElementById ("subcategory").value;
				
				var url = "/wcm/site/pages/contaminomics/productsearch.aspx?category=" + categoryId + "&subcategory=" + subCategoryId;
				
				$.get(url, function(data){
				
					//clear existing options
					var el = document.getElementById ("productResults");
					while (el.childNodes.length > 0) {
						el.removeChild (el.childNodes[0]);
					}
					
					
				
					var element = data.childNodes[0];
					var children = element.childNodes;
						
					for (var x=0;x < children.length;x++) {
						var result = children[x];
						log ("start loop");
						log (result.nodeName);
						
						var description = "";
						var nodeId = "";
						var ProductName = "";
						var ProductCode = "";
						
						log ("about to loop children: " + result.childNodes.length);
						for (var n=0;n < result.childNodes.length;n++) {
							var el = result.childNodes[n];
							log ("el=" + el);
							log ("el.nodeNAme=" + el.nodeName);
							
							if (el.nodeName == "description") {
								if (el.textContent) 
									description = el.textContent;
								else 
									description = el.text;
							}
							if (el.nodeName == "productname")
								if (el.textContent) 
									ProductName = el.textContent;
								else 
									ProductName = el.text;
								
							if (el.nodeName == "productcode")
								if (el.textContent) 
									ProductCode = el.textContent;
								else 
									ProductCode = el.text;

							if (el.nodeName == "nodeid")
								if (el.textContent) 
									nodeId = el.textContent;
								else 
									nodeId = el.text;
								 
						}
						
						
						c.addProductResult (nodeId, description, ProductName, ProductCode);
                                                var table = document.getElementById ("productResultsTable");
                                                table.className = "";
						
						//log (result.nodeName());
					}
					
					});
			} catch (e) {
				alert (e.message);
			}
			
		},
		addProductResult: function (nodeId, description, ProductName, ProductCode) {
			try {
			
				var subcategoryId = document.getElementById ("subcategory").value;
			
				var tableElement = document.getElementById ("productResults");
				var tr = document.createElement ("tr");
				tableElement.appendChild (tr);
				var td = document.createElement ("td");
				td.setAttribute ("class", "first");
				
				tr.appendChild (td);
				td.appendChild (document.createTextNode (ProductCode));
				
				td = document.createElement ("td");
				td.appendChild (document.createTextNode (ProductName));
				tr.appendChild (td);
				
				td = document.createElement ("td");
				var a = document.createElement ("a");
				a.setAttribute ("href", "/products/product-detail?subcategory=" + subcategoryId + "&productid=" + nodeId);
				a.appendChild (document.createTextNode ("More Information..."));
				td.appendChild (a);
				td.setAttribute ("class", "last");
				
				//a.textContent = "More Information...";
				tr.appendChild (td);
				
			} catch (e) {
				alert (e.message);
			}
		}
		
}

var c = new productCategory();
	
		var element = c.addItem (188245, 'Laboratory Gloves');
		
		element.subCategories.push (element.addSubCategory (188246,'Nitrile'));
		element.subCategories.push (element.addSubCategory (189399,'Latex'));
		var element = c.addItem (188312, 'Cleanroom Apparel');
		
		element.subCategories.push (element.addSubCategory (188314,'Sterile'));
		var element = c.addItem (188446, 'Laboratory Care');
		
		element.subCategories.push (element.addSubCategory (188447,'Dusting'));
		element.subCategories.push (element.addSubCategory (189306,'Benchtop Protection - Sheet'));
		element.subCategories.push (element.addSubCategory (189592,'Benchtop Protection - Roll'));
		var element = c.addItem (188868, 'Cleanroom Wipers');
		
		element.subCategories.push (element.addSubCategory (188870,'Non-sterile Wipers'));
		element.subCategories.push (element.addSubCategory (188887,'Pre-Saturated Wipers'));
		var element = c.addItem (188898, 'Laboratory Wipers');
		
		element.subCategories.push (element.addSubCategory (188899,'Microfiber Wipers'));
		element.subCategories.push (element.addSubCategory (189293,'Delicate Task Wipers'));
		element.subCategories.push (element.addSubCategory (189299,'Precision Wipers'));
		var element = c.addItem (188919, 'Cleanroom Gloves');
		
		element.subCategories.push (element.addSubCategory (188920,'Sterile Nitrile'));
		element.subCategories.push (element.addSubCategory (189179,'Sterile Latex'));
		element.subCategories.push (element.addSubCategory (189317,'Non-sterile Nitrile'));
		element.subCategories.push (element.addSubCategory (189366,'Non-sterile Latex'));
		var element = c.addItem (189223, 'Cleanroom Masks');
		
		element.subCategories.push (element.addSubCategory (189421,'Sterile'));
		element.subCategories.push (element.addSubCategory (189437,'Non-Sterile'));
		var element = c.addItem (189473, 'Laboratory Apparel');
		
		element.subCategories.push (element.addSubCategory (189474,'Laboratory Apparel'));
		var element = c.addItem (189675, 'Laboratory Masks / Respirators');
		
		element.subCategories.push (element.addSubCategory (189676,'Non-sterile'));
		






/*

	- category188245188245Laboratory Gloves18
	- category188312188312Cleanroom Apparel12
	- category188446188446Laboratory Care17
	- category188868188868Cleanroom Wipers15
	- category188898188898Laboratory Wipers20
	- category188919188919Cleanroom Gloves13
	- category189223189223Cleanroom Masks14
	- category189473189473Laboratory Apparel16
	- category189675189675Laboratory Masks / Respirators19
	- subcategory188246188245Nitrile4
	- subcategory188314188312Sterile2
	- subcategory188447188446Dusting4
	- subcategory188870188868Non-sterile Wipers3
	- subcategory188887188868Pre-Saturated Wipers1
	- subcategory188899188898Microfiber Wipers3
	- subcategory188920188919Sterile Nitrile6
	- subcategory189179188919Sterile Latex4
	- subcategory189293188898Delicate Task Wipers2
	- subcategory189299188898Precision Wipers1
	- subcategory189306188446Benchtop Protection - Sheet2
	- subcategory189317188919Non-sterile Nitrile3
	- subcategory189366188919Non-sterile Latex1
	- subcategory189399188245Latex1
	- subcategory189421189223Sterile2
	- subcategory189437189223Non-Sterile1
	- subcategory189474189473Laboratory Apparel1
	- subcategory189592188446Benchtop Protection - Roll1
	- subcategory189676189675Non-sterile1
*/
  