var upcomingEvents = [];
var ongoingEvents = [];
var relatedEvents = [];
var pastEvents = [];
var pastProjects = [];
var buttons = [];
var selectedButton = '';
var hasTechNotes = 0;

var Button = function(buttonName) {
  this.name = buttonName;  
  this.buttonid = '';
  this.divid = '';
  this.active = false;
  this.state = 0;
  }

Button.prototype.add = function(buttonid, divid) {
  //alert(buttonid);
  this.buttonid = buttonid;
  this.divid = divid;
  this.active = true;
  this.state = 0;
  //var buttonId = this.buttonid;
  //$(buttonId).show();
  }

Button.prototype.press = function() {
  var buttonId = this.buttonid;
  var divId = this.divid;
  if (this.name == 'text') {
    $('#eventHeader').show();
    }
  $(buttonId).addClass("selectedButton");
  $(divId).show();
  this.state = 1;
  }

Button.prototype.hide = function() {
  var buttonId = this.buttonid;
  var divId = this.divid;  
  if (this.name == 'text') {
    $('#eventHeader').hide();
    }  
  $(buttonId).removeClass("selectedButton");
  $(divId).hide();
  this.state = 0;
  }

function showText(buttonPressed) {
  //alert(selectedButton);
	if (selectedButton == buttonPressed) {
	  } else if (selectedButton != '') {
	    buttons[selectedButton].hide();
      buttons[buttonPressed].press();
	    selectedButton = buttonPressed;		
	  } else {
	    buttons[buttonPressed].press();
	    selectedButton = buttonPressed;
	  }
	//secondsx = new Date().getTime();
  }

function setLinksTarget(divid) {
  $('#' + divid + " a").each(function () {
//Dont make Javascript a href's open in a new tab.
    $(this).attr("target", "_blank");
    });
  }

function showLoading() {
  }

function hideLoading() {
  }


