
// load arrays
loadArrays();



// define levels
level = new Array();
level[0] = tab;
level[1] = S1;
level[2] = S2;
level[3] = S3;
level[4] = S4;

var tabValue;
var S1value;
var S2value;
var S3value;
var S4value;

var selectBoxPrefix = "form-select-";

function openPanelAndSelectBox1(tabID)
{
	openPanel(tabID);
	
	showAndFillSelectBox(1, tabID, false, -1);
}

function openPanel(tabID) 
{
	// show panel
	showElement("selectboxes");
	
	
	// set bgcolor and tabline
	setPanelColor(tabID);
}

function showAndFillSelectBox(intSelectBoxNr, intID, blnShowProducts, selectedValue)
{
	//hide next ones
	hideAllBoxesNotNeeded(intSelectBoxNr);
	
	//resize
	resizeFormSelects(intSelectBoxNr);
			
	// set selected values
	if (intSelectBoxNr == 1) {
		tabValue = intID;
	}
	if (intSelectBoxNr == 2) {
		S1value = intID;
	}
	if (intSelectBoxNr == 3) {
		S2value = intID;
	}
	if (intSelectBoxNr == 4) {
		S3value = intID;
	}
	
	
	// get array 
	var objTheRightArray = getArrayBySelectedValues(intSelectBoxNr, tabValue, S1value, S2value, S3value);
	
	if (objTheRightArray.length > 0)
	{
		//show div
		showElement(selectBoxPrefix + intSelectBoxNr);
		
		// get select object
		strSelectName = selectBoxPrefix + intSelectBoxNr;
		objFormSelect = document.getElementById(strSelectName);
		
		// clear previous options
		clearOptions(objFormSelect);
			
		// generate options by array
		for (m=0; m < objTheRightArray.length; m++)
		{
			itemArray = objTheRightArray[m];
			txt = itemArray[1];
			val = itemArray[0];
			
			if (txt.indexOf("&amp;") > -1) {
				txt = txt.replace("&amp;", "&");
			}
					
			objFormSelect.options[m] = new Option(txt, val);
			//alert("val: "+ val + " en txt: "+ txt + "en selectedvalue: "+ selectedValue);
			if (val == selectedValue) {
				objFormSelect.options[m].selected = true;
			}
		}
	} else {
		if (blnShowProducts) {
			showProductsForID(intID);
		}
	}
}

function setSelectedOptionsForCatalogue(strDirectory, strAction, intArticleSubGroupID, intGroupID) 
{
	if ( (strDirectory == 'catalogus') && (strAction == 'artikelsubgroep') && (intArticleSubGroupID != "") && (intGroupID != "") ) 
	{
		setSelectedOptionForSelectBox(1);
		setSelectedOptionForSelectBox(2);
		setSelectedOptionForSelectBox(3);
		setSelectedOptionForSelectBox(4);
	}
}

function setSelectedOptionForSelectBox(intSelectBoxNr)
{
	objFormSelect = document.getElementById(selectBoxPrefix + intSelectBoxNr);
	if (objFormSelect.options.length > 0) {
		intSelectedIndex = objFormSelect.options.selectedIndex;
		objFormSelect.options[intSelectedIndex].selected = true;
	}
}	



function getArrayBySelectedValues(intSelectBoxNr, tabValue, S1value, S2value, S3value)
{
	// get array for level
	objArrayForLevel = level[intSelectBoxNr];
	
	var theRightArray = new Array();
	k = 0;
	
	
	//loop door alle arrays heen van dit level
	for (i = 0; i < objArrayForLevel.length; i++)
	{
		//haal 1 array op
		objItemArray = objArrayForLevel[i];
		
		
		
		if (intSelectBoxNr == 1)
		{
			if (objItemArray[2] == tabValue) {
				// vul de nieuwe array 
				theRightArray[k] = objItemArray;
				k = k + 1;
			}
		} 
		else if (intSelectBoxNr == 2) 
		{
			if ( (objItemArray[2] == S1value) && (objItemArray[3] == tabValue) )
			{
				// vul de nieuwe array 
				theRightArray[k] = objItemArray;
				k = k + 1;
			}
		}
		else if (intSelectBoxNr == 3) 
		{
			if ( (objItemArray[2] == S2value) && (objItemArray[3] == S1value) && (objItemArray[4] == tabValue) )
			{
				// vul de nieuwe array 
				theRightArray[k] = objItemArray;
				k = k + 1;
			}
		}
		else if (intSelectBoxNr == 4) 
		{
			if ( (objItemArray[2] == S3value) && (objItemArray[3] == S2value) && (objItemArray[4] == S1value)  && (objItemArray[5] == tabValue) )
			{
				// vul de nieuwe array 
				theRightArray[k] = objItemArray;
				k = k + 1;
			}
		}
		
	}
	
	
	return theRightArray;
	
}

