1/* 2* MIXITUP - A CSS3 and JQuery Filter & Sort Plugin 3* Version: 1.5.6 4* License: Creative Commons Attribution-NoDerivs 3.0 Unported - CC BY-ND 3.0 5* http://creativecommons.org/licenses/by-nd/3.0/ 6* This software may be used freely on commercial and non-commercial projects with attribution to the author/copyright holder. 7* Author: Patrick Kunka 8* Copyright 2012-2013 Patrick Kunka, All Rights Reserved 9* 10* http://mixitup.io 11*/ 12 13(function($){var methods={init:function(settings){return this.each(function(){var browser=window.navigator.appVersion.match(/Chrome\/(\d+)\./),ver=browser?parseInt(browser[1],10):false,chromeFix=function(id){var grid=document.getElementById(id),parent=grid.parentElement,placeholder=document.createElement("div"),frag=document.createDocumentFragment();parent.insertBefore(placeholder,grid);frag.appendChild(grid);parent.replaceChild(grid,placeholder);frag=null;placeholder=null};if(ver&&ver==31||ver==32){chromeFix(this.id)}var config={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",sortOnLoad:false,multiFilter:false,filterLogic:"or",resizeContainer:true,minHeight:0,failClass:"fail",perspectiveDistance:"3000",perspectiveOrigin:"50% 50%",animateGridList:true,onMixLoad:null,onMixStart:null,onMixEnd:null,container:null,origOrder:[],startOrder:[],newOrder:[],origSort:[],checkSort:[],filter:"",mixing:false,origDisplay:"",origLayout:"",origHeight:0,newHeight:0,isTouch:false,resetDelay:0,failsafe:null,prefix:"",easingFallback:"ease-in-out",transition:{},perspective:{},clean:{},fade:"1",scale:"",rotateX:"",rotateY:"",rotateZ:"",blur:"",grayscale:""};if(settings){$.extend(config,settings)}this.config=config;$.support.touch="ontouchend" in document;if($.support.touch){config.isTouch=true;config.resetDelay=350}config.container=$(this);var $cont=config.container;config.prefix=prefix($cont[0]);config.prefix=config.prefix?"-"+config.prefix.toLowerCase()+"-":"";$cont.find(config.targetSelector).each(function(){config.origOrder.push($(this))});if(config.sortOnLoad){var sortby,order;if($.isArray(config.sortOnLoad)){sortby=config.sortOnLoad[0],order=config.sortOnLoad[1];$(config.sortSelector+"[data-sort="+config.sortOnLoad[0]+"][data-order="+config.sortOnLoad[1]+"]").addClass("active")}else{$(config.sortSelector+"[data-sort="+config.sortOnLoad+"]").addClass("active");sortby=config.sortOnLoad,config.sortOnLoad="desc"}sort(sortby,order,$cont,config)}for(var i=0;i<2;i++){var a=i==0?a=config.prefix:"";config.transition[a+"transition"]="all "+config.transitionSpeed+"ms ease-in-out";config.perspective[a+"perspective"]=config.perspectiveDistance+"px";config.perspective[a+"perspective-origin"]=config.perspectiveOrigin}for(var i=0;i<2;i++){var a=i==0?a=config.prefix:"";config.clean[a+"transition"]="none"}if(config.layoutMode=="list"){$cont.addClass(config.listClass);config.origDisplay=config.targetDisplayList}else{$cont.addClass(config.gridClass);config.origDisplay=config.targetDisplayGrid}config.origLayout=config.layoutMode;var showOnLoadArray=config.showOnLoad.split(" ");$.each(showOnLoadArray,function(){$(config.filterSelector).filter('[data-filter="'+this+'"]').addClass("active")});$cont.find(config.targetSelector).addClass("mix_all");if(showOnLoadArray[0]=="all"){showOnLoadArray[0]="mix_all",config.showOnLoad="mix_all"}var $showOnLoad=$();$.each(showOnLoadArray,function(){$showOnLoad=$showOnLoad.add($("."+this))});$showOnLoad.each(function(){var $t=$(this);if(config.layoutMode=="list"){$t.css("display",config.targetDisplayList)}else{$t.css("display",config.targetDisplayGrid)}$t.css(config.transition)});var delay=setTimeout(function(){config.mixing=true;$showOnLoad.css("opacity","1");var reset=setTimeout(function(){if(config.layoutMode=="list"){$showOnLoad.removeStyle(config.prefix+"transition, transition").css({display:config.targetDisplayList,opacity:1})}else{$showOnLoad.removeStyle(config.prefix+"transition, transition").css({display:config.targetDisplayGrid,opacity:1})}config.mixing=false;if(typeof config.onMixLoad=="function"){var output=config.onMixLoad.call(this,config);config=output?output:config}},config.transitionSpeed)},10);config.filter=config.showOnLoad;$(config.sortSelector).bind(config.buttonEvent,function(){if(!config.mixing){var $t=$(this),sortby=$t.attr("data-sort"),order=$t.attr("data-order");if(!$t.hasClass("active")){$(config.sortSelector).removeClass("active");$t.addClass("active")}else{if(sortby!="random"){return false}}$cont.find(config.targetSelector).each(function(){config.startOrder.push($(this))});goMix(config.filter,sortby,order,$cont,config)}});$(config.filterSelector).bind(config.buttonEvent,function(){if(!config.mixing){var $t=$(this);if(config.multiFilter==false){$(config.filterSelector).removeClass("active");$t.addClass("active");config.filter=$t.attr("data-filter");$(config.filterSelector).filter('[data-filter="'+config.filter+'"]').addClass("active")}else{var thisFilter=$t.attr("data-filter");if($t.hasClass("active")){$t.removeClass("active");var re=new RegExp("(\\s|^)"+thisFilter);config.filter=config.filter.replace(re,"")}else{$t.addClass("active");config.filter=config.filter+" "+thisFilter}}goMix(config.filter,null,null,$cont,config)}})})}
13,toGrid:function(){return this.each(function(){var config=this.config;if(config.layoutMode!="grid"){config.layoutMode="grid";goMix(config.filter,null,null,$(this),config)}})},toList:function(){return this.each(function(){var config=this.config;if(config.layoutMode!="list"){config.layoutMode="list";goMix(config.filter,null,null,$(this),config)}})},filter:function(arg){return this.each(function(){var config=this.config;if(!config.mixing){$(config.filterSelector).removeClass("active");$(config.filterSelector).filter('[data-filter="'+arg+'"]').addClass("active");goMix(arg,null,null,$(this),config)}})},sort:function(args){return this.each(function(){var config=this.config,$t=$(this);if(!config.mixing){$(config.sortSelector).removeClass("active");if($.isArray(args)){var sortby=args[0],order=args[1];$(config.sortSelector+'[data-sort="'+args[0]+'"][data-order="'+args[1]+'"]').addClass("active")}else{$(config.sortSelector+'[data-sort="'+args+'"]').addClass("active");var sortby=args,order="desc"}$t.find(config.targetSelector).each(function(){config.startOrder.push($(this))});goMix(config.filter,sortby,order,$t,config)}})},multimix:function(args){return this.each(function(){var config=this.config,$t=$(this);multiOut={filter:config.filter,sort:null,order:"desc",layoutMode:config.layoutMode};$.extend(multiOut,args);if(!config.mixing){$(config.filterSelector).add(config.sortSelector).removeClass("active");$(config.filterSelector).filter('[data-filter="'+multiOut.filter+'"]').addClass("active");if(typeof multiOut.sort!=="undefined"){$(config.sortSelector+'[data-sort="'+multiOut.sort+'"][data-order="'+multiOut.order+'"]').addClass("active");$t.find(config.targetSelector).each(function(){config.startOrder.push($(this))})}config.layoutMode=multiOut.layoutMode;goMix(multiOut.filter,multiOut.sort,multiOut.order,$t,config)}})},remix:function(arg){return this.each(function(){var config=this.config,$t=$(this);config.origOrder=[];$t.find(config.targetSelector).each(function(){var $th=$(this);$th.addClass("mix_all");config.origOrder.push($th)});if(!config.mixing&&typeof arg!=="undefined"){$(config.filterSelector).removeClass("active");$(config.filterSelector).filter('[data-filter="'+arg+'"]').addClass("active");goMix(arg,null,null,$t,config)}})}};$.fn.mixitup=function(method,arg){if(methods[method]){return methods[method].apply(this,Array.prototype.slice.call(arguments,1))}else{if(typeof method==="object"||!method){return methods.init.apply(this,arguments)}}};function goMix(filter,sortby,order,$cont,config){clearInterval(config.failsafe);config.mixing=true;config.filter=filter;if(typeof config.onMixStart=="function"){var output=config.onMixStart.call(this,config);config=output?output:config}var speed=config.transitionSpeed;for(var i=0;i<2;i++){var a=i==0?a=config.prefix:"";config.transition[a+"transition"]="all "+speed+"ms linear";config.transition[a+"transform"]=a+"translate3d(0,0,0)";config.perspective[a+"perspective"]=config.perspectiveDistance+"px";config.perspective[a+"perspective-origin"]=config.perspectiveOrigin}var mixSelector=config.targetSelector,$targets=$cont.find(mixSelector);$targets.each(function(){this.data={}});var $par=$targets.parent();$par.css(config.perspective);config.easingFallback="ease-in-out";if(config.easing=="smooth"){config.easing="cubic-bezier(0.25, 0.46, 0.45, 0.94)"}if(config.easing=="snap"){config.easing="cubic-bezier(0.77, 0, 0.175, 1)"}if(config.easing=="windback"){config.easing="cubic-bezier(0.175, 0.885, 0.320, 1.275)",config.easingFallback="cubic-bezier(0.175, 0.885, 0.320, 1)"}if(config.easing=="windup"){config.easing="cubic-bezier(0.6, -0.28, 0.735, 0.045)",config.easingFallback="cubic-bezier(0.6, 0.28, 0.735, 0.045)"}var effectsOut=config.layoutMode=="list"&&config.listEffects!=null?config.listEffects:config.effects;if(Array.prototype.indexOf){config.fade=effectsOut.indexOf("fade")>-1?"0":"";config.scale=effectsOut.indexOf("scale")>-1?"scale(.01)":"";config.rotateZ=effectsOut.indexOf("rotateZ")>-1?"rotate(180deg)":"";config.rotateY=effectsOut.indexOf("rotateY")>-1?"rotateY(90deg)":"";config.rotateX=effectsOut.indexOf("rotateX")>-1?"rotateX(90deg)":"";config.blur=effectsOut.indexOf("blur")>-1?"blur(8px)":"";config.grayscale=effectsOut.indexOf("grayscale")>-1?"grayscale(100%)":""}var $show=$(),$hide=$(),filterArray=[],multiDimensional=false;
13if(typeof filter==="string"){filterArray=buildFilterArray(filter)}else{multiDimensional=true;$.each(filter,function(i){filterArray[i]=buildFilterArray(this)})}if(config.filterLogic=="or"){if(filterArray[0]==""){filterArray.shift()}if(filterArray.length<1){$hide=$hide.add($cont.find(mixSelector+":visible"))}else{$targets.each(function(){var $t=$(this);if(!multiDimensional){if($t.is("."+filterArray.join(", ."))){$show=$show.add($t)}else{$hide=$hide.add($t)}}else{var pass=0;$.each(filterArray,function(i){if(this.length){if($t.is("."+this.join(", ."))){pass++}}else{if(pass>0){pass++}}});if(pass==filterArray.length){$show=$show.add($t)}else{$hide=$hide.add($t)}}})}}else{$show=$show.add($par.find(mixSelector+"."+filterArray.join(".")));$hide=$hide.add($par.find(mixSelector+":not(."+filterArray.join(".")+"):visible"))}var total=$show.length;var $tohide=$(),$toshow=$(),$pre=$();$hide.each(function(){var $t=$(this);if($t.css("display")!="none"){$tohide=$tohide.add($t);$pre=$pre.add($t)}});if($show.filter(":visible").length==total&&!$tohide.length&&!sortby){if(config.origLayout==config.layoutMode){resetFilter();return false}else{if($show.length==1){if(config.layoutMode=="list"){$cont.addClass(config.listClass);$cont.removeClass(config.gridClass);$pre.css("display",config.targetDisplayList)}else{$cont.addClass(config.gridClass);$cont.removeClass(config.listClass);$pre.css("display",config.targetDisplayGrid)}resetFilter();return false}}}config.origHeight=$par.height();if($show.length){$cont.removeClass(config.failClass);$show.each(function(){var $t=$(this);if($t.css("display")=="none"){$toshow=$toshow.add($t)}else{$pre=$pre.add($t)}});if((config.origLayout!=config.layoutMode)&&config.animateGridList==false){if(config.layoutMode=="list"){$cont.addClass(config.listClass);$cont.removeClass(config.gridClass);$pre.css("display",config.targetDisplayList)}else{$cont.addClass(config.gridClass);$cont.removeClass(config.listClass);$pre.css("display",config.targetDisplayGrid)}resetFilter();return false}if(!window.atob){resetFilter();return false}$targets.css(config.clean);$pre.each(function(){this.data.origPos=$(this).offset()});if(config.layoutMode=="list"){$cont.addClass(config.listClass);$cont.removeClass(config.gridClass);$toshow.css("display",config.targetDisplayList)}else{$cont.addClass(config.gridClass);$cont.removeClass(config.listClass);$toshow.css("display",config.targetDisplayGrid)}$toshow.each(function(){this.data.showInterPos=$(this).offset()});$tohide.each(function(){this.data.hideInterPos=$(this).offset()});$pre.each(function(){this.data.preInterPos=$(this).offset()});if(config.layoutMode=="list"){$pre.css("display",config.targetDisplayList)}else{$pre.css("display",config.targetDisplayGrid)}if(sortby){sort(sortby,order,$cont,config)}if(sortby&&compareArr(config.origSort,config.checkSort)){resetFilter();return false}$tohide.hide();$toshow.each(function(i){this.data.finalPos=$(this).offset()});$pre.each(function(){this.data.finalPrePos=$(this).offset()});config.newHeight=$par.height();if(sortby){sort("reset",null,$cont,config)}$toshow.hide();$pre.css("display",config.origDisplay);if(config.origDisplay=="block"){$cont.addClass(config.listClass);$toshow.css("display",config.targetDisplayList)}else{$cont.removeClass(config.listClass);$toshow.css("display",config.targetDisplayGrid)}if(config.resizeContainer){$par.css("height",config.origHeight+"px")}var toShowCSS={};for(var i=0;i<2;i++){var a=i==0?a=config.prefix:"";toShowCSS[a+"transform"]=config.scale+" "+config.rotateX+" "+config.rotateY+" "+config.rotateZ;toShowCSS[a+"filter"]=config.blur+" "+config.grayscale}$toshow.css(toShowCSS);$pre.each(function(){var data=this.data,$t=$(this);if($t.hasClass("mix_tohide")){data.preTX=data.origPos.left-data.hideInterPos.left;data.preTY=data.origPos.top-data.hideInterPos.top}else{data.preTX=data.origPos.left-data.preInterPos.left;data.preTY=data.origPos.top-data.preInterPos.top}var preCSS={};for(var i=0;i<2;i++){var a=i==0?a=config.prefix:"";preCSS[a+"transform"]="translate("+data.preTX+"px,"+data.preTY+"px)"}$t.css(preCSS)});if(config.layoutMode=="list"){$cont.addClass(config.listClass);$cont.removeClass(config.gridClass)}else{$cont.addClass(config.gridClass);$cont.removeClass(config.listClass)}var delay=setTimeout(function(){if(config.resizeContainer){var containerCSS={};for(var i=0;i<2;i++){var a=i==0?a=config.prefix:"";containerCSS[a+"transition"]="all "+speed+"ms ease-in-out";containerCSS.height=config.newHeight+"px"}$par.css(containerCSS)}$tohide.css("opacity",config.fade);$toshow.css("opacity",1);$toshow.each(function(){var data=this.data;data.tX=data.finalPos.left-data.showInterPos.left;data.tY=data.finalPos.top-data.showInterPos.top;var toShowCSS={};for(var i=0;i<2;i++){var a=i==0?a=config.prefix:"";toShowCSS[a+"transition-property"]=a+"transform, "+a+"filter, opacity";toShowCSS[a+"transition-timing-function"]=config.easing+", linear, linear";toShowCSS[a+"transition-duration"]=speed+"ms";toShowCSS[a+"transition-delay"]="0";toShowCSS[a+"transform"]="translate("+data.tX+"px,"+data.tY+"px)";toShowCSS[a+"filter"]="none"}$(this).css("-webkit-transition","all "+speed+"ms "+config.easingFallback).css(toS
13howCSS)});$pre.each(function(){var data=this.data;data.tX=data.finalPrePos.left!=0?data.finalPrePos.left-data.preInterPos.left:0;data.tY=data.finalPrePos.left!=0?data.finalPrePos.top-data.preInterPos.top:0;var preCSS={};for(var i=0;i<2;i++){var a=i==0?a=config.prefix:"";preCSS[a+"transition"]="all "+speed+"ms "+config.easing;preCSS[a+"transform"]="translate("+data.tX+"px,"+data.tY+"px)"}$(this).css("-webkit-transition","all "+speed+"ms "+config.easingFallback).css(preCSS)});var toHideCSS={};for(var i=0;i<2;i++){var a=i==0?a=config.prefix:"";toHideCSS[a+"transition"]="all "+speed+"ms "+config.easing+", "+a+"filter "+speed+"ms linear, opacity "+speed+"ms linear";toHideCSS[a+"transform"]=config.scale+" "+config.rotateX+" "+config.rotateY+" "+config.rotateZ;toHideCSS[a+"filter"]=config.blur+" "+config.grayscale;toHideCSS.opacity=config.fade}$tohide.css(toHideCSS);$par.bind("webkitTransitionEnd transitionend otransitionend oTransitionEnd",function(e){if(e.originalEvent.propertyName.indexOf("transform")>-1||e.originalEvent.propertyName.indexOf("opacity")>-1){if(mixSelector.indexOf(".")>-1){if($(e.target).hasClass(mixSelector.replace(".",""))){resetFilter()}}else{if($(e.target).is(mixSelector)){resetFilter()}}}})},10);config.failsafe=setTimeout(function(){if(config.mixing){resetFilter()}},speed+400)}else{if(config.resizeContainer){$par.css("height",config.origHeight+"px")}if(!window.atob){resetFilter();return false}$tohide=$hide;var delay=setTimeout(function(){$par.css(config.perspective);if(config.resizeContainer){var containerCSS={};for(var i=0;i<2;i++){var a=i==0?a=config.prefix:"";containerCSS[a+"transition"]="height "+speed+"ms ease-in-out";containerCSS.height=config.minHeight+"px"}$par.css(containerCSS)}$targets.css(config.transition);var totalHide=$hide.length;if(totalHide){var toHideCSS={};for(var i=0;i<2;i++){var a=i==0?a=config.prefix:"";toHideCSS[a+"transform"]=config.scale+" "+config.rotateX+" "+config.rotateY+" "+config.rotateZ;toHideCSS[a+"filter"]=config.blur+" "+config.grayscale;toHideCSS.opacity=config.fade}$tohide.css(toHideCSS);$par.bind("webkitTransitionEnd transitionend otransitionend oTransitionEnd",function(e){if(e.originalEvent.propertyName.indexOf("transform")>-1||e.originalEvent.propertyName.indexOf("opacity")>-1){$cont.addClass(config.failClass);resetFilter()}})}else{config.mixing=false}},10)}function resetFilter(){$par.unbind("webkitTransitionEnd transitionend otransitionend oTransitionEnd");if(sortby){sort(sortby,order,$cont,config)}config.startOrder=[],config.newOrder=[],config.origSort=[],config.checkSort=[];$targets.removeStyle(config.prefix+"filter, filter, "+config.prefix+"transform, transform, opacity, display").css(config.clean).removeAttr("data-checksum");if(!window.atob){$targets.css({display:"none",opacity:"0"})}var remH=config.resizeContainer?"height":"";$par.removeStyle(config.prefix+"transition, transition, "+config.prefix+"perspective, perspective, "+config.prefix+"perspective-origin, perspective-origin, "+remH);if(config.layoutMode=="list"){$show.css({display:config.targetDisplayList,opacity:"1"});config.origDisplay=config.targetDisplayList}else{$show.css({display:config.targetDisplayGrid,opacity:"1"});config.origDisplay=config.targetDisplayGrid}config.origLayout=config.layoutMode;var wait=setTimeout(function(){$targets.removeStyle(config.prefix+"transition, transition");config.mixing=false;if(typeof config.onMixEnd=="function"){var output=config.onMixEnd.call(this,config);config=output?output:config}})}}function sort(sortby,order,$cont,config){function compare(a,b){var sortAttrA=isNaN(a.attr(sortby)*1)?a.attr(sortby).toLowerCase():a.attr(sortby)*1,sortAttrB=isNaN(b.attr(sortby)*1)?b.attr(sortby).toLowerCase():b.attr(sortby)*1;if(sortAttrA<sortAttrB){return -1}if(sortAttrA>sortAttrB){return 1}return 0}function rebuild(element){if(order=="asc"){$sortWrapper.prepend(element).prepend(" ")}else{$sortWrapper.append(element).append(" ")}}function arrayShuffle(oldArray){var newArray=oldArray.slice();var len=newArray.length;var i=len;while(i--){var p=parseInt(Math.random()*len);var t=newArray[i];newArray[i]=newArray[p];newArray[p]=t}return newArray}$cont.find(config.targetSelector).wrapAll('<div class="mix_sorter"/>');var $sortWrapper=$cont.find(".mix_sorter");if(!config.origSort.length){$sortWrapper.find(config.targetSelector+":visible").each(function(){$(this).wrap("<s/>");config.origSort.push($(this).parent().html().replace(/\s+/g,""));$(this).unwrap()})}$sortWrapper.empty();if(sortby=="reset"){$.each(config.startOrder,function(){$sortWrapper.append(this).append(" ")})}else{if(sortby=="default"){$.each(config.origOrder,function(){rebuild(this)})}else{if(sortby=="random"){if(!config.newOrder.length){config.newOrder=arrayShuffle(config.startOrder)}$.each(config.newOrder,function(){$sortWrapper.append(this).append(" ")})}else{if(sortby=="custom"){$.each(order,function(){rebuild(this)})}else{if(typeof config.origOrder[0].attr(sortby)==="undefined"){console.log("No such attribute found. Terminating");return false}if(!config.newOrder.length){$.each(config.origOrder,function(){config.newOrder.push($(this))});config.newOrder.sort(compare)}$.each(config.newOrder,function(){rebuild(this)})}}}}config.checkSort=[];$sortWrapper.find(config.targetSelector+":visible").each(function(i){var $t=$(this);if(i==0){$t.attr("data-checksum","1")}$t.wrap("<s/>");config.checkSort.push($t.parent().html().replace(/\s+/g,""));$t.unwrap()});$cont.find(config.targetSelector).unwrap()}function prefix(el){var prefixes=["Webkit","Moz","O","ms"];for(var i=0;i<prefixes.length;i++){if(prefixes[i]+"Transition" in el.style){return prefixes[i]}}return"transition" in el.style?"":false}$.fn.removeStyle=function(style){return this.each(function(){var obj=$(this);style=style.replace(/\s+/g,"");var styles=style.split(",");$.each(styles,function(){var search=new RegExp(this.toString()+"[^;]+;?","g");obj.attr("style",function(i,style){if(style){return style.replace(search,"")}})})})};function compareArr(a,b){if(a.length!=b.length){return false}for(var i=0;i<b.length;i++){if(a[i].compare){if(!a[i].compare(b[i])){return false}}if(a[i]!==b[i]){return false}}return true}function buildFilterArray(str){str=str.replace(/\s{2,}/g," ");var arr=str.split(" ");$.each(arr,function(i){if(this=="all"){arr[i]="mix_all"}});if(arr[0]==""){arr.shift()}return arr}})(jQuery);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.