(function(){function d(){return navigator.userAgent.indexOf("MSIE")>=0||(navigator.userAgent.indexOf("Safari")>=0&&navigator.userAgent.indexOf("Version/3")>=0&&navigator.userAgent.indexOf("Android")<0)||navigator.userAgent.indexOf("Firefox/1")>=0||navigator.userAgent.indexOf("Firefox/2")>=0||navigator.userAgent.indexOf("Firefox/3.0")>=0}if(d()){$(function(){$("body").empty().addClass("crappybrowser");$("body").html('<p>It\'s come to our attention that your web browser is either rather old or just really crappy. Get a <a href="http://www.google.com/chrome">different one</a>, then come back.</p><p>Love always,<br>The Management</p>')});return}var n="stream";var e={};function a(){$("article").hide();var p=function(){var r=document.location.hash.replace(/#/,"");j(r||n)};p();if("onhashchange" in window){window.onhashchange=p;$("nav a[href=#]").click(k)}else{$("nav a").click(function(r){document.location.hash=$(this).attr("href");p();if($(this).attr("href")=="#"){k()}return false});var q=document.location.hash;window.setInterval(function(){if(document.location.hash!=q){p();q=document.location.hash}},100)}}function j(q){var p="#"+((q=="stream")?"":q);$("article").hide();$("#page-"+q).show();$("nav a").removeClass("selected");$("nav a[href="+p+"]").addClass("selected");if(q in e&&!e[q].complete){e[q]();e[q].complete=true}_gaq.push(["_trackPageview","/#"+q])}e.stream=function(){k()};function k(){if(k._loading){return}k._loading=true;$("#stream").empty();$('<div class="loading">').appendTo("#page-stream");var r={friendfeed:false,twitter:false,plus:false};var p=[];var q=function(s){return function(t){r[s]=true;p=p.concat(t);var u=true;for(var v in r){if(!r[v]){u=false;break}}if(u&&k._loading){k._loading=false;f(p)}}};g(q("friendfeed"));b(q("twitter"));h(q("plus"));window.setTimeout(function(){if(!k._loading){return}k._loading=false;var t=false;for(var u in r){if(r[u]){t=true;break}}if(t){f(p)}else{$("#page-stream .loading").remove();$("<p>").text("The stream is currently down.").appendTo("#stream")}},10000)}function o(p){p([])}function b(q){var p="romannurik";$.ajax({url:"http://api.twitter.com/1/statuses/user_timeline.json",data:{screen_name:p,exclude_replies:"true",include_rts:"true",trim_user:"true",include_entities:"true",count:40},dataType:"jsonp",success:function(w,x,v){var r=[];for(var s=0;s<w.length;s++){var u=w[s];var t={via:{name:"Twitter",url:"http://twitter.com/"+p+"/status/"+u.id_str},body:l(u.text,u.entities||[]),date:new Date(u.created_at.replace(/^\w+ (\w+) (\d+) ([\d:]+) \+0000 (\d+)$/,"$1 $2 $4 $3 UTC")),retweets:u.retweet_count};r.push(t)}q(r)}})}function l(u,t){var w=[];for(var s in t){if(!(s in l.entityTypes_)){continue}for(var r=0;r<t[s].length;r++){t[s][r].entityType=l.entityTypes_[s];w.push(t[s][r])}}w.sort(function(z,A){return z.indices[0]-A.indices[0]});var q=[];var v=0;for(var r=0;r<w.length;r++){var p=w[r];q.push(u.substr(v,p.indices[0]-v));switch(p.entityType){case l.TYPE_MENTION_:entityHtml='<a href="http://twitter.com/'+p.screen_name+'">@'+p.screen_name+"</a>";break;case l.TYPE_HASHTAG_:entityHtml='<a href="http://twitter.com/search/%23'+p.text+'">#'+p.text+"</a>";break;case l.TYPE_URL_:entityHtml='<a href="'+p.url+'">'+p.display_url+"</a>";break}q.push(entityHtml);v=p.indices[1]}q.push(u.substr(v));return q.join("")}l.TYPE_MENTION_=1;l.TYPE_HASHTAG_=2;l.TYPE_URL_=3;l.entityTypes_={user_mentions:l.TYPE_MENTION_,hashtags:l.TYPE_HASHTAG_,urls:l.TYPE_URL_};function h(r){var q="113735310430199015092";var p="AIzaSyDamqa3DXyPyFXQ6qI1VgoW6yBdwMY8rQY";$.ajax({url:"https://www.googleapis.com/plus/v1/people/"+q+"/activities/public",data:{key:p},dataType:"jsonp",success:function(w,s,D){if(w.error){r([]);if(console&&console.error){console.error("Error loading Google+ stream.",w.error)}return}var B=[];for(var y=0;y<w.items.length;y++){var E=w.items[y];var v=E.object||{};var A=[E.title];A.push(' <b><a href="'+E.url+'">Read post &raquo;</a>');var t=[];var u=v.attachments||[];for(var x=0;x<u.length;x++){var z=u[x];switch(z.objectType){case"photo":t.push({url:z.image.url,link:z.fullImage.url});break;case"video":t.push({url:z.image.url,link:z.url});break;case"article":A.push('<div class="link-attachment"><a href="'+z.url+'">'+z.displayName+"</a>");if(z.content){A.push("<br>"+z.content+"")}A.push("</div>");break}}A=A.join("");var C={via:{name:"Google+",url:E.url},body:A,date:i(E.updated),reshares:(v.resharers||{}).totalItems,plusones:(v.plusoners||{}).totalItems,comments:(v.replies||{}).totalItems,thumbnails:t};B.push(C)}r(B)}})}function g(p){$.ajax({url:"http://friendfeed-api.com/v2/feed/romannurik",dataType:"jsonp",success:function(q,u,t){for(var r=0;r<q.entries.length;r++){var s=q.entries[r];s.date=i(s.date);if(!s.via){s.via={name:"FriendFeed",url:s.url}}}p(q.entries)}})}function f(u){u=u||[];u.sort(function(A,B){return B.date-A.date});$("#page-stream .loading").remove();for(var t=0;t<u.length;t++){var y=u[t];var v=$("<li>").addClass(y.via.name).html(y.body);var r=c(y.via.url).domain;var w=(r.match(/plus\.google/))?"images/plus-favicon.png":("http://www.google.com/s2/favicons?domain="+c(y.via.url).domain);$('<img class="icon">').attr("src",w).appendTo(v);if(y.thumbnails&&y.thumbnails.length){var q=$('<ul class="thumbnails">').appendTo(v);for(var s=0;s<y.thumbnails.length;s++){var p=y.thumbnails[s];var z=$("<li>").appendTo(q);if(p.link){z=$("<a>").attr("href",p.link).appendTo(z)}$("<img>").attr({src:p.url}).appendTo(z)}}var x=$('<div class="meta">').appendTo(v);$('<span class="from">').html('<a href="'+y.via.url+'">'+m(y.date-new Date())+"</a> from "+y.via.name).appendTo(x);if(y.plusones){$('<span class="small-numeric-meta">').text("+"+y.plusones).appendTo(x)}if(y.reshares){$('<span class="small-numeric-meta">').text(y.reshares+" reshare"+((y.reshares==1)?"":"s")).appendTo(x)}if(y.retweets){$('<span class="small-numeric-meta">').text(y.retweets+" retweet"+((y.retweets==1)?"":"s")).appendTo(x)}if(y.comments){$('<span class="small-numeric-meta">').text(y.comments+" comment"+((y.comments==1)?"":"s")).appendTo(x)}v.appendTo("#stream")}}function i(p){var r=i.RFC_3339_DATE_RE.exec(p||"");if(!r){return null}var t={year:parseInt(r[1],10),month:parseInt(r[2],10),day:parseInt(r[3],10),hour:parseInt(r[4],10),minute:parseInt(r[5],10),second:parseInt(r[6]||0,10),tz:{exists:!!(r[7]||r[8]),Z:r[7],hrs:parseInt(r[8]||0,10),mins:parseInt(r[9]||0,10)}};var q=new Date(t.year,t.month-1,t.day,t.hour,t.minute,t.second);if(t.tz.exists){var s=q.getTime();s-=q.getTimezoneOffset()*60000;if(t.tz.hrs){s+=(t.tz.hrs*60+t.tz.mins)*60000}q=new Date(s)}window.foo=t;return q}i.RFC_3339_DATE_RE=new RegExp("^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2})\\:(\\d{2})(?:\\:(\\d{2}(?:\\.\\d+)?))?(?:(Z)|([+-]\\d{2})(\\d{2}))?$","i");function m(p){if(!m._plural){m._plural=function(u,r,q,t){var s=r?"round":"floor";return((Math[s](u)==1)?q+" "+t:Math[s](u)+" "+t+"s")}}p=Math.abs(p);if(p<1000){return"under a second ago"}if((p/=1000)<60){return m._plural(p,false,"a","second")+" ago"}if((p/=60)<60){return m._plural(p,false,"a","minute")+" ago"}if((p/=60)<24){return m._plural(p,false,"an","hour")+" ago"}if((p/=24)<7){return m._plural(p,false,"a","day")+" ago"}if(p<30){return m._plural(p/7,true,"a","week")+" ago"}if(p<365){return m._plural(p/30,true,"a","month")+" ago"}if((p/=365)<10){return m._plural(p,true,"a","year")+" ago"}return"a long, long time ago"}window.humanizeTimeDelta=m;function c(q){var p=c.URL_RE.exec(q||"");if(!p){return null}return{scheme:p[1],domain:p[2],port:p[3]?parseInt(p[3],10):null,path:p[4]||null,query:p[5]||null,hash:p[6]||null}}c.URL_RE=new RegExp("^(\\w+\\:(?://)?)([\\w.]+)(?:\\:(\\d+))?(/[^?#]*)?(?:\\?([^#]*))?(?:#(.*))?$","i");e.designs=function(){var p=function(s,r){if(!r){r=""}var t=r+s.toLowerCase().replace(/\s/g,"_").replace(/[^a-z0-9_]/g,"");var q=0;while(document.getElementById(t+(q?q:""))){++q}return t+(q?q:"")};$("#page-designs li").each(function(){var q=$(this);var r=p($(".title",q).text(),"pitem_");q.attr("id",r);$('<div class="meta">').append($(".title, .client",q)).appendTo(q);$('<div class="meta secondary">').append($(".year",q)).appendTo(q);q.click(function(){$("#full-design-preview").remove();var s=$('<div id="full-design-preview">').click(function(){$(this).remove()}).append($("<img>").attr("src",$("img.main",q).attr("src"))).append($("<span>").text("Click to close")).appendTo("body")})})};$(a)})();
