// Mappetite core object

var Mappetite = function(){
  // reusable strings and cached vars
  var $ = jQuery;
  
  var self = {
    init: function(){
      self.setup_carousel();
      self.tweaks();
      self.init_fancybox();
    },
    setup_carousel: function(){
      $('#carousel img.hidden').removeClass('hidden');
      $('#carousel').jcarousel({
        'scroll':1, 
        'start':1, 
        'animation': 400, 
        'auto':15, 
        'wrap':'both', 
        'initCallback': self.custom_controls}
      );
    },
    
    custom_controls: function(carousel){
      var ext_control = $('#carousel-nav div.ext-control');
      ext_control.bind('click', function(){
        carousel.scroll($.jcarousel.intval($(this).attr('data-slide')));
        ext_control.removeClass('selected');
        $(this).addClass('selected');
      });
    },
    
    init_fancybox: function(){
      $('#press-images a.press-img').fancybox({
        showCloseButton: true,
        enableEscapeButton: true,
        overlayShow: true
      });
      
      $('.iframe').fancybox({
        'hideOnContentClick': false,
        'frameWidth': 360,
        'frameHeight': 202 
      });
    },
    
    tweaks: function(){
      self.open_and_close_fixes();
      self.remove_brs();
      self.break_tags_wtf();
      self.lolwut();
    },
    
    layout_fixes: function(){ 
      var search = $('#ny-search').height();
      var blog = $('#blog').height();
      var diff = search - blog;
      var openclose = $('#openings-and-closings').height();
    },
    
    remove_brs: function(){
    	$('#press-images').find('br').remove();
    },
    
    break_tags_wtf: function(){
      $('#openings-and-closings [rel=tag]').attr('href', 'javascript:return false;')
    },
    
    lolwut: function(){
      $('#allsearch table table tr:eq(2) td:first').attr('valign', 'top');
    },
    
    open_and_close_fixes: function(){
      $('span.tag').next('p').remove();
      $('span.tag:contains(ny) a').css('background-color', '#F78F1E');
      $('span.tag:contains(ln) a').css('background-color', '#8BC53E');
      //tidy the dom before measuring for layout tweaks
      self.layout_fixes();
    }
  };
  
  //return the self object, and fire off the init function
  return self.init();
};