var maxEntries = 10;

function update() {
  initPage();
}

function setTipText(tipText,elementClass) {
  var htmlData ="<div class=\""+elementClass+"\">"+tipText+"</div>";
  return overlib(htmlData,VAUTO,HAUTO,FULLHTML);
}

function twoDigit(d) {
  return ((d>9)||(d<(-9))) ? d : (d>=0) ? "0"+d : "-0"+(-1 * d);
}

function makeDateObject(dateString) {
  var dateElements = dateString.split(" ");
  var dateObject = new Date();
  dateObject.setUTCFullYear(dateElements[2]);
  dateObject.setUTCMonth(dateElements[0]-1);
  dateObject.setUTCDate(dateElements[1]);
  dateObject.setUTCHours(dateElements[3]);
  dateObject.setUTCMinutes(dateElements[4]);
  dateObject.setUTCSeconds(0);
  return dateObject;
}

function initPage() {
  var targetElement = document.getElementById("latestAchievements");
  if (!targetElement) { return; }
  var maxEntriesElement = document.getElementById("maxEntries");
  if (maxEntriesElement) { maxEntries = parseInt(maxEntriesElement.value); }
  var showDates=false;
  var showDatesElement = document.getElementById("showDatesField");
  if (showDatesElement) { showDates = 0 != parseInt(showDatesElement.value); }
  var i;
  var dateObject = makeDateObject(currentTime);
  var htmlData="";
  if (showDates) {
     htmlData = htmlData + "<p>Data as of "+(dateObject.toLocaleString())+".  All times are GMT"+(dateObject.getTimezoneOffset()<0?"+":"")+twoDigit(dateObject.getTimezoneOffset()/(-60))+":00</p>";
  }
  htmlData=htmlData+"<table class=\"forumline\" cellspacing=\"0\">";
  var minRank = 8;
  var minGroup = 3;
  var listFilterElement = document.getElementById("listFilter");
  if (listFilterElement) {
    var filterName = listFilterElement.value;
    if (filterName) {
      if (filterName.substr(0,4) == "rank") {
        minRank = parseInt(filterName.substr(4,10));
        minGroup = 1;
      } else if (filterName.substr(0,4) == "team") {
        minRank = 50;
        minGroup = parseInt(filterName.substr(4,10));
      }
    }
  } 
  var numShown = 0;
  var lastFormattedDateString = "";
  var lastAchievementTitle = "";
  var numThisAch=0;
  var thisRow = "";
  for (i=0; i<achievementFeedData.length; i++) {
    if (achievementFeedData[i].rank > minRank) { continue; }
    var dateString = achievementFeedData[i].date;
    dateObject = makeDateObject(dateString);
    var formattedDateString = (showDates?dateObject.getFullYear()+"-"+twoDigit(1+dateObject.getMonth())+"-"+twoDigit(dateObject.getDate())+" "+twoDigit(dateObject.getHours())+":"+twoDigit(dateObject.getMinutes())+" ":"");
  
    if ((formattedDateString != lastFormattedDateString) || (lastAchievementTitle != achievementFeedData[i].title)) {
      if (numThisAch >= minGroup) {
        htmlData = htmlData + thisRow;
        if ((++numShown)>maxEntries) { break; }
      }
      numThisAch=0;
      thisRow = "";
      if (numShown > 1) {
        htmlData = htmlData + "</td></tr>";
      }
      thisRow = thisRow + "<tr>";
      if (showDates) {
        thisRow = thisRow + "<td class=\"row1 genmed\" style=\"white-space: nowrap\" valign=\"top\">"+formattedDateString+"</td>";
      }
      thisRow = thisRow + "<td class=\"row1 genmed\">";
      //htmlData = htmlData + "<tr><td>"+formattedDateString+"</td><td>";
      thisRow = thisRow + "<a class=\"genmed\" href=\""+achievementFeedData[i].wowheadUrl+"\">"+achievementFeedData[i].title + "</a>-";
      lastFormattedDateString = formattedDateString;
      lastAchievementTitle = achievementFeedData[i].title;
    } else {
      thisRow = thisRow + ", ";
    }
    thisRow = thisRow +"<a href=\""+achievementFeedData[i].armoryUrl+"\" style=\"font-weight: bold;\">" + achievementFeedData[i].member +"</a>";
    numThisAch++;
  }
  htmlData = htmlData + "</td></tr></table>";
  targetElement.innerHTML = htmlData;
}

function showHiddenImage(imageUrl,element) {
  var parent = element.parentNode;
  parent.innerHTML = "...loading image";
  parent.innerHTML = "<img src=\"" + imageUrl + "\">";
  return false;
}

YAHOO.util.Event.addListener(window, "load", initPage);

