$(window).load(function(){if(!$("body#about").length){return}if(!Modernizr.csstransforms){return}var d='<div class="info-content"><div id="graph" class="clearfix"><h4 class="heading-education">Education</h4><h4 class="heading-professional">Professional</h4><div class="bar-segment red"><a class="red" href="about"></a><h5>00</h5></div><div class="bar-segment yellow"><a class="yellow" href="about"></a><h5>04</h5></div><div class="bar-segment purple"><a class="purple" href="about"></a><h5>06</h5></div><div class="bar-segment green"><a class="green" href="about"></a><h5>09</h5></div><div class="bar-segment blue"><a class="blue" href="about"></a><h5>11</h5></div></div></div>';$(".group.experience .box").prepend(d);var j='<div class="info-content"><h5 class="label-top">Academic</h5><a href="about" class="purple"><img class="white-cube" src="'+imgSrcRoot+'img/about/honors-cube-white.png" /><img src="'+imgSrcRoot+'img/about/honors-cube-purple.png" /></a><a href="about" class="red"><img class="white-cube" src="'+imgSrcRoot+'img/about/honors-cube-white.png" /><img src="'+imgSrcRoot+'img/about/honors-cube-red.png" /></a><a href="about" class="blue"><img class="white-cube" src="'+imgSrcRoot+'img/about/honors-cube-white.png" /><img src="'+imgSrcRoot+'img/about/honors-cube-blue.png" /></a><a href="about" class="yellow"><img class="white-cube" src="'+imgSrcRoot+'img/about/honors-cube-white.png" /><img src="'+imgSrcRoot+'img/about/honors-cube-yellow.png" /></a><h5 class="label-bottom">Professional</h5><a href="about" class="green"><img class="white-cube" src="'+imgSrcRoot+'img/about/honors-cube-white.png" /><img src="'+imgSrcRoot+'img/about/honors-cube-green.png" /></a></div>';$(".group.honors-publications .box.honors").prepend(j);var g='<div class="info-content"><h5 class="books-label">Books</h5><h5 class="mag-label">Magazines</h5><img src="'+imgSrcRoot+'img/about/publications_bg.png" /><a class="red" href="about"></a><a class="blue" href="about"></a><a class="green" href="about"></a><a class="purple" href="about"></a></div>';$(".group.honors-publications .box.publications").prepend(g);var b='<div class="info-content"><img src="'+imgSrcRoot+'img/about/skills-graph.png" /><a href="about" class="red">Print</a><a href="about" class="yellow">Interactive</a><a href="about" class="blue">3D Visualization</a><a href="about" class="green">Motion Graphics</a></div>';$(".group.skills .box").prepend(b);$(".info-content a").bind("mouseover",h).bind("mouseout",a).bind("click",f);$("#visual-resume .box").bind("mouseover",function(l){var k=$(this).data("maxHeight");$(this).css("height",k+"px")}).bind("mouseout",function(k){if($(this).hasClass("locked")){return}$(this).css("height",$(this).data("startingHeight")+"px")});c();$(window).bind("resize",function(k){c()});setTimeout(c,1000);i();function h(k){$(".locked").removeClass("locked");$("#visual-resume .box").trigger("mouseout");var l=e($(this));l.toggleClass("hidden")}function a(k){var l=e($(this));l.toggleClass("hidden")}function f(k){$(".locked").removeClass("locked");$(this).addClass("locked");var l=e($(this));l.addClass("locked").closest(".box").addClass("locked");if(Modernizr.touch){$("#visual-resume .content-set").addClass("hidden");l.toggleClass("hidden")}return false}function c(){$("#visual-resume .box").each(function(){$(this).css("height","auto");var m=$(this).height();if($(this).closest(".skills").length){m=$(".group.honors-publications").height()-103}$(this).data("startingHeight",m).css("height",m+"px");var n=0;var l=null;$(this).find(".content-set").each(function(){var p=$(this).outerHeight();if(p>=n){n=p;l=$(this)}});var o=(1-($("#visual-resume").width()/1200))*230;var k=$(this).closest(".skills").length?-30:0;$(this).data("maxHeight",n+m+o+k)})}function e(o){var n=o.closest(".box"),l=n.find("a"),k=l.index(o),m=n.find(".content-set").eq(k);return m}function i(){var k=$("#visual-resume h2"),l=$("#visual-resume .info-content a");l.each(function(n){var m=$(this).attr("class");k.eq(n).addClass("h2-"+m)
})}});function Cube(h,a,j){var q={},f=h,e=[],i,o,m,c,d,b=true,g=j;q.coords={position:{current:{x:0,y:0,z:0},target:{x:0,y:0,z:0}},rotation:{current:{x:0,y:0,z:0},target:{x:0,y:0,z:0}},scale:{current:{x:1,y:1,z:1},target:{x:1,y:1,z:1}}};q.positionComplete=false;q.scaleComplete=false;q.rotationComplete=false;var p=function(){n();k()};var n=function(){var s="";for(var r=0;r<f;r++){s+='<div class="cube-face side-'+r+'"></div>'}i=$('<div class="cube-holder"><div class="cube '+g+'"></div></div>').appendTo(a);o=i.find("div").html(s)};var l=function(){var r=colors;var s=Math.floor(Math.random()*r.length);return r[s]};var k=function(){if(!document.usingChrome){if($('html[data-useragent*="Chrome"]').length){document.usingChrome=true}else{document.usingChrome=false}}};q.setCoords=function(t,s,B,w,u){var r=(B!=null)?B:q.coords[t][s].x;var A=(w!=null)?w:q.coords[t][s].y;var v=(u!=null)?u:q.coords[t][s].z;q.coords[t][s].x=r;q.coords[t][s].y=A;q.coords[t][s].z=v};q.width=function(){return i.height()};q.height=function(){return o.height()};q.setOpacity=function(t,r){var s=r?r:300;i[0].style.opacity=Math.pow(0.99,s-t)};q.update=function(){var E=q.coords.position.current.x,D=q.coords.position.current.y,B=q.coords.position.current.z,C=q.coords.scale.current.x,A=q.coords.scale.current.y,z=q.coords.scale.current.z,v=q.coords.rotation.current.x,t=q.coords.rotation.current.y,s=q.coords.rotation.current.z;if(!q.positionComplete){i[0].style.webkitTransform="translate3d("+E+"px, "+D+"px, "+B+"px)"}if(!q.scaleComplete||!q.rotationComplete){o[0].style.webkitTransform="rotateX("+v+"deg) rotateY("+t+"deg) rotateZ("+s+"deg) scale3d("+C+", "+A+", "+z+")"}if(m&&!b&&(!q.positionComplete||!q.scaleComplete||!q.rotationComplete)){var y=o.width(),x=y*C,r=y*A,G=0;if(document.usingChrome){G+=20.5}var F=m.add(c);for(var w=0;w<F.length;w++){var u=F.eq(w);u.width(x);u[0].style.webkitTransform="translate3d("+0+"px, "+0+"px, "+G+"px) rotateX("+v+"deg) rotateY("+t+"deg) rotateZ("+s+"deg)"}}if(B-q.coords.position.target.z!=0){q.setOpacity(B)}q.positionComplete=q.scaleComplete=q.rotationComplete=false};q.addImage=function(u,r){if(!m){var s=u.attr("src");m=$('<img class="cube-image" src="'+s+'" alt="" />');c=$('<div class="cube-project-info '+g+'"></div>');i.append(m);i.append(c)}var t=Math.random()*500+800;d=setTimeout(v,t);i.bind("click",function(w){window.location=r});m.css("display","block");b=false;function v(){if(!m){return false}m.addClass("revealed");c.css("display","block")}};q.removeImage=function(){if(!m){return false}clearTimeout(d);m.css("display","none").removeClass("revealed");c.css("display","none");i.unbind("click");b=true};q.setColor=function(r){o.attr("class","cube "+r)};q.removeColor=function(){o.attr("class","cube "+g)};q.addEvent=function(r,s){i.bind(r,s)};q.removeEvent=function(r){i.unbind(r)};q.addClass=function(r){i.addClass(r)};q.removeClass=function(r){i.removeClass(r)};p();return q};function NavigationManager(b){var l={},f=b,d=0,g=1000;l.currentRoutine=null;l.testFunctions={flatten:function(){if($("body#work").length&&f.settings.animationRoutine=="projectSelection"){return false}f.setAnimRoutine("flatten");return false},sinWave:function(){f.setAnimRoutine("sinWave");return false},torus:function(){f.setAnimRoutine("torus");return false},randomScatter:function(){f.assignCubesNewRandomTargetPosition();f.setAnimRoutine("seekTarget");return false},projectSelection:function(){l.currentRoutine=l.testFunctions.projectSelection;f.setAnimRoutine("projectSelection");return false},makeCubesGray:function(){f.makeCubesGray();return false},makeCubesColor:function(){f.makeCubesColor();return false}};var k=function(){h();$("#nav a").bind("mouseover",a);$("#nav a, #home-link").bind("mouseout",j);$("#nav a").eq(0).bind("click",i);if($("body#work").length&&!$(".project-image-holder").length){l.currentRoutine=l.testFunctions.projectSelection}};var h=function(){if(e()){return}$("#home-link").bind("mouseover",function(){clearTimeout(d);if(f.settings.animationRoutine!="seekTarget"){l.testFunctions.randomScatter()}})};var a=function(c){clearTimeout(d);if(e()){return}var m=$(this).index("#nav a");var n=0;for(var o in l.testFunctions){if(n==m){if(f.settings.animationRoutine==o){return false}l.testFunctions[o]();return}else{n++}}};var j=function(c){if(e()){return}if(l.currentRoutine){d=setTimeout(m,g);function m(){l.currentRoutine()}$(window).trigger("setToCurrentRoutine",toString(l.currentRoutine))}};var i=function(c){if(e()){return}$(this).parent("li").attr("id","current");l.testFunctions.projectSelection();return false};var e=function(){if($(window).width()<500){return true}else{return false}};l.addTestingPanel=function(){$("body").append('<div id="test-button-holder"></div>');$("#test-button-holder").css({width:"100px",position:"absolute",bottom:"75px",right:"50px"});var n=n;for(var m in l.testFunctions){var c=$('<a class="test-button" href="">'+m+"</a>");c.css({"font-size":"9px",padding:"6px","background-color":"#fff",display:"inline-block"}).bind("click",l.testFunctions[m]);$("div#test-button-holder").append(c)}};l.setCurrentRoutineByString=function(c){l.currentRoutine=l.testFunctions[c]};k();return l};$(window).load(function(){var e=$("#home-link, #color-change-widget .change-color-button"),g=0,d=true;var c=["#ff0300","#ff0600","#ff0900","#ff0c00","#ff0f00","#ff1200","#ff1500","#ff1800","#ff1b00","#ff1e00","#ff2100","#ff2400","#ff2700","#ff2a00","#ff2d00","#ff3000","#ff3300","#ff3600","#ff3900","#ff3c00","#ff3f00","#ff4200","#ff4500","#ff4800","#ff4b00","#ff4e00","#ff5100","#ff5400","#ff5700","#ff5a00","#ff5d00","#ff6000","#ff6300","#ff6600","#ff6900","#ff6c00","#ff6f00","#ff7200","#ff7500","#ff7800","#ff7b00","#ff7e00","#ff8100","#ff8400","#ff8700","#ff8a00","#ff8d00","#ff9000","#ff9300","#ff9600","#ff9900","#ff9c00","#ff9f00","#ffa200","#ffa500","#ffa800","#ffab00","#ffae00","#ffb100","#ffb400","#ffb700","#ffba00","#ffbd00","#ffc000","#ffc300","#ffc600","#ffc900","#ffcc00","#ffcf00","#ffd200","#ffd500","#ffd800","#ffdb00","#ffde00","#ffe100","#ffe400","#ffe700","#ffea00","#ffed00","#fff000","#fff300","#fff600","#fff900","#fffc00","#ffff00","#fcff00","#f9ff00","#f6ff00","#f3ff00","#f0ff00","#edff00","#eaff00","#e7ff00","#e4ff00","#e1ff00","#deff00","#dbff00","#d8ff00","#d5ff00","#d2ff00","#cfff00","#ccff00","#c9ff00","#c6ff00","#c3ff00","#c0ff00","#bdff00","#baff00","#b7ff00","#b4ff00","#b1ff00","#aeff00","#abff00","#a8ff00","#a5ff00","#a2ff00","#9fff00","#9cff00","#99ff00","#96ff00","#93ff00","#90ff00","#8dff00","#8aff00","#87ff00","#84ff00","#81ff00","#7eff00","#7bff00","#78ff00","#75ff00","#72ff00","#6fff00","#6cff00","#69ff00","#66ff00","#63ff00","#60ff00","#5dff00","#5aff00","#57ff00","#54ff00","#51ff00","#4eff00","#4bff00","#48ff00","#45ff00","#42ff00","#3fff00","#3cff00","#39ff00","#36ff00","#33ff00","#30ff00","#2dff00","#2aff00","#27ff00","#24ff00","#21ff00","#1eff00","#1bff00","#18ff00","#15ff00","#12ff00","#0fff00","#0cff00","#09ff00","#06ff00","#03ff00","#00ff00","#00ff03","#00ff06","#00ff09","#00ff0c","#00ff0f","#00ff12","#00ff15","#00ff18","#00ff1b","#00ff1e","#00ff21","#00ff24","#00ff27","#00ff2a","#00ff2d","#00ff30","#00ff33","#00ff36","#00ff39","#00ff3c","#00ff3f","#00ff42","#00ff45","#00ff48","#00ff4b","#00ff4e","#00ff51","#00ff54","#00ff57","#00ff5a","#00ff5d","#00ff60","#00ff63","#00ff66","#00ff69","#00ff6c","#00ff6f","#00ff72","#00ff75","#00ff78","#00ff7b","#00ff7e","#00ff81","#00ff84","#00ff87","#00ff8a","#00ff8d","#00ff90","#00ff93","#00ff96","#00ff99","#00ff9c","#00ff9f","#00ffa2","#00ffa5","#00ffa8","#00ffab","#00ffae","#00ffb1","#00ffb4","#00ffb7","#00ffba","#00ffbd","#00ffc0","#00ffc3","#00ffc6","#00ffc9","#00ffcc","#00ffcf","#00ffd2","#00ffd5","#00ffd8","#00ffdb","#00ffde","#00ffe1","#00ffe4","#00ffe7","#00ffea","#00ffed","#00fff0","#00fff3","#00fff6","#00fff9","#00fffc","#00ffff","#00fcff","#00f9ff","#00f6ff","#00f3ff","#00f0ff","#00edff","#00eaff","#00e7ff","#00e4ff","#00e1ff","#00deff","#00dbff","#00d8ff","#00d5ff","#00d2ff","#00cfff","#00ccff","#00c9ff","#00c6ff","#00c3ff","#00c0ff","#00bdff","#00baff","#00b7ff","#00b4ff","#00b1ff","#00aeff","#00abff","#00a8ff","#00a5ff","#00a2ff","#009fff","#009cff","#0099ff","#0096ff","#0093ff","#0090ff","#008dff","#008aff","#0087ff","#0084ff","#0081ff","#007eff","#007bff","#0078ff","#0075ff","#0072ff","#006fff","#006cff","#0069ff","#0066ff","#0063ff","#0060ff","#005dff","#005aff","#0057ff","#0054ff","#0051ff","#004eff","#004bff","#0048ff","#0045ff","#0042ff","#003fff","#003cff","#0039ff","#0036ff","#0033ff","#0030ff","#002dff","#002aff","#0027ff","#0024ff","#0021ff","#001eff","#001bff","#0018ff","#0015ff","#0012ff","#000fff","#000cff","#0009ff","#0006ff","#0003ff","#0000ff","#0300ff","#0600ff","#0900ff","#0c00ff","#0f00ff","#1200ff","#1500ff","#1800ff","#1b00ff","#1e00ff","#2100ff","#2400ff","#2700ff","#2a00ff","#2d00ff","#3000ff","#3300ff","#3600ff","#3900ff","#3c00ff","#3f00ff","#4200ff","#4500ff","#4800ff","#4b00ff","#4e00ff","#5100ff","#5400ff","#5700ff","#5a00ff","#5d00ff","#6000ff","#6300ff","#6600ff","#6900ff","#6c00ff","#6f00ff","#7200ff","#7500ff","#7800ff","#7b00ff","#7e00ff","#8100ff","#8400ff","#8700ff","#8a00ff","#8d00ff","#9000ff","#9300ff","#9600ff","#9900ff","#9c00ff","#9f00ff","#a200ff","#a500ff","#a800ff","#ab00ff","#ae00ff","#b100ff","#b400ff","#b700ff","#ba00ff","#bd00ff","#c000ff","#c300ff","#c600ff","#c900ff","#cc00ff","#cf00ff","#d200ff","#d500ff","#d800ff","#db00ff","#de00ff","#e100ff","#e400ff","#e700ff","#ea00ff","#ed00ff","#f000ff","#f300ff","#f600ff","#f900ff","#fc00ff","#ff00ff","#ff00fc","#ff00f9","#ff00f6","#ff00f3","#ff00f0","#ff00ed","#ff00ea","#ff00e7","#ff00e4","#ff00e1","#ff00de","#ff00db","#ff00d8","#ff00d5","#ff00d2","#ff00cf","#ff00cc","#ff00c9","#ff00c6","#ff00c3","#ff00c0","#ff00bd","#ff00ba","#ff00b7","#ff00b4","#ff00b1","#ff00ae","#ff00ab","#ff00a8","#ff00a5","#ff00a2","#ff009f","#ff009c","#ff0099","#ff0096","#ff0093","#ff0090","#ff008d","#ff008a","#ff0087","#ff0084","#ff0081","#ff007e","#ff007b","#ff0078","#ff0075","#ff0072","#ff006f","#ff006c","#ff0069","#ff0066","#ff0063","#ff0060","#ff005d","#ff005a","#ff0057","#ff0054","#ff0051","#ff004e","#ff004b","#ff0048","#ff0045","#ff0042","#ff003f","#ff003c","#ff0039","#ff0036","#ff0033","#ff0030","#ff002d","#ff002a","#ff0027","#ff0024","#ff0021","#ff001e","#ff001b","#ff0018","#ff0015","#ff0012","#ff000f","#ff000c","#ff0009","#ff0006","#ff0003","#ff0000"];
a();h();var f=0;function h(){if(!d){return false}requestAnimFrame(h);b();if(f<500){f++}else{f=0}}function b(){if((f%3)!=0){return false}e.css("background-color",c[g]);if(g<c.length){g++}else{g=0}}function a(){$(document).bind("idle.idleTimer",function(){d=false});$(document).bind("active.idleTimer",function(){d=true;h()})}});(function(a){a.colorChangeWidget=function(d,e,j){var b={};var c=this;c.settings={};var i=function(){c.settings=a.extend({},b,j);c.elm=d;c.cubixRef=e;f();h()};var f=function(){var k=a('<div id="color-change-widget"><a class="change-gray-button" href="" title="Make Cubes Gray">Make Cubes Gray</a><a class="change-color-button inactive" href="" title="Make Cubes Colorful">Make Cubes Colorful</a></div>');c.elm.append(k);c.elm=k;a("#color-change-widget a").bind("click",g)};var g=function(k){if(a(this).hasClass("change-gray-button")){c.cubixRef.makeCubesGray();a.cookie("areCubesColor",null)}else{if(a(this).hasClass("change-color-button")){c.cubixRef.makeCubesColor();a.cookie("areCubesColor","true",{expires:7})}}a("#color-change-widget a").addClass("inactive");a(this).removeClass("inactive");return false};var h=function(){var k=a.cookie("areCubesColor");if(k!=null){if(k=="true"){a("body").attr("data-cubes-colored","true");a("#color-change-widget a").addClass("inactive");a(".change-color-button").removeClass("inactive")}}};i()}})(jQuery);jQuery.cookie=function(d,e,b){if(arguments.length>1&&String(e)!=="[object Object]"){b=jQuery.extend({},b);if(e===null||e===undefined){b.expires=-1}if(typeof b.expires==="number"){var g=b.expires,c=b.expires=new Date();c.setDate(c.getDate()+g)}e=String(e);return(document.cookie=[encodeURIComponent(d),"=",b.raw?e:encodeURIComponent(e),b.expires?"; expires="+b.expires.toUTCString():"",b.path?"; path="+b.path:"",b.domain?"; domain="+b.domain:"",b.secure?"; secure":""].join(""))}b=e||{};var a,f=b.raw?function(h){return h}:decodeURIComponent;return(a=new RegExp("(?:^|; )"+encodeURIComponent(d)+"=([^;]*)").exec(document.cookie))?f(a[1]):null};(function(a){a.cubix=function(d,f){var k={numCubes:50,spinningActive:true,animationRoutine:"stalled",animating:true,perspectiveConstant:998.8590671226};var g=this;g.settings={};var p=function(){g.settings=a.extend({},k,f);g.el=d;g.settings.animationSettings={}};var b=function(){g.settings.allCubes=[];var z=["red","yellow","green","blue","purple"];for(var y=0;y<g.settings.numCubes;y++){var x=new Cube(6,a("#container"),z[Math.round(y%z.length)]);if(a("body").attr("data-cubes-colored")!="true"){x.setColor("gray")}o(x);g.settings.allCubes.push(x)}};var o=function(x){var z=a(window).width();var y=a(window).height();x.setCoords("position","current",Math.random()*z,Math.random()*(a(window).height()-250)+250,-1000);x.setCoords("position","target",x.coords.position.current.x,x.coords.position.current.y,null);x.spinRate=u()};var u=function(){var x=1;return x};var m=function(){a(document).bind("idle.idleTimer",g.stopAnimating);a(document).bind("active.idleTimer",g.startAnimating)};getAllCubes=function(){return g.settings.allCubes};var c=function(){if(!g.settings.animating){return false}requestAnimFrame(c);j()};var j=function(){var x=g.settings.animationRoutine;(s[x])();q(function(y){y.update()});e()};var t={introSetup:function(){q(function(y){setTimeout(x,Math.random()*500+200,y)});function x(y){y.setCoords("rotation","current",0,null,0);y.setCoords("position","target",null,null,Math.random()*600)}a(window).trigger("animationSetupComplete")},hiddenSetup:function(){q(function(x){x.coords.position.target.z=-300});a(window).bind("animationComplete",function(){a(window).unbind("animationComplete");g.stopAnimating();g.el.addClass("hidden")});a(window).trigger("animationSetupComplete")},projectSelectionSetup:function(){g.settings.spinningActive=false;var B=g.settings.animationSettings;B.number_projects=a("#project-selection img").length;B.gap_x=30;B.gap_y=20;B.scale_factor_x=8*0.5,B.scale_factor_y=6*0.5;var y=a(window).width(),x=a(window).height();for(var A=0;A<getAllCubes().length;A++){cube=getAllCubes()[A];z(cube);setTimeout(C,Math.random()*500,cube,A);function C(G,E){G.startLaunch=false;if(E<B.number_projects){G.startLaunch=true;G.setCoords("scale","target",B.scale_factor_x,B.scale_factor_y,1)}else{var D=Math.random()*a(window).width(),F=Math.random()*a(window).height();G.setCoords("position","target",D,F,100);G.setCoords("scale","target",0,0,0)}}function z(F){var E=cube.coords.rotation.current.y;var D=Math.round(E%360);F.setCoords("rotation","current",null,D,null);F.setCoords("rotation","target",25,0,0)}}a(window).bind("animationSetupComplete",function(){a(window).unbind("animationSetupComplete");var D=a("#project-selection a");for(var E=0;E<D.length;E++){cube=getAllCubes()[E];link=D.eq(E);linkImage=link.find("img");linkURL=link.attr("href");cube.addImage(linkImage,linkURL);cube.addClass("opaque")}});a(window).bind("setAnimRoutine",function(D,E){if(E=="projectSelection"){return}q(function(F){F.removeImage();F.removeClass("opaque")});a(window).unbind("setAnimRoutine")});a(window).trigger("animationSetupComplete")},flattenSetup:function(){var y=a(window).width();var x=a(window).height();q(function(z){z.flattenLeftRatio=Math.random();z.flattenBottomRatio=Math.random();z.setCoords("position","target",null,null,Math.random()*500);z.setCoords("rotation","current",0,null,0);z.setCoords("scale","target",7,0.2,0.2)});a(window).trigger("animationSetupComplete")},sinWaveSetup:function(){var x=g.settings;x.theta=0;x.amplitude=75;x.period=300;q(function(y){y.setCoords("rotation","current",0,null,0);y.setCoords("scale","target",10,0.2,1)});a(window).trigger("animationSetupComplete")},torusSetup:function(){var y=g.settings.animationSettings;y.currentRotation=0;for(var x=0;x<getAllCubes().length;x++){cube=getAllCubes()[x];cube.setCoords("scale","target",8-(x*0.05),0.4,1);cube.setCoords("rotation","target",45,null,45)}a(window).trigger("animationSetupComplete")}};var s={stalled:function(){},hidden:function(){s.seekTarget()},intro:function(){s.seekTarget()},spinCubes:function(){q(x);
function x(y){var z=y.coords.rotation.current.y;z+=y.spinRate;y.setCoords("rotation","current",null,z,null)}},seekTarget:function(){q(function(M){var G=(g.settings.animationRoutine=="projectSelection")?0.15:0.08;var L=0.2;var J=0.08;var x=M.coords.position.current;var H=M.coords.position.target;var C=w(x.x,H.x,G);var A=w(x.y,H.y,G);var z=w(x.z,H.z,G);M.setCoords("position","current",C,A,z);var y=M.coords.scale.current;var I=M.coords.scale.target;var E=w(y.x,I.x,J);var D=w(y.y,I.y,J);var B=w(y.z,I.z,J);M.setCoords("scale","current",E,D,B);if(!g.settings.spinningActive){var K=M.coords.rotation.current;var F=M.coords.rotation.target;var P=w(K.x,F.x,L);var O=w(K.y,F.y,L);var N=w(K.z,F.z,L);M.setCoords("rotation","current",P,O,N)}});if(g.settings.spinningActive){s.spinCubes()}},projectSelection:function(){var X=a(window).width(),F=a(window).height();var O=g.settings.animationSettings,V=getAllCubes()[0],Z=V.width()*O.scale_factor_x,A=V.height()*O.scale_factor_y,Y=C(V),M=Math.floor((X*0.7)/Y.vw),z=M>1?M:2,K=K=Math.ceil(O.number_projects/z),R=500,G=0,I=0;var W=D(),E=F*0.5;if(W.height>E){var Q=E/K,N=Q/g.settings.perspectiveConstant,B=l(V,N);R-=B-R}var T=z*(Z+O.gap_x)-O.gap_x-(Z/1.3),L=K*(A+O.gap_y)-O.gap_y-(A/2),U=(X/2)-(T/2),S=(F/2)-(L/2)-((R/600)*(0.09*F));for(var P=0;P<getAllCubes().length;P++){cube=getAllCubes()[P];if(!cube.startLaunch){break}var J=G*(Z+O.gap_x);var H=I*(A+O.gap_y);cube.setCoords("position","target",J+U,H+S,R);if(G==z-1){I++;G=0}else{G++}}s.seekTarget();function C(x){angularSize=h(x,500),cVisualWidth=angularSize.aw*g.settings.perspectiveConstant,cVisualHeight=angularSize.ah*g.settings.perspectiveConstant;return{vw:cVisualWidth,vh:cVisualHeight}}function D(){var y=Y.vw*z,x=Y.vh*K;return{width:y,height:x}}},flatten:function(){var y=a(window).width();var x=a(window).height();q(function(z){var A=z.flattenLeftRatio;var B=z.flattenBottomRatio;z.setCoords("position","target",A*y,x-(x*0.4),null)});s.seekTarget()},sinWave:function(){var B=g.settings;B.theta+=0.02;B.width=a(window).width();B.xspacing=a(window).width()/getAllCubes().length;B.dx=((Math.PI*2)/B.period)*B.xspacing;var z=B.theta;for(var A=0;A<getAllCubes().length;A++){var C=(Math.sin(z)*B.amplitude)+a(window).height()/1.45;z+=B.dx;getAllCubes()[A].setCoords("position","target",Math.round(A*B.xspacing),C-(11*A),400+(A*-11))}s.seekTarget()},torus:function(){var y=g.settings.animationSettings;var E=getAllCubes();var z=y.currentRotation;var G=10;var B=a(window).width()/2;var A=a(window).height()*0.4;var D=a(window).height()>a(window).width()?B*0.4:A*0.5;var F=z;for(var C=0;C<E.length;C++){xpos=Math.sin(n(F))*D;ypos=Math.cos(n(F))*D;E[C].setCoords("position","target",xpos+B,ypos+A+C*3,400+C*-13);F+=G}if(z<360){y.currentRotation++}else{y.currentRotation=0}s.seekTarget()}};var q=function(z){var y=g.settings.allCubes.length;var x=0;while(x<y){z(g.settings.allCubes[x]);x++}};var w=function(y,B,A){var x=((B-y))*A;var z=y+x;return z};var e=function(){var B=0;var y=true;while(B<getAllCubes().length&&y){var E=getAllCubes()[B];var C=[E.coords.position.current.x,E.coords.position.current.y,E.coords.position.current.z];var A=[E.coords.scale.current.x,E.coords.scale.current.y,E.coords.scale.current.z];var x=[E.coords.rotation.current.x,E.coords.rotation.current.y,E.coords.rotation.current.z];var F=[E.coords.position.target.x,E.coords.position.target.y,E.coords.position.target.z];var D=[E.coords.scale.target.x,E.coords.scale.target.y,E.coords.scale.target.z];var z=[E.coords.rotation.target.x,E.coords.rotation.target.y,E.coords.rotation.target.z];if(r(C,F)){E.setCoords("position","current",F[0],F[1],F[2]);E.positionComplete=true}else{y=false;E.positionComplete=false}if(r(A,D)){E.setCoords("scale","current",D[0],D[1],D[2]);E.scaleComplete=true}else{y=false;E.scaleComplete=false}if(r(x,z)){E.setCoords("rotation","current",z[0],z[1],z[2]);E.scaleComplete=true}else{E.rotationComplete=false}B++}if(y){a(window).trigger("animationComplete")}};var r=function(y,A){var x=true;for(var z=0;z<y.length;
z++){var B=Math.abs(A[z]-y[z]);if(B>0.1){x=false}}return x};var n=function(y){var x;x=Math.PI*(y/180);return x};var i=function(x){var y=x*(180/Math.PI);return y};var v=function(x){if(a(window).width()<500){g.stopAnimating()}else{g.startAnimating()}};var h=function(y,B){var G=y.coords,z=G.scale.target,F=z.x,D=z.y,H=y.width()*F,A=y.height()*D,C=B?1000-B:1000-G.position.target.z,x=2*Math.atan((0.5*H)/C),E=2*Math.atan((0.5*A)/C);return{aw:x,ah:E}};var l=function(y,A){var E=y.coords,z=E.scale.target,D=z.x,C=z.y,F=y.width()*D,B=y.height()*C,x=F/A;return x};g.launch=function(){b();c();m();a(window).bind("resize",v)};g.setAnimRoutine=function(x){if(g.settings.animationRoutine==x){return false}g.settings.spinningActive=true;g.settings.animationSettings={};g.el.removeClass("hidden");a(window).unbind("animationComplete");var y=(t[x+"Setup"]);if(typeof y==="function"){a(window).bind("animationSetupComplete",function(){console.log("Animation Setup Complete!");g.settings.animationRoutine=x;a(window).unbind("animationSetupComplete")});y()}else{g.settings.animationRoutine=x}a(window).trigger("setAnimRoutine",x);if(!g.settings.animating){g.startAnimating()}};g.assignCubesNewRandomTargetPosition=function(){q(function(A){var z=Math.random()*a(window).width();var y=Math.random()*(a(window).height()-250)+250;var x=Math.random()*600;A.setCoords("position","target",z,y,x);A.setCoords("scale","target",1,1,1)})};g.assignCubesPositionAsTarget=function(z,C){var B=100;var A=B/2;q(function(G){var E=z!=null?z:G.coords.position.current.x;var D=C!=null?C:G.coords.position.current.y;var y=E+Math.random()*B-A;var x=D+Math.random()*B-A;var F=Math.random()*B*5;G.setCoords("position","target",y,x,F);G.setCoords("scale","target",7,0.2,0.2)});g.setPerspective("wide")};g.setPerspective=function(x){var z;var y=1500;if(x=="flat"){z=3000}else{if(x=="wide"){z=1000}else{z=1000}}a("#container")[0].style.webkitPerspective=z+"px"};g.makeCubesGray=function(){for(var y=0;y<getAllCubes().length;y++){cube=getAllCubes()[y];var x=y*15;setTimeout(z,x,cube);function z(A){A.setColor("gray")}}};g.makeCubesColor=function(){for(var y=0;y<getAllCubes().length;y++){cube=getAllCubes()[y];var x=y*15;setTimeout(z,x,cube);function z(A){A.removeColor()}}};g.startAnimating=function(){if(g.settings.animating){return}g.settings.animating=true;c()};g.stopAnimating=function(){g.settings.animating=false};p()}})(jQuery);/*!
 * jQuery idleTimer plugin
 * version 0.9.100511
 * by Paul Irish.
 *   http://github.com/paulirish/yui-misc/tree/
 * MIT license

 * adapted from YUI idle timer by nzakas:
 *   http://github.com/nzakas/yui-misc/
*/
(function(a){a.idleTimer=function(j,c){var d=false,g=true,h=30000,k="mousemove keydown DOMMouseScroll mousewheel mousedown touchstart touchmove";c=c||document;var f=function(o){if(typeof o==="number"){o=undefined}var n=a.data(o||c,"idleTimerObj");n.idle=!n.idle;var l=(+new Date())-n.olddate;n.olddate=+new Date();if(n.idle&&(l<h)){n.idle=false;clearTimeout(a.idleTimer.tId);if(g){a.idleTimer.tId=setTimeout(f,h)}return}var m=jQuery.Event(a.data(c,"idleTimer",n.idle?"idle":"active")+".idleTimer");m.stopPropagation();a(c).trigger(m)},i=function(l){var m=a.data(l,"idleTimerObj");m.enabled=false;clearTimeout(m.tId);a(l).unbind(".idleTimer")},b=function(){var l=a.data(this,"idleTimerObj");clearTimeout(l.tId);if(l.enabled){if(l.idle){f(this)}l.tId=setTimeout(f,l.timeout)}};var e=a.data(c,"idleTimerObj")||{};e.olddate=e.olddate||+new Date();if(typeof j==="number"){h=j}else{if(j==="destroy"){i(c);return this}else{if(j==="getElapsedTime"){return(+new Date())-e.olddate}}}a(c).bind(a.trim((k+" ").split(" ").join(".idleTimer ")),b);e.idle=d;e.enabled=g;e.timeout=h;e.tId=setTimeout(f,e.timeout);a.data(c,"idleTimer","active");a.data(c,"idleTimerObj",e)};a.fn.idleTimer=function(b){if(this[0]){a.idleTimer(b,this[0])}return this}})(jQuery);/*!
 * jQuery imagesLoaded plugin v1.0.4
 * http://github.com/desandro/imagesloaded
 *
 * MIT License. by Paul Irish et al.
 */
