function getWeekends(allWeekends) {
  if ($('#dsWeekends').length == 0)
     Datasource.addDatasource('dsWeekends');

  var data = $('#dsWeekends')[0].data;

  if (!data) {
      fetchWeekends(allWeekends);
      return false;
  }

  var registration = {
    weekends: extractWeekendInfo(data)
  };
  return registration;
}

function fetchWeekends(allWeekends, useAjaxSuccessFn) {
  if (!allWeekends)
     allWeekends = "";
  fetchUrl= '/cupid/dao.php?act='+allWeekends+'weekends';
  if (useAjaxSuccessFn) {
    $.ajax({
      url: fetchUrl,
      success:useAjaxSuccessFn,
      dataType:'xml'
    });
  } else {
    $('#dsWeekends').fetch(fetchUrl, {dataType:'xml'});
  }
}

function extractWeekendInfo(data) {
  var parsed = [];
  $("item", data).each(function(){
      parsed.push({
        loc: $("field_weekend_location_value", this).text(),
        wedate: $("wedate", this).text(),
        nid: $("nid", this).text(),
        weyear: $("weyear", this).text()
      });
  });
  return parsed;
}

function getAllWeekends() {
  return getWeekends('all');
}

function getAllFutureWeekends() {
  return getWeekends('allnext');
}

function getPastWeekends() {
  return getWeekends('past');
}


