$(document).ready(function(){
	var Messages = new Array();
	Messages['chosecolortext'] = "Velg farge!";
	Messages['chosesizetext'] = "Velg størrelse!";
	
	// Størrelse
	// HTML for å erstatte nedtrekksmenyen med
	var strReplaceHtml;
	strReplaceHtml = '<input type="hidden" id="produkt_variant_code_str" name="produkt_multiple[3]" value="" />';
	strReplaceHtml += '<div class="outer">';
	strReplaceHtml += ' <div id="strSelect">';
	strReplaceHtml += ' ';
	strReplaceHtml += ' </div>';
	strReplaceHtml += ' <br style="clear: both" />';
	strReplaceHtml += '</div>';
	
	// Erstatt nedtrekksmenyen
	$("#strValg").html(strReplaceHtml);
	var tekst = Messages['chosesizetext'];
	describeNextChoice(tekst);
	
	
	// Farge
	// HTML for å erstatte nedtrekksmenyen med
	var frgReplaceHtml;
	frgReplaceHtml = '<input type="hidden" id="produkt_variant_code_frg" name="produkt_multiple[1]" value="" />';
	frgReplaceHtml += '<div class="outer">';
	frgReplaceHtml += ' <div id="frgSelect">';
	frgReplaceHtml += ' ';
	frgReplaceHtml += ' </div>';
	frgReplaceHtml += ' <br style="clear: both" />';
	frgReplaceHtml += '</div>';
	frgReplaceHtml += '<div id="farge"> &nbsp; </div>';
	
	// Erstatt nedtrekksmenyen
	$("#frgValg").html(frgReplaceHtml);
	
	if(typeof (Item_No) != 'undefined'){
		$(".inputsubmit").addClass("hidden");
		
		var strBoxes = drawStrBoxes(Item_No, Variantsstorrelse);
		var frgBoxes = drawFrgBoxes2(Item_No, ColorCodes, Variantsstorrelse);
		/*var frgBoxes = drawFrgBoxes(Item_No, ColorCodes);*/
		
		$("#strSelect").html(strBoxes);
		$("#frgSelect").html(frgBoxes);

		/* Første størrelse og farge er automatisk valgt produkt */
		var tekst = Messages['choosesizetext'];
		//$("#farge").text(tekst);
		describeNextChoice(tekst);
		
		$("#strSelect label").click(chooseStr);
		$("#frgSelect label.available").live('click', chooseFrg);
	}

	function chooseStr(){
		var size = $(this).children("input").val();
		$("#produkt_variant_code_str").val(size);
		$("#produkt_variant_code_frg").val('0');
		
		var tekst = '';
		
		var canBuyProduct = ColorCodes.length == 0;
		
		if (!canBuyProduct)
			tekst = Messages['chosecolortext'];

		$("#strSelect label").removeClass("active");
		$(this).addClass("active");
		$("#frgSelect").html(drawFrgBoxes2(Item_No, ColorCodes, Variantsstorrelse, size));
		//$("#farge").text(tekst);
		
		describeNextChoice(tekst);
		setProductCanBeBought(canBuyProduct);
	}
	
	function chooseFrg(){
		var choosenColor =  $(this).children(".fargekode").html();
		var color = $(this).children("input").val();
		$("#produkt_variant_code_frg").val(color);
		
		$("#ColorSelect label").removeClass("active");
		$(this).siblings().removeClass("active");
		$(this).addClass("active");
		$("#farge").text(choosenColor);
		describeNextChoice('');
		/*if (SizeVariations[color]) {
			imageSize = "_0";
		} else {
			imageSize = "";
		}
		
		//image = Item_No + "_main_" + color.toLowerCase() + imageSize + "_0.jpg";
		image = Item_No + "_main_" + color.toLowerCase() + imageSize + "_" + ImageNumbers[color] + ".jpg";
		image = image.replace('/', '-');
		image = image.replace('ø', 'o');
		image = image.replace('å', 'a');
		image = image.replace('æ', 'a');
		image = image.replace('Æ', 'a');
		image = image.replace('Ø', 'o');
		image = image.replace('Å', 'a');
		url   = Item_No + "_original_" + color.toLowerCase() + "_" + ImageNumbers[color] + ".jpg";
		url   = url.replace("/", "-");
	
		$("#mainpic").attr('src', 'bilder/bilder/nettbutikk/' + image);
		$(".mainPic").attr('href', 'bilder/bilder/nettbutikk/' + url);*/
		
		setProductCanBeBought(true);
	}
});

