var updateQtty = function(what, newquantity) {
    // local func, deals with basket to cookies
    $clear(BT);

    var myBasket = Cookie.get("basket").replace(what, newquantity);
    Cookie.remove("basket");
    Cookie.set("basket", myBasket, {duration: 365, path: "/"});
    basketSummary();
} // end updateQtty

var uQ = function(what, newquantity) {
    // by basket.php
    var myBasket = Cookie.get("basket").replace(what, newquantity);
    Cookie.remove("basket");
    Cookie.set("basket", myBasket, {duration: 365, path: "/"});
    (function() {reloadPage();}).delay(1000);
} // end uQ

var upQtty = function(loop, bstring) {
    // by ajax basket
    var maxQtty = $("stock"+loop).getProperty("value").toInt();
    var currentQtty = $("quantity"+loop).getProperty("value").toInt();
    var oldQtty = currentQtty;
    var displayQtty = $("quantityDisplay"+loop);

    if (currentQtty < maxQtty) {
        currentQtty++;
        $("quantity"+loop).setProperty("value", currentQtty);
        displayQtty.setText(currentQtty);
        updateQtty(bstring+oldQtty, bstring+currentQtty);
        stockCheck(loop);

        // 28/08/2008 23:52:46 we need to update lead times when qtty more than in stock.
        var leadsData = eval($("quantity"+loop).getProperty("data-leads"));
        $("dt"+loop).setText(leadsData[currentQtty-1]);
    }
    else {
        // change cursor?
        simpleBubble($("up" + loop), "No more<br />stock!");
    }
} // end upQtty

var downQtty = function(loop, bstring) {
    var maxQtty = $("stock"+loop).getProperty("value").toInt();
    var currentQtty = $("quantity"+loop).getProperty("value").toInt();
    var oldQtty = currentQtty;
    var displayQtty = $("quantityDisplay"+loop);

    if (currentQtty > 1) {
        currentQtty--;
        displayQtty.setText(currentQtty);
        $("quantity"+loop).setProperty("value", currentQtty);
        updateQtty(bstring+oldQtty, bstring+currentQtty);
        stockCheck(loop);

        // 28/08/2008 23:52:46 we need to update lead times when qtty more than in stock.
        var leadsData = eval($("quantity"+loop).getProperty("data-leads"));
        $("dt"+loop).setText(leadsData[currentQtty-1]);
    }
    else
    {
        // change cursor?
    }
} // end downQtty

var stockCheck = function(loop) {
    // check the stock level and sort the images out.
    var maxQtty = $("stock"+loop).getProperty("value").toInt();
    var currentQtty = $("quantity"+loop).getProperty("value").toInt();
    var upArrow = $("up"+loop);
    var downArrow = $("down"+loop);

    downArrow.setProperty("src", "/img/qtty-minus.gif");
    upArrow.setProperty("src", "/img/qtty-plus.gif");
    if (maxQtty == currentQtty)
        upArrow.setProperty("src", "/img/qtty-plus-off.gif");

    if (currentQtty == 1)
        downArrow.setProperty("src", "/img/qtty-minus-off.gif");
} // end stockCheck

var reloadPage = function() {
    window.location.href = unescape(window.location.pathname);
}

var BT;
var BasketShown = false;

var showBasket = function() {
    $clear(BT);
    if (!window.BT)
        getABasket();

    if (window.ie6) { // 17/10/2008 12:29:18 escape from dropdown
        $("flyBasketC").setStyle("left", -415);
    }

    $("flyBasket").setStyle("display", "inline");
    $("flyBasketC").removeEvents().addEvent("mouseenter", function() {
        $("flyBasketC").setProperty("rel", "inline");
        $clear(BT);
    }).addEvent("mouseleave", function() {
        $clear(BT);
        hideBasket();
    });
} // end showBasket

var hideBasket = function() {
    BT = (function() { clearUp() }).delay(750);
}

var clearUp = function() {
    // animation that closes the shopping basket
    myDestroy("myBubble"); // in case we have a warning for stock.
    if ($type(BT) != "number")
        return false;

    $clear(BT);
    var coords = $("flyBasketC").getCoordinates();   // get basket element as an object.

    // need a containing layer first to hold animation
    var container   = new Element("div", {
        id: "borderCont"
    }).setStyles({
        position: "absolute",
        "text-align": "left",
        "background-color": "white",
        border: "1px solid #000",
        "z-index": 100000
    }).inject(document.body).setStyles(coords);

    $("flyBasket").setStyle("display", "none");
    $("flyBasketC").setProperty("rel", ""); // hide basket

    var targetCoords = $("SBL").getCoordinates();
    var fx = new Fx.Styles(container, {duration: 150});
    fx.start({
	    height: 0,
	    width: targetCoords.width,
	    top: targetCoords.top+targetCoords.height,
	    left: targetCoords.left,
	    opacity: .3
    }).chain(function() {
	    container.remove();
        $clear(BT);
    });
}; // end clearUp


var removeFromABasket = function(what, prod, version, quantity) {
    // get rid of an item in ajax basket..
    togBasket.remove(prod, version, quantity);

    itemCount--;
    $("items").setText(itemCount);

    $('prod'+what).setHTML("<img src='/img/tiny_red.gif' border=0 /> Recalculating basket...");

    myBasket = '';
    getABasket();
    basketSummary();
    if (itemCount <= 0) {
        Total = 0;
        $("flyBasketC").setHTML('');
        $("fullBasket").setStyle("display", "none");
        $("emptyBasket").setStyle("display", "inline");
    }
}; // removeFromABasket


