var filterTypes = new Array('1 inch Merv7','1 inch Merv8','1 inch Merv11', '2 inch Merv7','2 inch Merv8','2 inch Merv11','4 inch Merv7','4 inch Merv8','4 inch Merv11');
var filterCasePrices = new Array('104.00','114.00','129.00','128.00','157.00','162.50','119.00','125.00','189.00');
var filterPrices = new Array('17.00','19.00','20.00','17.00','19.00','20.00','25.00','35.00','39.00');
var filterSizes = new Array(
							new Array('10x20x1','10x24x1', '10x25x1', '10x30x1', '12x12x1', '12x16x1', '12x20x1', '12x24x1', '12x25x1', '12x30x1', '14x14x1', '14x20x1', '14x24x1', '14x25x1', '14x30x1', '15x20x1', '15x24x1', '15x25x1', '15x30x1', '16x16x1', '16x20x1', '16x24x1', '16x25x1', '16x30x1', '18x18x1', '18x20x1', '18x24x1', '18x25x1', '18x30x1', '20x20x1', '20x24x1', '20x25x1', '20x30x1', '24x24x1', '24x30x1', '25x25x1'),
							new Array('10x20x1','10x24x1', '10x25x1', '10x30x1', '12x12x1', '12x16x1', '12x20x1', '12x24x1', '12x25x1', '12x30x1', '14x14x1', '14x20x1', '14x24x1', '14x25x1', '14x30x1', '15x20x1', '15x24x1', '15x25x1', '15x30x1', '16x16x1', '16x20x1', '16x24x1', '16x25x1', '16x30x1', '18x18x1', '18x20x1', '18x24x1', '18x25x1', '18x30x1', '20x20x1', '20x24x1', '20x25x1', '20x30x1', '24x24x1', '24x30x1', '25x25x1'),
							new Array('10x20x1','10x24x1', '10x25x1', '10x30x1', '12x12x1', '12x16x1', '12x20x1', '12x24x1', '12x25x1', '12x30x1', '14x14x1', '14x20x1', '14x24x1', '14x25x1', '14x30x1', '15x20x1', '15x24x1', '15x25x1', '15x30x1', '16x16x1', '16x20x1', '16x24x1', '16x25x1', '16x30x1', '18x18x1', '18x20x1', '18x24x1', '18x25x1', '18x30x1', '20x20x1', '20x24x1', '20x25x1', '20x30x1', '24x24x1', '24x30x1', '25x25x1'),
							new Array('10x20x2','12x20x2','12x14x2','14x20x2','14x25x2','15x20x2','16x20x2','16x24x2','16x25x2','16x30x2','18x20x2','18x24x2','18x25x2','20x20x2','20x24x2','20x25x2','20x30x2','24x24x2','25x25x2'),
							new Array('10x20x2','12x20x2','12x14x2','14x20x2','14x25x2','15x20x2','16x20x2','16x24x2','16x25x2','16x30x2','18x20x2','18x24x2','18x25x2','20x20x2','20x24x2','20x25x2','20x30x2','24x24x2','25x25x2'),
							new Array('10x20x2','12x20x2','12x14x2','14x20x2','14x25x2','15x20x2','16x20x2','16x24x2','16x25x2','16x30x2','18x20x2','18x24x2','18x25x2','20x20x2','20x24x2','20x25x2','20x30x2','24x24x2','25x25x2'),
							new Array('12x24x4','16x20x4','16x24x4','18x24x4','20x20x4','20x24x4','20x25x4','24x24x4','25x29x4'),
							new Array('12x24x4','16x20x4','16x24x4','18x24x4','20x20x4','20x24x4','20x25x4','24x24x4','25x29x4'),
							new Array('12x24x4','16x20x4','16x24x4','18x24x4','20x20x4','20x24x4','20x25x4','24x24x4','25x29x4')						
							);

