| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748 | 
							- /* Modernizr 2.6.1 (Custom Build) | MIT & BSD
 
-  * Build: http://modernizr.com/download/#-backgroundsize-csstransforms-csstransforms3d-csstransitions-shiv-cssclasses-teststyles-testprop-testallprops-prefixes-domprefixes-load
 
-  */
 
- ;window.Modernizr=function(a,b,c){function z(a){j.cssText=a}function A(a,b){return z(m.join(a+";")+(b||""))}function B(a,b){return typeof a===b}function C(a,b){return!!~(""+a).indexOf(b)}function D(a,b){for(var d in a){var e=a[d];if(!C(e,"-")&&j[e]!==c)return b=="pfx"?e:!0}return!1}function E(a,b,d){for(var e in a){var f=b[a[e]];if(f!==c)return d===!1?a[e]:B(f,"function")?f.bind(d||b):f}return!1}function F(a,b,c){var d=a.charAt(0).toUpperCase()+a.slice(1),e=(a+" "+o.join(d+" ")+d).split(" ");return B(b,"string")||B(b,"undefined")?D(e,b):(e=(a+" "+p.join(d+" ")+d).split(" "),E(e,b,c))}var d="2.6.1",e={},f=!0,g=b.documentElement,h="modernizr",i=b.createElement(h),j=i.style,k,l={}.toString,m=" -webkit- -moz- -o- -ms- ".split(" "),n="Webkit Moz O ms",o=n.split(" "),p=n.toLowerCase().split(" "),q={},r={},s={},t=[],u=t.slice,v,w=function(a,c,d,e){var f,i,j,k=b.createElement("div"),l=b.body,m=l?l:b.createElement("body");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:h+(d+1),k.appendChild(j);return f=["­",'<style id="s',h,'">',a,"</style>"].join(""),k.id=h,(l?k:m).innerHTML+=f,m.appendChild(k),l||(m.style.background="",g.appendChild(m)),i=c(k,a),l?k.parentNode.removeChild(k):m.parentNode.removeChild(m),!!i},x={}.hasOwnProperty,y;!B(x,"undefined")&&!B(x.call,"undefined")?y=function(a,b){return x.call(a,b)}:y=function(a,b){return b in a&&B(a.constructor.prototype[b],"undefined")},Function.prototype.bind||(Function.prototype.bind=function(b){var c=this;if(typeof c!="function")throw new TypeError;var d=u.call(arguments,1),e=function(){if(this instanceof e){var a=function(){};a.prototype=c.prototype;var f=new a,g=c.apply(f,d.concat(u.call(arguments)));return Object(g)===g?g:f}return c.apply(b,d.concat(u.call(arguments)))};return e}),q.backgroundsize=function(){return F("backgroundSize")},q.csstransforms=function(){return!!F("transform")},q.csstransforms3d=function(){var a=!!F("perspective");return a&&"webkitPerspective"in g.style&&w("@media (transform-3d),(-webkit-transform-3d){#modernizr{left:9px;position:absolute;height:3px;}}",function(b,c){a=b.offsetLeft===9&&b.offsetHeight===3}),a},q.csstransitions=function(){return F("transition")};for(var G in q)y(q,G)&&(v=G.toLowerCase(),e[v]=q[G](),t.push((e[v]?"":"no-")+v));return e.addTest=function(a,b){if(typeof a=="object")for(var d in a)y(a,d)&&e.addTest(d,a[d]);else{a=a.toLowerCase();if(e[a]!==c)return e;b=typeof b=="function"?b():b,f&&(g.className+=" "+(b?"":"no-")+a),e[a]=b}return e},z(""),i=k=null,function(a,b){function k(a,b){var c=a.createElement("p"),d=a.getElementsByTagName("head")[0]||a.documentElement;return c.innerHTML="x<style>"+b+"</style>",d.insertBefore(c.lastChild,d.firstChild)}function l(){var a=r.elements;return typeof a=="string"?a.split(" "):a}function m(a){var b=i[a[g]];return b||(b={},h++,a[g]=h,i[h]=b),b}function n(a,c,f){c||(c=b);if(j)return c.createElement(a);f||(f=m(c));var g;return f.cache[a]?g=f.cache[a].cloneNode():e.test(a)?g=(f.cache[a]=f.createElem(a)).cloneNode():g=f.createElem(a),g.canHaveChildren&&!d.test(a)?f.frag.appendChild(g):g}function o(a,c){a||(a=b);if(j)return a.createDocumentFragment();c=c||m(a);var d=c.frag.cloneNode(),e=0,f=l(),g=f.length;for(;e<g;e++)d.createElement(f[e]);return d}function p(a,b){b.cache||(b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag()),a.createElement=function(c){return r.shivMethods?n(c,a,b):b.createElem(c)},a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+l().join().replace(/\w+/g,function(a){return b.createElem(a),b.frag.createElement(a),'c("'+a+'")'})+");return n}")(r,b.frag)}function q(a){a||(a=b);var c=m(a);return r.shivCSS&&!f&&!c.hasCSS&&(c.hasCSS=!!k(a,"article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}")),j||p(a,c),a}var c=a.html5||{},d=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,e=/^<|^(?:a|b|button|code|div|fieldset|form|h1|h2|h3|h4|h5|h6|i|iframe|img|input|label|li|link|ol|option|p|param|q|script|select|span|strong|style|table|tbody|td|textarea|tfoot|th|thead|tr|ul)$/i,f,g="_html5shiv",h=0,i={},j;(function(){try{var a=b.createElement("a");a.innerHTML="<xyz></xyz>",f="hidden"in a,j=a.childNodes.length==1||function(){b.createElement("a");var a=b.createDocumentFragment();return typeof a.cloneNode=="undefined"||typeof a.createDocumentFragment=="undefined"||typeof a.createElement=="undefined"}()}catch(c){f=!0,j=!0}})();var r={elements:c.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:c.shivCSS!==!1,supportsUnknownElements:j,shivMethods:c.shivMethods!==!1,type:"default",shivDocument:q,createElement:n,createDocumentFragment:o};a.html5=r,q(b)}(this,b),e._version=d,e._prefixes=m,e._domPrefixes=p,e._cssomPrefixes=o,e.testProp=function(a){return D([a])},e.testAllProps=F,e.testStyles=w,g.className=g.className.replace(/(^|\s)no-js(\s|$)/,"$1$2")+(f?" js "+t.join(" "):""),e}(this,this.document),function(a,b,c){function d(a){return"[object Function]"==o.call(a)}function e(a){return"string"==typeof a}function f(){}function g(a){return!a||"loaded"==a||"complete"==a||"uninitialized"==a}function h(){var a=p.shift();q=1,a?a.t?m(function(){("c"==a.t?B.injectCss:B.injectJs)(a.s,0,a.a,a.x,a.e,1)},0):(a(),h()):q=0}function i(a,c,d,e,f,i,j){function k(b){if(!o&&g(l.readyState)&&(u.r=o=1,!q&&h(),l.onload=l.onreadystatechange=null,b)){"img"!=a&&m(function(){t.removeChild(l)},50);for(var d in y[c])y[c].hasOwnProperty(d)&&y[c][d].onload()}}var j=j||B.errorTimeout,l=b.createElement(a),o=0,r=0,u={t:d,s:c,e:f,a:i,x:j};1===y[c]&&(r=1,y[c]=[]),"object"==a?l.data=c:(l.src=c,l.type=a),l.width=l.height="0",l.onerror=l.onload=l.onreadystatechange=function(){k.call(this,r)},p.splice(e,0,u),"img"!=a&&(r||2===y[c]?(t.insertBefore(l,s?null:n),m(k,j)):y[c].push(l))}function j(a,b,c,d,f){return q=0,b=b||"j",e(a)?i("c"==b?v:u,a,b,this.i++,c,d,f):(p.splice(this.i++,0,a),1==p.length&&h()),this}function k(){var a=B;return a.loader={load:j,i:0},a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=s?l:n.parentNode,l=a.opera&&"[object Opera]"==o.call(a.opera),l=!!b.attachEvent&&!l,u=r?"object":l?"script":"img",v=l?"script":u,w=Array.isArray||function(a){return"[object Array]"==o.call(a)},x=[],y={},z={timeout:function(a,b){return b.length&&(a.timeout=b[0]),a}},A,B;B=function(a){function b(a){var a=a.split("!"),b=x.length,c=a.pop(),d=a.length,c={url:c,origUrl:c,prefixes:a},e,f,g;for(f=0;f<d;f++)g=a[f].split("="),(e=z[g.shift()])&&(c=e(c,g));for(f=0;f<b;f++)c=x[f](c);return c}function g(a,e,f,g,h){var i=b(a),j=i.autoCallback;i.url.split(".").pop().split("?").shift(),i.bypass||(e&&(e=d(e)?e:e[a]||e[g]||e[a.split("/").pop().split("?")[0]]),i.instead?i.instead(a,e,f,g,h):(y[i.url]?i.noexec=!0:y[i.url]=1,f.load(i.url,i.forceCSS||!i.forceJS&&"css"==i.url.split(".").pop().split("?").shift()?"c":c,i.noexec,i.attrs,i.timeout),(d(e)||d(j))&&f.load(function(){k(),e&&e(i.origUrl,h,g),j&&j(i.origUrl,h,g),y[i.url]=2})))}function h(a,b){function c(a,c){if(a){if(e(a))c||(j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}),g(a,j,b,0,h);else if(Object(a)===a)for(n in m=function(){var b=0,c;for(c in a)a.hasOwnProperty(c)&&b++;return b}(),a)a.hasOwnProperty(n)&&(!c&&!--m&&(d(j)?j=function(){var a=[].slice.call(arguments);k.apply(this,a),l()}:j[n]=function(a){return function(){var b=[].slice.call(arguments);a&&a.apply(this,b),l()}}(k[n])),g(a[n],j,b,n,h))}else!c&&l()}var h=!!a.test,i=a.load||a.both,j=a.callback||f,k=j,l=a.complete||f,m,n;c(h?a.yep:a.nope,!!i),i&&c(i)}var i,j,l=this.yepnope.loader;if(e(a))g(a,0,l,0);else if(w(a))for(i=0;i<a.length;i++)j=a[i],e(j)?g(j,0,l,0):w(j)?B(j):Object(j)===j&&h(j,l);else Object(a)===a&&h(a,l)},B.addPrefix=function(a,b){z[a]=b},B.addFilter=function(a){x.push(a)},B.errorTimeout=1e4,null==b.readyState&&b.addEventListener&&(b.readyState="loading",b.addEventListener("DOMContentLoaded",A=function(){b.removeEventListener("DOMContentLoaded",A,0),b.readyState="complete"},0)),a.yepnope=k(),a.yepnope.executeStack=h,a.yepnope.injectJs=function(a,c,d,e,i,j){var k=b.createElement("script"),l,o,e=e||B.errorTimeout;k.src=a;for(o in d)k.setAttribute(o,d[o]);c=j?h:c||f,k.onreadystatechange=k.onload=function(){!l&&g(k.readyState)&&(l=1,c(),k.onload=k.onreadystatechange=null)},m(function(){l||(l=1,c(1))},e),i?k.onload():n.parentNode.insertBefore(k,n)},a.yepnope.injectCss=function(a,c,d,e,g,i){var e=b.createElement("link"),j,c=i?h:c||f;e.href=a,e.rel="stylesheet",e.type="text/css";for(j in d)e.setAttribute(j,d[j]);g||(n.parentNode.insertBefore(e,n),m(c,0))}}(this,document),Modernizr.load=function(){yepnope.apply(window,[].slice.call(arguments,0))};
 