(function(a,b){a.fn.imagesLoaded=function(i){var g=this,e=g.find("img").add(g.filter("img")),c=e.length,h="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";function f(){i.call(g,e)}function d(j){if(--c<=0&&j.target.src!==h){setTimeout(f);e.unbind("load error",d)}}if(!c){f()}e.bind("load error",d).each(function(){if(this.complete||this.complete===b){var j=this.src;this.src=h;this.src=j}});return g}})(jQuery);/* Copyright (c) 2010 Brandon Aaron (http://brandonaaron.net)
 * Licensed under the MIT License (LICENSE.txt).
 *
 * Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
 * Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
 * Thanks to: Seamus Leahy for adding deltaX and deltaY
 *
 * Version: 3.0.4
 *
 * Requires: 1.2.2+
 */
(function(c){var a=["DOMMouseScroll","mousewheel"];c.event.special.mousewheel={setup:function(){if(this.addEventListener){for(var d=a.length;d;){this.addEventListener(a[--d],b,false)}}else{this.onmousewheel=b}},teardown:function(){if(this.removeEventListener){for(var d=a.length;d;){this.removeEventListener(a[--d],b,false)}}else{this.onmousewheel=null}}};c.fn.extend({mousewheel:function(d){return d?this.bind("mousewheel",d):this.trigger("mousewheel")},unmousewheel:function(d){return this.unbind("mousewheel",d)}});function b(i){var g=i||window.event,f=[].slice.call(arguments,1),j=0,h=true,e=0,d=0;i=c.event.fix(g);i.type="mousewheel";if(i.wheelDelta){j=i.wheelDelta/120}if(i.detail){j=-i.detail/3}d=j;if(g.axis!==undefined&&g.axis===g.HORIZONTAL_AXIS){d=0;e=-1*j}if(g.wheelDeltaY!==undefined){d=g.wheelDeltaY/120}if(g.wheelDeltaX!==undefined){e=-1*g.wheelDeltaX/120}f.unshift(i,j,e,d);return c.event.handle.apply(this,f)}})(jQuery);(function(a){a.projectDisplay=function(t,i){var r={revealedEdgeWidth:30};var j=this;j.settings={};var A=function(){j.settings=a.extend({},r,i);j.images=t;j.projectTimeline=new a.projectTimeline(a("#project-selection"));j.projectInfo=new a.projectInfo(a("#project-info"));j.settings.currId=0;j.settings.hidden=false;E();a(window).bind("imagesReady",l);o()};var l=function(){a(window).bind("resize",D);j.images.find("img").live("click",p).live("mousemove",h).live("mouseover",d).live("mouseout",b);a(window).bind("mousewheel",u);a(".indicator").live("mousemove",h).live("click",p).live("mouseover",d).live("mouseout",b);F("add");clearTimeout(j.preloaderTimerId);a("#preloader").removeClass("visible");setTimeout(function(){a("#preloader").remove()},3000);setTimeout(function(){D(null)},300)};var e=function(){var J=j.settings.currId;for(var I=0;I<j.images.length;I++){var H=j.images.eq(I);m(H);if(I<J-1||I>J+1){var K=I-(J+1);var L=K*(H.find("img").width()+400);g(H,L);G(H)}else{if(I==J-1){z(H);g(H,-Math.round(y()+H.find("img").width()-j.settings.revealedEdgeWidth))}else{if(I==J){z(H);g(H,-Math.round(H.find("img").width()/2));f(H)}else{if(I==J+1){z(H);g(H,Math.round(y()-j.settings.revealedEdgeWidth))}}}}q()}};var z=function(H){H.unbind("webkitTransitionEnd");H[0].style.visibility="visible"};var G=function(H){H.bind("webkitTransitionEnd",function(I){a(this).unbind("webkitTransitionEnd");a(this)[0].style.visibility="hidden"})};var f=function(J){if(j.settings.currId>0){var H=a('<div class="indicator left hidden"><span class="arrow"></span></div>');J.append(H)}if(j.settings.currId!=j.images.length-1){var I=a('<div class="indicator right hidden"><span class="arrow"></span></div>');J.append(I);j.settings.onLastProject=false}};var m=function(H){H.find(".indicator").remove()};var y=function(){var H=Math.round(a(window).width()/2);return H};var g=function(I,H,L,K,J){if(s()){return}var H=(H!=undefined)?H:0;var L=(L!=undefined)?L:0;var K=(K!=undefined)?K:1;var J=(J!=undefined)?J:1;I[0].style.webkitTransform="translate3d("+H+"px, "+L+"px, "+0+"px) scale3d("+K+", "+J+", "+1+")";I[0].style.MozTransform="translate("+H+"px, "+L+"px) scale("+K+", "+J+")";I[0].style.OTransform="translate("+H+"px, "+L+"px) scale("+K+", "+J+")";I[0].style.MSTransform="translate("+H+"px, "+L+"px) scale("+K+", "+J+")"};var o=function(){var H=a('<div id="preloader"><div class="loader1"></div><div class="loader2"></div>');a("#project-display").append(H);var I=a("#project-display .project-image-holder img").eq(0).add(a("#project-display .project-image-holder img").eq(1));I.imagesLoaded(function(J){a(window).trigger("imagesReady");return});j.preloaderTimerId=setTimeout(function(){H.addClass("visible")},500)};var D=function(H){if(j.settings.hidden){return}k();e()};var k=function(){if(s()){return}for(var J=0;J<j.images.length;J++){var L=j.images.eq(J),H=L.width(),K=L.height(),I=L.find("img");if(H>K*1.4){I.removeClass("narrow-width-image").css("height",100+"%").css("width","auto")}else{I.addClass("narrow-width-image").css("width",100+"%").css("height","auto")}if(H<K*1.4&&I.height()>I.width()){I.css("height",j.images.eq(J-1).find("img").height()+"px").css("width","auto")}}q();C()};var q=function(){var I=a(".indicator"),H=I.find(".left"),J=I.find(".right");I.each(function(){var M=a(this).parent(".project-image-holder"),L=M.find("img"),K=L.width();a(this).css("top",L.height()/2-40+"px");if(a(this).hasClass("right")){a(this).css("left",K-20+"px")}});w()};var w=function(){var H=a(".project-image-holder").eq(j.settings.currId).find("img"),I=a("#next-project-link");I.css("left",H.width()+"px").css("height",H.height()+"px")};var B=function(){var H=j.images.eq(j.settings.currId);return H};var s=function(){if(a(window).width()<500){return true}else{return false}};var E=function(){a("#project-web-link").bind("mouseover",n).bind("mouseout",c)};var C=function(){var I=a(".project-image-holder").eq(j.settings.currId).find("img"),H=I.height();a("#project-web-link").css("top",H+"px")};var n=function(){a("#project-web-link").removeClass("hidden")
};var c=function(){a("#project-web-link").addClass("hidden")};var p=function(H){if(s()){return}var I=y();if(H.pageX<I){v()}else{x()}};var x=function(){var H=j.settings.currId;if(H==j.images.length-1){return}j.settings.currId++;e();q()};var v=function(){var H=j.settings.currId;if(H==0){return}j.settings.currId--;e();q()};var h=function(H){var I=a(window).width();if(H.pageX<I/2){a(".indicator.left").removeClass("hidden");a(".indicator.right").addClass("hidden")}else{a(".indicator.right").removeClass("hidden");a(".indicator.left").addClass("hidden")}};var u=function(J,K,I,H){console.log("blah");if(K>0){v()}if(K<0){x()}};var d=function(J){var H=j.images.eq(j.settings.currId).find("img").height(),I=a(window).height();if(I-H>450){j.projectTimeline.hide();j.projectInfo.show()}n()};var b=function(H){a(".indicator.right").addClass("hidden");a(".indicator.left").addClass("hidden");a("#next-project-link").removeClass("highlighted");j.projectTimeline.show();j.projectInfo.hide();c()};var F=function(I){var H=j.images.parent("#project-display");if(I=="add"){H.addClass("active")}else{if(I=="remove"){H.removeClass("active")}}};j.hide=function(){j.settings.hidden=true;var J=j.settings.currId;for(var I=0;I<j.images.length;I++){var H=I<J?-2500:1500;g(j.images.eq(I),H)}F("remove");a(window).trigger("hidingProjectDisplay")};j.show=function(){j.settings.hidden=false;D();F("add");a(window).trigger("showingProjectDisplay")};A()}})(jQuery);(function(a){a.projectInfo=function(g,c){var e={};var d=this;d.settings={};var f=function(){d.settings=a.extend({},e,c);d.infoDisplay=g;d.settings.hidden=true};var b=function(){if(a(window).width()<500){return true}else{return false}};d.hide=function(){d.infoDisplay.addClass("hidden")};d.show=function(){d.infoDisplay.removeClass("hidden")};f()}})(jQuery);(function(a){a.projectTimeline=function(g,j){var c={};var e=this;e.settings={};var i=function(){e.settings=a.extend({},c,j);e.projectSelection=g;e.settings.currId=0;e.settings.hidden=false;d();f();b(null);a(window).bind("hidingProjectDisplay",e.hide);a(window).bind("showingProjectDisplay",e.show)};var d=function(){if(!a("body.individual-project").length){return}a("#project-selection").addClass("timeline")};var f=function(){var k=e.projectSelection;k.find("#current").next().addClass("adjacent").next().addClass("semi-adjacent").end().end().prev().addClass("adjacent").prev().addClass("semi-adjacent")};var h=function(){if(a(window).width()<500){return true}else{return false}};var b=function(k){var o=e.projectSelection.find("a").length;var m=4;var l=100/o;e.projectSelection.find("a").css("width",l+"%")};e.hide=function(){e.projectSelection.addClass("hidden")};e.show=function(){e.projectSelection.removeClass("hidden")};i()}})(jQuery);$(function(){var a=$("#project-selection a"),d=["red","yellow","green","blue","purple"],b=Math.floor(Math.random()*(d.length-1));a.each(function(){$(this).addClass(d[b]);if(b==d.length-1){b=0}else{b++}})});$(document).ready(function(){window.requestAnimFrame=(function(){return window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||function(h,g){window.setTimeout(h,1000/60)}})();$.idleTimer(20000);var f,c;if(Modernizr.webkittransform&&Modernizr.csstransforms3d){if($("body#about, body#contact").length){return}f=new $.cubix($("#container"));var b=$("body").attr("id");var a="stalled";switch(b){case"home":a="intro";break;case"work":if($(".project-image-holder").length){break}a="projectSelection";break}c=new NavigationManager(f);colorChangeWidget=new $.colorChangeWidget($("body"),f);f.launch();f.setAnimRoutine(a)}if($(".project-image-holder").length){$("body").addClass("individual-project");if(!Modernizr.csstransforms){return}var e=new $.projectDisplay($("#project-display .project-image-holder"));var d={hidden:function(){f.setAnimRoutine("hidden");e.show()}};$.extend(c.testFunctions,d);c.setCurrentRoutineByString("hidden");f.stopAnimating();$(window).bind("setAnimRoutine",function(){e.hide()})}});
