jQuery.preLoadAllImages( ['/images/scrollable/arrow/hori_large.png'] );

var Book = {
  getRelatedElements: function(link) {
    var listItem = jQuery(link).parent();
    var context = listItem.parent().parent();
    return {
      listItem : listItem,
      context : listItem.parent().parent(),
      checkbox : listItem.find(":checkbox"),
      label : listItem.find("label"),
      header : context.find('h2'),
      page: context.find('.page')
    }
  },
  addToSelectedList: function(related) {
    var text = related.header.html() + ' (' + related.page.html() + ')';
    jQuery('ul#selected_ads').append('<li id="selected_' + related.checkbox.attr('id') + '">' + text + '</li>');
  },
  removeFromSelectedList: function(id) {    
    jQuery('ul#selected_ads li#' + id).remove();
  },
  mirrorExistingChecks: function() {
    jQuery(".checklist input:checked").each( function() {
      var rel = Book.getRelatedElements(this);
      rel.listItem.addClass("selected");
      rel.label.html("You've selected to receive free information.");
      Book.addToSelectedList(rel);
    });
  },
  selectAd: function(event) {
    event.preventDefault();
    var rel = Book.getRelatedElements(this);
    rel.listItem.addClass("selected");
    rel.checkbox.attr("checked","checked");
    rel.label.html("You've selected to receive free information.");
    Book.addToSelectedList(rel);
    Book.checkMessage();
  },
  deselectAd: function(event) {
    event.preventDefault();
    var rel = Book.getRelatedElements(this);
    rel.listItem.removeClass("selected");
    rel.checkbox.removeAttr("checked");
    rel.label.html("Click 'Select' if you would like more information.");
    Book.removeFromSelectedList('selected_' + rel.checkbox.attr('id'));
    Book.checkMessage();
  },
  checkMessage: function() {
    var message = jQuery('#no_selected_ads');
    (jQuery('ul#selected_ads').children().size() > 0) ? message.hide() : message.show();
  }
};

jQuery(document).ready(function() {
  jQuery("div.scrollable").scrollable({ size: 1, clickable: false }).navigator();
  
  /* see if anything is previously checked and reflect that in the view*/
  Book.mirrorExistingChecks();

  /* handle the user selections */
  jQuery(".checklist .checkbox-select").click( Book.selectAd );
  jQuery(".checklist .checkbox-deselect").click( Book.deselectAd );
});