    var basketCall, basketNode, basketReq;

    function GetXml(file, str) {
        basketReq = false;
    
        if (window.XMLHttpRequest) { // Mozilla, Safari,...
            basketReq = new XMLHttpRequest();
            if (basketReq.overrideMimeType) {
                basketReq.overrideMimeType('text/xml');
            }
        } else if (window.ActiveXObject) { // IE
            try {
                basketReq = new ActiveXObject("Msxml2.XMLHTTP");
            } catch (e) {
                try {
	                basketReq = new ActiveXObject("Microsoft.XMLHTTP");
                } catch (e) {}
            }
        }

        if (!basketReq) {
            alert('Giving up :( Cannot create an XMLHTTP instance');
            return false;
        }
        else {
            basketReq.onreadystatechange = ProcessFormXML;
            basketReq.open("POST", file, true);
            basketReq.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=UTF-8");
            basketReq.send(str);
            
            return basketReq;
        }
    }
    function ProcessFormXML() {
        if (basketReq.readyState == 4) {
            if (basketReq.status == 200) {
	            //alert(http_request.responseText);
	            basketNode = "";
	            basketNode =  basketReq.responseXML.documentElement;
	            eval(basketCall);
            } else {
	            alert('There was a problem with the request.');
            }
        }
    }
    function ftnUpdateBasketItemQty(basketId, qty) {
        basketCall = "ftnProcessBasketUpdate("+basketId+", "+qty+");";
        var url = "include/updateBasket.asp";
        var str = "basketId=" + basketId + "&qty=" + qty;
        basketReq = GetXml(url, str);
        setTimeout("location.reload(true)", 500);
    }
    function ftnUpdateBasketItemQtyConfirm(basketId, qty) {
        var url = "include/updateBasket.asp";
        var str = "basketId=" + basketId + "&qty=" + qty;
        basketReq = GetXml(url, str);
        setTimeout("location.reload(true)", 1000);
    }
    function ftnProcessBasketUpdate(basketId, qty) {
        var subtotal, vat, totalbeforeship, delivery, total;
        if (basketNode.childNodes != null) {
            if (basketNode.childNodes.item(0).getAttribute("subtotal") != null && document.getElementById("basketSubTotal") != null) {
                subtotal = parseFloat(basketNode.childNodes.item(0).getAttribute("subtotal"));
                document.getElementById("basketSubTotal").innerHTML = "&pound;" + subtotal.toFixed(2);
            }
            if (basketNode.childNodes.item(0).getAttribute("vat") != null && document.getElementById("basketVAT") != null) {
                vat = parseFloat(basketNode.childNodes.item(0).getAttribute("vat"));
                document.getElementById("basketVAT").innerHTML = "&pound;" + vat.toFixed(2);
            }
            if (basketNode.childNodes.item(0).getAttribute("totalbeforeship") != null && document.getElementById("basketTotalBeforeShipping") != null) {
                totalbeforeship = parseFloat(basketNode.childNodes.item(0).getAttribute("totalbeforeship"));
                document.getElementById("basketTotalBeforeShipping").innerHTML = "&pound;" + totalbeforeship.toFixed(2);
                // checkoutDelivery only
                if (document.getElementById("d_subTotal") != null)
                    document.getElementById("d_subTotal").innerHTML = "&pound;" + totalbeforeship.toFixed(2);
            }
            if (basketNode.childNodes.item(0).getAttribute("delivery") != null) {
                delivery = parseFloat(basketNode.childNodes.item(0).getAttribute("delivery"));
                if (document.getElementById("basketDelivery") != null) 
                    document.getElementById("basketDelivery").innerHTML = "&pound;" + delivery.toFixed(2);
                
                if (document.getElementById("standardDelivery") != null)
                    document.getElementById("standardDelivery").innerHTML = "&pound;" + delivery.toFixed(2);
                
                if (document.getElementById("deliveryCharge") != null)
                    document.getElementById("deliveryCharge").innerHTML = "&pound;" + delivery.toFixed(2);
            }
            if (basketNode.childNodes.item(0).getAttribute("total") != null) {
                total = parseFloat(basketNode.childNodes.item(0).getAttribute("total"));
                if (document.getElementById("basketTotal") != null)
                    document.getElementById("basketTotal").innerHTML = "&pound;" + total.toFixed(2);
                    
                if (document.getElementById("totalIncDelivery") != null)
                    document.getElementById("totalIncDelivery").innerHTML = "&pound;" + total.toFixed(2);
            }
            
            var item = "basketItem" + basketId;
            var elemPrice = "currPrice" + basketId;
            var itemTotal = parseFloat(document.getElementById(elemPrice).value * qty);
            document.getElementById(item).innerHTML = "&pound;" + itemTotal.toFixed(2);
            
        }
    }