- /**
 
-  * jquery.gridrotator.js v1.0.0
 
-  * http://www.codrops.com
 
-  *
 
-  * Licensed under the MIT license.
 
-  * http://www.opensource.org/licenses/mit-license.php
 
-  * 
 
-  * Copyright 2012, Codrops
 
-  * http://www.codrops.com
 
-  */
 
- ;( function( $, window, undefined ) {
 
- 	
 
- 	'use strict';
 
- 	// http://www.hardcode.nl/subcategory_1/article_317-array-shuffle-function
 
- 	Array.prototype.shuffle = function() {
 
- 		var i=this.length,p,t;
 
- 		while (i--) {
 
- 			p = Math.floor(Math.random()*i);
 
- 			t = this[i];
 
- 			this[i]=this[p];
 
- 			this[p]=t;
 
- 		}
 
- 		return this;
 
- 	};
 
- 	/*
 
- 	* debouncedresize: special jQuery event that happens once after a window resize
 
- 	*
 
- 	* latest version and complete README available on Github:
 
- 	* https://github.com/louisremi/jquery-smartresize/blob/master/jquery.debouncedresize.js
 
- 	*
 
- 	* Copyright 2011 @louis_remi
 
- 	* Licensed under the MIT license.
 
- 	*/
 
- 	var $event = $.event,
 
- 	$special,
 
- 	resizeTimeout;
 
- 	$special = $event.special.debouncedresize = {
 
- 		setup: function() {
 
- 			$( this ).on( "resize", $special.handler );
 
- 		},
 
- 		teardown: function() {
 
- 			$( this ).off( "resize", $special.handler );
 
- 		},
 
- 		handler: function( event, execAsap ) {
 
- 			// Save the context
 
- 			var context = this,
 
- 				args = arguments,
 
- 				dispatch = function() {
 
- 					// set correct event type
 
- 					event.type = "debouncedresize";
 
- 					$event.dispatch.apply( context, args );
 
- 				};
 
- 			if ( resizeTimeout ) {
 
- 				clearTimeout( resizeTimeout );
 
- 			}
 
- 			execAsap ?
 
- 				dispatch() :
 
- 				resizeTimeout = setTimeout( dispatch, $special.threshold );
 
- 		},
 
- 		threshold: 50
 
- 	};
 
- 	// global
 
- 	var $window				= $( window ),
 
- 		Modernizr			= window.Modernizr;
 
- 	$.GridRotator			= function( options, element ) {
 
- 		
 
- 		this.$el	= $( element );
 
- 		if( Modernizr.backgroundsize ) {
 
- 			var _self = this;
 
- 			this.$el.addClass( 'ri-grid-loading' );
 
- 			$( '<img/>' ).load( function() {
 
- 				_self._init( options );
 
- 			} ).attr( 'src', 'images/loading.gif' );
 
- 		}
 
- 		
 
- 	};
 
- 	$.GridRotator.defaults	= {
 
- 		// number of rows
 
- 		rows			: 4,
 
- 		// number of columns 
 
- 		columns			: 10,
 
- 		w1024			: {
 
- 			rows	: 3,
 
- 			columns	: 8
 
- 		},
 
- 		w768			: {
 
- 			rows	: 3,
 
- 			columns	: 7
 
- 		},
 
- 		w480			: {
 
- 			rows	: 3,
 
- 			columns	: 5
 
- 		},
 
- 		w320			: {
 
- 			rows	: 2,
 
- 			columns	: 4
 
- 		},
 
- 		w240			: {
 
- 			rows	: 2,
 
- 			columns	: 3
 
- 		},
 
- 		// step: number of items that are replaced at the same time
 
- 		// random || [some number]
 
- 		// note: for performance issues, the number "can't" be > options.maxStep
 
- 		step			: 'random',
 
- 		maxStep			: 3,
 
- 		// prevent user to click the items
 
- 		preventClick	: true,
 
- 		// animation type
 
- 		// showHide || fadeInOut || slideLeft || 
 
- 		// slideRight || slideTop || slideBottom || 
 
- 		// rotateLeft || rotateRight || rotateTop || 
 
- 		// rotateBottom || scale || rotate3d || 
 
- 		// rotateLeftScale || rotateRightScale || 
 
- 		// rotateTopScale || rotateBottomScale || random
 
- 		animType		: 'random',
 
- 		// animation speed
 
- 		animSpeed		: 500,
 
- 		// animation easings
 
- 		animEasingOut	: 'linear',
 
- 		animEasingIn	: 'linear',
 
- 		// the item(s) will be replaced every 3 seconds
 
- 		// note: for performance issues, the time "can't" be < 300 ms
 
- 		interval		: 3000
 
- 	};
 
- 	$.GridRotator.prototype	= {
 
- 		_init				: function( options ) {
 
- 			var _self			= this;
 
- 			
 
- 			// options
 
- 			this.options		= $.extend( true, {}, $.GridRotator.defaults, options );
 
- 			// all types of animations
 
- 			this.animTypesAll	= [ 'fadeInOut', 'slideLeft', 'slideRight', 'slideTop', 'slideBottom', 'rotateLeft', 'rotateRight', 'rotateTop', 'rotateBottom', 'scale', 'rotate3d', 'rotateLeftScale', 'rotateRightScale', 'rotateTopScale', 'rotateBottomScale' ];
 
- 			// types of animations for "older" browsers
 
- 			this.animTypesCond	= [ 'fadeInOut', 'slideLeft', 'slideRight', 'slideTop', 'slideBottom' ];
 
- 			// array containing the animation types to choose from when the options.animType is set to 'random'
 
- 			this.animTypes		= this.animTypesCond;
 
- 			if( Modernizr.csstransforms3d ) {
 
- 				this.animTypes = this.animTypesAll;
 
- 			}
 
- 			this.animType		= this.options.animType;
 
- 			if( this.animType !== 'random' ) {
 
- 				if( !Modernizr.csstransforms3d && $.inArray( this.animType, this.animTypesCond ) === -1 && this.animType !== 'showHide' ) {
 
- 					// fallback to 'fadeInOut' if user sets a type which is not supported
 
- 					this.animType = 'fadeInOut';
 
- 				}
 
- 			}
 
- 			this.animTypesTotal	= this.animTypes.length;
 
- 			// the <ul> where the items are placed
 
- 			this.$list			= this.$el.children( 'ul' );
 
- 			// remove img's and add background-image to anchors
 
- 			// preload the images before
 
- 			var loaded			= 0,
 
- 				$imgs			= this.$list.find( 'img' ),
 
- 				count			= $imgs.length;
 
- 			$imgs.each( function() {
 
- 				var $img	= $( this ),
 
- 					src		= $img.attr( 'src' );
 
- 				$( '<img/>' ).load( function() {
 
- 					++loaded;
 
- 					$img.parent().css( 'background-image', 'url(' + src + ')' );
 
- 					if( loaded === count ) {
 
- 						$imgs.remove();
 
- 				 
 
- 						_self.$el.removeClass( 'ri-grid-loading' );
 
- 			// the items
 
- 						_self.$items		= _self.$list.children( 'li' );
 
- 			// make a copy of the items
 
- 						_self.$itemsCache	= _self.$items.clone();
 
- 			// total number of items
 
- 						_self.itemsTotal	= _self.$items.length;
 
- 			// the items that will be out of the grid
 
- 			// actually the item's child (anchor element)
 
- 						_self.outItems		= [];
 
- 						_self._layout();
 
- 						_self._initEvents();
 
- 			// replace "options.step" items after "options.interval" time
 
- 			// the items that go out are randomly chosen, while the ones that get in
 
- 			// respect the order (first in first out)
 
- 						_self._start();
 
- 					}
 
- 				} ).attr( 'src', src )
 
- 				 
 
- 			} );
 
- 		},
 
- 		_layout				: function( callback ) {
 
- 			var _self		= this;
 
- 			// sets the grid dimentions based on the container's width
 
- 			this._setGridDim();
 
- 			// reset
 
- 			this.$list.empty();
 
- 			this.$items		= this.$itemsCache.clone().appendTo( this.$list );
 
- 			
 
- 			var $outItems	= this.$items.filter( ':gt(' + ( this.showTotal - 1 ) + ')' ),
 
- 				$outAItems	= $outItems.children( 'a' );
 
- 			this.outItems.length = 0;
 
- 			$outAItems.each( function( i ) {
 
- 				_self.outItems.push( $( this ) );
 
- 			} );
 
- 			$outItems.remove();
 
- 				// container's width
 
- 			var containerWidth	= ( document.defaultView ) ? parseInt( document.defaultView.getComputedStyle( this.$el.get( 0 ), null ).width ) : this.$el.width(),
 
- 				// item's width
 
- 				itemWidth		= Math.floor( containerWidth / this.columns ),
 
- 				// calculate gap
 
- 				gapWidth		= containerWidth - ( this.columns * Math.floor( itemWidth ) );
 
- 			for( var i = 0; i < this.rows; ++i ) {
 
- 				for( var j = 0; j < this.columns; ++j ) {
 
- 					var $item	= this.$items.eq( this.columns * i + j ),
 
- 						h		= itemWidth,
 
- 						w		= ( j < Math.floor( gapWidth ) ) ? itemWidth + 1 : itemWidth;
 
- 					$item.css( {
 
- 						width	: w,
 
- 						height	: h
 
- 					} );
 
- 					/*
 
- 					if( gapWidth % 1 !== 0 && j === this.columns - 1 ) {
 
- 						$item.children( 'a' ).css( {
 
- 							width	: '+=1'//,
 
- 							height	: '+=1'
 
- 						} );
 
- 					}
 
- 					*/
 
- 				}
 
- 			}
 
- 			if( this.options.preventClick ) {
 
- 				this.$items.children().css( 'cursor', 'default' ).on( 'click.gridrotator', false );
 
- 			}
 
- 			if( callback ) {
 
- 				callback.call();
 
- 			}
 
- 		},
 
- 		// set the grid rows and columns
 
- 		_setGridDim			: function() {
 
- 			// container's width
 
- 			var c_w			= this.$el.width();
 
- 			// we will choose the number of rows/columns according to the container's width and the values set on the plugin options 
 
- 			switch( true ) {
 
- 				case ( c_w < 240 )	: this.rows = this.options.w240.rows; this.columns = this.options.w240.columns; break;
 
- 				case ( c_w < 320 )	: this.rows = this.options.w320.rows; this.columns = this.options.w320.columns; break;
 
- 				case ( c_w < 480 )	: this.rows = this.options.w480.rows; this.columns = this.options.w480.columns; break;
 
- 				case ( c_w < 768 )	: this.rows = this.options.w768.rows; this.columns = this.options.w768.columns; break;
 
- 				case ( c_w < 1024 )	: this.rows = this.options.w1024.rows; this.columns = this.options.w1024.columns; break;
 
- 				default				: this.rows = this.options.rows; this.columns = this.options.columns; break;
 
- 			}
 
- 			this.showTotal	= this.rows * this.columns;
 
- 		},
 
- 		// init window resize event
 
- 		_initEvents			: function() {
 
- 			var _self = this;
 
- 			$window.on( 'debouncedresize.gridrotator', function( event ) {
 
- 				clearTimeout( _self.playtimeout );
 
- 				_self._layout( function() {
 
- 					_self._start();
 
- 				} );
 
- 				
 
- 			} );
 
- 		},
 
- 		// start rotating elements
 
- 		_start				: function() {
 
- 			if( this.showTotal < this.itemsTotal ) {
 
- 				this._showNext();
 
- 			}
 
- 		},
 
- 		// get which type of animation
 
- 		_getAnimType		: function() {
 
- 			if( this.animType === 'random' ) {
 
- 				return this.animTypes[ Math.floor( Math.random() * this.animTypesTotal ) ];
 
- 			}
 
- 			else {
 
- 				return this.animType;
 
- 			}
 
- 		},
 
- 		// get css properties for the transition effect
 
- 		_getAnimProperties 	: function( $in, $out ) {
 
- 			var startInProp		= {},
 
- 				startOutProp	= {},
 
- 				endInProp		= {},
 
- 				endOutProp		= {},
 
- 				animType		= this._getAnimType(),
 
- 				speed;
 
- 			switch( animType ) {
 
- 				case 'showHide'	:
 
- 					speed = 0;
 
- 					
 
- 					endOutProp.opacity	= 0;
 
- 					
 
- 					break;
 
- 				case 'fadeInOut'	:
 
- 					endOutProp.opacity	= 0;
 
- 					
 
- 					break;
 
- 				case 'slideLeft'	:
 
- 					startInProp.left 	= $out.width();
 
- 					
 
- 					endInProp.left		= 0;
 
- 					endOutProp.left		= -$out.width();
 
- 					
 
- 					break;
 
- 				case 'slideRight'	:
 
- 					startInProp.left 	= -$out.width();
 
- 					
 
- 					endInProp.left		= 0;
 
- 					endOutProp.left		= $out.width();
 
- 					
 
- 					break;
 
- 				case 'slideTop'		:
 
- 					startInProp.top 	= $out.height();
 
- 					
 
- 					endInProp.top		= 0;
 
- 					endOutProp.top		= -$out.height();
 
- 					
 
- 					break;
 
- 				case 'slideBottom'	:
 
- 					startInProp.top 	= -$out.height();
 
- 					
 
- 					endInProp.top		= 0;
 
- 					endOutProp.top		= $out.height();
 
- 					
 
- 					break;
 
- 				case 'rotateLeft'	:
 
- 					speed					= this.options.animSpeed / 2;
 
- 					
 
- 					startInProp.rotateY		= '90deg';
 
- 					
 
- 					endInProp.rotateY		= '0deg';
 
- 					endInProp.delay			= speed;
 
- 					endOutProp.rotateY		= '-90deg';
 
- 					
 
- 					break;
 
- 				case 'rotateRight'	:
 
- 					speed					= this.options.animSpeed / 2;
 
- 					
 
- 					startInProp.rotateY		= '-90deg';
 
- 					
 
- 					endInProp.rotateY		= '0deg';
 
- 					endInProp.delay			= speed;
 
- 					endOutProp.rotateY		= '90deg';
 
- 					
 
- 					break;
 
- 				case 'rotateTop'	:
 
- 					speed					= this.options.animSpeed / 2;
 
- 					
 
- 					startInProp.rotateX		= '90deg';
 
- 					
 
- 					endInProp.rotateX		= '0deg';
 
- 					endInProp.delay			= speed;
 
- 					endOutProp.rotateX		= '-90deg';
 
- 					
 
- 					break;
 
- 				case 'rotateBottom'	:
 
- 					speed					= this.options.animSpeed / 2;
 
- 					
 
- 					startInProp.rotateX		= '-90deg';
 
- 					
 
- 					endInProp.rotateX		= '0deg';
 
- 					endInProp.delay			= speed;
 
- 					endOutProp.rotateX		= '90deg';
 
- 					
 
- 					break;
 
- 				case 'scale'		:
 
- 					speed					= this.options.animSpeed / 2;
 
- 					
 
- 					startInProp.scale		= '0';
 
- 					startOutProp.scale		= '1';
 
- 					
 
- 					endInProp.scale			= '1';
 
- 					endInProp.delay			= speed;
 
- 					endOutProp.scale		= '0';
 
- 					
 
- 					break;
 
- 				case 'rotateLeftScale'	:
 
- 					startInProp.scale		= '0.3';
 
- 					startOutProp.scale		= '1';
 
- 					endInProp.scale			= '1';
 
- 					endOutProp.scale		= '0.3';
 
- 					speed					= this.options.animSpeed / 2;
 
- 					
 
- 					startInProp.rotateY		= '90deg';
 
- 					
 
- 					endInProp.rotateY		= '0deg';
 
- 					endInProp.delay			= speed;
 
- 					endOutProp.rotateY		= '-90deg';
 
- 					
 
- 					break;
 
- 				case 'rotateRightScale'	:
 
- 					startInProp.scale		= '0.3';
 
- 					startOutProp.scale		= '1';
 
- 					endInProp.scale			= '1';
 
- 					endOutProp.scale		= '0.3';
 
- 					speed					= this.options.animSpeed / 2;
 
- 					
 
- 					startInProp.rotateY		= '-90deg';
 
- 					
 
- 					endInProp.rotateY		= '0deg';
 
- 					endInProp.delay			= speed;
 
- 					endOutProp.rotateY		= '90deg';
 
- 					
 
- 					break;
 
- 				case 'rotateTopScale'	:
 
- 					startInProp.scale		= '0.3';
 
- 					startOutProp.scale		= '1';
 
- 					endInProp.scale			= '1';
 
- 					endOutProp.scale		= '0.3';
 
- 					speed					= this.options.animSpeed / 2;
 
- 					
 
- 					startInProp.rotateX		= '90deg';
 
- 					
 
- 					endInProp.rotateX		= '0deg';
 
- 					endInProp.delay			= speed;
 
- 					endOutProp.rotateX		= '-90deg';
 
- 					
 
- 					break;
 
- 				case 'rotateBottomScale'	:
 
- 					startInProp.scale		= '0.3';
 
- 					startOutProp.scale		= '1';
 
- 					endInProp.scale			= '1';
 
- 					endOutProp.scale		= '0.3';
 
- 					speed					= this.options.animSpeed / 2;
 
- 					
 
- 					startInProp.rotateX		= '-90deg';
 
- 					
 
- 					endInProp.rotateX		= '0deg';
 
- 					endInProp.delay			= speed;
 
- 					endOutProp.rotateX		= '90deg';
 
- 					
 
- 					break;
 
- 				case 'rotate3d'		:
 
- 					speed					= this.options.animSpeed / 2;
 
- 					
 
- 					startInProp.rotate3d	= '1, 1, 0, 90deg';
 
- 					
 
- 					endInProp.rotate3d		= '1, 1, 0, 0deg';
 
- 					endInProp.delay			= speed;
 
- 					endOutProp.rotate3d		= '1, 1, 0, -90deg';
 
- 					
 
- 					break;
 
- 			}
 
- 			var animSpeed = ( speed != undefined ) ? speed : this.options.animSpeed;
 
- 			return {
 
- 				startInProp		: startInProp,
 
- 				startOutProp	: startOutProp,
 
- 				endInProp		: endInProp,
 
- 				endOutProp		: endOutProp,
 
- 				animSpeed		: animSpeed
 
- 			};
 
- 		},
 
- 		// show next "option.step" elements
 
- 		_showNext			: function( t ) {
 
- 			var _self = this;
 
- 			clearTimeout( this.playtimeout );
 
- 			this.playtimeout = setTimeout( function() {
 
- 				var step		= _self.options.step,
 
- 					max			= _self.options.maxStep,
 
- 					min			= 1;
 
- 				
 
- 				if( max > _self.showTotal ) {
 
- 					max = _self.showTotal;
 
- 				}
 
- 				var $items	= _self.$items, 
 
- 					outs	= [],
 
- 					// number of items to swith at this point of time
 
- 					nmbOut	= ( step === 'random' ) ? Math.floor( Math.random() * max + min ) : Math.min( Math.abs( step ) , max ) ,
 
- 					// array with random indexes. These will be the indexes of the items we will replace
 
- 					randArr	= _self._getRandom( nmbOut, _self.showTotal );
 
- 				
 
- 				for( var i = 0; i < nmbOut; ++i ) {
 
- 					// element to go out
 
- 					var $out = $items.eq( randArr[ i ] );
 
- 					// if element is active, which means it is currently animating,
 
- 					// then we need to get different positions.. 
 
- 					if( $out.data( 'active' ) ) {
 
- 						// one of the items is active, call again..
 
- 						_self._showNext( 1 );
 
- 						return false;
 
- 					}
 
- 					// add it to outs array
 
- 					outs.push( $out );
 
- 				}
 
- 				for( var i = 0; i < nmbOut; ++i ) {
 
- 					var $out		= outs[ i ],
 
- 						$outA		= $out.children( 'a:last' ),
 
- 						newElProp	= {
 
- 							width	: $outA.width(),
 
- 							height	: $outA.height()
 
- 						};
 
- 					// element stays active
 
- 					$out.data( 'active', true );
 
- 					// get the element (anchor) that will go in (first one inserted in _self.outItems)
 
- 					var $inA		= _self.outItems.shift();
 
- 					// save element that went out
 
- 					_self.outItems.push( $outA.clone() );
 
- 					
 
- 					// prepend in element
 
- 					$inA.css( newElProp ).prependTo( $out );
 
- 					var animProp	= _self._getAnimProperties( $inA, $outA );
 
- 					
 
- 					if( Modernizr.csstransitions ) {
 
- 						$inA.css( animProp.startInProp ).transition( animProp.endInProp, animProp.animSpeed, _self.options.animEasingIn );
 
- 						$outA.css( animProp.startOutProp ).transition( animProp.endOutProp, animProp.animSpeed, _self.options.animEasingOut, function() {
 
- 							$( this ).parent().data( 'active', false ).end().remove();
 
- 						} );
 
- 					
 
- 					}
 
- 					// fallback to jQuery animate
 
- 					else {
 
- 						$inA.css( animProp.startInProp ).stop().animate( animProp.endInProp, animProp.animSpeed );
 
- 						$outA.css( animProp.startOutProp ).stop().animate( animProp.endOutProp, animProp.animSpeed, function() {
 
- 							$( this ).parent().data( 'active', false ).end().remove();
 
- 						} )
 
- 					}
 
- 				}
 
- 				// again and again..
 
- 				_self._showNext();
 
- 			}, t || Math.max( Math.abs( this.options.interval ) , 300 ) );
 
- 		},
 
- 		_getRandom			: function( cnt, limit ) {
 
- 			var randArray = [];
 
- 			for( var i = 0; i < limit; ++i ) {
 
- 				randArray.push( i )
 
- 			}
 
- 			
 
- 			return randArray.shuffle().slice(0,cnt); 
 
- 		}
 
- 	};
 
- 	
 
- 	var logError		= function( message ) {
 
- 		if ( window.console ) {
 
- 			window.console.error( message );
 
- 		
 
- 		}
 
- 	};
 
- 	
 
- 	$.fn.gridrotator	= function( options ) {
 
- 		
 
- 		if ( typeof options === 'string' ) {
 
- 			
 
- 			var args = Array.prototype.slice.call( arguments, 1 );
 
- 			
 
- 			this.each(function() {
 
- 			
 
- 				var instance = $.data( this, 'gridrotator' );
 
- 				
 
- 				if ( !instance ) {
 
- 					logError( "cannot call methods on gridrotator prior to initialization; " +
 
- 					"attempted to call method '" + options + "'" );
 
- 					return;
 
- 				
 
- 				}
 
- 				
 
- 				if ( !$.isFunction( instance[options] ) || options.charAt(0) === "_" ) {
 
- 					logError( "no such method '" + options + "' for gridrotator instance" );
 
- 					return;
 
- 				
 
- 				}
 
- 				
 
- 				instance[ options ].apply( instance, args );
 
- 			
 
- 			});
 
- 		
 
- 		} 
 
- 		else {
 
- 		
 
- 			this.each(function() {
 
- 				
 
- 				var instance = $.data( this, 'gridrotator' );
 
- 				
 
- 				if ( instance ) {
 
- 					instance._init();
 
- 				
 
- 				}
 
- 				else {
 
- 					$.data( this, 'gridrotator', new $.GridRotator( options, this ) );
 
- 				
 
- 				}
 
- 			});
 
- 		
 
- 		}
 
- 		
 
- 		return this;
 
- 		
 
- 	};
 
- 	
 
- } )( jQuery, window );
 
