PageRenderTime 33ms CodeModel.GetById 3ms app.highlight 8ms RepoModel.GetById 2ms app.codeStats 0ms

/gc.xml

http://gocomics-stage.googlecode.com/
XML | 1538 lines | 1425 code | 110 blank | 3 comment | 0 complexity | d4c0f7c4304a17e8447d81fc78899817 MD5 | raw file

Large files files are truncated, but you can click here to view the full file

   1<?xml version="1.0" encoding="UTF-8"?>
   2<Module>
   3	<ModulePrefs title="GoComics from Universal Uclick"
   4				 title_url="http://www.gocomics.com"
   5				 author="Universal Uclick"
   6				 author_email="universaluclick@gmail.com"
   7				 description="Get a Laugh each and everyday with the GoComics gadget for iGoogle - giving you access to the 
   8				 			  best and most extensive online comics collection ever compiled! It's the only place to get your
   9				 			  favorites like 'Calvin and Hobbes', 'Garfield', 'Foxtrot', 'Doonesbury' and the newer hits like
  10							  'Lio', 'Pooch Cafe', 'The Argyle Sweater' and 'Cul de Sac'. Build your own personal daily comics
  11							  page and choose from over 200+ Comic Strips. Share comics with your Friends, Favorite those you
  12							  want to see again, and see Comments from other comic fans. Add GoComics to your iGoogle page now
  13							  and start laughing!"
  14				 screenshot="http://images.gocomics.com/images/google/comics_screenshot.jpg"
  15				 thumbnail="http://images.gocomics.com/images/google/gocomics_logo.jpg">
  16		<Require feature="opensocial-0.8"/>
  17		<Require feature="setprefs"/>
  18		<Require feature="views"/>
  19		<Require feature="dynamic-height"/>
  20		<Require feature="minimessage"/>
  21	</ModulePrefs>
  22	
  23	
  24	<!-- H O M E -->
  25	<Content type="html" view="home,profile"><![CDATA[
  26
  27		<style type='text/css'>
  28		  /* http://meyerweb.com/eric/tools/css/reset/ 
  29   v2.0 | 20110126
  30   License: none (public domain)
  31*/
  32
  33html, body, div, span, applet, object, iframe,
  34h1, h2, h3, h4, h5, h6, p, blockquote, pre,
  35a, abbr, acronym, address, big, cite, code,
  36del, dfn, em, img, ins, kbd, q, s, samp,
  37small, strike, strong, sub, sup, tt, var,
  38b, u, i, center,
  39dl, dt, dd, ol, ul, li,
  40fieldset, form, label, legend,
  41table, caption, tbody, tfoot, thead, tr, th, td,
  42article, aside, canvas, details, embed, 
  43figure, figcaption, footer, header, hgroup, 
  44menu, nav, output, ruby, section, summary,
  45time, mark, audio, video {
  46	margin: 0;
  47	padding: 0;
  48	border: 0;
  49	font-size: 100%;
  50	font: inherit;
  51	vertical-align: baseline;
  52}
  53/* HTML5 display-role reset for older browsers */
  54article, aside, details, figcaption, figure, 
  55footer, header, hgroup, menu, nav, section {
  56	display: block;
  57}
  58body {
  59	line-height: 1;
  60}
  61ol, ul {
  62	list-style: none;
  63}
  64blockquote, q {
  65	quotes: none;
  66}
  67blockquote:before, blockquote:after,
  68q:before, q:after {
  69	content: '';
  70	content: none;
  71}
  72table {
  73	border-collapse: collapse;
  74	border-spacing: 0;
  75}
  76		  body {
  77  color: #474747;
  78  font-family: Helvetica, Arial, Verdana, sans-serif;
  79  font-size: 12px; }
  80
  81a {
  82  text-decoration: none;
  83  color: #4a91c1; }
  84
  85a:visited {
  86  color: #4a91c1; }
  87
  88.button, .big-button, .little-button {
  89  border-radius: 5px;
  90  -webkit-border-radius: 5px;
  91  -moz-border-radius: 5px;
  92  color: #FFF;
  93  font-weight: bold;
  94  text-align: center; }
  95
  96.button:visited, .big-button:visited, .little-button:visited {
  97  color: #FFF; }
  98
  99.big-button {
 100  background: #38a3cd;
 101  background: -webkit-gradient(linear, left top, left bottom, from(#8acae1), to(#38a3cd));
 102  background: -moz-linear-gradient(top, #8acae1, #38a3cd);
 103  width: 75px;
 104  display: block;
 105  padding: 6px 10px; }
 106
 107.big-button:hover {
 108  background: #8acae1;
 109  background: -webkit-gradient(linear, left top, left bottom, from(#38a3cd), to(#8acae1));
 110  background: -moz-linear-gradient(top, #38a3cd, #8acae1); }
 111
 112.little-button {
 113  background: #777777;
 114  background: -webkit-gradient(linear, left top, left bottom, from(#888888), to(#777777));
 115  background: -moz-linear-gradient(top, #888888, #777777);
 116  display: inline-block;
 117  width: 150px;
 118  padding: 4px 8px; }
 119
 120.little-button:hover {
 121  background: #888888;
 122  background: -webkit-gradient(linear, left top, left bottom, from(#777777), to(#888888));
 123  background: -moz-linear-gradient(top, #777777, #888888); }
 124
 125.clear {
 126  clear: both; }
 127
 128#home-container {
 129  display: block;
 130  width: 400px; }
 131  #home-container ul {
 132    list-style-type: none;
 133    text-align: center;
 134    width: inherit; }
 135    #home-container ul li {
 136      display: inline-block; }
 137  #home-container ul.feature-navigation {
 138    display: table;
 139    padding: 5px 0px;
 140    border-bottom: 1px solid #AAA; }
 141    #home-container ul.feature-navigation li {
 142      text-align: right;
 143      display: table-cell;
 144      padding-right: 10px;
 145      padding-left: 0px; }
 146    #home-container ul.feature-navigation li:first-child {
 147      padding-right: 0px;
 148      padding-left: 10px;
 149      text-align: left; }
 150  #home-container ul.feature-options {
 151    padding: 5px 0; }
 152
 153#feature {
 154  display: block;
 155  width: 400px; }
 156  #feature h1 {
 157    font-size: 16px;
 158    font-weight: bold;
 159    padding-bottom: 5px; }
 160    #feature h1 span {
 161      font-size: 12px; }
 162    #feature h1 span.date {
 163      float: right;
 164      text-align: right; }
 165  #feature div.feature-image {
 166    margin: 5px auto;
 167    width: 360px;
 168    border: 2px solid #FFF;
 169    padding: 10px;
 170    background: #f2f2f2;
 171    background: -webkit-gradient(linear, left top, left bottom, from(white), to(#f2f2f2));
 172    background: -moz-linear-gradient(top, white, #f2f2f2);
 173    -moz-box-shadow: 0 0 5px 1px #cccccc;
 174    -webkit-box-shadow: 0 0 5px 1px #cccccc;
 175    box-shadow: 0 0 5px 1px #cccccc;
 176    border-radius: 5px;
 177    -webkit-border-radius: 5px;
 178    -moz-border-radius: 5px; }
 179    #feature div.feature-image img {
 180      width: inherit;
 181      cursor: pointer; }
 182
 183		</style>
 184
 185		<div id="home">
 186	<div id="home-container">
 187		<div id="feature"></div>
 188		<ul class="feature-navigation">
 189			<li><a href="#" class="prev little-button">&larr;</a></li>
 190			<li><a href="#" class="next little-button">&rarr;</a></li>
 191		</ul>
 192		<ul class="feature-options">
 193			<li><a href="#" class="pick-comics big-button">Pick Comics</a></li>
 194			<li><a href="#" class="full-size big-button">Full Size</a></li>
 195		</ul>
 196	</div>
 197</div>
 198<script id="feature-template" type="text/mustache-tmpl">
 199	<h1>
 200		{{title}}
 201		<span class="byline">by {{author}}</span>
 202		<span class="date">{{display_date}}</span>
 203	</h1>
 204	<div class="feature-image">
 205		<img src="{{image_link}}" alt="{{title}}" />
 206	</div>
 207</script>
 208
 209		<script src="//ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" type="text/javascript"></script>
 210		<script type="text/javascript">/*
 211  mustache.js — Logic-less templates in JavaScript
 212
 213  See http://mustache.github.com/ for more info.
 214*/
 215
 216var Mustache = function() {
 217  var Renderer = function() {};
 218
 219  Renderer.prototype = {
 220    otag: "{{",
 221    ctag: "}}",
 222    pragmas: {},
 223    buffer: [],
 224    pragmas_implemented: {
 225      "IMPLICIT-ITERATOR": true
 226    },
 227    context: {},
 228
 229    render: function(template, context, partials, in_recursion) {
 230      // reset buffer & set context
 231      if(!in_recursion) {
 232        this.context = context;
 233        this.buffer = []; // TODO: make this non-lazy
 234      }
 235
 236      // fail fast
 237      if(!this.includes("", template)) {
 238        if(in_recursion) {
 239          return template;
 240        } else {
 241          this.send(template);
 242          return;
 243        }
 244      }
 245
 246      template = this.render_pragmas(template);
 247      var html = this.render_section(template, context, partials);
 248      if(in_recursion) {
 249        return this.render_tags(html, context, partials, in_recursion);
 250      }
 251
 252      this.render_tags(html, context, partials, in_recursion);
 253    },
 254
 255    /*
 256      Sends parsed lines
 257    */
 258    send: function(line) {
 259      if(line != "") {
 260        this.buffer.push(line);
 261      }
 262    },
 263
 264    /*
 265      Looks for %PRAGMAS
 266    */
 267    render_pragmas: function(template) {
 268      // no pragmas
 269      if(!this.includes("%", template)) {
 270        return template;
 271      }
 272
 273      var that = this;
 274      var regex = new RegExp(this.otag + "%([\\w-]+) ?([\\w]+=[\\w]+)?" +
 275            this.ctag);
 276      return template.replace(regex, function(match, pragma, options) {
 277        if(!that.pragmas_implemented[pragma]) {
 278          throw({message: 
 279            "This implementation of mustache doesn't understand the '" +
 280            pragma + "' pragma"});
 281        }
 282        that.pragmas[pragma] = {};
 283        if(options) {
 284          var opts = options.split("=");
 285          that.pragmas[pragma][opts[0]] = opts[1];
 286        }
 287        return "";
 288        // ignore unknown pragmas silently
 289      });
 290    },
 291
 292    /*
 293      Tries to find a partial in the curent scope and render it
 294    */
 295    render_partial: function(name, context, partials) {
 296      name = this.trim(name);
 297      if(!partials || partials[name] === undefined) {
 298        throw({message: "unknown_partial '" + name + "'"});
 299      }
 300      if(typeof(context[name]) != "object") {
 301        return this.render(partials[name], context, partials, true);
 302      }
 303      return this.render(partials[name], context[name], partials, true);
 304    },
 305
 306    /*
 307      Renders inverted (^) and normal (#) sections
 308    */
 309    render_section: function(template, context, partials) {
 310      if(!this.includes("#", template) && !this.includes("^", template)) {
 311        return template;
 312      }
 313
 314      var that = this;
 315      // CSW - Added "+?" so it finds the tighest bound, not the widest
 316      var regex = new RegExp(this.otag + "(\\^|\\#)\\s*(.+)\\s*" + this.ctag +
 317              "\n*([\\s\\S]+?)" + this.otag + "\\/\\s*\\2\\s*" + this.ctag +
 318              "\\s*", "mg");
 319
 320      // for each {{#foo}}{{/foo}} section do...
 321      return template.replace(regex, function(match, type, name, content) {
 322        var value = that.find(name, context);
 323        if(type == "^") { // inverted section
 324          if(!value || that.is_array(value) && value.length === 0) {
 325            // false or empty list, render it
 326            return that.render(content, context, partials, true);
 327          } else {
 328            return "";
 329          }
 330        } else if(type == "#") { // normal section
 331          if(that.is_array(value)) { // Enumerable, Let's loop!
 332            return that.map(value, function(row) {
 333              return that.render(content, that.create_context(row),
 334                partials, true);
 335            }).join("");
 336          } else if(that.is_object(value)) { // Object, Use it as subcontext!
 337            return that.render(content, that.create_context(value),
 338              partials, true);
 339          } else if(typeof value === "function") {
 340            // higher order section
 341            return value.call(context, content, function(text) {
 342              return that.render(text, context, partials, true);
 343            });
 344          } else if(value) { // boolean section
 345            return that.render(content, context, partials, true);
 346          } else {
 347            return "";
 348          }
 349        }
 350      });
 351    },
 352
 353    /*
 354      Replace {{foo}} and friends with values from our view
 355    */
 356    render_tags: function(template, context, partials, in_recursion) {
 357      // tit for tat
 358      var that = this;
 359
 360      var new_regex = function() {
 361        return new RegExp(that.otag + "(=|!|>|\\{|%)?([^\\/#\\^]+?)\\1?" +
 362          that.ctag + "+", "g");
 363      };
 364
 365      var regex = new_regex();
 366      var tag_replace_callback = function(match, operator, name) {
 367        switch(operator) {
 368        case "!": // ignore comments
 369          return "";
 370        case "=": // set new delimiters, rebuild the replace regexp
 371          that.set_delimiters(name);
 372          regex = new_regex();
 373          return "";
 374        case ">": // render partial
 375          return that.render_partial(name, context, partials);
 376        case "{": // the triple mustache is unescaped
 377          return that.find(name, context);
 378        default: // escape the value
 379          return that.escape(that.find(name, context));
 380        }
 381      };
 382      var lines = template.split("\n");
 383      for(var i = 0; i < lines.length; i++) {
 384        lines[i] = lines[i].replace(regex, tag_replace_callback, this);
 385        if(!in_recursion) {
 386          this.send(lines[i]);
 387        }
 388      }
 389
 390      if(in_recursion) {
 391        return lines.join("\n");
 392      }
 393    },
 394
 395    set_delimiters: function(delimiters) {
 396      var dels = delimiters.split(" ");
 397      this.otag = this.escape_regex(dels[0]);
 398      this.ctag = this.escape_regex(dels[1]);
 399    },
 400
 401    escape_regex: function(text) {
 402      // thank you Simon Willison
 403      if(!arguments.callee.sRE) {
 404        var specials = [
 405          '/', '.', '*', '+', '?', '|',
 406          '(', ')', '[', ']', '{', '}', '\\'
 407        ];
 408        arguments.callee.sRE = new RegExp(
 409          '(\\' + specials.join('|\\') + ')', 'g'
 410        );
 411      }
 412      return text.replace(arguments.callee.sRE, '\\$1');
 413    },
 414
 415    /*
 416      find `name` in current `context`. That is find me a value
 417      from the view object
 418    */
 419    find: function(name, context) {
 420      name = this.trim(name);
 421
 422      // Checks whether a value is thruthy or false or 0
 423      function is_kinda_truthy(bool) {
 424        return bool === false || bool === 0 || bool;
 425      }
 426
 427      var value;
 428      if(is_kinda_truthy(context[name])) {
 429        value = context[name];
 430      } else if(is_kinda_truthy(this.context[name])) {
 431        value = this.context[name];
 432      }
 433
 434      if(typeof value === "function") {
 435        return value.apply(context);
 436      }
 437      if(value !== undefined) {
 438        return value;
 439      }
 440      // silently ignore unkown variables
 441      return "";
 442    },
 443
 444    // Utility methods
 445
 446    /* includes tag */
 447    includes: function(needle, haystack) {
 448      return haystack.indexOf(this.otag + needle) != -1;
 449    },
 450
 451    /*
 452      Does away with nasty characters
 453    */
 454    escape: function(s) {
 455      s = String(s === null ? "" : s);
 456      return s.replace(/&(?!\w+;)|["'<>\\]/g, function(s) {
 457        switch(s) {
 458        case "&": return "&amp;";
 459        case "\\": return "\\\\";
 460        case '"': return '&quot;';
 461        case "'": return '&#39;';
 462        case "<": return "&lt;";
 463        case ">": return "&gt;";
 464        default: return s;
 465        }
 466      });
 467    },
 468
 469    // by @langalex, support for arrays of strings
 470    create_context: function(_context) {
 471      if(this.is_object(_context)) {
 472        return _context;
 473      } else {
 474        var iterator = ".";
 475        if(this.pragmas["IMPLICIT-ITERATOR"]) {
 476          iterator = this.pragmas["IMPLICIT-ITERATOR"].iterator;
 477        }
 478        var ctx = {};
 479        ctx[iterator] = _context;
 480        return ctx;
 481      }
 482    },
 483
 484    is_object: function(a) {
 485      return a && typeof a == "object";
 486    },
 487
 488    is_array: function(a) {
 489      return Object.prototype.toString.call(a) === '[object Array]';
 490    },
 491
 492    /*
 493      Gets rid of leading and trailing whitespace
 494    */
 495    trim: function(s) {
 496      return s.replace(/^\s*|\s*$/g, "");
 497    },
 498
 499    /*
 500      Why, why, why? Because IE. Cry, cry cry.
 501    */
 502    map: function(array, fn) {
 503      if (typeof array.map == "function") {
 504        return array.map(fn);
 505      } else {
 506        var r = [];
 507        var l = array.length;
 508        for(var i = 0; i < l; i++) {
 509          r.push(fn(array[i]));
 510        }
 511        return r;
 512      }
 513    }
 514  };
 515
 516  return({
 517    name: "mustache.js",
 518    version: "0.3.1-dev",
 519
 520    /*
 521      Turns a template and view into HTML
 522    */
 523    to_html: function(template, view, partials, send_fun) {
 524      var renderer = new Renderer();
 525      if(send_fun) {
 526        renderer.send = send_fun;
 527      }
 528      renderer.render(template, view, partials);
 529      if(!send_fun) {
 530        return renderer.buffer.join("\n");
 531      }
 532    }
 533  });
 534}();
 535</script>
 536		<script type="text/javascript">// Underscore.js 1.1.6
 537// (c) 2011 Jeremy Ashkenas, DocumentCloud Inc.
 538// Underscore is freely distributable under the MIT license.
 539// Portions of Underscore are inspired or borrowed from Prototype,
 540// Oliver Steele's Functional, and John Resig's Micro-Templating.
 541// For all details and documentation:
 542// http://documentcloud.github.com/underscore
 543(function(){var p=this,C=p._,m={},i=Array.prototype,n=Object.prototype,f=i.slice,D=i.unshift,E=n.toString,l=n.hasOwnProperty,s=i.forEach,t=i.map,u=i.reduce,v=i.reduceRight,w=i.filter,x=i.every,y=i.some,o=i.indexOf,z=i.lastIndexOf;n=Array.isArray;var F=Object.keys,q=Function.prototype.bind,b=function(a){return new j(a)};typeof module!=="undefined"&&module.exports?(module.exports=b,b._=b):p._=b;b.VERSION="1.1.6";var h=b.each=b.forEach=function(a,c,d){if(a!=null)if(s&&a.forEach===s)a.forEach(c,d);else if(b.isNumber(a.length))for(var e=
 5440,k=a.length;e<k;e++){if(c.call(d,a[e],e,a)===m)break}else for(e in a)if(l.call(a,e)&&c.call(d,a[e],e,a)===m)break};b.map=function(a,c,b){var e=[];if(a==null)return e;if(t&&a.map===t)return a.map(c,b);h(a,function(a,g,G){e[e.length]=c.call(b,a,g,G)});return e};b.reduce=b.foldl=b.inject=function(a,c,d,e){var k=d!==void 0;a==null&&(a=[]);if(u&&a.reduce===u)return e&&(c=b.bind(c,e)),k?a.reduce(c,d):a.reduce(c);h(a,function(a,b,f){!k&&b===0?(d=a,k=!0):d=c.call(e,d,a,b,f)});if(!k)throw new TypeError("Reduce of empty array with no initial value");
 545return d};b.reduceRight=b.foldr=function(a,c,d,e){a==null&&(a=[]);if(v&&a.reduceRight===v)return e&&(c=b.bind(c,e)),d!==void 0?a.reduceRight(c,d):a.reduceRight(c);a=(b.isArray(a)?a.slice():b.toArray(a)).reverse();return b.reduce(a,c,d,e)};b.find=b.detect=function(a,c,b){var e;A(a,function(a,g,f){if(c.call(b,a,g,f))return e=a,!0});return e};b.filter=b.select=function(a,c,b){var e=[];if(a==null)return e;if(w&&a.filter===w)return a.filter(c,b);h(a,function(a,g,f){c.call(b,a,g,f)&&(e[e.length]=a)});return e};
 546b.reject=function(a,c,b){var e=[];if(a==null)return e;h(a,function(a,g,f){c.call(b,a,g,f)||(e[e.length]=a)});return e};b.every=b.all=function(a,c,b){var e=!0;if(a==null)return e;if(x&&a.every===x)return a.every(c,b);h(a,function(a,g,f){if(!(e=e&&c.call(b,a,g,f)))return m});return e};var A=b.some=b.any=function(a,c,d){c||(c=b.identity);var e=!1;if(a==null)return e;if(y&&a.some===y)return a.some(c,d);h(a,function(a,b,f){if(e=c.call(d,a,b,f))return m});return e};b.include=b.contains=function(a,c){var b=
 547!1;if(a==null)return b;if(o&&a.indexOf===o)return a.indexOf(c)!=-1;A(a,function(a){if(b=a===c)return!0});return b};b.invoke=function(a,c){var d=f.call(arguments,2);return b.map(a,function(a){return(c.call?c||a:a[c]).apply(a,d)})};b.pluck=function(a,c){return b.map(a,function(a){return a[c]})};b.max=function(a,c,d){if(!c&&b.isArray(a))return Math.max.apply(Math,a);var e={computed:-Infinity};h(a,function(a,b,f){b=c?c.call(d,a,b,f):a;b>=e.computed&&(e={value:a,computed:b})});return e.value};b.min=function(a,
 548c,d){if(!c&&b.isArray(a))return Math.min.apply(Math,a);var e={computed:Infinity};h(a,function(a,b,f){b=c?c.call(d,a,b,f):a;b<e.computed&&(e={value:a,computed:b})});return e.value};b.sortBy=function(a,c,d){return b.pluck(b.map(a,function(a,b,f){return{value:a,criteria:c.call(d,a,b,f)}}).sort(function(a,b){var c=a.criteria,d=b.criteria;return c<d?-1:c>d?1:0}),"value")};b.sortedIndex=function(a,c,d){d||(d=b.identity);for(var e=0,f=a.length;e<f;){var g=e+f>>1;d(a[g])<d(c)?e=g+1:f=g}return e};b.toArray=
 549function(a){if(!a)return[];if(a.toArray)return a.toArray();if(b.isArray(a))return a;if(b.isArguments(a))return f.call(a);return b.values(a)};b.size=function(a){return b.toArray(a).length};b.first=b.head=function(a,b,d){return b!=null&&!d?f.call(a,0,b):a[0]};b.rest=b.tail=function(a,b,d){return f.call(a,b==null||d?1:b)};b.last=function(a){return a[a.length-1]};b.compact=function(a){return b.filter(a,function(a){return!!a})};b.flatten=function(a){return b.reduce(a,function(a,d){if(b.isArray(d))return a.concat(b.flatten(d));
 550a[a.length]=d;return a},[])};b.without=function(a){var c=f.call(arguments,1);return b.filter(a,function(a){return!b.include(c,a)})};b.uniq=b.unique=function(a,c){return b.reduce(a,function(a,e,f){if(0==f||(c===!0?b.last(a)!=e:!b.include(a,e)))a[a.length]=e;return a},[])};b.intersect=function(a){var c=f.call(arguments,1);return b.filter(b.uniq(a),function(a){return b.every(c,function(c){return b.indexOf(c,a)>=0})})};b.zip=function(){for(var a=f.call(arguments),c=b.max(b.pluck(a,"length")),d=Array(c),
 551e=0;e<c;e++)d[e]=b.pluck(a,""+e);return d};b.indexOf=function(a,c,d){if(a==null)return-1;var e;if(d)return d=b.sortedIndex(a,c),a[d]===c?d:-1;if(o&&a.indexOf===o)return a.indexOf(c);d=0;for(e=a.length;d<e;d++)if(a[d]===c)return d;return-1};b.lastIndexOf=function(a,b){if(a==null)return-1;if(z&&a.lastIndexOf===z)return a.lastIndexOf(b);for(var d=a.length;d--;)if(a[d]===b)return d;return-1};b.range=function(a,b,d){arguments.length<=1&&(b=a||0,a=0);d=arguments[2]||1;for(var e=Math.max(Math.ceil((b-a)/
 552d),0),f=0,g=Array(e);f<e;)g[f++]=a,a+=d;return g};b.bind=function(a,b){if(a.bind===q&&q)return q.apply(a,f.call(arguments,1));var d=f.call(arguments,2);return function(){return a.apply(b,d.concat(f.call(arguments)))}};b.bindAll=function(a){var c=f.call(arguments,1);c.length==0&&(c=b.functions(a));h(c,function(c){a[c]=b.bind(a[c],a)});return a};b.memoize=function(a,c){var d={};c||(c=b.identity);return function(){var b=c.apply(this,arguments);return l.call(d,b)?d[b]:d[b]=a.apply(this,arguments)}};b.delay=
 553function(a,b){var d=f.call(arguments,2);return setTimeout(function(){return a.apply(a,d)},b)};b.defer=function(a){return b.delay.apply(b,[a,1].concat(f.call(arguments,1)))};var B=function(a,b,d){var e;return function(){var f=this,g=arguments,h=function(){e=null;a.apply(f,g)};d&&clearTimeout(e);if(d||!e)e=setTimeout(h,b)}};b.throttle=function(a,b){return B(a,b,!1)};b.debounce=function(a,b){return B(a,b,!0)};b.once=function(a){var b=!1,d;return function(){if(b)return d;b=!0;return d=a.apply(this,arguments)}};
 554b.wrap=function(a,b){return function(){var d=[a].concat(f.call(arguments));return b.apply(this,d)}};b.compose=function(){var a=f.call(arguments);return function(){for(var b=f.call(arguments),d=a.length-1;d>=0;d--)b=[a[d].apply(this,b)];return b[0]}};b.after=function(a,b){return function(){if(--a<1)return b.apply(this,arguments)}};b.keys=F||function(a){if(a!==Object(a))throw new TypeError("Invalid object");var b=[],d;for(d in a)l.call(a,d)&&(b[b.length]=d);return b};b.values=function(a){return b.map(a,
 555b.identity)};b.functions=b.methods=function(a){return b.filter(b.keys(a),function(c){return b.isFunction(a[c])}).sort()};b.extend=function(a){h(f.call(arguments,1),function(b){for(var d in b)b[d]!==void 0&&(a[d]=b[d])});return a};b.defaults=function(a){h(f.call(arguments,1),function(b){for(var d in b)a[d]==null&&(a[d]=b[d])});return a};b.clone=function(a){return b.isArray(a)?a.slice():b.extend({},a)};b.tap=function(a,b){b(a);return a};b.isEqual=function(a,c){if(a===c)return!0;var d=typeof a;if(d!=
 556typeof c)return!1;if(a==c)return!0;if(!a&&c||a&&!c)return!1;if(a._chain)a=a._wrapped;if(c._chain)c=c._wrapped;if(a.isEqual)return a.isEqual(c);if(b.isDate(a)&&b.isDate(c))return a.getTime()===c.getTime();if(b.isNaN(a)&&b.isNaN(c))return!1;if(b.isRegExp(a)&&b.isRegExp(c))return a.source===c.source&&a.global===c.global&&a.ignoreCase===c.ignoreCase&&a.multiline===c.multiline;if(d!=="object")return!1;if(a.length&&a.length!==c.length)return!1;d=b.keys(a);var e=b.keys(c);if(d.length!=e.length)return!1;
 557for(var f in a)if(!(f in c)||!b.isEqual(a[f],c[f]))return!1;return!0};b.isEmpty=function(a){if(b.isArray(a)||b.isString(a))return a.length===0;for(var c in a)if(l.call(a,c))return!1;return!0};b.isElement=function(a){return!!(a&&a.nodeType==1)};b.isArray=n||function(a){return E.call(a)==="[object Array]"};b.isArguments=function(a){return!(!a||!l.call(a,"callee"))};b.isFunction=function(a){return!(!a||!a.constructor||!a.call||!a.apply)};b.isString=function(a){return!!(a===""||a&&a.charCodeAt&&a.substr)};
 558b.isNumber=function(a){return!!(a===0||a&&a.toExponential&&a.toFixed)};b.isNaN=function(a){return a!==a};b.isBoolean=function(a){return a===!0||a===!1};b.isDate=function(a){return!(!a||!a.getTimezoneOffset||!a.setUTCFullYear)};b.isRegExp=function(a){return!(!a||!a.test||!a.exec||!(a.ignoreCase||a.ignoreCase===!1))};b.isNull=function(a){return a===null};b.isUndefined=function(a){return a===void 0};b.noConflict=function(){p._=C;return this};b.identity=function(a){return a};b.times=function(a,b,d){for(var e=
 5590;e<a;e++)b.call(d,e)};b.mixin=function(a){h(b.functions(a),function(c){H(c,b[c]=a[c])})};var I=0;b.uniqueId=function(a){var b=I++;return a?a+b:b};b.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g};b.template=function(a,c){var d=b.templateSettings;d="var __p=[],print=function(){__p.push.apply(__p,arguments);};with(obj||{}){__p.push('"+a.replace(/\\/g,"\\\\").replace(/'/g,"\\'").replace(d.interpolate,function(a,b){return"',"+b.replace(/\\'/g,"'")+",'"}).replace(d.evaluate||
 560null,function(a,b){return"');"+b.replace(/\\'/g,"'").replace(/[\r\n\t]/g," ")+"__p.push('"}).replace(/\r/g,"\\r").replace(/\n/g,"\\n").replace(/\t/g,"\\t")+"');}return __p.join('');";d=new Function("obj",d);return c?d(c):d};var j=function(a){this._wrapped=a};b.prototype=j.prototype;var r=function(a,c){return c?b(a).chain():a},H=function(a,c){j.prototype[a]=function(){var a=f.call(arguments);D.call(a,this._wrapped);return r(c.apply(b,a),this._chain)}};b.mixin(b);h(["pop","push","reverse","shift","sort",
 561"splice","unshift"],function(a){var b=i[a];j.prototype[a]=function(){b.apply(this._wrapped,arguments);return r(this._wrapped,this._chain)}});h(["concat","join","slice"],function(a){var b=i[a];j.prototype[a]=function(){return r(b.apply(this._wrapped,arguments),this._chain)}});j.prototype.chain=function(){this._chain=!0;return this};j.prototype.value=function(){return this._wrapped}})();
 562</script>
 563		<script type="text/javascript">// Backbone.js 0.3.3
 564// (c) 2010 Jeremy Ashkenas, DocumentCloud Inc.
 565// Backbone may be freely distributed under the MIT license.
 566// For all details and documentation:
 567// http://documentcloud.github.com/backbone
 568(function(){var e;e=typeof exports!=="undefined"?exports:this.Backbone={};e.VERSION="0.3.3";var f=this._;if(!f&&typeof require!=="undefined")f=require("underscore")._;var h=this.jQuery||this.Zepto;e.emulateHTTP=false;e.emulateJSON=false;e.Events={bind:function(a,b){this._callbacks||(this._callbacks={});(this._callbacks[a]||(this._callbacks[a]=[])).push(b);return this},unbind:function(a,b){var c;if(a){if(c=this._callbacks)if(b){c=c[a];if(!c)return this;for(var d=0,g=c.length;d<g;d++)if(b===c[d]){c.splice(d,
 5691);break}}else c[a]=[]}else this._callbacks={};return this},trigger:function(a){var b,c,d,g;if(!(c=this._callbacks))return this;if(b=c[a]){d=0;for(g=b.length;d<g;d++)b[d].apply(this,Array.prototype.slice.call(arguments,1))}if(b=c.all){d=0;for(g=b.length;d<g;d++)b[d].apply(this,arguments)}return this}};e.Model=function(a,b){a||(a={});if(this.defaults)a=f.extend({},this.defaults,a);this.attributes={};this._escapedAttributes={};this.cid=f.uniqueId("c");this.set(a,{silent:true});this._previousAttributes=
 570f.clone(this.attributes);if(b&&b.collection)this.collection=b.collection;this.initialize(a,b)};f.extend(e.Model.prototype,e.Events,{_previousAttributes:null,_changed:false,initialize:function(){},toJSON:function(){return f.clone(this.attributes)},get:function(a){return this.attributes[a]},escape:function(a){var b;if(b=this._escapedAttributes[a])return b;b=this.attributes[a];return this._escapedAttributes[a]=(b==null?"":b).replace(/&(?!\w+;)/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,
 571"&quot;")},set:function(a,b){b||(b={});if(!a)return this;if(a.attributes)a=a.attributes;var c=this.attributes,d=this._escapedAttributes;if(!b.silent&&this.validate&&!this._performValidation(a,b))return false;if("id"in a)this.id=a.id;for(var g in a){var i=a[g];if(!f.isEqual(c[g],i)){c[g]=i;delete d[g];if(!b.silent){this._changed=true;this.trigger("change:"+g,this,i,b)}}}!b.silent&&this._changed&&this.change(b);return this},unset:function(a,b){b||(b={});var c={};c[a]=void 0;if(!b.silent&&this.validate&&
 572!this._performValidation(c,b))return false;delete this.attributes[a];delete this._escapedAttributes[a];if(!b.silent){this._changed=true;this.trigger("change:"+a,this,void 0,b);this.change(b)}return this},clear:function(a){a||(a={});var b=this.attributes,c={};for(attr in b)c[attr]=void 0;if(!a.silent&&this.validate&&!this._performValidation(c,a))return false;this.attributes={};this._escapedAttributes={};if(!a.silent){this._changed=true;for(attr in b)this.trigger("change:"+attr,this,void 0,a);this.change(a)}return this},
 573fetch:function(a){a||(a={});var b=this,c=j(a.error,b,a);(this.sync||e.sync)("read",this,function(d){if(!b.set(b.parse(d),a))return false;a.success&&a.success(b,d)},c);return this},save:function(a,b){b||(b={});if(a&&!this.set(a,b))return false;var c=this,d=j(b.error,c,b),g=this.isNew()?"create":"update";(this.sync||e.sync)(g,this,function(i){if(!c.set(c.parse(i),b))return false;b.success&&b.success(c,i)},d);return this},destroy:function(a){a||(a={});var b=this,c=j(a.error,b,a);(this.sync||e.sync)("delete",
 574this,function(d){b.collection&&b.collection.remove(b);a.success&&a.success(b,d)},c);return this},url:function(){var a=k(this.collection);if(this.isNew())return a;return a+(a.charAt(a.length-1)=="/"?"":"/")+this.id},parse:function(a){return a},clone:function(){return new this.constructor(this)},isNew:function(){return!this.id},change:function(a){this.trigger("change",this,a);this._previousAttributes=f.clone(this.attributes);this._changed=false},hasChanged:function(a){if(a)return this._previousAttributes[a]!=
 575this.attributes[a];return this._changed},changedAttributes:function(a){a||(a=this.attributes);var b=this._previousAttributes,c=false,d;for(d in a)if(!f.isEqual(b[d],a[d])){c=c||{};c[d]=a[d]}return c},previous:function(a){if(!a||!this._previousAttributes)return null;return this._previousAttributes[a]},previousAttributes:function(){return f.clone(this._previousAttributes)},_performValidation:function(a,b){var c=this.validate(a);if(c){b.error?b.error(this,c):this.trigger("error",this,c,b);return false}return true}});
 576e.Collection=function(a,b){b||(b={});if(b.comparator){this.comparator=b.comparator;delete b.comparator}this._boundOnModelEvent=f.bind(this._onModelEvent,this);this._reset();a&&this.refresh(a,{silent:true});this.initialize(a,b)};f.extend(e.Collection.prototype,e.Events,{model:e.Model,initialize:function(){},toJSON:function(){return this.map(function(a){return a.toJSON()})},add:function(a,b){if(f.isArray(a))for(var c=0,d=a.length;c<d;c++)this._add(a[c],b);else this._add(a,b);return this},remove:function(a,
 577b){if(f.isArray(a))for(var c=0,d=a.length;c<d;c++)this._remove(a[c],b);else this._remove(a,b);return this},get:function(a){if(a==null)return null;return this._byId[a.id!=null?a.id:a]},getByCid:function(a){return a&&this._byCid[a.cid||a]},at:function(a){return this.models[a]},sort:function(a){a||(a={});if(!this.comparator)throw Error("Cannot sort a set without a comparator");this.models=this.sortBy(this.comparator);a.silent||this.trigger("refresh",this,a);return this},pluck:function(a){return f.map(this.models,
 578function(b){return b.get(a)})},refresh:function(a,b){a||(a=[]);b||(b={});this._reset();this.add(a,{silent:true});b.silent||this.trigger("refresh",this,b);return this},fetch:function(a){a||(a={});var b=this,c=j(a.error,b,a);(this.sync||e.sync)("read",this,function(d){b.refresh(b.parse(d));a.success&&a.success(b,d)},c);return this},create:function(a,b){var c=this;b||(b={});if(a instanceof e.Model)a.collection=c;else a=new this.model(a,{collection:c});return a.save(null,{success:function(d,g){c.add(d);
 579b.success&&b.success(d,g)},error:b.error})},parse:function(a){return a},chain:function(){return f(this.models).chain()},_reset:function(){this.length=0;this.models=[];this._byId={};this._byCid={}},_add:function(a,b){b||(b={});a instanceof e.Model||(a=new this.model(a,{collection:this}));var c=this.getByCid(a);if(c)throw Error(["Can't add the same model to a set twice",c.id]);this._byId[a.id]=a;this._byCid[a.cid]=a;a.collection=this;this.models.splice(this.comparator?this.sortedIndex(a,this.comparator):
 580this.length,0,a);a.bind("all",this._boundOnModelEvent);this.length++;b.silent||a.trigger("add",a,this,b);return a},_remove:function(a,b){b||(b={});a=this.getByCid(a)||this.get(a);if(!a)return null;delete this._byId[a.id];delete this._byCid[a.cid];delete a.collection;this.models.splice(this.indexOf(a),1);this.length--;b.silent||a.trigger("remove",a,this,b);a.unbind("all",this._boundOnModelEvent);return a},_onModelEvent:function(a,b){if(a==="change:id"){delete this._byId[b.previous("id")];this._byId[b.id]=
 581b}this.trigger.apply(this,arguments)}});f.each(["forEach","each","map","reduce","reduceRight","find","detect","filter","select","reject","every","all","some","any","include","invoke","max","min","sortBy","sortedIndex","toArray","size","first","rest","last","without","indexOf","lastIndexOf","isEmpty"],function(a){e.Collection.prototype[a]=function(){return f[a].apply(f,[this.models].concat(f.toArray(arguments)))}});e.Controller=function(a){a||(a={});if(a.routes)this.routes=a.routes;this._bindRoutes();
 582this.initialize(a)};var o=/:([\w\d]+)/g,p=/\*([\w\d]+)/g;f.extend(e.Controller.prototype,e.Events,{initialize:function(){},route:function(a,b,c){e.history||(e.history=new e.History);f.isRegExp(a)||(a=this._routeToRegExp(a));e.history.route(a,f.bind(function(d){d=this._extractParameters(a,d);c.apply(this,d);this.trigger.apply(this,["route:"+b].concat(d))},this))},saveLocation:function(a){e.history.saveLocation(a)},_bindRoutes:function(){if(this.routes)for(var a in this.routes){var b=this.routes[a];
 583this.route(a,b,this[b])}},_routeToRegExp:function(a){a=a.replace(o,"([^/]*)").replace(p,"(.*?)");return RegExp("^"+a+"$")},_extractParameters:function(a,b){return a.exec(b).slice(1)}});e.History=function(){this.handlers=[];this.fragment=this.getFragment();f.bindAll(this,"checkUrl")};var l=/^#*/;f.extend(e.History.prototype,{interval:50,getFragment:function(a){return(a||window.location).hash.replace(l,"")},start:function(){var a=document.documentMode;if(a=h.browser.msie&&(!a||a<=7))this.iframe=h('<iframe src="javascript:0" tabindex="-1" />').hide().appendTo("body")[0].contentWindow;
 584"onhashchange"in window&&!a?h(window).bind("hashchange",this.checkUrl):setInterval(this.checkUrl,this.interval);return this.loadUrl()},route:function(a,b){this.handlers.push({route:a,callback:b})},checkUrl:function(){var a=this.getFragment();if(a==this.fragment&&this.iframe)a=this.getFragment(this.iframe.location);if(a==this.fragment||a==decodeURIComponent(this.fragment))return false;if(this.iframe)window.location.hash=this.iframe.location.hash=a;this.loadUrl()},loadUrl:function(){var a=this.fragment=
 585this.getFragment();return f.any(this.handlers,function(b){if(b.route.test(a)){b.callback(a);return true}})},saveLocation:function(a){a=(a||"").replace(l,"");if(this.fragment!=a){window.location.hash=this.fragment=a;if(this.iframe&&a!=this.getFragment(this.iframe.location)){this.iframe.document.open().close();this.iframe.location.hash=a}}}});e.View=function(a){this._configure(a||{});this._ensureElement();this.delegateEvents();this.initialize(a)};var q=/^(\w+)\s*(.*)$/;f.extend(e.View.prototype,e.Events,
 586{tagName:"div",$:function(a){return h(a,this.el)},initialize:function(){},render:function(){return this},remove:function(){h(this.el).remove();return this},make:function(a,b,c){a=document.createElement(a);b&&h(a).attr(b);c&&h(a).html(c);return a},delegateEvents:function(a){if(a||(a=this.events)){h(this.el).unbind();for(var b in a){var c=a[b],d=b.match(q),g=d[1];d=d[2];c=f.bind(this[c],this);d===""?h(this.el).bind(g,c):h(this.el).delegate(d,g,c)}}},_configure:function(a){if(this.options)a=f.extend({},
 587this.options,a);if(a.model)this.model=a.model;if(a.collection)this.collection=a.collection;if(a.el)this.el=a.el;if(a.id)this.id=a.id;if(a.className)this.className=a.className;if(a.tagName)this.tagName=a.tagName;this.options=a},_ensureElement:function(){if(!this.el){var a={};if(this.id)a.id=this.id;if(this.className)a["class"]=this.className;this.el=this.make(this.tagName,a)}}});var m=function(a,b){var c=r(this,a,b);c.extend=m;return c};e.Model.extend=e.Collection.extend=e.Controller.extend=e.View.extend=
 588m;var s={create:"POST",update:"PUT","delete":"DELETE",read:"GET"};e.sync=function(a,b,c,d){var g=s[a];a=a==="create"||a==="update"?JSON.stringify(b.toJSON()):null;b={url:k(b),type:g,contentType:"application/json",data:a,dataType:"json",processData:false,success:c,error:d};if(e.emulateJSON){b.contentType="application/x-www-form-urlencoded";b.processData=true;b.data=a?{model:a}:{}}if(e.emulateHTTP)if(g==="PUT"||g==="DELETE"){if(e.emulateJSON)b.data._method=g;b.type="POST";b.beforeSend=function(i){i.setRequestHeader("X-HTTP-Method-Override",
 589g)}}h.ajax(b)};var n=function(){},r=function(a,b,c){var d;d=b&&b.hasOwnProperty("constructor")?b.constructor:function(){return a.apply(this,arguments)};n.prototype=a.prototype;d.prototype=new n;b&&f.extend(d.prototype,b);c&&f.extend(d,c);d.prototype.constructor=d;d.__super__=a.prototype;return d},k=function(a){if(!(a&&a.url))throw Error("A 'url' property or function must be specified");return f.isFunction(a.url)?a.url():a.url},j=function(a,b,c){return function(d){a?a(b,d):b.trigger("error",b,d,c)}}})();
 590</script>
 591		<script type="text/javascript">var GLOBALS, adjustHeight, makeDataRequest, prefs, slugify;
 592prefs = new gadgets.Prefs();
 593GLOBALS = {
 594  rootUrl: "http://gocomics.com"
 595};
 596GLOBALS.feedUrl = "" + GLOBALS.rootUrl + "/feeds";
 597GLOBALS.featureUrl = "" + GLOBALS.feedUrl + "/recent_item/";
 598GLOBALS.featureListUrl = "" + GLOBALS.feedUrl + "/features?min=true&category=comic";
 599GLOBALS.navigation = {
 600  myComics: {
 601    title: 'My Comics',
 602    slug: 'MyComics',
 603    featureGroups: [
 604      {
 605        title: 'My Comics',
 606        slug: 'mycomics',
 607        ids: [],
 608        data: []
 609      }
 610    ]
 611  },
 612  favorites: {
 613    title: 'Favorites',
 614    slug: 'Favorites',
 615    featureGroups: [
 616      {
 617        title: 'My Favorites',
 618        slug: 'myfavorites',
 619        ids: [],
 620        data: []
 621      }, {
 622        title: "Friends' Favorites",
 623        slug: 'friendsfavorites',
 624        ids: [],
 625        data: []
 626      }
 627    ]
 628  },
 629  allComics: {
 630    title: 'All Comics',
 631    slug: 'AllComics',
 632    featureGroups: [
 633      {
 634        title: 'Popular',
 635        slug: 'popular',
 636        ids: [],
 637        data: []
 638      }, {
 639        title: "A-Z",
 640        slug: 'atoz',
 641        ids: [],
 642        data: []
 643      }
 644    ]
 645  }
 646};
 647adjustHeight = function() {
 648  return gadgets.window.adjustHeight();
 649};
 650makeDataRequest = function(url, callback) {
 651  return gadgets.io.makeRequest(url, function(obj) {
 652    if (!obj || obj.rc !== 200) {
 653      console.log('Failed to get data.');
 654    }
 655    return callback(obj.data);
 656  });
 657};
 658slugify = function(str) {
 659  var from, i, to, _ref;
 660  str = str.replace(/^\s+|\s+$/g, '').toLowerCase();
 661  from = "ŕáäâčéëęěíďîňóöôůúüűńçˇ/_,:;";
 662  to = "aaaaeeeeiiiioooouuuunc------";
 663  for (i = 0, _ref = from.length; 0 <= _ref ? i <= _ref : i >= _ref; 0 <= _ref ? i++ : i--) {
 664    str = str.replace(new RegExp(from.charAt(i), 'g'), to.charAt(i));
 665  }
 666  return str.replace(/[^a-z0-9 -]/g, '').replace(/\s+/g, '-').replace(/-+/g, '-');
 667};</script>
 668		<script type="text/javascript">var Feature, FeatureList, HomeView, init;
 669Feature = Backbone.Model.extend({
 670  BASE_URL: GLOBALS.featureUrl,
 671  url: function() {
 672    return this.BASE_URL + this.attributes.id;
 673  }
 674});
 675FeatureList = Backbone.Collection.extend({
 676  BASE_URL: GLOBALS.featureListUrl,
 677  model: Feature,
 678  url: function() {
 679    return this.BASE_URL;
 680  }
 681});
 682HomeView = Backbone.View.extend({
 683  el: $('#home-container'),
 684  template: $('#feature-template').html(),
 685  _features: null,
 686  _currentFeature: null,
 687  _previousFeature: null,
 688  _nextFeature: null,
 689  _index: 0,
 690  _supportedViews: null,
 691  events: {
 692    'click .pick-comics': 'pickComics',
 693    'click .full-size': 'fullSize',
 694    'click .feature-image img': 'fullSize',
 695    'click .prev': 'previous',
 696    'click .next': 'next'
 697  },
 698  initialize: function() {
 699    this.collection = new FeatureList(_.detect(GLOBALS.navigation.myComics.featureGroups, function(g) {
 700      return g.slug === 'mycomics';
 701    }).data);
 702    this.setFeature(this._index);
 703    this._supportedViews = gadgets.views.getSupportedViews();
 704    return this;
 705  },
 706  render: function() {
 707    $('#feature').html(Mustache.to_html(this.template, this._currentFeature.toJSON()));
 708    $('.prev').html("&larr; " + this._previousFeature.attributes.title);
 709    $('.next').html("" + this._nextFeature.attributes.title + " &rarr;");
 710    adjustHeight();
 711    return this;
 712  },
 713  up: function(i) {
 714    if (i + 1 > this.collection.length - 1) {
 715      return 0;
 716    } else {
 717      return i + 1;
 718    }
 719  },
 720  down: function(i) {
 721    if (i - 1 < 0) {
 722      return this.collection.length - 1;
 723    } else {
 724      return i - 1;
 725    }
 726  },
 727  cycle: function(increment) {
 728    this._index = increment ? this.up(this._index) : this.down(this._index);
 729    return this.setFeature(this._index);
 730  },
 731  setFeature: function(i) {
 732    this._currentFeature = this.collection.at(i);
 733    this._previousFeature = this.collection.at(this.down(i));
 734    this._nextFeature = this.collection.at(this.up(i));
 735    return this.render();
 736  },
 737  rockTheCanvasView: function(isEditMode) {
 738    var params;
 739    params = {
 740      'featureId': this._currentFeature.attributes.feature_id,
 741      'isEditMode': isEditMode
 742    };
 743    return gadgets.views.requestNavigateTo(this._supportedViews.canvas, params);
 744  },
 745  pickComics: function(e) {
 746    e.preventDefault();
 747    return this.rockTheCanvasView(true);
 748  },
 749  fullSize: function(e) {
 750    e.preventDefault();
 751    return this.rockTheCanvasView(false);
 752  },
 753  previous: function(e) {
 754    e.preventDefault();
 755    return this.cycle(false);
 756  },
 757  next: function(e) {
 758    e.preventDefault();
 759    return this.cycle(true);
 760  }
 761});
 762init = function() {
 763  var featureGroup, initialize;
 764  featureGroup = _.detect(GLOBALS.navigation.myComics.featureGroups, function(g) {
 765    return g.slug === 'mycomics';
 766  });
 767  if (prefs.getArray(featureGroup.slug).length <= 0) {
 768    featureGroup.ids = [609, 9, 32];
 769  } else {
 770    featureGroup.ids = prefs.getArray(featureGroup.slug);
 771  }
 772  initialize = _.after(featureGroup.ids.length, function() {
 773    return window.View = new HomeView;
 774  });
 775  _(featureGroup.ids).each(function(id) {
 776    return makeDataRequest("" + GLOBALS.featureUrl + id, function(obj) {
 777      featureGroup.data.push(JSON.parse(obj));
 778      return initialize();
 779    });
 780  });
 781  return this;
 782};
 783gadgets.util.registerOnLoadHandler(init);</script>
 784	
 785	]]>
 786	</Content>
 787	
 788	
 789	
 790	<!-- C A N V A S -->
 791	<Content type="html" view="canvas"><![CDATA[
 792		
 793		<style type='text/css'>
 794		  /* http://meyerweb.com/eric/tools/css/reset/ 
 795   v2.0 | 20110126
 796   License: none (public domain)
 797*/
 798
 799html, body, div, span, applet, object, iframe,
 800h1, h2, h3, h4, h5, h6, p, blockquote, pre,
 801a, abbr, acronym, address, big, cite, code,
 802del, dfn, em, img, ins, kbd, q, s, samp,
 803small, strike, strong, sub, sup, tt, var,
 804b, u, i, center,
 805dl, dt, dd, ol, ul, li,
 806fieldset, form, label, legend,
 807table, caption, tbody, tfoot, thead, tr, th, td,
 808article, aside, canvas, details, embed, 
 809figure, figcaption, footer, header, hgroup, 
 810menu, nav, output, ruby, section, summary,
 811time, mark, audio, video {
 812	margin: 0;
 813	padding: 0;
 814	border: 0;
 815	font-size: 100%;
 816	font: inherit;
 817	vertical-align: baseline;
 818}
 819/* HTML5 display-role reset for older browsers */
 820article, aside, details, figcaption, figure, 
 821footer, header, hgroup, menu, nav, section {
 822	display: block;
 823}
 824body {
 825	line-height: 1;
 826}
 827ol, ul {
 828	list-style: none;
 829}
 830blockquote, q {
 831	quotes: none;
 832}
 833blockquote:before, blockquote:after,
 834q:before, q:after {
 835	content: '';
 836	content: none;
 837}
 838table {
 839	border-collapse: collapse;
 840	border-spacing: 0;
 841}
 842		  body {
 843  color: #474747;
 844  font-family: Helvetica, Arial, Verdana, sans-serif;
 845  font-size: 12px; }
 846
 847a {
 848  text-decoration: none;
 849  color: #4a91c1; }
 850
 851a:visited {
 852  color: #4a91c1; }
 853
 854.button, .big-button, .little-button {
 855  border-radius: 5px;
 856  -webkit-border-radius: 5px;
 857  -moz-border-radius: 5px;
 858  color: #FFF;
 859  font-weight: bold;
 860  text-align: center; }
 861
 862.button:visited, .big-button:visited, .little-button:visited {
 863  color: #FFF; }
 864
 865.big-button {
 866  background: #38a3cd;
 867  background: -webkit-gradient(linear, left top, left bottom, from(#8acae1), to(#38a3cd));
 868  background: -moz-linear-gradient(top, #8acae1, #38a3cd);
 869  width: 75px;
 870  display: block;
 871  padding: 6px 10px; }
 872
 873.big-button:hover {
 874  background: #8acae1;
 875  background: -webkit-gradient(linear, left top, left bottom, from(#38a3cd), to(#8acae1));
 876  background: -moz-linear-gradient(top, #38a3cd, #8acae1); }
 877
 878.little-button {
 879  background: #777777;
 880  background: -webkit-gradient(linear, left top, left bottom, from(#888888), to(#777777));
 881  background: -moz-linear-gradient(top, #888888, #777777);
 882  display: inline-block;
 883  width: 150px;
 884  padding: 4px 8px; }
 885
 886.little-button:hover {
 887  background: #888888;
 888  background: -webkit-gradient(linear, left top, left bottom, from(#777777), to(#888888));
 889  background: -moz-linear-gradient(top, #777777, #888888); }
 890
 891.clear {
 892  clear: both; }
 893
 894#canvas {
 895  width: 950px;
 896  background: #FFF;
 897  margin-left: 5px;
 898  margin-top: 5px; }
 899
 900#canvas-container {
 901  background: #FFF; }
 902
 903#tab-navigation {
 904  color: #FFF;
 905  width: inherit; }
 906  #tab-navigation ul {
 907    background: #5e9100;
 908    background: -webkit-gradient(linear, left top, left bottom, from(#78ae07), to(#5e9100));
 909    background: -moz-linear-gradient(top, #78ae07, #5e9100);
 910    border-radius: 5px;
 911    -webkit-border-radius: 5px;
 912    -moz-border-radius: 5px;
 913    display: table;
 914    width: 300px; }
 915    #tab-navigation ul li {
 916      display: table-cell;
 917      border-right: 1px solid #629000;
 918      border-left: 1px solid #8CB94A; }
 919      #tab-navigation ul li a {
 920        font-weight: bold;
 921        color: inherit;
 922        text-align: center;
 923        display: block;
 924        padding: 12px 12px 20px 12px; }
 925      #tab-navigation ul li a:hover, #tab-navigation ul li a.selected {
 926        background: #85b334;
 927        background: -webkit-gradient(linear, left top, left bottom, from(#78ae07), to(#85b334));
 928        background: -moz-linear-gradient(top, #78ae07, #85b334); }
 929      #tab-navigation ul li a.selected {
 930        cursor: inherit; }
 931      #tab-navigation ul li #myComics:hover, #tab-navigation ul li #myComics.selected {
 932        border-top-left-radius: 5px;
 933        border-bottom-left-radius: 5px;
 934        -webkit-border-top-left-radius: 5px;
 935        -webkit-border-bottom-left-radius: 5px;
 936        -moz-border-radius-topleft: 5px;
 937        -moz-border-radius-bottomleft: 5px; }
 938      #tab-navigation ul li #allComics:hover, #tab-navigation ul li #allComics.selected {
 939        border-top-right-radius: 5px;
 940        border-bottom-right-radius: 5px;
 941        -webkit-border-top-right-radius: 5px;
 942        -webkit-border-bottom-right-radius: 5px;
 943        -moz-border-radius-topright: 5px;
 944        -moz-border-radius-bottomright: 5px; }
 945    #tab-navigation ul li:first-child {
 946      border-left: none; }
 947    #tab-navigation ul li.last-li {
 948      border-right: none; }
 949
 950#content {
 951  -moz-box-shadow: 0 0 5px 2px rgba(0, 0, 0, 0.3);
 952  -webkit-box-shadow: 0 0 5px 2px rgba(0, 0, 0, 0.3);
 953  box-shadow: 0 0 5px 2px rgba(0, 0, 0, 0.3);
 954  border-radius: 5px;
 955  -webkit-border-radius: 5px;
 956  -moz-border-radius: 5px;
 957  border-top: 4px solid #71A9CC;
 958  position: relative;
 959  background: #FFF;
 960  top: -10px;
 961  padding-left: 10px;
 962  padding-top: 10px;
 963  padding-bottom: 10px; }
 964
 965#feature {
 966  background: white;
 967  background: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(white));
 968  background: -moz-linear-gradient(top, #f2f2f2, white);
 969  -moz-box-shadow: 0 0 5px 2px #bbbbbb;
 970  -webkit-box-shadow: 0 0 5px 2px #bbbbbb;
 971  box-shadow: 0 0 5px 2px #bbbbbb;
 972  border-radius: 5px;
 973  -webkit-border-radius: 5px;
 974  -moz-border-radius: 5px;
 975  border: 2px solid #FFF;
 976  width: 615px;
 977  display: inline-block;
 978  padding: 15px; }
 979  #feature div.feature-header {
 980    display: table;
 981    width: inherit;
 982    margin-bottom: 10px; }
 983    #feature div.feature-header h1 {
 984      display: table-cell;
 985      vertical-align: middle;
 986      font-size: 24px; }
 987      #feature div.feature-header h1 .byline {
 988        color: #8e8e8e;
 989        font-size: 18px; }
 990    #feature div.feature-header ul.feature-navigation {
 991      display: table-cell;
 992      vertical-align: middle;
 993      text-align: right; }
 994      #feature div.feature-header ul.feature-navigation li {
 995        display: inline-block;
 996        padding: 0 2px; }
 997  #feature div.feature-image {
 998    width: inherit;
 999    text-align: center; }
1000  #feature ul.share-wrapper {
1001    background: #e4e4e4;
1002    background: -webkit-gradient(linear, left top, left bottom, from(white), to(#e4e4e4));
1003    background: -moz-linear-gradient(top, white, #e4e4e4);
1004    border-radius: 5px;
1005    -webkit-border-radius: 5px;
1006    -moz-border-radius: 5px;
1007    -moz-box-shadow: 0 0 5px 1px #cccccc;
1008    -webkit-box-shadow: 0 0 5px 1px #cccccc;
1009    box-shadow: 0 0 5px 1px #cccccc;
1010    font-size: 11px;
1011    border: 1px solid #CCC;
1012    text-align: center;
1013    text-transform: uppercase;
1014    margin-top: 10px; }
1015    #feature ul.share-wrapper li {
1016      display: inline-block;
1017      border-left: 1px solid #DDD; }
1018      #feature ul.share-wrapper li a {
1019        width: 203.667px;
1020        padding: 11px 0;
1021        display: block;
1022        color: inherit; }
1023      #feature ul.share-wrapper li a:hover {
1024        background: white;
1025        background: -webkit-gradient(linear, left top, left bottom, from(#e4e4e4), to(white));
1026        background: -moz-linear-gradient(top, #e4e4e4, white); }
1027      #feature ul.share-wrapper li a#share:hover {
1028        border-top-right-radius: 5px;
1029        border-bottom-right-radius: 5px;
1030        -webkit-border-top-right-radius: 5px;
1031        -webkit-border-bottom-right-radius: 5px;
1032        -moz-border-radius-topright: 5px;
1033        -moz-border-radius-bottomright: 5px; }
1034      #feature ul.share-wrapper li a#favorite:hover {
1035        border-top-left-radius: 5px;
1036        border-bottom-left-radius: 5px;
1037        -webkit-border-top-left-radius: 5px;
1038        -webkit-border-bottom-left-radius: 5px;
1039        -moz-border-radius-topleft: 5px;
1040        -moz-border-radius-bottomleft: 5px; }
1041    #feature ul.share-wrapper li:first-child {
1042      border-left: none; }
1043  #feature fo…

Large files files are truncated, but you can click here to view the full file