 // table fields
var productDisplayNameInd = 0;
var vignetteUrlFragmentInd = 1;
var productNumTextFeaturesInd = 2;
var productNumColorGroupsInd = 3;
var productSkuIndex = 1;
var featureTypeInd = 0;
var featureTypeNamesInd = 1;



function searchTable(value, table, index) {
	for (i = 0; i < table.length; i++)
		if (table[i][index] == value)
			return true;
	return false;
}


function lookupTableValue(table, key, index) {
	for (i = 0; i < table.length; i++)
		if (table[i][0] == key) {
			if (index == -1)
				return table[i];
			else
				return table[i][index];
		}
	return "";
}



function getSelectedItem(selector)
{
	return selector.options[selector.selectedIndex].text;
}



function populateAllProducts(selector, vignetteTable) {
	for (var i = 0; i < vignetteTable.length; i++) {
		selector.options[i] = new Option(vignetteTable[i][0]);
	}
}



function populateSelector(selector, optionValTable, index)
{
	for (var i = 0; i < optionValTable.length; i++)
		if (index == -1)
			selector.options[i] = new Option(optionValTable[i]);
		else
			selector.options[i] = new Option(optionValTable[i][index]);
	selector.options[0].selected = true;
}





function populateProducts(selector, productTable, vignetteTable) {
	var optionIndex = 0;
	for (var i = 0; i < productTable.length; i++) {
		if (searchTable(productTable[i][1], vignetteTable, 0))
			selector.options[optionIndex++] = new Option(productTable[i][0]);
	if (selector.options.length > 0)
		selector.options[0].selected = true;
	}
}







function lookupSku(productID, productTable) {	
	for (var i=0; i < productTable.length; i++ ) {
		if ( productID == productTable[i][productDisplayNameInd]) {
			return productTable[i][productSkuIndex ];
		}
	}
	return "undefined";
}



function getSelectedProductId(productSelector, productTable) {
	if (productSelector.selectedIndex < 0)
		pid="";
	else
		pid = productSelector.options[productSelector.selectedIndex].text; 
	return (pid == "") ? productTable[0][productDisplayNameInd ] : pid;
}



function getSelectedProductSku(productSelector, productTable) {
	if (productSelector.selectedIndex < 0)
		pid="";
	else
		pid = productSelector.options[productSelector.selectedIndex].text;
	return (pid == "") ? productTable[0][productSkuIndex] : lookupSku(pid, productTable);		
}

	

function getVignetteUrlFragment(selectedProduct, vignetteTable, productTable)
{
	var selectedProductSku = lookupSku(selectedProduct, productTable);
	for (var i=0; i < vignetteTable.length; i++ ) {
		if (selectedProductSku == vignetteTable[i][productDisplayNameInd]) {
			return vignetteTable[i][vignetteUrlFragmentInd];
		}
	}
}



function getFeatureList(selectedProduct, vignetteTable, productTable, featureIndex)
{
	return getNumFeatures(selectedProduct, vignetteTable, productTable, featureIndex);
}



function getNumFeatures(selectedProduct, vignetteTable, productTable, featureIndex) {
	var selectedProductSku = lookupSku(selectedProduct, productTable);
	if (selectedProductSku == "undefined")
		selectedProductSku = selectedProduct;
	for (var i=0; i < vignetteTable.length; i++ ) {
		if (selectedProductSku == vignetteTable[i][productDisplayNameInd] ) {
			return vignetteTable[i][featureIndex];
		}
	}
	return "getNumFeatures can't find " + selectedProductSku + " in vignette table";
}



function getAllFeatureValues(productSelector, productTable, vignetteTable, baseId, featureIndex, fromDropDown, fromCheckBox, isList)
{
	var selectedProduct = getSelectedProductSku(productSelector, productTable);
	var numFeatures;
	if (isList) {
		fList = getFeatureList(selectedProduct, vignetteTable, productTable, featureIndex);
		numFeatures = fList.length;
	} else
		numFeatures = getNumFeatures(selectedProduct, vignetteTable, productTable, featureIndex);;
	var allFeatures = new Array(numFeatures);
	
	if (fromCheckBox && numFeatures > 0) {
	
		var checks = document.productForm.layerSwitch;
		for (j = 0; j < checks.length; j++) 
	  		allFeatures[j] = checks[j].checked ? "ON" : "OFF";
	  		
	} else {

		for (var i=0; i < numFeatures; i++ ) {
			if (fromDropDown) {
				selector = document.getElementById(baseId + (i+1));
				allFeatures[i] = selector.options[selector.selectedIndex].text;
			} else
				allFeatures[i] = document.getElementById(baseId + (i+1)).value;
			//if (baseId == "color")
				//allFeatures[i] = lookupTableValue(wsColorTable, allFeatures[i], 1);
		}
	}
			
	return allFeatures;
}


