/* INNERSHIV */
// http://bit.ly/ishiv | WTFPL License
window.innerShiv=function(){function h(c,e,b){return/^(?:area|br|col|embed|hr|img|input|link|meta|param)$/i.test(b)?c:e+"></"+b+">"}var c,e=document,j,g="abbr article aside audio canvas datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video".split(" ");return function(d,i){if(!c&&(c=e.createElement("div"),c.innerHTML="<nav></nav>",j=c.childNodes.length!==1)){for(var b=e.createDocumentFragment(),f=g.length;f--;)b.createElement(g[f]);b.appendChild(c)}d=d.replace(/^\s\s*/,"").replace(/\s\s*$/,"").replace(/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,"").replace(/(<([\w:]+)[^>]*?)\/>/g,h);c.innerHTML=(b=d.match(/^<(tbody|tr|td|col|colgroup|thead|tfoot)/i))?"<table>"+d+"</table>":d;b=b?c.getElementsByTagName(b[1])[0].parentNode:c;if(i===!1)return b.childNodes;for(var f=e.createDocumentFragment(),k=b.childNodes.length;k--;)f.appendChild(b.firstChild);return f}}();

/* LOADSHIV */
// http://jdbartlett.github.com/innershiv
jQuery.fn.loadShiv=function(url,params,callback){var off,selector,self,type;if(!this.length||typeof url!=='string'){return this;}off=url.indexOf(' ');if(off >= 0){selector=url.slice(off,url.length);url=url.slice(0, off);}type='GET';if(params){if(jQuery.isFunction(params)){callback=params;params=null;}else if(typeof params==='object'){params=jQuery.param(params,jQuery.ajaxSettings.traditional);type='POST';}}self=this;jQuery.ajax({url:url,type:type,dataType:'html',data:params,complete:function(res,status){var shivved;if(status==='success'||status==='notmodified'){shivved=jQuery(innerShiv((selector?'<div>':'')+res.responseText,false));if(selector){shivved=shivved.find(selector);}self.empty().append(shivved);}if(callback){self.each(callback,[res.responseText,status,res]);}}});return this;}

/* INFO */
$(document).ready(function() {

  $('header nav').addClass('js');

  $('header:first nav a').toggle(function() {
  
    $('h1 strong').wrapInner('<b></b>');
    $('h1 strong b').css('opacity', '0').delay(150).fadeTo(750, 1.0);
    $('h1').after(innerShiv('<section id="infoWrap"></section>'), false);
    
    $('#infoWrap article').hide();

    var link = $(this).attr('href');

    $('header:first nav').animate({ top: '525px' }, 600);
    $('#infoWrap').animate({ height: '420px' }, 600, function() { 
      $('header:first nav a').addClass('switch');
    });
    $('#infoWrap').loadShiv(link+' article', function() {
      $('#infoWrap article').hide().delay(300).fadeIn(750);
      $('footer').delay(500).fadeIn(1000);
      $('#infoWrap article h2').remove();
    });
  }, function() {
    $('h1 strong b').fadeTo(750, 0, function() {
      $(this).parent().html("Paul Carbo");
    });
    $('header:first nav').delay(150).animate({ top: '105px' }, 750);
    $('#infoWrap article').fadeOut(350);
    $('footer').fadeOut(350);
    $('#infoWrap').delay(150).animate({ height: '0' }, 750, function() { 
      $('header:first nav a').removeClass('switch');
      $('#infoWrap').remove();
    });
    
  });

});

function preload (arrayOfImages) {
  $(arrayOfImages).each(function() {
    $('<img/>')[0].src = this;
  });
}

$(document).ready(function() {

  preload([
    '/img/proj/alidade-1.png',
    '/img/proj/cssthief-1.png',
    '/img/proj/develup-1.png',
    '/img/proj/flooreyes-1.png',
    '/img/proj/juicy-1.png',
    '/img/proj/littlegal-1.png',
    '/img/proj/paca-1.png',
    '/img/proj/stlmed-1.png',
    '/img/proj/stlsupply-1.png',
    '/img/proj/thirtywords-1.png',
    '/img/proj/threecents-1.png',
    '/img/proj/treefficient-1.png',
  ]);
  
});


