
google.load("feeds", "1");
google.load("gdata", "1");
google.setOnLoadCallback(initialize);

var whichEvent = 0;
var maxCalEvents = 5;
var titleArray = [];
var dateArray = [];
var hrefArray = [];

function FadeEffect(element){
   Effect.Fade(element,{duration:0.5,afterFinish: function()
   {
      flipTicker();
      new Effect.Appear(element,{duration:0.5});
   }
   });
}

function flipTicker(){
   var eventDiv = document.getElementById('ticker_event');
   eventDiv.innerHTML = "<a class='linkto' href='"+hrefArray[whichEvent]+"'>"+titleArray[whichEvent]+"</a> - "+dateArray[whichEvent];
   whichEvent = whichEvent + 1;
   if (whichEvent == maxCalEvents) {
      whichEvent = 0;
   }
}

function initialize() {
   var feed = new google.feeds.Feed("http://demo.digux.com/?feed=rss2");
   feed.load(function(result) {
        if (!result.error) {
          var container = document.getElementById("feed");
          //for (var i = 0; i < result.feed.entries.length; i++) {
          for (var i = 0; i < 1; i++) {
            var entry = result.feed.entries[i];
            var div = document.createElement("div");
            //div.appendChild(document.createTextNode('<b>'+entry.title+'</b> by '+entry.author+'<br>'+entry.description));
            temp = "<h4>"+entry.title+"</h4>by "+entry.author+"<br><p>"+entry.contentSnippet+"</p>";
            div.innerHTML = temp;
            container.appendChild(div);
          }
        }
   });
  google.gdata.client.init(handleGDError);
  loadCalendar('http://www.google.com/calendar/feeds/redmondcyclingclub@gmail.com/public/full');
}

function padNumber(num) {
  if (num <= 9) {
    return "0" + num;
  }
  return num;
}

function loadCalendar(calendarUrl) {
  var service = new
      google.gdata.calendar.CalendarService('gdata-js-client-samples-simple');
  var query = new google.gdata.calendar.CalendarEventQuery(calendarUrl);
  query.setOrderBy('starttime');
  query.setSortOrder('ascending');
  query.setFutureEvents(true);
  query.setSingleEvents(true);
  query.setMaxResults(maxCalEvents);

  service.getEventsFeed(query, listEvents, handleGDError);
}

function handleGDError(e) {
  document.getElementById('jsSourceFinal').setAttribute('style',
      'display:none');
  if (e instanceof Error) {
    /* alert with the error line number, file and message */
    alert('Error at line ' + e.lineNumber +
          ' in ' + e.fileName + '\n' +
          'Message: ' + e.message);
    /* if available, output HTTP error code and status text */
    if (e.cause) {
      var status = e.cause.status;
      var statusText = e.cause.statusText;
      alert('Root cause: HTTP error ' + status + ' with status text of: ' +
            statusText);
    }
  } else {
    alert(e.toString());
  }
}

function listEvents(feedRoot) {
  var entries = feedRoot.feed.getEntries();

  /* create a new unordered list */
  var ul = document.createElement('ul');

  /* loop through each event in the feed */
  var len = entries.length;

  for (var i = 0; i < len; i++) {
    var entry = entries[i];
    var title = entry.getTitle().getText();

    var startDateTime = null;
    var startJSDate = null;
    var times = entry.getTimes();
    if (times.length > 0) {
      startDateTime = times[0].getStartTime();
      startJSDate = startDateTime.getDate();
    }
    var entryLinkHref = null;
    if (entry.getHtmlLink() != null) {
      entryLinkHref = entry.getHtmlLink().getHref();
    }
    var dateString = (startJSDate.getMonth() + 1) + "/" + startJSDate.getDate();
    if (!startDateTime.isDateOnly()) {
      dateString += " " + startJSDate.getHours() + ":" +
          padNumber(startJSDate.getMinutes());
    }
    titleArray[i] = title;
    dateArray[i] = dateString;
    hrefArray[i] = entryLinkHref;
  }
  var eventDiv = document.getElementById('ticker_event');
  eventDiv.innerHTML = "<a class='linkto' href='"+hrefArray[0]+"'>"+titleArray[0]+"</a> - "+dateArray[0];
  Effect.Appear('ticker_event',{duration:0.5});
}
