var page_loaded = false;

$(document).ready(function(){
  // check if project or category page
  // checks for 'project' or 'category' in url
  // animates and sets 'top' css value for #top-side-bar
  // necessary for hard page refreshes, bookmarked pages and external browser changes(history btns)
  set_page_type(window.location.href);
  
  // Proceed with "smart" functionality only if #use-js with rel="true" exists and the browser isn't an IE instance.
  if ($('#use-js').attr('rel') && load_page_system())
  {
    if (window.location.pathname != '/')
    {
      window.location = window.location.protocol + '//' + window.location.host + '/#' + window.location.pathname;
    }

    // add class to non-ie browsers
    $('body').addClass('smart');

    // only deep-link non-ie browsers
    $.address.init(function(event) {
      // nathan
    }).bind('externalChange', {msg: '{value}'}, function(event)
    {
      var h = event.data.msg.replace(/\{value\}/, event.value);
      page_trans(h);

      // animate #top-side-bar
      //set_page_type(window.location.href);

      // set the current class in the main nav on the matched url/hash.
      $('ul#main-nav li').each(function() {
        $(this).removeClass('current');
        if ($(this).find('a').attr('href') == window.location.hash.replace('#', '')) {
          $(this).addClass('current');
        }
      });
    });
  }
  
  // check for the mobiles.
  mobile_check();
  
  // check for andriod
  var ua = navigator.userAgent.toLowerCase();
  var isAndroid = ua.indexOf("android") > -1;
  if(isAndroid) {
    $('body').addClass('android');
  }

  curr_page = null;
  count = 0; 
  curr_m = 1;

  $('.smart a.link, .smart a.category').live('click', function(){
      // allow ajax'ing
      page_loaded = true;
      
      var t = $(this);
      var p = t.attr('href');

      page_trans(p);
      
      if( t.hasClass('link') )
      {
        hide_work_items();
        remove_info_class();
      }    
      
      if( t.hasClass('category') )
      {
        hide_work_items();
      }
      
      return false;
  });

  // prevents work-items from being duplicated on page
  $('a.category').live('click', function(){
      hide_work_items();
  });
  
  $('.smart a.thumbnail-footer').live('click', function(){
      hide_work_items();
      $('div#ajax-wrapper').removeClass('category-pages');
  });

  $('.info').live('click', function(){
      style_info_pages();
  });
  
  // add/remove active nav on nav click
  $('ul#main-nav li a').live('click', function(){
      set_current_mainNav( $(this) );
  });
  
  // add/remove active nav on side-bar click
  $('.left-side-bar li a').live('click', function(){
      $('ul#main-nav li').removeClass('current');
  });

  // on page load create slideshow markers
  init_ss_markers('page0');

  // slideshow button click
  $('a.ss-nav-btn, .ss-marker').live('click', function(){
    var move  = 690;
    var step  = $(this).attr('rel');
		var target_ss = $(this).parents('.ss-container').find('.ss-image-container li');
    var max_img = target_ss.size();
    var prev_btn = $('.ss-prev');
    var next_btn = $('.ss-next');

    if(step <= 0){
      step = 0;
      prev_btn.attr('rel',step);
      next_btn.attr('rel',1); 
      params = {left:('-' + '0')};
    } else {
      prev_btn.attr('rel',(step*1)-1);
      next_btn.attr('rel',(step*1)+1);
      params = {left:('-' + step*move)};
    }
    
    if(step == max_img){
      prev_btn.attr('rel',0);
      next_btn.attr('rel',1);
      params = {left:('-' + '0')};
      step = 0;
    } else {
      prev_btn.attr('rel',(step*1)-1);
      next_btn.attr('rel',(step*1)+1);
      params = {left:('-' + step*move)};
    }
    anim(params);
    
    $('.ss-marker').removeClass('ss-marker-current');
    $('.ss-marker' + step).addClass('ss-marker-current');
    
    // update the view project button with the current project's href.
    var target_url = $('.ss-slider-item[rel=' + step + ']').find('.url').html();
    $('.view-project-btn').attr('href', target_url);

    filter_ss_nav(step);
    
    return false;
  });
  
  $('.thumbnail-footer').hover(arrow_in,arrow_out);

  // CAREERS INFO OPEN / CLOSE
  $('.show_opening').live('click', function() {
      ele = $(this).parents('div.entry').find('div.career-info');
      if(ele.css('display') == 'none') {
          $('div.career-info').slideUp();
          $('div#ajax-wrapper').css({'height':'auto'});
          ele.slideDown(400, function(){
              ele = $(this).parents('div#ajax-wrapper').find('div.page');
              var new_height=ele.height();
          });
      } else {
          ele.slideUp('fast', function(){
              ele = $(this).parents('div#ajax-wrapper').find('.page');
              var new_height=ele.height();
          });
      }
      return false;
  });
  
  // IE check for hiding slider arrows since we aren't ajaxing right now
  // current functionality is based on click, IE needs it on page load
   var childs = $('.ss-container > .ss-image-container ul li').size();
    // only show markers for 2+
    if(childs<=1){ 
      $('.ss-nav-btn').hide();
      $('.view-video-btn').css({'top':'20px'});
    }
  
  // IE is stupid so fix the #contact link on about io
  if($.browser.msie)
  {
    var h = "contact";
    $('a#contact-link').attr('href',h);
  }
  
  // focus/blur blog search box
  $('#io_blog_post_search_term').live('focus', function(){
    var alt = $(this).attr('alt');
    var val = $(this).val();
    if(val == alt)
    {
      $(this).attr('value','');
    }    
  });
  
  $('#io_blog_post_search_term').live('blur', function(){
    var alt = $(this).attr('alt');
    var val = $(this).val();
    if(val == '')
    {
      $(this).attr('value',alt);
    }    
  });

}); // end doc ready