/* PROJECT */
$(document).ready(function() {

  $('#projects header').after(innerShiv('<div></div>'), false);
  $('#projects header h3').after('<h4></h4>');
  $('#projects header').append(innerShiv('<a href="#">Close</a>'), false);
  $('#projects header a').hide();
  
  $('#projects nav ul li a').click(function(){
  
    $('#projects header').addClass('alt');
    $('#projects header h3').fadeOut('slow');
    $('#projects header a').fadeIn('slow');
    
    $(this).addClass('on').parent('li').siblings().children('a').removeClass('on');
  
    if ($.browser.opera) {
      $('html').delay(150).animate({scrollTop: $('#projects').offset().top}, 800);
    } else {
      $('html, body').delay(150).animate({scrollTop: $('#projects').offset().top}, 800);
    }           
    
    var link = $(this).attr('href');

    if ( $('#projects div').hasClass('open') ) {  
      $('#projects header h4').fadeOut( function(){
        $(this).loadShiv(link+' h2 span').fadeIn();
      });
      $('#projects div figure').fadeOut( function(){
        $('#projects div').empty().html('<img src="/img/loading.gif" id="loading">');
        $('#projects div').loadShiv(link+' figure', function(){
          $(this).children('figure').hide().fadeIn().children('ol').numberedGallery();
        });
      });
    } else {
      $('#projects div').slideDown('slow', function() {
        $('#projects header h4').hide().loadShiv(link+' h2 span').fadeIn();
        $(this).addClass('open');
        $(this).empty().html('<img src="/img/loading.gif" id="loading">');
        $(this).loadShiv(link+' figure', function() {
          $(this).children('figure').hide().fadeIn().children('ol').numberedGallery();
        });
      });
    };

    return false;
  });

  $('#projects header a').click(function() {
    if ($.browser.opera) {
      $('html').delay(300).animate({scrollTop: $('html').offset().top}, 'slow');
    } else {
      $('html, body').delay(500).animate({scrollTop: $('html').offset().top}, 'slow');
    }
    $(this).fadeOut(400);
    $('#projects header h4').fadeOut();
    $('#projects div figure').fadeOut();
    $('#projects nav ul li a').removeClass('on');
    $('#projects header h3').delay(500).fadeIn('slow');
    $('#projects div').delay(500).slideUp('slow', function() {
      $(this).removeClass('open');
      $('#projects header').removeClass('alt');
    });
    return false;
  });
  
});

/* NUMBERED GALLERY */
jQuery.fn.numberedGallery = function() {
  return this.each(function(){
    var views = $(this).children('li');
    views.hide();
    $(views[0]).show();
    if (views.length > 1) {
      $(this).next().append(innerShiv('<nav><ul></ul></nav>'), false);
      var switcher = $(this).next().children().children('ul');
      views.each(function(){
        var numberLink = (views.index(this)+1).toString();
        if (numberLink.length == 1);
        $('<li><a href="#">'+numberLink+'</a></li>').click(switchImg).appendTo(switcher);
      });
      $('li:first',switcher).addClass('active');
    }
    function switchImg() { 
      $(this).addClass('active').siblings().removeClass('active');
      var clicked = this;
      var nextimg = $(views[$(clicked).parent().children('li').index(clicked)]);
      if ($.browser.opera) {
        $('html').animate({scrollTop: $('#projects').offset().top}, 500);
      } else {
        $('html, body').animate({scrollTop: $('#projects').offset().top}, 500);
      }    
      views.each(function(){
        if ($(this).is(':visible')) {
          $(this).fadeOut(function(){
            nextimg.fadeIn().end();
          });
        }
      });
      return false;
    }
  });
}