function showPanelAndSelectBoxes(intArticleSubGroupID, intGroupID)
{
	//get tab
	tabID = intGroupID;
		
	//show panel
	openPanel(tabID);
	
	// get the right array and count
	objOneArray = getArrayByArticleSubGroupID(intArticleSubGroupID, tabID);	
	intNumberOfBoxes = objOneArray.length - 2;
	
	if (intNumberOfBoxes == 4) 
	{
		selectedValueBox1 = objOneArray[4];
		selectedValueBox2 = objOneArray[3];
		selectedValueBox3 = objOneArray[2];
		
		showAndFillSelectBox(1, tabID, false, selectedValueBox1);
		showAndFillSelectBox(2, selectedValueBox1, false, selectedValueBox2);
		showAndFillSelectBox(3, selectedValueBox2, false, selectedValueBox3);
		showAndFillSelectBox(4, selectedValueBox3, false, intArticleSubGroupID);
	}
	else if (intNumberOfBoxes == 3) 
	{
		selectedValueBox1 = objOneArray[3];
		selectedValueBox2 = objOneArray[2];
		selectedValueBox3 = intArticleSubGroupID;
		
		showAndFillSelectBox(1, tabID, false, selectedValueBox1);
		showAndFillSelectBox(2, selectedValueBox1, false, selectedValueBox2);
		showAndFillSelectBox(3, selectedValueBox2, false, selectedValueBox3);
	}
	else if (intNumberOfBoxes == 2) 
	{
		selectedValueBox1 = objOneArray[2];
		selectedValueBox2 = intArticleSubGroupID;
		
		showAndFillSelectBox(1, tabID, false, selectedValueBox1);
		showAndFillSelectBox(2, selectedValueBox1, false, selectedValueBox2);
	}
	else if (intNumberOfBoxes == 1) 
	{
		selectedValueBox1 = intArticleSubGroupID;
		
		showAndFillSelectBox(1, tabID, false, selectedValueBox1);
	}

}




function getTabByArticleSubGroupID(intArticleSubGroupID)
{
	// LEVEL 4
	for (x = 0; x < S4.length; x++) 
	{
		OneArray = S4[x];
		if (intArticleSubGroupID == OneArray[0]) {
			return OneArray[5];
		}
	}
	
	// LEVEL 3
	for (x = 0; x < S3.length; x++) 
	{
		OneArray = S3[x];
		if (intArticleSubGroupID == OneArray[0]) {
			return OneArray[4];
		}
	}
	
	// LEVEL 2
	for (x = 0; x < S2.length; x++) 
	{
		OneArray = S2[x];
		if (intArticleSubGroupID == OneArray[0]) {
			return OneArray[3];
		}
	}
			
	// LEVEL 1
	for (x = 0; x < S1.length; x++) 
	{
		OneArray = S1[x];
		if (intArticleSubGroupID == OneArray[0]) {
			return OneArray[2];
		}
	}
}
 

function getArrayByArticleSubGroupID(intArticleSubGroupID, intTabID)
{
	// LEVEL 4
	for (x = 0; x < S4.length; x++) 
	{
		OneArray = S4[x];
		if ((intArticleSubGroupID == OneArray[0]) && (intTabID== OneArray[5])) {
			return OneArray;
		}
	}
	
	// LEVEL 3
	for (x = 0; x < S3.length; x++) 
	{
		OneArray = S3[x];
		if ((intArticleSubGroupID == OneArray[0]) && (intTabID == OneArray[4])) {
			return OneArray;
		}
	}
	
	// LEVEL 2
	for (x = 0; x < S2.length; x++) 
	{
		OneArray = S2[x];
		if ((intArticleSubGroupID == OneArray[0]) && (intTabID == OneArray[3])) {
			return OneArray;
		}
	}
	
	// LEVEL 1
	for (x = 0; x < S1.length; x++) 
	{
		OneArray = S1[x];
		if ((intArticleSubGroupID == OneArray[0]) && (intTabID == OneArray[2])) {
			return OneArray;
		}
	}
	
}



