// object to filter inventory item display
function InventoryFilterObject(formobj)
{
	this.formobj = formobj;
}

InventoryFilterObject.prototype.ApplyFilters = _ApplyFilters;
InventoryFilterObject.prototype.ClearFilters = _ClearFilters;
InventoryFilterObject.prototype.FilterByLitNumber = _FilterByLitNumber;


function _ApplyFilters()
{
	// loop the form finding those that are checked.
	var arySelected = Array();
	var SelectionCount = 0;
	for(var i = 0; i < this.formobj.elements.length; i++) {
		
		if(this.formobj.elements[i].name == "AttributeCategoryID-AttributeValueID") {
			
			// yep, this element is our checkbox
			if (this.formobj.elements[i].checked) {
				
				// parse the category id and value id
				var DashPosition = this.formobj.elements[i].value.indexOf("-");
				var CategoryID = this.formobj.elements[i].value.substring(0,DashPosition);
				var ValueID = this.formobj.elements[i].value.substring(DashPosition + 1);
				
				// check if we have done this category already.
				if (typeof(arySelected["AttributeCategoryID-" + CategoryID]) == "undefined")
				{
					// make an array
					arySelected["AttributeCategoryID-" + CategoryID] = Array();
				}
				arySelected["AttributeCategoryID-" + CategoryID]["AttributeValueID-" + ValueID] = "AttributeValueID-" + ValueID;
				SelectionCount++;
			}
		}
	}
	
	if (SelectionCount == 0)
	{
		// if nothing is checked then act like a clear filters.
		this.ClearFilters();
	}
	else
	{
		// set display: none for all that are left in value array.	
		var InventoryDivs = window.frames["inventoryframe"].document.getElementsByTagName("div");
		for(var i = 0; i < InventoryDivs.length; i++) 
		{
			var InventoryDiv = InventoryDivs[i];
			var aryResults = Array();
			for (var AttributeCategoryID in arySelected)
			{
				aryResults[AttributeCategoryID] = false;
				for (var AttributeValueID in arySelected[AttributeCategoryID])
				{
					if (InventoryDiv.className.indexOf(AttributeValueID + " ") > -1)
					{
						aryResults[AttributeCategoryID] = true;
					}
				}
			}
			
			// if they have an option checked in all of the categories then display otherwise not.
			var bSelected = true;
			for (var AttributeCategoryID in aryResults)
			{
				if (!aryResults[AttributeCategoryID])
				{
					bSelected = false;
				}	
			}
			
			if (bSelected)
			{
				InventoryDiv.style.display = "block";
			}
			else	
			{
				InventoryDiv.style.display = "none";	
			}
		}
	}
}

function _ClearFilters()
{
	// set display: block for all.	
	var InventoryDivs = window.frames["inventoryframe"].document.getElementsByTagName("div");
	for(var i = 0; i < InventoryDivs.length; i++) 
	{
		var InventoryDiv = InventoryDivs[i];
		InventoryDiv.style.display = "block";
	}
	
	// now uncheck all of the checkboxes
	for(var i = 0; i < this.formobj.elements.length; i++) 
	{	
		if(this.formobj.elements[i].name == "AttributeCategoryID-AttributeValueID") {
			this.formobj.elements[i].checked = false;
		}
	}
}

function _FilterByLitNumber()
{
	// get the lit number
	var LitNumber = document.getElementById("LitNumber").value;
	var InventoryDivs = window.frames["inventoryframe"].document.getElementsByTagName("div");
	for(var i = 0; i < InventoryDivs.length; i++) 
	{
		var InventoryDiv = InventoryDivs[i];
		if (InventoryDiv.className.indexOf("LitNumber-" + LitNumber + " ") > -1)
		{
			InventoryDiv.style.display = "block";
		}
		else
		{
			InventoryDiv.style.display = "none";
		}
	}	
	
}