function populatePage(data) {
  var title = data.text.title;
  var shortName = data.text.shortName;
  var eventHeader = data.text.header;
  var bodyText = data.text.body;
  var techNotes = data.text.techNotes;
  var schedule = data.text.schedule;
  var scheduleButtonText = data.text.scheduleButton;
  var optBtn2 = data.text.optBtn2;
  var optText2 = data.text.optText2;
  var optBtn3 = data.text.optBtn3;
  var optText3 = data.text.optText3;
  if (techNotes != null) {
    hasTechNotes = 1;
    }  
  viewId = data.text.view;  
  
  var linkInc = 0;

  var filesHtml = '';
  var imagesHtml = '';
  var linksHtml = '';
  var videosHtml = '';
  var pastEventsHtml = '';
  var upcomingEventsHtml = '';
  var ongoingEventsHtml = '';
  var pastProjectsHtml = '';
  var relatedEventsHtml = '';
  var fileInc = 0;

  if (data.resources) {
    while (resourceData = data.resources[resourceInc]) {
      if (resourceData.type == 1) {
        files[fileInc] = new File(fileInc);
        files[fileInc].populate(resourceData);
        filesHtml += files[fileInc].getHtml();
        fileInc++; 
        } else if (data.resources[resourceInc].type == 2) {
        images[imageInc] = new MyImage(imageInc);
        images[imageInc].populate(resourceData);
        //images[imageInc].preload();
        imagesHtml += images[imageInc].getHtml();
        imageInc++;
        }
      resourceInc++;
      }
    }

  if (data.links) {
    while (linkData = data.links[linkInc]) {
      links[linkInc] = new Link(linkInc);
      links[linkInc].populate(linkData);
      linksHtml += links[linkInc].getHtml();
      linkInc++;
      }
    //linksHtml += "<br />";
    }
  
  if (data.video) {
    while (videoData = data.video[videoInc]) {
      videos[videoInc] = new Video(videoInc);
      videos[videoInc].populate(videoData);
      videosHtml += videos[videoInc].getHtml();
      //alert(videosHtml);
      videoInc++;
      }
    }

  var relatedeventi = 0;
  if (data.events.related.events != null) {
    while (relatedEvent = data.events.related.events[relatedeventi]) {
      relatedEvents[relatedeventi] = new Event(relatedEvent, "relatedevent");
      relatedEventsHtml += relatedEvents[relatedeventi].getHtml();
      relatedeventi++;
      }
    }

  var relatednewsi = 0;
  var relatedNewsHtml = '';
  if (data.events.related.news != null) {
    while (relatedNews = data.events.related.news[relatednewsi]) {
      relatedNews[relatednewsi] = new Event(relatedNews, "relatednews");
      relatedNewsHtml += relatedNews[relatednewsi].getHtml();
      relatednewsi++;
      }
    }

  var ongoingeventi = 0;
  if (data.events.ongoing) {
    while (ongoingEvent = data.events.ongoing[ongoingeventi]) {
      ongoingEvents[ongoingeventi] = new Event(ongoingEvent, "ongoing");
      ongoingEventsHtml += ongoingEvents[ongoingeventi].getHtml();
      ongoingeventi++;
      }
    }

  var pastprojectsi = 0;
  if (data.events.pastprojects) {
    while (pastProject = data.events.pastprojects[pastprojectsi]) {
      pastProjects[pastprojectsi] = new Event(pastProject, "pastproject");
      pastProjectsHtml += pastProjects[pastprojectsi].getHtml();
      pastprojectsi++;
      }
    }

  var pasteventi = 0;
  while (pastEvent = data.events.past[pasteventi]) {
    pastEvents[pasteventi] = new Event(pastEvent, "past");
    pastEventsHtml += pastEvents[pasteventi].getHtml();
    pasteventi++;
    }
 
  var upcomingeventi = 0;
  if (data.events.upcoming) {
    while (upcomingEvent = data.events.upcoming[upcomingeventi]) {
      upcomingEvents[upcomingeventi] = new Event(upcomingEvent, "upcoming");
      upcomingEventsHtml += upcomingEvents[upcomingeventi].getHtml();
      upcomingeventi++;
      }
    }

//Dealing with the family..
  if (data.isParent == 1) {
    var childeventi = 0;
    var childEvents = [];
    var childTechNotes = '';
    var childImagesHtml = '';
    var childEventsHtml = '';
    while (childEvent = data.children[childeventi]) {
      childEvents[childeventi] = new ChildEvent(childeventi);
      childEvents[childeventi].populate(childEvent);
      childTechNotes += childEvents[childeventi].getTechHtml();
      childImagesHtml += childEvents[childeventi].getImagesHtml();
      childEventsHtml += childEvents[childeventi].getRightHtml();
      childeventi++;      
      }
    techNotes += childTechNotes;
    imagesHtml += childImagesHtml;
    $('#childEvents').append(childEventsHtml);
    $('#childEvents').show();
    }                
  
  if (data.isChild == 1) {
    var parentEventId = data.parent.id;
    var parentEventTitle = data.parent.title;
    var parentHtml = '';
    parentHtml += "<div class='parentEvent'>";
    parentHtml += "<a href='event.php?id=" + parentEventId + "'>";
    parentHtml += parentEventTitle;
    parentHtml += "</a>";
    parentHtml += "</div>";
    var siblingi = 0;
    var siblingsHtml = '';
    var siblingEvents = [];
    siblingsHtml += "<div class='siblingEvents'>";
    while (siblingEvent = data.siblings[siblingi]) {
      siblingEvents[siblingi] = new Event(siblingEvent, "sibling");
      siblingsHtml += siblingEvents[siblingi].getHtml();
      siblingi++;
      }
    siblingsHtml += "</div>";
    childEventsHtml = parentHtml + siblingsHtml;
    $('#childEvents').append(childEventsHtml);
    $('#childEvents').show();    
    }
  initButtons();
//Begin adding data to page.
  buttons['text'].add("#textButton", "#eventBody");
  $('#textButton').click(function() { showText("text") });
  $('#textButton').show();
 /* if (videoInc != 0) {
    if (buttons["videos"]) {
      buttons['videos'].add("#videosButton", "#videos");
      $('#videosButton').click(function() {showText("videos") });
      } else {
      $('#videos').show();
      }
    $('#videos').html(videosHtml);
    }
  */
  if (schedule != null && schedule != '') {
    $('#schedule').append(schedule);
    if (buttons['schedule']) {
      buttons['schedule'].add('#scheduleButton', '#schedule');
      $('#scheduleButton').click(function() { showText('schedule') });
      if (scheduleButtonText == '') { scheduleButtonText = 'Schedule'; }
      $('#scheduleButton').html(scheduleButtonText);      
      $('#scheduleButton').show();
      } else {
      $('#schedule').show();
      }  
    }

  if (optBtn2 != null && optBtn2 != '' && optBtn2 != 'undefined') {
    $('#optText2').html(optText2);
    if (buttons['optBtn2']) {
      buttons['optBtn2'].add('#optBtn2', '#optText2');
      $('#optBtn2').click(function() { showText('optBtn2') });
      $('#optBtn2').html(optBtn2);   
      $('#optBtn2').show();
      } else {
      $('#optText2').show();
      }   
    } else {
    $('#optBtn2').hide();
    }

  if (optBtn3 != null && optBtn3 != '' && optBtn3 != 'undefined') {
    $('#optText3').html(optText3);
    if (buttons['optBtn3']) {
      buttons['optBtn3'].add('#optBtn3', '#optText3');
      $('#optBtn3').click(function() { showText('optBtn3') });
      $('#optBtn3').html(optBtn3);      
      $('#optBtn3').show();
      } else {
      $('#optText3').show();
      }  
    } else {
    $('#optBtn3').hide();
    }

  if (techNotes != '' && techNotes != null) {
    $('#techNotes').append(techNotes);
    if (buttons['techNotes']) {
      buttons['techNotes'].add('#techNotesButton', '#techNotes');
      $('#techNotesButton').click(function() { showText('techNotes') });
      $('#techNotesButton').show();
      } else {
      $('#techNotes').show();
      }
    }

  if (fileInc != 0 || linkInc != 0) {
    if (buttons['resources']) {
      buttons['resources'].add('#resourcesButton', '#resources');
      $('#resourcesButton').click(function() { showText("resources") });
      $('#resourcesButton').show();
      } else {
      $('#resources').show();
      }
    }

  if (fileInc != 0) {
    $('#files').append(filesHtml);
    $('#files').show();
    setLinksTarget('files');
    }
  
  if (linkInc != 0) {
    $('#links').append(linksHtml);
    $('#links').show();
    setLinksTarget('links');    
    }

  if (imageInc != 0) {
    if (buttons['images']) {
      buttons['images'].add('#imagesButton', '#images');
      $('#imagesButton').click(function() { showText("images") });
      $('#imagesButton').show();
      } else {
      $('#images').show();
      }
    $('#images').append(imagesHtml);
    $('#images').load(function() {
      for (var i=0; i < images.length; i++) {
        images[i].preload();
        }
      });
    }

  if (videoInc != 0) {
    if (buttons['videos']) {
      buttons['videos'].add('#videosButton', '#videos');
      $('#videosButton').click(function() { showText("videos") });
      } else {
      $('#videos').show();
      }
    $('#videos').append(videosHtml);
    //$.getScript("js/swfobject.js", function() {
    for (var i=0;i<videos.length;i++) {
      var thisVideo = videos[i];
      swfobject.embedSWF("flvplayer.swf","videoPlayer" + i, '400', '300', "9.0.115.0", '', {'file': "../" + thisVideo.mp4, 'image': "../" + thisVideo.imageLoc, 'bufferlength': '5' });
      }
     // });    
    }

  if (upcomingeventi != 0) {
    $('#upcomingEvents').show();
    $('#upcomingEvents').append(upcomingEventsHtml);
    }
  
  if (relatedeventi != 0) {
    $('#relatedEvents').show();
    $('#relatedEvents').append(relatedEventsHtml);    
    }
 
  if (relatednewsi != 0) {
    $('#relatedNews').show();
    $('#relatedNews').append(relatedNewsHtml);    
    }
  $('#pastEvents').append(pastEventsHtml);
  $('#ongoingProjects').append(ongoingEventsHtml);
  $('#pastProjects').append(pastProjectsHtml);
  $('#eventTitle').html(title);
  $('#eventBody').html(bodyText);
  $('#eventHeader').html(eventHeader + "<br />");
  $('#techNotes').html(techNotes);
  setLinksTarget('techNotes');
  setLinksTarget('eventHeader');
  setLinksTarget('eventBody');
  showText('text');
  if (show != '') {
    showText(show);
    }
  hideUnneededButton();
  }     
  
function hideUnneededButton() {
  var f = 0;
  var i;
  for (i in buttons) {
    var b = buttons[i];
    if (b.divid != '') {
      f++;
      }
    }
  if (f < 2) {
    $('#navButtonwrapper').hide();
    }
  }
