function cartAdd(linkElement)
{
  var queryString = linkElement.href.match(/\?(.*)$/)[1]; // grab the query string from the link's url
  
  new Ajax.Request('cart.add', {
    method: 'post',
    onSuccess: cartAddCallback,
    postBody: queryString
  });

  return false;
}

function cartAddCallback()
{
  $('return_to_cart').style.display = 'block';
  $('shopping_cart_nav_item').style.display = 'list-item';
  
  alert('The item has been added to your basket.\n\nOnce you\'re finished, please click the "Shopping Cart" button in the top right of the page.');
}

function getVarFromUrl(url, varName)
{
  var startGetVars = url.indexOf('?');
  if (startGetVars == -1)
  return false;

  var getStr = url.substring(startGetVars + 1, url.length);

  var startResultStr = getStr.indexOf(varName + '=');
  if (startResultStr == -1) return false;
  startResultStr += varName.length + 1;

  if (getStr[startResultStr] == '&')
  startResultStr++;

  var endResultStr = getStr.indexOf('&', startResultStr);
  if (endResultStr == -1)
  endResultStr = getStr.length;

  var resultStr = getStr.substring(startResultStr, endResultStr);

  resultStr = resultStr.replace(/\+/g, ' ');

  return resultStr;
}

function countrySelectDidChange()
{
  var newValue = $('country_select').value;
  
  new Ajax.Request('cart.set-country?newCountry=' + newValue, {
    onSuccess: countrySelectDidChangeCallback
  });
}

function countrySelectDidChangeCallback(xhr)
{
  var result = eval('(' + xhr.responseText + ')');
  $('cart-edit-cart-total').innerHTML = result.cartTotal;
  $('cart-edit-gst-total').innerHTML = result.gstTotal;
}