
jQuery.easing['jswing']=jQuery.easing['swing'];jQuery.extend(jQuery.easing,{def:'easeOutQuad',swing:function(x,t,b,c,d){return jQuery.easing[jQuery.easing.def](x,t,b,c,d);},easeInQuad:function(x,t,b,c,d){return c*(t/=d)*t+b;},easeOutQuad:function(x,t,b,c,d){return-c*(t/=d)*(t-2)+b;},easeInOutQuad:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t+b;return-c/2*((--t)*(t-2)-1)+b;},easeInCubic:function(x,t,b,c,d){return c*(t/=d)*t*t+b;},easeOutCubic:function(x,t,b,c,d){return c*((t=t/d-1)*t*t+1)+b;},easeInOutCubic:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t+b;return c/2*((t-=2)*t*t+2)+b;},easeInQuart:function(x,t,b,c,d){return c*(t/=d)*t*t*t+b;},easeOutQuart:function(x,t,b,c,d){return-c*((t=t/d-1)*t*t*t-1)+b;},easeInOutQuart:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t*t+b;return-c/2*((t-=2)*t*t*t-2)+b;},easeInQuint:function(x,t,b,c,d){return c*(t/=d)*t*t*t*t+b;},easeOutQuint:function(x,t,b,c,d){return c*((t=t/d-1)*t*t*t*t+1)+b;},easeInOutQuint:function(x,t,b,c,d){if((t/=d/2)<1)return c/2*t*t*t*t*t+b;return c/2*((t-=2)*t*t*t*t+2)+b;},easeInSine:function(x,t,b,c,d){return-c*Math.cos(t/d*(Math.PI/2))+c+b;},easeOutSine:function(x,t,b,c,d){return c*Math.sin(t/d*(Math.PI/2))+b;},easeInOutSine:function(x,t,b,c,d){return-c/2*(Math.cos(Math.PI*t/d)-1)+b;},easeInExpo:function(x,t,b,c,d){return(t==0)?b:c*Math.pow(2,10*(t/d-1))+b;},easeOutExpo:function(x,t,b,c,d){return(t==d)?b+c:c*(-Math.pow(2,-10*t/d)+1)+b;},easeInOutExpo:function(x,t,b,c,d){if(t==0)return b;if(t==d)return b+c;if((t/=d/2)<1)return c/2*Math.pow(2,10*(t-1))+b;return c/2*(-Math.pow(2,-10*--t)+2)+b;},easeInCirc:function(x,t,b,c,d){return-c*(Math.sqrt(1-(t/=d)*t)-1)+b;},easeOutCirc:function(x,t,b,c,d){return c*Math.sqrt(1-(t=t/d-1)*t)+b;},easeInOutCirc:function(x,t,b,c,d){if((t/=d/2)<1)return-c/2*(Math.sqrt(1-t*t)-1)+b;return c/2*(Math.sqrt(1-(t-=2)*t)+1)+b;},easeInElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d)==1)return b+c;if(!p)p=d*.3;if(a<Math.abs(c)){a=c;var s=p/4;}
else var s=p/(2*Math.PI)*Math.asin(c/a);return-(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;},easeOutElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d)==1)return b+c;if(!p)p=d*.3;if(a<Math.abs(c)){a=c;var s=p/4;}
else var s=p/(2*Math.PI)*Math.asin(c/a);return a*Math.pow(2,-10*t)*Math.sin((t*d-s)*(2*Math.PI)/p)+c+b;},easeInOutElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0)return b;if((t/=d/2)==2)return b+c;if(!p)p=d*(.3*1.5);if(a<Math.abs(c)){a=c;var s=p/4;}
else var s=p/(2*Math.PI)*Math.asin(c/a);if(t<1)return-.5*(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b;return a*Math.pow(2,-10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p)*.5+c+b;},easeInBack:function(x,t,b,c,d,s){if(s==undefined)s=1.70158;return c*(t/=d)*t*((s+1)*t-s)+b;},easeOutBack:function(x,t,b,c,d,s){if(s==undefined)s=1.70158;return c*((t=t/d-1)*t*((s+1)*t+s)+1)+b;},easeInOutBack:function(x,t,b,c,d,s){if(s==undefined)s=1.70158;if((t/=d/2)<1)return c/2*(t*t*(((s*=(1.525))+1)*t-s))+b;return c/2*((t-=2)*t*(((s*=(1.525))+1)*t+s)+2)+b;},easeInBounce:function(x,t,b,c,d){return c-jQuery.easing.easeOutBounce(x,d-t,0,c,d)+b;},easeOutBounce:function(x,t,b,c,d){if((t/=d)<(1/2.75)){return c*(7.5625*t*t)+b;}else if(t<(2/2.75)){return c*(7.5625*(t-=(1.5/2.75))*t+.75)+b;}else if(t<(2.5/2.75)){return c*(7.5625*(t-=(2.25/2.75))*t+.9375)+b;}else{return c*(7.5625*(t-=(2.625/2.75))*t+.984375)+b;}},easeInOutBounce:function(x,t,b,c,d){if(t<d/2)return jQuery.easing.easeInBounce(x,t*2,0,c,d)*.5+b;return jQuery.easing.easeOutBounce(x,t*2-d,0,c,d)*.5+c*.5+b;}});
(function($){jQuery.extend(jQuery.expr[":"],{required:function(elem){return(typeof $(elem).attr('required')==="undefined"?false:true);},placeholder:function(elem){return(typeof $(elem).attr('placeholder')==="undefined"?false:true);}});var HELPER={};HELPER.attrs=function(field){var attrs={};attrs.type=(typeof $(field).attr('type')==="undefined"||field.nodeName.toLowerCase()==="textarea"?'text':$(field).attr('type'));attrs.id=$(field).attr('id')||false;attrs.label=$('label[for="'+attrs.id+'"]').length?$('label[for="'+attrs.id+'"]'):false;return attrs;};HELPER.groupCheck=function(type,name){var group=$(':input[type="'+type+'"][name="'+name+'"]');if((group.filter(':required').length&&group.filter(':checked').length)||!group.filter(':required').length){return true;}else{return false;}};$.fn.validate=function(options){var settings=$.extend({},$.fn.validate.settings,options);return this.each(function(){var $targetElement=$(this),targetElement=this;var mode=targetElement.nodeName==='INPUT'||targetElement.nodeName==='TEXTAREA'?'direct':'container';if(!settings.useBrowserValidation){if(mode==='direct'&&typeof $targetElement.attr('form')!=='undefined'){$('#'+$targetElement.attr('form')).attr('novalidate','novalidate');}else if(mode==='container'&&targetElement.nodeName==='FORM'){$targetElement.attr('novalidate','novalidate');}else if((mode==='direct'||mode==='container')&&$targetElement.closest('form').length){$targetElement.closest('form').attr('novalidate','novalidate');}}
var fields={};if(mode==='container'){fields.all=$(':input:visible:not(\'button,[type="submit"]\')',$targetElement);}else{fields.all=$targetElement;}
fields.required=fields.all.filter(':required');fields.placeholder=fields.all.filter(':placeholder');fields.all.bind('validate',function(e){e.stopPropagation();var field=this,$field=$(field);var attrs=HELPER.attrs(field);$field.trigger('preFieldValidation');var pattern=(typeof $field.attr('pattern')!=="undefined"?new RegExp($field.attr('pattern'),'i'):(settings.rules[attrs.type]?settings.rules[attrs.type]:settings.rules.text));var value=$.trim($field.val());var result;if(typeof pattern==='object'){result=pattern.test(value);}else if(typeof pattern==='function'){result=settings.rules[attrs.type].call(field);}
if(value===""&&$field.is(':not(":required")')){result=true;}
var $elements=$field;if(attrs.id){$.merge($elements,attrs.label);}
if(result){$elements.removeClass(settings.classes.error).addClass(settings.classes.valid);$field.trigger('onSuccess').trigger('hideErrorMessage');}else{$elements.removeClass(settings.classes.valid).addClass(settings.classes.error);if(mode!=='direct'){$targetElement.addClass(settings.classes.invalid);}
$field.trigger('onError').trigger('showErrorMessage');}
$field.trigger('postFieldValidation');}).bind('showErrorMessage hideErrorMessage onSuccess onError',function(e){settings.calls[e.type].call(this);});if(mode==='container'){$targetElement.bind('validate',function(e){$targetElement.removeClass(settings.classes.invalid);fields.all.trigger('validate');}).bind('submit',function(e){$targetElement.trigger('preValidation');$targetElement.trigger('validate');if($targetElement.hasClass(settings.classes.invalid)){e.preventDefault();}
$targetElement.trigger('postValidation');});}});};$.fn.validate.settings={useBrowserValidation:false,errorMessageAttribute:'error',rules:{email:/^(\w|\.|-)+?@(\w|-)+?\.\w{2,4}($|\.\w{2,4})$/,text:/./,date:/^\d{4}(?:-|\/)\d{2}(?:-|\/)\d{2}/,datetime:/^\d{4}(?:-|\/)\d{2}(?:-|\/)\d{2} \d{2}:\d{2}:\d{2}/,number:/^\d+$/,url:/(https?:\/\/)?(www\.)?([a-zA-Z0-9_%]*)\b\.[a-z]{2,4}(\.[a-z]{2})?((\/[a-zA-Z0-9_%]*)+)?(\.[a-z]*)?/,radio:function(e){return HELPER.groupCheck($(this).attr('type'),$(this).attr('name'));},checkbox:function(e){return HELPER.groupCheck($(this).attr('type'),$(this).attr('name'));}},classes:{valid:'valid',error:'error',invalid:'invalid'},calls:{onError:function(){},showErrorMessage:function(form){var field=this,$field=$(field);var attrs=HELPER.attrs(field);if(attrs.label){attrs.label.data().originalLabelText=attrs.label.text();attrs.label.text($field.data()[$.fn.validate.settings.errorMessageAttribute]);}},onSuccess:function(){},hideErrorMessage:function(form){var field=this,$field=$(field);var attrs=HELPER.attrs(field);if(!attrs.label||typeof attrs.label.data().originalLabelText==="undefined"){return;}
else{attrs.label.text(attrs.label.data().originalLabelText);}}}};})(jQuery);
(function($){$(function(){var galleries=$('.gallery');$.each(galleries,function(count,elem){var gallery=$(elem),images=gallery.find('img'),count=images.length,imageWidth=images.first().data('width');gallery.data('gallery',{'offset':0,'stopper':count-1,'counter':0});var data=gallery.data('gallery');gallery.closest('li').addClass('galleried');gallery.css({'position':'absolute','left':0,'top':0,'width':count*imageWidth,'height':images.first().data('height')}).find('img').css('float','left').show();gallery.delegate('img','click.gallery',function(e){data.counter++;if(data.counter>data.stopper){data.counter=0;}
gallery.animate({'left':'-'+images.eq(data.counter).position().left},{duration:200,easing:"easeInOutQuad"});});});$('form').validate().bind('validate',function(e){$(this).find(':required').bind('keyup blur',function(e){$(this).triggerHandler('validate');});});var flashMessage=$('#flash-message');if(flashMessage.length){setTimeout(function(){flashMessage.slideUp(180,"easeOutQuad",function(){flashMessage.remove();if(typeof history.replaceState==="function")
{history.replaceState('Homepage','','/');}});},3500);}
var scrollable=($.browser.webkit?$('body'):$('html'));var scrollTo=function(position){var offset=50;var position=(position-offset)||0;scrollable.animate({scrollTop:position},{duration:350,easing:"easeInOutQuad"});};$('#primary a').bind('click',function(e){e.preventDefault();var target=$(this).attr('href').replace('#','');var offset=$('article[data-section="'+target+'"]').offset().top;scrollTo(offset);});$('a[href="#top"]').bind('click',function(e){e.preventDefault();scrollTo();});var lteIE7=($.browser.msie&&(parseInt($.browser.version,10)<=7));if(lteIE7){var projects=$('.project');var projectMaxHeight=0;$.each(projects,function(count,elem){var height=$(elem).height();if(projectMaxHeight<height){projectMaxHeight=height;}});projects.height(projectMaxHeight);}});})(jQuery);
