function updateProductPresentation(parameterName, parameterValue, parameterNameToIgnore) {
	var url = null;
	var pid = null;
	var cgid = null;
	var quantity = null;
	var colour = null; // optional
	var size = null; // optional
	var character = null; // optional
	
	var myForm = document.forms["cartaddproduct"];
	
	var allFormElements = myForm.elements;
	for (var k = 0; k < allFormElements.length; k++) {
		var element = allFormElements[k];
		if (element.name == "update_url") { 
			url = element.value;
		} else if (element.name == "masterproduct_pid") { 
			// we use here the master product ID to reduce the pages which we have to cache!
			pid = element.value;
		} else if (element.name == "cgid") {
			cgid = element.value;
		} else if (element.name == "Quantity") {
			quantity = element.value;
		} else if (element.name == "colour") {
			if (parameterName == "colour") {
				colour = parameterValue;
			} else if (element.value != null) {
				colour = element.value;
			}
		} else if (element.name == "size") {
			if (parameterName == "size") {
				size = parameterValue;
			} else if (element.value != null) {
				size = element.value;
			}
		} else if (element.name == "character") {
			if (parameterName == "character") {
				character = parameterValue;
			} else if (element.value != null) {
				character = element.value;
			}
		}
	}
	var colourUrlPart = "";
	if (parameterNameToIgnore != "colour" && colour != null && colour != "@@@") {
		colourUrlPart = "&dwvar_" + pid + "_colour=" + colour;
	}
	var sizeUrlPart = "";
	if (parameterNameToIgnore != "size" && size != null && size != "@@@") {
		sizeUrlPart = "&dwvar_" + pid + "_size=" + size;
	}
	var characterUrlPart = "";
	if (parameterNameToIgnore != "character" && character != null && character != "@@@") {
		characterUrlPart = "&dwvar_" + pid + "_character=" + character;
	}

	// dwvar-parameter names are variation attribute parameters for the Demandware pipelet "UpdateProductVariationSelections": 
	url = url + "?pid=" + pid + "&cgid=" + cgid + "&Quantity=" + quantity + colourUrlPart + sizeUrlPart + characterUrlPart;
	window.location.href = url;
}

// for update product quantity with Ajax, builds the HTTP call for Ajax
function calculateTotalProductPrice(url, productID, quantity) {
	var ajax = new Ajax(url ,{method: "post", data: "pid="+productID+"&Quantity="+quantity , update: "productprice-total", onComplete: completeRequest }).request();
}

// for update product quantity with Ajax, but currently empty
function completeRequest() {
	// currently we do nothing
}

function submitSendToAFriend(form) {
	var ajax = new Ajax(form.action, {method: 'post', data: form, update: 'sendToFriend'}).request();
	return false;
}

function sendToFriend(url,sentUrl) {
	var ajax = new Ajax(url ,{method: "get", data: "sentUrl="+sentUrl , update: "sendToFriend", onComplete: completeRequest }).request();
}