var filterQuantities = new Array(
								 	new Array(
											  	new Array('12','Every month (12 of each filter)'),
											  	new Array('6','Every other month (6 of each filter)'),
											  	new Array('4','Every three months (4 of each filter)'),
											  	new Array('3','Every four months (3 of each filter)'),
											  	new Array('2','Every six months (2 of each filter)'),
											  	new Array('1','Once a year (1 filter)')
											  ),
								 	new Array(
											  	new Array('12','Every month (12 of each filter)'),
											  	new Array('6','Every other month (6 of each filter)'),
											  	new Array('4','Every three months (4 of each filter)'),
											  	new Array('3','Every four months (3 of each filter)'),
											  	new Array('2','Every six months (2 of each filter)'),
											  	new Array('1','Once a year (1 filter)')
											  ),
								 	new Array(
											  	new Array('12','Every month (12 of each filter)'),
											  	new Array('6','Every other month (6 of each filter)'),
											  	new Array('4','Every three months (4 of each filter)'),
											  	new Array('3','Every four months (3 of each filter)'),
											  	new Array('2','Every six months (2 of each filter)'),
											  	new Array('1','Once a year (1 filter)')
											  ),
								 	new Array(
											  	new Array('12','Every month (12 of each filter)'),
											  	new Array('6','Every other month (6 of each filter)'),
											  	new Array('4','Every three months (4 of each filter)'),
											  	new Array('3','Every four months (3 of each filter)'),
											  	new Array('2','Every six months (2 of each filter)'),
											  	new Array('1','Once a year (1 filter)')
											  ),
								 	new Array(
											  	new Array('12','Every month (12 of each filter)'),
											  	new Array('6','Every other month (6 of each filter)'),
											  	new Array('4','Every three months (4 of each filter)'),
											  	new Array('3','Every four months (3 of each filter)'),
											  	new Array('2','Every six months (2 of each filter)'),
											  	new Array('1','Once a year (1 filter)')
											  ),
								 	new Array(
											  	new Array('12','Every month (12 of each filter)'),
											  	new Array('6','Every other month (6 of each filter)'),
											  	new Array('4','Every three months (4 of each filter)'),
											  	new Array('3','Every four months (3 of each filter)'),
											  	new Array('2','Every six months (2 of each filter)'),
											  	new Array('1','Once a year (1 filter)')
											  ),
								 	new Array(
											  	new Array('2','Every six months (2 of each filter)'),
											  	new Array('1','Once a year (1 filter)')
											  ),
								 	new Array(
											  	new Array('2','Every six months (2 of each filter)'),
											  	new Array('1','Once a year (1 filter)')
											  ),
								 	new Array(
											  	new Array('2','Every six months (2 of each filter)'),
											  	new Array('1','Once a year (1 filter)')
											  )
								 );


function loadQuantity(id,value)
{
	document.getElementById('quantity_' + id).value = value;
}


/* SHOW OR HIDE THE INDIVIDUAL item quantity selector */

function showQuantity(id)
{		
	var filterQuantityPicker = '<label id="label_quantity_' + id + '">How often do you want to change this filter? <select onchange="loadQuantity(' + id + ',this.value);" id="quantity_picker_' + id + '"></select> <br/></label>';
	
	fs = document.getElementById('holder_quantity_' + id);
	fs.innerHTML = filterQuantityPicker;
}

function hideQuantity(id)
{
	fs = document.getElementById('label_quantity_' + id);
	if(fs)
	{
		fp = fs.parentNode;
		fp.removeChild(fs);
	}
}

/* /SHOW OR HIDE THE INDIVIDUAL item quantity selector */


/* loads filter types */
function loadTypes(id)
{
	var sx = document.getElementById('os0_' + id);
	for(i in filterTypes)
	{
		xprice = filterTypes[i] + '- $' + filterPrices[i];
		sx.options[i] = new Option(xprice,filterTypes[i]);
	}
}


/* loads filter sizes for a given filter type, designated by num (index of the filter in filterTypes array) */
function loadSizes(id,num)
{
	var sizes = filterSizes[num];

	var sx = document.getElementById('item_name_' + id);
	for(i in sizes)
	{
		sx.options[i] = new Option(sizes[i],sizes[i]);
	}
}

