/* * mixitup - a css3 & jquery filter and sort plugin * version: 1.4.0 * author: patrick kunka * copyright 2012-2013 patrick kunka, all rights reserved * free for non-commercial use * http://www.mixitup.io */ (function(e){function m(d,b,h,c,a){function j(){k.unbind();b&&v(b,h,c,a);a.startorder=[];a.neworder=[];a.origsort=[];a.checksort=[];u.removestyle(a.prefix+"filter, filter, "+a.prefix+"transform, transform, opacity, display").css(a.clean).removeattr("data-checksum");window.atob||u.css({display:"none",opacity:"0"});k.removestyle(a.prefix+"transition, transition, "+a.prefix+"perspective, perspective, "+a.prefix+"perspective-origin, perspective-origin, "+(a.resizecontainer?"height":""));"list"==a.layoutmode? (q.css({display:a.targetdisplaylist,opacity:"1"}),a.origdisplay=a.targetdisplaylist):(q.css({display:a.targetdisplaygrid,opacity:"1"}),a.origdisplay=a.targetdisplaygrid);a.origlayout=a.layoutmode;settimeout(function(){u.removestyle(a.prefix+"transition, transition");a.mixing=!1;if("function"==typeof a.onmixend){var b=a.onmixend.call(this,a);a=b?b:a}})}clearinterval(a.failsafe);a.mixing=!0;if("function"==typeof a.onmixstart){var f=a.onmixstart.call(this,a);a=f?f:a}for(var g=a.transitionspeed,f=0;2> f;f++){var n=0==f?n=a.prefix:"";a.transition[n+"transition"]="all "+g+"ms linear";a.transition[n+"transform"]=n+"translate3d(0,0,0)";a.perspective[n+"perspective"]=a.perspectivedistance+"px";a.perspective[n+"perspective-origin"]=a.perspectiveorigin}var r=a.targetselector,u=c.find(r);u.each(function(){this.data={}});var k=u.parent();k.css(a.perspective);a.easingfallback="ease-in-out";"smooth"==a.easing&&(a.easing="cubic-bezier(0.25, 0.46, 0.45, 0.94)");"snap"==a.easing&&(a.easing="cubic-bezier(0.77, 0, 0.175, 1)"); "windback"==a.easing&&(a.easing="cubic-bezier(0.175, 0.885, 0.320, 1.275)",a.easingfallback="cubic-bezier(0.175, 0.885, 0.320, 1)");"windup"==a.easing&&(a.easing="cubic-bezier(0.6, -0.28, 0.735, 0.045)",a.easingfallback="cubic-bezier(0.6, 0.28, 0.735, 0.045)");f="list"==a.layoutmode&&null!=a.listeffects?a.listeffects:a.effects;array.prototype.indexof&&(a.fade=-1m.length?s=s.add(c.find(r+":visible")):u.each(function(){for(var a=0,b=e(this),c=0;cf;f++)n=0==f?n=a.prefix:"",d[n+"transform"]=a.scale+" "+a.rotatex+" "+ a.rotatey+" "+a.rotatez,d[n+"filter"]=a.blur+" "+a.grayscale;p.css(d);l.each(function(){var b=this.data,c=e(this);c.hasclass("mix_tohide")?(b.pretx=b.origpos.left-b.hideinterpos.left,b.prety=b.origpos.top-b.hideinterpos.top):(b.pretx=b.origpos.left-b.preinterpos.left,b.prety=b.origpos.top-b.preinterpos.top);for(var d={},g=0;2>g;g++){var f=0==g?f=a.prefix:"";d[f+"transform"]="translate("+b.pretx+"px,"+b.prety+"px)"}c.css(d)});"list"==a.layoutmode?(c.addclass(a.listclass),c.removeclass(a.gridclass)): (c.addclass(a.gridclass),c.removeclass(a.listclass));settimeout(function(){if(a.resizecontainer){for(var b={},c=0;2>c;c++){var d=0==c?d=a.prefix:"";b[d+"transition"]="all "+g+"ms ease-in-out";b.height=a.newheight+"px"}k.css(b)}t.css("opacity",a.fade);p.css("opacity",1);p.each(function(){var b=this.data;b.tx=b.finalpos.left-b.showinterpos.left;b.ty=b.finalpos.top-b.showinterpos.top;for(var c={},d=0;2>d;d++){var f=0==d?f=a.prefix:"";c[f+"transition-property"]=f+"transform, "+f+"filter, opacity";c[f+ "transition-timing-function"]=a.easing+", linear, linear";c[f+"transition-duration"]=g+"ms";c[f+"transition-delay"]="0";c[f+"transform"]="translate("+b.tx+"px,"+b.ty+"px)";c[f+"filter"]="none"}e(this).css("-webkit-transition","all "+g+"ms "+a.easingfallback).css(c)});l.each(function(){var b=this.data;b.tx=0!=b.finalprepos.left?b.finalprepos.left-b.preinterpos.left:0;b.ty=0!=b.finalprepos.left?b.finalprepos.top-b.preinterpos.top:0;for(var c={},d=0;2>d;d++){var f=0==d?f=a.prefix:"";c[f+"transition"]= "all "+g+"ms "+a.easing;c[f+"transform"]="translate("+b.tx+"px,"+b.ty+"px)"}e(this).css("-webkit-transition","all "+g+"ms "+a.easingfallback).css(c)});b={};for(c=0;2>c;c++)d=0==c?d=a.prefix:"",b[d+"transition"]="all "+g+"ms "+a.easing+", "+d+"filter "+g+"ms linear, opacity "+g+"ms linear",b[d+"transform"]=a.scale+" "+a.rotatex+" "+a.rotatey+" "+a.rotatez,b[d+"filter"]=a.blur+" "+a.grayscale,b.opacity=a.fade;t.css(b);k.bind("webkittransitionend transitionend otransitionend otransitionend",function(a){if(-1< a.originalevent.propertyname.indexof("transform")||-1d;d++){var e=0==d?e=a.prefix:"";b[e+"transition"]="height "+g+"ms ease-in-out"; b.height=a.minheight+"px"}k.css(b)}u.css(a.transition);if(s.length){b={};for(d=0;2>d;d++)e=0==d?e=a.prefix:"",b[e+"transform"]=a.scale+" "+a.rotatex+" "+a.rotatey+" "+a.rotatez,b[e+"filter"]=a.blur+" "+a.grayscale,b.opacity=a.fade;t.css(b);k.bind("webkittransitionend transitionend otransitionend otransitionend",function(b){if(-11*b.attr(d).tolowercase()?1:0}function j(a){"asc"==b?f.prepend(a).prepend(" \ "):f.append(a).append(" \ ")}h.find(c.targetselector).wrapall('
');var f=h.find(".mix_sorter");c.origsort.length||f.find(c.targetselector+":visible").each(function(){e(this).wrap("");c.origsort.push(e(this).parent().html().replace(/\s+/g,""));e(this).unwrap()});f.empty();if("reset"==d)e.each(c.startorder, function(){f.append(this).append(" \ ")});else if("default"==d)e.each(c.origorder,function(){j(this)});else if("random"==d){if(!c.neworder.length){for(var g=c.startorder.slice(),n=g.length,r=n;r--;){var m=parseint(math.random()*n),k=g[r];g[r]=g[m];g[m]=k}c.neworder=g}e.each(c.neworder,function(){f.append(this).append(" \ ")})}else"custom"==d?e.each(b,function(){j(this)}):("undefined"===typeof c.origorder[0].attr(d)&&console.log("no such attribute found. terminating"),c.neworder.length||(e.each(c.origorder, function(){c.neworder.push(e(this))}),c.neworder.sort(a)),e.each(c.neworder,function(){j(this)}));c.checksort=[];f.find(c.targetselector+":visible").each(function(a){var b=e(this);0==a&&b.attr("data-checksum","1");b.wrap("");c.checksort.push(b.parent().html().replace(/\s+/g,""));b.unwrap()});h.find(c.targetselector).unwrap()}var w={init:function(d){return this.each(function(){var b={targetselector:".mix",filterselector:".filter",sortselector:".sort",buttonevent:"click",effects:["fade","scale"], listeffects:null,easing:"smooth",layoutmode:"grid",targetdisplaygrid:"inline-block",targetdisplaylist:"block",listclass:"",gridclass:"",transitionspeed:600,showonload:"all",multifilter:!1,filterlogic:"or",resizecontainer:!0,minheight:0,failclass:"fail",perspectivedistance:"3000",perspectiveorigin:"50% 50%",animategridlist:!0,onmixload:null,onmixstart:null,onmixend:null,container:null,origorder:[],startorder:[],neworder:[],origsort:[],checksort:[],filter:"",mixing:!1,origdisplay:"",origlayout:"",origheight:0, newheight:0,istouch:!1,resetdelay:0,failsafe:null,prefix:"",easingfallback:"ease-in-out",transition:{},perspective:{},clean:{},fade:"1",scale:"",rotatex:"",rotatey:"",rotatez:"",blur:"",grayscale:""};d&&e.extend(b,d);this.config=b;e.support.touch="ontouchend"in document;e.support.touch&&(b.istouch=!0,b.resetdelay=350);b.container=e(this);var h=b.container,c;a:{c=h[0];for(var a=["webkit","moz","o","ms"],j=0;jc;c++)a=0==c?a=b.prefix:"",b.transition[a+"transition"]="all "+b.transitionspeed+"ms ease-in-out",b.perspective[a+"perspective"]=b.perspectivedistance+"px",b.perspective[a+"perspective-origin"]=b.perspectiveorigin;for(c=0;2>c;c++)a=0==c?a=b.prefix:"",b.clean[a+"transition"]="none";"list"==b.layoutmode?(h.addclass(b.listclass),b.origdisplay=b.targetdisplaylist):(h.addclass(b.gridclass), b.origdisplay=b.targetdisplaygrid);b.origlayout=b.layoutmode;c=b.showonload.split(" ");e.each(c,function(){e(b.filterselector+'[data-filter="'+this+'"]').addclass("active")});h.find(b.targetselector).addclass("mix_all");"all"==c[0]&&(c[0]="mix_all",b.showonload="mix_all");var f=e();e.each(c,function(){f=f.add(e("."+this))});f.each(function(){var a=e(this);"list"==b.layoutmode?a.css("display",b.targetdisplaylist):a.css("display",b.targetdisplaygrid);a.css(b.transition)});settimeout(function(){b.mixing= !0;f.css("opacity","1");settimeout(function(){"list"==b.layoutmode?f.removestyle(b.prefix+"transition, transition").css({display:b.targetdisplaylist,opacity:1}):f.removestyle(b.prefix+"transition, transition").css({display:b.targetdisplaygrid,opacity:1});b.mixing=!1;if("function"==typeof b.onmixload){var a=b.onmixload.call(this,b);b=a?a:b}},b.transitionspeed)},10);b.filter=b.showonload;e(b.sortselector).bind(b.buttonevent,function(){if(!b.mixing){var a=e(this),c=a.attr("data-sort"),d=a.attr("data-order"); if(a.hasclass("active")){if("random"!=c)return!1}else e(b.sortselector).removeclass("active"),a.addclass("active");h.find(b.targetselector).each(function(){b.startorder.push(e(this))});m(b.filter,c,d,h,b)}});e(b.filterselector).bind(b.buttonevent,function(){if(!b.mixing){var a=e(this);if(!1==b.multifilter)e(b.filterselector).removeclass("active"),a.addclass("active"),b.filter=a.attr("data-filter"),e(b.filterselector+'[data-filter="'+b.filter+'"]').addclass("active"),"all"==b.filter&&(b.filter="mix_all"); else{var c=a.attr("data-filter");"all"==c&&(c="mix_all");a.hasclass("active")?(a.removeclass("active"),b.filter=b.filter.replace(regexp("(\\s|^)"+c),"")):(a.addclass("active"),b.filter=b.filter+" "+c)}m(b.filter,null,null,h,b)}})})},togrid:function(){return this.each(function(){var d=this.config;"grid"!=d.layoutmode&&(d.layoutmode="grid",m(d.filter,null,null,e(this),d))})},tolist:function(){return this.each(function(){var d=this.config;"list"!=d.layoutmode&&(d.layoutmode="list",m(d.filter,null,null, e(this),d))})},filter:function(d){return this.each(function(){var b=this.config;e(b.filterselector).removeclass("active");e(b.filterselector+'[data-filter="'+d+'"]').addclass("active");"all"==d&&(d="mix_all");b.mixing||(b.filter=d,m(d,null,null,e(this),b))})},sort:function(d){return this.each(function(){var b=this.config;if(e.isarray(d))var h=d[0],c=d[1];else h=d,c="desc";b.mixing||(e(this).find(b.targetselector).each(function(){b.startorder.push(e(this))}),m(b.filter,h,c,e(this),b))})}};e.fn.mixitup= function(d,b){if(w[d])return w[d].apply(this,array.prototype.slice.call(arguments,1));if("object"===typeof d||!d)return w.init.apply(this,arguments)};e.fn.removestyle=function(d){return this.each(function(){var b=e(this);d=d.replace(/\s+/g,"");var h=d.split(",");e.each(h,function(){var c=regexp(this.tostring()+"[^;]+;?","g");b.attr("style",function(a,b){if(b)return b.replace(c,"")})})})};array.prototype.compare=function(d){if(this.length!=d.length)return!1;for(var b=0;b