function showProductsForID(intArticleSubGroupID) 
{
	new_location = "/catalogus/artikelsubgroep/" + intArticleSubGroupID;
	
	location.href = new_location;
}


function clearOptions(objFormSelect)
{
	objFormSelect.options.length = 0;
}


function resizeFormSelects(intCurSelectNr)
{
	//expand current select
	if (intCurSelectNr < 4) {
		objCurSelect = document.getElementById(selectBoxPrefix + intCurSelectNr);
		objCurSelect.style.width = "340px";
	}
	
	//shrink previous select
	intPrevNr = (intCurSelectNr - 1);
	if (intPrevNr > 0) {
		objPrevSel = document.getElementById(selectBoxPrefix + intPrevNr);
		objPrevSel.style.width = "160px";
	}
	
	
}

function hideAllBoxesNotNeeded(intSelectNr) 
{
	if (intSelectNr == 1) {
		hideElement(selectBoxPrefix + "4");
		hideElement(selectBoxPrefix + "3");
		hideElement(selectBoxPrefix + "2");
	}
	
	if (intSelectNr == 2) {
		hideElement(selectBoxPrefix + "4");
		hideElement(selectBoxPrefix + "3");
		hideElement(selectBoxPrefix + "2");
	}
	
	if (intSelectNr == 3) {
		hideElement(selectBoxPrefix + "4");
	}
}


function setSelectedOption(intSelectNr, intSelectedValue)
{
	objFormSelect = document.getElementById(selectBoxPrefix + intSelectNr);
		
	for (i = 0; i < objFormSelect.options.length; i++)
	{
		if (objFormSelect.options[i].value == intSelectedValue) {
			objFormSelect.options[i].selected = true;
		}
	}
	
}


function setPanelColor(tabID)
{
	//get panel object
	objBrowsePanel = document.getElementById("selectboxes");
	
	// set background
	if (tabID == "2") {
		objBrowsePanel.style.background = "#4c5e89";
	} else if (tabID == "4") {
		objBrowsePanel.style.background = "#00969f";
	} else if (tabID == "5") {
		objBrowsePanel.style.background = "#4aa0c8";
	} else if (tabID == "6") {
		objBrowsePanel.style.background = "#7ade29";
	} else if (tabID == "0") {
		objBrowsePanel.style.background = "#ffea65";
	} else if (tabID == "888888") {
		objBrowsePanel.style.background = "#ffbc53";
	} else if (tabID == "1") {
		objBrowsePanel.style.background = "#dc426b";
	}

}


function showNextImage(imageArray, objImage)
{
	var curImageSource = objImage.src;
	var newImageName = "";
	var newPrefix;
	var j;
	
	var curImageName = curImageSource.substring(curImageSource.lastIndexOf("/")+1, curImageSource.lastIndexOf("."));
	var curPrefix = 'KOK/'+ curImageName.substring(7);
	
	var arrayLength = imageArray.length;
	var lastI = arrayLength - 1;
		
	for (i=0; i < arrayLength; i++)
	{
		if (imageArray[i] == curImageName)
		{
			if (i == lastI) {
				j = 0;
			} else {
				j = i + 1;
			}
			newImageName = imageArray[j];
		}
	}
	
	newPrefix = 'KOK/'+ newImageName.substring(7);
	newImageSource = curImageSource.replace(curImageName, newImageName);
	newImageSource = newImageSource.replace(curPrefix, newPrefix);
		
	objImage.src = newImageSource;
	
	objZoomLink = document.getElementById("zoomlink");
	
	curHref = objZoomLink.href;
	newHref = curHref.replace(curImageName, newImageName);
	
	objZoomLink.href = newHref;

}