window.onload = init;

function init() {
  prepareLinks("storefront","cart","shoppingcart.php");
  prepareLinks("cart","cart","shoppingcart.php");
}

function prepareLinks(containerId,canvasId,file) {
  if (!document.getElementById) return false;
  if (!document.getElementById(containerId)) return false;
  if (!document.getElementById(canvasId)) return false;
  var links = document.getElementById(containerId).getElementsByTagName("a");
  for (var i=0; i<links.length; i++) {
    links[i].canvasId = canvasId;
    links[i].file = file;
    links[i].onclick = function() {
      var data = this.getAttribute("href").split("?")[1];
      return (!sendData(data,this.file,this.canvasId));
    };
  }
}

function sendData(data,file,canvasId) {
  var request = getHTTPObject();
  if (request) {
    request.onreadystatechange = function() {
      parseResponse(request,canvasId);
    };
    request.open( "POST", file, true );
    request.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
    request.send(data);
    return true;
  } else {
    return false;
  }
}

function parseResponse(request,canvasId) {
  if (request.readyState == 4) {
    if (request.status == 200) {
      document.getElementById(canvasId).innerHTML = request.responseText;
      init();
    }
  }
}

function getHTTPObject() {
  var xhr = false;
  if (window.ActiveXObject) {
    try {
      xhr = new ActiveXObject("Msxml2.XMLHTTP");
    } catch(e) {
      try {
        xhr = new ActiveXObject("Microsoft.XMLHTTP");
      } catch(e) {
        xhr = false;
      }
    }
  } else if (window.XMLHttpRequest) {
    try {
      xhr = new XMLHttpRequest();
    } catch(e) {
      xhr = false;
    }
  }
  return xhr;
}