jpmaps.updateavailability=
  function ( prodcat, stockcode, response ) {
    var item=prodcat+stockcode;
    inbasket=response.getAttribute('horus', 'inbasket', 0);
    available=response.getAttribute('horus', 'stocklevel', 0);
    reserved=response.getAttribute('horus', 'reserved', false);
    items=response.getAttribute('horus', 'items', 0);
    jpmaps.rightbasket(items);
    var buylink=document.getElementById('buylink'+item);
    horus.swapClass(buylink, reserved, 'reserved');
    horus.swapClass(buylink, inbasket==0 && available!=0, 'available');
    horus.swapClass(buylink, inbasket>0, 'basket');
  };


jpmaps.addtobasket=
  function ( event ) {
    var id=new horus.event(event).toId(true);
    var prodcat=id[0].replace(/^buylink/, '');
    var stockcode=Number(id[1]);

    var response=horus.ajax
      (jpmaps.currencyaction, 'add', { prodcat: prodcat, stockcode: stockcode });

    if (response) jpmaps.updateavailability(prodcat, stockcode, response);
  };


jpmaps.removefrombasket=
  function ( event ) {
    var id=new horus.event(event).toId(true);
    var prodcat=id[0].replace(/^buylink/, '');
    var stockcode=Number(id[1]);

    var response=horus.ajax
      (jpmaps.currencyaction, 'remove', { prodcat: prodcat, stockcode: stockcode });

    if (response) jpmaps.updateavailability(prodcat, stockcode, response);
  };

