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

function readData(file) {
  var request = getHTTPObject();
  if (request) {
    request.onreadystatechange = function() {
      displayResponse(request);
    };
    request.open("GET", file, true);
    request.send(null);
  }
}

/*
	renders the ajax response 
*/
function displayResponse(request) {
  var domain = "http://storelocator.barnesandnoble.com";
  if (request.readyState == 4) {
    if (request.status == 200 || request.status == 304) {
      var xmlDoc = request.responseXML;
			var nodes = xmlDoc.getElementsByTagName("availability");
			var renderedHTML = "";

            renderedHTML += "<ul>";
			for(var i=0; i<nodes.length; i++) {
				var classname = "";
				if(nodes[i].getElementsByTagName("instock")[0].firstChild.nodeValue == "false") {
					classname="class='no-stock'";
				}
				renderedHTML += "<li "+classname+"><a href='"+ domain + nodes[i].getElementsByTagName("url")[0].firstChild.nodeValue +"'>Barnes & Noble "+ nodes[i].getElementsByTagName("name")[0].firstChild.nodeValue  +"</a></li>";
			}
            renderedHTML += "</ul>";

			if(renderedHTML == "") {
				renderedHTML = "sorry, no results for this zip code";
			}
			document.getElementById('StoreAvailabilityOutput').innerHTML += renderedHTML;
		}
  }
}

/* 
	testing form capabilities 
*/
function checkAvailability() {
	readData('inventory.xml');
	return false;
}