/**
 * @param {String} feedUrl that returns a valid calendar GData feed
 */
var EventLoader = function(feedUrl) {
  this.feedUrl = feedUrl;
}

/**
 * @param {Date} date
 * @return GData GET param date
 */
EventLoader.prototype.formatDate_ = function(date) {
  var m = date.getMonth() + 1;
  if (m < 10) m = "0" + m;
  var d = date.getDate();
  if (d < 10) d = "0" + d;
  return date.getFullYear() + "-" + m + "-" + d;
};

/**
 * 
 * @param {Date} start
 * @param {Date} end
 * @param {String} callbackFn
 */
EventLoader.prototype.loadDates = function(start, end, callbackFn) {
  start = this.formatDate_(start);
  end = this.formatDate_(end);
  // TODO(bolinfest): run regexp against callbackFn
  var mark = (this.feedUrl.indexOf('?') < 0) ? '?' : '&';
  var url = this.feedUrl + mark + 'singleevents=true' +
    '&start-min=' + start + '&start-max=' + end + '&max-results=100' +
    '&alt=json-in-script&callback=' + callbackFn;
  var script = document.createElement('script');
  script.src = url;
  document.body.appendChild(script);  
};