function set_current_mainNav(ele)
{
  $('ul#main-nav li').removeClass('current');
  ele.parent().addClass('current');
}

function isiPad()
{
  if(navigator.platform.indexOf("iPad") != -1) {
    return true;
  }
}

function isiPhone()
{
  if(navigator.platform.indexOf("iPhone") != -1) {
    return true;
  }
}

function iPad_check()
{
  if(isiPad())
  {
    $('body').addClass('ipad');
  }
}

function iPhone_check()
{
  if(isiPhone())
  {
    $('body').addClass('iphone');
  }
}

function mobile_check()
{
  iPad_check();
  iPhone_check();
}

function anim(params){
  $('div.ss-slider').animate(params,800);
}

function link_in()
{
  $(this).find('.ss-nav-item').stop(true, true).delay(200).animate({'right':'0px'}, 500);
}

function link_out()
{
  $(this).find('.ss-nav-item').stop(true, true).delay(200).animate({'right':'-21px'}, 500);
}

function arrow_in()
{
  $(this).find('.arrow').stop(true, true).delay(200).animate({'right':'0px'}, 500);
}

function arrow_out()
{
  $(this).find('.arrow').stop(true, true).delay(200).animate({'right':'-60px'}, 500);
}

// for setting top-side-bar in 'non-link-clicked' situations
function set_page_type(url)
{
  url = url.search("/our-work/project");
  var type = (url == -1)? 'category' : 'project';
  $('body').addClass(type);
}


function page_trans(p)
{
  // prevent page flash before load
  if(!page_loaded)
  {
    $('#page0').css({'opacity':'0'});
    $('#footer').hide();
  }
  
  // animate current page first up and out
  curr_page = $('#page'+ count);
  var curr_page_height = curr_page.height();
  curr_page.stop().animate({'top':'-' + (curr_page_height + 200) + 'px'}, 600, function(){
    // now bring in new page
    loadpage(p);
  });
}

/**
 * add redirect for pages
 * this function is added to update the redirect for 
 */
