function callBasketHandler(id, action) {
	var xwtObj = new XWTObject();
	xwtObj.setParameter('AJAX_HANDLER', 'basket');
	xwtObj.setParameter('action', action);
	xwtObj.setParameter('id', id);
	var callback = new BasketCallback();
	xwtObj.setCallbackHandler(callback);
	var path = '/AJAXControllerServlet';
	xwtObj.submit(path + '?' + xwtObj.getQuery(xwtObj));
}
function BasketCallback() {
	this.callback = function(reqResponseXML) {
		var resultType = reqResponseXML.getElementsByTagName("type")[0].childNodes[0].nodeValue;
		var idValue = reqResponseXML.getElementsByTagName("id")[0].childNodes[0].nodeValue;
		var contextValue = reqResponseXML.getElementsByTagName("result")[0].childNodes[0].nodeValue;
		var exception = reqResponseXML.getElementsByTagName("exception")[0];
		var ids = idValue.split(',');
		var contexts = contextValue.split(',');
		var context = contexts[0];
		for (var index in ids) {
			var id = ids[index];
			if (id == '') {
				continue;
			}
			var checkedId = document.getElementById('id_' + id);
			var updateArea = document.getElementById('itemArea_' + id);
			if (resultType == 'multiple') {
				context = contexts[index];
			}
			if ('true' == context) {
				if (checkedId.checked) {
					checkedId.checked = false;
					updateId(checkedId);
				}
				updateArea.style.display = '';
			} else {
				updateArea.style.display = 'none';
				if ((exception) && (checkedId.checked)) {
					checkedId.checked = false;
					updateId(checkedId);
				}
			}
		}
		if (exception) {
				alert(exception.childNodes[0].nodeValue);
		} else {
			// "header_myBasketCount" is the id of the basket counter number at the header
			var countNode = reqResponseXML.getElementsByTagName("count")[0].childNodes[0];
			if (countNode != null) {
				var count = countNode.nodeValue;				
				document.getElementById("header_myBasketCount").innerHTML = count;
			}
		}
	}
}