/* FUNCTIONS */

function bookmark() {
  return window.location.hash;
}

function set_bookmark(slug) {
  window.location.replace('#'+slug);
}

function switch_colors(to, from) {
  $("body").addClass(to);
  $("body").removeClass(from);
  $.cookie('colorscheme', to, {path: '/'});
}

function init_sidescroll_gallery() {
  var index = $('.media').index($(bookmark()));
  var next_button = $('#sidescroll_nav .next');
  var prev_button = $('#sidescroll_nav .prev');

  $('#sidescroll_gallery').css('overflow','hidden')
    .serialScroll({
    items: '.media',
    start: 1,
    duration: 400,
    force: true,
    jump: true,
    lock: true,
    easing:'easeInOutExpo',

    onBefore:function(e, elem, $pane, $items, pos){
      if (pos <= 0) {
        prev_button.hide();
      } else { 
        prev_button.show();
      }
    },

    onAfter:function(elem) {
      //console.log('after');
      //set_bookmark($(elem).attr('id'));
    }
  });

  $('.next.sidescroll').click(function() {
      $('#sidescroll_gallery').trigger('next');
      return false;
  });

  $('.prev.sidescroll').click(function() {
      $('#sidescroll_gallery').trigger('prev');
      return false;
  });

  $('#sidescroll_gallery').trigger('goto', [0]);
}

function even_column_height() {
  // Works from left to right
  var tallest = 1;
  var this_height = 1;
  $('.column', '.three_columns:not(".short")').each(function() {
      this_height = $(this).height();
      if (this_height > tallest) {
        tallest = this_height; 
      }
  });
  $('.column', '.three_columns:not(".short")').css('height', tallest+'px');
}

function external_links() {
  //Make all external links open in a new window
  $("a[href^='http://']").each(function() {
      if ($(this).attr('href').indexOf(window.location.host) < 0) {
        $(this).attr('target', '_blank');
      }
  });
}

function log_audio_event(player, action) {
  var track_title, time;
  track_title = player.find('.trackinfo').eq(0).text();
  time = parseInt(
	player.find('.scrubber .ui-slider-range').eq(0).css('width'), 10);
  if (time > 99) { time = 100; }
  if (time < 1 && action != "Play") {
    // Don't log non-Play actions if audio bar is at 0%
    return false;
  } else {
    try {
      pageTracker._trackEvent('Audio', action, track_title, time+'%');
    } catch(tracking_err) {}
    try {
      console.log('Audio', action, track_title, time+'%');
    } catch(console_err) {}
  }
}

function init_event_tracking() {
  $('.audio_player .play').live('click', function() {
      log_audio_event($(this).closest('.audio_player'), 'Play');
  });

  $('.audio_player .pause').live('click', function(event) {
      log_audio_event($(this).closest('.audio_player'), 'Pause');
  });
  
  $(window).unload(function() {
      $('.audio_player').each(function() {
        log_audio_event($(this), 'Leave');
      });
  });
}

/* INIT */

$(document).ready(function() {
  $.localScroll();

  external_links();

  var saved_color = $.cookie('colorscheme');
  if (saved_color && !$('body').hasClass('static_color')) {
    switch_colors(saved_color, '');
  }

  $("#color_switch .light").click(function(){
    switch_colors('light', 'dark');
    return false;
  });

  $("#color_switch .dark").click(function(){
    switch_colors('dark', 'light');
    return false;
  });

  $('#foto .category .title').click(function() {
    $(this).parent().find('ul').slideToggle();
  }).css('cursor','pointer');

  /*
  $(".vLargeTextField").wymeditor({
    updateSelector: "input:submit",
    updateEvent: "click",
  });
  */

  $('a.sync_with_nav').hover(function() {
     var page_link = $(this).attr('class').split(' ')[0];
     $("."+page_link).addClass('active');
    }, function() {
     var page_link = $(this).attr('class').split(' ')[0];
     $("."+page_link).removeClass('active');
    }
  );

  init_sidescroll_gallery();
  even_column_height();
  init_event_tracking();
});

