
function createMainTable() {
   try {
      var x = xmlDoc.getElementsByTagName('schedule');
      var myroot = document.getElementById('writemaintable');

      for (var i = 0; i < x.length; i++) {
         if (x[i].getAttribute('name') == current) {
            var title = document.createElement('SPAN');
            title.className = 'headertext';
            title.innerHTML = x[i].getAttribute('name');
            myroot.appendChild(title);

            var hr_ = document.createElement('HR');
            myroot.appendChild(hr_);

            var br_ = document.createElement('BR');
            myroot.appendChild(br_);

            var content = document.createElement('SPAN');
            content.className = 'paragraphtext';

            var newEl = document.createElement('TABLE');
            var tmp = document.createElement('TBODY');
            newEl.appendChild(tmp);
            var row = newEl.insertRow(0);
            var cnt = 0;
            var rows = 1;
            var cell;

            for (var j = 0; j < x[i].childNodes.length; j++) {
               if (x[i].childNodes[j].nodeType != 1) continue;
               cnt++;
               cell = document.createElement('TD');
               cell.innerHTML = x[i].childNodes[j].getAttribute('name');
               cell.onclick = function() { showContent(this); };
               cell.className= 'clickablecell';
               cell.onmouseout = function() { this.className= 'clickablecell'; };
               cell.onmouseover = function() { this.className= 'clickablecellhover'; };
               row.appendChild(cell);
               if (cnt > 0 && cnt % 2 == 0) {
                  row = newEl.insertRow(rows++);
               }
               
            }
            newEl.insertRow(row);

            if (cnt == 1) {               
               showContent(cell);
            }

            content.appendChild(newEl);
            myroot.appendChild(content);
            break;
         }
      }
   } catch (ex) {
      alert('createMainTable() - ' + ex);
   }
}

function showContent(elmnt) {
   if (!elmnt) return;
   try {
      currentShowingRow = -1; //Reset the row number!
      var myroot = document.getElementById('writesubtable');
      myroot.innerHTML = '';
      var newEl = document.createElement('TABLE');
      newEl.id = 'contentTable';
      var tmp = document.createElement('TBODY');
      newEl.appendChild(tmp);
      var row = document.createElement('TR');
      row.className = 'subtableheader';

      var container = document.createElement('TH');
      var theData = document.createTextNode('Meeting');
      container.appendChild(theData);
      row.appendChild(container);

      var container = document.createElement('TH');
      var theData = document.createTextNode('Date & Time');
      container.appendChild(theData);
      row.appendChild(container);

      var container = document.createElement('TH');
      var theData = document.createTextNode('Location');
      container.appendChild(theData);
      row.appendChild(container);

      tmp.appendChild(row);

      var xroot_ = xmlDoc.getElementsByTagName('schedule');

      for (var i = 0; i < xroot_.length; i++) {
         if (xroot_[i].nodeType != 1) continue;

         if (xroot_[i].getAttribute('name') == current) {
            var xitems_ = xroot_[i].getElementsByTagName('category');

            for (var j = 0; j < xitems_.length; j++) {
               if (xitems_[j].nodeType != 1) continue;

               var b = xitems_[j].getAttribute('name').replace(/&/,"&amp;");

               if (b == elmnt.innerHTML) {
                  var events_ = xitems_[j].getElementsByTagName('event');
                  var cntRows = 1;

                  for (n = 0; n < events_.length; n++) {
                     if (events_[n].nodeType != 1) continue;
                     var row = document.createElement('TR');
                     var dateCell = document.createElement('TD');

                     for (t = 0; t < events_[n].childNodes.length; t++) {
                        if (events_[n].childNodes[t].nodeType != 1) continue;
                        if (events_[n].childNodes[t].nodeName == 'details') {
                           var theData;
                           if (events_[n].childNodes[t].firstChild != null) {
                              theData = events_[n].childNodes[t].firstChild.nodeValue;
                           } else {
                              theData = ' ';
                           }
                           row.detailedInfo = theData;
                           var url = events_[n].childNodes[t].getAttribute('link');
                           if (url && url.length > 0) {
                              row.url = url;
                              var urlname = events_[n].childNodes[t].getAttribute('name');
                              if (urlname && urlname.length > 0) {
                                 row.urlname = urlname;
                              }
                           }
                           row.className='clickabledatecell';
                           row.onmouseover = function() { this.className='clickabledatecellhover'; };
                           row.onmouseout = function() { this.className='clickabledatecell'; };
                           row.title = 'Click here for more information';
                           continue;
                        }

                        if (events_[n].childNodes[t].nodeName == 'date') {
                           var theData;
                           if (events_[n].childNodes[t].firstChild != null) {
                              theData = document.createTextNode(events_[n].childNodes[t].firstChild.nodeValue);
                           } else {
                              theData = document.createTextNode(' ');
                           }
                           dateCell.appendChild(theData);
                           row.rowNumber = cntRows;
                           row.onclick = function() { showDetails(this); };
                           row.appendChild(dateCell);
                        } else {
                           var theData;
                           if (events_[n].childNodes[t].firstChild != null) {
                              theData = document.createTextNode(events_[n].childNodes[t].firstChild.nodeValue);
                           } else {
                              theData = document.createTextNode(' ');
                           }
                           var cell = document.createElement('TD');
                           cell.appendChild(theData);
                           row.appendChild(cell);                           
                        }
                     }

                     cntRows++;
                     tmp.appendChild(row);
                  }
                  break;
               }
            }
         }
         tmp.appendChild(row);
      }
      myroot.appendChild(newEl);
   } catch (ex) {
      alert('showContent() - ' + ex);
   }
}

var currentShowingRow = -1;

function showDetails(elmnt) {
   var skip = false;
   try {
      if (currentShowingRow > 0) {
         if ((elmnt.rowNumber + 1) == currentShowingRow) skip = true;
         var table = document.getElementById('contentTable');
         if (table) {
            table.deleteRow(currentShowingRow);
         }
         currentShowingRow = -1;
      }
      if (!skip && elmnt.detailedInfo) {
         var table = document.getElementById('contentTable');
         if (table) {
            currentShowingRow = elmnt.rowNumber + 1;
            var newRow = table.insertRow(currentShowingRow);
            var cell = newRow.insertCell(0);
            cell.className='detailscell';
            cell.setAttribute('colSpan', 3);
            var theData = document.createTextNode(elmnt.detailedInfo);
            cell.appendChild(theData);
            if (elmnt.url) {
               var br = document.createElement('BR');
               cell.appendChild(br);
               var a = document.createElement('A');
               a.setAttribute('href', elmnt.url);         
               a.className='detailsLink';
               a.innerHTML = elmnt.urlname;
               cell.appendChild(a);
            }
         }
      }
   } catch (ex) {
      alert('showDetails() - ' + ex);
   }
}

