$(document).ready(function(){
	$(".addToBasketMoreInfo").click(function(){
		var catalogueMoreInfoLink = $(this).attr("id").split("addToBasketMoreInfo_")[1];
		var catalogueMoreInfoBase = $('base').attr('href');
		var catalogueMoreInfoNewLink = "";
		if (catalogueMoreInfoLink.split('/')[1]){
			catalogueMoreInfoLink = catalogueMoreInfoLink.split('/')[1]; 
		}
		if (catalogueMoreInfoBase && catalogueMoreInfoLink.indexOf('.')<0){
			catalogueMoreInfoNewLink = catalogueMoreInfoBase+'/'+catalogueMoreInfoLink; 
		}
		else{
			catalogueMoreInfoNewLink = $(this).attr("id").split("addToBasketMoreInfo_")[1];
		}				
		document.location.href = catalogueMoreInfoNewLink;		
	});
});

function modifyProductInfo(productId, optionId, requiredCSV, decimalSeparator){

	var selectedOptionIds;
	var requiredArray = requiredCSV.split(",");
		
	try{		
		
		//Get original values
		try{
			var priceOrigStrikedOut = parseFloat(document.getElementById(productId+'_priceOrigNoDiscount').value);		
		}
		catch(err){}
		var priceOrig = parseFloat(document.getElementById(productId+'_priceOrig').value);
		var widthOrig = parseFloat(document.getElementById(productId+'_widthOrig').value);
		var heightOrig = parseFloat(document.getElementById(productId+'_heightOrig').value);
		var depthOrig = parseFloat(document.getElementById(productId+'_depthOrig').value);
		var stockPositionOrig = document.getElementById(productId+'_stockPositionOrig').value;
						
		//Get option values
		var priceOption=0;
		var widthOption=0;
		var heightOption=0;
		var depthOption=0;		
		var lowestStockPosition;
		
		//Stock position
		if (stockPositionOrig*1){
			lowestStockPosition = stockPositionOrig;
		}
		else{
			lowestStockPosition="notSet";
		}
				
		// variables for temp saving option values while looping
		var priceTmp;
		var widthTmp;
		var heightTmp;
		var depthTmp;
		var stockPositionTmp;
		
		var i;
		var optionId;		
		var elementsCount = document.getElementById('catalogueFormItem_'+productId).elements.length;
		
		// reset option id container
		document.getElementById('catalogueVariationOptionIds').value="";
				
		// add values from options				
		for(i=0; i<=elementsCount; i++){			
			try{			
				optionId = document.getElementById('catalogueFormItem_'+productId).elements[i].value;
				
				// add option id to list of options								
				if (optionId!=""){				
					document.getElementById('catalogueVariationOptionIds').value += optionId+",";
				}
				priceTmp = parseFloat(document.getElementById(optionId+"_price").value);
				widthTmp = parseFloat(document.getElementById(optionId+"_width").value);
				heightTmp = parseFloat(document.getElementById(optionId+"_height").value);
				depthTmp = parseFloat(document.getElementById(optionId+"_depth").value);
				stockPositionTmp = parseFloat(document.getElementById(optionId+"_stockPosition").value);
												
				priceOption += priceTmp;
				widthOption += widthTmp;
				heightOption += heightTmp;
				depthOption += depthTmp;
								
				if (stockPositionTmp!=(-1)){
					if (stockPositionTmp < lowestStockPosition || lowestStockPosition == "notSet"){
						lowestStockPosition = stockPositionTmp;												
					}
				}				
			}
			catch(err){}			
		}		
				
		//Basket button toggle		
		var on=true;
		var valueOfRequired;
		var elementId;						
		var i;		
		for (i=requiredArray.length-1; i>=0; i--){
			try{						
				elementId='catalogueFormItemSelect_'+requiredArray[i];			
	  			valueOfRequired=document.getElementById(''+elementId+'').value;				
	  			if (valueOfRequired == ""){
	  				on=false;	  				
	  			} 	  			
  			}
  			catch(err){}
  			if (lowestStockPosition==0){
  				on=false;
  			}
		}
		toggleBasketButton(productId, on);
		
		//Set new values in document
		try{
			var newPriceStrikedOut = priceOrigStrikedOut + priceOption;
		}
		catch(err){}
		var newPrice = priceOrig + priceOption;
		var newWidth = widthOrig + widthOption;
		var newHeight = heightOrig + heightOption;
		var newDepth = depthOrig + depthOption;
		
		try{
			document.getElementById(productId+'_priceOrigStrikedOut').innerHTML = numberToPresentation(newPriceStrikedOut, decimalSeparator);	
		}
		catch(err){}
		document.getElementById(productId+'_price').innerHTML = numberToPresentation(newPrice, decimalSeparator);
		document.getElementById(productId+'_width').innerHTML = numberToPresentation(newWidth, decimalSeparator);
		document.getElementById(productId+'_height').innerHTML = numberToPresentation(newHeight, decimalSeparator);
		document.getElementById(productId+'_depth').innerHTML = numberToPresentation(newDepth, decimalSeparator);
				
		if (lowestStockPosition!="notSet"){
			document.getElementById(productId+'_stockPosition').innerHTML=lowestStockPosition;
		}
		else{
			document.getElementById(productId+'_stockPosition').innerHTML=stockPositionOrig;
		}

	
	}
	catch(err){}
	
}

function toggleBasketButton(productId,on){
	if (on){
		document.getElementById('catalogueBasketButton_'+productId).disabled=false;
	}
	else{
		document.getElementById('catalogueBasketButton_'+productId).disabled=true;
	}
}

function numberToPresentation(floatNumber, decimalSeparator){
	
	var string = Math.round(floatNumber*100)/100
	var string = '' + string + '';
	var thousands;
	if (decimalSeparator == ",") thousands = "."; else thousands = ",";
	
	// format for presentation
	string = formatNumber(parseFloat(string),2,thousands,decimalSeparator,'','','','');
	
	return string;
}

// number formatting function
// copyright Stephen Chapman 24th March 2006, 22nd August 2008
// permission to use this function is granted provided
// that this copyright notice is retained intact

function formatNumber(num,dec,thou,pnt,curr1,curr2,n1,n2) {var x = Math.round(num * Math.pow(10,dec));if (x >= 0) n1=n2='';var y = (''+Math.abs(x)).split('');var z = y.length - dec; if (z<0) z--; for(var i = z; i < 0; i++) y.unshift('0'); if (z<0) z = 1; y.splice(z, 0, pnt); if(y[0] == pnt) y.unshift('0'); while (z > 3) {z-=3; y.splice(z,0,thou);}var r = curr1+n1+y.join('')+n2+curr2;return r;}