/* loads filter quantity options for a given filter type, designated by num (index of the filter in filterTypes array) */
function loadQuantities(id,num)
{
	var quantities = filterQuantities[num];
	input = document.getElementById('quantity_picker_' + id)

	if(input)
	{
		if(input.tagName == 'SELECT')
			{
				for(i in quantities)
				{
					input.options[i] = new Option(quantities[i][1],quantities[i][0]);
				}				
			}
		if(input.tagName == 'INPUT')
			input.value = document.getElementById('quantity_x').value;
	}
}

function loadPrice(id,num)
{
	var price = filterPrices[num];
	document.getElementById('amount_' + id).value = price;
}

/* either updates hidden quantity based on universal quantity set, or if this is an odd filter type, loads filter quantity options  */
function updateAllQuantities()
{
	for (n = 0; n <= 5; n++)
	{
		input = document.getElementById('quantity_' + n);
		if(input)
		{
				output = document.getElementById('quantity_picker_' + n);
				if(output)
					input.value = output.value;
				else
					input.value = document.getElementById('quantity_x').value;
		}
	}
}

function switchQuantity() { updateAllQuantities(); }


/* given a select value, finds the location of this in the filter types array */
function getIndexType(value)
{
	var i = -1;
	for (n = 0; n < filterTypes.length; n++)
	{
		if(value == filterTypes[n])
		{
			i = n; break;
		}
	}
	
	return i;
}


/* when filter type is changed, updates everything else */
function switchType (id,value)
{
	var indexType = getIndexType(value);

	loadPrice(id,indexType);
	loadSizes(id,indexType);
	
	if(indexType >= filterTypes.length - 3) /* if indexType is one of the last 3 */
	{
		showQuantity(id);
	}
	else
	{
		hideQuantity(id);
	}
	
	loadQuantities(id,indexType);
	switchQuantity();
}


function addNewItem(id)
{
	var filterSize = '<label>What size filter do you need? <select name="item_name_' + id + '" id="item_name_' + id + '"></select></label>';
	var filterLegend = '<legend>Filter ' + id + '</legend>';
	var filterAmount = '<input type="hidden" name="amount_' + id + '" id="amount_' + id + '" value="1.00"/>';

	var filterQuantity = '<input type="hidden" id="quantity_' + id + '" name="quantity_' + id + '" value="12" />';
	var filterQuantityHolder = '<div id="holder_quantity_' + id + '"></div>';	
	
	var filterBrand = '<input type="hidden" name="on0_' + id + '" value="Type" /><label>Choose a Type of filter: <select name="os0_' + id + '" id="os0_' + id + '" onchange="switchType('+id+',this.value);"></select></label>';

	var insert = document.createElement('div');	
	insert.innerHTML = '<fieldset id="filter' + id  + '" class="filter">' + filterLegend + filterSize + '<br/>' + filterAmount + filterBrand + filterQuantity + filterQuantityHolder + '</fieldset>';

	var top = document.getElementById('fieldsets');
	top.appendChild(insert);
	
	loadTypes(id);
	loadPrice(id,0);
	loadSizes(id,0);
	loadQuantities(id,0);
}

function addNewItems(num)
{
	var top = document.getElementById('fieldsets');
	top.innerHTML = '';
	for (id = 1; id <= num; id++)
	{
		addNewItem(id);
	}
}


function addNew ()
{
	var n = document.getElementById('filter_number').value;
	addNewItems(n);
}

function customizeAddToCartButton(id,num)
{
	var sizes = filterSizes[num];

	var a = document.getElementById('os0_' + id);
	if(a)
		for(i in sizes)
		{
			a.options[i] = new Option(sizes[i],sizes[i]);
		}
	
	var b = document.getElementById('amount_' + id);
	if(b) b.value = filterCasePrices[num];
	var c = document.getElementById('h3_price_' + id);
	if(c) c.innerHTML = '$' + filterCasePrices[num];
}

function prepServicePage()
{
	addNewItems(1);
	document.getElementById('filter_number').onchange = addNew;
}

function prepCasePage()
{
	for(x = 0; x < 9; x++)
	{
		customizeAddToCartButton(x+1,x);
	}
}
