$(document).ready( function() {
  
  // JS classes for CSS
  $('body').removeClass('no-js').addClass('has-js');
  
  // Apply syntax hilighting for code
  sh_highlightDocument();
  
  // Header search form fancyness (clear, add placeholder and pass focus/blur state to parent)
  var inputPlaceholder = $('#header #search input').attr('data-placeholder');
  $('#header #search input').val(inputPlaceholder).focus( function() {
    $(this).parents('#search').addClass('focused');
    if($(this).val()==inputPlaceholder) {
      $(this).val('');
    }
  });
  $('#header #search input').blur( function() {
    if($(this).val()=='') {
      $(this).val(inputPlaceholder);
    }
    $(this).parents('#search').removeClass('focused');
  });
  $('#header #search form').submit( function() {
    $('#header .faux-submit').addClass('active');
  });
  $('#header #search .faux-submit').click( function() {
    $('#header #search form').submit();
  });

  // Focus area filters
  $('.focus-filters li').append('<span class="left"></span><span class="right"></span>');
  $('.focus-area').append('<div class="focus-area-spinner"></div>');
  $('.focus-section:gt(0)').hide();
  $('.focus-filters li').click( function() {
    $('.focus-filters li').removeClass('current');
    $(this).addClass('current');
    thisIndex = $('.focus-filters li').index(this);
    $('.focus-area-spinner').fadeIn( function() {
      $('.focus-section').hide();
      $('.focus-section:eq('+thisIndex+')').show();
      $(this).delay(750).fadeOut();
    });
    return false;
  });

  // Focus area filters 2
  $('.focus-filters2 li').append('<span class="left"></span><span class="right"></span>');
  $('.focus-area2').append('<div class="focus-area-spinner2"></div>');
  $('.focus-section2:gt(0)').hide();
  $('.focus-filters2 li').click( function() {
    $('.focus-filters2 li').removeClass('current');
    $(this).addClass('current');
    thisIndex = $('.focus-filters2 li').index(this);
    $('.focus-area-spinner2').fadeIn( function() {
      $('.focus-section2').hide();
      $('.focus-section2:eq('+thisIndex+')').show();
      $(this).delay(750).fadeOut();
    });
    return false;
  });
    
  // Rounded corners
  $('.rounded').each( function() {
    $(this).wrap('<div class="rounded-wrapper"></div>');
    for (var i=1; i <= 4; i++) {
      $(this).append('<div class="rc rc'+i+'"></div>');
    }
  });
  
  // Education bubble
  // $('.education-bubble').delay(1000).css({ display: 'block', opacity: 0, marginTop: '10px' }).animate({ marginTop: 0, opacity: 1 });
  
  var slideTime = 10000;
  var roleSlides = true;
  if(typeof landingZoneOn != "undefined"){
    if(landingZoneOn == "on" && location.pathname == "/"){
        slideTime = 500;
        roleSlides = false;
    }
  }
  
  // Animated promo area.
  $('.promo').each( function() {
    $(this).prepend('<div class="promo-mask"></div>');
    imagesCount = $(this).find('.photos img').size();
    slideWidth = $(this).find('.photos img:first').width();
    photos = $(this).children('.photos');
    photos.width(slideWidth*imagesCount); /* *3 */
    text = $(this).children('.text');
    text.width(slideWidth*imagesCount*2); /* *6 */
    text.find('img').css('marginRight', slideWidth);
    if(roleSlides){
      currentSlide = 1;  
    }
    else{
      currentSlide = 3;
    }
    if (imagesCount > 1 ) {
          setInterval( function() {
            photos.animate({ marginLeft: (currentSlide*slideWidth*(-1))+'px' }, 2000);
            text.animate({ marginLeft: (currentSlide*slideWidth*(-2))+'px' }, 2000);
            if(roleSlides){
              currentSlide++;
              if(currentSlide==imagesCount) {
                currentSlide=0;
              }
            }
          }, slideTime);
    }
  });
  $('.promo .promo-mask').click( function() {
   // var slideHref = $(this).parents('.promo').find('a:eq('+(currentSlide-1)+')').attr('href');
    if(roleSlides){
      if (currentSlide==0){var slideHref = $(this).parents('.promo').find('a:eq('+(imagesCount-1)+')').attr('href');}
                  else  {var slideHref = $(this).parents('.promo').find('a:eq('+(currentSlide-1)+')').attr('href');}
    }
    else{
      var slideHref = $(this).parents('.promo').find('a:eq('+(imagesCount-1)+')').attr('href');
    }
    if(typeof slideHref !='undefined') {
      window.location = slideHref;
    }
  });
  

  // Text string search
  jQuery.expr[':'].Contains = function(a,i,m){
      return jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase())>=0;
  };
  var scrollingDone = false;
  $('input[type=search]').keyup( function() {
    $('.infocard').fadeOut();
    if($(this).val().length==1 && scrollingDone==false) {
      var searchInputY = $(this).offset()['top'];
      $('body').animate({ scrollTop: searchInputY-40 }, 1000);
      scrollingDone = true;
    }
    if($(this).val()=='') {
      $('.profile').removeClass('faded').addClass('hoverable');
    } else {
      filterString = jQuery.trim($(this).val());
      selector = '.profile:Contains('+filterString+')';
      $('.profile').addClass('faded').removeClass('hoverable');
      $(selector).removeClass('faded').addClass('hoverable');
    }
  });
  
  // Profile hovercards
  $('.profile').hoverIntent( function() {
    if($(this).is('.hoverable')) {
      bio = $(this).find('img').attr('data-bio');
      $(this).find('.infocard p').text(bio);
      $(this).find('.infocard').fadeIn(100);
    }
  }, function() {
    $(this).find('.infocard').delay(50).fadeOut(100);
  });

});



