

function UpdateCart(productId, amount) {

    SendAjaxRequest("Shoppingcart", "UpdateShoppingCart", "pid=" + productId + "&amount=" + amount, null);
}

function AddOneToCart(productId) {

    SendAjaxRequest("Shoppingcart", "UpdateShoppingCart", "pid=" + productId + "&add=1", productId);

}

function RemoveOneFromCart(productId) {

    SendAjaxRequest("Shoppingcart", "UpdateShoppingCart", "pid=" + productId + "&remove=1", null);
}

function AddHaeuberlToCart(productId, haeuberlId, amount) {

    SendAjaxRequest("Shoppingcart", "UpdateShoppingCartWithHaeuberl",
                                    "pid=" + productId + "&hid=" + haeuberlId + "&amount=" + amount, 
                                    productId);
}

function SendAjaxRequest(controller, action, parameters, productId) {

    var xmlHttpDisplay = GetXmlHttpObject();

    if (xmlHttpDisplay == null) {
        alert('Your browser does not support AJAX!');
        return;
    }

    var url = 'index.php?c=' + controller;

    if (action != '') {
        url = url + '&a=' + action;
    }

    if (parameters != '') {
        url = url + '&' + parameters;
    }
    url = url + '&sid=' + Math.random();

    //dayCell.innerHTML = document.getElementById('divLoading').innerHTML;

    try {
        xmlHttpDisplay.onreadystatechange = function() {
            // in case of network errors this might not give reliable results
            if (xmlHttpDisplay.readyState == 4) {

                if (xmlHttpDisplay.responseText == 'false') {
                    alert('Error reading data. Please contact support.');
                    //dayCell.style.backgroundColor = '#ff0000';
                    return;
                }

                var resultArray = xmlHttpDisplay.responseText.split(';');

				// Update shopping cart in the menu
                if (document.getElementById(controller) != null) {
					document.getElementById(controller).innerHTML = resultArray[0];
				}
				
				// Update field on the Assortment page:
				if (document.getElementById('Cart_' + productId) != null) {
					document.getElementById('Cart_' + productId).innerHTML = resultArray[1];
				}
				
				if (document.getElementById('CartEditLink_' + productId) != null) {
					if (document.getElementById('CartEditLink_' + productId).style.visibility == 'hidden') {
						document.getElementById('Cart_' + productId).innerHTML += document.getElementById('CartEditLink_' + productId).innerHTML
					}
				}
				
				// Update field on the ProductContents page:
				if (document.getElementById('Contents_' + productId) != null) {
					document.getElementById('Contents_' + productId).innerHTML = resultArray[1];
				}
				
				//document.getElementById('eff' + dayCell.id).focus();
                //document.getElementById('eff' + dayCell.id).select();
            }
        }

        xmlHttpDisplay.open('POST', url, true);
        xmlHttpDisplay.send(null);
    }
    catch (e) {
        alert('e: '+ e);
        return;
    }
}

// http://www.hiteshagrawal.com/javascript/javascript-parsing-xml-in-javascript

function GetXmlHttpObject() {
    var xmlHttp = null;
    try {
        // Firefox, Opera 8.0+, Safari
        xmlHttp = new XMLHttpRequest();
    }
    catch (e) {
        // Internet Explorer
        try {
            xmlHttp = new ActiveXObject('Msxml2.XMLDOM');
        }
        catch (e) {
            xmlHttp = new ActiveXObject('Microsoft.XMLDOM');
        }
    }
    return xmlHttp;
}
