$(function() {  
  // for libraries
  sizeTid     = undefined;
  ageRangeTid = undefined;
  gender      = undefined;

  // for series
  ageGroupTid = undefined;
  formatTid   = undefined;

  $('.chooser').hover(
    function () {
      $(this).addClass("hover");
    }, 
    function () {
      $(this).removeClass("hover");
    }
  );

  $('span.chooser').hover(
    function () {
      $(this).addClass("hover");
    }, 
    function () {
      $(this).removeClass("hover");
    }
  );
   
  $(".product-chooser-meta table tr.size_tid").bind('click', function() {  
    sizeTid = $(this).attr("id").replace('tid-', '');
    if($(this).hasClass("selected")) {
      $(this).removeClass("selected");
      $(this).parents('form').children('input[name=size_tid]').val('');
      sizeTid = undefined;
    } else {
      //assume one and only one selection for entire page
      $(".product-chooser-meta table tr").removeClass("selected");   
      $(this).addClass("selected");
      $(this).parents('form').children('input[name=size_tid]').val(sizeTid);
    }

    return false;    
 
  });  

  $('a.toggle-library-image').click(function(e) {
    e.preventDefault();
    $(this).parents('.product-chooser-image').children('.library-image').toggle();
    $(this).parents('.product-chooser-image').children('.library-image-controls').toggle();
    $(this).parents('.product-chooser-image').children('.library-image-description').toggle();
    return false;
  });

  $(".product-chooser-meta table tr.freq_format").bind('click', function() {  
    frequencyTid = $(this).attr("id").replace('tid-', '').replace(/-.*/,'');
    formatTid    = $(this).attr('id').replace(/tid-[0-9]*-/,'');
    
    if($(this).hasClass("selected")) {
      $(this).removeClass("selected");
      $(this).parents('form').children('input[name=frequency_tid]').val('');
      $(this).parents('form').children('input[name=format_tid]').val('');
      frequencyTid = undefined;
      formatTid    = undefined;
    } else {
      //assume one and only one selection for entire page
      $(".product-chooser-meta table tr").removeClass("selected");   
      $(this).addClass("selected");
      $(this).parents('form').children('input[name=frequency_tid]').val(frequencyTid);
      $(this).parents('form').children('input[name=format_tid]').val(formatTid);
    }

    return false;    
 
  });  
  
  $("span.chooser").bind('click', function() {  
    var classes = ['age_range_tid', 'ss_gender']; 
    for (var i in classes) {
      if ($(this).hasClass(classes[i])) {
        attr = classes[i];
      }
    } 
    
    tid = $(this).attr("id").replace('tid-', '');
    if($(this).hasClass("selected")) {
      $(this).removeClass("selected");
      $(this).parents('form').children('input[name='+attr+']').val('');
      tid = undefined;
    } else {
      //assume one and only one selection for entire page
      $("span."+attr).removeClass("selected");   
      $(this).addClass("selected");      
      $(this).parents('form').children('input[name='+attr+']').val(tid);
    }

    return false;    
 
  });  

  $("a.goto-product-page.library").bind('click', function(e) {
    e.preventDefault();
    $.util.clearError();
    $.product.gotoProductPage(this,'library')
  });

  $("a.goto-product-page.series").bind('click', function(e) {
    e.preventDefault();
    $.util.clearError();
    $.product.gotoProductPage(this,'series')
  });
 
  $("a.goto-prefs.library").bind('click', function(e) {
    e.preventDefault();
    $.util.clearError();
    $.product.gotoPrefs(this,'library')
  });

  $("a.goto-prefs.series").bind('click', function(e) {
    e.preventDefault();
    $.util.clearError();
    $.product.gotoPrefs(this,'series')
  });
    
  var selectingFormatTid = undefined;
  var selectingFrequencyTid = undefined;
   
  for (var k in $.attr_bundle) {
    if (k == 'age_group_tid') { continue; }
    else if (k == 'frequency_tid') {
      selectingFrequencyTid = $.attr_bundle[k];
    }
    else if (k == 'format_tid') {
      selectingFormatTid = $.attr_bundle[k];
    }

    if (selectingFrequencyTid && selectingFormatTid) {
      $('#product-form-'+$.attr_bundle['age_group_tid']).find('#tid-'+selectingFrequencyTid+'-'+selectingFormatTid).click();
    }
        
    $('#product-form-'+$.attr_bundle['age_group_tid']).find('#tid-'+$.attr_bundle[k]).click();
  }  

});

$.product = {
  gotoPrefs: function(o, type) {
    $.util.post(
      '/service/cart/add_partial_to_cart',
      { product_id: productId },
      function(data) {
	if (data.product.pref_form_nid > 0) {
	  // redirect to pref questions
	  top.location.href='/product/'+type+'/questions';
	} else {
	  // skip preference process and trigger login modal
	  $.cart.bakeCartItem(data.cart_item_id);
	}
      }
    );
  },

  gotoProductPage: function(o, type) {
    $.util.post(
      '/service/product/'+type+'/resolve_product_id',
      $(o).parents('form').children(':input'),
      function(product_id) {
        top.location.href='/product/'+type+'/detail/'+product_id;
      }
    );
  }
}