/**
 * Set if product can be bought or not
 * @param state
 */
function setProductCanBeBought(state) {
	if (state) {
		describeNextChoice('');
		$(".inputsubmit").removeClass("hidden");
	} else {
		$(".inputsubmit").addClass("hidden");
	}
}

/**
 * Describe the next action required by the user
 * @param text		Description of action			 
 */
function describeNextChoice(text) {
	$(".actionDescription").text(text);
	if (text != '') {
		$("#farge").text('');
	}
}

/**
 * Tegn opp bokser med størrelser som kan velges
 *
 * @param Item_No 		Produktnummer
 * @param Variants 		Tabell med hvilke produkter som har hvilke farger på lager
 *
 * @return Streng med htmlkode for alle boksene
 */
function drawStrBoxes(Item_No, Variants){
	var strBoxes 		= '';
	var HaveBox 		= 'string for sjekk ';
	var str 			= '';
	
	for(sRow = 0; sRow < Variants.length; sRow++){
		str = Variants[sRow]['Size'];
		CheckStr = ' ' + Variants[sRow]['Size'];
		
		if(HaveBox.indexOf(CheckStr) < 0){
			HaveBox += str + ', ';
			
			if(strAvail(str, Variants))
				strBoxes += drawStrBox(str, Variants);
		}
	}
	
	return strBoxes;
}

function drawFrgBoxes(Item_No, Variants){
	var frgBoxes 		= '';
	var HaveBox 		= 'string for sjekk ';
	var frg 			= '';
	
	for (sRow = 0; sRow < Variants.length; sRow++) {
		frg = Variants[sRow]['ColorCode'];
		CheckFrg = ' ' + Variants[sRow]['ColorCode'];
		
		if (HaveBox.indexOf(CheckFrg) < 0){
			HaveBox += frg + ', ';
			
			frgBoxes += drawFrgBox(frg, Variants);
		}
	}
	
	return frgBoxes;
}



/**
 * Tegn opp boks med størrelse som kan velges
 *
 * @param Size 		Størrelser som kan velges for produktet
 *
 * @return Streng med htmlkode for en størrelsesboks
 */
function drawStrBox(str){
	var strBox = '<label class="sizeSelect"><input type="radio" name="str" value="' 
				+ str 
				+ '" class="hidden" /><span class="storrelse">' 
				+ str 
				+ '</span></label>';
	return strBox;
}

function drawFrgBox(frg){
	var frgBox = '<label class="sizeSelect"><input type="radio" name="frg" value="' 
				+ frg 
				+ '" class="hidden" /><span class="farge">' 
				+ frg 
				+ '</span></label>';
	return frgBox;
}


/**
 * Tegn opp alle fargebokser på produktvarianter på lager
 * 
 * Tegner opp farger som ikke kan velges. Bokser som vises
 * er avhengig av om fargen er tilgjengelig på lager
 *
 * @param Item_No 		Produktnummer
 * @param ColorCodes 	Tabell med farger tilgjengelig for produktet
 * @param HexCodes 		Tabell for mapping mellom fargekode og hexkode
 * @param Variants 		Tabell med hvilke produkter som har hvilke farger på lager
 * @param Size 			Valgt størrelse
 *
 * @return Streng med htmlkode for alle boksene
 */
function drawAllColorBoxes (Item_No, ColorCodes, HexCodes, Variants, Size) 
{
	var ColorBoxes 	= '';
	var HaveBox 	= 'string for sjekk ';
	var Color 		= '';
	var colorName 	= '';
	
	for (vRow = 0; vRow < Variants.length; vRow++) {
		Color 		= Variants[vRow]['ColorCode'];
		CheckColor 	= ' ' + Variants[vRow]['ColorCode'];
		if (Variants[vRow]['Quantity'] > 0) {
			if (HaveBox.indexOf(CheckColor) < 0) {
				HaveBox += Color + ', ';
				ColorBoxes += drawColorBox (Item_No, Variants[vRow]['ColorCode'], colorName, HexCodes[colorCode], 'Available');
			}
		}
	}
	return ColorBoxes;
}



/**
 * Tegn opp bokser med farger som kan velges
 * 
 * Tegner opp farger som kan velges. Bokser som vises
 * er avhengig av om fargen i valgt størrelse er
 * tilgjengelig
 *
 * @param Item_No 		Produktnummer
 * @param ColorCodes 	Tabell med farger tilgjengelig for produktet
 * @param HexCodes 		Tabell for mapping mellom fargekode og hexkode
 * @param Variants 		Tabell med hvilke produkter som har hvilke farger på lager
 * @param Size 			Valgt størrelse
 *
 * @return Streng med htmlkode for alle boksene
 */
