/**
 * jQuery.ScrollTo - Easy element scrolling using jQuery.
 * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
 * Dual licensed under MIT and GPL.
 * Date: 5/25/2009
 * @author Ariel Flesler
 * @version 1.4.2
 *
 * http://flesler.blogspot.com/2007/10/jqueryscrollto.html
 */
;(function(d){var k=d.scrollTo=function(a,i,e){d(window).scrollTo(a,i,e)};k.defaults={axis:'xy',duration:parseFloat(d.fn.jquery)>=1.3?0:1};k.window=function(a){return d(window)._scrollable()};d.fn._scrollable=function(){return this.map(function(){var a=this,i=!a.nodeName||d.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!i)return a;var e=(a.contentWindow||a).document||a.ownerDocument||a;return d.browser.safari||e.compatMode=='BackCompat'?e.body:e.documentElement})};d.fn.scrollTo=function(n,j,b){if(typeof j=='object'){b=j;j=0}if(typeof b=='function')b={onAfter:b};if(n=='max')n=9e9;b=d.extend({},k.defaults,b);j=j||b.speed||b.duration;b.queue=b.queue&&b.axis.length>1;if(b.queue)j/=2;b.offset=p(b.offset);b.over=p(b.over);return this._scrollable().each(function(){var q=this,r=d(q),f=n,s,g={},u=r.is('html,body');switch(typeof f){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(f)){f=p(f);break}f=d(f,this);case'object':if(f.is||f.style)s=(f=d(f)).offset()}d.each(b.axis.split(''),function(a,i){var e=i=='x'?'Left':'Top',h=e.toLowerCase(),c='scroll'+e,l=q[c],m=k.max(q,i);if(s){g[c]=s[h]+(u?0:l-r.offset()[h]);if(b.margin){g[c]-=parseInt(f.css('margin'+e))||0;g[c]-=parseInt(f.css('border'+e+'Width'))||0}g[c]+=b.offset[h]||0;if(b.over[h])g[c]+=f[i=='x'?'width':'height']()*b.over[h]}else{var o=f[h];g[c]=o.slice&&o.slice(-1)=='%'?parseFloat(o)/100*m:o}if(/^\d+$/.test(g[c]))g[c]=g[c]<=0?0:Math.min(g[c],m);if(!a&&b.queue){if(l!=g[c])t(b.onAfterFirst);delete g[c]}});t(b.onAfter);function t(a){r.animate(g,j,b.easing,a&&function(){a.call(this,n,b)})}}).end()};k.max=function(a,i){var e=i=='x'?'Width':'Height',h='scroll'+e;if(!d(a).is('html,body'))return a[h]-d(a)[e.toLowerCase()]();var c='client'+e,l=a.ownerDocument.documentElement,m=a.ownerDocument.body;return Math.max(l[h],m[h])-Math.min(l[c],m[c])};function p(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery);

/**
 * jQuery.LocalScroll - Animated scrolling navigation, using anchors.
 * Copyright (c) 2007-2009 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
 * Dual licensed under MIT and GPL.
 * Date: 3/11/2009
 * @author Ariel Flesler
 * @version 1.2.7
 **/
