
	
	
	function GetMatchingValues(size, color) 
	{
		var tempStock = new Array();
		var i, j;
		var tempRow;
		var isMatch;

		j=0;
		
		for (i = 0; i < articleStock.length; i++)
		{
			isMatch = true;
			
			tempRow = articleStock[i].split(";");
			
			if ((color != null) && (color != "") && (color != tempRow[0])) {
				isMatch = false;
			}
			if ((size != null) && (size != "") && (size != tempRow[1])) {
				isMatch = false;
			}
			
			if (isMatch) {
				tempStock[j++] = articleStock[i];
			}
//			alert(isMatch);
		} 
		
		return tempStock;
	}
	
	
	function ValueAlreadyExists(element, val)
	{
		var valueExists;	
		var i;
		
		valueExists = false;
	
		for (i = 0; i < element.length; i++)
		{
			if (element.options[i].value == val) {
				valueExists = true;
				break;
			}
		}
		
		//alert(val + " exists? " + valueExists);
		
		return valueExists;
	}
	
	function AddRemoveItem(clickedID, size, color)
	{
		var element;
		var isColorCombo;
		var i;
		var matchingValues;
		var opt;
		
		
		element = null;
		if (clickedID == sizeCombo) {
			element = document.getElementById(colorCombo)
		}
		else if (clickedID == colorCombo) {
			element = document.getElementById(sizeCombo)
		}
		
		
		if (element == null) return;
		
		
		while (element.length > 1) 
		{
			element.remove(1);
		}
		
		isColorCombo = element.id == colorCombo;
		/*
		if (element.id == colorCombo) {
		 isColorCombo = true;
		}
		else {
		  isColorCombo = false;
		}*/
		if (isColorCombo) {
			matchingValues = GetMatchingValues(size, "");
		}
		else {
			matchingValues = GetMatchingValues("", color);
		}
		
		//alert("matchingValues.length: " + matchingValues.length);
		
		for (i = 0; i < matchingValues.length; i++) 
		{
			//alert("Akutell rad: " + matchingValues[i] + "  av " +  matchingValues.length + " st."); 
			row = matchingValues[i].split(";");				

			if (!isColorCombo) {				
				if (!ValueAlreadyExists(element, row[1])) {
					//alert("add: " + row[1]);
					CreateAndAddValue(element,row[1],row[1]);					
				}
			}
			else {
				if (!ValueAlreadyExists(element, row[0])) {
					//alert("add: " + row[0]);
					CreateAndAddValue(element,row[0],row[0]);					
				}
			}			
		}
		
		var val;
		
		if (isColorCombo) {
			val = color;
		}
		else 
		{
			val = size;
		}
		
		for (i = 0; i < element.length; i++)
		{			
			if (element.options[i].value == val) {
				break;
			}
		}
		
		if (i <  element.length) 
		{
			element.selectedIndex = i;
		}
	}
	
	function CreateAndAddValue(element, id, text) 
	{
		var oOption = document.createElement("OPTION"); 
		oOption.text=text; 
		oOption.value=id; 
		
		try {
			element.add(oOption, null); // standards compliant; doesn't work in IE
		}
		catch(ex) {
			element.add(oOption); // IE only
		}		
	}
	
	function SetMaximumNumbers(maxNo) 
	{
		var element;
		var selected;
	
		element = document.getElementById(noCombo);	
		
		if (element == null) return;
			
		selected = element.options[element.selectedIndex].value;			
	
		
				
		while (element.length > 0) 
		{
			element.remove(0);
		}
		
		if (maxNo == 0) {
			element.add(CreateValue("","Tillf" + unescape("%E4") + "lligt slut"));
		}
	
		for (i = 0; i < maxNo; i++) {
			element.add(CreateValue(i+1,i+1));
		}
		
		if (selected <  element.length) 
		{
			element.selectedIndex = selected - 1;
		}
		else
		{
			element.selectedIndex = element.length - 1;
		}
	}
	
	
	
	function IndexChanged(box)
	{
		//alert("IndexChanged();");
		
		var matchingValues;
		var element;
		var i;
		var clickedID;
		
		try
		{
		    element = document.getElementById(addToCartButton);	
		    element.src="images/cart/addtocart.gif";
		}
		catch (Exception) 
		{}
		
			
		element = document.getElementById(sizeCombo);	
		//alert("element: " + element);	
		if (element != null) 		
		{
			size = element.options[element.selectedIndex].value;
		}
		else
		{
			size = "";
		}
				
		element = document.getElementById(colorCombo);		
		//alert("element: " + element);	
		if (element != null) 
		{		
			color = element.options[element.selectedIndex].value;
		}
		else
		{
			color = "";
		}
			
		//alert("box.id: " + box.id + "\nsize: " + size + "\ncolor: " + color);
		if (box != null)
		{
			AddRemoveItem(box.id, size, color);
		}
		
		matchingValues = GetMatchingValues(size, color); 	
		//alert("matchingValues.length: " + matchingValues.length);	
		if (matchingValues.length == 1) {
			row = matchingValues[0].split(";");
			
			element = document.getElementById(availabilityLabel);
			
			if (element != null)
			{
				if (row[2] > 0) 
				{
				    if (row[2] < 1000)
				    {
					   element.innerHTML = "Finns i lager.";
					}
					else
					{
					   element.innerHTML = "F" + unescape("%F6") + "rhandsbokning m" + unescape("%F6") + "jlig.";
					   try
		                {
		                    element = document.getElementById(addToCartButton);	
		                    element.src="images/cart/reservetocart.gif";
		                }
		                catch (Exception) 
		                {}
					}
				}
				else
				{			
					element.innerHTML = "Tillf" + unescape("%E4") + "lligt slut.";
					element = document.getElementById(addToCartButton);	
		                    	element.src="images/cart/addtocartDisabled.gif";
				}
				
			
				element = document.getElementById(priceLabel);
				element.innerHTML = row[3];

				element = document.getElementById(salepriceLabel);
				element.innerHTML ="";
			}	
			
			if (row[2] > maxOrderAtOnce) 
			{
				SetMaximumNumbers(maxOrderAtOnce);
			}
			else
			{
				SetMaximumNumbers(row[2]);
			}
		}
		else {
	    	    element = document.getElementById(availabilityLabel);
	    	    if (element != null) {
	    	        element.innerText = "-";
	    	    }
		
			element = document.getElementById(priceLabel);
			if (element != null) {
			    element.innerText = "-";
			}

			element = document.getElementById(salepriceLabel);
			if (element != null) {
			    element.innerText = "";
			}
			
			SetMaximumNumbers(maxOrderAtOnce);
		}
				
	} 
	

	
	
	
	
	
	
	
