
RegExp.escape=function(text){if(!arguments.callee.sRE){var specials=['/','.','*','+','?','|','^','(',')','[',']','{','}','\\'];arguments.callee.sRE=new RegExp('(\\'+specials.join('|\\')+')','g');}
return text.replace(arguments.callee.sRE,'\\$1');};(function($){var lastFragment,currentColor;var opts={menu:{fadeInDuration:190,fadeOutDuration:300,easeOut:'easeOutQuad',easeIn:'easeInCirc'},alterFragment:function(href){return href+"index.js.html";},beforeFragmentChanged:function($link){$(opts.container).wrapInner("<div id='fadeMe'></div>");$("#fadeMe").fadeOut(function(){$(this).remove();});var section="";if($.fragment().s){section=$.fragment().s.split(opts.segmentSeparator)[0];}
section=section===""?"work":section;if(lastFragment===undefined||(lastFragment.split(opts.segmentSeparator)[0]!=section)){setActiveMenuItem($("#menu a."+section));backgroundTransition(section);}},insertMethod:function(data){$("body")[0].className=$("body")[0].className.replace(/bgTrans-([^\s]+)/,'');$("body").addClass("bgTrans-"+currentColor);$(opts.container).hide().html(data).fadeIn('fast');},container:"#ct",historyClass:"ui-history",activeClass:"active",spinner:"<img class='spinner' src='/images/spinner.gif'/>",afterFragmentChanged:null,segmentSeparator:'.'};function shouldSetFragment(e){var $target=$(e.target),$result=false,$form;if($target.hasClass(opts.historyClass)){$result=$target;}
if($target.parent().hasClass(opts.historyClass)){$result=$target.parent()[0].tagName=="A"?$target.parent():$target;}
if(!$result){return false;}
if($result[0].tagName=="INPUT"){$form=$result.closest("form");return $form.attr('action')+"?"+$form.serialize();}else{return $result.attr('href');}}
function createFragment(href){var regexp=new RegExp(RegExp.escape(arguments[1]||location.pathname)),sanitized=href.replace(regexp,'').replace(/\//g,opts.segmentSeparator);return sanitized.match(new RegExp(RegExp.escape(opts.segmentSeparator)))?sanitized.substr(0,sanitized.length-1):sanitized;}
function reconstructHref(){var href=(arguments[0]||$.fragment().s).replace(new RegExp(RegExp.escape(opts.segmentSeparator),'g'),"/");return location.pathname+href==''?'':href+'/';}
function extractScripts(){var scriptFragment='<script[^>]*>([\\S\\s]*?)<\/script>',matchAll=new RegExp(scriptFragment,'img'),matchOne=new RegExp(scriptFragment,'im');return $.map((this.match(matchAll)||[]),function(scriptTag){return(scriptTag.match(matchOne)||['',''])[1];});}
function fragmentChanged(){var fragment=$.fragment().s,href,$link;if(!fragment){href=location.pathname;if(!lastFragment){return false;}}else{href=reconstructHref(fragment);}
if(opts.alterFragment){href=opts.alterFragment(href);}
$link=$("a[href='"+href+"']:first");if(opts.beforeFragmentChanged){opts.beforeFragmentChanged.call(lastFragment);}else{$(opts.container).html(opts.spinner);}
lastFragment=fragment;$.get(href,function(data){if(opts.insertMethod){opts.insertMethod(data);}else{$(opts.container).html(data);}
$.each(extractScripts.call(data),function(){return eval(this);});if(opts.afterFragmentChanged){opts.afterFragmentChanged.call($link);}});}
$.fn.sqHistory=function(options){$.extend(opts,options);this.each(function(){var href;$(this).bind('click',function(e){if(href=shouldSetFragment(e)){e.preventDefault();$.setFragment({s:createFragment(href)});}});fragmentChanged();});$(document).bind('fragmentChange',fragmentChanged);};function backgroundTransition(page){var backgrounds={blue:"#758a81 url(../images/bg_body_blue.png) repeat-y 50% 50%",violet:"#758a8a url(../images/bg_body_violet.png) repeat-y 50% 50%",green:"#7c8a75 url(../images/bg_body_green.png) repeat-y 50% 50%",yellow:"#9ca087 url(../images/bg_body.png) repeat-y 50% 50%"},sectionColors={"":"yellow",work:"yellow",code:"green",about:"blue",contact:"violet"},$current=$("#current"),currentBg=$current.css("background");currentColor=sectionColors[page];$current.css({background:backgrounds[currentColor],opacity:1});$("#transition").css({background:currentBg,opacity:1}).animate({opacity:0},1000,'swing',function(){});}
function bootstrap(){if($.browser.msie&&$.browser.version<=7.0){return false;}
$.each(["../images/bg_body_blue.png","../images/bg_body_violet.png","../images/bg_body_green.png","../images/bg_body.png"],function(){var c=document.createElement('img');c.src=this;})
var $current=$("<div id='current' class='wrapper'></div>"),$transition=$("<div id='transition' class='wrapper'></div>");checkUrl();$current.css("background","#9ca087 url(../images/bg_body.png) repeat-y 50% 50%");$("#doc").before($current).before($transition);$.fragmentChange(true);$("body").sqHistory({});}
function setActiveMenuItem($selected){$selected.blur().parent().addClass(opts.activeClass);$("#menu a").find("b").css("opacity",0).end().filter(function(){return this==$selected[0]?false:true;}).parent().andSelf().removeClass(opts.activeClass);}
function checkUrl(){if(location.pathname!='/'){var href=window.location.href,path=location.pathname,redirectTo=href.replace(path,'')+'/#s='+createFragment(location.pathname,'/');$(opts.container).html("We're going to redirect you.");setTimeout(function(){window.location.replace(redirectTo);},2000);}}
$(document).ready(function(){bootstrap();});})(jQuery);