var images = {"start":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAH9SURBVDjLpZM9aFRREIW/ue9FF2IULDQuaYIGtTBRWGFJAgqSUsEmjZVgo4mFWBiwVVjBHwjGwsbCShExIAghoEUMARGNGFJYhIC7isXGRbORvJ0Zi/dWY5fFCwOnuHz3nDsz4u78z5HTlx6NDB4v3KjWvd0dMMPNUFPcHHPDVTF3XBU1Y/uWZHVxsXzl6e3hibgwUBhvy7WH3bmWHm5fres4MBHXEw/16s+Wra8lHgBiV+f6mX0tA86VlkkBbgCsNxQH3Bw1MBwzR83Qhqflxro63Z0dqGkKIOuCBEHc8SC4OGJCCIJIQESRyIksEDfS+9bIAE1SAFwEBCIHEzBzIocgEbGAiqMhdWxqWQTL5kAE3P8BiYCrYwIuQBAii1JAM0JTpAxJxQaQxUJsxvTbSV7NP6e2ukLSSFjT/cBJ4kaS/HEggLsjIvgG0Is3T3hfnuLYwFG6dvbwcuEZcx+nKY7mbwbPskSAZC4k00GEIMLk64ccPtCHBqVvzxAqCcVD/QAjwcz+Rsg+M4gQbahv37/QJts4dfAiAJdP3Gfvrl6AXFxeWn58/k4ybKqYGqqKmaFJgplh7lRrKyxUZpmvzDA29IDS1Fly0VaAX7KZbSyO5q91de+42t87SE/nET59fcfshxk+L9VuyWbXuTiaLwEXgA7gB3Bv7m5l7Dd8kw6XoJxL0wAAAABJRU5ErkJggg==", "up":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kLEw8EFyB6KdkAAAFESURBVDjL1dPLSkJhEAfw/5lv/DgnA6EbpWYqZCFhN+liUpHdlj1Ai+gpQlpGtGgZLYVeoWUhtKtN0CIJglqEixAzung6HE9+vUCa4qrZDvwYZv6jKaXQShFarJYBrteM7ZHHctSLaSOe31c3TU0wf9jRrrMsTYeSQjLOvGkt2jCwcRw0dJZvk4EFSobXsDK83i0ZWW9aG/oT2MrEDF0Y5qh/hmbDyyh85DHen0AqstorCdmetBaqC0hiM+qbwFRwCa/lAqpVG6XPZ8QDCSxGUj6DxGPXjmbUXKJkaT4V71BxKm0j/jmU7Xf0eQK4uD/Fdf7SFKRQPFBfNYGjzSs3AGxnxr5j/iQxuSA0wkMxp253q+6GryCZIUjARQwmAZ1lc0GSxBAaYaBzEEwCkmRzQSKSdJ47geXYsBwLuvwd0P7/M/0ABcZX84H4KDMAAAAASUVORK5CYII=", "down":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9kLEw8EKJYcBOQAAAFOSURBVDjL1ZO/S0JRHMXPfV4vt6sQ2Q+kLMKgoiFCgwgN2mpuimhsamlpCInmxoaGxvoP/AcMMYgoiQoqKgIzxQgLhER5777va6hJlBSnzniGD5zz/R7mOA7akYE21TaA1zOXDoKkuGSSS0guwA2BvZUUaxpQNU0shzfAXRwuZiBxe0QtRTDJhCYbLx9PsB2CSbq1Dqr6B2CRhk02TK2b6yC4w8pKMIQDs8x2CJosEBwM+EaNtcNQWXKB/dUzT11Azxbr8HCXmh6ax8zwHAqlLCzbwlsph8lAFG7uVrnifeMIxV2nUiE7mHxM5NPZU/i8fhiGQJenD+eZY9zlL2GSVrUAVvuJ/TE2JjiSC+OL/tBgBFevJ3h+vyYlpDe+nqn8CfiFTEiOZGQk2vtQuCDJVWdq8/OrXoms0RYCMTalBNKSs+6bbSo1ugL7/2P6Btnsgggmn9EwAAAAAElFTkSuQmCC", "star":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAIwSURBVDjLlZLNS5RRFMafe9/3vjPOjI1jaKKEVH40tGgRBWEibfoPQoKkVdtoEQQF4T/QqkVtWrSTFrVsF1FgJbWpIAh1k2PNh+PrfL4f95zTQk0HHKkDD/cc7vP8uHCuEhF0q/KnmXNgGR248PZFN4/GISXMC8L89DBPV0Dp4/SsazJjrtfb9/vdxfn/BgjzY5M8Aq8nBya+V3h93vtnQHFxat4kszntJAAAxus1YvnZQV5V/jyTEZarwnwFLGeFZdT0ZFOJdD84qoCDOpQ7grZfRNj020JSEOKvwvxGiF+q0tL0N5PuO+Mk0nC0B0BDsYCCImyzAIktBBloMwKJLSgKYcMAcdhC2KpVlIig+H5qxcv0n0xmj4Gbq+BwC2wtJLbgHUlMEFJwUpMIGpto16u+kJzSACAk+WCzvNbe+AVljkOYIcQQou3TbvdOJo+g4aNdqzaF+PT43HJVA8DQpcVIiPPtaqlEUQzlDELsTpgYwgTAQIjQqlUCtpQfn1spdmxh+PJSQyw9CrbKgM7tvcISQAxlBhC3GuCYXk3cWP25m3M7dk88qbWBRDVApaATOSjPBdXXwYEP5QyCgvjE/kwHgInHtHYBnYA2owhrPiiuw0sOw3EZFEagIB7qChDiYaUcNIoFtP1KxCTPhWiDw7WbXk9vKpnOgsI4exjg6Mbq96YQPxm79uPOvqvbXx4O3KrF6w8osv2df17kr5YXJq7vnw/S0v3k7Ie7xtud/wAaRnP+Cw8iKQAAAABJRU5ErkJggg==", "reload":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGMSURBVDjLY/j//z8DJZiggtx9Sasyd8Yxk21Axo7YSymbow4QZUDJ8QyHoiNpB/IPJP/P3pPwP3177P+mQ5X/6/aV/o9cFrATrwHFxzIcCg+nnplzacr/TbdW/19/c8X/tTeW/l91bdH/5Vfn/y/ZkvPfb7rbHZwGFBxKnTn9fN//jTdX/W8+XPU/cX34/5iVQf8rtuf/L9mc/d9nqutuvC7I2Zv4AOjf/0D//o9fG3YIJh4wy+OS9xTnQ2699kyO7VacRAUi0L/wUPea5LTGtceW9FgA+ncNyekgfJEfZ9AcTyagfw+59ztcgolbVBsdMi7V/a+Xr/lfK0v1AV4XAP27O2tl0v/UJbH/rRtM/5tVGf6PmB74v/dE0//khdH/VVMUZ+I0AOjflxnLE/5PP9v7f8rprv8TT7X/7zvZ8r/nRON/kLhKssIZxXhZB7wusGu22Bk3N+x/1Mzg//qFWv+1s9X+q6cp/1dOUjigEIeqGWcgAv17AOjfS2RnJt08DWbNTNVVVMmNhDAANau2t3wToKQAAAAASUVORK5CYII=", "loading":"data:image/png;base64,R0lGODlhEAAQAPYAAP///wAAANTU1JSUlGBgYEBAQERERG5ubqKiotzc3KSkpCQkJCgoKDAwMDY2Nj4+Pmpqarq6uhwcHHJycuzs7O7u7sLCwoqKilBQUF5eXr6+vtDQ0Do6OhYWFoyMjKqqqlxcXHx8fOLi4oaGhg4ODmhoaJycnGZmZra2tkZGRgoKCrCwsJaWlhgYGAYGBujo6PT09Hh4eISEhPb29oKCgqioqPr6+vz8/MDAwMrKyvj4+NbW1q6urvDw8NLS0uTk5N7e3s7OzsbGxry8vODg4NjY2PLy8tra2np6erS0tLKyskxMTFJSUlpaWmJiYkJCQjw8PMTExHZ2djIyMurq6ioqKo6OjlhYWCwsLB4eHqCgoE5OThISEoiIiGRkZDQ0NMjIyMzMzObm5ri4uH5+fpKSkp6enlZWVpCQkEpKSkhISCIiIqamphAQEAwMDKysrAQEBJqamiYmJhQUFDg4OHR0dC4uLggICHBwcCAgIFRUVGxsbICAgAAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCgAAACwAAAAAEAAQAAAHjYAAgoOEhYUbIykthoUIHCQqLoI2OjeFCgsdJSsvgjcwPTaDAgYSHoY2FBSWAAMLE4wAPT89ggQMEbEzQD+CBQ0UsQA7RYIGDhWxN0E+ggcPFrEUQjuCCAYXsT5DRIIJEBgfhjsrFkaDERkgJhswMwk4CDzdhBohJwcxNB4sPAmMIlCwkOGhRo5gwhIGAgAh+QQJCgAAACwAAAAAEAAQAAAHjIAAgoOEhYU7A1dYDFtdG4YAPBhVC1ktXCRfJoVKT1NIERRUSl4qXIRHBFCbhTKFCgYjkII3g0hLUbMAOjaCBEw9ukZGgidNxLMUFYIXTkGzOmLLAEkQCLNUQMEAPxdSGoYvAkS9gjkyNEkJOjovRWAb04NBJlYsWh9KQ2FUkFQ5SWqsEJIAhq6DAAIBACH5BAkKAAAALAAAAAAQABAAAAeJgACCg4SFhQkKE2kGXiwChgBDB0sGDw4NDGpshTheZ2hRFRVDUmsMCIMiZE48hmgtUBuCYxBmkAAQbV2CLBM+t0puaoIySDC3VC4tgh40M7eFNRdH0IRgZUO3NjqDFB9mv4U6Pc+DRzUfQVQ3NzAULxU2hUBDKENCQTtAL9yGRgkbcvggEq9atUAAIfkECQoAAAAsAAAAABAAEAAAB4+AAIKDhIWFPygeEE4hbEeGADkXBycZZ1tqTkqFQSNIbBtGPUJdD088g1QmMjiGZl9MO4I5ViiQAEgMA4JKLAm3EWtXgmxmOrcUElWCb2zHkFQdcoIWPGK3Sm1LgkcoPrdOKiOCRmA4IpBwDUGDL2A5IjCCN/QAcYUURQIJIlQ9MzZu6aAgRgwFGAFvKRwUCAAh+QQJCgAAACwAAAAAEAAQAAAHjIAAgoOEhYUUYW9lHiYRP4YACStxZRc0SBMyFoVEPAoWQDMzAgolEBqDRjg8O4ZKIBNAgkBjG5AAZVtsgj44VLdCanWCYUI3txUPS7xBx5AVDgazAjC3Q3ZeghUJv5B1cgOCNmI/1YUeWSkCgzNUFDODKydzCwqFNkYwOoIubnQIt244MzDC1q2DggIBACH5BAkKAAAALAAAAAAQABAAAAeJgACCg4SFhTBAOSgrEUEUhgBUQThjSh8IcQo+hRUbYEdUNjoiGlZWQYM2QD4vhkI0ZWKCPQmtkG9SEYJURDOQAD4HaLuyv0ZeB4IVj8ZNJ4IwRje/QkxkgjYz05BdamyDN9uFJg9OR4YEK1RUYzFTT0qGdnduXC1Zchg8kEEjaQsMzpTZ8avgoEAAIfkECQoAAAAsAAAAABAAEAAAB4iAAIKDhIWFNz0/Oz47IjCGADpURAkCQUI4USKFNhUvFTMANxU7KElAhDA9OoZHH0oVgjczrJBRZkGyNpCCRCw8vIUzHmXBhDM0HoIGLsCQAjEmgjIqXrxaBxGCGw5cF4Y8TnybglprLXhjFBUWVnpeOIUIT3lydg4PantDz2UZDwYOIEhgzFggACH5BAkKAAAALAAAAAAQABAAAAeLgACCg4SFhjc6RhUVRjaGgzYzRhRiREQ9hSaGOhRFOxSDQQ0uj1RBPjOCIypOjwAJFkSCSyQrrhRDOYILXFSuNkpjggwtvo86H7YAZ1korkRaEYJlC3WuESxBggJLWHGGFhcIxgBvUHQyUT1GQWwhFxuFKyBPakxNXgceYY9HCDEZTlxA8cOVwUGBAAA7AAAAAAAAAAAA", "refresh":"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAGMSURBVDjLY/j//z8DJZiggtx9Sasyd8Yxk21Axo7YSymbow4QZUDJ8QyHoiNpB/IPJP/P3pPwP3177P+mQ5X/6/aV/o9cFrATrwHFxzIcCg+nnplzacr/TbdW/19/c8X/tTeW/l91bdH/5Vfn/y/ZkvPfb7rbHZwGFBxKnTn9fN//jTdX/W8+XPU/cX34/5iVQf8rtuf/L9mc/d9nqutuvC7I2Zv4AOjf/0D//o9fG3YIJh4wy+OS9xTnQ2699kyO7VacRAUi0L/wUPea5LTGtceW9FgA+ncNyekgfJEfZ9AcTyagfw+59ztcgolbVBsdMi7V/a+Xr/lfK0v1AV4XAP27O2tl0v/UJbH/rRtM/5tVGf6PmB74v/dE0//khdH/VVMUZ+I0AOjflxnLE/5PP9v7f8rprv8TT7X/7zvZ8r/nRON/kLhKssIZxXhZB7wusGu22Bk3N+x/1Mzg//qFWv+1s9X+q6cp/1dOUjigEIeqGWcgAv17AOjfS2RnJt08DWbNTNVVVMmNhDAANau2t3wToKQAAAAASUVORK5CYII="};
function GReader(doc) {
  this.doc = doc;
  this.reload(true);
}
GReader.prototype = {
  getNextBunch: function(wasRefresh) {
    $(this.doc).find('#loadreload').attr('src', images.loading);
    $.ajax({type: "GET", url: "http://www.google.com/reader/atom/user/-/state/com.google/starred" + (this.continuation == null ? "" : ("?c=" + this.continuation)), cache: false, reader: this, success: function(xml) {
      $.merge(this.reader.currentLinks, $(xml).find("entry").map(function() { return {"id": $(this).find("> id").text(), "link":$(this).find("> link[rel='alternate']").attr("href"), "starred":true}; }));
      this.reader.moreToLoad = (this.reader.continuation = $(xml).find("gr\\:continuation").text()) != null && this.reader.continuation != "";
      if(wasRefresh) jetpack.tabs.focused.contentWindow.location = this.reader.currentLinks[this.reader.currentPost].link;
      this.reader.updatePanel();
    }});
  },
  reload: function(firstLoad) {
    this.currentPost = 0, this.continuation = null, this.currentLinks = [], this.moreToLoad = false;
    this.getNextBunch(!firstLoad);
  },
  navPost: function(direction) {
    if(direction == 'next' && this.currentPost + 21 > this.currentLinks.length && this.moreToLoad) this.getNextBunch(false);
    jetpack.tabs.focused.contentWindow.location = this.currentLinks[(direction == 'next') ? ++this.currentPost : --this.currentPost].link;
    this.updatePanel();
  },
  displayFirst: function() {
    jetpack.tabs.open(this.currentLinks[this.currentPost].link);
    jetpack.tabs[jetpack.tabs.length-1].focus();
    this.updatePanel();
  },
  updatePanel: function() {
    var gReader = this;
    $(this.doc).find("#start").unbind('click').click(function() { gReader.displayFirst() }).attr('src', images.start);
    $(this.doc).find("#up").unbind('click').click(function() { gReader.navPost('previous'); }).attr('src', images.up).css({"opacity": (this.currentLinks.length == 0 || this.currentPost - 1 < 0) ? "0.15" : "1.0"});
    $(this.doc).find("#down").unbind('click').click(function() { gReader.navPost('next'); }).attr('src', images.down).css({"opacity": (this.currentLinks.length == 0 || this.currentPost + 1 > this.currentLinks.length && !this.moreToLoad) ? "0.15" : "1.0"});
    $(this.doc).find("#star").unbind('click').click(function() { gReader.toggleStar(gReader, gReader.currentLinks[gReader.currentPost], gReader.currentLinks[gReader.currentPost].starred ? 'r' : 'a'); }).attr('src', images.star).css({"opacity": this.currentLinks.length == 0 ? "0.15" : this.currentLinks[this.currentPost].starred ? "1.0" : "0.35"});
    $(this.doc).find('#loadreload').unbind('click').click(function() { gReader.reload(false); }).attr('src', images.refresh);
  },
  toggleStar: function(reader, workingItem, toggleType) {
    $(this.doc).find('#loadreload').attr('src', images.loading);
    $.get("http://www.google.com/reader/api/0/token", function(token) {
      $.ajax({ type: "POST", url: "http://www.google.com/reader/api/0/edit-tag?client=-", data: "i=" + workingItem.id + "&" + toggleType + "=user/-/state/com.google/starred&ac=edit&T=" + token, success: function(msg) {
        workingItem.starred = !workingItem.starred;
        reader.updatePanel();
      }});
    });
  }
}
jetpack.statusBar.append( {
  html: '<div style="padding-top:3px; padding-left: 3px; border-right: 1px solid #aaa; border-left: 1px solid #aaa;"><img id="start" src=""/> <img style="padding-left: 5px;" id="up" src=""/>  <img id="down" src=""/>  <img id="star" style="padding-left: 5px;" src=""/> <img style="padding-left: 5px;" id="loadreload" src=""/></div>', width: 120, onReady: function(doc) { new GReader(doc).updatePanel(); }
});

