var xmlhttpL;
var xmlhttpT;
var listRel;
var tableRel;

function getData( xmlEl, alttxt )
{
  try
  {
    return xmlEl.firstChild.data;
  }
  catch (er)
  {
    return alttxt;
  }
}

function loadXMLList(url, rel) 
{
xmlhttpL=null
listRel = rel
// code for Mozilla, etc.
if (window.XMLHttpRequest)
  {
  xmlhttpL=new XMLHttpRequest()
  }
// code for IE
else if (window.ActiveXObject)
  {
  xmlhttpL=new ActiveXObject("Microsoft.XMLHTTP")
  }
if (xmlhttpL!=null)
  {
  xmlhttpL.onreadystatechange=setlist;
  xmlhttpL.open("GET",url,true);
  xmlhttpL.setRequestHeader( "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT" );
  xmlhttpL.send(null);
  }
else
  {
  alert("Your browser does not support XMLHTTP.")
  }
}

function loadXMLTable(url, rel) 
{
xmlhttpT=null
tableRel = rel
// code for Mozilla, etc.
if (window.XMLHttpRequest)
  {
  xmlhttpT=new XMLHttpRequest()
  }
// code for IE
else if (window.ActiveXObject)
  {
  xmlhttpT=new ActiveXObject("Microsoft.XMLHTTP")
  }
if (xmlhttpT!=null)
  {
  xmlhttpT.onreadystatechange=settable;
  xmlhttpT.open("GET",url,true);
  xmlhttpT.setRequestHeader( "If-Modified-Since", "Sat, 1 Jan 2000 00:00:00 GMT" );
  xmlhttpT.send(null);
  }
else
  {
  alert("Your browser does not support XMLHTTP.")
  }
}

function checkReadyState(obj)
{
  if(obj.readyState == 4)
  {
    if(obj.status == 200)
    {
      return true;
    }
    else
    {
      alert("Problem retrieving XML data");
    }
  }
}

function setlist( )
{
  if(checkReadyState(xmlhttpL))
  {
    var response = xmlhttpL.responseXML.documentElement;
    var listtxt = '';
    var c = 0, w = 0;
    listtxt += '<span style="font-weight: bold;">Locations:</span><br />';
    x=response.getElementsByTagName("marker")
    for (i=0;i<x.length;i++)
    {
      c = w = 0;
      listtxt += '&nbsp;&nbsp;&nbsp; <span style="font-style: italic;">';
      xx = x[i].getElementsByTagName("town");

      listtxt +=  getData( xx[0], '' ) + ':';

      listtxt += '</span><br />';

      listtxt += '<div style="text-align: right;">';
      xx = x[i].getElementsByTagName("venue");

      listtxt += getData( xx[0], '' ) + " ";

      xx = x[i].getElementsByTagName("date");
      for (j=0;j<xx.length;j++)
	{

	  cltype = xx[j].getAttribute( "cltype" );
	  if( cltype == "c" )
	    c = 1;	  
	  else if( cltype == "w" )
	    w = 1;	  
	}
      if( c )
	listtxt += '<img class="cimg" alt="C" src="' + listRel + 'images/Course.png" />';
      if( w )
	listtxt += '<img class="cimg" alt="W" src="' + listRel + 'images/Workshop.png" />';
      listtxt += '<br />';
      listtxt += '</div>';
    }
    var placelist = document.getElementById("places");
    placelist.innerHTML = listtxt;
  }
}

function settable( )
{
  if(checkReadyState(xmlhttpT))
  {
    var response = xmlhttpT.responseXML.documentElement;
    var tabletxt = '';
    var c = 0, w = 0;
    tabletxt += '<table id="timestable" class="timestable" style="width: 100%; height: 30em; text-align: left; margin-left: auto; margin-right: auto;" border="1" cellpadding="2" cellspacing="1"><tbody>';

    x=response.getElementsByTagName("marker")
    for (i=0;i<x.length;i++)
    {
      dx = x[i].getElementsByTagName("date");

      tabletxt += '<tr><td class="venuename" colspan="1" rowspan=';
      tabletxt += '"' + dx.length + '"';
      tabletxt += '><span onmouseover="classover(' + i + ')" onmouseout="classout(' + i + ')">';

      xx = x[i].getElementsByTagName("town");
      
      tabletxt += getData( xx[0], '' ) + "<br />";

      xx = x[i].getElementsByTagName("venue");

      tabletxt += getData( xx[0], '' ) + "</span></td>";

      for (j=0;j<dx.length;j++)
	{
	if( j == 1 )
	  tabletxt += '<tr>';
	try
          {
	  tnum = 4 - dx[j].getAttribute( "num" );
	  tabletxt += '<td>';
	  var cltimes = dx[j].firstChild.data;
	  cltimes = cltimes.replace(/, /g, '<br />');
	  clspan = '</td><td colspan="' + tnum  + '">';
	  cltimes = cltimes.replace(/: /g, clspan );
	  cltimes = cltimes.replace(/; /g, clspan );
	  tabletxt += cltimes;
	  tabletxt += '</td></tr>';
	  }
        catch (er)
          {
          }
	}
    }
    tabletxt += '</tbody></table>';
    var timestable = document.getElementById("timestable");
    timestable.innerHTML = tabletxt;
  }
}