;(function($){var l=location.href.replace(/#.*/,'');var g=$.localScroll=function(a){$('body').localScroll(a)};g.defaults={duration:1e3,axis:'y',event:'click',stop:true,target:window,reset:true};g.hash=function(a){if(location.hash){a=$.extend({},g.defaults,a);a.hash=false;if(a.reset){var e=a.duration;delete a.duration;$(a.target).scrollTo(0,a);a.duration=e}i(0,location,a)}};$.fn.localScroll=function(b){b=$.extend({},g.defaults,b);return b.lazy?this.bind(b.event,function(a){var e=$([a.target,a.target.parentNode]).filter(d)[0];if(e)i(a,e,b)}):this.find('a,area').filter(d).bind(b.event,function(a){i(a,this,b)}).end().end();function d(){return!!this.href&&!!this.hash&&this.href.replace(this.hash,'')==l&&(!b.filter||$(this).is(b.filter))}};function i(a,e,b){var d=e.hash.slice(1),f=document.getElementById(d)||document.getElementsByName(d)[0];if(!f)return;if(a)a.preventDefault();var h=$(b.target);if(b.lock&&h.is(':animated')||b.onBefore&&b.onBefore.call(b,a,f,h)===false)return;if(b.stop)h.stop(true);if(b.hash){var j=f.id==d?'id':'name',k=$('<a> </a>').attr(j,d).css({position:'absolute',top:$(window).scrollTop(),left:$(window).scrollLeft()});f[j]='';$('body').prepend(k);location=e.hash;k.remove();f[j]=d}h.scrollTo(f,b).trigger('notify.serialScroll',[f])}})(jQuery);


/*************************************************
**  jQuery Masonry version 1.3.2
**  Copyright David DeSandro, licensed MIT
**  http://desandro.com/resources/jquery-masonry
**************************************************/
;(function(c){
var b=c.event,a;b.special.smartresize={setup:function(){c(this).bind("resize",b.special.smartresize.handler);},teardown:function(){c(this).unbind("resize",b.special.smartresize.handler);},handler:function(g,d){var f=this,e=arguments;g.type="smartresize";if(a){clearTimeout(a);}a=setTimeout(function(){jQuery.event.handle.apply(f,e);},d==="execAsap"?0:100);}};c.fn.smartresize=function(d){return d?this.bind("smartresize",d):this.trigger("smartresize",["execAsap"]);};c.fn.masonry=function(d,f){var e={getBricks:function(j,h,i){var g=(i.itemSelector===undefined);if(i.appendedContent===undefined){h.$bricks=g?j.children():j.find(i.itemSelector);}else{h.$bricks=g?i.appendedContent:i.appendedContent.filter(i.itemSelector);}},placeBrick:function(m,g,q,o,h){var j=Math.min.apply(Math,q),p=j+m.outerHeight(true),l=q.length,r=l,k=o.colCount+1-l;while(l--){if(q[l]==j){r=l;}}var n={left:o.colW*r+o.posLeft,top:j};m.applyStyle(n,c.extend(true,{},h.animationOptions));for(l=0;l<k;l++){o.colY[r+l]=p;}},setup:function(i,h,g){e.getBricks(i,g,h);if(g.masoned){g.previousData=i.data("masonry");}if(h.columnWidth===undefined){g.colW=g.masoned?g.previousData.colW:g.$bricks.outerWidth(true);}else{g.colW=h.columnWidth;}g.colCount=Math.floor(i.width()/g.colW);g.colCount=Math.max(g.colCount,1);},arrange:function(m,l,k){var h;if(!k.masoned||l.appendedContent!==undefined){k.$bricks.css("position","absolute");}if(!k.masoned){m.css("position","relative");var g=c(document.createElement("div"));m.prepend(g);k.posTop=Math.round(g.position().top);k.posLeft=Math.round(g.position().left);g.remove();}else{k.posTop=k.previousData.posTop;k.posLeft=k.previousData.posLeft;}if(k.masoned&&l.appendedContent!==undefined){k.colY=k.previousData.colY;for(h=k.previousData.colCount;h<k.colCount;h++){k.colY[h]=k.posTop;}}else{k.colY=[];h=k.colCount;while(h--){k.colY.push(k.posTop);}}c.fn.applyStyle=(k.masoned&&l.animate)?c.fn.animate:c.fn.css;if(l.singleMode){k.$bricks.each(function(){var i=c(this);e.placeBrick(i,k.colCount,k.colY,k,l);});}else{k.$bricks.each(function(){var i=c(this),o=Math.ceil(i.outerWidth(true)/k.colW);o=Math.min(o,k.colCount);if(o===1){e.placeBrick(i,k.colCount,k.colY,k,l);}else{var q=k.colCount+1-o,n=[];for(h=0;h<q;h++){var p=k.colY.slice(h,h+o);n[h]=Math.max.apply(Math,p);}e.placeBrick(i,q,n,k,l);}});}k.wallH=Math.max.apply(Math,k.colY);var j={height:k.wallH-k.posTop};m.applyStyle(j,c.extend(true,[],l.animationOptions));if(!k.masoned){setTimeout(function(){m.addClass("masoned");},1);}f.call(k.$bricks);m.data("masonry",k);},resize:function(j,i,h){h.masoned=!!j.data("masonry");if(!h.masoned){var g=-99;}else{var g=j.data("masonry").colCount;}e.setup(j,i,h);if(h.colCount!=g){e.arrange(j,i,h);}}};return this.each(function(){var k=c(this),i={};i.masoned=!!k.data("masonry");var h=i.masoned?k.data("masonry").options:{},j=c.extend({},c.fn.masonry.defaults,h,d),g=h.resizeable;i.options=j.saveOptions?j:h;f=f||function(){};e.getBricks(k,i,j);if(!i.$bricks.length){return this;}e.setup(k,j,i);e.arrange(k,j,i);if(!g&&j.resizeable){c(window).bind("smartresize.masonry",function(){e.resize(k,j,i);});}if(g&&!j.resizeable){c(window).unbind("smartresize.masonry");}});};c.fn.masonry.defaults={singleMode:false,columnWidth:undefined,itemSelector:undefined,appendedContent:undefined,saveOptions:true,resizeable:true,animate:false,animationOptions:{}};})(jQuery);


// http://jdbartlett.github.com/innershiv | WTFPL License
window.innerShiv=(function(){var d,r;return function(h,u){if(!d){d=document.createElement('div');r=document.createDocumentFragment();/*@cc_on d.style.display = 'none'@*/}var e=d.cloneNode(true);/*@cc_on document.body.appendChild(e);@*/e.innerHTML=h.replace(/^\s\s*/, '').replace(/\s\s*$/, '');/*@cc_on document.body.removeChild(e);@*/if(u===false)return e.childNodes;var f=r.cloneNode(true),i=e.childNodes.length;while(i--)f.appendChild(e.firstChild);return f}}());

/**
 * jQuery Plugin to obtain touch gestures from iPhone, iPod Touch and iPad, should also work with Android mobile phones (not tested yet!)
 * Common usage: wipe images (left and right to show the previous or next image)
 *
 * @author Andreas Waltl, netCU Internetagentur (http://www.netcu.de)
 * @version 1.0 (15th July 2010)
 */
(function($) {
   $.fn.touchwipe = function(settings) {
     var config = {
    		min_move_x: 20,
 			wipeLeft: function() { alert("left"); },
 			wipeRight: function() { alert("right"); },
			preventDefaultEvents: true
	 };

     if (settings) $.extend(config, settings);

     this.each(function() {
    	 var startX;
		 var isMoving = false;

    	 function cancelTouch() {
    		 this.removeEventListener('touchmove', onTouchMove);
    		 startX = null;
    		 isMoving = false;
    	 }

    	 function onTouchMove(e) {
    		 if(config.preventDefaultEvents) {
    			 e.preventDefault();
    		 }
    		 if(isMoving) {
	    		 var x = e.touches[0].pageX;
	    		 var dx = startX - x;
	    		 if(Math.abs(dx) >= config.min_move_x) {
	    			cancelTouch();
	    			if(dx > 0) {
	    				config.wipeLeft(e);
	    			}
	    			else {
	    				config.wipeRight(e);
	    			}
	    		 }
    		 }
    	 }

    	 function onTouchStart(e)
    	 {
    		 if (e.touches.length == 1) {
    			 startX = e.touches[0].pageX;
    			 isMoving = true;
    			 this.addEventListener('touchmove', onTouchMove, false);
    		 }
    	 }

    	 if ('ontouchstart' in document.documentElement) {
    		 this.addEventListener('touchstart', onTouchStart, false);
    	 }
	});

     return this;
   };

 })(jQuery);
