var http_request = false;

function makeRequest(url,elementId) {

  http_request = false;
  if (window.XMLHttpRequest) { // Mozilla, Safari,...
      http_request = new XMLHttpRequest();
      if (http_request.overrideMimeType) {
          http_request.overrideMimeType('text/xml');
      }
  } else if (window.ActiveXObject) { // IE
      try {
          http_request = new ActiveXObject("Msxml2.XMLHTTP");
      } catch (e) {
          try {
          http_request = new ActiveXObject("Microsoft.XMLHTTP");
          } catch (e) {}
      }
  }
  
  if (!http_request) {
      alert('Cannot create an XMLHTTP instance');
      return false;
  }
  urlUPPER=url.toUpperCase();
  if (urlUPPER.substring(urlUPPER.length-4,urlUPPER.length)==".XML")
     { http_request.onreadystatechange = alertContentsXML; }
  else { http_request.onreadystatechange = alertContentsHTML; }
  http_request.open('GET', url, true);
  http_request.send(null);
}

function alertContentsXML() {
		
		var placeString="";
		var personString="";

    if (http_request.readyState == 4) {
        if (http_request.status == 200) {						
						var xmldoc = http_request.responseXML;
						var year_nodes = xmldoc.getElementsByTagName('year');
						document.getElementById("date").innerHTML = "<h3>Timeline</h3>";
            document.getElementById("eventDescription").innerHTML = "<h3>Event</h3>";
            document.getElementById("places").innerHTML = "<h3>Places</h3>";
            document.getElementById("people").innerHTML = "<h3>People</h3>";
						for (var y=0; y<year_nodes.length; y++)
						{
						  var year_date_node = year_nodes[y].getElementsByTagName('year_since_AD');
            	document.getElementById("date").innerHTML += '<div class="group">&nbsp;'+year_date_node[0].firstChild.nodeValue+'</div>';
            	document.getElementById("eventDescription").innerHTML += '<div class="group">'+''+'</div>';
            	document.getElementById("places").innerHTML += '<div class="group">'+''+'</div>';
            	document.getElementById("people").innerHTML += '<div class="group">'+''+'</div>';
						 	
							var event_nodes = year_nodes[y].getElementsByTagName('event');
  						for (var i=0; i<event_nodes.length; i++)
              {
								var date_nodes = event_nodes[i].getElementsByTagName('event_date');
								var day_node = date_nodes[0].getElementsByTagName('event_day');
								var month_node = date_nodes[0].getElementsByTagName('event_month');
								var year_node = date_nodes[0].getElementsByTagName('event_year');

								if (day_node[0].childNodes.length==0) {var eventDay='';}
								else {var eventDay=day_node[0].firstChild.nodeValue;}
								if (month_node[0].childNodes.length==0) {var eventMonth='';}
								else {var eventMonth=month_node[0].firstChild.nodeValue;}
								var event_date = eventDay+' '+eventMonth+' '+year_node[0].firstChild.nodeValue;								
        				var event_title = event_nodes[i].getElementsByTagName('event_title');								
        				var description_nodes = event_nodes[i].getElementsByTagName('event_description');
        				var people_nodes = event_nodes[i].getElementsByTagName('person');
        				var places_nodes = event_nodes[i].getElementsByTagName('place');

              	document.getElementById("date").innerHTML += '<div class="infoBlock date">&nbsp;'+event_date+'</div>';
              	document.getElementById("eventDescription").innerHTML += '<div class="infoBlock"><h3>'+event_title[0].firstChild.nodeValue+'</h3>'+description_nodes[0].firstChild.nodeValue+'</div>';

								placeString="";
								if (places_nodes.length>0)
								{
      						for (var places=0; places<places_nodes.length; places++)
                  {
									 if (places_nodes[places].childNodes.length>0)
									 {
    								 var placeNodeValue=places_nodes[places].firstChild.nodeValue;
  									 if (placeNodeValue) 
  									 {
      								 var placeNodeValueUs="'"+placeNodeValue.replace(/ /g,"_")+"'";
      								 placeString=placeString+'<a class="plainLink" href="#" onclick="addToSelection('+placeNodeValueUs+');">'+placeNodeValue+'</a><br />';
  									 }
									 }
  								}
								}
              	document.getElementById("places").innerHTML += '<div class="infoBlock">'+placeString+'</div>';

								personString="";
								if (people_nodes.length>0)
								{
      						for (var people=0; people<people_nodes.length; people++)
                  {
									 if (people_nodes[people].childNodes.length>0)
									 {
    								 var personNodeValue=people_nodes[people].firstChild.nodeValue;
    								 if (personNodeValue)
  									 {
    									 var personNodeValueUs="'"+personNodeValue.replace(/ /g,"_")+"'";
      								 personString=personString+'<a class="plainLink" href="#" onclick="addToSelection('+personNodeValueUs+');">'+personNodeValue+'</a><br />';
  									 }
									 }
  								}
								}
  							document.getElementById('people').innerHTML += '<div class="infoBlock">'+personString+'</div>';
              }
						}
						document.getElementById("original").innerHTML = document.getElementById("eventDescription").innerHTML;
        } else {
            alert('There was a problem with the request.');
        }
    }
}

function alertContentsHTML() {
    if (http_request.readyState == 4) {
        if (http_request.status == 200) {
            document.getElementById("update").innerHTML = http_request.responseText;
        } else {
            alert('There was a problem with the request.');
        }
    }
}