function drawFrgBoxes2(Item_No, ColorCodes, Variants, size){
	var ColorBoxes = '';
	var HaveBox = 'string for sjekk ';
	var frg = '';
	
	for (cRow = 0; cRow < ColorCodes.length; cRow++) {
		colorCode = ColorCodes[cRow]['ColorCode'];
		colorName = ColorCodes[cRow]['ColorText'];
		for (vRow = 0; vRow < Variants.length; vRow++)
			if(size){
				if (Variants[vRow]['ColorCode'] == colorCode && Variants[vRow]['Size'] == size){
					if (Variants[vRow]['Quantity'] > 0){
						frg = Variants[vRow]['ColorCode'];
						CheckFrg = ' ' + Variants[vRow]['ColorCode'];
			
						if(HaveBox.indexOf(CheckFrg) < 0){
							HaveBox += frg + ', ';
							
							ColorBoxes += drawColorBox(Item_No, colorCode, colorName, 'available');
						}
					}
				}
			}
			else{
				if(Variants[vRow]['ColorCode'] == colorCode){
					if(Variants[vRow]['Quantity'] > 0){
						frg = Variants[vRow]['ColorCode'];
						CheckFrg = ' ' + Variants[vRow]['ColorCode'];
			
						if(HaveBox.indexOf(CheckFrg) < 0){
							HaveBox += frg + ', ';
							
							ColorBoxes += drawColorBox(Item_No, colorCode, colorName, 'notAvailable');
						}
					}
				}
			}
	}
	
	return ColorBoxes;
}



/**
 * Tegn opp boks med farge som kan velges
 *
 * @param ColorCode 	Fargekode for valgt produkt og størrelse
 * @param Hex 			Hexkode for valgt produkt
 * @param Available 	Streng som forteller om produktet er tilgjengelig eller ikke
 *
 * @return Streng med htmlkode for en fargeboks
 */
function drawColorBox (Item_No, ColorCode, colorName, Available) 
{
	var imagePath = 'bilder/bilder/produktbilder/';
	ColorCodePrice= ColorCode; // use when getting price for product
	ColorCode 	  = ColorCode.replace('/', '-');
	ColorCode 	  = ColorCode.replace('Ø', 'O');
	ColorCode 	  = ColorCode.replace('Å', 'A');
	ColorCode 	  = ColorCode.replace('Æ', 'A');
	ColorCode     = ColorCode.replace(' ', '%20');
	var image 	  = imagePath+Item_No+'_'+ColorCode+'_'+'SW.jpg';
	var Hex = '';

	var colorBox = '<label class="colorSelect ' + Available + '">';
		colorBox += '<input type="radio" name="color" value="';
		colorBox += ColorCode;
		colorBox += '" class="hidden"';
					(Available == 'notAvailable') ? colorBox += ' disabled="disabled"' : '';
		colorBox += ' />';
		colorBox += '<input type="hidden" name="colorcodeprice" class="colorcodeprice" value="';
		colorBox += ColorCodePrice;
		colorBox += '" />';
		colorBox += '<span class="fargeklatt" style="background-color: '+Hex+';">';
					(Available == 'notAvailable') ? colorBox += '<a title="Ikke tilgjengelig"><span id="colorNotAvailable">&nbsp;</span></a>' : '';
		colorBox += '<img src=' + image + ' alt="" />';
		colorBox += '</span>';
		colorBox += '<span class="fargekode">' + colorName + '</span>';
		colorBox += '</label>';
	return colorBox;
}



/**
 *  
 * @return
 */
function updateVariantPrice (VariantCode) 
{
	VariantCode = VariantCode.replace('/', '-');
	var Price 	= PriceCode[VariantCode];
	$("span#pris").text(Price + ',-');
}



/**
 *
 * @return
 */
function strAvail(str, Variants){
	if(ColorCodes.length == 0)
		return true;
		
	for (cRow = 0; cRow < ColorCodes.length; cRow++){
		colorCode = ColorCodes[cRow]['ColorCode'];
		for (vRow = 0; vRow < Variants.length; vRow++)
			if (Variants[vRow]['ColorCode'] == colorCode && Variants[vRow]['Size'] == str){
				if(Variants[vRow]['Quantity'] > 0){
					return true;
				}
			}
	}
	
	return false;
}

