/*
 * Author: Yves Van Broekhoven
 * Crafted with ♥
 * Version: 0.6
 * Function prefix: ob_
 */


/*
 * DOM Ready
 */
$(function(){

  // Initial shizzial
  $('body').addClass('js');
  
  // Tooltip
  try { ob_tooltip(); } catch(e) { log(e); }
  
  // Single post view
  if ($('body.single').length > 0) {
    
    //Show & hide
    try { ob_showAndHide(); } catch(e) { log(e); }
    try { ob_bottomNavigation(); } catch(e) { log(e); }
    
    // Check for anchors in url
    if (location.hash.match(/\#comment/)) {
      $($('a[href=#comments]')[0]).click();
    }
    if (location.hash.match(/\#recent-art/)) {
      $($('a[href=#recent-art]')[0]).click();
    }
    if (location.hash.match(/\#related-art/)) {
      $($('a[href=#related-art]')[0]).click();
    }
    if (location.hash.match(/\#tags/)) {
      $($('a[href=#tags]')[0]).click();
    }
    if (location.hash.match(/\#share/)) {
      $($('a[href=#share]')[0]).click();
    }
  }
  
});


/*
 * Tooltip
 * Powered by jQuery Tools (http://flowplayer.org/tools/demos/tooltip/index.html)
 */
function ob_tooltip()
{
  var triggers  = $('.icon-nav a[title]');
  if (triggers.length > 0) {
    var tooltip_el  = $('<div class="tooltip"></div>');
    $('body').append(tooltip_el);
    triggers.tooltip({
      tip: '.tooltip',
      effect: 'fade',
      onBeforeShow: function(){
        $('.tooltip').append('<span></span>');
      },
      offset: [0, 0]
    });
  }
}


/*
 * Show & hide content
 */
function ob_showAndHide()
{
  var body    = $('body');
  var speed   = 500;
  
  // Header
  var header                  = $('#header');
  var header_handler          = $('#header-handler a');
  var header_handler_text     = { 'show': 'show navigation bar', 'hide': 'hide navigation bar' };
  var header_body_class       = 'header-collapsed';
  var header_height           = header.css('height');
  var header_collapsed_height = '5px';
  
  body.addClass(header_body_class);
  header.css({ 'height': header_collapsed_height, 'overflow': 'hidden' });
  header_handler.html(header_handler_text.show);
  header_handler.click(function(){
    if (body.hasClass(header_body_class)) {
      header_handler.html(header_handler_text.hide);
      header.animate({ 'height': header_height }, function(){
        header.css({ 'overflow': 'visible' });
        body.removeClass(header_body_class);
      });
    } else {
      header_handler.html(header_handler_text.show);
      header.css({ 'overflow': 'hidden' });
      header.animate({ 'height': header_collapsed_height }, function(){
        body.addClass(header_body_class);
      });
    }
  });
  
  // Footer
  var footer                  = $('#footer');
  var footer_handler          = $('#footer-handler a');
  var footer_handler_text     = { 'show': 'show footer', 'hide': 'hide footer' };
  var footer_body_class       = 'footer-collapsed';
  var footer_height           = footer.css('height');
  var footer_collapsed_height = '5px';
  
  body.addClass(footer_body_class);
  footer.css({ 'height': footer_collapsed_height, 'overflow': 'hidden' });
  footer_handler.html(footer_handler_text.show);
  footer_handler.click(function(){
    if (body.hasClass(footer_body_class)) {
      footer_handler.html(footer_handler_text.hide);
      if(!$.browser.msie){
        var bottom_scrolling = setInterval('scrollToBottom()', 25);
      }
      footer.animate({ 'height': 190 }, function(){
        footer.css({ 'overflow': 'visible' });
        body.removeClass(footer_body_class);
        if(!$.browser.msie){
          clearInterval(bottom_scrolling);
        }
      });
    } else {
      footer_handler.html(footer_handler_text.show);
      footer.css({ 'overflow': 'hidden' });
      footer.animate({ 'height': footer_collapsed_height }, function(){
        body.addClass(footer_body_class);
      });
    }
    return false;
  });
  
  // Magnify glass
  var magnify_glass = $('.nav-search a, .menu-item-search a');
  var input_search  = $('#searchtext');
  magnify_glass.click(function(){
    if (body.hasClass(header_body_class)) {
      header_handler.click();
      scrollTo(0, 0);
      setTimeout(function(){ input_search.focus(); }, speed);
    } else {
      input_search.focus();
    }
    return false;
  });
  
}


function ob_bottomNavigation()
{

  var bottom_links    = $('#bottom-icon-nav a');
  var bottom_targets  = [];
  var speed   = 500;
  
  // Hide
  bottom_links.each(function(){
    var target = $(this).attr('href');
    $(target).hide();
    bottom_targets.push(target);
  });

  // Events
  bottom_links.click(function(){
    var target = $(this).attr('href');
    var container = $('#bottomContainer');
    
    setActive($(this));
    
    // Close
    var open = isOpen();
    if (open){
      open.hide();
    }
    
    // Open
    $(target).show();
    
    // Scroll
    $.scrollTo($('#bottomContainer'), speed);
    
    return false;
  });
  
  $('.cmts-nr a').click(function(){
    $('.nav-cmts a').click();
  });
  
  // Helpers
  function setActive(el)
  {
    bottom_links.removeClass('active');
    el.addClass('active');
  }
  
  function isOpen()
  {
    var open = false;
    $.each(bottom_targets, function(idx, value){
      if ($(value).is(':visible')) {
        open = $(value);
      }
    });
    return open;
  }
  
}

function scrollToBottom(){
  $.scrollTo(document.height, 0);
}


// usage: log('inside coolFunc',this,arguments);
// paulirish.com/2009/log-a-lightweight-wrapper-for-consolelog/
window.log = function(){
  log.history = log.history || [];   // store logs to an array for reference
  log.history.push(arguments);
  if(this.console){
    console.log( Array.prototype.slice.call(arguments) );
  }
};