function updatePageForRedirects(pageurl) {
      var p = '';
//      console.log(pageurl);
      p = pageurl.replace(/^\/our-work\/category\/interactive$/, '/our-work/category/advertising');
      p = p.replace(/^\/our-work\/category\/video$/, '/our-work/category/film-video');
      p = p.replace(/^\/our-work\/category\/photography$/, '/our-work/category/film-video');
      p = p.replace(/^\/our-work\/category\/publishing$/, '/our-work/category/custom-publishing');
      p = p.replace(/^\/our-work\/(project|category)\/social-media$/, '/our-work/category/advertising');
      p = p.replace(/^\/our-work\/category\/(wizardry|shenanigans$)$/, '/our-work/category/shenanigans-wizardry');
      p = pageurl.replace(/\/(blog(.+))/ig, '/');
//      console.log(p);
      return p;
}
function loadpage(p)
{
  if(!$.browser.msie){

      var pageurl = updatePageForRedirects(p);

      $.address.value(pageurl);
  }
  
  if(curr_page)
  {
    curr_page.remove();
  }
  
  $.ajax({
    type: 'GET',
    url: pageurl,
    complete: function(xhr, textStatus)
    {
      var content = xhr.responseText;
      count++;
      var new_page = $('<div class="page" id="page'+ count +'">' + content + '</div>');

      // pdf files on news page
      new_page.find('.io_news_attachments a[href$=".pdf"]').addClass('file-type-pdf');

      $('div#ajax-wrapper').append(new_page);
      var ajax_wrapper_height = new_page.height();
      
      $('div#ajax-wrapper').stop().animate({'height': (ajax_wrapper_height)+'px'},{ 
          duration: 600,
          specialEasing: {
            width: 'linear',
            height: 'easeInOutQuad'
          },
          complete: function() {
            if ($.browser.msie){
                new_page.fadeIn(400, function(){
                    //clears the opacity filter for IE font rendering
                    $(this).css('filter','');
                    $('div#ajax-wrapper').css({'height':'auto'});
                });
            } else {
                new_page.fadeTo(1200, 1);
                $('#footer').fadeTo(1,500);
            }
            
            $('.thumbnail-footer').hover(arrow_in,arrow_out);

            filter_ss_nav(0);
            
            var childs = $('#page'+ count + ' .ss-container > .ss-image-container ul li').size();
            // only show markers for 2+
            if(childs<=1){ 
              $('.ss-nav-btn').hide();
              $('.view-video-btn').css({'top':'20px'});
              return false;
            }

            // on page load create slideshow markers
            init_ss_markers('page'+ count);
          }
      });

      $("html, body").animate({scrollTop: 0}, 500);
    }
  });
}

function init_ss_markers(npage)
{
  var parent = $('.page:last .ss-container');
  childs = $('.page:last .ss-container > .ss-image-container ul li').size();
  var marker = $('<div class="ss-markers"></div');
  
  // only show markers for 2+
  if(childs<=1){return false;}
  
  for(c=0;c<childs;c++)
  {
    marker.append('<span class="ss-marker ss-marker'+c+'" rel="'+c+'"></span>');
  }
  
  parent.prepend(marker);
  
  $('.ss-marker0').addClass('ss-marker-current');
}

function hide_work_items()
{
	$('div#homepage-work-item-container').hide();
	$('div#ajax-wrapper').addClass('category-pages');
}

function show_work_items()
{
	$('#homepage-work-item-container').show();
	$('div#ajax-wrapper').removeClass('category-pages');
}

function style_info_pages()
{
	$('div#ajax-wrapper').addClass('info-pages');
}

function remove_info_class()
{
	$('div#ajax-wrapper').removeClass('info-pages');
}

function filter_ss_nav(step)
{
  if($('.ss-container')){
    var active_slide = $('li.ss-slider-item[rel=' + step + ']');

    if(active_slide.hasClass('slider-video-item')){
      var href = active_slide.find('a').attr('href');
      $('#ss-nav-btn').removeClass('view-project-btn');
      $('#ss-nav-btn').addClass('view-video-btn');
      $('.view-video-btn').attr('href', href);
    } else {
      var href = active_slide.find('a').attr('href');
      $('#ss-nav-btn').removeClass('view-project-btn');
      $('#ss-nav-btn').removeClass('view-video-btn');
    }
  }
}

function is_mobile()
{
  return isiPad() || isiPhone();
}

// load page system only if we're not on iphone, ipad, or IE.
function load_page_system()
{
  return !is_mobile() && !$.browser.msie;
}