- /*!
 
-  * jQuery Transit - CSS3 transitions and transformations
 
-  * Copyright(c) 2011 Rico Sta. Cruz <rico@ricostacruz.com>
 
-  * MIT Licensed.
 
-  *
 
-  * http://ricostacruz.com/jquery.transit
 
-  * http://github.com/rstacruz/jquery.transit
 
-  */
 
- (function(d){function k(a){var b=["Moz","Webkit","O","ms"],c=a.charAt(0).toUpperCase()+a.substr(1);if(a in i.style)return a;for(a=0;a<b.length;++a){var d=b[a]+c;if(d in i.style)return d}}function j(a){"string"===typeof a&&this.parse(a);return this}function p(a,b,c){!0===b?a.queue(c):b?a.queue(b,c):c()}function m(a){var b=[];d.each(a,function(a){a=d.camelCase(a);a=d.transit.propertyMap[a]||a;a=r(a);-1===d.inArray(a,b)&&b.push(a)});return b}function q(a,b,c,e){a=m(a);d.cssEase[c]&&(c=d.cssEase[c]);
 
- var h=""+n(b)+" "+c;0<parseInt(e,10)&&(h+=" "+n(e));var f=[];d.each(a,function(a,b){f.push(b+" "+h)});return f.join(", ")}function f(a,b){b||(d.cssNumber[a]=!0);d.transit.propertyMap[a]=e.transform;d.cssHooks[a]={get:function(b){return(d(b).css("transform")||new j).get(a)},set:function(b,e){var h=d(b).css("transform")||new j;h.setFromString(a,e);d(b).css({transform:h})}}}function r(a){return a.replace(/([A-Z])/g,function(a){return"-"+a.toLowerCase()})}function g(a,b){return"string"===typeof a&&!a.match(/^[\-0-9\.]+$/)?
 
- a:""+a+b}function n(a){d.fx.speeds[a]&&(a=d.fx.speeds[a]);return g(a,"ms")}d.transit={version:"0.1.3",propertyMap:{marginLeft:"margin",marginRight:"margin",marginBottom:"margin",marginTop:"margin",paddingLeft:"padding",paddingRight:"padding",paddingBottom:"padding",paddingTop:"padding"},enabled:!0,useTransitionEnd:!1};var i=document.createElement("div"),e={},s=-1<navigator.userAgent.toLowerCase().indexOf("chrome");e.transition=k("transition");e.transitionDelay=k("transitionDelay");e.transform=k("transform");
 
- e.transformOrigin=k("transformOrigin");i.style[e.transform]="";i.style[e.transform]="rotateY(90deg)";e.transform3d=""!==i.style[e.transform];d.extend(d.support,e);var o=e.transitionEnd={MozTransition:"transitionend",OTransition:"oTransitionEnd",WebkitTransition:"webkitTransitionEnd",msTransition:"MSTransitionEnd"}[e.transition]||null,i=null;d.cssEase={_default:"ease","in":"ease-in",out:"ease-out","in-out":"ease-in-out",snap:"cubic-bezier(0,1,.5,1)"};d.cssHooks.transform={get:function(a){return d(a).data("transform")},
 
- set:function(a,b){var c=b;c instanceof j||(c=new j(c));a.style[e.transform]="WebkitTransform"===e.transform&&!s?c.toString(!0):c.toString();d(a).data("transform",c)}};d.cssHooks.transformOrigin={get:function(a){return a.style[e.transformOrigin]},set:function(a,b){a.style[e.transformOrigin]=b}};f("scale");f("translate");f("rotate");f("rotateX");f("rotateY");f("rotate3d");f("perspective");f("skewX");f("skewY");f("x",!0);f("y",!0);j.prototype={setFromString:function(a,b){var c="string"===typeof b?b.split(","):
 
- b.constructor===Array?b:[b];c.unshift(a);j.prototype.set.apply(this,c)},set:function(a){var b=Array.prototype.slice.apply(arguments,[1]);this.setter[a]?this.setter[a].apply(this,b):this[a]=b.join(",")},get:function(a){return this.getter[a]?this.getter[a].apply(this):this[a]||0},setter:{rotate:function(a){this.rotate=g(a,"deg")},rotateX:function(a){this.rotateX=g(a,"deg")},rotateY:function(a){this.rotateY=g(a,"deg")},scale:function(a,b){void 0===b&&(b=a);this.scale=a+","+b},skewX:function(a){this.skewX=
 
- g(a,"deg")},skewY:function(a){this.skewY=g(a,"deg")},perspective:function(a){this.perspective=g(a,"px")},x:function(a){this.set("translate",a,null)},y:function(a){this.set("translate",null,a)},translate:function(a,b){void 0===this._translateX&&(this._translateX=0);void 0===this._translateY&&(this._translateY=0);null!==a&&(this._translateX=g(a,"px"));null!==b&&(this._translateY=g(b,"px"));this.translate=this._translateX+","+this._translateY}},getter:{x:function(){return this._translateX||0},y:function(){return this._translateY||
 
- 0},scale:function(){var a=(this.scale||"1,1").split(",");a[0]&&(a[0]=parseFloat(a[0]));a[1]&&(a[1]=parseFloat(a[1]));return a[0]===a[1]?a[0]:a},rotate3d:function(){for(var a=(this.rotate3d||"0,0,0,0deg").split(","),b=0;3>=b;++b)a[b]&&(a[b]=parseFloat(a[b]));a[3]&&(a[3]=g(a[3],"deg"));return a}},parse:function(a){var b=this;a.replace(/([a-zA-Z0-9]+)\((.*?)\)/g,function(a,d,e){b.setFromString(d,e)})},toString:function(a){var b=[],c;for(c in this)if(this.hasOwnProperty(c)&&(e.transform3d||!("rotateX"===
 
- c||"rotateY"===c||"perspective"===c||"transformOrigin"===c)))"_"!==c[0]&&(a&&"scale"===c?b.push(c+"3d("+this[c]+",1)"):a&&"translate"===c?b.push(c+"3d("+this[c]+",0)"):b.push(c+"("+this[c]+")"));return b.join(" ")}};d.fn.transition=d.fn.transit=function(a,b,c,f){var h=this,g=0,i=!0;"function"===typeof b&&(f=b,b=void 0);"function"===typeof c&&(f=c,c=void 0);"undefined"!==typeof a.easing&&(c=a.easing,delete a.easing);"undefined"!==typeof a.duration&&(b=a.duration,delete a.duration);"undefined"!==typeof a.complete&&
 
- (f=a.complete,delete a.complete);"undefined"!==typeof a.queue&&(i=a.queue,delete a.queue);"undefined"!==typeof a.delay&&(g=a.delay,delete a.delay);"undefined"===typeof b&&(b=d.fx.speeds._default);"undefined"===typeof c&&(c=d.cssEase._default);var b=n(b),j=q(a,b,c,g),l=d.transit.enabled&&e.transition?parseInt(b,10)+parseInt(g,10):0;if(0===l)return p(h,i,function(b){h.css(a);f&&f();b()}),h;var k={},m=function(b){var c=!1,g=function(){c&&h.unbind(o,g);0<l&&h.each(function(){this.style[e.transition]=
 
- k[this]||null});"function"===typeof f&&f.apply(h);"function"===typeof b&&b()};0<l&&o&&d.transit.useTransitionEnd?(c=!0,h.bind(o,g)):window.setTimeout(g,l);h.each(function(){0<l&&(this.style[e.transition]=j);d(this).css(a)})};p(h,i,function(a){var b=0;"MozTransition"===e.transition&&25>b&&(b=25);window.setTimeout(function(){m(a)},b)});return this};d.transit.getTransitionValue=q})(jQuery);
 
 
  |