Difference between revisions of "Team:CU/Js/min/plugins"

(Created page with "var cbpAnimatedHeader = (function() { var docElem = document.documentElement, header = document.querySelector( '.site-header' ), didScroll = false, changeHeaderOn = 30...")
 
Line 1: Line 1:
var cbpAnimatedHeader = (function() {
+
var cbpAnimatedHeader=function(){function init(){window.addEventListener("scroll",function(){didScroll||(didScroll=!0,setTimeout(scrollPage,250))},!1)}function scrollPage(){var sy=scrollY();sy>=changeHeaderOn?classie.add(header,"site-header-shrink"):classie.remove(header,"site-header-shrink"),didScroll=!1}function scrollY(){return window.pageYOffset||docElem.scrollTop}var docElem=document.documentElement,header=document.querySelector(".site-header"),didScroll=!1,changeHeaderOn=300;init()}();!function(window){"use strict";function classReg(className){return new RegExp("(^|\\s+)"+className+"(\\s+|$)")}function toggleClass(elem,c){var fn=hasClass(elem,c)?removeClass:addClass;fn(elem,c)}var hasClass,addClass,removeClass;"classList"in document.documentElement?(hasClass=function(elem,c){return elem.classList.contains(c)},addClass=function(elem,c){elem.classList.add(c)},removeClass=function(elem,c){elem.classList.remove(c)}):(hasClass=function(elem,c){return classReg(c).test(elem.className)},addClass=function(elem,c){hasClass(elem,c)||(elem.className=elem.className+" "+c)},removeClass=function(elem,c){elem.className=elem.className.replace(classReg(c)," ")});var classie={hasClass:hasClass,addClass:addClass,removeClass:removeClass,toggleClass:toggleClass,has:hasClass,add:addClass,remove:removeClass,toggle:toggleClass};"function"==typeof define&&define.amd?define(classie):window.classie=classie}(window),function($){$.fn.jflickrfeed=function(settings,callback){settings=$.extend(!0,{flickrbase:"http://api.flickr.com/services/feeds/",feedapi:"photos_public.gne",limit:20,qstrings:{lang:"en-us",format:"json",jsoncallback:"?"},cleanDescription:!0,useTemplate:!0,itemTemplate:"",itemCallback:function(){}},settings);var url=settings.flickrbase+settings.feedapi+"?",first=!0;for(var key in settings.qstrings)first||(url+="&"),url+=key+"="+settings.qstrings[key],first=!1;return $(this).each(function(){var $container=$(this),container=this;$.getJSON(url,function(data){$.each(data.items,function(i,item){if(i<settings.limit){if(settings.cleanDescription){var regex=/<p>(.*?)<\/p>/g,input=item.description;regex.test(input)&&(item.description=input.match(regex)[2],void 0!=item.description&&(item.description=item.description.replace("<p>","").replace("</p>","")))}if(item.image_s=item.media.m.replace("_m","_s"),item.image_t=item.media.m.replace("_m","_t"),item.image_m=item.media.m.replace("_m","_m"),item.image=item.media.m.replace("_m",""),item.image_b=item.media.m.replace("_m","_b"),delete item.media,settings.useTemplate){var template=settings.itemTemplate;for(var key in item){var rgx=new RegExp("{{"+key+"}}","g");template=template.replace(rgx,item[key])}$container.append(template)}settings.itemCallback.call(container,item)}}),$.isFunction(callback)&&callback.call(container,data)})})}}(jQuery),function($){var plugin={},defaults={mode:"horizontal",slideSelector:"",infiniteLoop:!0,hideControlOnEnd:!1,speed:500,easing:null,slideMargin:0,startSlide:0,randomStart:!1,captions:!1,ticker:!1,tickerHover:!1,adaptiveHeight:!1,adaptiveHeightSpeed:500,video:!1,useCSS:!0,preloadImages:"visible",responsive:!0,touchEnabled:!0,swipeThreshold:50,oneToOneTouch:!0,preventDefaultSwipeX:!0,preventDefaultSwipeY:!1,pager:!0,pagerType:"full",pagerShortSeparator:" / ",pagerSelector:null,buildPager:null,pagerCustom:null,controls:!0,nextText:"Next",prevText:"Prev",nextSelector:null,prevSelector:null,autoControls:!1,startText:"Start",stopText:"Stop",autoControlsCombine:!1,autoControlsSelector:null,auto:!1,pause:4e3,autoStart:!0,autoDirection:"next",autoHover:!1,autoDelay:0,minSlides:1,maxSlides:1,moveSlides:0,slideWidth:0,onSliderLoad:function(){},onSlideBefore:function(){},onSlideAfter:function(){},onSlideNext:function(){},onSlidePrev:function(){}};$.fn.bxSlider=function(options){if(0==this.length)return this;if(this.length>1)return this.each(function(){$(this).bxSlider(options)}),this;var slider={},el=this;plugin.el=this;var windowWidth=$(window).width(),windowHeight=$(window).height(),init=function(){slider.settings=$.extend({},defaults,options),slider.settings.slideWidth=parseInt(slider.settings.slideWidth),slider.children=el.children(slider.settings.slideSelector),slider.children.length<slider.settings.minSlides&&(slider.settings.minSlides=slider.children.length),slider.children.length<slider.settings.maxSlides&&(slider.settings.maxSlides=slider.children.length),slider.settings.randomStart&&(slider.settings.startSlide=Math.floor(Math.random()*slider.children.length)),slider.active={index:slider.settings.startSlide},slider.carousel=slider.settings.minSlides>1||slider.settings.maxSlides>1,slider.carousel&&(slider.settings.preloadImages="all"),slider.minThreshold=slider.settings.minSlides*slider.settings.slideWidth+(slider.settings.minSlides-1)*slider.settings.slideMargin,slider.maxThreshold=slider.settings.maxSlides*slider.settings.slideWidth+(slider.settings.maxSlides-1)*slider.settings.slideMargin,slider.working=!1,slider.controls={},slider.interval=null,slider.animProp="vertical"==slider.settings.mode?"top":"left",slider.usingCSS=slider.settings.useCSS&&"fade"!=slider.settings.mode&&function(){var div=document.createElement("div"),props=["WebkitPerspective","MozPerspective","OPerspective","msPerspective"];for(var i in props)if(void 0!==div.style[props[i]])return slider.cssPrefix=props[i].replace("Perspective","").toLowerCase(),slider.animProp="-"+slider.cssPrefix+"-transform",!0;return!1}(),"vertical"==slider.settings.mode&&(slider.settings.maxSlides=slider.settings.minSlides),el.data("origStyle",el.attr("style")),el.children(slider.settings.slideSelector).each(function(){$(this).data("origStyle",$(this).attr("style"))}),setup()},setup=function(){el.wrap('<div class="bx-wrapper"><div class="bx-viewport"></div></div>'),slider.viewport=el.parent(),slider.loader=$('<div class="bx-loading" />'),slider.viewport.prepend(slider.loader),el.css({width:"horizontal"==slider.settings.mode?100*slider.children.length+215+"%":"auto",position:"relative"}),slider.usingCSS&&slider.settings.easing?el.css("-"+slider.cssPrefix+"-transition-timing-function",slider.settings.easing):slider.settings.easing||(slider.settings.easing="swing");getNumberSlidesShowing();slider.viewport.css({width:"100%",overflow:"hidden",position:"relative"}),slider.viewport.parent().css({maxWidth:getViewportMaxWidth()}),slider.settings.pager||slider.viewport.parent().css({margin:"0 auto 0px"}),slider.children.css({"float":"horizontal"==slider.settings.mode?"left":"none",listStyle:"none",position:"relative"}),slider.children.css("width",getSlideWidth()),"horizontal"==slider.settings.mode&&slider.settings.slideMargin>0&&slider.children.css("marginRight",slider.settings.slideMargin),"vertical"==slider.settings.mode&&slider.settings.slideMargin>0&&slider.children.css("marginBottom",slider.settings.slideMargin),"fade"==slider.settings.mode&&(slider.children.css({position:"absolute",zIndex:0,display:"none"}),slider.children.eq(slider.settings.startSlide).css({zIndex:50,display:"block"})),slider.controls.el=$('<div class="bx-controls" />'),slider.settings.captions&&appendCaptions(),slider.active.last=slider.settings.startSlide==getPagerQty()-1,slider.settings.video&&el.fitVids();var preloadSelector=slider.children.eq(slider.settings.startSlide);"all"==slider.settings.preloadImages&&(preloadSelector=slider.children),slider.settings.ticker?slider.settings.pager=!1:(slider.settings.pager&&appendPager(),slider.settings.controls&&appendControls(),slider.settings.auto&&slider.settings.autoControls&&appendControlsAuto(),(slider.settings.controls||slider.settings.autoControls||slider.settings.pager)&&slider.viewport.after(slider.controls.el)),loadElements(preloadSelector,start)},loadElements=function(selector,callback){var total=selector.find("img, iframe").length;if(0==total)return callback(),void 0;var count=0;selector.find("img, iframe").each(function(){$(this).one("load",function(){++count==total&&callback()}).each(function(){this.complete&&$(this).load()})})},start=function(){if(slider.settings.infiniteLoop&&"fade"!=slider.settings.mode&&!slider.settings.ticker){var slice="vertical"==slider.settings.mode?slider.settings.minSlides:slider.settings.maxSlides,sliceAppend=slider.children.slice(0,slice).clone().addClass("bx-clone"),slicePrepend=slider.children.slice(-slice).clone().addClass("bx-clone");el.append(sliceAppend).prepend(slicePrepend)}slider.loader.remove(),setSlidePosition(),"vertical"==slider.settings.mode&&(slider.settings.adaptiveHeight=!0),slider.viewport.height(getViewportHeight()),el.redrawSlider(),slider.settings.onSliderLoad(slider.active.index),slider.initialized=!0,slider.settings.responsive&&$(window).bind("resize",resizeWindow),slider.settings.auto&&slider.settings.autoStart&&initAuto(),slider.settings.ticker&&initTicker(),slider.settings.pager&&updatePagerActive(slider.settings.startSlide),slider.settings.controls&&updateDirectionControls(),slider.settings.touchEnabled&&!slider.settings.ticker&&initTouch()},getViewportHeight=function(){var height=0,children=$();if("vertical"==slider.settings.mode||slider.settings.adaptiveHeight)if(slider.carousel){var currentIndex=1==slider.settings.moveSlides?slider.active.index:slider.active.index*getMoveBy();for(children=slider.children.eq(currentIndex),i=1;i<=slider.settings.maxSlides-1;i++)children=currentIndex+i>=slider.children.length?children.add(slider.children.eq(i-1)):children.add(slider.children.eq(currentIndex+i))}else children=slider.children.eq(slider.active.index);else children=slider.children;return"vertical"==slider.settings.mode?(children.each(function(){height+=$(this).outerHeight()}),slider.settings.slideMargin>0&&(height+=slider.settings.slideMargin*(slider.settings.minSlides-1))):height=Math.max.apply(Math,children.map(function(){return $(this).outerHeight(!1)}).get()),height},getViewportMaxWidth=function(){var width="100%";return slider.settings.slideWidth>0&&(width="horizontal"==slider.settings.mode?slider.settings.maxSlides*slider.settings.slideWidth+(slider.settings.maxSlides-1)*slider.settings.slideMargin:slider.settings.slideWidth),width},getSlideWidth=function(){var newElWidth=slider.settings.slideWidth,wrapWidth=slider.viewport.width();return 0==slider.settings.slideWidth||slider.settings.slideWidth>wrapWidth&&!slider.carousel||"vertical"==slider.settings.mode?newElWidth=wrapWidth:slider.settings.maxSlides>1&&"horizontal"==slider.settings.mode&&(wrapWidth>slider.maxThreshold||wrapWidth<slider.minThreshold&&(newElWidth=(wrapWidth-slider.settings.slideMargin*(slider.settings.minSlides-1))/slider.settings.minSlides)),newElWidth},getNumberSlidesShowing=function(){var slidesShowing=1;if("horizontal"==slider.settings.mode&&slider.settings.slideWidth>0)if(slider.viewport.width()<slider.minThreshold)slidesShowing=slider.settings.minSlides;else if(slider.viewport.width()>slider.maxThreshold)slidesShowing=slider.settings.maxSlides;else{var childWidth=slider.children.first().width();slidesShowing=Math.floor(slider.viewport.width()/childWidth)}else"vertical"==slider.settings.mode&&(slidesShowing=slider.settings.minSlides);return slidesShowing},getPagerQty=function(){var pagerQty=0;if(slider.settings.moveSlides>0)if(slider.settings.infiniteLoop)pagerQty=slider.children.length/getMoveBy();else for(var breakPoint=0,counter=0;breakPoint<slider.children.length;)++pagerQty,breakPoint=counter+getNumberSlidesShowing(),counter+=slider.settings.moveSlides<=getNumberSlidesShowing()?slider.settings.moveSlides:getNumberSlidesShowing();else pagerQty=Math.ceil(slider.children.length/getNumberSlidesShowing());return pagerQty},getMoveBy=function(){return slider.settings.moveSlides>0&&slider.settings.moveSlides<=getNumberSlidesShowing()?slider.settings.moveSlides:getNumberSlidesShowing()},setSlidePosition=function(){if(slider.children.length>slider.settings.maxSlides&&slider.active.last&&!slider.settings.infiniteLoop){if("horizontal"==slider.settings.mode){var lastChild=slider.children.last(),position=lastChild.position();setPositionProperty(-(position.left-(slider.viewport.width()-lastChild.width())),"reset",0)}else if("vertical"==slider.settings.mode){var lastShowingIndex=slider.children.length-slider.settings.minSlides,position=slider.children.eq(lastShowingIndex).position();setPositionProperty(-position.top,"reset",0)}}else{var position=slider.children.eq(slider.active.index*getMoveBy()).position();slider.active.index==getPagerQty()-1&&(slider.active.last=!0),void 0!=position&&("horizontal"==slider.settings.mode?setPositionProperty(-position.left,"reset",0):"vertical"==slider.settings.mode&&setPositionProperty(-position.top,"reset",0))}},setPositionProperty=function(value,type,duration,params){if(slider.usingCSS){var propValue="vertical"==slider.settings.mode?"translate3d(0, "+value+"px, 0)":"translate3d("+value+"px, 0, 0)";el.css("-"+slider.cssPrefix+"-transition-duration",duration/1e3+"s"),"slide"==type?(el.css(slider.animProp,propValue),el.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(){el.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),updateAfterSlideTransition()})):"reset"==type?el.css(slider.animProp,propValue):"ticker"==type&&(el.css("-"+slider.cssPrefix+"-transition-timing-function","linear"),el.css(slider.animProp,propValue),el.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(){el.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),setPositionProperty(params.resetValue,"reset",0),tickerLoop()}))}else{var animateObj={};animateObj[slider.animProp]=value,"slide"==type?el.animate(animateObj,duration,slider.settings.easing,function(){updateAfterSlideTransition()}):"reset"==type?el.css(slider.animProp,value):"ticker"==type&&el.animate(animateObj,speed,"linear",function(){setPositionProperty(params.resetValue,"reset",0),tickerLoop()})}},populatePager=function(){for(var pagerHtml="",pagerQty=getPagerQty(),i=0;pagerQty>i;i++){var linkContent="";slider.settings.buildPager&&$.isFunction(slider.settings.buildPager)?(linkContent=slider.settings.buildPager(i),slider.pagerEl.addClass("bx-custom-pager")):(linkContent=i+1,slider.pagerEl.addClass("bx-default-pager")),pagerHtml+='<div class="bx-pager-item"><a href="" data-slide-index="'+i+'" class="bx-pager-link">'+linkContent+"</a></div>"}slider.pagerEl.html(pagerHtml)},appendPager=function(){slider.settings.pagerCustom?slider.pagerEl=$(slider.settings.pagerCustom):(slider.pagerEl=$('<div class="bx-pager" />'),slider.settings.pagerSelector?$(slider.settings.pagerSelector).html(slider.pagerEl):slider.controls.el.addClass("bx-has-pager").append(slider.pagerEl),populatePager()),slider.pagerEl.delegate("a","click",clickPagerBind)},appendControls=function(){slider.controls.next=$('<a class="bx-next" href="">'+slider.settings.nextText+"</a>"),slider.controls.prev=$('<a class="bx-prev" href="">'+slider.settings.prevText+"</a>"),slider.controls.next.bind("click",clickNextBind),slider.controls.prev.bind("click",clickPrevBind),slider.settings.nextSelector&&$(slider.settings.nextSelector).append(slider.controls.next),slider.settings.prevSelector&&$(slider.settings.prevSelector).append(slider.controls.prev),slider.settings.nextSelector||slider.settings.prevSelector||(slider.controls.directionEl=$('<div class="bx-controls-direction" />'),slider.controls.directionEl.append(slider.controls.prev).append(slider.controls.next),slider.controls.el.addClass("bx-has-controls-direction").append(slider.controls.directionEl))},appendControlsAuto=function(){slider.controls.start=$('<div class="bx-controls-auto-item"><a class="bx-start" href="">'+slider.settings.startText+"</a></div>"),slider.controls.stop=$('<div class="bx-controls-auto-item"><a class="bx-stop" href="">'+slider.settings.stopText+"</a></div>"),slider.controls.autoEl=$('<div class="bx-controls-auto" />'),slider.controls.autoEl.delegate(".bx-start","click",clickStartBind),slider.controls.autoEl.delegate(".bx-stop","click",clickStopBind),slider.settings.autoControlsCombine?slider.controls.autoEl.append(slider.controls.start):slider.controls.autoEl.append(slider.controls.start).append(slider.controls.stop),slider.settings.autoControlsSelector?$(slider.settings.autoControlsSelector).html(slider.controls.autoEl):slider.controls.el.addClass("bx-has-controls-auto").append(slider.controls.autoEl),updateAutoControls(slider.settings.autoStart?"stop":"start")},appendCaptions=function(){slider.children.each(function(){var title=$(this).find("img:first").attr("title");void 0!=title&&(""+title).length&&$(this).append('<div class="bx-caption"><span>'+title+"</span></div>")})},clickNextBind=function(e){slider.settings.auto&&el.stopAuto(),el.goToNextSlide(),e.preventDefault()},clickPrevBind=function(e){slider.settings.auto&&el.stopAuto(),el.goToPrevSlide(),e.preventDefault()},clickStartBind=function(e){el.startAuto(),e.preventDefault()},clickStopBind=function(e){el.stopAuto(),e.preventDefault()},clickPagerBind=function(e){slider.settings.auto&&el.stopAuto();var pagerLink=$(e.currentTarget),pagerIndex=parseInt(pagerLink.attr("data-slide-index"));pagerIndex!=slider.active.index&&el.goToSlide(pagerIndex),e.preventDefault()},updatePagerActive=function(slideIndex){var len=slider.children.length;return"short"==slider.settings.pagerType?(slider.settings.maxSlides>1&&(len=Math.ceil(slider.children.length/slider.settings.maxSlides)),slider.pagerEl.html(slideIndex+1+slider.settings.pagerShortSeparator+len),void 0):(slider.pagerEl.find("a").removeClass("active"),slider.pagerEl.each(function(i,el){$(el).find("a").eq(slideIndex).addClass("active")}),void 0)},updateAfterSlideTransition=function(){if(slider.settings.infiniteLoop){var position="";0==slider.active.index?position=slider.children.eq(0).position():slider.active.index==getPagerQty()-1&&slider.carousel?position=slider.children.eq((getPagerQty()-1)*getMoveBy()).position():slider.active.index==slider.children.length-1&&(position=slider.children.eq(slider.children.length-1).position()),"horizontal"==slider.settings.mode?setPositionProperty(-position.left,"reset",0):"vertical"==slider.settings.mode&&setPositionProperty(-position.top,"reset",0)}slider.working=!1,slider.settings.onSlideAfter(slider.children.eq(slider.active.index),slider.oldIndex,slider.active.index)},updateAutoControls=function(state){slider.settings.autoControlsCombine?slider.controls.autoEl.html(slider.controls[state]):(slider.controls.autoEl.find("a").removeClass("active"),slider.controls.autoEl.find("a:not(.bx-"+state+")").addClass("active"))},updateDirectionControls=function(){1==getPagerQty()?(slider.controls.prev.addClass("disabled"),slider.controls.next.addClass("disabled")):!slider.settings.infiniteLoop&&slider.settings.hideControlOnEnd&&(0==slider.active.index?(slider.controls.prev.addClass("disabled"),slider.controls.next.removeClass("disabled")):slider.active.index==getPagerQty()-1?(slider.controls.next.addClass("disabled"),slider.controls.prev.removeClass("disabled")):(slider.controls.prev.removeClass("disabled"),slider.controls.next.removeClass("disabled")))},initAuto=function(){if(slider.settings.autoDelay>0){setTimeout(el.startAuto,slider.settings.autoDelay)}else el.startAuto();slider.settings.autoHover&&el.hover(function(){slider.interval&&(el.stopAuto(!0),slider.autoPaused=!0)},function(){slider.autoPaused&&(el.startAuto(!0),slider.autoPaused=null)})},initTicker=function(){var startPosition=0;if("next"==slider.settings.autoDirection)el.append(slider.children.clone().addClass("bx-clone"));else{el.prepend(slider.children.clone().addClass("bx-clone"));var position=slider.children.first().position();startPosition="horizontal"==slider.settings.mode?-position.left:-position.top}setPositionProperty(startPosition,"reset",0),slider.settings.pager=!1,slider.settings.controls=!1,slider.settings.autoControls=!1,slider.settings.tickerHover&&!slider.usingCSS&&slider.viewport.hover(function(){el.stop()},function(){var totalDimens=0;slider.children.each(function(){totalDimens+="horizontal"==slider.settings.mode?$(this).outerWidth(!0):$(this).outerHeight(!0)});var ratio=slider.settings.speed/totalDimens,property="horizontal"==slider.settings.mode?"left":"top",newSpeed=ratio*(totalDimens-Math.abs(parseInt(el.css(property))));tickerLoop(newSpeed)}),tickerLoop()},tickerLoop=function(resumeSpeed){speed=resumeSpeed?resumeSpeed:slider.settings.speed;var position={left:0,top:0},reset={left:0,top:0};"next"==slider.settings.autoDirection?position=el.find(".bx-clone").first().position():reset=slider.children.first().position();var animateProperty="horizontal"==slider.settings.mode?-position.left:-position.top,resetValue="horizontal"==slider.settings.mode?-reset.left:-reset.top,params={resetValue:resetValue};setPositionProperty(animateProperty,"ticker",speed,params)},initTouch=function(){slider.touch={start:{x:0,y:0},end:{x:0,y:0}},slider.viewport.bind("touchstart",onTouchStart)},onTouchStart=function(e){if(slider.working)e.preventDefault();else{slider.touch.originalPos=el.position();var orig=e.originalEvent;slider.touch.start.x=orig.changedTouches[0].pageX,slider.touch.start.y=orig.changedTouches[0].pageY,slider.viewport.bind("touchmove",onTouchMove),slider.viewport.bind("touchend",onTouchEnd)}},onTouchMove=function(e){var orig=e.originalEvent,xMovement=Math.abs(orig.changedTouches[0].pageX-slider.touch.start.x),yMovement=Math.abs(orig.changedTouches[0].pageY-slider.touch.start.y);if(3*xMovement>yMovement&&slider.settings.preventDefaultSwipeX?e.preventDefault():3*yMovement>xMovement&&slider.settings.preventDefaultSwipeY&&e.preventDefault(),"fade"!=slider.settings.mode&&slider.settings.oneToOneTouch){var value=0;if("horizontal"==slider.settings.mode){var change=orig.changedTouches[0].pageX-slider.touch.start.x;value=slider.touch.originalPos.left+change}else{var change=orig.changedTouches[0].pageY-slider.touch.start.y;value=slider.touch.originalPos.top+change}setPositionProperty(value,"reset",0)}},onTouchEnd=function(e){slider.viewport.unbind("touchmove",onTouchMove);var orig=e.originalEvent,value=0;if(slider.touch.end.x=orig.changedTouches[0].pageX,slider.touch.end.y=orig.changedTouches[0].pageY,"fade"==slider.settings.mode){var distance=Math.abs(slider.touch.start.x-slider.touch.end.x);distance>=slider.settings.swipeThreshold&&(slider.touch.start.x>slider.touch.end.x?el.goToNextSlide():el.goToPrevSlide(),el.stopAuto())}else{var distance=0;"horizontal"==slider.settings.mode?(distance=slider.touch.end.x-slider.touch.start.x,value=slider.touch.originalPos.left):(distance=slider.touch.end.y-slider.touch.start.y,value=slider.touch.originalPos.top),!slider.settings.infiniteLoop&&(0==slider.active.index&&distance>0||slider.active.last&&0>distance)?setPositionProperty(value,"reset",200):Math.abs(distance)>=slider.settings.swipeThreshold?(0>distance?el.goToNextSlide():el.goToPrevSlide(),el.stopAuto()):setPositionProperty(value,"reset",200)}slider.viewport.unbind("touchend",onTouchEnd)},resizeWindow=function(){var windowWidthNew=$(window).width(),windowHeightNew=$(window).height();(windowWidth!=windowWidthNew||windowHeight!=windowHeightNew)&&(windowWidth=windowWidthNew,windowHeight=windowHeightNew,el.redrawSlider())};return el.goToSlide=function(slideIndex,direction){if(!slider.working&&slider.active.index!=slideIndex)if(slider.working=!0,slider.oldIndex=slider.active.index,slider.active.index=0>slideIndex?getPagerQty()-1:slideIndex>=getPagerQty()?0:slideIndex,slider.settings.onSlideBefore(slider.children.eq(slider.active.index),slider.oldIndex,slider.active.index),"next"==direction?slider.settings.onSlideNext(slider.children.eq(slider.active.index),slider.oldIndex,slider.active.index):"prev"==direction&&slider.settings.onSlidePrev(slider.children.eq(slider.active.index),slider.oldIndex,slider.active.index),slider.active.last=slider.active.index>=getPagerQty()-1,slider.settings.pager&&updatePagerActive(slider.active.index),slider.settings.controls&&updateDirectionControls(),"fade"==slider.settings.mode)slider.settings.adaptiveHeight&&slider.viewport.height()!=getViewportHeight()&&slider.viewport.animate({height:getViewportHeight()},slider.settings.adaptiveHeightSpeed),slider.children.filter(":visible").fadeOut(slider.settings.speed).css({zIndex:0}),slider.children.eq(slider.active.index).css("zIndex",51).fadeIn(slider.settings.speed,function(){$(this).css("zIndex",50),updateAfterSlideTransition()});else{slider.settings.adaptiveHeight&&slider.viewport.height()!=getViewportHeight()&&slider.viewport.animate({height:getViewportHeight()},slider.settings.adaptiveHeightSpeed);var moveBy=0,position={left:0,top:0};if(!slider.settings.infiniteLoop&&slider.carousel&&slider.active.last)if("horizontal"==slider.settings.mode){var lastChild=slider.children.eq(slider.children.length-1);position=lastChild.position(),moveBy=slider.viewport.width()-lastChild.outerWidth()}else{var lastShowingIndex=slider.children.length-slider.settings.minSlides;position=slider.children.eq(lastShowingIndex).position()}else if(slider.carousel&&slider.active.last&&"prev"==direction){var eq=1==slider.settings.moveSlides?slider.settings.maxSlides-getMoveBy():(getPagerQty()-1)*getMoveBy()-(slider.children.length-slider.settings.maxSlides),lastChild=el.children(".bx-clone").eq(eq);position=lastChild.position()}else if("next"==direction&&0==slider.active.index)position=el.find("> .bx-clone").eq(slider.settings.maxSlides).position(),slider.active.last=!1;else if(slideIndex>=0){var requestEl=slideIndex*getMoveBy();position=slider.children.eq(requestEl).position()}if("undefined"!=typeof position){var value="horizontal"==slider.settings.mode?-(position.left-moveBy):-position.top;setPositionProperty(value,"slide",slider.settings.speed)}}},el.goToNextSlide=function(){if(slider.settings.infiniteLoop||!slider.active.last){var pagerIndex=parseInt(slider.active.index)+1;el.goToSlide(pagerIndex,"next")}},el.goToPrevSlide=function(){if(slider.settings.infiniteLoop||0!=slider.active.index){var pagerIndex=parseInt(slider.active.index)-1;el.goToSlide(pagerIndex,"prev")}},el.startAuto=function(preventControlUpdate){slider.interval||(slider.interval=setInterval(function(){"next"==slider.settings.autoDirection?el.goToNextSlide():el.goToPrevSlide()},slider.settings.pause),slider.settings.autoControls&&1!=preventControlUpdate&&updateAutoControls("stop"))},el.stopAuto=function(preventControlUpdate){slider.interval&&(clearInterval(slider.interval),slider.interval=null,slider.settings.autoControls&&1!=preventControlUpdate&&updateAutoControls("start"))},el.getCurrentSlide=function(){return slider.active.index},el.getSlideCount=function(){return slider.children.length},el.redrawSlider=function(){slider.children.add(el.find(".bx-clone")).outerWidth(getSlideWidth()),slider.viewport.css("height",getViewportHeight()),slider.settings.ticker||setSlidePosition(),slider.active.last&&(slider.active.index=getPagerQty()-1),slider.active.index>=getPagerQty()&&(slider.active.last=!0),slider.settings.pager&&!slider.settings.pagerCustom&&(populatePager(),updatePagerActive(slider.active.index))},el.destroySlider=function(){slider.initialized&&(slider.initialized=!1,$(".bx-clone",this).remove(),slider.children.each(function(){void 0!=$(this).data("origStyle")?$(this).attr("style",$(this).data("origStyle")):$(this).removeAttr("style")}),void 0!=$(this).data("origStyle")?this.attr("style",$(this).data("origStyle")):$(this).removeAttr("style"),$(this).unwrap().unwrap(),slider.controls.el&&slider.controls.el.remove(),slider.controls.next&&slider.controls.next.remove(),slider.controls.prev&&slider.controls.prev.remove(),slider.pagerEl&&slider.pagerEl.remove(),$(".bx-caption",this).remove(),slider.controls.autoEl&&slider.controls.autoEl.remove(),clearInterval(slider.interval),slider.settings.responsive&&$(window).unbind("resize",resizeWindow))},el.reloadSlider=function(settings){void 0!=settings&&(options=settings),el.destroySlider(),init()},init(),this}}(jQuery),function(window,document,$,undefined){"use strict";var H=$("html"),W=$(window),D=$(document),F=$.fancybox=function(){F.open.apply(this,arguments)},IE=navigator.userAgent.match(/msie/i),didUpdate=null,isTouch=document.createTouch!==undefined,isQuery=function(obj){return obj&&obj.hasOwnProperty&&obj instanceof $},isString=function(str){return str&&"string"===$.type(str)},isPercentage=function(str){return isString(str)&&str.indexOf("%")>0},isScrollable=function(el){return el&&!(el.style.overflow&&"hidden"===el.style.overflow)&&(el.clientWidth&&el.scrollWidth>el.clientWidth||el.clientHeight&&el.scrollHeight>el.clientHeight)},getScalar=function(orig,dim){var value=parseInt(orig,10)||0;return dim&&isPercentage(orig)&&(value=F.getViewport()[dim]/100*value),Math.ceil(value)},getValue=function(value,dim){return getScalar(value,dim)+"px"};$.extend(F,{version:"2.1.5",defaults:{padding:15,margin:20,width:800,height:600,minWidth:100,minHeight:100,maxWidth:9999,maxHeight:9999,pixelRatio:1,autoSize:!0,autoHeight:!1,autoWidth:!1,autoResize:!0,autoCenter:!isTouch,fitToView:!0,aspectRatio:!1,topRatio:.5,leftRatio:.5,scrolling:"auto",wrapCSS:"",arrows:!0,closeBtn:!0,closeClick:!1,nextClick:!1,mouseWheel:!0,autoPlay:!1,playSpeed:3e3,preload:3,modal:!1,loop:!0,ajax:{dataType:"html",headers:{"X-fancyBox":!0}},iframe:{scrolling:"auto",preload:!0},swf:{wmode:"transparent",allowfullscreen:"true",allowscriptaccess:"always"},keys:{next:{13:"left",34:"up",39:"left",40:"up"},prev:{8:"right",33:"down",37:"right",38:"down"},close:[27],play:[32],toggle:[70]},direction:{next:"left",prev:"right"},scrollOutside:!0,index:0,type:null,href:null,content:null,title:null,tpl:{wrap:'<div class="fancybox-wrap" tabIndex="-1"><div class="fancybox-skin"><div class="fancybox-outer"><div class="fancybox-inner"></div></div></div></div>',image:'<img class="fancybox-image" src="{href}" alt="" />',iframe:'<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" frameborder="0" vspace="0" hspace="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen'+(IE?' allowtransparency="true"':"")+"></iframe>",error:'<p class="fancybox-error">The requested content cannot be loaded.<br/>Please try again later.</p>',closeBtn:'<a title="Close" class="fancybox-item fancybox-close" href="javascript:;"></a>',next:'<a title="Next" class="fancybox-nav fancybox-next" href="javascript:;"><span></span></a>',prev:'<a title="Previous" class="fancybox-nav fancybox-prev" href="javascript:;"><span></span></a>'},openEffect:"fade",openSpeed:250,openEasing:"swing",openOpacity:!0,openMethod:"zoomIn",closeEffect:"fade",closeSpeed:250,closeEasing:"swing",closeOpacity:!0,closeMethod:"zoomOut",nextEffect:"elastic",nextSpeed:250,nextEasing:"swing",nextMethod:"changeIn",prevEffect:"elastic",prevSpeed:250,prevEasing:"swing",prevMethod:"changeOut",helpers:{overlay:!0,title:!0},onCancel:$.noop,beforeLoad:$.noop,afterLoad:$.noop,beforeShow:$.noop,afterShow:$.noop,beforeChange:$.noop,beforeClose:$.noop,afterClose:$.noop},group:{},opts:{},previous:null,coming:null,current:null,isActive:!1,isOpen:!1,isOpened:!1,wrap:null,skin:null,outer:null,inner:null,player:{timer:null,isActive:!1},ajaxLoad:null,imgPreload:null,transitions:{},helpers:{},open:function(group,opts){return group&&($.isPlainObject(opts)||(opts={}),!1!==F.close(!0))?($.isArray(group)||(group=isQuery(group)?$(group).get():[group]),$.each(group,function(i,element){var href,title,content,type,rez,hrefParts,selector,obj={};"object"===$.type(element)&&(element.nodeType&&(element=$(element)),isQuery(element)?(obj={href:element.data("fancybox-href")||element.attr("href"),title:element.data("fancybox-title")||element.attr("title"),isDom:!0,element:element},$.metadata&&$.extend(!0,obj,element.metadata())):obj=element),href=opts.href||obj.href||(isString(element)?element:null),title=opts.title!==undefined?opts.title:obj.title||"",content=opts.content||obj.content,type=content?"html":opts.type||obj.type,!type&&obj.isDom&&(type=element.data("fancybox-type"),type||(rez=element.prop("class").match(/fancybox\.(\w+)/),type=rez?rez[1]:null)),isString(href)&&(type||(F.isImage(href)?type="image":F.isSWF(href)?type="swf":"#"===href.charAt(0)?type="inline":isString(element)&&(type="html",content=element)),"ajax"===type&&(hrefParts=href.split(/\s+/,2),href=hrefParts.shift(),selector=hrefParts.shift())),content||("inline"===type?href?content=$(isString(href)?href.replace(/.*(?=#[^\s]+$)/,""):href):obj.isDom&&(content=element):"html"===type?content=href:type||href||!obj.isDom||(type="inline",content=element)),$.extend(obj,{href:href,type:type,content:content,title:title,selector:selector}),group[i]=obj
 
+
}),F.opts=$.extend(!0,{},F.defaults,opts),opts.keys!==undefined&&(F.opts.keys=opts.keys?$.extend({},F.defaults.keys,opts.keys):!1),F.group=group,F._start(F.opts.index)):void 0},cancel:function(){var coming=F.coming;coming&&!1!==F.trigger("onCancel")&&(F.hideLoading(),F.ajaxLoad&&F.ajaxLoad.abort(),F.ajaxLoad=null,F.imgPreload&&(F.imgPreload.onload=F.imgPreload.onerror=null),coming.wrap&&coming.wrap.stop(!0,!0).trigger("onReset").remove(),F.coming=null,F.current||F._afterZoomOut(coming))},close:function(event){F.cancel(),!1!==F.trigger("beforeClose")&&(F.unbindEvents(),F.isActive&&(F.isOpen&&event!==!0?(F.isOpen=F.isOpened=!1,F.isClosing=!0,$(".fancybox-item, .fancybox-nav").remove(),F.wrap.stop(!0,!0).removeClass("fancybox-opened"),F.transitions[F.current.closeMethod]()):($(".fancybox-wrap").stop(!0).trigger("onReset").remove(),F._afterZoomOut())))},play:function(action){var clear=function(){clearTimeout(F.player.timer)},set=function(){clear(),F.current&&F.player.isActive&&(F.player.timer=setTimeout(F.next,F.current.playSpeed))},stop=function(){clear(),D.unbind(".player"),F.player.isActive=!1,F.trigger("onPlayEnd")},start=function(){F.current&&(F.current.loop||F.current.index<F.group.length-1)&&(F.player.isActive=!0,D.bind({"onCancel.player beforeClose.player":stop,"onUpdate.player":set,"beforeLoad.player":clear}),set(),F.trigger("onPlayStart"))};action===!0||!F.player.isActive&&action!==!1?start():stop()},next:function(direction){var current=F.current;current&&(isString(direction)||(direction=current.direction.next),F.jumpto(current.index+1,direction,"next"))},prev:function(direction){var current=F.current;current&&(isString(direction)||(direction=current.direction.prev),F.jumpto(current.index-1,direction,"prev"))},jumpto:function(index,direction,router){var current=F.current;current&&(index=getScalar(index),F.direction=direction||current.direction[index>=current.index?"next":"prev"],F.router=router||"jumpto",current.loop&&(0>index&&(index=current.group.length+index%current.group.length),index%=current.group.length),current.group[index]!==undefined&&(F.cancel(),F._start(index)))},reposition:function(e,onlyAbsolute){var pos,current=F.current,wrap=current?current.wrap:null;wrap&&(pos=F._getPosition(onlyAbsolute),e&&"scroll"===e.type?(delete pos.position,wrap.stop(!0,!0).animate(pos,200)):(wrap.css(pos),current.pos=$.extend({},current.dim,pos)))},update:function(e){var type=e&&e.type,anyway=!type||"orientationchange"===type;anyway&&(clearTimeout(didUpdate),didUpdate=null),F.isOpen&&!didUpdate&&(didUpdate=setTimeout(function(){var current=F.current;current&&!F.isClosing&&(F.wrap.removeClass("fancybox-tmp"),(anyway||"load"===type||"resize"===type&&current.autoResize)&&F._setDimension(),"scroll"===type&&current.canShrink||F.reposition(e),F.trigger("onUpdate"),didUpdate=null)},anyway&&!isTouch?0:300))},toggle:function(action){F.isOpen&&(F.current.fitToView="boolean"===$.type(action)?action:!F.current.fitToView,isTouch&&(F.wrap.removeAttr("style").addClass("fancybox-tmp"),F.trigger("onUpdate")),F.update())},hideLoading:function(){D.unbind(".loading"),$("#fancybox-loading").remove()},showLoading:function(){var el,viewport;F.hideLoading(),el=$('<div id="fancybox-loading"><div></div></div>').click(F.cancel).appendTo("body"),D.bind("keydown.loading",function(e){27===(e.which||e.keyCode)&&(e.preventDefault(),F.cancel())}),F.defaults.fixed||(viewport=F.getViewport(),el.css({position:"absolute",top:.5*viewport.h+viewport.y,left:.5*viewport.w+viewport.x}))},getViewport:function(){var locked=F.current&&F.current.locked||!1,rez={x:W.scrollLeft(),y:W.scrollTop()};return locked?(rez.w=locked[0].clientWidth,rez.h=locked[0].clientHeight):(rez.w=isTouch&&window.innerWidth?window.innerWidth:W.width(),rez.h=isTouch&&window.innerHeight?window.innerHeight:W.height()),rez},unbindEvents:function(){F.wrap&&isQuery(F.wrap)&&F.wrap.unbind(".fb"),D.unbind(".fb"),W.unbind(".fb")},bindEvents:function(){var keys,current=F.current;current&&(W.bind("orientationchange.fb"+(isTouch?"":" resize.fb")+(current.autoCenter&&!current.locked?" scroll.fb":""),F.update),keys=current.keys,keys&&D.bind("keydown.fb",function(e){var code=e.which||e.keyCode,target=e.target||e.srcElement;return 27===code&&F.coming?!1:(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey||target&&(target.type||$(target).is("[contenteditable]"))||$.each(keys,function(i,val){return current.group.length>1&&val[code]!==undefined?(F[i](val[code]),e.preventDefault(),!1):$.inArray(code,val)>-1?(F[i](),e.preventDefault(),!1):void 0}),void 0)}),$.fn.mousewheel&&current.mouseWheel&&F.wrap.bind("mousewheel.fb",function(e,delta,deltaX,deltaY){for(var target=e.target||null,parent=$(target),canScroll=!1;parent.length&&!(canScroll||parent.is(".fancybox-skin")||parent.is(".fancybox-wrap"));)canScroll=isScrollable(parent[0]),parent=$(parent).parent();0===delta||canScroll||F.group.length>1&&!current.canShrink&&(deltaY>0||deltaX>0?F.prev(deltaY>0?"down":"left"):(0>deltaY||0>deltaX)&&F.next(0>deltaY?"up":"right"),e.preventDefault())}))},trigger:function(event,o){var ret,obj=o||F.coming||F.current;if(obj){if($.isFunction(obj[event])&&(ret=obj[event].apply(obj,Array.prototype.slice.call(arguments,1))),ret===!1)return!1;obj.helpers&&$.each(obj.helpers,function(helper,opts){opts&&F.helpers[helper]&&$.isFunction(F.helpers[helper][event])&&F.helpers[helper][event]($.extend(!0,{},F.helpers[helper].defaults,opts),obj)}),D.trigger(event)}},isImage:function(str){return isString(str)&&str.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i)},isSWF:function(str){return isString(str)&&str.match(/\.(swf)((\?|#).*)?$/i)},_start:function(index){var obj,href,type,margin,padding,coming={};if(index=getScalar(index),obj=F.group[index]||null,!obj)return!1;if(coming=$.extend(!0,{},F.opts,obj),margin=coming.margin,padding=coming.padding,"number"===$.type(margin)&&(coming.margin=[margin,margin,margin,margin]),"number"===$.type(padding)&&(coming.padding=[padding,padding,padding,padding]),coming.modal&&$.extend(!0,coming,{closeBtn:!1,closeClick:!1,nextClick:!1,arrows:!1,mouseWheel:!1,keys:null,helpers:{overlay:{closeClick:!1}}}),coming.autoSize&&(coming.autoWidth=coming.autoHeight=!0),"auto"===coming.width&&(coming.autoWidth=!0),"auto"===coming.height&&(coming.autoHeight=!0),coming.group=F.group,coming.index=index,F.coming=coming,!1===F.trigger("beforeLoad"))return F.coming=null,void 0;if(type=coming.type,href=coming.href,!type)return F.coming=null,F.current&&F.router&&"jumpto"!==F.router?(F.current.index=index,F[F.router](F.direction)):!1;if(F.isActive=!0,("image"===type||"swf"===type)&&(coming.autoHeight=coming.autoWidth=!1,coming.scrolling="visible"),"image"===type&&(coming.aspectRatio=!0),"iframe"===type&&isTouch&&(coming.scrolling="scroll"),coming.wrap=$(coming.tpl.wrap).addClass("fancybox-"+(isTouch?"mobile":"desktop")+" fancybox-type-"+type+" fancybox-tmp "+coming.wrapCSS).appendTo(coming.parent||"body"),$.extend(coming,{skin:$(".fancybox-skin",coming.wrap),outer:$(".fancybox-outer",coming.wrap),inner:$(".fancybox-inner",coming.wrap)}),$.each(["Top","Right","Bottom","Left"],function(i,v){coming.skin.css("padding"+v,getValue(coming.padding[i]))}),F.trigger("onReady"),"inline"===type||"html"===type){if(!coming.content||!coming.content.length)return F._error("content")}else if(!href)return F._error("href");"image"===type?F._loadImage():"ajax"===type?F._loadAjax():"iframe"===type?F._loadIframe():F._afterLoad()},_error:function(type){$.extend(F.coming,{type:"html",autoWidth:!0,autoHeight:!0,minWidth:0,minHeight:0,scrolling:"no",hasError:type,content:F.coming.tpl.error}),F._afterLoad()},_loadImage:function(){var img=F.imgPreload=new Image;img.onload=function(){this.onload=this.onerror=null,F.coming.width=this.width/F.opts.pixelRatio,F.coming.height=this.height/F.opts.pixelRatio,F._afterLoad()},img.onerror=function(){this.onload=this.onerror=null,F._error("image")},img.src=F.coming.href,img.complete!==!0&&F.showLoading()},_loadAjax:function(){var coming=F.coming;F.showLoading(),F.ajaxLoad=$.ajax($.extend({},coming.ajax,{url:coming.href,error:function(jqXHR,textStatus){F.coming&&"abort"!==textStatus?F._error("ajax",jqXHR):F.hideLoading()},success:function(data,textStatus){"success"===textStatus&&(coming.content=data,F._afterLoad())}}))},_loadIframe:function(){var coming=F.coming,iframe=$(coming.tpl.iframe.replace(/\{rnd\}/g,(new Date).getTime())).attr("scrolling",isTouch?"auto":coming.iframe.scrolling).attr("src",coming.href);$(coming.wrap).bind("onReset",function(){try{$(this).find("iframe").hide().attr("src","//about:blank").end().empty()}catch(e){}}),coming.iframe.preload&&(F.showLoading(),iframe.one("load",function(){$(this).data("ready",1),isTouch||$(this).bind("load.fb",F.update),$(this).parents(".fancybox-wrap").width("100%").removeClass("fancybox-tmp").show(),F._afterLoad()})),coming.content=iframe.appendTo(coming.inner),coming.iframe.preload||F._afterLoad()},_preloadImages:function(){var item,i,group=F.group,current=F.current,len=group.length,cnt=current.preload?Math.min(current.preload,len-1):0;for(i=1;cnt>=i;i+=1)item=group[(current.index+i)%len],"image"===item.type&&item.href&&((new Image).src=item.href)},_afterLoad:function(){var current,content,type,scrolling,href,embed,coming=F.coming,previous=F.current,placeholder="fancybox-placeholder";if(F.hideLoading(),coming&&F.isActive!==!1){if(!1===F.trigger("afterLoad",coming,previous))return coming.wrap.stop(!0).trigger("onReset").remove(),F.coming=null,void 0;switch(previous&&(F.trigger("beforeChange",previous),previous.wrap.stop(!0).removeClass("fancybox-opened").find(".fancybox-item, .fancybox-nav").remove()),F.unbindEvents(),current=coming,content=coming.content,type=coming.type,scrolling=coming.scrolling,$.extend(F,{wrap:current.wrap,skin:current.skin,outer:current.outer,inner:current.inner,current:current,previous:previous}),href=current.href,type){case"inline":case"ajax":case"html":current.selector?content=$("<div>").html(content).find(current.selector):isQuery(content)&&(content.data(placeholder)||content.data(placeholder,$('<div class="'+placeholder+'"></div>').insertAfter(content).hide()),content=content.show().detach(),current.wrap.bind("onReset",function(){$(this).find(content).length&&content.hide().replaceAll(content.data(placeholder)).data(placeholder,!1)}));break;case"image":content=current.tpl.image.replace("{href}",href);break;case"swf":content='<object id="fancybox-swf" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%"><param name="movie" value="'+href+'"></param>',embed="",$.each(current.swf,function(name,val){content+='<param name="'+name+'" value="'+val+'"></param>',embed+=" "+name+'="'+val+'"'}),content+='<embed src="'+href+'" type="application/x-shockwave-flash" width="100%" height="100%"'+embed+"></embed></object>"}isQuery(content)&&content.parent().is(current.inner)||current.inner.append(content),F.trigger("beforeShow"),current.inner.css("overflow","yes"===scrolling?"scroll":"no"===scrolling?"hidden":scrolling),F._setDimension(),F.reposition(),F.isOpen=!1,F.coming=null,F.bindEvents(),F.isOpened?previous.prevMethod&&F.transitions[previous.prevMethod]():$(".fancybox-wrap").not(current.wrap).stop(!0).trigger("onReset").remove(),F.transitions[F.isOpened?current.nextMethod:current.openMethod](),F._preloadImages()}},_setDimension:function(){var wPadding,hPadding,wSpace,hSpace,origWidth,origHeight,origMaxWidth,origMaxHeight,ratio,width_,height_,maxWidth_,maxHeight_,iframe,body,viewport=F.getViewport(),steps=0,canShrink=!1,canExpand=!1,wrap=F.wrap,skin=F.skin,inner=F.inner,current=F.current,width=current.width,height=current.height,minWidth=current.minWidth,minHeight=current.minHeight,maxWidth=current.maxWidth,maxHeight=current.maxHeight,scrolling=current.scrolling,scrollOut=current.scrollOutside?current.scrollbarWidth:0,margin=current.margin,wMargin=getScalar(margin[1]+margin[3]),hMargin=getScalar(margin[0]+margin[2]);if(wrap.add(skin).add(inner).width("auto").height("auto").removeClass("fancybox-tmp"),wPadding=getScalar(skin.outerWidth(!0)-skin.width()),hPadding=getScalar(skin.outerHeight(!0)-skin.height()),wSpace=wMargin+wPadding,hSpace=hMargin+hPadding,origWidth=isPercentage(width)?(viewport.w-wSpace)*getScalar(width)/100:width,origHeight=isPercentage(height)?(viewport.h-hSpace)*getScalar(height)/100:height,"iframe"===current.type){if(iframe=current.content,current.autoHeight&&1===iframe.data("ready"))try{iframe[0].contentWindow.document.location&&(inner.width(origWidth).height(9999),body=iframe.contents().find("body"),scrollOut&&body.css("overflow-x","hidden"),origHeight=body.outerHeight(!0))}catch(e){}}else(current.autoWidth||current.autoHeight)&&(inner.addClass("fancybox-tmp"),current.autoWidth||inner.width(origWidth),current.autoHeight||inner.height(origHeight),current.autoWidth&&(origWidth=inner.width()),current.autoHeight&&(origHeight=inner.height()),inner.removeClass("fancybox-tmp"));if(width=getScalar(origWidth),height=getScalar(origHeight),ratio=origWidth/origHeight,minWidth=getScalar(isPercentage(minWidth)?getScalar(minWidth,"w")-wSpace:minWidth),maxWidth=getScalar(isPercentage(maxWidth)?getScalar(maxWidth,"w")-wSpace:maxWidth),minHeight=getScalar(isPercentage(minHeight)?getScalar(minHeight,"h")-hSpace:minHeight),maxHeight=getScalar(isPercentage(maxHeight)?getScalar(maxHeight,"h")-hSpace:maxHeight),origMaxWidth=maxWidth,origMaxHeight=maxHeight,current.fitToView&&(maxWidth=Math.min(viewport.w-wSpace,maxWidth),maxHeight=Math.min(viewport.h-hSpace,maxHeight)),maxWidth_=viewport.w-wMargin,maxHeight_=viewport.h-hMargin,current.aspectRatio?(width>maxWidth&&(width=maxWidth,height=getScalar(width/ratio)),height>maxHeight&&(height=maxHeight,width=getScalar(height*ratio)),minWidth>width&&(width=minWidth,height=getScalar(width/ratio)),minHeight>height&&(height=minHeight,width=getScalar(height*ratio))):(width=Math.max(minWidth,Math.min(width,maxWidth)),current.autoHeight&&"iframe"!==current.type&&(inner.width(width),height=inner.height()),height=Math.max(minHeight,Math.min(height,maxHeight))),current.fitToView)if(inner.width(width).height(height),wrap.width(width+wPadding),width_=wrap.width(),height_=wrap.height(),current.aspectRatio)for(;(width_>maxWidth_||height_>maxHeight_)&&width>minWidth&&height>minHeight&&!(steps++>19);)height=Math.max(minHeight,Math.min(maxHeight,height-10)),width=getScalar(height*ratio),minWidth>width&&(width=minWidth,height=getScalar(width/ratio)),width>maxWidth&&(width=maxWidth,height=getScalar(width/ratio)),inner.width(width).height(height),wrap.width(width+wPadding),width_=wrap.width(),height_=wrap.height();else width=Math.max(minWidth,Math.min(width,width-(width_-maxWidth_))),height=Math.max(minHeight,Math.min(height,height-(height_-maxHeight_)));scrollOut&&"auto"===scrolling&&origHeight>height&&maxWidth_>width+wPadding+scrollOut&&(width+=scrollOut),inner.width(width).height(height),wrap.width(width+wPadding),width_=wrap.width(),height_=wrap.height(),canShrink=(width_>maxWidth_||height_>maxHeight_)&&width>minWidth&&height>minHeight,canExpand=current.aspectRatio?origMaxWidth>width&&origMaxHeight>height&&origWidth>width&&origHeight>height:(origMaxWidth>width||origMaxHeight>height)&&(origWidth>width||origHeight>height),$.extend(current,{dim:{width:getValue(width_),height:getValue(height_)},origWidth:origWidth,origHeight:origHeight,canShrink:canShrink,canExpand:canExpand,wPadding:wPadding,hPadding:hPadding,wrapSpace:height_-skin.outerHeight(!0),skinSpace:skin.height()-height}),!iframe&&current.autoHeight&&height>minHeight&&maxHeight>height&&!canExpand&&inner.height("auto")},_getPosition:function(onlyAbsolute){var current=F.current,viewport=F.getViewport(),margin=current.margin,width=F.wrap.width()+margin[1]+margin[3],height=F.wrap.height()+margin[0]+margin[2],rez={position:"absolute",top:margin[0],left:margin[3]};return current.autoCenter&&current.fixed&&!onlyAbsolute&&height<=viewport.h&&width<=viewport.w?rez.position="fixed":current.locked||(rez.top+=viewport.y,rez.left+=viewport.x),rez.top=getValue(Math.max(rez.top,rez.top+(viewport.h-height)*current.topRatio)),rez.left=getValue(Math.max(rez.left,rez.left+(viewport.w-width)*current.leftRatio)),rez},_afterZoomIn:function(){var current=F.current;current&&(F.isOpen=F.isOpened=!0,F.wrap.css("overflow","visible").addClass("fancybox-opened"),F.update(),(current.closeClick||current.nextClick&&F.group.length>1)&&F.inner.css("cursor","pointer").bind("click.fb",function(e){$(e.target).is("a")||$(e.target).parent().is("a")||(e.preventDefault(),F[current.closeClick?"close":"next"]())}),current.closeBtn&&$(current.tpl.closeBtn).appendTo(F.skin).bind("click.fb",function(e){e.preventDefault(),F.close()}),current.arrows&&F.group.length>1&&((current.loop||current.index>0)&&$(current.tpl.prev).appendTo(F.outer).bind("click.fb",F.prev),(current.loop||current.index<F.group.length-1)&&$(current.tpl.next).appendTo(F.outer).bind("click.fb",F.next)),F.trigger("afterShow"),current.loop||current.index!==current.group.length-1?F.opts.autoPlay&&!F.player.isActive&&(F.opts.autoPlay=!1,F.play()):F.play(!1))},_afterZoomOut:function(obj){obj=obj||F.current,$(".fancybox-wrap").trigger("onReset").remove(),$.extend(F,{group:{},opts:{},router:!1,current:null,isActive:!1,isOpened:!1,isOpen:!1,isClosing:!1,wrap:null,skin:null,outer:null,inner:null}),F.trigger("afterClose",obj)}}),F.transitions={getOrigPosition:function(){var current=F.current,element=current.element,orig=current.orig,pos={},width=50,height=50,hPadding=current.hPadding,wPadding=current.wPadding,viewport=F.getViewport();return!orig&&current.isDom&&element.is(":visible")&&(orig=element.find("img:first"),orig.length||(orig=element)),isQuery(orig)?(pos=orig.offset(),orig.is("img")&&(width=orig.outerWidth(),height=orig.outerHeight())):(pos.top=viewport.y+(viewport.h-height)*current.topRatio,pos.left=viewport.x+(viewport.w-width)*current.leftRatio),("fixed"===F.wrap.css("position")||current.locked)&&(pos.top-=viewport.y,pos.left-=viewport.x),pos={top:getValue(pos.top-hPadding*current.topRatio),left:getValue(pos.left-wPadding*current.leftRatio),width:getValue(width+wPadding),height:getValue(height+hPadding)}},step:function(now,fx){var ratio,padding,value,prop=fx.prop,current=F.current,wrapSpace=current.wrapSpace,skinSpace=current.skinSpace;("width"===prop||"height"===prop)&&(ratio=fx.end===fx.start?1:(now-fx.start)/(fx.end-fx.start),F.isClosing&&(ratio=1-ratio),padding="width"===prop?current.wPadding:current.hPadding,value=now-padding,F.skin[prop](getScalar("width"===prop?value:value-wrapSpace*ratio)),F.inner[prop](getScalar("width"===prop?value:value-wrapSpace*ratio-skinSpace*ratio)))},zoomIn:function(){var current=F.current,startPos=current.pos,effect=current.openEffect,elastic="elastic"===effect,endPos=$.extend({opacity:1},startPos);delete endPos.position,elastic?(startPos=this.getOrigPosition(),current.openOpacity&&(startPos.opacity=.1)):"fade"===effect&&(startPos.opacity=.1),F.wrap.css(startPos).animate(endPos,{duration:"none"===effect?0:current.openSpeed,easing:current.openEasing,step:elastic?this.step:null,complete:F._afterZoomIn})},zoomOut:function(){var current=F.current,effect=current.closeEffect,elastic="elastic"===effect,endPos={opacity:.1};elastic&&(endPos=this.getOrigPosition(),current.closeOpacity&&(endPos.opacity=.1)),F.wrap.animate(endPos,{duration:"none"===effect?0:current.closeSpeed,easing:current.closeEasing,step:elastic?this.step:null,complete:F._afterZoomOut})},changeIn:function(){var field,current=F.current,effect=current.nextEffect,startPos=current.pos,endPos={opacity:1},direction=F.direction,distance=200;startPos.opacity=.1,"elastic"===effect&&(field="down"===direction||"up"===direction?"top":"left","down"===direction||"right"===direction?(startPos[field]=getValue(getScalar(startPos[field])-distance),endPos[field]="+="+distance+"px"):(startPos[field]=getValue(getScalar(startPos[field])+distance),endPos[field]="-="+distance+"px")),"none"===effect?F._afterZoomIn():F.wrap.css(startPos).animate(endPos,{duration:current.nextSpeed,easing:current.nextEasing,complete:F._afterZoomIn})},changeOut:function(){var previous=F.previous,effect=previous.prevEffect,endPos={opacity:.1},direction=F.direction,distance=200;"elastic"===effect&&(endPos["down"===direction||"up"===direction?"top":"left"]=("up"===direction||"left"===direction?"-":"+")+"="+distance+"px"),previous.wrap.animate(endPos,{duration:"none"===effect?0:previous.prevSpeed,easing:previous.prevEasing,complete:function(){$(this).trigger("onReset").remove()}})}},F.helpers.overlay={defaults:{closeClick:!0,speedOut:200,showEarly:!0,css:{},locked:!isTouch,fixed:!0},overlay:null,fixed:!1,el:$("html"),create:function(opts){opts=$.extend({},this.defaults,opts),this.overlay&&this.close(),this.overlay=$('<div class="fancybox-overlay"></div>').appendTo(F.coming?F.coming.parent:opts.parent),this.fixed=!1,opts.fixed&&F.defaults.fixed&&(this.overlay.addClass("fancybox-overlay-fixed"),this.fixed=!0)},open:function(opts){var that=this;opts=$.extend({},this.defaults,opts),this.overlay?this.overlay.unbind(".overlay").width("auto").height("auto"):this.create(opts),this.fixed||(W.bind("resize.overlay",$.proxy(this.update,this)),this.update()),opts.closeClick&&this.overlay.bind("click.overlay",function(e){return $(e.target).hasClass("fancybox-overlay")?(F.isActive?F.close():that.close(),!1):void 0}),this.overlay.css(opts.css).show()},close:function(){var scrollV,scrollH;W.unbind("resize.overlay"),this.el.hasClass("fancybox-lock")&&($(".fancybox-margin").removeClass("fancybox-margin"),scrollV=W.scrollTop(),scrollH=W.scrollLeft(),this.el.removeClass("fancybox-lock"),W.scrollTop(scrollV).scrollLeft(scrollH)),$(".fancybox-overlay").remove().hide(),$.extend(this,{overlay:null,fixed:!1})},update:function(){var offsetWidth,width="100%";this.overlay.width(width).height("100%"),IE?(offsetWidth=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth),D.width()>offsetWidth&&(width=D.width())):D.width()>W.width()&&(width=D.width()),this.overlay.width(width).height(D.height())},onReady:function(opts,obj){var overlay=this.overlay;$(".fancybox-overlay").stop(!0,!0),overlay||this.create(opts),opts.locked&&this.fixed&&obj.fixed&&(overlay||(this.margin=D.height()>W.height()?$("html").css("margin-right").replace("px",""):!1),obj.locked=this.overlay.append(obj.wrap),obj.fixed=!1),opts.showEarly===!0&&this.beforeShow.apply(this,arguments)},beforeShow:function(opts,obj){var scrollV,scrollH;obj.locked&&(this.margin!==!1&&($("*").filter(function(){return"fixed"===$(this).css("position")&&!$(this).hasClass("fancybox-overlay")&&!$(this).hasClass("fancybox-wrap")}).addClass("fancybox-margin"),this.el.addClass("fancybox-margin")),scrollV=W.scrollTop(),scrollH=W.scrollLeft(),this.el.addClass("fancybox-lock"),W.scrollTop(scrollV).scrollLeft(scrollH)),this.open(opts)},onUpdate:function(){this.fixed||this.update()},afterClose:function(opts){this.overlay&&!F.coming&&this.overlay.fadeOut(opts.speedOut,$.proxy(this.close,this))}},F.helpers.title={defaults:{type:"float",position:"bottom"},beforeShow:function(opts){var title,target,current=F.current,text=current.title,type=opts.type;if($.isFunction(text)&&(text=text.call(current.element,current)),isString(text)&&""!==$.trim(text)){switch(title=$('<div class="fancybox-title fancybox-title-'+type+'-wrap">'+text+"</div>"),type){case"inside":target=F.skin;break;case"outside":target=F.wrap;break;case"over":target=F.inner;break;default:target=F.skin,title.appendTo("body"),IE&&title.width(title.width()),title.wrapInner('<span class="child"></span>'),F.current.margin[2]+=Math.abs(getScalar(title.css("margin-bottom")))}title["top"===opts.position?"prependTo":"appendTo"](target)}}},$.fn.fancybox=function(options){var index,that=$(this),selector=this.selector||"",run=function(e){var relType,relVal,what=$(this).blur(),idx=index;e.ctrlKey||e.altKey||e.shiftKey||e.metaKey||what.is(".fancybox-wrap")||(relType=options.groupAttr||"data-fancybox-group",relVal=what.attr(relType),relVal||(relType="rel",relVal=what.get(0)[relType]),relVal&&""!==relVal&&"nofollow"!==relVal&&(what=selector.length?$(selector):that,what=what.filter("["+relType+'="'+relVal+'"]'),idx=what.index(this)),options.index=idx,F.open(what,options)!==!1&&e.preventDefault())};return options=options||{},index=options.index||0,selector&&options.live!==!1?D.undelegate(selector,"click.fb-start").delegate(selector+":not('.fancybox-item, .fancybox-nav')","click.fb-start",run):that.unbind("click.fb-start").bind("click.fb-start",run),this.filter("[data-fancybox-start=1]").trigger("click"),this},D.ready(function(){var w1,w2;$.scrollbarWidth===undefined&&($.scrollbarWidth=function(){var parent=$('<div style="width:50px;height:50px;overflow:auto"><div/></div>').appendTo("body"),child=parent.children(),width=child.innerWidth()-child.height(99).innerWidth();return parent.remove(),width}),$.support.fixedPosition===undefined&&($.support.fixedPosition=function(){var elem=$('<div style="position:fixed;top:20px;"></div>').appendTo("body"),fixed=20===elem[0].offsetTop||15===elem[0].offsetTop;return elem.remove(),fixed}()),$.extend(F.defaults,{scrollbarWidth:$.scrollbarWidth(),fixed:$.support.fixedPosition,parent:$("body")}),w1=$(window).width(),H.addClass("fancybox-lock-test"),w2=$(window).width(),H.removeClass("fancybox-lock-test"),$("<style type='text/css'>.fancybox-margin{margin-right:"+(w2-w1)+"px;}</style>").appendTo("head")})}(window,document,jQuery),function($){$.flexslider=function(el,options){var slider=$(el);slider.vars=$.extend({},$.flexslider.defaults,options);var watchedEventClearTimer,namespace=slider.vars.namespace,msGesture=window.navigator&&window.navigator.msPointerEnabled&&window.MSGesture,touch=("ontouchstart"in window||msGesture||window.DocumentTouch&&document instanceof DocumentTouch)&&slider.vars.touch,eventType="click touchend MSPointerUp",watchedEvent="",vertical="vertical"===slider.vars.direction,reverse=slider.vars.reverse,carousel=slider.vars.itemWidth>0,fade="fade"===slider.vars.animation,asNav=""!==slider.vars.asNavFor,methods={},focused=!0;$.data(el,"flexslider",slider),methods={init:function(){slider.animating=!1,slider.currentSlide=parseInt(slider.vars.startAt?slider.vars.startAt:0),isNaN(slider.currentSlide)&&(slider.currentSlide=0),slider.animatingTo=slider.currentSlide,slider.atEnd=0===slider.currentSlide||slider.currentSlide===slider.last,slider.containerSelector=slider.vars.selector.substr(0,slider.vars.selector.search(" ")),slider.slides=$(slider.vars.selector,slider),slider.container=$(slider.containerSelector,slider),slider.count=slider.slides.length,slider.syncExists=$(slider.vars.sync).length>0,"slide"===slider.vars.animation&&(slider.vars.animation="swing"),slider.prop=vertical?"top":"marginLeft",slider.args={},slider.manualPause=!1,slider.stopped=!1,slider.started=!1,slider.startTimeout=null,slider.transitions=!slider.vars.video&&!fade&&slider.vars.useCSS&&function(){var obj=document.createElement("div"),props=["perspectiveProperty","WebkitPerspective","MozPerspective","OPerspective","msPerspective"];for(var i in props)if(void 0!==obj.style[props[i]])return slider.pfx=props[i].replace("Perspective","").toLowerCase(),slider.prop="-"+slider.pfx+"-transform",!0;return!1}(),""!==slider.vars.controlsContainer&&(slider.controlsContainer=$(slider.vars.controlsContainer).length>0&&$(slider.vars.controlsContainer)),""!==slider.vars.manualControls&&(slider.manualControls=$(slider.vars.manualControls).length>0&&$(slider.vars.manualControls)),slider.vars.randomize&&(slider.slides.sort(function(){return Math.round(Math.random())-.5}),slider.container.empty().append(slider.slides)),slider.doMath(),slider.setup("init"),slider.vars.controlNav&&methods.controlNav.setup(),slider.vars.directionNav&&methods.directionNav.setup(),slider.vars.keyboard&&(1===$(slider.containerSelector).length||slider.vars.multipleKeyboard)&&$(document).bind("keyup",function(event){var keycode=event.keyCode;if(!slider.animating&&(39===keycode||37===keycode)){var target=39===keycode?slider.getTarget("next"):37===keycode?slider.getTarget("prev"):!1;slider.flexAnimate(target,slider.vars.pauseOnAction)}}),slider.vars.mousewheel&&slider.bind("mousewheel",function(event,delta){event.preventDefault();var target=0>delta?slider.getTarget("next"):slider.getTarget("prev");slider.flexAnimate(target,slider.vars.pauseOnAction)}),slider.vars.pausePlay&&methods.pausePlay.setup(),slider.vars.slideshow&&slider.vars.pauseInvisible&&methods.pauseInvisible.init(),slider.vars.slideshow&&(slider.vars.pauseOnHover&&slider.hover(function(){slider.manualPlay||slider.manualPause||slider.pause()},function(){slider.manualPause||slider.manualPlay||slider.stopped||slider.play()}),slider.vars.pauseInvisible&&methods.pauseInvisible.isHidden()||(slider.vars.initDelay>0?slider.startTimeout=setTimeout(slider.play,slider.vars.initDelay):slider.play())),asNav&&methods.asNav.setup(),touch&&slider.vars.touch&&methods.touch(),(!fade||fade&&slider.vars.smoothHeight)&&$(window).bind("resize orientationchange focus",methods.resize),slider.find("img").attr("draggable","false"),setTimeout(function(){slider.vars.start(slider)},200)},asNav:{setup:function(){slider.asNav=!0,slider.animatingTo=Math.floor(slider.currentSlide/slider.move),slider.currentItem=slider.currentSlide,slider.slides.removeClass(namespace+"active-slide").eq(slider.currentItem).addClass(namespace+"active-slide"),msGesture?(el._slider=slider,slider.slides.each(function(){var that=this;that._gesture=new MSGesture,that._gesture.target=that,that.addEventListener("MSPointerDown",function(e){e.preventDefault(),e.currentTarget._gesture&&e.currentTarget._gesture.addPointer(e.pointerId)},!1),that.addEventListener("MSGestureTap",function(e){e.preventDefault();var $slide=$(this),target=$slide.index();$(slider.vars.asNavFor).data("flexslider").animating||$slide.hasClass("active")||(slider.direction=slider.currentItem<target?"next":"prev",slider.flexAnimate(target,slider.vars.pauseOnAction,!1,!0,!0))})})):slider.slides.click(function(e){e.preventDefault();var $slide=$(this),target=$slide.index(),posFromLeft=$slide.offset().left-$(slider).scrollLeft();0>=posFromLeft&&$slide.hasClass(namespace+"active-slide")?slider.flexAnimate(slider.getTarget("prev"),!0):$(slider.vars.asNavFor).data("flexslider").animating||$slide.hasClass(namespace+"active-slide")||(slider.direction=slider.currentItem<target?"next":"prev",slider.flexAnimate(target,slider.vars.pauseOnAction,!1,!0,!0))})}},controlNav:{setup:function(){slider.manualControls?methods.controlNav.setupManual():methods.controlNav.setupPaging()},setupPaging:function(){var item,slide,type="thumbnails"===slider.vars.controlNav?"control-thumbs":"control-paging",j=1;if(slider.controlNavScaffold=$('<ol class="'+namespace+"control-nav "+namespace+type+'"></ol>'),slider.pagingCount>1)for(var i=0;i<slider.pagingCount;i++){if(slide=slider.slides.eq(i),item="thumbnails"===slider.vars.controlNav?'<img src="'+slide.attr("data-thumb")+'"/>':"<a>"+j+"</a>","thumbnails"===slider.vars.controlNav&&!0===slider.vars.thumbCaptions){var captn=slide.attr("data-thumbcaption");""!=captn&&void 0!=captn&&(item+='<span class="'+namespace+'caption">'+captn+"</span>")}slider.controlNavScaffold.append("<li>"+item+"</li>"),j++}slider.controlsContainer?$(slider.controlsContainer).append(slider.controlNavScaffold):slider.append(slider.controlNavScaffold),methods.controlNav.set(),methods.controlNav.active(),slider.controlNavScaffold.delegate("a, img",eventType,function(event){if(event.preventDefault(),""===watchedEvent||watchedEvent===event.type){var $this=$(this),target=slider.controlNav.index($this);$this.hasClass(namespace+"active")||(slider.direction=target>slider.currentSlide?"next":"prev",slider.flexAnimate(target,slider.vars.pauseOnAction))}""===watchedEvent&&(watchedEvent=event.type),methods.setToClearWatchedEvent()})},setupManual:function(){slider.controlNav=slider.manualControls,methods.controlNav.active(),slider.controlNav.bind(eventType,function(event){if(event.preventDefault(),""===watchedEvent||watchedEvent===event.type){var $this=$(this),target=slider.controlNav.index($this);
var docElem = document.documentElement,
+
$this.hasClass(namespace+"active")||(slider.direction=target>slider.currentSlide?"next":"prev",slider.flexAnimate(target,slider.vars.pauseOnAction))}""===watchedEvent&&(watchedEvent=event.type),methods.setToClearWatchedEvent()})},set:function(){var selector="thumbnails"===slider.vars.controlNav?"img":"a";slider.controlNav=$("."+namespace+"control-nav li "+selector,slider.controlsContainer?slider.controlsContainer:slider)},active:function(){slider.controlNav.removeClass(namespace+"active").eq(slider.animatingTo).addClass(namespace+"active")},update:function(action,pos){slider.pagingCount>1&&"add"===action?slider.controlNavScaffold.append($("<li><a>"+slider.count+"</a></li>")):1===slider.pagingCount?slider.controlNavScaffold.find("li").remove():slider.controlNav.eq(pos).closest("li").remove(),methods.controlNav.set(),slider.pagingCount>1&&slider.pagingCount!==slider.controlNav.length?slider.update(pos,action):methods.controlNav.active()}},directionNav:{setup:function(){var directionNavScaffold=$('<ul class="'+namespace+'direction-nav"><li><a class="'+namespace+'prev" href="#">'+slider.vars.prevText+'</a></li><li><a class="'+namespace+'next" href="#">'+slider.vars.nextText+"</a></li></ul>");slider.controlsContainer?($(slider.controlsContainer).append(directionNavScaffold),slider.directionNav=$("."+namespace+"direction-nav li a",slider.controlsContainer)):(slider.append(directionNavScaffold),slider.directionNav=$("."+namespace+"direction-nav li a",slider)),methods.directionNav.update(),slider.directionNav.bind(eventType,function(event){event.preventDefault();var target;(""===watchedEvent||watchedEvent===event.type)&&(target=$(this).hasClass(namespace+"next")?slider.getTarget("next"):slider.getTarget("prev"),slider.flexAnimate(target,slider.vars.pauseOnAction)),""===watchedEvent&&(watchedEvent=event.type),methods.setToClearWatchedEvent()})},update:function(){var disabledClass=namespace+"disabled";1===slider.pagingCount?slider.directionNav.addClass(disabledClass).attr("tabindex","-1"):slider.vars.animationLoop?slider.directionNav.removeClass(disabledClass).removeAttr("tabindex"):0===slider.animatingTo?slider.directionNav.removeClass(disabledClass).filter("."+namespace+"prev").addClass(disabledClass).attr("tabindex","-1"):slider.animatingTo===slider.last?slider.directionNav.removeClass(disabledClass).filter("."+namespace+"next").addClass(disabledClass).attr("tabindex","-1"):slider.directionNav.removeClass(disabledClass).removeAttr("tabindex")}},pausePlay:{setup:function(){var pausePlayScaffold=$('<div class="'+namespace+'pauseplay"><a></a></div>');slider.controlsContainer?(slider.controlsContainer.append(pausePlayScaffold),slider.pausePlay=$("."+namespace+"pauseplay a",slider.controlsContainer)):(slider.append(pausePlayScaffold),slider.pausePlay=$("."+namespace+"pauseplay a",slider)),methods.pausePlay.update(slider.vars.slideshow?namespace+"pause":namespace+"play"),slider.pausePlay.bind(eventType,function(event){event.preventDefault(),(""===watchedEvent||watchedEvent===event.type)&&($(this).hasClass(namespace+"pause")?(slider.manualPause=!0,slider.manualPlay=!1,slider.pause()):(slider.manualPause=!1,slider.manualPlay=!0,slider.play())),""===watchedEvent&&(watchedEvent=event.type),methods.setToClearWatchedEvent()})},update:function(state){"play"===state?slider.pausePlay.removeClass(namespace+"pause").addClass(namespace+"play").html(slider.vars.playText):slider.pausePlay.removeClass(namespace+"play").addClass(namespace+"pause").html(slider.vars.pauseText)}},touch:function(){function onTouchStart(e){slider.animating?e.preventDefault():(window.navigator.msPointerEnabled||1===e.touches.length)&&(slider.pause(),cwidth=vertical?slider.h:slider.w,startT=Number(new Date),localX=e.touches[0].pageX,localY=e.touches[0].pageY,offset=carousel&&reverse&&slider.animatingTo===slider.last?0:carousel&&reverse?slider.limit-(slider.itemW+slider.vars.itemMargin)*slider.move*slider.animatingTo:carousel&&slider.currentSlide===slider.last?slider.limit:carousel?(slider.itemW+slider.vars.itemMargin)*slider.move*slider.currentSlide:reverse?(slider.last-slider.currentSlide+slider.cloneOffset)*cwidth:(slider.currentSlide+slider.cloneOffset)*cwidth,startX=vertical?localY:localX,startY=vertical?localX:localY,el.addEventListener("touchmove",onTouchMove,!1),el.addEventListener("touchend",onTouchEnd,!1))}function onTouchMove(e){localX=e.touches[0].pageX,localY=e.touches[0].pageY,dx=vertical?startX-localY:startX-localX,scrolling=vertical?Math.abs(dx)<Math.abs(localX-startY):Math.abs(dx)<Math.abs(localY-startY);var fxms=500;(!scrolling||Number(new Date)-startT>fxms)&&(e.preventDefault(),!fade&&slider.transitions&&(slider.vars.animationLoop||(dx/=0===slider.currentSlide&&0>dx||slider.currentSlide===slider.last&&dx>0?Math.abs(dx)/cwidth+2:1),slider.setProps(offset+dx,"setTouch")))}function onTouchEnd(){if(el.removeEventListener("touchmove",onTouchMove,!1),slider.animatingTo===slider.currentSlide&&!scrolling&&null!==dx){var updateDx=reverse?-dx:dx,target=updateDx>0?slider.getTarget("next"):slider.getTarget("prev");slider.canAdvance(target)&&(Number(new Date)-startT<550&&Math.abs(updateDx)>50||Math.abs(updateDx)>cwidth/2)?slider.flexAnimate(target,slider.vars.pauseOnAction):fade||slider.flexAnimate(slider.currentSlide,slider.vars.pauseOnAction,!0)}el.removeEventListener("touchend",onTouchEnd,!1),startX=null,startY=null,dx=null,offset=null}function onMSPointerDown(e){e.stopPropagation(),slider.animating?e.preventDefault():(slider.pause(),el._gesture.addPointer(e.pointerId),accDx=0,cwidth=vertical?slider.h:slider.w,startT=Number(new Date),offset=carousel&&reverse&&slider.animatingTo===slider.last?0:carousel&&reverse?slider.limit-(slider.itemW+slider.vars.itemMargin)*slider.move*slider.animatingTo:carousel&&slider.currentSlide===slider.last?slider.limit:carousel?(slider.itemW+slider.vars.itemMargin)*slider.move*slider.currentSlide:reverse?(slider.last-slider.currentSlide+slider.cloneOffset)*cwidth:(slider.currentSlide+slider.cloneOffset)*cwidth)}function onMSGestureChange(e){e.stopPropagation();var slider=e.target._slider;if(slider){var transX=-e.translationX,transY=-e.translationY;return accDx+=vertical?transY:transX,dx=accDx,scrolling=vertical?Math.abs(accDx)<Math.abs(-transX):Math.abs(accDx)<Math.abs(-transY),e.detail===e.MSGESTURE_FLAG_INERTIA?(setImmediate(function(){el._gesture.stop()}),void 0):((!scrolling||Number(new Date)-startT>500)&&(e.preventDefault(),!fade&&slider.transitions&&(slider.vars.animationLoop||(dx=accDx/(0===slider.currentSlide&&0>accDx||slider.currentSlide===slider.last&&accDx>0?Math.abs(accDx)/cwidth+2:1)),slider.setProps(offset+dx,"setTouch"))),void 0)}}function onMSGestureEnd(e){e.stopPropagation();var slider=e.target._slider;if(slider){if(slider.animatingTo===slider.currentSlide&&!scrolling&&null!==dx){var updateDx=reverse?-dx:dx,target=updateDx>0?slider.getTarget("next"):slider.getTarget("prev");slider.canAdvance(target)&&(Number(new Date)-startT<550&&Math.abs(updateDx)>50||Math.abs(updateDx)>cwidth/2)?slider.flexAnimate(target,slider.vars.pauseOnAction):fade||slider.flexAnimate(slider.currentSlide,slider.vars.pauseOnAction,!0)}startX=null,startY=null,dx=null,offset=null,accDx=0}}var startX,startY,offset,cwidth,dx,startT,scrolling=!1,localX=0,localY=0,accDx=0;msGesture?(el.style.msTouchAction="none",el._gesture=new MSGesture,el._gesture.target=el,el.addEventListener("MSPointerDown",onMSPointerDown,!1),el._slider=slider,el.addEventListener("MSGestureChange",onMSGestureChange,!1),el.addEventListener("MSGestureEnd",onMSGestureEnd,!1)):el.addEventListener("touchstart",onTouchStart,!1)},resize:function(){!slider.animating&&slider.is(":visible")&&(carousel||slider.doMath(),fade?methods.smoothHeight():carousel?(slider.slides.width(slider.computedW),slider.update(slider.pagingCount),slider.setProps()):vertical?(slider.viewport.height(slider.h),slider.setProps(slider.h,"setTotal")):(slider.vars.smoothHeight&&methods.smoothHeight(),slider.newSlides.width(slider.computedW),slider.setProps(slider.computedW,"setTotal")))},smoothHeight:function(dur){if(!vertical||fade){var $obj=fade?slider:slider.viewport;dur?$obj.animate({height:slider.slides.eq(slider.animatingTo).height()},dur):$obj.height(slider.slides.eq(slider.animatingTo).height())}},sync:function(action){var $obj=$(slider.vars.sync).data("flexslider"),target=slider.animatingTo;switch(action){case"animate":$obj.flexAnimate(target,slider.vars.pauseOnAction,!1,!0);break;case"play":$obj.playing||$obj.asNav||$obj.play();break;case"pause":$obj.pause()}},pauseInvisible:{visProp:null,init:function(){var prefixes=["webkit","moz","ms","o"];if("hidden"in document)return"hidden";for(var i=0;i<prefixes.length;i++)prefixes[i]+"Hidden"in document&&(methods.pauseInvisible.visProp=prefixes[i]+"Hidden");if(methods.pauseInvisible.visProp){var evtname=methods.pauseInvisible.visProp.replace(/[H|h]idden/,"")+"visibilitychange";document.addEventListener(evtname,function(){methods.pauseInvisible.isHidden()?slider.startTimeout?clearTimeout(slider.startTimeout):slider.pause():slider.started?slider.play():slider.vars.initDelay>0?setTimeout(slider.play,slider.vars.initDelay):slider.play()})}},isHidden:function(){return document[methods.pauseInvisible.visProp]||!1}},setToClearWatchedEvent:function(){clearTimeout(watchedEventClearTimer),watchedEventClearTimer=setTimeout(function(){watchedEvent=""},3e3)}},slider.flexAnimate=function(target,pause,override,withSync,fromNav){if(slider.vars.animationLoop||target===slider.currentSlide||(slider.direction=target>slider.currentSlide?"next":"prev"),asNav&&1===slider.pagingCount&&(slider.direction=slider.currentItem<target?"next":"prev"),!slider.animating&&(slider.canAdvance(target,fromNav)||override)&&slider.is(":visible")){if(asNav&&withSync){var master=$(slider.vars.asNavFor).data("flexslider");if(slider.atEnd=0===target||target===slider.count-1,master.flexAnimate(target,!0,!1,!0,fromNav),slider.direction=slider.currentItem<target?"next":"prev",master.direction=slider.direction,Math.ceil((target+1)/slider.visible)-1===slider.currentSlide||0===target)return slider.currentItem=target,slider.slides.removeClass(namespace+"active-slide").eq(target).addClass(namespace+"active-slide"),!1;slider.currentItem=target,slider.slides.removeClass(namespace+"active-slide").eq(target).addClass(namespace+"active-slide"),target=Math.floor(target/slider.visible)}if(slider.animating=!0,slider.animatingTo=target,pause&&slider.pause(),slider.vars.before(slider),slider.syncExists&&!fromNav&&methods.sync("animate"),slider.vars.controlNav&&methods.controlNav.active(),carousel||slider.slides.removeClass(namespace+"active-slide").eq(target).addClass(namespace+"active-slide"),slider.atEnd=0===target||target===slider.last,slider.vars.directionNav&&methods.directionNav.update(),target===slider.last&&(slider.vars.end(slider),slider.vars.animationLoop||slider.pause()),fade)touch?(slider.slides.eq(slider.currentSlide).css({opacity:0,zIndex:1}),slider.slides.eq(target).css({opacity:1,zIndex:2}),slider.wrapup(dimension)):(slider.slides.eq(slider.currentSlide).css({zIndex:1}).animate({opacity:0},slider.vars.animationSpeed,slider.vars.easing),slider.slides.eq(target).css({zIndex:2}).animate({opacity:1},slider.vars.animationSpeed,slider.vars.easing,slider.wrapup));else{var margin,slideString,calcNext,dimension=vertical?slider.slides.filter(":first").height():slider.computedW;carousel?(margin=slider.vars.itemMargin,calcNext=(slider.itemW+margin)*slider.move*slider.animatingTo,slideString=calcNext>slider.limit&&1!==slider.visible?slider.limit:calcNext):slideString=0===slider.currentSlide&&target===slider.count-1&&slider.vars.animationLoop&&"next"!==slider.direction?reverse?(slider.count+slider.cloneOffset)*dimension:0:slider.currentSlide===slider.last&&0===target&&slider.vars.animationLoop&&"prev"!==slider.direction?reverse?0:(slider.count+1)*dimension:reverse?(slider.count-1-target+slider.cloneOffset)*dimension:(target+slider.cloneOffset)*dimension,slider.setProps(slideString,"",slider.vars.animationSpeed),slider.transitions?(slider.vars.animationLoop&&slider.atEnd||(slider.animating=!1,slider.currentSlide=slider.animatingTo),slider.container.unbind("webkitTransitionEnd transitionend"),slider.container.bind("webkitTransitionEnd transitionend",function(){slider.wrapup(dimension)})):slider.container.animate(slider.args,slider.vars.animationSpeed,slider.vars.easing,function(){slider.wrapup(dimension)})}slider.vars.smoothHeight&&methods.smoothHeight(slider.vars.animationSpeed)}},slider.wrapup=function(dimension){fade||carousel||(0===slider.currentSlide&&slider.animatingTo===slider.last&&slider.vars.animationLoop?slider.setProps(dimension,"jumpEnd"):slider.currentSlide===slider.last&&0===slider.animatingTo&&slider.vars.animationLoop&&slider.setProps(dimension,"jumpStart")),slider.animating=!1,slider.currentSlide=slider.animatingTo,slider.vars.after(slider)},slider.animateSlides=function(){!slider.animating&&focused&&slider.flexAnimate(slider.getTarget("next"))},slider.pause=function(){clearInterval(slider.animatedSlides),slider.animatedSlides=null,slider.playing=!1,slider.vars.pausePlay&&methods.pausePlay.update("play"),slider.syncExists&&methods.sync("pause")},slider.play=function(){slider.playing&&clearInterval(slider.animatedSlides),slider.animatedSlides=slider.animatedSlides||setInterval(slider.animateSlides,slider.vars.slideshowSpeed),slider.started=slider.playing=!0,slider.vars.pausePlay&&methods.pausePlay.update("pause"),slider.syncExists&&methods.sync("play")},slider.stop=function(){slider.pause(),slider.stopped=!0},slider.canAdvance=function(target,fromNav){var last=asNav?slider.pagingCount-1:slider.last;return fromNav?!0:asNav&&slider.currentItem===slider.count-1&&0===target&&"prev"===slider.direction?!0:asNav&&0===slider.currentItem&&target===slider.pagingCount-1&&"next"!==slider.direction?!1:target!==slider.currentSlide||asNav?slider.vars.animationLoop?!0:slider.atEnd&&0===slider.currentSlide&&target===last&&"next"!==slider.direction?!1:slider.atEnd&&slider.currentSlide===last&&0===target&&"next"===slider.direction?!1:!0:!1},slider.getTarget=function(dir){return slider.direction=dir,"next"===dir?slider.currentSlide===slider.last?0:slider.currentSlide+1:0===slider.currentSlide?slider.last:slider.currentSlide-1},slider.setProps=function(pos,special,dur){var target=function(){var posCheck=pos?pos:(slider.itemW+slider.vars.itemMargin)*slider.move*slider.animatingTo,posCalc=function(){if(carousel)return"setTouch"===special?pos:reverse&&slider.animatingTo===slider.last?0:reverse?slider.limit-(slider.itemW+slider.vars.itemMargin)*slider.move*slider.animatingTo:slider.animatingTo===slider.last?slider.limit:posCheck;switch(special){case"setTotal":return reverse?(slider.count-1-slider.currentSlide+slider.cloneOffset)*pos:(slider.currentSlide+slider.cloneOffset)*pos;case"setTouch":return reverse?pos:pos;case"jumpEnd":return reverse?pos:slider.count*pos;case"jumpStart":return reverse?slider.count*pos:pos;default:return pos}}();return-1*posCalc+"px"}();slider.transitions&&(target=vertical?"translate3d(0,"+target+",0)":"translate3d("+target+",0,0)",dur=void 0!==dur?dur/1e3+"s":"0s",slider.container.css("-"+slider.pfx+"-transition-duration",dur)),slider.args[slider.prop]=target,(slider.transitions||void 0===dur)&&slider.container.css(slider.args)},slider.setup=function(type){if(fade)slider.slides.css({width:"100%","float":"left",marginRight:"-100%",position:"relative"}),"init"===type&&(touch?slider.slides.css({opacity:0,display:"block",webkitTransition:"opacity "+slider.vars.animationSpeed/1e3+"s ease",zIndex:1}).eq(slider.currentSlide).css({opacity:1,zIndex:2}):slider.slides.css({opacity:0,display:"block",zIndex:1}).eq(slider.currentSlide).css({zIndex:2}).animate({opacity:1},slider.vars.animationSpeed,slider.vars.easing)),slider.vars.smoothHeight&&methods.smoothHeight();else{var sliderOffset,arr;"init"===type&&(slider.viewport=$('<div class="'+namespace+'viewport"></div>').css({overflow:"hidden",position:"relative"}).appendTo(slider).append(slider.container),slider.cloneCount=0,slider.cloneOffset=0,reverse&&(arr=$.makeArray(slider.slides).reverse(),slider.slides=$(arr),slider.container.empty().append(slider.slides))),slider.vars.animationLoop&&!carousel&&(slider.cloneCount=2,slider.cloneOffset=1,"init"!==type&&slider.container.find(".clone").remove(),slider.container.append(slider.slides.first().clone().addClass("clone").attr("aria-hidden","true")).prepend(slider.slides.last().clone().addClass("clone").attr("aria-hidden","true"))),slider.newSlides=$(slider.vars.selector,slider),sliderOffset=reverse?slider.count-1-slider.currentSlide+slider.cloneOffset:slider.currentSlide+slider.cloneOffset,vertical&&!carousel?(slider.container.height(200*(slider.count+slider.cloneCount)+"%").css("position","absolute").width("100%"),setTimeout(function(){slider.newSlides.css({display:"block"}),slider.doMath(),slider.viewport.height(slider.h),slider.setProps(sliderOffset*slider.h,"init")},"init"===type?100:0)):(slider.container.width(200*(slider.count+slider.cloneCount)+"%"),slider.setProps(sliderOffset*slider.computedW,"init"),setTimeout(function(){slider.doMath(),slider.newSlides.css({width:slider.computedW,"float":"left",display:"block"}),slider.vars.smoothHeight&&methods.smoothHeight()},"init"===type?100:0))}carousel||slider.slides.removeClass(namespace+"active-slide").eq(slider.currentSlide).addClass(namespace+"active-slide")},slider.doMath=function(){var slide=slider.slides.first(),slideMargin=slider.vars.itemMargin,minItems=slider.vars.minItems,maxItems=slider.vars.maxItems;slider.w=void 0===slider.viewport?slider.width():slider.viewport.width(),slider.h=slide.height(),slider.boxPadding=slide.outerWidth()-slide.width(),carousel?(slider.itemT=slider.vars.itemWidth+slideMargin,slider.minW=minItems?minItems*slider.itemT:slider.w,slider.maxW=maxItems?maxItems*slider.itemT-slideMargin:slider.w,slider.itemW=slider.minW>slider.w?(slider.w-slideMargin*(minItems-1))/minItems:slider.maxW<slider.w?(slider.w-slideMargin*(maxItems-1))/maxItems:slider.vars.itemWidth>slider.w?slider.w:slider.vars.itemWidth,slider.visible=Math.floor(slider.w/slider.itemW),slider.move=slider.vars.move>0&&slider.vars.move<slider.visible?slider.vars.move:slider.visible,slider.pagingCount=Math.ceil((slider.count-slider.visible)/slider.move+1),slider.last=slider.pagingCount-1,slider.limit=1===slider.pagingCount?0:slider.vars.itemWidth>slider.w?slider.itemW*(slider.count-1)+slideMargin*(slider.count-1):(slider.itemW+slideMargin)*slider.count-slider.w-slideMargin):(slider.itemW=slider.w,slider.pagingCount=slider.count,slider.last=slider.count-1),slider.computedW=slider.itemW-slider.boxPadding},slider.update=function(pos,action){slider.doMath(),carousel||(pos<slider.currentSlide?slider.currentSlide+=1:pos<=slider.currentSlide&&0!==pos&&(slider.currentSlide-=1),slider.animatingTo=slider.currentSlide),slider.vars.controlNav&&!slider.manualControls&&("add"===action&&!carousel||slider.pagingCount>slider.controlNav.length?methods.controlNav.update("add"):("remove"===action&&!carousel||slider.pagingCount<slider.controlNav.length)&&(carousel&&slider.currentSlide>slider.last&&(slider.currentSlide-=1,slider.animatingTo-=1),methods.controlNav.update("remove",slider.last))),slider.vars.directionNav&&methods.directionNav.update()},slider.addSlide=function(obj,pos){var $obj=$(obj);slider.count+=1,slider.last=slider.count-1,vertical&&reverse?void 0!==pos?slider.slides.eq(slider.count-pos).after($obj):slider.container.prepend($obj):void 0!==pos?slider.slides.eq(pos).before($obj):slider.container.append($obj),slider.update(pos,"add"),slider.slides=$(slider.vars.selector+":not(.clone)",slider),slider.setup(),slider.vars.added(slider)},slider.removeSlide=function(obj){var pos=isNaN(obj)?slider.slides.index($(obj)):obj;slider.count-=1,slider.last=slider.count-1,isNaN(obj)?$(obj,slider.slides).remove():vertical&&reverse?slider.slides.eq(slider.last).remove():slider.slides.eq(obj).remove(),slider.doMath(),slider.update(pos,"remove"),slider.slides=$(slider.vars.selector+":not(.clone)",slider),slider.setup(),slider.vars.removed(slider)},methods.init()},$(window).blur(function(){focused=!1}).focus(function(){focused=!0}),$.flexslider.defaults={namespace:"flex-",selector:".slides > li",animation:"fade",easing:"swing",direction:"horizontal",reverse:!1,animationLoop:!0,smoothHeight:!1,startAt:0,slideshow:!0,slideshowSpeed:7e3,animationSpeed:600,initDelay:0,randomize:!1,thumbCaptions:!1,pauseOnAction:!0,pauseOnHover:!1,pauseInvisible:!0,useCSS:!0,touch:!0,video:!1,controlNav:!0,directionNav:!0,prevText:"Previous",nextText:"Next",keyboard:!0,multipleKeyboard:!1,mousewheel:!1,pausePlay:!1,pauseText:"Pause",playText:"Play",controlsContainer:"",manualControls:"",sync:"",asNavFor:"",itemWidth:0,itemMargin:0,minItems:1,maxItems:0,move:0,allowOneSlide:!0,start:function(){},before:function(){},after:function(){},end:function(){},added:function(){},removed:function(){}},$.fn.flexslider=function(options){if(void 0===options&&(options={}),"object"==typeof options)return this.each(function(){var $this=$(this),selector=options.selector?options.selector:".slides > li",$slides=$this.find(selector);1===$slides.length&&options.allowOneSlide===!0||0===$slides.length?($slides.fadeIn(400),options.start&&options.start($this)):void 0===$this.data("flexslider")&&new $.flexslider(this,options)});var $slider=$(this).data("flexslider");switch(options){case"play":$slider.play();break;case"pause":$slider.pause();break;case"stop":$slider.stop();break;case"next":$slider.flexAnimate($slider.getTarget("next"),!0);break;case"prev":case"previous":$slider.flexAnimate($slider.getTarget("prev"),!0);break;default:"number"==typeof options&&$slider.flexAnimate(options,!0)}}}(jQuery),function($){var $window=$(window),windowHeight=$window.height();$window.resize(function(){windowHeight=$window.height()}),$.fn.parallax=function(xpos,speedFactor,outerHeight){function update(){var pos=$window.scrollTop();$this.each(function(){var $element=$(this),top=$element.offset().top,height=getHeight($element);pos>top+height||top>pos+windowHeight||$this.css("backgroundPosition",xpos+" "+Math.round((firstTop-pos)*speedFactor)+"px")})}var getHeight,firstTop,$this=$(this);$this.each(function(){firstTop=$this.offset().top}),getHeight=outerHeight?function(jqo){return jqo.outerHeight(!0)}:function(jqo){return jqo.height()},(arguments.length<1||null===xpos)&&(xpos="50%"),(arguments.length<2||null===speedFactor)&&(speedFactor=.1),(arguments.length<3||null===outerHeight)&&(outerHeight=!0),$window.bind("scroll",update).resize(update),update()}}(jQuery),jQuery(document).ready(function($){function ssc_init(){if(document.body){var body=document.body,html=document.documentElement,windowHeight=window.innerHeight,scrollHeight=body.scrollHeight;if(ssc_root=document.compatMode.indexOf("CSS")>=0?html:body,ssc_activeElement=body,ssc_initdone=!0,top!=self)ssc_frame=!0;else if(scrollHeight>windowHeight&&(body.offsetHeight<=windowHeight||html.offsetHeight<=windowHeight)&&(ssc_root.style.height="auto",ssc_root.offsetHeight<=windowHeight)){var underlay=document.createElement("div");underlay.style.clear="both",body.appendChild(underlay)}ssc_fixedback||(body.style.backgroundAttachment="scroll",html.style.backgroundAttachment="scroll"),ssc_keyboardsupport&&ssc_addEvent("keydown",ssc_keydown)}}function ssc_scrollArray(elem,left,top,delay){if(delay||(delay=1e3),ssc_directionCheck(left,top),ssc_que.push({x:left,y:top,lastX:0>left?.99:-.99,lastY:0>top?.99:-.99,start:+new Date}),!ssc_pending){var step=function(){for(var now=+new Date,scrollX=0,scrollY=0,i=0;i<ssc_que.length;i++){var item=ssc_que[i],elapsed=now-item.start,finished=elapsed>=ssc_animtime,position=finished?1:elapsed/ssc_animtime;ssc_pulseAlgorithm&&(position=ssc_pulse(position));var x=item.x*position-item.lastX>>0,y=item.y*position-item.lastY>>0;scrollX+=x,scrollY+=y,item.lastX+=x,item.lastY+=y,finished&&(ssc_que.splice(i,1),i--)}if(left){var lastLeft=elem.scrollLeft;elem.scrollLeft+=scrollX,scrollX&&elem.scrollLeft===lastLeft&&(left=0)}if(top){var lastTop=elem.scrollTop;elem.scrollTop+=scrollY,scrollY&&elem.scrollTop===lastTop&&(top=0)}left||top||(ssc_que=[]),ssc_que.length?setTimeout(step,delay/ssc_framerate+1):ssc_pending=!1};setTimeout(step,0),ssc_pending=!0}}function ssc_wheel(event){ssc_initdone||init();var target=event.target,overflowing=ssc_overflowingAncestor(target);if(!overflowing||event.defaultPrevented||ssc_isNodeName(ssc_activeElement,"embed")||ssc_isNodeName(target,"embed")&&/\.pdf/i.test(target.src))return!0;var deltaX=event.wheelDeltaX||0,deltaY=event.wheelDeltaY||0;deltaX||deltaY||(deltaY=event.wheelDelta||0),Math.abs(deltaX)>1.2&&(deltaX*=ssc_stepsize/120),Math.abs(deltaY)>1.2&&(deltaY*=ssc_stepsize/120),ssc_scrollArray(overflowing,-deltaX,-deltaY),event.preventDefault()}function ssc_keydown(event){var target=event.target,modifier=event.ctrlKey||event.altKey||event.metaKey;if(/input|textarea|embed/i.test(target.nodeName)||target.isContentEditable||event.defaultPrevented||modifier)return!0;if(ssc_isNodeName(target,"button")&&event.keyCode===ssc_key.spacebar)return!0;var shift,x=0,y=0,elem=ssc_overflowingAncestor(ssc_activeElement),clientHeight=elem.clientHeight;switch(elem==document.body&&(clientHeight=window.innerHeight),event.keyCode){case ssc_key.up:y=-ssc_arrowscroll;break;case ssc_key.down:y=ssc_arrowscroll;break;case ssc_key.spacebar:shift=event.shiftKey?1:-1,y=-shift*clientHeight*.9;break;case ssc_key.pageup:y=.9*-clientHeight;break;case ssc_key.pagedown:y=.9*clientHeight;break;case ssc_key.home:y=-elem.scrollTop;break;case ssc_key.end:var damt=elem.scrollHeight-elem.scrollTop-clientHeight;y=damt>0?damt+10:0;break;case ssc_key.left:x=-ssc_arrowscroll;break;case ssc_key.right:x=ssc_arrowscroll;break;default:return!0}ssc_scrollArray(elem,x,y),event.preventDefault()}function ssc_mousedown(event){ssc_activeElement=event.target}function ssc_setCache(elems,overflowing){for(var i=elems.length;i--;)ssc_cache[ssc_uniqueID(elems[i])]=overflowing;return overflowing}function ssc_overflowingAncestor(el){var elems=[],ssc_rootScrollHeight=ssc_root.scrollHeight;do{var cached=ssc_cache[ssc_uniqueID(el)];if(cached)return ssc_setCache(elems,cached);if(elems.push(el),ssc_rootScrollHeight===el.scrollHeight){if(!ssc_frame||ssc_root.clientHeight+10<ssc_rootScrollHeight)return ssc_setCache(elems,document.body)}else if(el.clientHeight+10<el.scrollHeight&&(overflow=getComputedStyle(el,"").getPropertyValue("overflow"),"scroll"===overflow||"auto"===overflow))return ssc_setCache(elems,el)}while(el=el.parentNode)}function ssc_addEvent(type,fn,bubble){window.addEventListener(type,fn,bubble||!1)}function ssc_isNodeName(el,tag){return el.nodeName.toLowerCase()===tag.toLowerCase()}function ssc_directionCheck(x,y){x=x>0?1:-1,y=y>0?1:-1,(ssc_direction.x!==x||ssc_direction.y!==y)&&(ssc_direction.x=x,ssc_direction.y=y,ssc_que=[])}function ssc_pulse_(x){var val,start,expx;return x*=ssc_pulseScale,1>x?val=x-(1-Math.exp(-x)):(start=Math.exp(-1),x-=1,expx=1-Math.exp(-x),val=start+expx*(1-start)),val*ssc_pulseNormalize}function ssc_pulse(x){return x>=1?1:0>=x?0:(1==ssc_pulseNormalize&&(ssc_pulseNormalize/=ssc_pulse_(1)),ssc_pulse_(x))}var ssc_activeElement,ssc_framerate=150,ssc_animtime=500,ssc_stepsize=150,ssc_pulseAlgorithm=!0,ssc_pulseScale=6,ssc_pulseNormalize=1,ssc_keyboardsupport=!0,ssc_arrowscroll=50,ssc_frame=!1,ssc_direction={x:0,y:0},ssc_initdone=!1,ssc_fixedback=!0,ssc_root=document.documentElement,ssc_key={left:37,up:38,right:39,down:40,spacebar:32,pageup:33,pagedown:34,end:35,home:36},ssc_que=[],ssc_pending=!1,ssc_cache={};setInterval(function(){ssc_cache={}},1e4);var ssc_uniqueID=function(){var i=0;return function(el){return el.ssc_uniqueID||(el.ssc_uniqueID=i++)}}();$.browser.chrome=/chrome/.test(navigator.userAgent.toLowerCase()),$.browser.chrome&&(ssc_addEvent("mousedown",ssc_mousedown),ssc_addEvent("mousewheel",ssc_wheel),ssc_addEvent("load",ssc_init))}),"function"!=typeof Object.create&&(Object.create=function(obj){function F(){}return F.prototype=obj,new F}),function($,window,document){var Carousel={init:function(options,el){var base=this;base.$elem=$(el),base.options=$.extend({},$.fn.owlCarousel.options,base.$elem.data(),options),base.userOptions=options,base.loadContent()},loadContent:function(){function getData(data){var i,content="";if("function"==typeof base.options.jsonSuccess)base.options.jsonSuccess.apply(this,[data]);else{for(i in data.owl)data.owl.hasOwnProperty(i)&&(content+=data.owl[i].item);base.$elem.html(content)}base.logIn()}var url,base=this;"function"==typeof base.options.beforeInit&&base.options.beforeInit.apply(this,[base.$elem]),"string"==typeof base.options.jsonPath?(url=base.options.jsonPath,$.getJSON(url,getData)):base.logIn()},logIn:function(){var base=this;base.$elem.data("owl-originalStyles",base.$elem.attr("style")).data("owl-originalClasses",base.$elem.attr("class")),base.$elem.css({opacity:0}),base.orignalItems=base.options.items,base.checkBrowser(),base.wrapperWidth=0,base.checkVisible=null,base.setVars()},setVars:function(){var base=this;return 0===base.$elem.children().length?!1:(base.baseClass(),base.eventTypes(),base.$userItems=base.$elem.children(),base.itemsAmount=base.$userItems.length,base.wrapItems(),base.$owlItems=base.$elem.find(".owl-item"),base.$owlWrapper=base.$elem.find(".owl-wrapper"),base.playDirection="next",base.prevItem=0,base.prevArr=[0],base.currentItem=0,base.customEvents(),base.onStartup(),void 0)},onStartup:function(){var base=this;base.updateItems(),base.calculateAll(),base.buildControls(),base.updateControls(),base.response(),base.moveEvents(),base.stopOnHover(),base.owlStatus(),base.options.transitionStyle!==!1&&base.transitionTypes(base.options.transitionStyle),base.options.autoPlay===!0&&(base.options.autoPlay=5e3),base.play(),base.$elem.find(".owl-wrapper").css("display","block"),base.$elem.is(":visible")?base.$elem.css("opacity",1):base.watchVisibility(),base.onstartup=!1,base.eachMoveUpdate(),"function"==typeof base.options.afterInit&&base.options.afterInit.apply(this,[base.$elem])},eachMoveUpdate:function(){var base=this;base.options.lazyLoad===!0&&base.lazyLoad(),base.options.autoHeight===!0&&base.autoHeight(),base.onVisibleItems(),"function"==typeof base.options.afterAction&&base.options.afterAction.apply(this,[base.$elem])},updateVars:function(){var base=this;"function"==typeof base.options.beforeUpdate&&base.options.beforeUpdate.apply(this,[base.$elem]),base.watchVisibility(),base.updateItems(),base.calculateAll(),base.updatePosition(),base.updateControls(),base.eachMoveUpdate(),"function"==typeof base.options.afterUpdate&&base.options.afterUpdate.apply(this,[base.$elem])},reload:function(){var base=this;window.setTimeout(function(){base.updateVars()},0)},watchVisibility:function(){var base=this;return base.$elem.is(":visible")!==!1?!1:(base.$elem.css({opacity:0}),window.clearInterval(base.autoPlayInterval),window.clearInterval(base.checkVisible),base.checkVisible=window.setInterval(function(){base.$elem.is(":visible")&&(base.reload(),base.$elem.animate({opacity:1},200),window.clearInterval(base.checkVisible))},500),void 0)},wrapItems:function(){var base=this;base.$userItems.wrapAll('<div class="owl-wrapper">').wrap('<div class="owl-item"></div>'),base.$elem.find(".owl-wrapper").wrap('<div class="owl-wrapper-outer">'),base.wrapperOuter=base.$elem.find(".owl-wrapper-outer"),base.$elem.css("display","block")},baseClass:function(){var base=this,hasBaseClass=base.$elem.hasClass(base.options.baseClass),hasThemeClass=base.$elem.hasClass(base.options.theme);hasBaseClass||base.$elem.addClass(base.options.baseClass),hasThemeClass||base.$elem.addClass(base.options.theme)},updateItems:function(){var width,i,base=this;if(base.options.responsive===!1)return!1;if(base.options.singleItem===!0)return base.options.items=base.orignalItems=1,base.options.itemsCustom=!1,base.options.itemsDesktop=!1,base.options.itemsDesktopSmall=!1,base.options.itemsTablet=!1,base.options.itemsTabletSmall=!1,base.options.itemsMobile=!1,!1;
header = document.querySelector( '.site-header' ),
+
if(width=$(base.options.responsiveBaseWidth).width(),width>(base.options.itemsDesktop[0]||base.orignalItems)&&(base.options.items=base.orignalItems),base.options.itemsCustom!==!1)for(base.options.itemsCustom.sort(function(a,b){return a[0]-b[0]}),i=0;i<base.options.itemsCustom.length;i+=1)base.options.itemsCustom[i][0]<=width&&(base.options.items=base.options.itemsCustom[i][1]);else width<=base.options.itemsDesktop[0]&&base.options.itemsDesktop!==!1&&(base.options.items=base.options.itemsDesktop[1]),width<=base.options.itemsDesktopSmall[0]&&base.options.itemsDesktopSmall!==!1&&(base.options.items=base.options.itemsDesktopSmall[1]),width<=base.options.itemsTablet[0]&&base.options.itemsTablet!==!1&&(base.options.items=base.options.itemsTablet[1]),width<=base.options.itemsTabletSmall[0]&&base.options.itemsTabletSmall!==!1&&(base.options.items=base.options.itemsTabletSmall[1]),width<=base.options.itemsMobile[0]&&base.options.itemsMobile!==!1&&(base.options.items=base.options.itemsMobile[1]);base.options.items>base.itemsAmount&&base.options.itemsScaleUp===!0&&(base.options.items=base.itemsAmount)},response:function(){var smallDelay,lastWindowWidth,base=this;return base.options.responsive!==!0?!1:(lastWindowWidth=$(window).width(),base.resizer=function(){$(window).width()!==lastWindowWidth&&(base.options.autoPlay!==!1&&window.clearInterval(base.autoPlayInterval),window.clearTimeout(smallDelay),smallDelay=window.setTimeout(function(){lastWindowWidth=$(window).width(),base.updateVars()},base.options.responsiveRefreshRate))},$(window).resize(base.resizer),void 0)},updatePosition:function(){var base=this;base.jumpTo(base.currentItem),base.options.autoPlay!==!1&&base.checkAp()},appendItemsSizes:function(){var base=this,roundPages=0,lastItem=base.itemsAmount-base.options.items;base.$owlItems.each(function(index){var $this=$(this);$this.css({width:base.itemWidth}).data("owl-item",Number(index)),(index%base.options.items===0||index===lastItem)&&(index>lastItem||(roundPages+=1)),$this.data("owl-roundPages",roundPages)})},appendWrapperSizes:function(){var base=this,width=base.$owlItems.length*base.itemWidth;base.$owlWrapper.css({width:2*width,left:0}),base.appendItemsSizes()},calculateAll:function(){var base=this;base.calculateWidth(),base.appendWrapperSizes(),base.loops(),base.max()},calculateWidth:function(){var base=this;base.itemWidth=Math.round(base.$elem.width()/base.options.items)},max:function(){var base=this,maximum=-1*(base.itemsAmount*base.itemWidth-base.options.items*base.itemWidth);return base.options.items>base.itemsAmount?(base.maximumItem=0,maximum=0,base.maximumPixels=0):(base.maximumItem=base.itemsAmount-base.options.items,base.maximumPixels=maximum),maximum},min:function(){return 0},loops:function(){var i,item,roundPageNum,base=this,prev=0,elWidth=0;for(base.positionsInArray=[0],base.pagesInArray=[],i=0;i<base.itemsAmount;i+=1)elWidth+=base.itemWidth,base.positionsInArray.push(-elWidth),base.options.scrollPerPage===!0&&(item=$(base.$owlItems[i]),roundPageNum=item.data("owl-roundPages"),roundPageNum!==prev&&(base.pagesInArray[prev]=base.positionsInArray[i],prev=roundPageNum))},buildControls:function(){var base=this;(base.options.navigation===!0||base.options.pagination===!0)&&(base.owlControls=$('<div class="owl-controls"/>').toggleClass("clickable",!base.browser.isTouch).appendTo(base.$elem)),base.options.pagination===!0&&base.buildPagination(),base.options.navigation===!0&&base.buildButtons()},buildButtons:function(){var base=this,buttonsWrapper=$('<div class="owl-buttons"/>');base.owlControls.append(buttonsWrapper),base.buttonPrev=$("<div/>",{"class":"owl-prev",html:base.options.navigationText[0]||""}),base.buttonNext=$("<div/>",{"class":"owl-next",html:base.options.navigationText[1]||""}),buttonsWrapper.append(base.buttonPrev).append(base.buttonNext),buttonsWrapper.on("touchstart.owlControls mousedown.owlControls",'div[class^="owl"]',function(event){event.preventDefault()}),buttonsWrapper.on("touchend.owlControls mouseup.owlControls",'div[class^="owl"]',function(event){event.preventDefault(),$(this).hasClass("owl-next")?base.next():base.prev()})},buildPagination:function(){var base=this;base.paginationWrapper=$('<div class="owl-pagination"/>'),base.owlControls.append(base.paginationWrapper),base.paginationWrapper.on("touchend.owlControls mouseup.owlControls",".owl-page",function(event){event.preventDefault(),Number($(this).data("owl-page"))!==base.currentItem&&base.goTo(Number($(this).data("owl-page")),!0)})},updatePagination:function(){var counter,lastPage,lastItem,i,paginationButton,paginationButtonInner,base=this;if(base.options.pagination===!1)return!1;for(base.paginationWrapper.html(""),counter=0,lastPage=base.itemsAmount-base.itemsAmount%base.options.items,i=0;i<base.itemsAmount;i+=1)i%base.options.items===0&&(counter+=1,lastPage===i&&(lastItem=base.itemsAmount-base.options.items),paginationButton=$("<div/>",{"class":"owl-page"}),paginationButtonInner=$("<span></span>",{text:base.options.paginationNumbers===!0?counter:"","class":base.options.paginationNumbers===!0?"owl-numbers":""}),paginationButton.append(paginationButtonInner),paginationButton.data("owl-page",lastPage===i?lastItem:i),paginationButton.data("owl-roundPages",counter),base.paginationWrapper.append(paginationButton));base.checkPagination()},checkPagination:function(){var base=this;return base.options.pagination===!1?!1:(base.paginationWrapper.find(".owl-page").each(function(){$(this).data("owl-roundPages")===$(base.$owlItems[base.currentItem]).data("owl-roundPages")&&(base.paginationWrapper.find(".owl-page").removeClass("active"),$(this).addClass("active"))}),void 0)},checkNavigation:function(){var base=this;return base.options.navigation===!1?!1:(base.options.rewindNav===!1&&(0===base.currentItem&&0===base.maximumItem?(base.buttonPrev.addClass("disabled"),base.buttonNext.addClass("disabled")):0===base.currentItem&&0!==base.maximumItem?(base.buttonPrev.addClass("disabled"),base.buttonNext.removeClass("disabled")):base.currentItem===base.maximumItem?(base.buttonPrev.removeClass("disabled"),base.buttonNext.addClass("disabled")):0!==base.currentItem&&base.currentItem!==base.maximumItem&&(base.buttonPrev.removeClass("disabled"),base.buttonNext.removeClass("disabled"))),void 0)},updateControls:function(){var base=this;base.updatePagination(),base.checkNavigation(),base.owlControls&&(base.options.items>=base.itemsAmount?base.owlControls.hide():base.owlControls.show())},destroyControls:function(){var base=this;base.owlControls&&base.owlControls.remove()},next:function(speed){var base=this;if(base.isTransition)return!1;if(base.currentItem+=base.options.scrollPerPage===!0?base.options.items:1,base.currentItem>base.maximumItem+(base.options.scrollPerPage===!0?base.options.items-1:0)){if(base.options.rewindNav!==!0)return base.currentItem=base.maximumItem,!1;base.currentItem=0,speed="rewind"}base.goTo(base.currentItem,speed)},prev:function(speed){var base=this;if(base.isTransition)return!1;if(base.options.scrollPerPage===!0&&base.currentItem>0&&base.currentItem<base.options.items?base.currentItem=0:base.currentItem-=base.options.scrollPerPage===!0?base.options.items:1,base.currentItem<0){if(base.options.rewindNav!==!0)return base.currentItem=0,!1;base.currentItem=base.maximumItem,speed="rewind"}base.goTo(base.currentItem,speed)},goTo:function(position,speed,drag){var goToPixel,base=this;return base.isTransition?!1:("function"==typeof base.options.beforeMove&&base.options.beforeMove.apply(this,[base.$elem]),position>=base.maximumItem?position=base.maximumItem:0>=position&&(position=0),base.currentItem=base.owl.currentItem=position,base.options.transitionStyle!==!1&&"drag"!==drag&&1===base.options.items&&base.browser.support3d===!0?(base.swapSpeed(0),base.browser.support3d===!0?base.transition3d(base.positionsInArray[position]):base.css2slide(base.positionsInArray[position],1),base.afterGo(),base.singleItemTransition(),!1):(goToPixel=base.positionsInArray[position],base.browser.support3d===!0?(base.isCss3Finish=!1,speed===!0?(base.swapSpeed("paginationSpeed"),window.setTimeout(function(){base.isCss3Finish=!0},base.options.paginationSpeed)):"rewind"===speed?(base.swapSpeed(base.options.rewindSpeed),window.setTimeout(function(){base.isCss3Finish=!0},base.options.rewindSpeed)):(base.swapSpeed("slideSpeed"),window.setTimeout(function(){base.isCss3Finish=!0},base.options.slideSpeed)),base.transition3d(goToPixel)):speed===!0?base.css2slide(goToPixel,base.options.paginationSpeed):"rewind"===speed?base.css2slide(goToPixel,base.options.rewindSpeed):base.css2slide(goToPixel,base.options.slideSpeed),base.afterGo(),void 0))},jumpTo:function(position){var base=this;"function"==typeof base.options.beforeMove&&base.options.beforeMove.apply(this,[base.$elem]),position>=base.maximumItem||-1===position?position=base.maximumItem:0>=position&&(position=0),base.swapSpeed(0),base.browser.support3d===!0?base.transition3d(base.positionsInArray[position]):base.css2slide(base.positionsInArray[position],1),base.currentItem=base.owl.currentItem=position,base.afterGo()},afterGo:function(){var base=this;base.prevArr.push(base.currentItem),base.prevItem=base.owl.prevItem=base.prevArr[base.prevArr.length-2],base.prevArr.shift(0),base.prevItem!==base.currentItem&&(base.checkPagination(),base.checkNavigation(),base.eachMoveUpdate(),base.options.autoPlay!==!1&&base.checkAp()),"function"==typeof base.options.afterMove&&base.prevItem!==base.currentItem&&base.options.afterMove.apply(this,[base.$elem])},stop:function(){var base=this;base.apStatus="stop",window.clearInterval(base.autoPlayInterval)},checkAp:function(){var base=this;"stop"!==base.apStatus&&base.play()},play:function(){var base=this;return base.apStatus="play",base.options.autoPlay===!1?!1:(window.clearInterval(base.autoPlayInterval),base.autoPlayInterval=window.setInterval(function(){base.next(!0)},base.options.autoPlay),void 0)},swapSpeed:function(action){var base=this;"slideSpeed"===action?base.$owlWrapper.css(base.addCssSpeed(base.options.slideSpeed)):"paginationSpeed"===action?base.$owlWrapper.css(base.addCssSpeed(base.options.paginationSpeed)):"string"!=typeof action&&base.$owlWrapper.css(base.addCssSpeed(action))},addCssSpeed:function(speed){return{"-webkit-transition":"all "+speed+"ms ease","-moz-transition":"all "+speed+"ms ease","-o-transition":"all "+speed+"ms ease",transition:"all "+speed+"ms ease"}},removeTransition:function(){return{"-webkit-transition":"","-moz-transition":"","-o-transition":"",transition:""}},doTranslate:function(pixels){return{"-webkit-transform":"translate3d("+pixels+"px, 0px, 0px)","-moz-transform":"translate3d("+pixels+"px, 0px, 0px)","-o-transform":"translate3d("+pixels+"px, 0px, 0px)","-ms-transform":"translate3d("+pixels+"px, 0px, 0px)",transform:"translate3d("+pixels+"px, 0px,0px)"}},transition3d:function(value){var base=this;base.$owlWrapper.css(base.doTranslate(value))},css2move:function(value){var base=this;base.$owlWrapper.css({left:value})},css2slide:function(value,speed){var base=this;base.isCssFinish=!1,base.$owlWrapper.stop(!0,!0).animate({left:value},{duration:speed||base.options.slideSpeed,complete:function(){base.isCssFinish=!0}})},checkBrowser:function(){var regex,asSupport,support3d,isTouch,base=this,translate3D="translate3d(0px, 0px, 0px)",tempElem=document.createElement("div");tempElem.style.cssText="  -moz-transform:"+translate3D+"; -ms-transform:"+translate3D+"; -o-transform:"+translate3D+"; -webkit-transform:"+translate3D+"; transform:"+translate3D,regex=/translate3d\(0px, 0px, 0px\)/g,asSupport=tempElem.style.cssText.match(regex),support3d=null!==asSupport&&1===asSupport.length,isTouch="ontouchstart"in window||window.navigator.msMaxTouchPoints,base.browser={support3d:support3d,isTouch:isTouch}},moveEvents:function(){var base=this;(base.options.mouseDrag!==!1||base.options.touchDrag!==!1)&&(base.gestures(),base.disabledEvents())},eventTypes:function(){var base=this,types=["s","e","x"];base.ev_types={},base.options.mouseDrag===!0&&base.options.touchDrag===!0?types=["touchstart.owl mousedown.owl","touchmove.owl mousemove.owl","touchend.owl touchcancel.owl mouseup.owl"]:base.options.mouseDrag===!1&&base.options.touchDrag===!0?types=["touchstart.owl","touchmove.owl","touchend.owl touchcancel.owl"]:base.options.mouseDrag===!0&&base.options.touchDrag===!1&&(types=["mousedown.owl","mousemove.owl","mouseup.owl"]),base.ev_types.start=types[0],base.ev_types.move=types[1],base.ev_types.end=types[2]},disabledEvents:function(){var base=this;base.$elem.on("dragstart.owl",function(event){event.preventDefault()}),base.$elem.on("mousedown.disableTextSelect",function(e){return $(e.target).is("input, textarea, select, option")})},gestures:function(){function getTouches(event){if(void 0!==event.touches)return{x:event.touches[0].pageX,y:event.touches[0].pageY};if(void 0===event.touches){if(void 0!==event.pageX)return{x:event.pageX,y:event.pageY};if(void 0===event.pageX)return{x:event.clientX,y:event.clientY}}}function swapEvents(type){"on"===type?($(document).on(base.ev_types.move,dragMove),$(document).on(base.ev_types.end,dragEnd)):"off"===type&&($(document).off(base.ev_types.move),$(document).off(base.ev_types.end))}function dragStart(event){var position,ev=event.originalEvent||event||window.event;if(3===ev.which)return!1;if(!(base.itemsAmount<=base.options.items)){if(base.isCssFinish===!1&&!base.options.dragBeforeAnimFinish)return!1;if(base.isCss3Finish===!1&&!base.options.dragBeforeAnimFinish)return!1;base.options.autoPlay!==!1&&window.clearInterval(base.autoPlayInterval),base.browser.isTouch===!0||base.$owlWrapper.hasClass("grabbing")||base.$owlWrapper.addClass("grabbing"),base.newPosX=0,base.newRelativeX=0,$(this).css(base.removeTransition()),position=$(this).position(),locals.relativePos=position.left,locals.offsetX=getTouches(ev).x-position.left,locals.offsetY=getTouches(ev).y-position.top,swapEvents("on"),locals.sliding=!1,locals.targetElement=ev.target||ev.srcElement}}function dragMove(event){var minSwipe,maxSwipe,ev=event.originalEvent||event||window.event;base.newPosX=getTouches(ev).x-locals.offsetX,base.newPosY=getTouches(ev).y-locals.offsetY,base.newRelativeX=base.newPosX-locals.relativePos,"function"==typeof base.options.startDragging&&locals.dragging!==!0&&0!==base.newRelativeX&&(locals.dragging=!0,base.options.startDragging.apply(base,[base.$elem])),(base.newRelativeX>8||base.newRelativeX<-8)&&base.browser.isTouch===!0&&(void 0!==ev.preventDefault?ev.preventDefault():ev.returnValue=!1,locals.sliding=!0),(base.newPosY>10||base.newPosY<-10)&&locals.sliding===!1&&$(document).off("touchmove.owl"),minSwipe=function(){return base.newRelativeX/5},maxSwipe=function(){return base.maximumPixels+base.newRelativeX/5},base.newPosX=Math.max(Math.min(base.newPosX,minSwipe()),maxSwipe()),base.browser.support3d===!0?base.transition3d(base.newPosX):base.css2move(base.newPosX)}function dragEnd(event){var newPosition,handlers,owlStopEvent,ev=event.originalEvent||event||window.event;ev.target=ev.target||ev.srcElement,locals.dragging=!1,base.browser.isTouch!==!0&&base.$owlWrapper.removeClass("grabbing"),base.dragDirection=base.owl.dragDirection=base.newRelativeX<0?"left":"right",0!==base.newRelativeX&&(newPosition=base.getNewPosition(),base.goTo(newPosition,!1,"drag"),locals.targetElement===ev.target&&base.browser.isTouch!==!0&&($(ev.target).on("click.disable",function(ev){ev.stopImmediatePropagation(),ev.stopPropagation(),ev.preventDefault(),$(ev.target).off("click.disable")}),handlers=$._data(ev.target,"events").click,owlStopEvent=handlers.pop(),handlers.splice(0,0,owlStopEvent))),swapEvents("off")}var base=this,locals={offsetX:0,offsetY:0,baseElWidth:0,relativePos:0,position:null,minSwipe:null,maxSwipe:null,sliding:null,dargging:null,targetElement:null};base.isCssFinish=!0,base.$elem.on(base.ev_types.start,".owl-wrapper",dragStart)},getNewPosition:function(){var base=this,newPosition=base.closestItem();return newPosition>base.maximumItem?(base.currentItem=base.maximumItem,newPosition=base.maximumItem):base.newPosX>=0&&(newPosition=0,base.currentItem=0),newPosition},closestItem:function(){var base=this,array=base.options.scrollPerPage===!0?base.pagesInArray:base.positionsInArray,goal=base.newPosX,closest=null;return $.each(array,function(i,v){goal-base.itemWidth/20>array[i+1]&&goal-base.itemWidth/20<v&&"left"===base.moveDirection()?(closest=v,base.currentItem=base.options.scrollPerPage===!0?$.inArray(closest,base.positionsInArray):i):goal+base.itemWidth/20<v&&goal+base.itemWidth/20>(array[i+1]||array[i]-base.itemWidth)&&"right"===base.moveDirection()&&(base.options.scrollPerPage===!0?(closest=array[i+1]||array[array.length-1],base.currentItem=$.inArray(closest,base.positionsInArray)):(closest=array[i+1],base.currentItem=i+1))}),base.currentItem},moveDirection:function(){var direction,base=this;return base.newRelativeX<0?(direction="right",base.playDirection="next"):(direction="left",base.playDirection="prev"),direction},customEvents:function(){var base=this;base.$elem.on("owl.next",function(){base.next()}),base.$elem.on("owl.prev",function(){base.prev()}),base.$elem.on("owl.play",function(event,speed){base.options.autoPlay=speed,base.play(),base.hoverStatus="play"}),base.$elem.on("owl.stop",function(){base.stop(),base.hoverStatus="stop"}),base.$elem.on("owl.goTo",function(event,item){base.goTo(item)}),base.$elem.on("owl.jumpTo",function(event,item){base.jumpTo(item)})},stopOnHover:function(){var base=this;base.options.stopOnHover===!0&&base.browser.isTouch!==!0&&base.options.autoPlay!==!1&&(base.$elem.on("mouseover",function(){base.stop()}),base.$elem.on("mouseout",function(){"stop"!==base.hoverStatus&&base.play()}))},lazyLoad:function(){var i,$item,itemNumber,$lazyImg,follow,base=this;if(base.options.lazyLoad===!1)return!1;for(i=0;i<base.itemsAmount;i+=1)$item=$(base.$owlItems[i]),"loaded"!==$item.data("owl-loaded")&&(itemNumber=$item.data("owl-item"),$lazyImg=$item.find(".lazyOwl"),"string"==typeof $lazyImg.data("src")?(void 0===$item.data("owl-loaded")&&($lazyImg.hide(),$item.addClass("loading").data("owl-loaded","checked")),follow=base.options.lazyFollow===!0?itemNumber>=base.currentItem:!0,follow&&itemNumber<base.currentItem+base.options.items&&$lazyImg.length&&base.lazyPreload($item,$lazyImg)):$item.data("owl-loaded","loaded"))},lazyPreload:function($item,$lazyImg){function showImage(){$item.data("owl-loaded","loaded").removeClass("loading"),$lazyImg.removeAttr("data-src"),"fade"===base.options.lazyEffect?$lazyImg.fadeIn(400):$lazyImg.show(),"function"==typeof base.options.afterLazyLoad&&base.options.afterLazyLoad.apply(this,[base.$elem])}function checkLazyImage(){iterations+=1,base.completeImg($lazyImg.get(0))||isBackgroundImg===!0?showImage():100>=iterations?window.setTimeout(checkLazyImage,100):showImage()}var isBackgroundImg,base=this,iterations=0;"DIV"===$lazyImg.prop("tagName")?($lazyImg.css("background-image","url("+$lazyImg.data("src")+")"),isBackgroundImg=!0):$lazyImg[0].src=$lazyImg.data("src"),checkLazyImage()},autoHeight:function(){function addHeight(){var $currentItem=$(base.$owlItems[base.currentItem]).height();base.wrapperOuter.css("height",$currentItem+"px"),base.wrapperOuter.hasClass("autoHeight")||window.setTimeout(function(){base.wrapperOuter.addClass("autoHeight")},0)}function checkImage(){iterations+=1,base.completeImg($currentimg.get(0))?addHeight():100>=iterations?window.setTimeout(checkImage,100):base.wrapperOuter.css("height","")}var iterations,base=this,$currentimg=$(base.$owlItems[base.currentItem]).find("img");void 0!==$currentimg.get(0)?(iterations=0,checkImage()):addHeight()},completeImg:function(img){var naturalWidthType;return img.complete?(naturalWidthType=typeof img.naturalWidth,"undefined"!==naturalWidthType&&0===img.naturalWidth?!1:!0):!1},onVisibleItems:function(){var i,base=this;for(base.options.addClassActive===!0&&base.$owlItems.removeClass("active"),base.visibleItems=[],i=base.currentItem;i<base.currentItem+base.options.items;i+=1)base.visibleItems.push(i),base.options.addClassActive===!0&&$(base.$owlItems[i]).addClass("active");base.owl.visibleItems=base.visibleItems},transitionTypes:function(className){var base=this;base.outClass="owl-"+className+"-out",base.inClass="owl-"+className+"-in"},singleItemTransition:function(){function transStyles(prevPos){return{position:"relative",left:prevPos+"px"}}var base=this,outClass=base.outClass,inClass=base.inClass,$currentItem=base.$owlItems.eq(base.currentItem),$prevItem=base.$owlItems.eq(base.prevItem),prevPos=Math.abs(base.positionsInArray[base.currentItem])+base.positionsInArray[base.prevItem],origin=Math.abs(base.positionsInArray[base.currentItem])+base.itemWidth/2,animEnd="webkitAnimationEnd oAnimationEnd MSAnimationEnd animationend";base.isTransition=!0,base.$owlWrapper.addClass("owl-origin").css({"-webkit-transform-origin":origin+"px","-moz-perspective-origin":origin+"px","perspective-origin":origin+"px"}),$prevItem.css(transStyles(prevPos,10)).addClass(outClass).on(animEnd,function(){base.endPrev=!0,$prevItem.off(animEnd),base.clearTransStyle($prevItem,outClass)}),$currentItem.addClass(inClass).on(animEnd,function(){base.endCurrent=!0,$currentItem.off(animEnd),base.clearTransStyle($currentItem,inClass)})},clearTransStyle:function(item,classToRemove){var base=this;item.css({position:"",left:""}).removeClass(classToRemove),base.endPrev&&base.endCurrent&&(base.$owlWrapper.removeClass("owl-origin"),base.endPrev=!1,base.endCurrent=!1,base.isTransition=!1)},owlStatus:function(){var base=this;base.owl={userOptions:base.userOptions,baseElement:base.$elem,userItems:base.$userItems,owlItems:base.$owlItems,currentItem:base.currentItem,prevItem:base.prevItem,visibleItems:base.visibleItems,isTouch:base.browser.isTouch,browser:base.browser,dragDirection:base.dragDirection}},clearEvents:function(){var base=this;base.$elem.off(".owl owl mousedown.disableTextSelect"),$(document).off(".owl owl"),$(window).off("resize",base.resizer)},unWrap:function(){var base=this;0!==base.$elem.children().length&&(base.$owlWrapper.unwrap(),base.$userItems.unwrap().unwrap(),base.owlControls&&base.owlControls.remove()),base.clearEvents(),base.$elem.attr("style",base.$elem.data("owl-originalStyles")||"").attr("class",base.$elem.data("owl-originalClasses"))},destroy:function(){var base=this;base.stop(),window.clearInterval(base.checkVisible),base.unWrap(),base.$elem.removeData()},reinit:function(newOptions){var base=this,options=$.extend({},base.userOptions,newOptions);base.unWrap(),base.init(options,base.$elem)},addItem:function(htmlString,targetPosition){var position,base=this;return htmlString?0===base.$elem.children().length?(base.$elem.append(htmlString),base.setVars(),!1):(base.unWrap(),position=void 0===targetPosition||-1===targetPosition?-1:targetPosition,position>=base.$userItems.length||-1===position?base.$userItems.eq(-1).after(htmlString):base.$userItems.eq(position).before(htmlString),base.setVars(),void 0):!1},removeItem:function(targetPosition){var position,base=this;return 0===base.$elem.children().length?!1:(position=void 0===targetPosition||-1===targetPosition?-1:targetPosition,base.unWrap(),base.$userItems.eq(position).remove(),base.setVars(),void 0)}};$.fn.owlCarousel=function(options){return this.each(function(){if($(this).data("owl-init")===!0)return!1;$(this).data("owl-init",!0);var carousel=Object.create(Carousel);carousel.init(options,this),$.data(this,"owlCarousel",carousel)})},$.fn.owlCarousel.options={items:5,itemsCustom:!1,itemsDesktop:[1199,4],itemsDesktopSmall:[979,3],itemsTablet:[768,2],itemsTabletSmall:!1,itemsMobile:[479,1],singleItem:!1,itemsScaleUp:!1,slideSpeed:200,paginationSpeed:800,rewindSpeed:1e3,autoPlay:!1,stopOnHover:!1,navigation:!1,navigationText:["prev","next"],rewindNav:!0,scrollPerPage:!1,pagination:!0,paginationNumbers:!1,responsive:!0,responsiveRefreshRate:200,responsiveBaseWidth:window,baseClass:"owl-carousel",theme:"owl-theme",lazyLoad:!1,lazyFollow:!0,lazyEffect:"fade",autoHeight:!1,jsonPath:!1,jsonSuccess:!1,dragBeforeAnimFinish:!0,mouseDrag:!0,touchDrag:!0,addClassActive:!1,transitionStyle:!1,beforeUpdate:!1,afterUpdate:!1,beforeInit:!1,afterInit:!1,beforeMove:!1,afterMove:!1,afterAction:!1,startDragging:!1,afterLazyLoad:!1}}(jQuery,window,document),function($){"use strict";var methods=function(){var c={bcClass:"sf-breadcrumb",menuClass:"sf-js-enabled",anchorClass:"sf-with-ul",menuArrowClass:"sf-arrows"},ios=function(){var ios=/iPhone|iPad|iPod/i.test(navigator.userAgent);return ios&&$(window).load(function(){$("body").children().on("click",$.noop)}),ios}(),wp7=function(){var style=document.documentElement.style;return"behavior"in style&&"fill"in style&&/iemobile/i.test(navigator.userAgent)}(),toggleMenuClasses=function($menu,o){var classes=c.menuClass;o.cssArrows&&(classes+=" "+c.menuArrowClass),$menu.toggleClass(classes)},setPathToCurrent=function($menu,o){return $menu.find("li."+o.pathClass).slice(0,o.pathLevels).addClass(o.hoverClass+" "+c.bcClass).filter(function(){return $(this).children(o.popUpSelector).hide().show().length}).removeClass(o.pathClass)},toggleAnchorClass=function($li){$li.children("a").toggleClass(c.anchorClass)},toggleTouchAction=function($menu){var touchAction=$menu.css("ms-touch-action");touchAction="pan-y"===touchAction?"auto":"pan-y",$menu.css("ms-touch-action",touchAction)},applyHandlers=function($menu,o){var targets="li:has("+o.popUpSelector+")";$.fn.hoverIntent&&!o.disableHI?$menu.hoverIntent(over,out,targets):$menu.on("mouseenter.superfish",targets,over).on("mouseleave.superfish",targets,out);var touchevent="MSPointerDown.superfish";ios||(touchevent+=" touchend.superfish"),wp7&&(touchevent+=" mousedown.superfish"),$menu.on("focusin.superfish","li",over).on("focusout.superfish","li",out).on(touchevent,"a",o,touchHandler)},touchHandler=function(e){var $this=$(this),$ul=$this.siblings(e.data.popUpSelector);$ul.length>0&&$ul.is(":hidden")&&($this.one("click.superfish",!1),"MSPointerDown"===e.type?$this.trigger("focus"):$.proxy(over,$this.parent("li"))())},over=function(){var $this=$(this),o=getOptions($this);clearTimeout(o.sfTimer),$this.siblings().superfish("hide").end().superfish("show")},out=function(){var $this=$(this),o=getOptions($this);ios?$.proxy(close,$this,o)():(clearTimeout(o.sfTimer),o.sfTimer=setTimeout($.proxy(close,$this,o),o.delay))},close=function(o){o.retainPath=$.inArray(this[0],o.$path)>-1,this.superfish("hide"),this.parents("."+o.hoverClass).length||(o.onIdle.call(getMenu(this)),o.$path.length&&$.proxy(over,o.$path)())},getMenu=function($el){return $el.closest("."+c.menuClass)},getOptions=function($el){return getMenu($el).data("sf-options")};return{hide:function(instant){if(this.length){var $this=this,o=getOptions($this);if(!o)return this;var not=o.retainPath===!0?o.$path:"",$ul=$this.find("li."+o.hoverClass).add(this).not(not).removeClass(o.hoverClass).children(o.popUpSelector),speed=o.speedOut;instant&&($ul.show(),speed=0),o.retainPath=!1,o.onBeforeHide.call($ul),$ul.stop(!0,!0).animate(o.animationOut,speed,function(){var $this=$(this);o.onHide.call($this)})}return this},show:function(){var o=getOptions(this);if(!o)return this;var $this=this.addClass(o.hoverClass),$ul=$this.children(o.popUpSelector);return o.onBeforeShow.call($ul),$ul.stop(!0,!0).animate(o.animation,o.speed,function(){o.onShow.call($ul)}),this},destroy:function(){return this.each(function(){var $hasPopUp,$this=$(this),o=$this.data("sf-options");return o?($hasPopUp=$this.find(o.popUpSelector).parent("li"),clearTimeout(o.sfTimer),toggleMenuClasses($this,o),toggleAnchorClass($hasPopUp),toggleTouchAction($this),$this.off(".superfish").off(".hoverIntent"),$hasPopUp.children(o.popUpSelector).attr("style",function(i,style){return style.replace(/display[^;]+;?/g,"")}),o.$path.removeClass(o.hoverClass+" "+c.bcClass).addClass(o.pathClass),$this.find("."+o.hoverClass).removeClass(o.hoverClass),o.onDestroy.call($this),$this.removeData("sf-options"),void 0):!1})},init:function(op){return this.each(function(){var $this=$(this);if($this.data("sf-options"))return!1;var o=$.extend({},$.fn.superfish.defaults,op),$hasPopUp=$this.find(o.popUpSelector).parent("li");o.$path=setPathToCurrent($this,o),$this.data("sf-options",o),toggleMenuClasses($this,o),toggleAnchorClass($hasPopUp),toggleTouchAction($this),applyHandlers($this,o),$hasPopUp.not("."+c.bcClass).superfish("hide",!0),o.onInit.call(this)})}}}();$.fn.superfish=function(method){return methods[method]?methods[method].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof method&&method?$.error("Method "+method+" does not exist on jQuery.fn.superfish"):methods.init.apply(this,arguments)},$.fn.superfish.defaults={popUpSelector:"ul,.sf-mega",hoverClass:"sfHover",pathClass:"overrideThisToUse",pathLevels:1,delay:800,animation:{opacity:"show"},animationOut:{opacity:"hide"},speed:"normal",speedOut:"fast",cssArrows:!0,disableHI:!1,onInit:$.noop,onBeforeShow:$.noop,onShow:$.noop,onBeforeHide:$.noop,onHide:$.noop,onIdle:$.noop,onDestroy:$.noop},$.fn.extend({hideSuperfishUl:methods.hide,showSuperfishUl:methods.show})}(jQuery),function($){function goMix(filter,sortby,order,$cont,config){function resetFilter(){$par.unbind("webkitTransitionEnd transitionend otransitionend oTransitionEnd"),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"),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),"list"==config.layoutMode?($show.css({display:config.targetDisplayList,opacity:"1"}),config.origDisplay=config.targetDisplayList):($show.css({display:config.targetDisplayGrid,opacity:"1"}),config.origDisplay=config.targetDisplayGrid),config.origLayout=config.layoutMode;setTimeout(function(){if($targets.removeStyle(config.prefix+"transition, transition"),config.mixing=!1,"function"==typeof config.onMixEnd){var output=config.onMixEnd.call(this,config);config=output?output:config}})}if(clearInterval(config.failsafe),config.mixing=!0,config.filter=filter,"function"==typeof config.onMixStart){var output=config.onMixStart.call(this,config);config=output?output:config}for(var speed=config.transitionSpeed,i=0;2>i;i++){var a=0==i?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","smooth"==config.easing&&(config.easing="cubic-bezier(0.25, 0.46, 0.45, 0.94)"),"snap"==config.easing&&(config.easing="cubic-bezier(0.77, 0, 0.175, 1)"),"windback"==config.easing&&(config.easing="cubic-bezier(0.175, 0.885, 0.320, 1.275)",config.easingFallback="cubic-bezier(0.175, 0.885, 0.320, 1)"),"windup"==config.easing&&(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="list"==config.layoutMode&&null!=config.listEffects?config.listEffects:config.effects;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=!1;
didScroll = false,
+
"string"==typeof filter?filterArray=buildFilterArray(filter):(multiDimensional=!0,$.each(filter,function(i){filterArray[i]=buildFilterArray(this)})),"or"==config.filterLogic?(""==filterArray[0]&&filterArray.shift(),filterArray.length<1?$hide=$hide.add($cont.find(mixSelector+":visible")):$targets.each(function(){var $t=$(this);if(multiDimensional){var pass=0;$.each(filterArray,function(){this.length?$t.is("."+this.join(", ."))&&pass++:pass>0&&pass++}),pass==filterArray.length?$show=$show.add($t):$hide=$hide.add($t)}else $t.is("."+filterArray.join(", ."))?$show=$show.add($t):$hide=$hide.add($t)})):($show=$show.add($par.find(mixSelector+"."+filterArray.join("."))),$hide=$hide.add($par.find(mixSelector+":not(."+filterArray.join(".")+"):visible")));var total=$show.length,$tohide=$(),$toshow=$(),$pre=$();if($hide.each(function(){var $t=$(this);"none"!=$t.css("display")&&($tohide=$tohide.add($t),$pre=$pre.add($t))}),$show.filter(":visible").length==total&&!$tohide.length&&!sortby){if(config.origLayout==config.layoutMode)return resetFilter(),!1;if(1==$show.length)return"list"==config.layoutMode?($cont.addClass(config.listClass),$cont.removeClass(config.gridClass),$pre.css("display",config.targetDisplayList)):($cont.addClass(config.gridClass),$cont.removeClass(config.listClass),$pre.css("display",config.targetDisplayGrid)),resetFilter(),!1}if(config.origHeight=$par.height(),$show.length){if($cont.removeClass(config.failClass),$show.each(function(){var $t=$(this);"none"==$t.css("display")?$toshow=$toshow.add($t):$pre=$pre.add($t)}),config.origLayout!=config.layoutMode&&0==config.animateGridList)return"list"==config.layoutMode?($cont.addClass(config.listClass),$cont.removeClass(config.gridClass),$pre.css("display",config.targetDisplayList)):($cont.addClass(config.gridClass),$cont.removeClass(config.listClass),$pre.css("display",config.targetDisplayGrid)),resetFilter(),!1;if(!window.atob)return resetFilter(),!1;if($targets.css(config.clean),$pre.each(function(){this.data.origPos=$(this).offset()}),"list"==config.layoutMode?($cont.addClass(config.listClass),$cont.removeClass(config.gridClass),$toshow.css("display",config.targetDisplayList)):($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()}),"list"==config.layoutMode?$pre.css("display",config.targetDisplayList):$pre.css("display",config.targetDisplayGrid),sortby&&sort(sortby,order,$cont,config),sortby&&compareArr(config.origSort,config.checkSort))return resetFilter(),!1;$tohide.hide(),$toshow.each(function(){this.data.finalPos=$(this).offset()}),$pre.each(function(){this.data.finalPrePos=$(this).offset()}),config.newHeight=$par.height(),sortby&&sort("reset",null,$cont,config),$toshow.hide(),$pre.css("display",config.origDisplay),"block"==config.origDisplay?($cont.addClass(config.listClass),$toshow.css("display",config.targetDisplayList)):($cont.removeClass(config.listClass),$toshow.css("display",config.targetDisplayGrid)),config.resizeContainer&&$par.css("height",config.origHeight+"px");for(var toShowCSS={},i=0;2>i;i++){var a=0==i?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);$t.hasClass("mix_tohide")?(data.preTX=data.origPos.left-data.hideInterPos.left,data.preTY=data.origPos.top-data.hideInterPos.top):(data.preTX=data.origPos.left-data.preInterPos.left,data.preTY=data.origPos.top-data.preInterPos.top);for(var preCSS={},i=0;2>i;i++){var a=0==i?a=config.prefix:"";preCSS[a+"transform"]="translate("+data.preTX+"px,"+data.preTY+"px)"}$t.css(preCSS)}),"list"==config.layoutMode?($cont.addClass(config.listClass),$cont.removeClass(config.gridClass)):($cont.addClass(config.gridClass),$cont.removeClass(config.listClass));{setTimeout(function(){if(config.resizeContainer){for(var containerCSS={},i=0;2>i;i++){var a=0==i?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;for(var toShowCSS={},i=0;2>i;i++){var a=0==i?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(toShowCSS)}),$pre.each(function(){var data=this.data;data.tX=0!=data.finalPrePos.left?data.finalPrePos.left-data.preInterPos.left:0,data.tY=0!=data.finalPrePos.left?data.finalPrePos.top-data.preInterPos.top:0;for(var preCSS={},i=0;2>i;i++){var a=0==i?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)});for(var toHideCSS={},i=0;2>i;i++){var a=0==i?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){(e.originalEvent.propertyName.indexOf("transform")>-1||e.originalEvent.propertyName.indexOf("opacity")>-1)&&(mixSelector.indexOf(".")>-1?$(e.target).hasClass(mixSelector.replace(".",""))&&resetFilter():$(e.target).is(mixSelector)&&resetFilter())})},10)}config.failsafe=setTimeout(function(){config.mixing&&resetFilter()},speed+400)}else{if(config.resizeContainer&&$par.css("height",config.origHeight+"px"),!window.atob)return resetFilter(),!1;$tohide=$hide;{setTimeout(function(){if($par.css(config.perspective),config.resizeContainer){for(var containerCSS={},i=0;2>i;i++){var a=0==i?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){for(var toHideCSS={},i=0;2>i;i++){var a=0==i?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){(e.originalEvent.propertyName.indexOf("transform")>-1||e.originalEvent.propertyName.indexOf("opacity")>-1)&&($cont.addClass(config.failClass),resetFilter())})}else config.mixing=!1},10)}}}function sort(sortby,order,$cont,config){function compare(a,b){var sortAttrA=isNaN(1*a.attr(sortby))?a.attr(sortby).toLowerCase():1*a.attr(sortby),sortAttrB=isNaN(1*b.attr(sortby))?b.attr(sortby).toLowerCase():1*b.attr(sortby);return sortAttrB>sortAttrA?-1:sortAttrA>sortAttrB?1:0}function rebuild(element){"asc"==order?$sortWrapper.prepend(element).prepend(" "):$sortWrapper.append(element).append(" ")}function arrayShuffle(oldArray){for(var newArray=oldArray.slice(),len=newArray.length,i=len;i--;){var p=parseInt(Math.random()*len),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(),"reset"==sortby)$.each(config.startOrder,function(){$sortWrapper.append(this).append(" ")});else if("default"==sortby)$.each(config.origOrder,function(){rebuild(this)});else if("random"==sortby)config.newOrder.length||(config.newOrder=arrayShuffle(config.startOrder)),$.each(config.newOrder,function(){$sortWrapper.append(this).append(" ")});else if("custom"==sortby)$.each(order,function(){rebuild(this)});else{if("undefined"==typeof config.origOrder[0].attr(sortby))return console.log("No such attribute found. Terminating"),!1;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);0==i&&$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){for(var prefixes=["Webkit","Moz","O","ms"],i=0;i<prefixes.length;i++)if(prefixes[i]+"Transition"in el.style)return prefixes[i];return"transition"in el.style?"":!1}function compareArr(a,b){if(a.length!=b.length)return!1;for(var i=0;i<b.length;i++){if(a[i].compare&&!a[i].compare(b[i]))return!1;if(a[i]!==b[i])return!1}return!0}function buildFilterArray(str){str=str.replace(/\s{2,}/g," ");var arr=str.split(" ");return $.each(arr,function(i){"all"==this&&(arr[i]="mix_all")}),""==arr[0]&&arr.shift(),arr}var methods={init:function(settings){return this.each(function(){var browser=window.navigator.appVersion.match(/Chrome\/(\d+)\./),ver=browser?parseInt(browser[1],10):!1,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};(ver&&31==ver||32==ver)&&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:!1,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:""};settings&&$.extend(config,settings),this.config=config,$.support.touch="ontouchend"in document,$.support.touch&&(config.isTouch=!0,config.resetDelay=350),config.container=$(this);var $cont=config.container;if(config.prefix=prefix($cont[0]),config.prefix=config.prefix?"-"+config.prefix.toLowerCase()+"-":"",$cont.find(config.targetSelector).each(function(){config.origOrder.push($(this))}),config.sortOnLoad){var sortby,order;$.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")):($(config.sortSelector+"[data-sort="+config.sortOnLoad+"]").addClass("active"),sortby=config.sortOnLoad,config.sortOnLoad="desc"),sort(sortby,order,$cont,config)}for(var i=0;2>i;i++){var a=0==i?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;2>i;i++){var a=0==i?a=config.prefix:"";config.clean[a+"transition"]="none"}"list"==config.layoutMode?($cont.addClass(config.listClass),config.origDisplay=config.targetDisplayList):($cont.addClass(config.gridClass),config.origDisplay=config.targetDisplayGrid),config.origLayout=config.layoutMode;var showOnLoadArray=config.showOnLoad.split(" ");$.each(showOnLoadArray,function(){$(config.filterSelector+'[data-filter="'+this+'"]').addClass("active")}),$cont.find(config.targetSelector).addClass("mix_all"),"all"==showOnLoadArray[0]&&(showOnLoadArray[0]="mix_all",config.showOnLoad="mix_all");var $showOnLoad=$();$.each(showOnLoadArray,function(){$showOnLoad=$showOnLoad.add($("."+this))}),$showOnLoad.each(function(){var $t=$(this);"list"==config.layoutMode?$t.css("display",config.targetDisplayList):$t.css("display",config.targetDisplayGrid),$t.css(config.transition)});setTimeout(function(){config.mixing=!0,$showOnLoad.css("opacity","1");setTimeout(function(){if("list"==config.layoutMode?$showOnLoad.removeStyle(config.prefix+"transition, transition").css({display:config.targetDisplayList,opacity:1}):$showOnLoad.removeStyle(config.prefix+"transition, transition").css({display:config.targetDisplayGrid,opacity:1}),config.mixing=!1,"function"==typeof config.onMixLoad){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")){if("random"!=sortby)return!1}else $(config.sortSelector).removeClass("active"),$t.addClass("active");$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(0==config.multiFilter)$(config.filterSelector).removeClass("active"),$t.addClass("active"),config.filter=$t.attr("data-filter"),$(config.filterSelector+'[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)}})})},toGrid:function(){return this.each(function(){var config=this.config;"grid"!=config.layoutMode&&(config.layoutMode="grid",goMix(config.filter,null,null,$(this),config))})},toList:function(){return this.each(function(){var config=this.config;"list"!=config.layoutMode&&(config.layoutMode="list",goMix(config.filter,null,null,$(this),config))})},filter:function(arg){return this.each(function(){var config=this.config;config.mixing||($(config.filterSelector).removeClass("active"),$(config.filterSelector+'[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){if($(config.sortSelector).removeClass("active"),$.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),config.mixing||($(config.filterSelector).add(config.sortSelector).removeClass("active"),$(config.filterSelector+'[data-filter="'+multiOut.filter+'"]').addClass("active"),"undefined"!=typeof multiOut.sort&&($(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)}),config.mixing||"undefined"==typeof arg||($(config.filterSelector).removeClass("active"),$(config.filterSelector+'[data-filter="'+arg+'"]').addClass("active"),goMix(arg,null,null,$t,config))})}};$.fn.mixitup=function(method){return methods[method]?methods[method].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof method&&method?void 0:methods.init.apply(this,arguments)},$.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){return style?style.replace(search,""):void 0})})})}}(jQuery);
changeHeaderOn = 300;
+
 
+
function init() {
+
window.addEventListener( 'scroll', function( event ) {
+
if( !didScroll ) {
+
didScroll = true;
+
setTimeout( scrollPage, 250 );
+
}
+
}, false );
+
}
+
 
+
function scrollPage() {
+
var sy = scrollY();
+
if ( sy >= changeHeaderOn ) {
+
classie.add( header, 'site-header-shrink' );
+
}
+
else {
+
classie.remove( header, 'site-header-shrink' );
+
}
+
didScroll = false;
+
}
+
 
+
function scrollY() {
+
return window.pageYOffset || docElem.scrollTop;
+
}
+
 
+
init();
+
 
+
})();
+
 
+
 
+
/*!
+
* classie - class helper functions
+
* from bonzo https://github.com/ded/bonzo
+
*
+
* classie.has( elem, 'my-class' ) -> true/false
+
* classie.add( elem, 'my-new-class' )
+
* classie.remove( elem, 'my-unwanted-class' )
+
* classie.toggle( elem, 'my-class' )
+
*/
+
 
+
/*jshint browser: true, strict: true, undef: true */
+
/*global define: false */
+
 
+
( function( window ) {
+
 
+
'use strict';
+
 
+
// class helper functions from bonzo https://github.com/ded/bonzo
+
 
+
function classReg( className ) {
+
  return new RegExp("(^|\\s+)" + className + "(\\s+|$)");
+
}
+
 
+
// classList support for class management
+
// altho to be fair, the api sucks because it won't accept multiple classes at once
+
var hasClass, addClass, removeClass;
+
 
+
if ( 'classList' in document.documentElement ) {
+
  hasClass = function( elem, c ) {
+
    return elem.classList.contains( c );
+
  };
+
  addClass = function( elem, c ) {
+
    elem.classList.add( c );
+
  };
+
  removeClass = function( elem, c ) {
+
    elem.classList.remove( c );
+
  };
+
}
+
else {
+
  hasClass = function( elem, c ) {
+
    return classReg( c ).test( elem.className );
+
  };
+
  addClass = function( elem, c ) {
+
    if ( !hasClass( elem, c ) ) {
+
      elem.className = elem.className + ' ' + c;
+
    }
+
  };
+
  removeClass = function( elem, c ) {
+
    elem.className = elem.className.replace( classReg( c ), ' ' );
+
  };
+
}
+
 
+
function toggleClass( elem, c ) {
+
  var fn = hasClass( elem, c ) ? removeClass : addClass;
+
  fn( elem, c );
+
}
+
 
+
var classie = {
+
  // full names
+
  hasClass: hasClass,
+
  addClass: addClass,
+
  removeClass: removeClass,
+
  toggleClass: toggleClass,
+
  // short names
+
  has: hasClass,
+
  add: addClass,
+
  remove: removeClass,
+
  toggle: toggleClass
+
};
+
 
+
// transport
+
if ( typeof define === 'function' && define.amd ) {
+
  // AMD
+
  define( classie );
+
} else {
+
  // browser global
+
  window.classie = classie;
+
}
+
 
+
})( window );
+
 
+
/*
+
* Copyright (C) 2009 Joel Sutherland
+
* Licenced under the MIT license
+
* http://www.newmediacampaigns.com/page/jquery-flickr-plugin
+
*
+
* Available tags for templates:
+
* title, link, date_taken, description, published, author, author_id, tags, image*
+
*/
+
(function($) {
+
  $.fn.jflickrfeed = function(settings, callback) {
+
    settings = $.extend(true, {
+
      flickrbase: 'http://api.flickr.com/services/feeds/',
+
      feedapi: 'photos_public.gne',
+
      limit: 20,
+
      qstrings: {
+
        lang: 'en-us',
+
        format: 'json',
+
        jsoncallback: '?'
+
      },
+
      cleanDescription: true,
+
      useTemplate: true,
+
      itemTemplate: '',
+
      itemCallback: function(){}
+
    }, settings);
+
 
+
    var url = settings.flickrbase + settings.feedapi + '?';
+
    var first = true;
+
 
+
    for(var key in settings.qstrings){
+
      if(!first)
+
        url += '&';
+
      url += key + '=' + settings.qstrings[key];
+
      first = false;
+
    }
+
 
+
    return $(this).each(function(){
+
      var $container = $(this);
+
      var container = this;
+
      $.getJSON(url, function(data){
+
        $.each(data.items, function(i,item){
+
          if(i < settings.limit){
+
         
+
            // Clean out the Flickr Description
+
            if(settings.cleanDescription){
+
              var regex = /<p>(.*?)<\/p>/g;
+
              var input = item.description;
+
              if(regex.test(input)) {
+
                item.description = input.match(regex)[2]
+
                if(item.description!=undefined)
+
                  item.description = item.description.replace('<p>','').replace('</p>','');
+
              }
+
            }
+
           
+
            // Add Image Sizes
+
            // http://www.flickr.com/services/api/misc.urls.html
+
            item['image_s'] = item.media.m.replace('_m', '_s');
+
            item['image_t'] = item.media.m.replace('_m', '_t');
+
            item['image_m'] = item.media.m.replace('_m', '_m');
+
            item['image'] = item.media.m.replace('_m', '');
+
            item['image_b'] = item.media.m.replace('_m', '_b');
+
            delete item.media;
+
           
+
            // Use Template
+
            if(settings.useTemplate){
+
              var template = settings.itemTemplate;
+
              for(var key in item){
+
                var rgx = new RegExp('{{' + key + '}}', 'g');
+
                template = template.replace(rgx, item[key]);
+
              }
+
              $container.append(template)
+
            }
+
           
+
            //itemCallback
+
            settings.itemCallback.call(container, item);
+
          }
+
        });
+
        if($.isFunction(callback)){
+
          callback.call(container, data);
+
        }
+
      });
+
    });
+
  }
+
})(jQuery);
+
 
+
 
+
/**
+
* BxSlider v4.1.1 - Fully loaded, responsive content slider
+
* http://bxslider.com
+
*
+
* Copyright 2013, Steven Wanderski - http://stevenwanderski.com - http://bxcreative.com
+
* Written while drinking Belgian ales and listening to jazz
+
*
+
* Released under the MIT license - http://opensource.org/licenses/MIT
+
*/
+
 
+
;(function($){
+
 
+
  var plugin = {};
+
 
+
  var defaults = {
+
 
+
    // GENERAL
+
    mode: 'horizontal',
+
    slideSelector: '',
+
    infiniteLoop: true,
+
    hideControlOnEnd: false,
+
    speed: 500,
+
    easing: null,
+
    slideMargin: 0,
+
    startSlide: 0,
+
    randomStart: false,
+
    captions: false,
+
    ticker: false,
+
    tickerHover: false,
+
    adaptiveHeight: false,
+
    adaptiveHeightSpeed: 500,
+
    video: false,
+
    useCSS: true,
+
    preloadImages: 'visible',
+
    responsive: true,
+
 
+
    // TOUCH
+
    touchEnabled: true,
+
    swipeThreshold: 50,
+
    oneToOneTouch: true,
+
    preventDefaultSwipeX: true,
+
    preventDefaultSwipeY: false,
+
 
+
    // PAGER
+
    pager: true,
+
    pagerType: 'full',
+
    pagerShortSeparator: ' / ',
+
    pagerSelector: null,
+
    buildPager: null,
+
    pagerCustom: null,
+
 
+
    // CONTROLS
+
    controls: true,
+
    nextText: 'Next',
+
    prevText: 'Prev',
+
    nextSelector: null,
+
    prevSelector: null,
+
    autoControls: false,
+
    startText: 'Start',
+
    stopText: 'Stop',
+
    autoControlsCombine: false,
+
    autoControlsSelector: null,
+
 
+
    // AUTO
+
    auto: false,
+
    pause: 4000,
+
    autoStart: true,
+
    autoDirection: 'next',
+
    autoHover: false,
+
    autoDelay: 0,
+
 
+
    // CAROUSEL
+
    minSlides: 1,
+
    maxSlides: 1,
+
    moveSlides: 0,
+
    slideWidth: 0,
+
 
+
    // CALLBACKS
+
    onSliderLoad: function() {},
+
    onSlideBefore: function() {},
+
    onSlideAfter: function() {},
+
    onSlideNext: function() {},
+
    onSlidePrev: function() {}
+
  }
+
 
+
  $.fn.bxSlider = function(options){
+
 
+
    if(this.length == 0) return this;
+
 
+
    // support mutltiple elements
+
    if(this.length > 1){
+
      this.each(function(){$(this).bxSlider(options)});
+
      return this;
+
    }
+
 
+
    // create a namespace to be used throughout the plugin
+
    var slider = {};
+
    // set a reference to our slider element
+
    var el = this;
+
    plugin.el = this;
+
 
+
    /**
+
    * Makes slideshow responsive
+
    */
+
    // first get the original window dimens (thanks alot IE)
+
    var windowWidth = $(window).width();
+
    var windowHeight = $(window).height();
+
 
+
 
+
 
+
    /**
+
    * ===================================================================================
+
    * = PRIVATE FUNCTIONS
+
    * ===================================================================================
+
    */
+
 
+
    /**
+
    * Initializes namespace settings to be used throughout plugin
+
    */
+
    var init = function(){
+
      // merge user-supplied options with the defaults
+
      slider.settings = $.extend({}, defaults, options);
+
      // parse slideWidth setting
+
      slider.settings.slideWidth = parseInt(slider.settings.slideWidth);
+
      // store the original children
+
      slider.children = el.children(slider.settings.slideSelector);
+
      // check if actual number of slides is less than minSlides / maxSlides
+
      if(slider.children.length < slider.settings.minSlides) slider.settings.minSlides = slider.children.length;
+
      if(slider.children.length < slider.settings.maxSlides) slider.settings.maxSlides = slider.children.length;
+
      // if random start, set the startSlide setting to random number
+
      if(slider.settings.randomStart) slider.settings.startSlide = Math.floor(Math.random() * slider.children.length);
+
      // store active slide information
+
      slider.active = { index: slider.settings.startSlide }
+
      // store if the slider is in carousel mode (displaying / moving multiple slides)
+
      slider.carousel = slider.settings.minSlides > 1 || slider.settings.maxSlides > 1;
+
      // if carousel, force preloadImages = 'all'
+
      if(slider.carousel) slider.settings.preloadImages = 'all';
+
      // calculate the min / max width thresholds based on min / max number of slides
+
      // used to setup and update carousel slides dimensions
+
      slider.minThreshold = (slider.settings.minSlides * slider.settings.slideWidth) + ((slider.settings.minSlides - 1) * slider.settings.slideMargin);
+
      slider.maxThreshold = (slider.settings.maxSlides * slider.settings.slideWidth) + ((slider.settings.maxSlides - 1) * slider.settings.slideMargin);
+
      // store the current state of the slider (if currently animating, working is true)
+
      slider.working = false;
+
      // initialize the controls object
+
      slider.controls = {};
+
      // initialize an auto interval
+
      slider.interval = null;
+
      // determine which property to use for transitions
+
      slider.animProp = slider.settings.mode == 'vertical' ? 'top' : 'left';
+
      // determine if hardware acceleration can be used
+
      slider.usingCSS = slider.settings.useCSS && slider.settings.mode != 'fade' && (function(){
+
        // create our test div element
+
        var div = document.createElement('div');
+
        // css transition properties
+
        var props = ['WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective'];
+
        // test for each property
+
        for(var i in props){
+
          if(div.style[props[i]] !== undefined){
+
            slider.cssPrefix = props[i].replace('Perspective', '').toLowerCase();
+
            slider.animProp = '-' + slider.cssPrefix + '-transform';
+
            return true;
+
          }
+
        }
+
        return false;
+
      }());
+
      // if vertical mode always make maxSlides and minSlides equal
+
      if(slider.settings.mode == 'vertical') slider.settings.maxSlides = slider.settings.minSlides;
+
      // save original style data
+
      el.data("origStyle", el.attr("style"));
+
      el.children(slider.settings.slideSelector).each(function() {
+
        $(this).data("origStyle", $(this).attr("style"));
+
      });
+
      // perform all DOM / CSS modifications
+
      setup();
+
    }
+
 
+
    /**
+
    * Performs all DOM and CSS modifications
+
    */
+
    var setup = function(){
+
      // wrap el in a wrapper
+
      el.wrap('<div class="bx-wrapper"><div class="bx-viewport"></div></div>');
+
      // store a namspace reference to .bx-viewport
+
      slider.viewport = el.parent();
+
      // add a loading div to display while images are loading
+
      slider.loader = $('<div class="bx-loading" />');
+
      slider.viewport.prepend(slider.loader);
+
      // set el to a massive width, to hold any needed slides
+
      // also strip any margin and padding from el
+
      el.css({
+
        width: slider.settings.mode == 'horizontal' ? (slider.children.length * 100 + 215) + '%' : 'auto',
+
        position: 'relative'
+
      });
+
      // if using CSS, add the easing property
+
      if(slider.usingCSS && slider.settings.easing){
+
        el.css('-' + slider.cssPrefix + '-transition-timing-function', slider.settings.easing);
+
      // if not using CSS and no easing value was supplied, use the default JS animation easing (swing)
+
      }else if(!slider.settings.easing){
+
        slider.settings.easing = 'swing';
+
      }
+
      var slidesShowing = getNumberSlidesShowing();
+
      // make modifications to the viewport (.bx-viewport)
+
      slider.viewport.css({
+
        width: '100%',
+
        overflow: 'hidden',
+
        position: 'relative'
+
      });
+
      slider.viewport.parent().css({
+
        maxWidth: getViewportMaxWidth()
+
      });
+
      // make modification to the wrapper (.bx-wrapper)
+
      if(!slider.settings.pager) {
+
        slider.viewport.parent().css({
+
        margin: '0 auto 0px'
+
        });
+
      }
+
      // apply css to all slider children
+
      slider.children.css({
+
        'float': slider.settings.mode == 'horizontal' ? 'left' : 'none',
+
        listStyle: 'none',
+
        position: 'relative'
+
      });
+
      // apply the calculated width after the float is applied to prevent scrollbar interference
+
      slider.children.css('width', getSlideWidth());
+
      // if slideMargin is supplied, add the css
+
      if(slider.settings.mode == 'horizontal' && slider.settings.slideMargin > 0) slider.children.css('marginRight', slider.settings.slideMargin);
+
      if(slider.settings.mode == 'vertical' && slider.settings.slideMargin > 0) slider.children.css('marginBottom', slider.settings.slideMargin);
+
      // if "fade" mode, add positioning and z-index CSS
+
      if(slider.settings.mode == 'fade'){
+
        slider.children.css({
+
          position: 'absolute',
+
          zIndex: 0,
+
          display: 'none'
+
        });
+
        // prepare the z-index on the showing element
+
        slider.children.eq(slider.settings.startSlide).css({zIndex: 50, display: 'block'});
+
      }
+
      // create an element to contain all slider controls (pager, start / stop, etc)
+
      slider.controls.el = $('<div class="bx-controls" />');
+
      // if captions are requested, add them
+
      if(slider.settings.captions) appendCaptions();
+
      // check if startSlide is last slide
+
      slider.active.last = slider.settings.startSlide == getPagerQty() - 1;
+
      // if video is true, set up the fitVids plugin
+
      if(slider.settings.video) el.fitVids();
+
      // set the default preload selector (visible)
+
      var preloadSelector = slider.children.eq(slider.settings.startSlide);
+
      if (slider.settings.preloadImages == "all") preloadSelector = slider.children;
+
      // only check for control addition if not in "ticker" mode
+
      if(!slider.settings.ticker){
+
        // if pager is requested, add it
+
        if(slider.settings.pager) appendPager();
+
        // if controls are requested, add them
+
        if(slider.settings.controls) appendControls();
+
        // if auto is true, and auto controls are requested, add them
+
        if(slider.settings.auto && slider.settings.autoControls) appendControlsAuto();
+
        // if any control option is requested, add the controls wrapper
+
        if(slider.settings.controls || slider.settings.autoControls || slider.settings.pager) slider.viewport.after(slider.controls.el);
+
      // if ticker mode, do not allow a pager
+
      }else{
+
        slider.settings.pager = false;
+
      }
+
      // preload all images, then perform final DOM / CSS modifications that depend on images being loaded
+
      loadElements(preloadSelector, start);
+
    }
+
 
+
    var loadElements = function(selector, callback){
+
      var total = selector.find('img, iframe').length;
+
      if (total == 0){
+
        callback();
+
        return;
+
      }
+
      var count = 0;
+
      selector.find('img, iframe').each(function(){
+
        $(this).one('load', function() {
+
          if(++count == total) callback();
+
        }).each(function() {
+
          if(this.complete) $(this).load();
+
        });
+
      });
+
    }
+
 
+
    /**
+
    * Start the slider
+
    */
+
    var start = function(){
+
      // if infinite loop, prepare additional slides
+
      if(slider.settings.infiniteLoop && slider.settings.mode != 'fade' && !slider.settings.ticker){
+
        var slice = slider.settings.mode == 'vertical' ? slider.settings.minSlides : slider.settings.maxSlides;
+
        var sliceAppend = slider.children.slice(0, slice).clone().addClass('bx-clone');
+
        var slicePrepend = slider.children.slice(-slice).clone().addClass('bx-clone');
+
        el.append(sliceAppend).prepend(slicePrepend);
+
      }
+
      // remove the loading DOM element
+
      slider.loader.remove();
+
      // set the left / top position of "el"
+
      setSlidePosition();
+
      // if "vertical" mode, always use adaptiveHeight to prevent odd behavior
+
      if (slider.settings.mode == 'vertical') slider.settings.adaptiveHeight = true;
+
      // set the viewport height
+
      slider.viewport.height(getViewportHeight());
+
      // make sure everything is positioned just right (same as a window resize)
+
      el.redrawSlider();
+
      // onSliderLoad callback
+
      slider.settings.onSliderLoad(slider.active.index);
+
      // slider has been fully initialized
+
      slider.initialized = true;
+
      // bind the resize call to the window
+
      if (slider.settings.responsive) $(window).bind('resize', resizeWindow);
+
      // if auto is true, start the show
+
      if (slider.settings.auto && slider.settings.autoStart) initAuto();
+
      // if ticker is true, start the ticker
+
      if (slider.settings.ticker) initTicker();
+
      // if pager is requested, make the appropriate pager link active
+
      if (slider.settings.pager) updatePagerActive(slider.settings.startSlide);
+
      // check for any updates to the controls (like hideControlOnEnd updates)
+
      if (slider.settings.controls) updateDirectionControls();
+
      // if touchEnabled is true, setup the touch events
+
      if (slider.settings.touchEnabled && !slider.settings.ticker) initTouch();
+
    }
+
 
+
    /**
+
    * Returns the calculated height of the viewport, used to determine either adaptiveHeight or the maxHeight value
+
    */
+
    var getViewportHeight = function(){
+
      var height = 0;
+
      // first determine which children (slides) should be used in our height calculation
+
      var children = $();
+
      // if mode is not "vertical" and adaptiveHeight is false, include all children
+
      if(slider.settings.mode != 'vertical' && !slider.settings.adaptiveHeight){
+
        children = slider.children;
+
      }else{
+
        // if not carousel, return the single active child
+
        if(!slider.carousel){
+
          children = slider.children.eq(slider.active.index);
+
        // if carousel, return a slice of children
+
        }else{
+
          // get the individual slide index
+
          var currentIndex = slider.settings.moveSlides == 1 ? slider.active.index : slider.active.index * getMoveBy();
+
          // add the current slide to the children
+
          children = slider.children.eq(currentIndex);
+
          // cycle through the remaining "showing" slides
+
          for (i = 1; i <= slider.settings.maxSlides - 1; i++){
+
            // if looped back to the start
+
            if(currentIndex + i >= slider.children.length){
+
              children = children.add(slider.children.eq(i - 1));
+
            }else{
+
              children = children.add(slider.children.eq(currentIndex + i));
+
            }
+
          }
+
        }
+
      }
+
      // if "vertical" mode, calculate the sum of the heights of the children
+
      if(slider.settings.mode == 'vertical'){
+
        children.each(function(index) {
+
          height += $(this).outerHeight();
+
        });
+
        // add user-supplied margins
+
        if(slider.settings.slideMargin > 0){
+
          height += slider.settings.slideMargin * (slider.settings.minSlides - 1);
+
        }
+
      // if not "vertical" mode, calculate the max height of the children
+
      }else{
+
        height = Math.max.apply(Math, children.map(function(){
+
          return $(this).outerHeight(false);
+
        }).get());
+
      }
+
      return height;
+
    }
+
 
+
    /**
+
    * Returns the calculated width to be used for the outer wrapper / viewport
+
    */
+
    var getViewportMaxWidth = function(){
+
      var width = '100%';
+
      if(slider.settings.slideWidth > 0){
+
        if(slider.settings.mode == 'horizontal'){
+
          width = (slider.settings.maxSlides * slider.settings.slideWidth) + ((slider.settings.maxSlides - 1) * slider.settings.slideMargin);
+
        }else{
+
          width = slider.settings.slideWidth;
+
        }
+
      }
+
      return width;
+
    }
+
 
+
    /**
+
    * Returns the calculated width to be applied to each slide
+
    */
+
    var getSlideWidth = function(){
+
      // start with any user-supplied slide width
+
      var newElWidth = slider.settings.slideWidth;
+
      // get the current viewport width
+
      var wrapWidth = slider.viewport.width();
+
      // if slide width was not supplied, or is larger than the viewport use the viewport width
+
      if(slider.settings.slideWidth == 0 ||
+
        (slider.settings.slideWidth > wrapWidth && !slider.carousel) ||
+
        slider.settings.mode == 'vertical'){
+
        newElWidth = wrapWidth;
+
      // if carousel, use the thresholds to determine the width
+
      }else if(slider.settings.maxSlides > 1 && slider.settings.mode == 'horizontal'){
+
        if(wrapWidth > slider.maxThreshold){
+
          // newElWidth = (wrapWidth - (slider.settings.slideMargin * (slider.settings.maxSlides - 1))) / slider.settings.maxSlides;
+
        }else if(wrapWidth < slider.minThreshold){
+
          newElWidth = (wrapWidth - (slider.settings.slideMargin * (slider.settings.minSlides - 1))) / slider.settings.minSlides;
+
        }
+
      }
+
      return newElWidth;
+
    }
+
 
+
    /**
+
    * Returns the number of slides currently visible in the viewport (includes partially visible slides)
+
    */
+
    var getNumberSlidesShowing = function(){
+
      var slidesShowing = 1;
+
      if(slider.settings.mode == 'horizontal' && slider.settings.slideWidth > 0){
+
        // if viewport is smaller than minThreshold, return minSlides
+
        if(slider.viewport.width() < slider.minThreshold){
+
          slidesShowing = slider.settings.minSlides;
+
        // if viewport is larger than minThreshold, return maxSlides
+
        }else if(slider.viewport.width() > slider.maxThreshold){
+
          slidesShowing = slider.settings.maxSlides;
+
        // if viewport is between min / max thresholds, divide viewport width by first child width
+
        }else{
+
          var childWidth = slider.children.first().width();
+
          slidesShowing = Math.floor(slider.viewport.width() / childWidth);
+
        }
+
      // if "vertical" mode, slides showing will always be minSlides
+
      }else if(slider.settings.mode == 'vertical'){
+
        slidesShowing = slider.settings.minSlides;
+
      }
+
      return slidesShowing;
+
    }
+
 
+
    /**
+
    * Returns the number of pages (one full viewport of slides is one "page")
+
    */
+
    var getPagerQty = function(){
+
      var pagerQty = 0;
+
      // if moveSlides is specified by the user
+
      if(slider.settings.moveSlides > 0){
+
        if(slider.settings.infiniteLoop){
+
          pagerQty = slider.children.length / getMoveBy();
+
        }else{
+
          // use a while loop to determine pages
+
          var breakPoint = 0;
+
          var counter = 0
+
          // when breakpoint goes above children length, counter is the number of pages
+
          while (breakPoint < slider.children.length){
+
            ++pagerQty;
+
            breakPoint = counter + getNumberSlidesShowing();
+
            counter += slider.settings.moveSlides <= getNumberSlidesShowing() ? slider.settings.moveSlides : getNumberSlidesShowing();
+
          }
+
        }
+
      // if moveSlides is 0 (auto) divide children length by sides showing, then round up
+
      }else{
+
        pagerQty = Math.ceil(slider.children.length / getNumberSlidesShowing());
+
      }
+
      return pagerQty;
+
    }
+
 
+
    /**
+
    * Returns the number of indivual slides by which to shift the slider
+
    */
+
    var getMoveBy = function(){
+
      // if moveSlides was set by the user and moveSlides is less than number of slides showing
+
      if(slider.settings.moveSlides > 0 && slider.settings.moveSlides <= getNumberSlidesShowing()){
+
        return slider.settings.moveSlides;
+
      }
+
      // if moveSlides is 0 (auto)
+
      return getNumberSlidesShowing();
+
    }
+
 
+
    /**
+
    * Sets the slider's (el) left or top position
+
    */
+
    var setSlidePosition = function(){
+
      // if last slide, not infinite loop, and number of children is larger than specified maxSlides
+
      if(slider.children.length > slider.settings.maxSlides && slider.active.last && !slider.settings.infiniteLoop){
+
        if (slider.settings.mode == 'horizontal'){
+
          // get the last child's position
+
          var lastChild = slider.children.last();
+
          var position = lastChild.position();
+
          // set the left position
+
          setPositionProperty(-(position.left - (slider.viewport.width() - lastChild.width())), 'reset', 0);
+
        }else if(slider.settings.mode == 'vertical'){
+
          // get the last showing index's position
+
          var lastShowingIndex = slider.children.length - slider.settings.minSlides;
+
          var position = slider.children.eq(lastShowingIndex).position();
+
          // set the top position
+
          setPositionProperty(-position.top, 'reset', 0);
+
        }
+
      // if not last slide
+
      }else{
+
        // get the position of the first showing slide
+
        var position = slider.children.eq(slider.active.index * getMoveBy()).position();
+
        // check for last slide
+
        if (slider.active.index == getPagerQty() - 1) slider.active.last = true;
+
        // set the repective position
+
        if (position != undefined){
+
          if (slider.settings.mode == 'horizontal') setPositionProperty(-position.left, 'reset', 0);
+
          else if (slider.settings.mode == 'vertical') setPositionProperty(-position.top, 'reset', 0);
+
        }
+
      }
+
    }
+
 
+
    /**
+
    * Sets the el's animating property position (which in turn will sometimes animate el).
+
    * If using CSS, sets the transform property. If not using CSS, sets the top / left property.
+
    *
+
    * @param value (int)
+
    *  - the animating property's value
+
    *
+
    * @param type (string) 'slider', 'reset', 'ticker'
+
    *  - the type of instance for which the function is being
+
    *
+
    * @param duration (int)
+
    *  - the amount of time (in ms) the transition should occupy
+
    *
+
    * @param params (array) optional
+
    *  - an optional parameter containing any variables that need to be passed in
+
    */
+
    var setPositionProperty = function(value, type, duration, params){
+
      // use CSS transform
+
      if(slider.usingCSS){
+
        // determine the translate3d value
+
        var propValue = slider.settings.mode == 'vertical' ? 'translate3d(0, ' + value + 'px, 0)' : 'translate3d(' + value + 'px, 0, 0)';
+
        // add the CSS transition-duration
+
        el.css('-' + slider.cssPrefix + '-transition-duration', duration / 1000 + 's');
+
        if(type == 'slide'){
+
          // set the property value
+
          el.css(slider.animProp, propValue);
+
          // bind a callback method - executes when CSS transition completes
+
          el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function(){
+
            // unbind the callback
+
            el.unbind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd');
+
            updateAfterSlideTransition();
+
          });
+
        }else if(type == 'reset'){
+
          el.css(slider.animProp, propValue);
+
        }else if(type == 'ticker'){
+
          // make the transition use 'linear'
+
          el.css('-' + slider.cssPrefix + '-transition-timing-function', 'linear');
+
          el.css(slider.animProp, propValue);
+
          // bind a callback method - executes when CSS transition completes
+
          el.bind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd', function(){
+
            // unbind the callback
+
            el.unbind('transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd');
+
            // reset the position
+
            setPositionProperty(params['resetValue'], 'reset', 0);
+
            // start the loop again
+
            tickerLoop();
+
          });
+
        }
+
      // use JS animate
+
      }else{
+
        var animateObj = {};
+
        animateObj[slider.animProp] = value;
+
        if(type == 'slide'){
+
          el.animate(animateObj, duration, slider.settings.easing, function(){
+
            updateAfterSlideTransition();
+
          });
+
        }else if(type == 'reset'){
+
          el.css(slider.animProp, value)
+
        }else if(type == 'ticker'){
+
          el.animate(animateObj, speed, 'linear', function(){
+
            setPositionProperty(params['resetValue'], 'reset', 0);
+
            // run the recursive loop after animation
+
            tickerLoop();
+
          });
+
        }
+
      }
+
    }
+
 
+
    /**
+
    * Populates the pager with proper amount of pages
+
    */
+
    var populatePager = function(){
+
      var pagerHtml = '';
+
      var pagerQty = getPagerQty();
+
      // loop through each pager item
+
      for(var i=0; i < pagerQty; i++){
+
        var linkContent = '';
+
        // if a buildPager function is supplied, use it to get pager link value, else use index + 1
+
        if(slider.settings.buildPager && $.isFunction(slider.settings.buildPager)){
+
          linkContent = slider.settings.buildPager(i);
+
          slider.pagerEl.addClass('bx-custom-pager');
+
        }else{
+
          linkContent = i + 1;
+
          slider.pagerEl.addClass('bx-default-pager');
+
        }
+
        // var linkContent = slider.settings.buildPager && $.isFunction(slider.settings.buildPager) ? slider.settings.buildPager(i) : i + 1;
+
        // add the markup to the string
+
        pagerHtml += '<div class="bx-pager-item"><a href="" data-slide-index="' + i + '" class="bx-pager-link">' + linkContent + '</a></div>';
+
      };
+
      // populate the pager element with pager links
+
      slider.pagerEl.html(pagerHtml);
+
    }
+
 
+
    /**
+
    * Appends the pager to the controls element
+
    */
+
    var appendPager = function(){
+
      if(!slider.settings.pagerCustom){
+
        // create the pager DOM element
+
        slider.pagerEl = $('<div class="bx-pager" />');
+
        // if a pager selector was supplied, populate it with the pager
+
        if(slider.settings.pagerSelector){
+
          $(slider.settings.pagerSelector).html(slider.pagerEl);
+
        // if no pager selector was supplied, add it after the wrapper
+
        }else{
+
          slider.controls.el.addClass('bx-has-pager').append(slider.pagerEl);
+
        }
+
        // populate the pager
+
        populatePager();
+
      }else{
+
        slider.pagerEl = $(slider.settings.pagerCustom);
+
      }
+
      // assign the pager click binding
+
      slider.pagerEl.delegate('a', 'click', clickPagerBind);
+
    }
+
 
+
    /**
+
    * Appends prev / next controls to the controls element
+
    */
+
    var appendControls = function(){
+
      slider.controls.next = $('<a class="bx-next" href="">' + slider.settings.nextText + '</a>');
+
      slider.controls.prev = $('<a class="bx-prev" href="">' + slider.settings.prevText + '</a>');
+
      // bind click actions to the controls
+
      slider.controls.next.bind('click', clickNextBind);
+
      slider.controls.prev.bind('click', clickPrevBind);
+
      // if nextSlector was supplied, populate it
+
      if(slider.settings.nextSelector){
+
        $(slider.settings.nextSelector).append(slider.controls.next);
+
      }
+
      // if prevSlector was supplied, populate it
+
      if(slider.settings.prevSelector){
+
        $(slider.settings.prevSelector).append(slider.controls.prev);
+
      }
+
      // if no custom selectors were supplied
+
      if(!slider.settings.nextSelector && !slider.settings.prevSelector){
+
        // add the controls to the DOM
+
        slider.controls.directionEl = $('<div class="bx-controls-direction" />');
+
        // add the control elements to the directionEl
+
        slider.controls.directionEl.append(slider.controls.prev).append(slider.controls.next);
+
        // slider.viewport.append(slider.controls.directionEl);
+
        slider.controls.el.addClass('bx-has-controls-direction').append(slider.controls.directionEl);
+
      }
+
    }
+
 
+
    /**
+
    * Appends start / stop auto controls to the controls element
+
    */
+
    var appendControlsAuto = function(){
+
      slider.controls.start = $('<div class="bx-controls-auto-item"><a class="bx-start" href="">' + slider.settings.startText + '</a></div>');
+
      slider.controls.stop = $('<div class="bx-controls-auto-item"><a class="bx-stop" href="">' + slider.settings.stopText + '</a></div>');
+
      // add the controls to the DOM
+
      slider.controls.autoEl = $('<div class="bx-controls-auto" />');
+
      // bind click actions to the controls
+
      slider.controls.autoEl.delegate('.bx-start', 'click', clickStartBind);
+
      slider.controls.autoEl.delegate('.bx-stop', 'click', clickStopBind);
+
      // if autoControlsCombine, insert only the "start" control
+
      if(slider.settings.autoControlsCombine){
+
        slider.controls.autoEl.append(slider.controls.start);
+
      // if autoControlsCombine is false, insert both controls
+
      }else{
+
        slider.controls.autoEl.append(slider.controls.start).append(slider.controls.stop);
+
      }
+
      // if auto controls selector was supplied, populate it with the controls
+
      if(slider.settings.autoControlsSelector){
+
        $(slider.settings.autoControlsSelector).html(slider.controls.autoEl);
+
      // if auto controls selector was not supplied, add it after the wrapper
+
      }else{
+
        slider.controls.el.addClass('bx-has-controls-auto').append(slider.controls.autoEl);
+
      }
+
      // update the auto controls
+
      updateAutoControls(slider.settings.autoStart ? 'stop' : 'start');
+
    }
+
 
+
    /**
+
    * Appends image captions to the DOM
+
    */
+
    var appendCaptions = function(){
+
      // cycle through each child
+
      slider.children.each(function(index){
+
        // get the image title attribute
+
        var title = $(this).find('img:first').attr('title');
+
        // append the caption
+
        if (title != undefined && ('' + title).length) {
+
                    $(this).append('<div class="bx-caption"><span>' + title + '</span></div>');
+
                }
+
      });
+
    }
+
 
+
    /**
+
    * Click next binding
+
    *
+
    * @param e (event)
+
    *  - DOM event object
+
    */
+
    var clickNextBind = function(e){
+
      // if auto show is running, stop it
+
      if (slider.settings.auto) el.stopAuto();
+
      el.goToNextSlide();
+
      e.preventDefault();
+
    }
+
 
+
    /**
+
    * Click prev binding
+
    *
+
    * @param e (event)
+
    *  - DOM event object
+
    */
+
    var clickPrevBind = function(e){
+
      // if auto show is running, stop it
+
      if (slider.settings.auto) el.stopAuto();
+
      el.goToPrevSlide();
+
      e.preventDefault();
+
    }
+
 
+
    /**
+
    * Click start binding
+
    *
+
    * @param e (event)
+
    *  - DOM event object
+
    */
+
    var clickStartBind = function(e){
+
      el.startAuto();
+
      e.preventDefault();
+
    }
+
 
+
    /**
+
    * Click stop binding
+
    *
+
    * @param e (event)
+
    *  - DOM event object
+
    */
+
    var clickStopBind = function(e){
+
      el.stopAuto();
+
      e.preventDefault();
+
    }
+
 
+
    /**
+
    * Click pager binding
+
    *
+
    * @param e (event)
+
    *  - DOM event object
+
    */
+
    var clickPagerBind = function(e){
+
      // if auto show is running, stop it
+
      if (slider.settings.auto) el.stopAuto();
+
      var pagerLink = $(e.currentTarget);
+
      var pagerIndex = parseInt(pagerLink.attr('data-slide-index'));
+
      // if clicked pager link is not active, continue with the goToSlide call
+
      if(pagerIndex != slider.active.index) el.goToSlide(pagerIndex);
+
      e.preventDefault();
+
    }
+
 
+
    /**
+
    * Updates the pager links with an active class
+
    *
+
    * @param slideIndex (int)
+
    *  - index of slide to make active
+
    */
+
    var updatePagerActive = function(slideIndex){
+
      // if "short" pager type
+
      var len = slider.children.length; // nb of children
+
      if(slider.settings.pagerType == 'short'){
+
        if(slider.settings.maxSlides > 1) {
+
          len = Math.ceil(slider.children.length/slider.settings.maxSlides);
+
        }
+
        slider.pagerEl.html( (slideIndex + 1) + slider.settings.pagerShortSeparator + len);
+
        return;
+
      }
+
      // remove all pager active classes
+
      slider.pagerEl.find('a').removeClass('active');
+
      // apply the active class for all pagers
+
      slider.pagerEl.each(function(i, el) { $(el).find('a').eq(slideIndex).addClass('active'); });
+
    }
+
 
+
    /**
+
    * Performs needed actions after a slide transition
+
    */
+
    var updateAfterSlideTransition = function(){
+
      // if infinte loop is true
+
      if(slider.settings.infiniteLoop){
+
        var position = '';
+
        // first slide
+
        if(slider.active.index == 0){
+
          // set the new position
+
          position = slider.children.eq(0).position();
+
        // carousel, last slide
+
        }else if(slider.active.index == getPagerQty() - 1 && slider.carousel){
+
          position = slider.children.eq((getPagerQty() - 1) * getMoveBy()).position();
+
        // last slide
+
        }else if(slider.active.index == slider.children.length - 1){
+
          position = slider.children.eq(slider.children.length - 1).position();
+
        }
+
        if (slider.settings.mode == 'horizontal') { setPositionProperty(-position.left, 'reset', 0);; }
+
        else if (slider.settings.mode == 'vertical') { setPositionProperty(-position.top, 'reset', 0);; }
+
      }
+
      // declare that the transition is complete
+
      slider.working = false;
+
      // onSlideAfter callback
+
      slider.settings.onSlideAfter(slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index);
+
    }
+
 
+
    /**
+
    * Updates the auto controls state (either active, or combined switch)
+
    *
+
    * @param state (string) "start", "stop"
+
    *  - the new state of the auto show
+
    */
+
    var updateAutoControls = function(state){
+
      // if autoControlsCombine is true, replace the current control with the new state
+
      if(slider.settings.autoControlsCombine){
+
        slider.controls.autoEl.html(slider.controls[state]);
+
      // if autoControlsCombine is false, apply the "active" class to the appropriate control
+
      }else{
+
        slider.controls.autoEl.find('a').removeClass('active');
+
        slider.controls.autoEl.find('a:not(.bx-' + state + ')').addClass('active');
+
      }
+
    }
+
 
+
    /**
+
    * Updates the direction controls (checks if either should be hidden)
+
    */
+
    var updateDirectionControls = function(){
+
      if(getPagerQty() == 1){
+
        slider.controls.prev.addClass('disabled');
+
        slider.controls.next.addClass('disabled');
+
      }else if(!slider.settings.infiniteLoop && slider.settings.hideControlOnEnd){
+
        // if first slide
+
        if (slider.active.index == 0){
+
          slider.controls.prev.addClass('disabled');
+
          slider.controls.next.removeClass('disabled');
+
        // if last slide
+
        }else if(slider.active.index == getPagerQty() - 1){
+
          slider.controls.next.addClass('disabled');
+
          slider.controls.prev.removeClass('disabled');
+
        // if any slide in the middle
+
        }else{
+
          slider.controls.prev.removeClass('disabled');
+
          slider.controls.next.removeClass('disabled');
+
        }
+
      }
+
    }
+
 
+
    /**
+
    * Initialzes the auto process
+
    */
+
    var initAuto = function(){
+
      // if autoDelay was supplied, launch the auto show using a setTimeout() call
+
      if(slider.settings.autoDelay > 0){
+
        var timeout = setTimeout(el.startAuto, slider.settings.autoDelay);
+
      // if autoDelay was not supplied, start the auto show normally
+
      }else{
+
        el.startAuto();
+
      }
+
      // if autoHover is requested
+
      if(slider.settings.autoHover){
+
        // on el hover
+
        el.hover(function(){
+
          // if the auto show is currently playing (has an active interval)
+
          if(slider.interval){
+
            // stop the auto show and pass true agument which will prevent control update
+
            el.stopAuto(true);
+
            // create a new autoPaused value which will be used by the relative "mouseout" event
+
            slider.autoPaused = true;
+
          }
+
        }, function(){
+
          // if the autoPaused value was created be the prior "mouseover" event
+
          if(slider.autoPaused){
+
            // start the auto show and pass true agument which will prevent control update
+
            el.startAuto(true);
+
            // reset the autoPaused value
+
            slider.autoPaused = null;
+
          }
+
        });
+
      }
+
    }
+
 
+
    /**
+
    * Initialzes the ticker process
+
    */
+
    var initTicker = function(){
+
      var startPosition = 0;
+
      // if autoDirection is "next", append a clone of the entire slider
+
      if(slider.settings.autoDirection == 'next'){
+
        el.append(slider.children.clone().addClass('bx-clone'));
+
      // if autoDirection is "prev", prepend a clone of the entire slider, and set the left position
+
      }else{
+
        el.prepend(slider.children.clone().addClass('bx-clone'));
+
        var position = slider.children.first().position();
+
        startPosition = slider.settings.mode == 'horizontal' ? -position.left : -position.top;
+
      }
+
      setPositionProperty(startPosition, 'reset', 0);
+
      // do not allow controls in ticker mode
+
      slider.settings.pager = false;
+
      slider.settings.controls = false;
+
      slider.settings.autoControls = false;
+
      // if autoHover is requested
+
      if(slider.settings.tickerHover && !slider.usingCSS){
+
        // on el hover
+
        slider.viewport.hover(function(){
+
          el.stop();
+
        }, function(){
+
          // calculate the total width of children (used to calculate the speed ratio)
+
          var totalDimens = 0;
+
          slider.children.each(function(index){
+
            totalDimens += slider.settings.mode == 'horizontal' ? $(this).outerWidth(true) : $(this).outerHeight(true);
+
          });
+
          // calculate the speed ratio (used to determine the new speed to finish the paused animation)
+
          var ratio = slider.settings.speed / totalDimens;
+
          // determine which property to use
+
          var property = slider.settings.mode == 'horizontal' ? 'left' : 'top';
+
          // calculate the new speed
+
          var newSpeed = ratio * (totalDimens - (Math.abs(parseInt(el.css(property)))));
+
          tickerLoop(newSpeed);
+
        });
+
      }
+
      // start the ticker loop
+
      tickerLoop();
+
    }
+
 
+
    /**
+
    * Runs a continuous loop, news ticker-style
+
    */
+
    var tickerLoop = function(resumeSpeed){
+
      speed = resumeSpeed ? resumeSpeed : slider.settings.speed;
+
      var position = {left: 0, top: 0};
+
      var reset = {left: 0, top: 0};
+
      // if "next" animate left position to last child, then reset left to 0
+
      if(slider.settings.autoDirection == 'next'){
+
        position = el.find('.bx-clone').first().position();
+
      // if "prev" animate left position to 0, then reset left to first non-clone child
+
      }else{
+
        reset = slider.children.first().position();
+
      }
+
      var animateProperty = slider.settings.mode == 'horizontal' ? -position.left : -position.top;
+
      var resetValue = slider.settings.mode == 'horizontal' ? -reset.left : -reset.top;
+
      var params = {resetValue: resetValue};
+
      setPositionProperty(animateProperty, 'ticker', speed, params);
+
    }
+
 
+
    /**
+
    * Initializes touch events
+
    */
+
    var initTouch = function(){
+
      // initialize object to contain all touch values
+
      slider.touch = {
+
        start: {x: 0, y: 0},
+
        end: {x: 0, y: 0}
+
      }
+
      slider.viewport.bind('touchstart', onTouchStart);
+
    }
+
 
+
    /**
+
    * Event handler for "touchstart"
+
    *
+
    * @param e (event)
+
    *  - DOM event object
+
    */
+
    var onTouchStart = function(e){
+
      if(slider.working){
+
        e.preventDefault();
+
      }else{
+
        // record the original position when touch starts
+
        slider.touch.originalPos = el.position();
+
        var orig = e.originalEvent;
+
        // record the starting touch x, y coordinates
+
        slider.touch.start.x = orig.changedTouches[0].pageX;
+
        slider.touch.start.y = orig.changedTouches[0].pageY;
+
        // bind a "touchmove" event to the viewport
+
        slider.viewport.bind('touchmove', onTouchMove);
+
        // bind a "touchend" event to the viewport
+
        slider.viewport.bind('touchend', onTouchEnd);
+
      }
+
    }
+
 
+
    /**
+
    * Event handler for "touchmove"
+
    *
+
    * @param e (event)
+
    *  - DOM event object
+
    */
+
    var onTouchMove = function(e){
+
      var orig = e.originalEvent;
+
      // if scrolling on y axis, do not prevent default
+
      var xMovement = Math.abs(orig.changedTouches[0].pageX - slider.touch.start.x);
+
      var yMovement = Math.abs(orig.changedTouches[0].pageY - slider.touch.start.y);
+
      // x axis swipe
+
      if((xMovement * 3) > yMovement && slider.settings.preventDefaultSwipeX){
+
        e.preventDefault();
+
      // y axis swipe
+
      }else if((yMovement * 3) > xMovement && slider.settings.preventDefaultSwipeY){
+
        e.preventDefault();
+
      }
+
      if(slider.settings.mode != 'fade' && slider.settings.oneToOneTouch){
+
        var value = 0;
+
        // if horizontal, drag along x axis
+
        if(slider.settings.mode == 'horizontal'){
+
          var change = orig.changedTouches[0].pageX - slider.touch.start.x;
+
          value = slider.touch.originalPos.left + change;
+
        // if vertical, drag along y axis
+
        }else{
+
          var change = orig.changedTouches[0].pageY - slider.touch.start.y;
+
          value = slider.touch.originalPos.top + change;
+
        }
+
        setPositionProperty(value, 'reset', 0);
+
      }
+
    }
+
 
+
    /**
+
    * Event handler for "touchend"
+
    *
+
    * @param e (event)
+
    *  - DOM event object
+
    */
+
    var onTouchEnd = function(e){
+
      slider.viewport.unbind('touchmove', onTouchMove);
+
      var orig = e.originalEvent;
+
      var value = 0;
+
      // record end x, y positions
+
      slider.touch.end.x = orig.changedTouches[0].pageX;
+
      slider.touch.end.y = orig.changedTouches[0].pageY;
+
      // if fade mode, check if absolute x distance clears the threshold
+
      if(slider.settings.mode == 'fade'){
+
        var distance = Math.abs(slider.touch.start.x - slider.touch.end.x);
+
        if(distance >= slider.settings.swipeThreshold){
+
          slider.touch.start.x > slider.touch.end.x ? el.goToNextSlide() : el.goToPrevSlide();
+
          el.stopAuto();
+
        }
+
      // not fade mode
+
      }else{
+
        var distance = 0;
+
        // calculate distance and el's animate property
+
        if(slider.settings.mode == 'horizontal'){
+
          distance = slider.touch.end.x - slider.touch.start.x;
+
          value = slider.touch.originalPos.left;
+
        }else{
+
          distance = slider.touch.end.y - slider.touch.start.y;
+
          value = slider.touch.originalPos.top;
+
        }
+
        // if not infinite loop and first / last slide, do not attempt a slide transition
+
        if(!slider.settings.infiniteLoop && ((slider.active.index == 0 && distance > 0) || (slider.active.last && distance < 0))){
+
          setPositionProperty(value, 'reset', 200);
+
        }else{
+
          // check if distance clears threshold
+
          if(Math.abs(distance) >= slider.settings.swipeThreshold){
+
            distance < 0 ? el.goToNextSlide() : el.goToPrevSlide();
+
            el.stopAuto();
+
          }else{
+
            // el.animate(property, 200);
+
            setPositionProperty(value, 'reset', 200);
+
          }
+
        }
+
      }
+
      slider.viewport.unbind('touchend', onTouchEnd);
+
    }
+
 
+
    /**
+
    * Window resize event callback
+
    */
+
    var resizeWindow = function(e){
+
      // get the new window dimens (again, thank you IE)
+
      var windowWidthNew = $(window).width();
+
      var windowHeightNew = $(window).height();
+
      // make sure that it is a true window resize
+
      // *we must check this because our dinosaur friend IE fires a window resize event when certain DOM elements
+
      // are resized. Can you just die already?*
+
      if(windowWidth != windowWidthNew || windowHeight != windowHeightNew){
+
        // set the new window dimens
+
        windowWidth = windowWidthNew;
+
        windowHeight = windowHeightNew;
+
        // update all dynamic elements
+
        el.redrawSlider();
+
      }
+
    }
+
 
+
    /**
+
    * ===================================================================================
+
    * = PUBLIC FUNCTIONS
+
    * ===================================================================================
+
    */
+
 
+
    /**
+
    * Performs slide transition to the specified slide
+
    *
+
    * @param slideIndex (int)
+
    *  - the destination slide's index (zero-based)
+
    *
+
    * @param direction (string)
+
    *  - INTERNAL USE ONLY - the direction of travel ("prev" / "next")
+
    */
+
    el.goToSlide = function(slideIndex, direction){
+
      // if plugin is currently in motion, ignore request
+
      if(slider.working || slider.active.index == slideIndex) return;
+
      // declare that plugin is in motion
+
      slider.working = true;
+
      // store the old index
+
      slider.oldIndex = slider.active.index;
+
      // if slideIndex is less than zero, set active index to last child (this happens during infinite loop)
+
      if(slideIndex < 0){
+
        slider.active.index = getPagerQty() - 1;
+
      // if slideIndex is greater than children length, set active index to 0 (this happens during infinite loop)
+
      }else if(slideIndex >= getPagerQty()){
+
        slider.active.index = 0;
+
      // set active index to requested slide
+
      }else{
+
        slider.active.index = slideIndex;
+
      }
+
      // onSlideBefore, onSlideNext, onSlidePrev callbacks
+
      slider.settings.onSlideBefore(slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index);
+
      if(direction == 'next'){
+
        slider.settings.onSlideNext(slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index);
+
      }else if(direction == 'prev'){
+
        slider.settings.onSlidePrev(slider.children.eq(slider.active.index), slider.oldIndex, slider.active.index);
+
      }
+
      // check if last slide
+
      slider.active.last = slider.active.index >= getPagerQty() - 1;
+
      // update the pager with active class
+
      if(slider.settings.pager) updatePagerActive(slider.active.index);
+
      // // check for direction control update
+
      if(slider.settings.controls) updateDirectionControls();
+
      // if slider is set to mode: "fade"
+
      if(slider.settings.mode == 'fade'){
+
        // if adaptiveHeight is true and next height is different from current height, animate to the new height
+
        if(slider.settings.adaptiveHeight && slider.viewport.height() != getViewportHeight()){
+
          slider.viewport.animate({height: getViewportHeight()}, slider.settings.adaptiveHeightSpeed);
+
        }
+
        // fade out the visible child and reset its z-index value
+
        slider.children.filter(':visible').fadeOut(slider.settings.speed).css({zIndex: 0});
+
        // fade in the newly requested slide
+
        slider.children.eq(slider.active.index).css('zIndex', 51).fadeIn(slider.settings.speed, function(){
+
          $(this).css('zIndex', 50);
+
          updateAfterSlideTransition();
+
        });
+
      // slider mode is not "fade"
+
      }else{
+
        // if adaptiveHeight is true and next height is different from current height, animate to the new height
+
        if(slider.settings.adaptiveHeight && slider.viewport.height() != getViewportHeight()){
+
          slider.viewport.animate({height: getViewportHeight()}, slider.settings.adaptiveHeightSpeed);
+
        }
+
        var moveBy = 0;
+
        var position = {left: 0, top: 0};
+
        // if carousel and not infinite loop
+
        if(!slider.settings.infiniteLoop && slider.carousel && slider.active.last){
+
          if(slider.settings.mode == 'horizontal'){
+
            // get the last child position
+
            var lastChild = slider.children.eq(slider.children.length - 1);
+
            position = lastChild.position();
+
            // calculate the position of the last slide
+
            moveBy = slider.viewport.width() - lastChild.outerWidth();
+
          }else{
+
            // get last showing index position
+
            var lastShowingIndex = slider.children.length - slider.settings.minSlides;
+
            position = slider.children.eq(lastShowingIndex).position();
+
          }
+
          // horizontal carousel, going previous while on first slide (infiniteLoop mode)
+
        }else if(slider.carousel && slider.active.last && direction == 'prev'){
+
          // get the last child position
+
          var eq = slider.settings.moveSlides == 1 ? slider.settings.maxSlides - getMoveBy() : ((getPagerQty() - 1) * getMoveBy()) - (slider.children.length - slider.settings.maxSlides);
+
          var lastChild = el.children('.bx-clone').eq(eq);
+
          position = lastChild.position();
+
        // if infinite loop and "Next" is clicked on the last slide
+
        }else if(direction == 'next' && slider.active.index == 0){
+
          // get the last clone position
+
          position = el.find('> .bx-clone').eq(slider.settings.maxSlides).position();
+
          slider.active.last = false;
+
        // normal non-zero requests
+
        }else if(slideIndex >= 0){
+
          var requestEl = slideIndex * getMoveBy();
+
          position = slider.children.eq(requestEl).position();
+
        }
+
 
+
        /* If the position doesn't exist
+
        * (e.g. if you destroy the slider on a next click),
+
        * it doesn't throw an error.
+
        */
+
        if ("undefined" !== typeof(position)) {
+
          var value = slider.settings.mode == 'horizontal' ? -(position.left - moveBy) : -position.top;
+
          // plugin values to be animated
+
          setPositionProperty(value, 'slide', slider.settings.speed);
+
        }
+
      }
+
    }
+
 
+
    /**
+
    * Transitions to the next slide in the show
+
    */
+
    el.goToNextSlide = function(){
+
      // if infiniteLoop is false and last page is showing, disregard call
+
      if (!slider.settings.infiniteLoop && slider.active.last) return;
+
      var pagerIndex = parseInt(slider.active.index) + 1;
+
      el.goToSlide(pagerIndex, 'next');
+
    }
+
 
+
    /**
+
    * Transitions to the prev slide in the show
+
    */
+
    el.goToPrevSlide = function(){
+
      // if infiniteLoop is false and last page is showing, disregard call
+
      if (!slider.settings.infiniteLoop && slider.active.index == 0) return;
+
      var pagerIndex = parseInt(slider.active.index) - 1;
+
      el.goToSlide(pagerIndex, 'prev');
+
    }
+
 
+
    /**
+
    * Starts the auto show
+
    *
+
    * @param preventControlUpdate (boolean)
+
    *  - if true, auto controls state will not be updated
+
    */
+
    el.startAuto = function(preventControlUpdate){
+
      // if an interval already exists, disregard call
+
      if(slider.interval) return;
+
      // create an interval
+
      slider.interval = setInterval(function(){
+
        slider.settings.autoDirection == 'next' ? el.goToNextSlide() : el.goToPrevSlide();
+
      }, slider.settings.pause);
+
      // if auto controls are displayed and preventControlUpdate is not true
+
      if (slider.settings.autoControls && preventControlUpdate != true) updateAutoControls('stop');
+
    }
+
 
+
    /**
+
    * Stops the auto show
+
    *
+
    * @param preventControlUpdate (boolean)
+
    *  - if true, auto controls state will not be updated
+
    */
+
    el.stopAuto = function(preventControlUpdate){
+
      // if no interval exists, disregard call
+
      if(!slider.interval) return;
+
      // clear the interval
+
      clearInterval(slider.interval);
+
      slider.interval = null;
+
      // if auto controls are displayed and preventControlUpdate is not true
+
      if (slider.settings.autoControls && preventControlUpdate != true) updateAutoControls('start');
+
    }
+
 
+
    /**
+
    * Returns current slide index (zero-based)
+
    */
+
    el.getCurrentSlide = function(){
+
      return slider.active.index;
+
    }
+
 
+
    /**
+
    * Returns number of slides in show
+
    */
+
    el.getSlideCount = function(){
+
      return slider.children.length;
+
    }
+
 
+
    /**
+
    * Update all dynamic slider elements
+
    */
+
    el.redrawSlider = function(){
+
      // resize all children in ratio to new screen size
+
      slider.children.add(el.find('.bx-clone')).outerWidth(getSlideWidth());
+
      // adjust the height
+
      slider.viewport.css('height', getViewportHeight());
+
      // update the slide position
+
      if(!slider.settings.ticker) setSlidePosition();
+
      // if active.last was true before the screen resize, we want
+
      // to keep it last no matter what screen size we end on
+
      if (slider.active.last) slider.active.index = getPagerQty() - 1;
+
      // if the active index (page) no longer exists due to the resize, simply set the index as last
+
      if (slider.active.index >= getPagerQty()) slider.active.last = true;
+
      // if a pager is being displayed and a custom pager is not being used, update it
+
      if(slider.settings.pager && !slider.settings.pagerCustom){
+
        populatePager();
+
        updatePagerActive(slider.active.index);
+
      }
+
    }
+
 
+
    /**
+
    * Destroy the current instance of the slider (revert everything back to original state)
+
    */
+
    el.destroySlider = function(){
+
      // don't do anything if slider has already been destroyed
+
      if(!slider.initialized) return;
+
      slider.initialized = false;
+
      $('.bx-clone', this).remove();
+
      slider.children.each(function() {
+
        $(this).data("origStyle") != undefined ? $(this).attr("style", $(this).data("origStyle")) : $(this).removeAttr('style');
+
      });
+
      $(this).data("origStyle") != undefined ? this.attr("style", $(this).data("origStyle")) : $(this).removeAttr('style');
+
      $(this).unwrap().unwrap();
+
      if(slider.controls.el) slider.controls.el.remove();
+
      if(slider.controls.next) slider.controls.next.remove();
+
      if(slider.controls.prev) slider.controls.prev.remove();
+
      if(slider.pagerEl) slider.pagerEl.remove();
+
      $('.bx-caption', this).remove();
+
      if(slider.controls.autoEl) slider.controls.autoEl.remove();
+
      clearInterval(slider.interval);
+
      if(slider.settings.responsive) $(window).unbind('resize', resizeWindow);
+
    }
+
 
+
    /**
+
    * Reload the slider (revert all DOM changes, and re-initialize)
+
    */
+
    el.reloadSlider = function(settings){
+
      if (settings != undefined) options = settings;
+
      el.destroySlider();
+
      init();
+
    }
+
 
+
    init();
+
 
+
    // returns the current jQuery object
+
    return this;
+
  }
+
 
+
})(jQuery);
+
 
+
 
+
/*!
+
* fancyBox - jQuery Plugin
+
* version: 2.1.5 (Fri, 14 Jun 2013)
+
* @requires jQuery v1.6 or later
+
*
+
* Examples at http://fancyapps.com/fancybox/
+
* License: www.fancyapps.com/fancybox/#license
+
*
+
* Copyright 2012 Janis Skarnelis - janis@fancyapps.com
+
*
+
*/
+
 
+
(function (window, document, $, undefined) {
+
  "use strict";
+
 
+
  var H = $("html"),
+
    W = $(window),
+
    D = $(document),
+
    F = $.fancybox = function () {
+
      F.open.apply( this, arguments );
+
    },
+
    IE =  navigator.userAgent.match(/msie/i),
+
    didUpdate = null,
+
    isTouch  = document.createTouch !== undefined,
+
 
+
    isQuery = function(obj) {
+
      return obj && obj.hasOwnProperty && obj instanceof $;
+
    },
+
    isString = function(str) {
+
      return str && $.type(str) === "string";
+
    },
+
    isPercentage = function(str) {
+
      return isString(str) && str.indexOf('%') > 0;
+
    },
+
    isScrollable = function(el) {
+
      return (el && !(el.style.overflow && el.style.overflow === 'hidden') && ((el.clientWidth && el.scrollWidth > el.clientWidth) || (el.clientHeight && el.scrollHeight > el.clientHeight)));
+
    },
+
    getScalar = function(orig, dim) {
+
      var value = parseInt(orig, 10) || 0;
+
 
+
      if (dim && isPercentage(orig)) {
+
        value = F.getViewport()[ dim ] / 100 * value;
+
      }
+
 
+
      return Math.ceil(value);
+
    },
+
    getValue = function(value, dim) {
+
      return getScalar(value, dim) + 'px';
+
    };
+
 
+
  $.extend(F, {
+
    // The current version of fancyBox
+
    version: '2.1.5',
+
 
+
    defaults: {
+
      padding : 15,
+
      margin  : 20,
+
 
+
      width    : 800,
+
      height    : 600,
+
      minWidth  : 100,
+
      minHeight : 100,
+
      maxWidth  : 9999,
+
      maxHeight : 9999,
+
      pixelRatio: 1, // Set to 2 for retina display support
+
 
+
      autoSize  : true,
+
      autoHeight : false,
+
      autoWidth  : false,
+
 
+
      autoResize  : true,
+
      autoCenter  : !isTouch,
+
      fitToView  : true,
+
      aspectRatio : false,
+
      topRatio    : 0.5,
+
      leftRatio  : 0.5,
+
 
+
      scrolling : 'auto', // 'auto', 'yes' or 'no'
+
      wrapCSS  : '',
+
 
+
      arrows    : true,
+
      closeBtn  : true,
+
      closeClick : false,
+
      nextClick  : false,
+
      mouseWheel : true,
+
      autoPlay  : false,
+
      playSpeed  : 3000,
+
      preload    : 3,
+
      modal      : false,
+
      loop      : true,
+
 
+
      ajax  : {
+
        dataType : 'html',
+
        headers  : { 'X-fancyBox': true }
+
      },
+
      iframe : {
+
        scrolling : 'auto',
+
        preload  : true
+
      },
+
      swf : {
+
        wmode: 'transparent',
+
        allowfullscreen  : 'true',
+
        allowscriptaccess : 'always'
+
      },
+
 
+
      keys  : {
+
        next : {
+
          13 : 'left', // enter
+
          34 : 'up',  // page down
+
          39 : 'left', // right arrow
+
          40 : 'up'    // down arrow
+
        },
+
        prev : {
+
          8  : 'right',  // backspace
+
          33 : 'down',  // page up
+
          37 : 'right',  // left arrow
+
          38 : 'down'    // up arrow
+
        },
+
        close  : [27], // escape key
+
        play  : [32], // space - start/stop slideshow
+
        toggle : [70]  // letter "f" - toggle fullscreen
+
      },
+
 
+
      direction : {
+
        next : 'left',
+
        prev : 'right'
+
      },
+
 
+
      scrollOutside  : true,
+
 
+
      // Override some properties
+
      index  : 0,
+
      type    : null,
+
      href    : null,
+
      content : null,
+
      title  : null,
+
 
+
      // HTML templates
+
      tpl: {
+
        wrap    : '<div class="fancybox-wrap" tabIndex="-1"><div class="fancybox-skin"><div class="fancybox-outer"><div class="fancybox-inner"></div></div></div></div>',
+
        image    : '<img class="fancybox-image" src="{href}" alt="" />',
+
        iframe  : '<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" frameborder="0" vspace="0" hspace="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen' + (IE ? ' allowtransparency="true"' : '') + '></iframe>',
+
        error    : '<p class="fancybox-error">The requested content cannot be loaded.<br/>Please try again later.</p>',
+
        closeBtn : '<a title="Close" class="fancybox-item fancybox-close" href="javascript:;"></a>',
+
        next    : '<a title="Next" class="fancybox-nav fancybox-next" href="javascript:;"><span></span></a>',
+
        prev    : '<a title="Previous" class="fancybox-nav fancybox-prev" href="javascript:;"><span></span></a>'
+
      },
+
 
+
      // Properties for each animation type
+
      // Opening fancyBox
+
      openEffect  : 'fade', // 'elastic', 'fade' or 'none'
+
      openSpeed  : 250,
+
      openEasing  : 'swing',
+
      openOpacity : true,
+
      openMethod  : 'zoomIn',
+
 
+
      // Closing fancyBox
+
      closeEffect  : 'fade', // 'elastic', 'fade' or 'none'
+
      closeSpeed  : 250,
+
      closeEasing  : 'swing',
+
      closeOpacity : true,
+
      closeMethod  : 'zoomOut',
+
 
+
      // Changing next gallery item
+
      nextEffect : 'elastic', // 'elastic', 'fade' or 'none'
+
      nextSpeed  : 250,
+
      nextEasing : 'swing',
+
      nextMethod : 'changeIn',
+
 
+
      // Changing previous gallery item
+
      prevEffect : 'elastic', // 'elastic', 'fade' or 'none'
+
      prevSpeed  : 250,
+
      prevEasing : 'swing',
+
      prevMethod : 'changeOut',
+
 
+
      // Enable default helpers
+
      helpers : {
+
        overlay : true,
+
        title  : true
+
      },
+
 
+
      // Callbacks
+
      onCancel    : $.noop, // If canceling
+
      beforeLoad  : $.noop, // Before loading
+
      afterLoad    : $.noop, // After loading
+
      beforeShow  : $.noop, // Before changing in current item
+
      afterShow    : $.noop, // After opening
+
      beforeChange : $.noop, // Before changing gallery item
+
      beforeClose  : $.noop, // Before closing
+
      afterClose  : $.noop  // After closing
+
    },
+
 
+
    //Current state
+
    group    : {}, // Selected group
+
    opts    : {}, // Group options
+
    previous : null,  // Previous element
+
    coming  : null,  // Element being loaded
+
    current  : null,  // Currently loaded element
+
    isActive : false, // Is activated
+
    isOpen  : false, // Is currently open
+
    isOpened : false, // Have been fully opened at least once
+
 
+
    wrap  : null,
+
    skin  : null,
+
    outer : null,
+
    inner : null,
+
 
+
    player : {
+
      timer    : null,
+
      isActive : false
+
    },
+
 
+
    // Loaders
+
    ajaxLoad  : null,
+
    imgPreload : null,
+
 
+
    // Some collections
+
    transitions : {},
+
    helpers    : {},
+
 
+
    /*
+
    *  Static methods
+
    */
+
 
+
    open: function (group, opts) {
+
      if (!group) {
+
        return;
+
      }
+
 
+
      if (!$.isPlainObject(opts)) {
+
        opts = {};
+
      }
+
 
+
      // Close if already active
+
      if (false === F.close(true)) {
+
        return;
+
      }
+
 
+
      // Normalize group
+
      if (!$.isArray(group)) {
+
        group = isQuery(group) ? $(group).get() : [group];
+
      }
+
 
+
      // Recheck if the type of each element is `object` and set content type (image, ajax, etc)
+
      $.each(group, function(i, element) {
+
        var obj = {},
+
          href,
+
          title,
+
          content,
+
          type,
+
          rez,
+
          hrefParts,
+
          selector;
+
 
+
        if ($.type(element) === "object") {
+
          // Check if is DOM element
+
          if (element.nodeType) {
+
            element = $(element);
+
          }
+
 
+
          if (isQuery(element)) {
+
            obj = {
+
              href    : element.data('fancybox-href') || element.attr('href'),
+
              title  : element.data('fancybox-title') || element.attr('title'),
+
              isDom  : true,
+
              element : element
+
            };
+
 
+
            if ($.metadata) {
+
              $.extend(true, obj, element.metadata());
+
            }
+
 
+
          } else {
+
            obj = element;
+
          }
+
        }
+
 
+
        href  = opts.href  || obj.href || (isString(element) ? element : null);
+
        title = opts.title !== undefined ? opts.title : obj.title || '';
+
 
+
        content = opts.content || obj.content;
+
        type    = content ? 'html' : (opts.type  || obj.type);
+
 
+
        if (!type && obj.isDom) {
+
          type = element.data('fancybox-type');
+
 
+
          if (!type) {
+
            rez  = element.prop('class').match(/fancybox\.(\w+)/);
+
            type = rez ? rez[1] : null;
+
          }
+
        }
+
 
+
        if (isString(href)) {
+
          // Try to guess the content type
+
          if (!type) {
+
            if (F.isImage(href)) {
+
              type = 'image';
+
 
+
            } else if (F.isSWF(href)) {
+
              type = 'swf';
+
 
+
            } else if (href.charAt(0) === '#') {
+
              type = 'inline';
+
 
+
            } else if (isString(element)) {
+
              type    = 'html';
+
              content = element;
+
            }
+
          }
+
 
+
          // Split url into two pieces with source url and content selector, e.g,
+
          // "/mypage.html #my_id" will load "/mypage.html" and display element having id "my_id"
+
          if (type === 'ajax') {
+
            hrefParts = href.split(/\s+/, 2);
+
            href      = hrefParts.shift();
+
            selector  = hrefParts.shift();
+
          }
+
        }
+
 
+
        if (!content) {
+
          if (type === 'inline') {
+
            if (href) {
+
              content = $( isString(href) ? href.replace(/.*(?=#[^\s]+$)/, '') : href ); //strip for ie7
+
 
+
            } else if (obj.isDom) {
+
              content = element;
+
            }
+
 
+
          } else if (type === 'html') {
+
            content = href;
+
 
+
          } else if (!type && !href && obj.isDom) {
+
            type    = 'inline';
+
            content = element;
+
          }
+
        }
+
 
+
        $.extend(obj, {
+
          href    : href,
+
          type    : type,
+
          content  : content,
+
          title    : title,
+
          selector : selector
+
        });
+
 
+
        group[ i ] = obj;
+
      });
+
 
+
      // Extend the defaults
+
      F.opts = $.extend(true, {}, F.defaults, opts);
+
 
+
      // All options are merged recursive except keys
+
      if (opts.keys !== undefined) {
+
        F.opts.keys = opts.keys ? $.extend({}, F.defaults.keys, opts.keys) : false;
+
      }
+
 
+
      F.group = group;
+
 
+
      return F._start(F.opts.index);
+
    },
+
 
+
    // Cancel image loading or abort ajax request
+
    cancel: function () {
+
      var coming = F.coming;
+
 
+
      if (!coming || false === F.trigger('onCancel')) {
+
        return;
+
      }
+
 
+
      F.hideLoading();
+
 
+
      if (F.ajaxLoad) {
+
        F.ajaxLoad.abort();
+
      }
+
 
+
      F.ajaxLoad = null;
+
 
+
      if (F.imgPreload) {
+
        F.imgPreload.onload = F.imgPreload.onerror = null;
+
      }
+
 
+
      if (coming.wrap) {
+
        coming.wrap.stop(true, true).trigger('onReset').remove();
+
      }
+
 
+
      F.coming = null;
+
 
+
      // If the first item has been canceled, then clear everything
+
      if (!F.current) {
+
        F._afterZoomOut( coming );
+
      }
+
    },
+
 
+
    // Start closing animation if is open; remove immediately if opening/closing
+
    close: function (event) {
+
      F.cancel();
+
 
+
      if (false === F.trigger('beforeClose')) {
+
        return;
+
      }
+
 
+
      F.unbindEvents();
+
 
+
      if (!F.isActive) {
+
        return;
+
      }
+
 
+
      if (!F.isOpen || event === true) {
+
        $('.fancybox-wrap').stop(true).trigger('onReset').remove();
+
 
+
        F._afterZoomOut();
+
 
+
      } else {
+
        F.isOpen = F.isOpened = false;
+
        F.isClosing = true;
+
 
+
        $('.fancybox-item, .fancybox-nav').remove();
+
 
+
        F.wrap.stop(true, true).removeClass('fancybox-opened');
+
 
+
        F.transitions[ F.current.closeMethod ]();
+
      }
+
    },
+
 
+
    // Manage slideshow:
+
    //  $.fancybox.play(); - toggle slideshow
+
    //  $.fancybox.play( true ); - start
+
    //  $.fancybox.play( false ); - stop
+
    play: function ( action ) {
+
      var clear = function () {
+
          clearTimeout(F.player.timer);
+
        },
+
        set = function () {
+
          clear();
+
 
+
          if (F.current && F.player.isActive) {
+
            F.player.timer = setTimeout(F.next, F.current.playSpeed);
+
          }
+
        },
+
        stop = function () {
+
          clear();
+
 
+
          D.unbind('.player');
+
 
+
          F.player.isActive = false;
+
 
+
          F.trigger('onPlayEnd');
+
        },
+
        start = function () {
+
          if (F.current && (F.current.loop || F.current.index < F.group.length - 1)) {
+
            F.player.isActive = true;
+
 
+
            D.bind({
+
              'onCancel.player beforeClose.player' : stop,
+
              'onUpdate.player'  : set,
+
              'beforeLoad.player' : clear
+
            });
+
 
+
            set();
+
 
+
            F.trigger('onPlayStart');
+
          }
+
        };
+
 
+
      if (action === true || (!F.player.isActive && action !== false)) {
+
        start();
+
      } else {
+
        stop();
+
      }
+
    },
+
 
+
    // Navigate to next gallery item
+
    next: function ( direction ) {
+
      var current = F.current;
+
 
+
      if (current) {
+
        if (!isString(direction)) {
+
          direction = current.direction.next;
+
        }
+
 
+
        F.jumpto(current.index + 1, direction, 'next');
+
      }
+
    },
+
 
+
    // Navigate to previous gallery item
+
    prev: function ( direction ) {
+
      var current = F.current;
+
 
+
      if (current) {
+
        if (!isString(direction)) {
+
          direction = current.direction.prev;
+
        }
+
 
+
        F.jumpto(current.index - 1, direction, 'prev');
+
      }
+
    },
+
 
+
    // Navigate to gallery item by index
+
    jumpto: function ( index, direction, router ) {
+
      var current = F.current;
+
 
+
      if (!current) {
+
        return;
+
      }
+
 
+
      index = getScalar(index);
+
 
+
      F.direction = direction || current.direction[ (index >= current.index ? 'next' : 'prev') ];
+
      F.router    = router || 'jumpto';
+
 
+
      if (current.loop) {
+
        if (index < 0) {
+
          index = current.group.length + (index % current.group.length);
+
        }
+
 
+
        index = index % current.group.length;
+
      }
+
 
+
      if (current.group[ index ] !== undefined) {
+
        F.cancel();
+
 
+
        F._start(index);
+
      }
+
    },
+
 
+
    // Center inside viewport and toggle position type to fixed or absolute if needed
+
    reposition: function (e, onlyAbsolute) {
+
      var current = F.current,
+
        wrap    = current ? current.wrap : null,
+
        pos;
+
 
+
      if (wrap) {
+
        pos = F._getPosition(onlyAbsolute);
+
 
+
        if (e && e.type === 'scroll') {
+
          delete pos.position;
+
 
+
          wrap.stop(true, true).animate(pos, 200);
+
 
+
        } else {
+
          wrap.css(pos);
+
 
+
          current.pos = $.extend({}, current.dim, pos);
+
        }
+
      }
+
    },
+
 
+
    update: function (e) {
+
      var type = (e && e.type),
+
        anyway = !type || type === 'orientationchange';
+
 
+
      if (anyway) {
+
        clearTimeout(didUpdate);
+
 
+
        didUpdate = null;
+
      }
+
 
+
      if (!F.isOpen || didUpdate) {
+
        return;
+
      }
+
 
+
      didUpdate = setTimeout(function() {
+
        var current = F.current;
+
 
+
        if (!current || F.isClosing) {
+
          return;
+
        }
+
 
+
        F.wrap.removeClass('fancybox-tmp');
+
 
+
        if (anyway || type === 'load' || (type === 'resize' && current.autoResize)) {
+
          F._setDimension();
+
        }
+
 
+
        if (!(type === 'scroll' && current.canShrink)) {
+
          F.reposition(e);
+
        }
+
 
+
        F.trigger('onUpdate');
+
 
+
        didUpdate = null;
+
 
+
      }, (anyway && !isTouch ? 0 : 300));
+
    },
+
 
+
    // Shrink content to fit inside viewport or restore if resized
+
    toggle: function ( action ) {
+
      if (F.isOpen) {
+
        F.current.fitToView = $.type(action) === "boolean" ? action : !F.current.fitToView;
+
 
+
        // Help browser to restore document dimensions
+
        if (isTouch) {
+
          F.wrap.removeAttr('style').addClass('fancybox-tmp');
+
 
+
          F.trigger('onUpdate');
+
        }
+
 
+
        F.update();
+
      }
+
    },
+
 
+
    hideLoading: function () {
+
      D.unbind('.loading');
+
 
+
      $('#fancybox-loading').remove();
+
    },
+
 
+
    showLoading: function () {
+
      var el, viewport;
+
 
+
      F.hideLoading();
+
 
+
      el = $('<div id="fancybox-loading"><div></div></div>').click(F.cancel).appendTo('body');
+
 
+
      // If user will press the escape-button, the request will be canceled
+
      D.bind('keydown.loading', function(e) {
+
        if ((e.which || e.keyCode) === 27) {
+
          e.preventDefault();
+
 
+
          F.cancel();
+
        }
+
      });
+
 
+
      if (!F.defaults.fixed) {
+
        viewport = F.getViewport();
+
 
+
        el.css({
+
          position : 'absolute',
+
          top  : (viewport.h * 0.5) + viewport.y,
+
          left : (viewport.w * 0.5) + viewport.x
+
        });
+
      }
+
    },
+
 
+
    getViewport: function () {
+
      var locked = (F.current && F.current.locked) || false,
+
        rez    = {
+
          x: W.scrollLeft(),
+
          y: W.scrollTop()
+
        };
+
 
+
      if (locked) {
+
        rez.w = locked[0].clientWidth;
+
        rez.h = locked[0].clientHeight;
+
 
+
      } else {
+
        // See http://bugs.jquery.com/ticket/6724
+
        rez.w = isTouch && window.innerWidth  ? window.innerWidth  : W.width();
+
        rez.h = isTouch && window.innerHeight ? window.innerHeight : W.height();
+
      }
+
 
+
      return rez;
+
    },
+
 
+
    // Unbind the keyboard / clicking actions
+
    unbindEvents: function () {
+
      if (F.wrap && isQuery(F.wrap)) {
+
        F.wrap.unbind('.fb');
+
      }
+
 
+
      D.unbind('.fb');
+
      W.unbind('.fb');
+
    },
+
 
+
    bindEvents: function () {
+
      var current = F.current,
+
        keys;
+
 
+
      if (!current) {
+
        return;
+
      }
+
 
+
      // Changing document height on iOS devices triggers a 'resize' event,
+
      // that can change document height... repeating infinitely
+
      W.bind('orientationchange.fb' + (isTouch ? '' : ' resize.fb') + (current.autoCenter && !current.locked ? ' scroll.fb' : ''), F.update);
+
 
+
      keys = current.keys;
+
 
+
      if (keys) {
+
        D.bind('keydown.fb', function (e) {
+
          var code  = e.which || e.keyCode,
+
            target = e.target || e.srcElement;
+
 
+
          // Skip esc key if loading, because showLoading will cancel preloading
+
          if (code === 27 && F.coming) {
+
            return false;
+
          }
+
 
+
          // Ignore key combinations and key events within form elements
+
          if (!e.ctrlKey && !e.altKey && !e.shiftKey && !e.metaKey && !(target && (target.type || $(target).is('[contenteditable]')))) {
+
            $.each(keys, function(i, val) {
+
              if (current.group.length > 1 && val[ code ] !== undefined) {
+
                F[ i ]( val[ code ] );
+
 
+
                e.preventDefault();
+
                return false;
+
              }
+
 
+
              if ($.inArray(code, val) > -1) {
+
                F[ i ] ();
+
 
+
                e.preventDefault();
+
                return false;
+
              }
+
            });
+
          }
+
        });
+
      }
+
 
+
      if ($.fn.mousewheel && current.mouseWheel) {
+
        F.wrap.bind('mousewheel.fb', function (e, delta, deltaX, deltaY) {
+
          var target = e.target || null,
+
            parent = $(target),
+
            canScroll = false;
+
 
+
          while (parent.length) {
+
            if (canScroll || parent.is('.fancybox-skin') || parent.is('.fancybox-wrap')) {
+
              break;
+
            }
+
 
+
            canScroll = isScrollable( parent[0] );
+
            parent    = $(parent).parent();
+
          }
+
 
+
          if (delta !== 0 && !canScroll) {
+
            if (F.group.length > 1 && !current.canShrink) {
+
              if (deltaY > 0 || deltaX > 0) {
+
                F.prev( deltaY > 0 ? 'down' : 'left' );
+
 
+
              } else if (deltaY < 0 || deltaX < 0) {
+
                F.next( deltaY < 0 ? 'up' : 'right' );
+
              }
+
 
+
              e.preventDefault();
+
            }
+
          }
+
        });
+
      }
+
    },
+
 
+
    trigger: function (event, o) {
+
      var ret, obj = o || F.coming || F.current;
+
 
+
      if (!obj) {
+
        return;
+
      }
+
 
+
      if ($.isFunction( obj[event] )) {
+
        ret = obj[event].apply(obj, Array.prototype.slice.call(arguments, 1));
+
      }
+
 
+
      if (ret === false) {
+
        return false;
+
      }
+
 
+
      if (obj.helpers) {
+
        $.each(obj.helpers, function (helper, opts) {
+
          if (opts && F.helpers[helper] && $.isFunction(F.helpers[helper][event])) {
+
            F.helpers[helper][event]($.extend(true, {}, F.helpers[helper].defaults, opts), obj);
+
          }
+
        });
+
      }
+
 
+
      D.trigger(event);
+
    },
+
 
+
    isImage: function (str) {
+
      return isString(str) && str.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i);
+
    },
+
 
+
    isSWF: function (str) {
+
      return isString(str) && str.match(/\.(swf)((\?|#).*)?$/i);
+
    },
+
 
+
    _start: function (index) {
+
      var coming = {},
+
        obj,
+
        href,
+
        type,
+
        margin,
+
        padding;
+
 
+
      index = getScalar( index );
+
      obj  = F.group[ index ] || null;
+
 
+
      if (!obj) {
+
        return false;
+
      }
+
 
+
      coming = $.extend(true, {}, F.opts, obj);
+
 
+
      // Convert margin and padding properties to array - top, right, bottom, left
+
      margin  = coming.margin;
+
      padding = coming.padding;
+
 
+
      if ($.type(margin) === 'number') {
+
        coming.margin = [margin, margin, margin, margin];
+
      }
+
 
+
      if ($.type(padding) === 'number') {
+
        coming.padding = [padding, padding, padding, padding];
+
      }
+
 
+
      // 'modal' propery is just a shortcut
+
      if (coming.modal) {
+
        $.extend(true, coming, {
+
          closeBtn  : false,
+
          closeClick : false,
+
          nextClick  : false,
+
          arrows    : false,
+
          mouseWheel : false,
+
          keys      : null,
+
          helpers: {
+
            overlay : {
+
              closeClick : false
+
            }
+
          }
+
        });
+
      }
+
 
+
      // 'autoSize' property is a shortcut, too
+
      if (coming.autoSize) {
+
        coming.autoWidth = coming.autoHeight = true;
+
      }
+
 
+
      if (coming.width === 'auto') {
+
        coming.autoWidth = true;
+
      }
+
 
+
      if (coming.height === 'auto') {
+
        coming.autoHeight = true;
+
      }
+
 
+
      /*
+
      * Add reference to the group, so it`s possible to access from callbacks, example:
+
      * afterLoad : function() {
+
      *    this.title = 'Image ' + (this.index + 1) + ' of ' + this.group.length + (this.title ? ' - ' + this.title : '');
+
      * }
+
      */
+
 
+
      coming.group  = F.group;
+
      coming.index  = index;
+
 
+
      // Give a chance for callback or helpers to update coming item (type, title, etc)
+
      F.coming = coming;
+
 
+
      if (false === F.trigger('beforeLoad')) {
+
        F.coming = null;
+
 
+
        return;
+
      }
+
 
+
      type = coming.type;
+
      href = coming.href;
+
 
+
      if (!type) {
+
        F.coming = null;
+
 
+
        //If we can not determine content type then drop silently or display next/prev item if looping through gallery
+
        if (F.current && F.router && F.router !== 'jumpto') {
+
          F.current.index = index;
+
 
+
          return F[ F.router ]( F.direction );
+
        }
+
 
+
        return false;
+
      }
+
 
+
      F.isActive = true;
+
 
+
      if (type === 'image' || type === 'swf') {
+
        coming.autoHeight = coming.autoWidth = false;
+
        coming.scrolling  = 'visible';
+
      }
+
 
+
      if (type === 'image') {
+
        coming.aspectRatio = true;
+
      }
+
 
+
      if (type === 'iframe' && isTouch) {
+
        coming.scrolling = 'scroll';
+
      }
+
 
+
      // Build the neccessary markup
+
      coming.wrap = $(coming.tpl.wrap).addClass('fancybox-' + (isTouch ? 'mobile' : 'desktop') + ' fancybox-type-' + type + ' fancybox-tmp ' + coming.wrapCSS).appendTo( coming.parent || 'body' );
+
 
+
      $.extend(coming, {
+
        skin  : $('.fancybox-skin',  coming.wrap),
+
        outer : $('.fancybox-outer', coming.wrap),
+
        inner : $('.fancybox-inner', coming.wrap)
+
      });
+
 
+
      $.each(["Top", "Right", "Bottom", "Left"], function(i, v) {
+
        coming.skin.css('padding' + v, getValue(coming.padding[ i ]));
+
      });
+
 
+
      F.trigger('onReady');
+
 
+
      // Check before try to load; 'inline' and 'html' types need content, others - href
+
      if (type === 'inline' || type === 'html') {
+
        if (!coming.content || !coming.content.length) {
+
          return F._error( 'content' );
+
        }
+
 
+
      } else if (!href) {
+
        return F._error( 'href' );
+
      }
+
 
+
      if (type === 'image') {
+
        F._loadImage();
+
 
+
      } else if (type === 'ajax') {
+
        F._loadAjax();
+
 
+
      } else if (type === 'iframe') {
+
        F._loadIframe();
+
 
+
      } else {
+
        F._afterLoad();
+
      }
+
    },
+
 
+
    _error: function ( type ) {
+
      $.extend(F.coming, {
+
        type      : 'html',
+
        autoWidth  : true,
+
        autoHeight : true,
+
        minWidth  : 0,
+
        minHeight  : 0,
+
        scrolling  : 'no',
+
        hasError  : type,
+
        content    : F.coming.tpl.error
+
      });
+
 
+
      F._afterLoad();
+
    },
+
 
+
    _loadImage: function () {
+
      // Reset preload image so it is later possible to check "complete" property
+
      var img = F.imgPreload = new Image();
+
 
+
      img.onload = function () {
+
        this.onload = this.onerror = null;
+
 
+
        F.coming.width  = this.width / F.opts.pixelRatio;
+
        F.coming.height = this.height / F.opts.pixelRatio;
+
 
+
        F._afterLoad();
+
      };
+
 
+
      img.onerror = function () {
+
        this.onload = this.onerror = null;
+
 
+
        F._error( 'image' );
+
      };
+
 
+
      img.src = F.coming.href;
+
 
+
      if (img.complete !== true) {
+
        F.showLoading();
+
      }
+
    },
+
 
+
    _loadAjax: function () {
+
      var coming = F.coming;
+
 
+
      F.showLoading();
+
 
+
      F.ajaxLoad = $.ajax($.extend({}, coming.ajax, {
+
        url: coming.href,
+
        error: function (jqXHR, textStatus) {
+
          if (F.coming && textStatus !== 'abort') {
+
            F._error( 'ajax', jqXHR );
+
 
+
          } else {
+
            F.hideLoading();
+
          }
+
        },
+
        success: function (data, textStatus) {
+
          if (textStatus === 'success') {
+
            coming.content = data;
+
 
+
            F._afterLoad();
+
          }
+
        }
+
      }));
+
    },
+
 
+
    _loadIframe: function() {
+
      var coming = F.coming,
+
        iframe = $(coming.tpl.iframe.replace(/\{rnd\}/g, new Date().getTime()))
+
          .attr('scrolling', isTouch ? 'auto' : coming.iframe.scrolling)
+
          .attr('src', coming.href);
+
 
+
      // This helps IE
+
      $(coming.wrap).bind('onReset', function () {
+
        try {
+
          $(this).find('iframe').hide().attr('src', '//about:blank').end().empty();
+
        } catch (e) {}
+
      });
+
 
+
      if (coming.iframe.preload) {
+
        F.showLoading();
+
 
+
        iframe.one('load', function() {
+
          $(this).data('ready', 1);
+
 
+
          // iOS will lose scrolling if we resize
+
          if (!isTouch) {
+
            $(this).bind('load.fb', F.update);
+
          }
+
 
+
          // Without this trick:
+
          //  - iframe won't scroll on iOS devices
+
          //  - IE7 sometimes displays empty iframe
+
          $(this).parents('.fancybox-wrap').width('100%').removeClass('fancybox-tmp').show();
+
 
+
          F._afterLoad();
+
        });
+
      }
+
 
+
      coming.content = iframe.appendTo( coming.inner );
+
 
+
      if (!coming.iframe.preload) {
+
        F._afterLoad();
+
      }
+
    },
+
 
+
    _preloadImages: function() {
+
      var group  = F.group,
+
        current = F.current,
+
        len    = group.length,
+
        cnt    = current.preload ? Math.min(current.preload, len - 1) : 0,
+
        item,
+
        i;
+
 
+
      for (i = 1; i <= cnt; i += 1) {
+
        item = group[ (current.index + i ) % len ];
+
 
+
        if (item.type === 'image' && item.href) {
+
          new Image().src = item.href;
+
        }
+
      }
+
    },
+
 
+
    _afterLoad: function () {
+
      var coming  = F.coming,
+
        previous = F.current,
+
        placeholder = 'fancybox-placeholder',
+
        current,
+
        content,
+
        type,
+
        scrolling,
+
        href,
+
        embed;
+
 
+
      F.hideLoading();
+
 
+
      if (!coming || F.isActive === false) {
+
        return;
+
      }
+
 
+
      if (false === F.trigger('afterLoad', coming, previous)) {
+
        coming.wrap.stop(true).trigger('onReset').remove();
+
 
+
        F.coming = null;
+
 
+
        return;
+
      }
+
 
+
      if (previous) {
+
        F.trigger('beforeChange', previous);
+
 
+
        previous.wrap.stop(true).removeClass('fancybox-opened')
+
          .find('.fancybox-item, .fancybox-nav')
+
          .remove();
+
      }
+
 
+
      F.unbindEvents();
+
 
+
      current  = coming;
+
      content  = coming.content;
+
      type      = coming.type;
+
      scrolling = coming.scrolling;
+
 
+
      $.extend(F, {
+
        wrap  : current.wrap,
+
        skin  : current.skin,
+
        outer : current.outer,
+
        inner : current.inner,
+
        current  : current,
+
        previous : previous
+
      });
+
 
+
      href = current.href;
+
 
+
      switch (type) {
+
        case 'inline':
+
        case 'ajax':
+
        case 'html':
+
          if (current.selector) {
+
            content = $('<div>').html(content).find(current.selector);
+
 
+
          } else if (isQuery(content)) {
+
            if (!content.data(placeholder)) {
+
              content.data(placeholder, $('<div class="' + placeholder + '"></div>').insertAfter( content ).hide() );
+
            }
+
 
+
            content = content.show().detach();
+
 
+
            current.wrap.bind('onReset', function () {
+
              if ($(this).find(content).length) {
+
                content.hide().replaceAll( content.data(placeholder) ).data(placeholder, false);
+
              }
+
            });
+
          }
+
        break;
+
 
+
        case 'image':
+
          content = current.tpl.image.replace('{href}', href);
+
        break;
+
 
+
        case 'swf':
+
          content = '<object id="fancybox-swf" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%"><param name="movie" value="' + href + '"></param>';
+
          embed  = '';
+
 
+
          $.each(current.swf, function(name, val) {
+
            content += '<param name="' + name + '" value="' + val + '"></param>';
+
            embed  += ' ' + name + '="' + val + '"';
+
          });
+
 
+
          content += '<embed src="' + href + '" type="application/x-shockwave-flash" width="100%" height="100%"' + embed + '></embed></object>';
+
        break;
+
      }
+
 
+
      if (!(isQuery(content) && content.parent().is(current.inner))) {
+
        current.inner.append( content );
+
      }
+
 
+
      // Give a chance for helpers or callbacks to update elements
+
      F.trigger('beforeShow');
+
 
+
      // Set scrolling before calculating dimensions
+
      current.inner.css('overflow', scrolling === 'yes' ? 'scroll' : (scrolling === 'no' ? 'hidden' : scrolling));
+
 
+
      // Set initial dimensions and start position
+
      F._setDimension();
+
 
+
      F.reposition();
+
 
+
      F.isOpen = false;
+
      F.coming = null;
+
 
+
      F.bindEvents();
+
 
+
      if (!F.isOpened) {
+
        $('.fancybox-wrap').not( current.wrap ).stop(true).trigger('onReset').remove();
+
 
+
      } else if (previous.prevMethod) {
+
        F.transitions[ previous.prevMethod ]();
+
      }
+
 
+
      F.transitions[ F.isOpened ? current.nextMethod : current.openMethod ]();
+
 
+
      F._preloadImages();
+
    },
+
 
+
    _setDimension: function () {
+
      var viewport  = F.getViewport(),
+
        steps      = 0,
+
        canShrink  = false,
+
        canExpand  = false,
+
        wrap      = F.wrap,
+
        skin      = F.skin,
+
        inner      = F.inner,
+
        current    = F.current,
+
        width      = current.width,
+
        height    = current.height,
+
        minWidth  = current.minWidth,
+
        minHeight  = current.minHeight,
+
        maxWidth  = current.maxWidth,
+
        maxHeight  = current.maxHeight,
+
        scrolling  = current.scrolling,
+
        scrollOut  = current.scrollOutside ? current.scrollbarWidth : 0,
+
        margin    = current.margin,
+
        wMargin    = getScalar(margin[1] + margin[3]),
+
        hMargin    = getScalar(margin[0] + margin[2]),
+
        wPadding,
+
        hPadding,
+
        wSpace,
+
        hSpace,
+
        origWidth,
+
        origHeight,
+
        origMaxWidth,
+
        origMaxHeight,
+
        ratio,
+
        width_,
+
        height_,
+
        maxWidth_,
+
        maxHeight_,
+
        iframe,
+
        body;
+
 
+
      // Reset dimensions so we could re-check actual size
+
      wrap.add(skin).add(inner).width('auto').height('auto').removeClass('fancybox-tmp');
+
 
+
      wPadding = getScalar(skin.outerWidth(true)  - skin.width());
+
      hPadding = getScalar(skin.outerHeight(true) - skin.height());
+
 
+
      // Any space between content and viewport (margin, padding, border, title)
+
      wSpace = wMargin + wPadding;
+
      hSpace = hMargin + hPadding;
+
 
+
      origWidth  = isPercentage(width)  ? (viewport.w - wSpace) * getScalar(width)  / 100 : width;
+
      origHeight = isPercentage(height) ? (viewport.h - hSpace) * getScalar(height) / 100 : height;
+
 
+
      if (current.type === 'iframe') {
+
        iframe = current.content;
+
 
+
        if (current.autoHeight && iframe.data('ready') === 1) {
+
          try {
+
            if (iframe[0].contentWindow.document.location) {
+
              inner.width( origWidth ).height(9999);
+
 
+
              body = iframe.contents().find('body');
+
 
+
              if (scrollOut) {
+
                body.css('overflow-x', 'hidden');
+
              }
+
 
+
              origHeight = body.outerHeight(true);
+
            }
+
 
+
          } catch (e) {}
+
        }
+
 
+
      } else if (current.autoWidth || current.autoHeight) {
+
        inner.addClass( 'fancybox-tmp' );
+
 
+
        // Set width or height in case we need to calculate only one dimension
+
        if (!current.autoWidth) {
+
          inner.width( origWidth );
+
        }
+
 
+
        if (!current.autoHeight) {
+
          inner.height( origHeight );
+
        }
+
 
+
        if (current.autoWidth) {
+
          origWidth = inner.width();
+
        }
+
 
+
        if (current.autoHeight) {
+
          origHeight = inner.height();
+
        }
+
 
+
        inner.removeClass( 'fancybox-tmp' );
+
      }
+
 
+
      width  = getScalar( origWidth );
+
      height = getScalar( origHeight );
+
 
+
      ratio  = origWidth / origHeight;
+
 
+
      // Calculations for the content
+
      minWidth  = getScalar(isPercentage(minWidth) ? getScalar(minWidth, 'w') - wSpace : minWidth);
+
      maxWidth  = getScalar(isPercentage(maxWidth) ? getScalar(maxWidth, 'w') - wSpace : maxWidth);
+
 
+
      minHeight = getScalar(isPercentage(minHeight) ? getScalar(minHeight, 'h') - hSpace : minHeight);
+
      maxHeight = getScalar(isPercentage(maxHeight) ? getScalar(maxHeight, 'h') - hSpace : maxHeight);
+
 
+
      // These will be used to determine if wrap can fit in the viewport
+
      origMaxWidth  = maxWidth;
+
      origMaxHeight = maxHeight;
+
 
+
      if (current.fitToView) {
+
        maxWidth  = Math.min(viewport.w - wSpace, maxWidth);
+
        maxHeight = Math.min(viewport.h - hSpace, maxHeight);
+
      }
+
 
+
      maxWidth_  = viewport.w - wMargin;
+
      maxHeight_ = viewport.h - hMargin;
+
 
+
      if (current.aspectRatio) {
+
        if (width > maxWidth) {
+
          width  = maxWidth;
+
          height = getScalar(width / ratio);
+
        }
+
 
+
        if (height > maxHeight) {
+
          height = maxHeight;
+
          width  = getScalar(height * ratio);
+
        }
+
 
+
        if (width < minWidth) {
+
          width  = minWidth;
+
          height = getScalar(width / ratio);
+
        }
+
 
+
        if (height < minHeight) {
+
          height = minHeight;
+
          width  = getScalar(height * ratio);
+
        }
+
 
+
      } else {
+
        width = Math.max(minWidth, Math.min(width, maxWidth));
+
 
+
        if (current.autoHeight && current.type !== 'iframe') {
+
          inner.width( width );
+
 
+
          height = inner.height();
+
        }
+
 
+
        height = Math.max(minHeight, Math.min(height, maxHeight));
+
      }
+
 
+
      // Try to fit inside viewport (including the title)
+
      if (current.fitToView) {
+
        inner.width( width ).height( height );
+
 
+
        wrap.width( width + wPadding );
+
 
+
        // Real wrap dimensions
+
        width_  = wrap.width();
+
        height_ = wrap.height();
+
 
+
        if (current.aspectRatio) {
+
          while ((width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight) {
+
            if (steps++ > 19) {
+
              break;
+
            }
+
 
+
            height = Math.max(minHeight, Math.min(maxHeight, height - 10));
+
            width  = getScalar(height * ratio);
+
 
+
            if (width < minWidth) {
+
              width  = minWidth;
+
              height = getScalar(width / ratio);
+
            }
+
 
+
            if (width > maxWidth) {
+
              width  = maxWidth;
+
              height = getScalar(width / ratio);
+
            }
+
 
+
            inner.width( width ).height( height );
+
 
+
            wrap.width( width + wPadding );
+
 
+
            width_  = wrap.width();
+
            height_ = wrap.height();
+
          }
+
 
+
        } else {
+
          width  = Math.max(minWidth,  Math.min(width,  width  - (width_  - maxWidth_)));
+
          height = Math.max(minHeight, Math.min(height, height - (height_ - maxHeight_)));
+
        }
+
      }
+
 
+
      if (scrollOut && scrolling === 'auto' && height < origHeight && (width + wPadding + scrollOut) < maxWidth_) {
+
        width += scrollOut;
+
      }
+
 
+
      inner.width( width ).height( height );
+
 
+
      wrap.width( width + wPadding );
+
 
+
      width_  = wrap.width();
+
      height_ = wrap.height();
+
 
+
      canShrink = (width_ > maxWidth_ || height_ > maxHeight_) && width > minWidth && height > minHeight;
+
      canExpand = current.aspectRatio ? (width < origMaxWidth && height < origMaxHeight && width < origWidth && height < origHeight) : ((width < origMaxWidth || height < origMaxHeight) && (width < origWidth || height < origHeight));
+
 
+
      $.extend(current, {
+
        dim : {
+
          width : getValue( width_ ),
+
          height  : getValue( height_ )
+
        },
+
        origWidth  : origWidth,
+
        origHeight : origHeight,
+
        canShrink  : canShrink,
+
        canExpand  : canExpand,
+
        wPadding  : wPadding,
+
        hPadding  : hPadding,
+
        wrapSpace  : height_ - skin.outerHeight(true),
+
        skinSpace  : skin.height() - height
+
      });
+
 
+
      if (!iframe && current.autoHeight && height > minHeight && height < maxHeight && !canExpand) {
+
        inner.height('auto');
+
      }
+
    },
+
 
+
    _getPosition: function (onlyAbsolute) {
+
      var current  = F.current,
+
        viewport = F.getViewport(),
+
        margin  = current.margin,
+
        width    = F.wrap.width()  + margin[1] + margin[3],
+
        height  = F.wrap.height() + margin[0] + margin[2],
+
        rez      = {
+
          position: 'absolute',
+
          top  : margin[0],
+
          left : margin[3]
+
        };
+
 
+
      if (current.autoCenter && current.fixed && !onlyAbsolute && height <= viewport.h && width <= viewport.w) {
+
        rez.position = 'fixed';
+
 
+
      } else if (!current.locked) {
+
        rez.top  += viewport.y;
+
        rez.left += viewport.x;
+
      }
+
 
+
      rez.top  = getValue(Math.max(rez.top,  rez.top  + ((viewport.h - height) * current.topRatio)));
+
      rez.left = getValue(Math.max(rez.left, rez.left + ((viewport.w - width)  * current.leftRatio)));
+
 
+
      return rez;
+
    },
+
 
+
    _afterZoomIn: function () {
+
      var current = F.current;
+
 
+
      if (!current) {
+
        return;
+
      }
+
 
+
      F.isOpen = F.isOpened = true;
+
 
+
      F.wrap.css('overflow', 'visible').addClass('fancybox-opened');
+
 
+
      F.update();
+
 
+
      // Assign a click event
+
      if ( current.closeClick || (current.nextClick && F.group.length > 1) ) {
+
        F.inner.css('cursor', 'pointer').bind('click.fb', function(e) {
+
          if (!$(e.target).is('a') && !$(e.target).parent().is('a')) {
+
            e.preventDefault();
+
 
+
            F[ current.closeClick ? 'close' : 'next' ]();
+
          }
+
        });
+
      }
+
 
+
      // Create a close button
+
      if (current.closeBtn) {
+
        $(current.tpl.closeBtn).appendTo(F.skin).bind('click.fb', function(e) {
+
          e.preventDefault();
+
 
+
          F.close();
+
        });
+
      }
+
 
+
      // Create navigation arrows
+
      if (current.arrows && F.group.length > 1) {
+
        if (current.loop || current.index > 0) {
+
          $(current.tpl.prev).appendTo(F.outer).bind('click.fb', F.prev);
+
        }
+
 
+
        if (current.loop || current.index < F.group.length - 1) {
+
          $(current.tpl.next).appendTo(F.outer).bind('click.fb', F.next);
+
        }
+
      }
+
 
+
      F.trigger('afterShow');
+
 
+
      // Stop the slideshow if this is the last item
+
      if (!current.loop && current.index === current.group.length - 1) {
+
        F.play( false );
+
 
+
      } else if (F.opts.autoPlay && !F.player.isActive) {
+
        F.opts.autoPlay = false;
+
 
+
        F.play();
+
      }
+
    },
+
 
+
    _afterZoomOut: function ( obj ) {
+
      obj = obj || F.current;
+
 
+
      $('.fancybox-wrap').trigger('onReset').remove();
+
 
+
      $.extend(F, {
+
        group  : {},
+
        opts  : {},
+
        router : false,
+
        current  : null,
+
        isActive  : false,
+
        isOpened  : false,
+
        isOpen    : false,
+
        isClosing : false,
+
        wrap  : null,
+
        skin  : null,
+
        outer  : null,
+
        inner  : null
+
      });
+
 
+
      F.trigger('afterClose', obj);
+
    }
+
  });
+
 
+
  /*
+
  *  Default transitions
+
  */
+
 
+
  F.transitions = {
+
    getOrigPosition: function () {
+
      var current  = F.current,
+
        element  = current.element,
+
        orig    = current.orig,
+
        pos      = {},
+
        width    = 50,
+
        height  = 50,
+
        hPadding = current.hPadding,
+
        wPadding = current.wPadding,
+
        viewport = F.getViewport();
+
 
+
      if (!orig && current.isDom && element.is(':visible')) {
+
        orig = element.find('img:first');
+
 
+
        if (!orig.length) {
+
          orig = element;
+
        }
+
      }
+
 
+
      if (isQuery(orig)) {
+
        pos = orig.offset();
+
 
+
        if (orig.is('img')) {
+
          width  = orig.outerWidth();
+
          height = orig.outerHeight();
+
        }
+
 
+
      } else {
+
        pos.top  = viewport.y + (viewport.h - height) * current.topRatio;
+
        pos.left = viewport.x + (viewport.w - width)  * current.leftRatio;
+
      }
+
 
+
      if (F.wrap.css('position') === 'fixed' || current.locked) {
+
        pos.top  -= viewport.y;
+
        pos.left -= viewport.x;
+
      }
+
 
+
      pos = {
+
        top    : getValue(pos.top  - hPadding * current.topRatio),
+
        left    : getValue(pos.left - wPadding * current.leftRatio),
+
        width  : getValue(width  + wPadding),
+
        height  : getValue(height + hPadding)
+
      };
+
 
+
      return pos;
+
    },
+
 
+
    step: function (now, fx) {
+
      var ratio,
+
        padding,
+
        value,
+
        prop      = fx.prop,
+
        current    = F.current,
+
        wrapSpace  = current.wrapSpace,
+
        skinSpace  = current.skinSpace;
+
 
+
      if (prop === 'width' || prop === 'height') {
+
        ratio = fx.end === fx.start ? 1 : (now - fx.start) / (fx.end - fx.start);
+
 
+
        if (F.isClosing) {
+
          ratio = 1 - ratio;
+
        }
+
 
+
        padding = prop === 'width' ? current.wPadding : current.hPadding;
+
        value  = now - padding;
+
 
+
        F.skin[ prop ](  getScalar( prop === 'width' ?  value : value - (wrapSpace * ratio) ) );
+
        F.inner[ prop ]( getScalar( prop === 'width' ?  value : value - (wrapSpace * ratio) - (skinSpace * ratio) ) );
+
      }
+
    },
+
 
+
    zoomIn: function () {
+
      var current  = F.current,
+
        startPos = current.pos,
+
        effect  = current.openEffect,
+
        elastic  = effect === 'elastic',
+
        endPos  = $.extend({opacity : 1}, startPos);
+
 
+
      // Remove "position" property that breaks older IE
+
      delete endPos.position;
+
 
+
      if (elastic) {
+
        startPos = this.getOrigPosition();
+
 
+
        if (current.openOpacity) {
+
          startPos.opacity = 0.1;
+
        }
+
 
+
      } else if (effect === 'fade') {
+
        startPos.opacity = 0.1;
+
      }
+
 
+
      F.wrap.css(startPos).animate(endPos, {
+
        duration : effect === 'none' ? 0 : current.openSpeed,
+
        easing  : current.openEasing,
+
        step    : elastic ? this.step : null,
+
        complete : F._afterZoomIn
+
      });
+
    },
+
 
+
    zoomOut: function () {
+
      var current  = F.current,
+
        effect  = current.closeEffect,
+
        elastic  = effect === 'elastic',
+
        endPos  = {opacity : 0.1};
+
 
+
      if (elastic) {
+
        endPos = this.getOrigPosition();
+
 
+
        if (current.closeOpacity) {
+
          endPos.opacity = 0.1;
+
        }
+
      }
+
 
+
      F.wrap.animate(endPos, {
+
        duration : effect === 'none' ? 0 : current.closeSpeed,
+
        easing  : current.closeEasing,
+
        step    : elastic ? this.step : null,
+
        complete : F._afterZoomOut
+
      });
+
    },
+
 
+
    changeIn: function () {
+
      var current  = F.current,
+
        effect    = current.nextEffect,
+
        startPos  = current.pos,
+
        endPos    = { opacity : 1 },
+
        direction = F.direction,
+
        distance  = 200,
+
        field;
+
 
+
      startPos.opacity = 0.1;
+
 
+
      if (effect === 'elastic') {
+
        field = direction === 'down' || direction === 'up' ? 'top' : 'left';
+
 
+
        if (direction === 'down' || direction === 'right') {
+
          startPos[ field ] = getValue(getScalar(startPos[ field ]) - distance);
+
          endPos[ field ]  = '+=' + distance + 'px';
+
 
+
        } else {
+
          startPos[ field ] = getValue(getScalar(startPos[ field ]) + distance);
+
          endPos[ field ]  = '-=' + distance + 'px';
+
        }
+
      }
+
 
+
      // Workaround for http://bugs.jquery.com/ticket/12273
+
      if (effect === 'none') {
+
        F._afterZoomIn();
+
 
+
      } else {
+
        F.wrap.css(startPos).animate(endPos, {
+
          duration : current.nextSpeed,
+
          easing  : current.nextEasing,
+
          complete : F._afterZoomIn
+
        });
+
      }
+
    },
+
 
+
    changeOut: function () {
+
      var previous  = F.previous,
+
        effect    = previous.prevEffect,
+
        endPos    = { opacity : 0.1 },
+
        direction = F.direction,
+
        distance  = 200;
+
 
+
      if (effect === 'elastic') {
+
        endPos[ direction === 'down' || direction === 'up' ? 'top' : 'left' ] = ( direction === 'up' || direction === 'left' ? '-' : '+' ) + '=' + distance + 'px';
+
      }
+
 
+
      previous.wrap.animate(endPos, {
+
        duration : effect === 'none' ? 0 : previous.prevSpeed,
+
        easing  : previous.prevEasing,
+
        complete : function () {
+
          $(this).trigger('onReset').remove();
+
        }
+
      });
+
    }
+
  };
+
 
+
  /*
+
  *  Overlay helper
+
  */
+
 
+
  F.helpers.overlay = {
+
    defaults : {
+
      closeClick : true,      // if true, fancyBox will be closed when user clicks on the overlay
+
      speedOut  : 200,      // duration of fadeOut animation
+
      showEarly  : true,      // indicates if should be opened immediately or wait until the content is ready
+
      css        : {},        // custom CSS properties
+
      locked    : !isTouch,  // if true, the content will be locked into overlay
+
      fixed      : true      // if false, the overlay CSS position property will not be set to "fixed"
+
    },
+
 
+
    overlay : null,      // current handle
+
    fixed  : false,    // indicates if the overlay has position "fixed"
+
    el      : $('html'), // element that contains "the lock"
+
 
+
    // Public methods
+
    create : function(opts) {
+
      opts = $.extend({}, this.defaults, opts);
+
 
+
      if (this.overlay) {
+
        this.close();
+
      }
+
 
+
      this.overlay = $('<div class="fancybox-overlay"></div>').appendTo( F.coming ? F.coming.parent : opts.parent );
+
      this.fixed  = false;
+
 
+
      if (opts.fixed && F.defaults.fixed) {
+
        this.overlay.addClass('fancybox-overlay-fixed');
+
 
+
        this.fixed = true;
+
      }
+
    },
+
 
+
    open : function(opts) {
+
      var that = this;
+
 
+
      opts = $.extend({}, this.defaults, opts);
+
 
+
      if (this.overlay) {
+
        this.overlay.unbind('.overlay').width('auto').height('auto');
+
 
+
      } else {
+
        this.create(opts);
+
      }
+
 
+
      if (!this.fixed) {
+
        W.bind('resize.overlay', $.proxy( this.update, this) );
+
 
+
        this.update();
+
      }
+
 
+
      if (opts.closeClick) {
+
        this.overlay.bind('click.overlay', function(e) {
+
          if ($(e.target).hasClass('fancybox-overlay')) {
+
            if (F.isActive) {
+
              F.close();
+
            } else {
+
              that.close();
+
            }
+
 
+
            return false;
+
          }
+
        });
+
      }
+
 
+
      this.overlay.css( opts.css ).show();
+
    },
+
 
+
    close : function() {
+
      var scrollV, scrollH;
+
 
+
      W.unbind('resize.overlay');
+
 
+
      if (this.el.hasClass('fancybox-lock')) {
+
        $('.fancybox-margin').removeClass('fancybox-margin');
+
 
+
        scrollV = W.scrollTop();
+
        scrollH = W.scrollLeft();
+
 
+
        this.el.removeClass('fancybox-lock');
+
 
+
        W.scrollTop( scrollV ).scrollLeft( scrollH );
+
      }
+
 
+
      $('.fancybox-overlay').remove().hide();
+
 
+
      $.extend(this, {
+
        overlay : null,
+
        fixed  : false
+
      });
+
    },
+
 
+
    // Private, callbacks
+
 
+
    update : function () {
+
      var width = '100%', offsetWidth;
+
 
+
      // Reset width/height so it will not mess
+
      this.overlay.width(width).height('100%');
+
 
+
      // jQuery does not return reliable result for IE
+
      if (IE) {
+
        offsetWidth = Math.max(document.documentElement.offsetWidth, document.body.offsetWidth);
+
 
+
        if (D.width() > offsetWidth) {
+
          width = D.width();
+
        }
+
 
+
      } else if (D.width() > W.width()) {
+
        width = D.width();
+
      }
+
 
+
      this.overlay.width(width).height(D.height());
+
    },
+
 
+
    // This is where we can manipulate DOM, because later it would cause iframes to reload
+
    onReady : function (opts, obj) {
+
      var overlay = this.overlay;
+
 
+
      $('.fancybox-overlay').stop(true, true);
+
 
+
      if (!overlay) {
+
        this.create(opts);
+
      }
+
 
+
      if (opts.locked && this.fixed && obj.fixed) {
+
        if (!overlay) {
+
          this.margin = D.height() > W.height() ? $('html').css('margin-right').replace("px", "") : false;
+
        }
+
 
+
        obj.locked = this.overlay.append( obj.wrap );
+
        obj.fixed  = false;
+
      }
+
 
+
      if (opts.showEarly === true) {
+
        this.beforeShow.apply(this, arguments);
+
      }
+
    },
+
 
+
    beforeShow : function(opts, obj) {
+
      var scrollV, scrollH;
+
 
+
      if (obj.locked) {
+
        if (this.margin !== false) {
+
          $('*').filter(function(){
+
            return ($(this).css('position') === 'fixed' && !$(this).hasClass("fancybox-overlay") && !$(this).hasClass("fancybox-wrap") );
+
          }).addClass('fancybox-margin');
+
 
+
          this.el.addClass('fancybox-margin');
+
        }
+
 
+
        scrollV = W.scrollTop();
+
        scrollH = W.scrollLeft();
+
 
+
        this.el.addClass('fancybox-lock');
+
 
+
        W.scrollTop( scrollV ).scrollLeft( scrollH );
+
      }
+
 
+
      this.open(opts);
+
    },
+
 
+
    onUpdate : function() {
+
      if (!this.fixed) {
+
        this.update();
+
      }
+
    },
+
 
+
    afterClose: function (opts) {
+
      // Remove overlay if exists and fancyBox is not opening
+
      // (e.g., it is not being open using afterClose callback)
+
      //if (this.overlay && !F.isActive) {
+
      if (this.overlay && !F.coming) {
+
        this.overlay.fadeOut(opts.speedOut, $.proxy( this.close, this ));
+
      }
+
    }
+
  };
+
 
+
  /*
+
  *  Title helper
+
  */
+
 
+
  F.helpers.title = {
+
    defaults : {
+
      type    : 'float', // 'float', 'inside', 'outside' or 'over',
+
      position : 'bottom' // 'top' or 'bottom'
+
    },
+
 
+
    beforeShow: function (opts) {
+
      var current = F.current,
+
        text    = current.title,
+
        type    = opts.type,
+
        title,
+
        target;
+
 
+
      if ($.isFunction(text)) {
+
        text = text.call(current.element, current);
+
      }
+
 
+
      if (!isString(text) || $.trim(text) === '') {
+
        return;
+
      }
+
 
+
      title = $('<div class="fancybox-title fancybox-title-' + type + '-wrap">' + text + '</div>');
+
 
+
      switch (type) {
+
        case 'inside':
+
          target = F.skin;
+
        break;
+
 
+
        case 'outside':
+
          target = F.wrap;
+
        break;
+
 
+
        case 'over':
+
          target = F.inner;
+
        break;
+
 
+
        default: // 'float'
+
          target = F.skin;
+
 
+
          title.appendTo('body');
+
 
+
          if (IE) {
+
            title.width( title.width() );
+
          }
+
 
+
          title.wrapInner('<span class="child"></span>');
+
 
+
          //Increase bottom margin so this title will also fit into viewport
+
          F.current.margin[2] += Math.abs( getScalar(title.css('margin-bottom')) );
+
        break;
+
      }
+
 
+
      title[ (opts.position === 'top' ? 'prependTo'  : 'appendTo') ](target);
+
    }
+
  };
+
 
+
  // jQuery plugin initialization
+
  $.fn.fancybox = function (options) {
+
    var index,
+
      that    = $(this),
+
      selector = this.selector || '',
+
      run      = function(e) {
+
        var what = $(this).blur(), idx = index, relType, relVal;
+
 
+
        if (!(e.ctrlKey || e.altKey || e.shiftKey || e.metaKey) && !what.is('.fancybox-wrap')) {
+
          relType = options.groupAttr || 'data-fancybox-group';
+
          relVal  = what.attr(relType);
+
 
+
          if (!relVal) {
+
            relType = 'rel';
+
            relVal  = what.get(0)[ relType ];
+
          }
+
 
+
          if (relVal && relVal !== '' && relVal !== 'nofollow') {
+
            what = selector.length ? $(selector) : that;
+
            what = what.filter('[' + relType + '="' + relVal + '"]');
+
            idx  = what.index(this);
+
          }
+
 
+
          options.index = idx;
+
 
+
          // Stop an event from bubbling if everything is fine
+
          if (F.open(what, options) !== false) {
+
            e.preventDefault();
+
          }
+
        }
+
      };
+
 
+
    options = options || {};
+
    index  = options.index || 0;
+
 
+
    if (!selector || options.live === false) {
+
      that.unbind('click.fb-start').bind('click.fb-start', run);
+
 
+
    } else {
+
      D.undelegate(selector, 'click.fb-start').delegate(selector + ":not('.fancybox-item, .fancybox-nav')", 'click.fb-start', run);
+
    }
+
 
+
    this.filter('[data-fancybox-start=1]').trigger('click');
+
 
+
    return this;
+
  };
+
 
+
  // Tests that need a body at doc ready
+
  D.ready(function() {
+
    var w1, w2;
+
 
+
    if ( $.scrollbarWidth === undefined ) {
+
      // http://benalman.com/projects/jquery-misc-plugins/#scrollbarwidth
+
      $.scrollbarWidth = function() {
+
        var parent = $('<div style="width:50px;height:50px;overflow:auto"><div/></div>').appendTo('body'),
+
          child  = parent.children(),
+
          width  = child.innerWidth() - child.height( 99 ).innerWidth();
+
 
+
        parent.remove();
+
 
+
        return width;
+
      };
+
    }
+
 
+
    if ( $.support.fixedPosition === undefined ) {
+
      $.support.fixedPosition = (function() {
+
        var elem  = $('<div style="position:fixed;top:20px;"></div>').appendTo('body'),
+
          fixed = ( elem[0].offsetTop === 20 || elem[0].offsetTop === 15 );
+
 
+
        elem.remove();
+
 
+
        return fixed;
+
      }());
+
    }
+
 
+
    $.extend(F.defaults, {
+
      scrollbarWidth : $.scrollbarWidth(),
+
      fixed  : $.support.fixedPosition,
+
      parent : $('body')
+
    });
+
 
+
    //Get real width of page scroll-bar
+
    w1 = $(window).width();
+
 
+
    H.addClass('fancybox-lock-test');
+
 
+
    w2 = $(window).width();
+
 
+
    H.removeClass('fancybox-lock-test');
+
 
+
    $("<style type='text/css'>.fancybox-margin{margin-right:" + (w2 - w1) + "px;}</style>").appendTo("head");
+
  });
+
 
+
}(window, document, jQuery));
+
 
+
 
+
/*
+
* jQuery FlexSlider v2.2.0
+
* Copyright 2012 WooThemes
+
* Contributing Author: Tyler Smith
+
*/
+
;
+
(function ($) {
+
 
+
  //FlexSlider: Object Instance
+
  $.flexslider = function(el, options) {
+
    var slider = $(el);
+
 
+
    // making variables public
+
    slider.vars = $.extend({}, $.flexslider.defaults, options);
+
 
+
    var namespace = slider.vars.namespace,
+
        msGesture = window.navigator && window.navigator.msPointerEnabled && window.MSGesture,
+
        touch = (( "ontouchstart" in window ) || msGesture || window.DocumentTouch && document instanceof DocumentTouch) && slider.vars.touch,
+
        // depricating this idea, as devices are being released with both of these events
+
        //eventType = (touch) ? "touchend" : "click",
+
        eventType = "click touchend MSPointerUp",
+
        watchedEvent = "",
+
        watchedEventClearTimer,
+
        vertical = slider.vars.direction === "vertical",
+
        reverse = slider.vars.reverse,
+
        carousel = (slider.vars.itemWidth > 0),
+
        fade = slider.vars.animation === "fade",
+
        asNav = slider.vars.asNavFor !== "",
+
        methods = {},
+
        focused = true;
+
 
+
    // Store a reference to the slider object
+
    $.data(el, "flexslider", slider);
+
 
+
    // Private slider methods
+
    methods = {
+
      init: function() {
+
        slider.animating = false;
+
        // Get current slide and make sure it is a number
+
        slider.currentSlide = parseInt( ( slider.vars.startAt ? slider.vars.startAt : 0) );
+
        if ( isNaN( slider.currentSlide ) ) slider.currentSlide = 0;
+
        slider.animatingTo = slider.currentSlide;
+
        slider.atEnd = (slider.currentSlide === 0 || slider.currentSlide === slider.last);
+
        slider.containerSelector = slider.vars.selector.substr(0,slider.vars.selector.search(' '));
+
        slider.slides = $(slider.vars.selector, slider);
+
        slider.container = $(slider.containerSelector, slider);
+
        slider.count = slider.slides.length;
+
        // SYNC:
+
        slider.syncExists = $(slider.vars.sync).length > 0;
+
        // SLIDE:
+
        if (slider.vars.animation === "slide") slider.vars.animation = "swing";
+
        slider.prop = (vertical) ? "top" : "marginLeft";
+
        slider.args = {};
+
        // SLIDESHOW:
+
        slider.manualPause = false;
+
        slider.stopped = false;
+
        //PAUSE WHEN INVISIBLE
+
        slider.started = false;
+
        slider.startTimeout = null;
+
        // TOUCH/USECSS:
+
        slider.transitions = !slider.vars.video && !fade && slider.vars.useCSS && (function() {
+
          var obj = document.createElement('div'),
+
              props = ['perspectiveProperty', 'WebkitPerspective', 'MozPerspective', 'OPerspective', 'msPerspective'];
+
          for (var i in props) {
+
            if ( obj.style[ props[i] ] !== undefined ) {
+
              slider.pfx = props[i].replace('Perspective','').toLowerCase();
+
              slider.prop = "-" + slider.pfx + "-transform";
+
              return true;
+
            }
+
          }
+
          return false;
+
        }());
+
        // CONTROLSCONTAINER:
+
        if (slider.vars.controlsContainer !== "") slider.controlsContainer = $(slider.vars.controlsContainer).length > 0 && $(slider.vars.controlsContainer);
+
        // MANUAL:
+
        if (slider.vars.manualControls !== "") slider.manualControls = $(slider.vars.manualControls).length > 0 && $(slider.vars.manualControls);
+
 
+
        // RANDOMIZE:
+
        if (slider.vars.randomize) {
+
          slider.slides.sort(function() { return (Math.round(Math.random())-0.5); });
+
          slider.container.empty().append(slider.slides);
+
        }
+
 
+
        slider.doMath();
+
 
+
        // INIT
+
        slider.setup("init");
+
 
+
        // CONTROLNAV:
+
        if (slider.vars.controlNav) methods.controlNav.setup();
+
 
+
        // DIRECTIONNAV:
+
        if (slider.vars.directionNav) methods.directionNav.setup();
+
 
+
        // KEYBOARD:
+
        if (slider.vars.keyboard && ($(slider.containerSelector).length === 1 || slider.vars.multipleKeyboard)) {
+
          $(document).bind('keyup', function(event) {
+
            var keycode = event.keyCode;
+
            if (!slider.animating && (keycode === 39 || keycode === 37)) {
+
              var target = (keycode === 39) ? slider.getTarget('next') :
+
                          (keycode === 37) ? slider.getTarget('prev') : false;
+
              slider.flexAnimate(target, slider.vars.pauseOnAction);
+
            }
+
          });
+
        }
+
        // MOUSEWHEEL:
+
        if (slider.vars.mousewheel) {
+
          slider.bind('mousewheel', function(event, delta, deltaX, deltaY) {
+
            event.preventDefault();
+
            var target = (delta < 0) ? slider.getTarget('next') : slider.getTarget('prev');
+
            slider.flexAnimate(target, slider.vars.pauseOnAction);
+
          });
+
        }
+
 
+
        // PAUSEPLAY
+
        if (slider.vars.pausePlay) methods.pausePlay.setup();
+
 
+
        //PAUSE WHEN INVISIBLE
+
        if (slider.vars.slideshow && slider.vars.pauseInvisible) methods.pauseInvisible.init();
+
 
+
        // SLIDSESHOW
+
        if (slider.vars.slideshow) {
+
          if (slider.vars.pauseOnHover) {
+
            slider.hover(function() {
+
              if (!slider.manualPlay && !slider.manualPause) slider.pause();
+
            }, function() {
+
              if (!slider.manualPause && !slider.manualPlay && !slider.stopped) slider.play();
+
            });
+
          }
+
          // initialize animation
+
          //If we're visible, or we don't use PageVisibility API
+
          if(!slider.vars.pauseInvisible || !methods.pauseInvisible.isHidden()) {
+
            (slider.vars.initDelay > 0) ? slider.startTimeout = setTimeout(slider.play, slider.vars.initDelay) : slider.play();
+
          }
+
        }
+
 
+
        // ASNAV:
+
        if (asNav) methods.asNav.setup();
+
 
+
        // TOUCH
+
        if (touch && slider.vars.touch) methods.touch();
+
 
+
        // FADE&&SMOOTHHEIGHT || SLIDE:
+
        if (!fade || (fade && slider.vars.smoothHeight)) $(window).bind("resize orientationchange focus", methods.resize);
+
 
+
        slider.find("img").attr("draggable", "false");
+
 
+
        // API: start() Callback
+
        setTimeout(function(){
+
          slider.vars.start(slider);
+
        }, 200);
+
      },
+
      asNav: {
+
        setup: function() {
+
          slider.asNav = true;
+
          slider.animatingTo = Math.floor(slider.currentSlide/slider.move);
+
          slider.currentItem = slider.currentSlide;
+
          slider.slides.removeClass(namespace + "active-slide").eq(slider.currentItem).addClass(namespace + "active-slide");
+
          if(!msGesture){
+
              slider.slides.click(function(e){
+
                e.preventDefault();
+
                var $slide = $(this),
+
                    target = $slide.index();
+
                var posFromLeft = $slide.offset().left - $(slider).scrollLeft(); // Find position of slide relative to left of slider container
+
                if( posFromLeft <= 0 && $slide.hasClass( namespace + 'active-slide' ) ) {
+
                  slider.flexAnimate(slider.getTarget("prev"), true);
+
                } else if (!$(slider.vars.asNavFor).data('flexslider').animating && !$slide.hasClass(namespace + "active-slide")) {
+
                  slider.direction = (slider.currentItem < target) ? "next" : "prev";
+
                  slider.flexAnimate(target, slider.vars.pauseOnAction, false, true, true);
+
                }
+
              });
+
          }else{
+
              el._slider = slider;
+
              slider.slides.each(function (){
+
                  var that = this;
+
                  that._gesture = new MSGesture();
+
                  that._gesture.target = that;
+
                  that.addEventListener("MSPointerDown", function (e){
+
                      e.preventDefault();
+
                      if(e.currentTarget._gesture)
+
                          e.currentTarget._gesture.addPointer(e.pointerId);
+
                  }, false);
+
                  that.addEventListener("MSGestureTap", function (e){
+
                      e.preventDefault();
+
                      var $slide = $(this),
+
                          target = $slide.index();
+
                      if (!$(slider.vars.asNavFor).data('flexslider').animating && !$slide.hasClass('active')) {
+
                          slider.direction = (slider.currentItem < target) ? "next" : "prev";
+
                          slider.flexAnimate(target, slider.vars.pauseOnAction, false, true, true);
+
                      }
+
                  });
+
              });
+
          }
+
        }
+
      },
+
      controlNav: {
+
        setup: function() {
+
          if (!slider.manualControls) {
+
            methods.controlNav.setupPaging();
+
          } else { // MANUALCONTROLS:
+
            methods.controlNav.setupManual();
+
          }
+
        },
+
        setupPaging: function() {
+
          var type = (slider.vars.controlNav === "thumbnails") ? 'control-thumbs' : 'control-paging',
+
              j = 1,
+
              item,
+
              slide;
+
 
+
          slider.controlNavScaffold = $('<ol class="'+ namespace + 'control-nav ' + namespace + type + '"></ol>');
+
 
+
          if (slider.pagingCount > 1) {
+
            for (var i = 0; i < slider.pagingCount; i++) {
+
              slide = slider.slides.eq(i);
+
              item = (slider.vars.controlNav === "thumbnails") ? '<img src="' + slide.attr( 'data-thumb' ) + '"/>' : '<a>' + j + '</a>';
+
              if ( 'thumbnails' === slider.vars.controlNav && true === slider.vars.thumbCaptions ) {
+
                var captn = slide.attr( 'data-thumbcaption' );
+
                if ( '' != captn && undefined != captn ) item += '<span class="' + namespace + 'caption">' + captn + '</span>';
+
              }
+
              slider.controlNavScaffold.append('<li>' + item + '</li>');
+
              j++;
+
            }
+
          }
+
 
+
          // CONTROLSCONTAINER:
+
          (slider.controlsContainer) ? $(slider.controlsContainer).append(slider.controlNavScaffold) : slider.append(slider.controlNavScaffold);
+
          methods.controlNav.set();
+
 
+
          methods.controlNav.active();
+
 
+
          slider.controlNavScaffold.delegate('a, img', eventType, function(event) {
+
            event.preventDefault();
+
 
+
            if (watchedEvent === "" || watchedEvent === event.type) {
+
              var $this = $(this),
+
                  target = slider.controlNav.index($this);
+
 
+
              if (!$this.hasClass(namespace + 'active')) {
+
                slider.direction = (target > slider.currentSlide) ? "next" : "prev";
+
                slider.flexAnimate(target, slider.vars.pauseOnAction);
+
              }
+
            }
+
 
+
            // setup flags to prevent event duplication
+
            if (watchedEvent === "") {
+
              watchedEvent = event.type;
+
            }
+
            methods.setToClearWatchedEvent();
+
 
+
          });
+
        },
+
        setupManual: function() {
+
          slider.controlNav = slider.manualControls;
+
          methods.controlNav.active();
+
 
+
          slider.controlNav.bind(eventType, function(event) {
+
            event.preventDefault();
+
 
+
            if (watchedEvent === "" || watchedEvent === event.type) {
+
              var $this = $(this),
+
                  target = slider.controlNav.index($this);
+
 
+
              if (!$this.hasClass(namespace + 'active')) {
+
                (target > slider.currentSlide) ? slider.direction = "next" : slider.direction = "prev";
+
                slider.flexAnimate(target, slider.vars.pauseOnAction);
+
              }
+
            }
+
 
+
            // setup flags to prevent event duplication
+
            if (watchedEvent === "") {
+
              watchedEvent = event.type;
+
            }
+
            methods.setToClearWatchedEvent();
+
          });
+
        },
+
        set: function() {
+
          var selector = (slider.vars.controlNav === "thumbnails") ? 'img' : 'a';
+
          slider.controlNav = $('.' + namespace + 'control-nav li ' + selector, (slider.controlsContainer) ? slider.controlsContainer : slider);
+
        },
+
        active: function() {
+
          slider.controlNav.removeClass(namespace + "active").eq(slider.animatingTo).addClass(namespace + "active");
+
        },
+
        update: function(action, pos) {
+
          if (slider.pagingCount > 1 && action === "add") {
+
            slider.controlNavScaffold.append($('<li><a>' + slider.count + '</a></li>'));
+
          } else if (slider.pagingCount === 1) {
+
            slider.controlNavScaffold.find('li').remove();
+
          } else {
+
            slider.controlNav.eq(pos).closest('li').remove();
+
          }
+
          methods.controlNav.set();
+
          (slider.pagingCount > 1 && slider.pagingCount !== slider.controlNav.length) ? slider.update(pos, action) : methods.controlNav.active();
+
        }
+
      },
+
      directionNav: {
+
        setup: function() {
+
          var directionNavScaffold = $('<ul class="' + namespace + 'direction-nav"><li><a class="' + namespace + 'prev" href="#">' + slider.vars.prevText + '</a></li><li><a class="' + namespace + 'next" href="#">' + slider.vars.nextText + '</a></li></ul>');
+
 
+
          // CONTROLSCONTAINER:
+
          if (slider.controlsContainer) {
+
            $(slider.controlsContainer).append(directionNavScaffold);
+
            slider.directionNav = $('.' + namespace + 'direction-nav li a', slider.controlsContainer);
+
          } else {
+
            slider.append(directionNavScaffold);
+
            slider.directionNav = $('.' + namespace + 'direction-nav li a', slider);
+
          }
+
 
+
          methods.directionNav.update();
+
 
+
          slider.directionNav.bind(eventType, function(event) {
+
            event.preventDefault();
+
            var target;
+
 
+
            if (watchedEvent === "" || watchedEvent === event.type) {
+
              target = ($(this).hasClass(namespace + 'next')) ? slider.getTarget('next') : slider.getTarget('prev');
+
              slider.flexAnimate(target, slider.vars.pauseOnAction);
+
            }
+
 
+
            // setup flags to prevent event duplication
+
            if (watchedEvent === "") {
+
              watchedEvent = event.type;
+
            }
+
            methods.setToClearWatchedEvent();
+
          });
+
        },
+
        update: function() {
+
          var disabledClass = namespace + 'disabled';
+
          if (slider.pagingCount === 1) {
+
            slider.directionNav.addClass(disabledClass).attr('tabindex', '-1');
+
          } else if (!slider.vars.animationLoop) {
+
            if (slider.animatingTo === 0) {
+
              slider.directionNav.removeClass(disabledClass).filter('.' + namespace + "prev").addClass(disabledClass).attr('tabindex', '-1');
+
            } else if (slider.animatingTo === slider.last) {
+
              slider.directionNav.removeClass(disabledClass).filter('.' + namespace + "next").addClass(disabledClass).attr('tabindex', '-1');
+
            } else {
+
              slider.directionNav.removeClass(disabledClass).removeAttr('tabindex');
+
            }
+
          } else {
+
            slider.directionNav.removeClass(disabledClass).removeAttr('tabindex');
+
          }
+
        }
+
      },
+
      pausePlay: {
+
        setup: function() {
+
          var pausePlayScaffold = $('<div class="' + namespace + 'pauseplay"><a></a></div>');
+
 
+
          // CONTROLSCONTAINER:
+
          if (slider.controlsContainer) {
+
            slider.controlsContainer.append(pausePlayScaffold);
+
            slider.pausePlay = $('.' + namespace + 'pauseplay a', slider.controlsContainer);
+
          } else {
+
            slider.append(pausePlayScaffold);
+
            slider.pausePlay = $('.' + namespace + 'pauseplay a', slider);
+
          }
+
 
+
          methods.pausePlay.update((slider.vars.slideshow) ? namespace + 'pause' : namespace + 'play');
+
 
+
          slider.pausePlay.bind(eventType, function(event) {
+
            event.preventDefault();
+
 
+
            if (watchedEvent === "" || watchedEvent === event.type) {
+
              if ($(this).hasClass(namespace + 'pause')) {
+
                slider.manualPause = true;
+
                slider.manualPlay = false;
+
                slider.pause();
+
              } else {
+
                slider.manualPause = false;
+
                slider.manualPlay = true;
+
                slider.play();
+
              }
+
            }
+
 
+
            // setup flags to prevent event duplication
+
            if (watchedEvent === "") {
+
              watchedEvent = event.type;
+
            }
+
            methods.setToClearWatchedEvent();
+
          });
+
        },
+
        update: function(state) {
+
          (state === "play") ? slider.pausePlay.removeClass(namespace + 'pause').addClass(namespace + 'play').html(slider.vars.playText) : slider.pausePlay.removeClass(namespace + 'play').addClass(namespace + 'pause').html(slider.vars.pauseText);
+
        }
+
      },
+
      touch: function() {
+
        var startX,
+
          startY,
+
          offset,
+
          cwidth,
+
          dx,
+
          startT,
+
          scrolling = false,
+
          localX = 0,
+
          localY = 0,
+
          accDx = 0;
+
 
+
        if(!msGesture){
+
            el.addEventListener('touchstart', onTouchStart, false);
+
 
+
            function onTouchStart(e) {
+
              if (slider.animating) {
+
                e.preventDefault();
+
              } else if ( ( window.navigator.msPointerEnabled ) || e.touches.length === 1 ) {
+
                slider.pause();
+
                // CAROUSEL:
+
                cwidth = (vertical) ? slider.h : slider. w;
+
                startT = Number(new Date());
+
                // CAROUSEL:
+
 
+
                // Local vars for X and Y points.
+
                localX = e.touches[0].pageX;
+
                localY = e.touches[0].pageY;
+
 
+
                offset = (carousel && reverse && slider.animatingTo === slider.last) ? 0 :
+
                        (carousel && reverse) ? slider.limit - (((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo) :
+
                        (carousel && slider.currentSlide === slider.last) ? slider.limit :
+
                        (carousel) ? ((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.currentSlide :
+
                        (reverse) ? (slider.last - slider.currentSlide + slider.cloneOffset) * cwidth : (slider.currentSlide + slider.cloneOffset) * cwidth;
+
                startX = (vertical) ? localY : localX;
+
                startY = (vertical) ? localX : localY;
+
 
+
                el.addEventListener('touchmove', onTouchMove, false);
+
                el.addEventListener('touchend', onTouchEnd, false);
+
              }
+
            }
+
 
+
            function onTouchMove(e) {
+
              // Local vars for X and Y points.
+
 
+
              localX = e.touches[0].pageX;
+
              localY = e.touches[0].pageY;
+
 
+
              dx = (vertical) ? startX - localY : startX - localX;
+
              scrolling = (vertical) ? (Math.abs(dx) < Math.abs(localX - startY)) : (Math.abs(dx) < Math.abs(localY - startY));
+
 
+
              var fxms = 500;
+
 
+
              if ( ! scrolling || Number( new Date() ) - startT > fxms ) {
+
                e.preventDefault();
+
                if (!fade && slider.transitions) {
+
                  if (!slider.vars.animationLoop) {
+
                    dx = dx/((slider.currentSlide === 0 && dx < 0 || slider.currentSlide === slider.last && dx > 0) ? (Math.abs(dx)/cwidth+2) : 1);
+
                  }
+
                  slider.setProps(offset + dx, "setTouch");
+
                }
+
              }
+
            }
+
 
+
            function onTouchEnd(e) {
+
              // finish the touch by undoing the touch session
+
              el.removeEventListener('touchmove', onTouchMove, false);
+
 
+
              if (slider.animatingTo === slider.currentSlide && !scrolling && !(dx === null)) {
+
                var updateDx = (reverse) ? -dx : dx,
+
                    target = (updateDx > 0) ? slider.getTarget('next') : slider.getTarget('prev');
+
 
+
                if (slider.canAdvance(target) && (Number(new Date()) - startT < 550 && Math.abs(updateDx) > 50 || Math.abs(updateDx) > cwidth/2)) {
+
                  slider.flexAnimate(target, slider.vars.pauseOnAction);
+
                } else {
+
                  if (!fade) slider.flexAnimate(slider.currentSlide, slider.vars.pauseOnAction, true);
+
                }
+
              }
+
              el.removeEventListener('touchend', onTouchEnd, false);
+
 
+
              startX = null;
+
              startY = null;
+
              dx = null;
+
              offset = null;
+
            }
+
        }else{
+
            el.style.msTouchAction = "none";
+
            el._gesture = new MSGesture();
+
            el._gesture.target = el;
+
            el.addEventListener("MSPointerDown", onMSPointerDown, false);
+
            el._slider = slider;
+
            el.addEventListener("MSGestureChange", onMSGestureChange, false);
+
            el.addEventListener("MSGestureEnd", onMSGestureEnd, false);
+
 
+
            function onMSPointerDown(e){
+
                e.stopPropagation();
+
                if (slider.animating) {
+
                    e.preventDefault();
+
                }else{
+
                    slider.pause();
+
                    el._gesture.addPointer(e.pointerId);
+
                    accDx = 0;
+
                    cwidth = (vertical) ? slider.h : slider. w;
+
                    startT = Number(new Date());
+
                    // CAROUSEL:
+
 
+
                    offset = (carousel && reverse && slider.animatingTo === slider.last) ? 0 :
+
                        (carousel && reverse) ? slider.limit - (((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo) :
+
                            (carousel && slider.currentSlide === slider.last) ? slider.limit :
+
                                (carousel) ? ((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.currentSlide :
+
                                    (reverse) ? (slider.last - slider.currentSlide + slider.cloneOffset) * cwidth : (slider.currentSlide + slider.cloneOffset) * cwidth;
+
                }
+
            }
+
 
+
            function onMSGestureChange(e) {
+
                e.stopPropagation();
+
                var slider = e.target._slider;
+
                if(!slider){
+
                    return;
+
                }
+
                var transX = -e.translationX,
+
                    transY = -e.translationY;
+
 
+
                //Accumulate translations.
+
                accDx = accDx + ((vertical) ? transY : transX);
+
                dx = accDx;
+
                scrolling = (vertical) ? (Math.abs(accDx) < Math.abs(-transX)) : (Math.abs(accDx) < Math.abs(-transY));
+
 
+
                if(e.detail === e.MSGESTURE_FLAG_INERTIA){
+
                    setImmediate(function (){
+
                        el._gesture.stop();
+
                    });
+
 
+
                    return;
+
                }
+
 
+
                if (!scrolling || Number(new Date()) - startT > 500) {
+
                    e.preventDefault();
+
                    if (!fade && slider.transitions) {
+
                        if (!slider.vars.animationLoop) {
+
                            dx = accDx / ((slider.currentSlide === 0 && accDx < 0 || slider.currentSlide === slider.last && accDx > 0) ? (Math.abs(accDx) / cwidth + 2) : 1);
+
                        }
+
                        slider.setProps(offset + dx, "setTouch");
+
                    }
+
                }
+
            }
+
 
+
            function onMSGestureEnd(e) {
+
                e.stopPropagation();
+
                var slider = e.target._slider;
+
                if(!slider){
+
                    return;
+
                }
+
                if (slider.animatingTo === slider.currentSlide && !scrolling && !(dx === null)) {
+
                    var updateDx = (reverse) ? -dx : dx,
+
                        target = (updateDx > 0) ? slider.getTarget('next') : slider.getTarget('prev');
+
 
+
                    if (slider.canAdvance(target) && (Number(new Date()) - startT < 550 && Math.abs(updateDx) > 50 || Math.abs(updateDx) > cwidth/2)) {
+
                        slider.flexAnimate(target, slider.vars.pauseOnAction);
+
                    } else {
+
                        if (!fade) slider.flexAnimate(slider.currentSlide, slider.vars.pauseOnAction, true);
+
                    }
+
                }
+
 
+
                startX = null;
+
                startY = null;
+
                dx = null;
+
                offset = null;
+
                accDx = 0;
+
            }
+
        }
+
      },
+
      resize: function() {
+
        if (!slider.animating && slider.is(':visible')) {
+
          if (!carousel) slider.doMath();
+
 
+
          if (fade) {
+
            // SMOOTH HEIGHT:
+
            methods.smoothHeight();
+
          } else if (carousel) { //CAROUSEL:
+
            slider.slides.width(slider.computedW);
+
            slider.update(slider.pagingCount);
+
            slider.setProps();
+
          }
+
          else if (vertical) { //VERTICAL:
+
            slider.viewport.height(slider.h);
+
            slider.setProps(slider.h, "setTotal");
+
          } else {
+
            // SMOOTH HEIGHT:
+
            if (slider.vars.smoothHeight) methods.smoothHeight();
+
            slider.newSlides.width(slider.computedW);
+
            slider.setProps(slider.computedW, "setTotal");
+
          }
+
        }
+
      },
+
      smoothHeight: function(dur) {
+
        if (!vertical || fade) {
+
          var $obj = (fade) ? slider : slider.viewport;
+
          (dur) ? $obj.animate({"height": slider.slides.eq(slider.animatingTo).height()}, dur) : $obj.height(slider.slides.eq(slider.animatingTo).height());
+
        }
+
      },
+
      sync: function(action) {
+
        var $obj = $(slider.vars.sync).data("flexslider"),
+
            target = slider.animatingTo;
+
 
+
        switch (action) {
+
          case "animate": $obj.flexAnimate(target, slider.vars.pauseOnAction, false, true); break;
+
          case "play": if (!$obj.playing && !$obj.asNav) { $obj.play(); } break;
+
          case "pause": $obj.pause(); break;
+
        }
+
      },
+
      pauseInvisible: {
+
        visProp: null,
+
        init: function() {
+
          var prefixes = ['webkit','moz','ms','o'];
+
 
+
          if ('hidden' in document) return 'hidden';
+
          for (var i = 0; i < prefixes.length; i++) {
+
            if ((prefixes[i] + 'Hidden') in document)
+
            methods.pauseInvisible.visProp = prefixes[i] + 'Hidden';
+
          }
+
          if (methods.pauseInvisible.visProp) {
+
            var evtname = methods.pauseInvisible.visProp.replace(/[H|h]idden/,'') + 'visibilitychange';
+
            document.addEventListener(evtname, function() {
+
              if (methods.pauseInvisible.isHidden()) {
+
                if(slider.startTimeout) clearTimeout(slider.startTimeout); //If clock is ticking, stop timer and prevent from starting while invisible
+
                else slider.pause(); //Or just pause
+
              }
+
              else {
+
                if(slider.started) slider.play(); //Initiated before, just play
+
                else (slider.vars.initDelay > 0) ? setTimeout(slider.play, slider.vars.initDelay) : slider.play(); //Didn't init before: simply init or wait for it
+
              }
+
            });
+
          }     
+
        },
+
        isHidden: function() {
+
          return document[methods.pauseInvisible.visProp] || false;
+
        }
+
      },
+
      setToClearWatchedEvent: function() {
+
        clearTimeout(watchedEventClearTimer);
+
        watchedEventClearTimer = setTimeout(function() {
+
          watchedEvent = "";
+
        }, 3000);
+
      }
+
    }
+
 
+
    // public methods
+
    slider.flexAnimate = function(target, pause, override, withSync, fromNav) {
+
      if (!slider.vars.animationLoop && target !== slider.currentSlide) {
+
        slider.direction = (target > slider.currentSlide) ? "next" : "prev";
+
      }
+
 
+
      if (asNav && slider.pagingCount === 1) slider.direction = (slider.currentItem < target) ? "next" : "prev";
+
 
+
      if (!slider.animating && (slider.canAdvance(target, fromNav) || override) && slider.is(":visible")) {
+
        if (asNav && withSync) {
+
          var master = $(slider.vars.asNavFor).data('flexslider');
+
          slider.atEnd = target === 0 || target === slider.count - 1;
+
          master.flexAnimate(target, true, false, true, fromNav);
+
          slider.direction = (slider.currentItem < target) ? "next" : "prev";
+
          master.direction = slider.direction;
+
 
+
          if (Math.ceil((target + 1)/slider.visible) - 1 !== slider.currentSlide && target !== 0) {
+
            slider.currentItem = target;
+
            slider.slides.removeClass(namespace + "active-slide").eq(target).addClass(namespace + "active-slide");
+
            target = Math.floor(target/slider.visible);
+
          } else {
+
            slider.currentItem = target;
+
            slider.slides.removeClass(namespace + "active-slide").eq(target).addClass(namespace + "active-slide");
+
            return false;
+
          }
+
        }
+
 
+
        slider.animating = true;
+
        slider.animatingTo = target;
+
 
+
        // SLIDESHOW:
+
        if (pause) slider.pause();
+
 
+
        // API: before() animation Callback
+
        slider.vars.before(slider);
+
 
+
        // SYNC:
+
        if (slider.syncExists && !fromNav) methods.sync("animate");
+
 
+
        // CONTROLNAV
+
        if (slider.vars.controlNav) methods.controlNav.active();
+
 
+
        // !CAROUSEL:
+
        // CANDIDATE: slide active class (for add/remove slide)
+
        if (!carousel) slider.slides.removeClass(namespace + 'active-slide').eq(target).addClass(namespace + 'active-slide');
+
 
+
        // INFINITE LOOP:
+
        // CANDIDATE: atEnd
+
        slider.atEnd = target === 0 || target === slider.last;
+
 
+
        // DIRECTIONNAV:
+
        if (slider.vars.directionNav) methods.directionNav.update();
+
 
+
        if (target === slider.last) {
+
          // API: end() of cycle Callback
+
          slider.vars.end(slider);
+
          // SLIDESHOW && !INFINITE LOOP:
+
          if (!slider.vars.animationLoop) slider.pause();
+
        }
+
 
+
        // SLIDE:
+
        if (!fade) {
+
          var dimension = (vertical) ? slider.slides.filter(':first').height() : slider.computedW,
+
              margin, slideString, calcNext;
+
 
+
          // INFINITE LOOP / REVERSE:
+
          if (carousel) {
+
            //margin = (slider.vars.itemWidth > slider.w) ? slider.vars.itemMargin * 2 : slider.vars.itemMargin;
+
            margin = slider.vars.itemMargin;
+
            calcNext = ((slider.itemW + margin) * slider.move) * slider.animatingTo;
+
            slideString = (calcNext > slider.limit && slider.visible !== 1) ? slider.limit : calcNext;
+
          } else if (slider.currentSlide === 0 && target === slider.count - 1 && slider.vars.animationLoop && slider.direction !== "next") {
+
            slideString = (reverse) ? (slider.count + slider.cloneOffset) * dimension : 0;
+
          } else if (slider.currentSlide === slider.last && target === 0 && slider.vars.animationLoop && slider.direction !== "prev") {
+
            slideString = (reverse) ? 0 : (slider.count + 1) * dimension;
+
          } else {
+
            slideString = (reverse) ? ((slider.count - 1) - target + slider.cloneOffset) * dimension : (target + slider.cloneOffset) * dimension;
+
          }
+
          slider.setProps(slideString, "", slider.vars.animationSpeed);
+
          if (slider.transitions) {
+
            if (!slider.vars.animationLoop || !slider.atEnd) {
+
              slider.animating = false;
+
              slider.currentSlide = slider.animatingTo;
+
            }
+
            slider.container.unbind("webkitTransitionEnd transitionend");
+
            slider.container.bind("webkitTransitionEnd transitionend", function() {
+
              slider.wrapup(dimension);
+
            });
+
          } else {
+
            slider.container.animate(slider.args, slider.vars.animationSpeed, slider.vars.easing, function(){
+
              slider.wrapup(dimension);
+
            });
+
          }
+
        } else { // FADE:
+
          if (!touch) {
+
            //slider.slides.eq(slider.currentSlide).fadeOut(slider.vars.animationSpeed, slider.vars.easing);
+
            //slider.slides.eq(target).fadeIn(slider.vars.animationSpeed, slider.vars.easing, slider.wrapup);
+
 
+
            slider.slides.eq(slider.currentSlide).css({"zIndex": 1}).animate({"opacity": 0}, slider.vars.animationSpeed, slider.vars.easing);
+
            slider.slides.eq(target).css({"zIndex": 2}).animate({"opacity": 1}, slider.vars.animationSpeed, slider.vars.easing, slider.wrapup);
+
 
+
          } else {
+
            slider.slides.eq(slider.currentSlide).css({ "opacity": 0, "zIndex": 1 });
+
            slider.slides.eq(target).css({ "opacity": 1, "zIndex": 2 });
+
            slider.wrapup(dimension);
+
          }
+
        }
+
        // SMOOTH HEIGHT:
+
        if (slider.vars.smoothHeight) methods.smoothHeight(slider.vars.animationSpeed);
+
      }
+
    }
+
    slider.wrapup = function(dimension) {
+
      // SLIDE:
+
      if (!fade && !carousel) {
+
        if (slider.currentSlide === 0 && slider.animatingTo === slider.last && slider.vars.animationLoop) {
+
          slider.setProps(dimension, "jumpEnd");
+
        } else if (slider.currentSlide === slider.last && slider.animatingTo === 0 && slider.vars.animationLoop) {
+
          slider.setProps(dimension, "jumpStart");
+
        }
+
      }
+
      slider.animating = false;
+
      slider.currentSlide = slider.animatingTo;
+
      // API: after() animation Callback
+
      slider.vars.after(slider);
+
    }
+
 
+
    // SLIDESHOW:
+
    slider.animateSlides = function() {
+
      if (!slider.animating && focused ) slider.flexAnimate(slider.getTarget("next"));
+
    }
+
    // SLIDESHOW:
+
    slider.pause = function() {
+
      clearInterval(slider.animatedSlides);
+
      slider.animatedSlides = null;
+
      slider.playing = false;
+
      // PAUSEPLAY:
+
      if (slider.vars.pausePlay) methods.pausePlay.update("play");
+
      // SYNC:
+
      if (slider.syncExists) methods.sync("pause");
+
    }
+
    // SLIDESHOW:
+
    slider.play = function() {
+
      if (slider.playing) clearInterval(slider.animatedSlides);
+
      slider.animatedSlides = slider.animatedSlides || setInterval(slider.animateSlides, slider.vars.slideshowSpeed);
+
      slider.started = slider.playing = true;
+
      // PAUSEPLAY:
+
      if (slider.vars.pausePlay) methods.pausePlay.update("pause");
+
      // SYNC:
+
      if (slider.syncExists) methods.sync("play");
+
    }
+
    // STOP:
+
    slider.stop = function () {
+
      slider.pause();
+
      slider.stopped = true;
+
    }
+
    slider.canAdvance = function(target, fromNav) {
+
      // ASNAV:
+
      var last = (asNav) ? slider.pagingCount - 1 : slider.last;
+
      return (fromNav) ? true :
+
            (asNav && slider.currentItem === slider.count - 1 && target === 0 && slider.direction === "prev") ? true :
+
            (asNav && slider.currentItem === 0 && target === slider.pagingCount - 1 && slider.direction !== "next") ? false :
+
            (target === slider.currentSlide && !asNav) ? false :
+
            (slider.vars.animationLoop) ? true :
+
            (slider.atEnd && slider.currentSlide === 0 && target === last && slider.direction !== "next") ? false :
+
            (slider.atEnd && slider.currentSlide === last && target === 0 && slider.direction === "next") ? false :
+
            true;
+
    }
+
    slider.getTarget = function(dir) {
+
      slider.direction = dir;
+
      if (dir === "next") {
+
        return (slider.currentSlide === slider.last) ? 0 : slider.currentSlide + 1;
+
      } else {
+
        return (slider.currentSlide === 0) ? slider.last : slider.currentSlide - 1;
+
      }
+
    }
+
 
+
    // SLIDE:
+
    slider.setProps = function(pos, special, dur) {
+
      var target = (function() {
+
        var posCheck = (pos) ? pos : ((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo,
+
            posCalc = (function() {
+
              if (carousel) {
+
                return (special === "setTouch") ? pos :
+
                      (reverse && slider.animatingTo === slider.last) ? 0 :
+
                      (reverse) ? slider.limit - (((slider.itemW + slider.vars.itemMargin) * slider.move) * slider.animatingTo) :
+
                      (slider.animatingTo === slider.last) ? slider.limit : posCheck;
+
              } else {
+
                switch (special) {
+
                  case "setTotal": return (reverse) ? ((slider.count - 1) - slider.currentSlide + slider.cloneOffset) * pos : (slider.currentSlide + slider.cloneOffset) * pos;
+
                  case "setTouch": return (reverse) ? pos : pos;
+
                  case "jumpEnd": return (reverse) ? pos : slider.count * pos;
+
                  case "jumpStart": return (reverse) ? slider.count * pos : pos;
+
                  default: return pos;
+
                }
+
              }
+
            }());
+
 
+
            return (posCalc * -1) + "px";
+
          }());
+
 
+
      if (slider.transitions) {
+
        target = (vertical) ? "translate3d(0," + target + ",0)" : "translate3d(" + target + ",0,0)";
+
        dur = (dur !== undefined) ? (dur/1000) + "s" : "0s";
+
        slider.container.css("-" + slider.pfx + "-transition-duration", dur);
+
      }
+
 
+
      slider.args[slider.prop] = target;
+
      if (slider.transitions || dur === undefined) slider.container.css(slider.args);
+
    }
+
 
+
    slider.setup = function(type) {
+
      // SLIDE:
+
      if (!fade) {
+
        var sliderOffset, arr;
+
 
+
        if (type === "init") {
+
          slider.viewport = $('<div class="' + namespace + 'viewport"></div>').css({"overflow": "hidden", "position": "relative"}).appendTo(slider).append(slider.container);
+
          // INFINITE LOOP:
+
          slider.cloneCount = 0;
+
          slider.cloneOffset = 0;
+
          // REVERSE:
+
          if (reverse) {
+
            arr = $.makeArray(slider.slides).reverse();
+
            slider.slides = $(arr);
+
            slider.container.empty().append(slider.slides);
+
          }
+
        }
+
        // INFINITE LOOP && !CAROUSEL:
+
        if (slider.vars.animationLoop && !carousel) {
+
          slider.cloneCount = 2;
+
          slider.cloneOffset = 1;
+
          // clear out old clones
+
          if (type !== "init") slider.container.find('.clone').remove();
+
          slider.container.append(slider.slides.first().clone().addClass('clone').attr('aria-hidden', 'true')).prepend(slider.slides.last().clone().addClass('clone').attr('aria-hidden', 'true'));
+
        }
+
        slider.newSlides = $(slider.vars.selector, slider);
+
 
+
        sliderOffset = (reverse) ? slider.count - 1 - slider.currentSlide + slider.cloneOffset : slider.currentSlide + slider.cloneOffset;
+
        // VERTICAL:
+
        if (vertical && !carousel) {
+
          slider.container.height((slider.count + slider.cloneCount) * 200 + "%").css("position", "absolute").width("100%");
+
          setTimeout(function(){
+
            slider.newSlides.css({"display": "block"});
+
            slider.doMath();
+
            slider.viewport.height(slider.h);
+
            slider.setProps(sliderOffset * slider.h, "init");
+
          }, (type === "init") ? 100 : 0);
+
        } else {
+
          slider.container.width((slider.count + slider.cloneCount) * 200 + "%");
+
          slider.setProps(sliderOffset * slider.computedW, "init");
+
          setTimeout(function(){
+
            slider.doMath();
+
            slider.newSlides.css({"width": slider.computedW, "float": "left", "display": "block"});
+
            // SMOOTH HEIGHT:
+
            if (slider.vars.smoothHeight) methods.smoothHeight();
+
          }, (type === "init") ? 100 : 0);
+
        }
+
      } else { // FADE:
+
        slider.slides.css({"width": "100%", "float": "left", "marginRight": "-100%", "position": "relative"});
+
        if (type === "init") {
+
          if (!touch) {
+
            //slider.slides.eq(slider.currentSlide).fadeIn(slider.vars.animationSpeed, slider.vars.easing);
+
            slider.slides.css({ "opacity": 0, "display": "block", "zIndex": 1 }).eq(slider.currentSlide).css({"zIndex": 2}).animate({"opacity": 1},slider.vars.animationSpeed,slider.vars.easing);
+
          } else {
+
            slider.slides.css({ "opacity": 0, "display": "block", "webkitTransition": "opacity " + slider.vars.animationSpeed / 1000 + "s ease", "zIndex": 1 }).eq(slider.currentSlide).css({ "opacity": 1, "zIndex": 2});
+
          }
+
        }
+
        // SMOOTH HEIGHT:
+
        if (slider.vars.smoothHeight) methods.smoothHeight();
+
      }
+
      // !CAROUSEL:
+
      // CANDIDATE: active slide
+
      if (!carousel) slider.slides.removeClass(namespace + "active-slide").eq(slider.currentSlide).addClass(namespace + "active-slide");
+
    }
+
 
+
 
+
    slider.doMath = function() {
+
      var slide = slider.slides.first(),
+
          slideMargin = slider.vars.itemMargin,
+
          minItems = slider.vars.minItems,
+
          maxItems = slider.vars.maxItems;
+
 
+
      slider.w = (slider.viewport===undefined) ? slider.width() : slider.viewport.width();
+
      slider.h = slide.height();
+
      slider.boxPadding = slide.outerWidth() - slide.width();
+
 
+
      // CAROUSEL:
+
      if (carousel) {
+
        slider.itemT = slider.vars.itemWidth + slideMargin;
+
        slider.minW = (minItems) ? minItems * slider.itemT : slider.w;
+
        slider.maxW = (maxItems) ? (maxItems * slider.itemT) - slideMargin : slider.w;
+
        slider.itemW = (slider.minW > slider.w) ? (slider.w - (slideMargin * (minItems - 1)))/minItems :
+
                      (slider.maxW < slider.w) ? (slider.w - (slideMargin * (maxItems - 1)))/maxItems :
+
                      (slider.vars.itemWidth > slider.w) ? slider.w : slider.vars.itemWidth;
+
 
+
        slider.visible = Math.floor(slider.w/(slider.itemW));
+
        slider.move = (slider.vars.move > 0 && slider.vars.move < slider.visible ) ? slider.vars.move : slider.visible;
+
        slider.pagingCount = Math.ceil(((slider.count - slider.visible)/slider.move) + 1);
+
        slider.last =  slider.pagingCount - 1;
+
        slider.limit = (slider.pagingCount === 1) ? 0 :
+
                      (slider.vars.itemWidth > slider.w) ? (slider.itemW * (slider.count - 1)) + (slideMargin * (slider.count - 1)) : ((slider.itemW + slideMargin) * slider.count) - slider.w - slideMargin;
+
      } else {
+
        slider.itemW = slider.w;
+
        slider.pagingCount = slider.count;
+
        slider.last = slider.count - 1;
+
      }
+
      slider.computedW = slider.itemW - slider.boxPadding;
+
    }
+
 
+
 
+
    slider.update = function(pos, action) {
+
      slider.doMath();
+
 
+
      // update currentSlide and slider.animatingTo if necessary
+
      if (!carousel) {
+
        if (pos < slider.currentSlide) {
+
          slider.currentSlide += 1;
+
        } else if (pos <= slider.currentSlide && pos !== 0) {
+
          slider.currentSlide -= 1;
+
        }
+
        slider.animatingTo = slider.currentSlide;
+
      }
+
 
+
      // update controlNav
+
      if (slider.vars.controlNav && !slider.manualControls) {
+
        if ((action === "add" && !carousel) || slider.pagingCount > slider.controlNav.length) {
+
          methods.controlNav.update("add");
+
        } else if ((action === "remove" && !carousel) || slider.pagingCount < slider.controlNav.length) {
+
          if (carousel && slider.currentSlide > slider.last) {
+
            slider.currentSlide -= 1;
+
            slider.animatingTo -= 1;
+
          }
+
          methods.controlNav.update("remove", slider.last);
+
        }
+
      }
+
      // update directionNav
+
      if (slider.vars.directionNav) methods.directionNav.update();
+
 
+
    }
+
 
+
    slider.addSlide = function(obj, pos) {
+
      var $obj = $(obj);
+
 
+
      slider.count += 1;
+
      slider.last = slider.count - 1;
+
 
+
      // append new slide
+
      if (vertical && reverse) {
+
        (pos !== undefined) ? slider.slides.eq(slider.count - pos).after($obj) : slider.container.prepend($obj);
+
      } else {
+
        (pos !== undefined) ? slider.slides.eq(pos).before($obj) : slider.container.append($obj);
+
      }
+
 
+
      // update currentSlide, animatingTo, controlNav, and directionNav
+
      slider.update(pos, "add");
+
 
+
      // update slider.slides
+
      slider.slides = $(slider.vars.selector + ':not(.clone)', slider);
+
      // re-setup the slider to accomdate new slide
+
      slider.setup();
+
 
+
      //FlexSlider: added() Callback
+
      slider.vars.added(slider);
+
    }
+
    slider.removeSlide = function(obj) {
+
      var pos = (isNaN(obj)) ? slider.slides.index($(obj)) : obj;
+
 
+
      // update count
+
      slider.count -= 1;
+
      slider.last = slider.count - 1;
+
 
+
      // remove slide
+
      if (isNaN(obj)) {
+
        $(obj, slider.slides).remove();
+
      } else {
+
        (vertical && reverse) ? slider.slides.eq(slider.last).remove() : slider.slides.eq(obj).remove();
+
      }
+
 
+
      // update currentSlide, animatingTo, controlNav, and directionNav
+
      slider.doMath();
+
      slider.update(pos, "remove");
+
 
+
      // update slider.slides
+
      slider.slides = $(slider.vars.selector + ':not(.clone)', slider);
+
      // re-setup the slider to accomdate new slide
+
      slider.setup();
+
 
+
      // FlexSlider: removed() Callback
+
      slider.vars.removed(slider);
+
    }
+
 
+
    //FlexSlider: Initialize
+
    methods.init();
+
  }
+
 
+
  // Ensure the slider isn't focussed if the window loses focus.
+
  $( window ).blur( function ( e ) {
+
    focused = false;
+
  }).focus( function ( e ) {
+
    focused = true;
+
  });
+
 
+
  //FlexSlider: Default Settings
+
  $.flexslider.defaults = {
+
    namespace: "flex-",            //{NEW} String: Prefix string attached to the class of every element generated by the plugin
+
    selector: ".slides > li",      //{NEW} Selector: Must match a simple pattern. '{container} > {slide}' -- Ignore pattern at your own peril
+
    animation: "fade",              //String: Select your animation type, "fade" or "slide"
+
    easing: "swing",                //{NEW} String: Determines the easing method used in jQuery transitions. jQuery easing plugin is supported!
+
    direction: "horizontal",        //String: Select the sliding direction, "horizontal" or "vertical"
+
    reverse: false,                //{NEW} Boolean: Reverse the animation direction
+
    animationLoop: true,            //Boolean: Should the animation loop? If false, directionNav will received "disable" classes at either end
+
    smoothHeight: false,            //{NEW} Boolean: Allow height of the slider to animate smoothly in horizontal mode
+
    startAt: 0,                    //Integer: The slide that the slider should start on. Array notation (0 = first slide)
+
    slideshow: true,                //Boolean: Animate slider automatically
+
    slideshowSpeed: 7000,          //Integer: Set the speed of the slideshow cycling, in milliseconds
+
    animationSpeed: 600,            //Integer: Set the speed of animations, in milliseconds
+
    initDelay: 0,                  //{NEW} Integer: Set an initialization delay, in milliseconds
+
    randomize: false,              //Boolean: Randomize slide order
+
    thumbCaptions: false,          //Boolean: Whether or not to put captions on thumbnails when using the "thumbnails" controlNav.
+
 
+
    // Usability features
+
    pauseOnAction: true,            //Boolean: Pause the slideshow when interacting with control elements, highly recommended.
+
    pauseOnHover: false,            //Boolean: Pause the slideshow when hovering over slider, then resume when no longer hovering
+
    pauseInvisible: true,      //{NEW} Boolean: Pause the slideshow when tab is invisible, resume when visible. Provides better UX, lower CPU usage.
+
    useCSS: true,                  //{NEW} Boolean: Slider will use CSS3 transitions if available
+
    touch: true,                    //{NEW} Boolean: Allow touch swipe navigation of the slider on touch-enabled devices
+
    video: false,                  //{NEW} Boolean: If using video in the slider, will prevent CSS3 3D Transforms to avoid graphical glitches
+
 
+
    // Primary Controls
+
    controlNav: true,              //Boolean: Create navigation for paging control of each clide? Note: Leave true for manualControls usage
+
    directionNav: true,            //Boolean: Create navigation for previous/next navigation? (true/false)
+
    prevText: "Previous",          //String: Set the text for the "previous" directionNav item
+
    nextText: "Next",              //String: Set the text for the "next" directionNav item
+
 
+
    // Secondary Navigation
+
    keyboard: true,                //Boolean: Allow slider navigating via keyboard left/right keys
+
    multipleKeyboard: false,        //{NEW} Boolean: Allow keyboard navigation to affect multiple sliders. Default behavior cuts out keyboard navigation with more than one slider present.
+
    mousewheel: false,              //{UPDATED} Boolean: Requires jquery.mousewheel.js (https://github.com/brandonaaron/jquery-mousewheel) - Allows slider navigating via mousewheel
+
    pausePlay: false,              //Boolean: Create pause/play dynamic element
+
    pauseText: "Pause",            //String: Set the text for the "pause" pausePlay item
+
    playText: "Play",              //String: Set the text for the "play" pausePlay item
+
 
+
    // Special properties
+
    controlsContainer: "",          //{UPDATED} jQuery Object/Selector: Declare which container the navigation elements should be appended too. Default container is the FlexSlider element. Example use would be $(".flexslider-container"). Property is ignored if given element is not found.
+
    manualControls: "",            //{UPDATED} jQuery Object/Selector: Declare custom control navigation. Examples would be $(".flex-control-nav li") or "#tabs-nav li img", etc. The number of elements in your controlNav should match the number of slides/tabs.
+
    sync: "",                      //{NEW} Selector: Mirror the actions performed on this slider with another slider. Use with care.
+
    asNavFor: "",                  //{NEW} Selector: Internal property exposed for turning the slider into a thumbnail navigation for another slider
+
 
+
    // Carousel Options
+
    itemWidth: 0,                  //{NEW} Integer: Box-model width of individual carousel items, including horizontal borders and padding.
+
    itemMargin: 0,                  //{NEW} Integer: Margin between carousel items.
+
    minItems: 1,                    //{NEW} Integer: Minimum number of carousel items that should be visible. Items will resize fluidly when below this.
+
    maxItems: 0,                    //{NEW} Integer: Maxmimum number of carousel items that should be visible. Items will resize fluidly when above this limit.
+
    move: 0,                        //{NEW} Integer: Number of carousel items that should move on animation. If 0, slider will move all visible items.
+
    allowOneSlide: true,          //{NEW} Boolean: Whether or not to allow a slider comprised of a single slide
+
 
+
    // Callback API
+
    start: function(){},            //Callback: function(slider) - Fires when the slider loads the first slide
+
    before: function(){},          //Callback: function(slider) - Fires asynchronously with each slider animation
+
    after: function(){},            //Callback: function(slider) - Fires after each slider animation completes
+
    end: function(){},              //Callback: function(slider) - Fires when the slider reaches the last slide (asynchronous)
+
    added: function(){},            //{NEW} Callback: function(slider) - Fires after a slide is added
+
    removed: function(){}          //{NEW} Callback: function(slider) - Fires after a slide is removed
+
  }
+
 
+
 
+
  //FlexSlider: Plugin Function
+
  $.fn.flexslider = function(options) {
+
    if (options === undefined) options = {};
+
 
+
    if (typeof options === "object") {
+
      return this.each(function() {
+
        var $this = $(this),
+
            selector = (options.selector) ? options.selector : ".slides > li",
+
            $slides = $this.find(selector);
+
 
+
      if ( ( $slides.length === 1 && options.allowOneSlide === true ) || $slides.length === 0 ) {
+
          $slides.fadeIn(400);
+
          if (options.start) options.start($this);
+
        } else if ($this.data('flexslider') === undefined) {
+
          new $.flexslider(this, options);
+
        }
+
      });
+
    } else {
+
      // Helper strings to quickly perform functions on the slider
+
      var $slider = $(this).data('flexslider');
+
      switch (options) {
+
        case "play": $slider.play(); break;
+
        case "pause": $slider.pause(); break;
+
        case "stop": $slider.stop(); break;
+
        case "next": $slider.flexAnimate($slider.getTarget("next"), true); break;
+
        case "prev":
+
        case "previous": $slider.flexAnimate($slider.getTarget("prev"), true); break;
+
        default: if (typeof options === "number") $slider.flexAnimate(options, true);
+
      }
+
    }
+
  }
+
})(jQuery);
+
 
+
 
+
 
+
/*
+
Plugin: jQuery Parallax
+
Version 1.1.3
+
Author: Ian Lunn
+
Twitter: @IanLunn
+
Author URL: http://www.ianlunn.co.uk/
+
Plugin URL: http://www.ianlunn.co.uk/plugins/jquery-parallax/
+
 
+
Dual licensed under the MIT and GPL licenses:
+
http://www.opensource.org/licenses/mit-license.php
+
http://www.gnu.org/licenses/gpl.html
+
*/
+
 
+
(function( $ ){
+
    var $window = $(window);
+
    var windowHeight = $window.height();
+
 
+
    $window.resize(function () {
+
        windowHeight = $window.height();
+
    });
+
 
+
    $.fn.parallax = function(xpos, speedFactor, outerHeight) {
+
        var $this = $(this);
+
        var getHeight;
+
        var firstTop;
+
        var paddingTop = 0;
+
 
+
        //get the starting position of each element to have parallax applied to it
+
        $this.each(function(){
+
            firstTop = $this.offset().top;
+
        });
+
 
+
        if (outerHeight) {
+
            getHeight = function(jqo) {
+
                return jqo.outerHeight(true);
+
            };
+
        } else {
+
            getHeight = function(jqo) {
+
                return jqo.height();
+
            };
+
        }
+
 
+
        // setup defaults if arguments aren't specified
+
        if (arguments.length < 1 || xpos === null) xpos = "50%";
+
        if (arguments.length < 2 || speedFactor === null) speedFactor = 0.1;
+
        if (arguments.length < 3 || outerHeight === null) outerHeight = true;
+
 
+
        // function to be called whenever the window is scrolled or resized
+
        function update(){
+
            var pos = $window.scrollTop();
+
 
+
            $this.each(function(){
+
                var $element = $(this);
+
                var top = $element.offset().top;
+
                var height = getHeight($element);
+
 
+
                // Check if totally above or totally below viewport
+
                if (top + height < pos || top > pos + windowHeight) {
+
                    return;
+
                }
+
 
+
                $this.css('backgroundPosition', xpos + " " + Math.round((firstTop - pos) * speedFactor) + "px");
+
            });
+
        }
+
 
+
        $window.bind('scroll', update).resize(update);
+
        update();
+
    };
+
})(jQuery);
+
 
+
 
+
jQuery(document).ready(function($){
+
 
+
// SmoothScroll v0.9.9
+
// Licensed under the terms of the MIT license.
+
 
+
// People involved
+
// - Balazs Galambosi: maintainer (CHANGELOG.txt)
+
// - Patrick Brunner (patrickb1991@gmail.com)
+
// - Michael Herf: ssc_pulse Algorithm
+
 
+
// Scroll Variables (tweakable)
+
    var ssc_framerate = 150; // [Hz]
+
    var ssc_animtime  = 500; // [px]
+
    var ssc_stepsize  = 150; // [px]
+
 
+
// ssc_pulse (less tweakable)
+
// ratio of "tail" to "acceleration"
+
    var ssc_pulseAlgorithm = true;
+
    var ssc_pulseScale    = 6;
+
    var ssc_pulseNormalize = 1;
+
 
+
// Keyboard Settings
+
    var ssc_keyboardsupport = true;
+
    var ssc_arrowscroll    = 50; // [px]
+
 
+
// Other Variables
+
    var ssc_frame = false;
+
    var ssc_direction = { x: 0, y: 0 };
+
    var ssc_initdone  = false;
+
    var ssc_fixedback = true;
+
    var ssc_root = document.documentElement;
+
    var ssc_activeElement;
+
 
+
    var ssc_key = { left: 37, up: 38, right: 39, down: 40, spacebar: 32, pageup: 33, pagedown: 34, end: 35, home: 36 };
+
 
+
    /***********************************************
+
    * INITIALIZE
+
    ***********************************************/
+
 
+
    /**
+
    * Sets up scrolls array, determines if ssc_frames are involved.
+
    */
+
    function ssc_init() {
+
 
+
        if (!document.body) return;
+
 
+
        var body = document.body;
+
        var html = document.documentElement;
+
        var windowHeight = window.innerHeight;
+
        var scrollHeight = body.scrollHeight;
+
 
+
        // check compat mode for ssc_root element
+
        ssc_root = (document.compatMode.indexOf('CSS') >= 0) ? html : body;
+
        ssc_activeElement = body;
+
 
+
        ssc_initdone = true;
+
 
+
        // Checks if this script is running in a ssc_frame
+
        if (top != self) {
+
            ssc_frame = true;
+
        }
+
 
+
        /**
+
        * This fixes a bug where the areas left and right to
+
        * the content does not trigger the onmousewheel event
+
        * on some pages. e.g.: html, body { height: 100% }
+
        */
+
        else if (scrollHeight > windowHeight &&
+
            (body.offsetHeight <= windowHeight ||
+
                html.offsetHeight <= windowHeight)) {
+
            ssc_root.style.height = "auto";
+
            if (ssc_root.offsetHeight <= windowHeight) {
+
                var underlay = document.createElement("div");
+
                underlay.style.clear = "both";
+
                body.appendChild(underlay);
+
            }
+
        }
+
 
+
        if (!ssc_fixedback) {
+
            body.style.backgroundAttachment = "scroll";
+
            html.style.backgroundAttachment = "scroll";
+
        }
+
 
+
        if (ssc_keyboardsupport) {
+
            ssc_addEvent("keydown", ssc_keydown);
+
        }
+
    }
+
 
+
 
+
    /************************************************
+
    * SCROLLING
+
    ************************************************/
+
 
+
    var ssc_que = [];
+
    var ssc_pending = false;
+
 
+
    /**
+
    * Pushes scroll actions to the scrolling queue.
+
    */
+
    function ssc_scrollArray(elem, left, top, delay) {
+
 
+
        delay || (delay = 1000);
+
        ssc_directionCheck(left, top);
+
 
+
        // push a scroll command
+
        ssc_que.push({
+
            x: left,
+
            y: top,
+
            lastX: (left < 0) ? 0.99 : -0.99,
+
            lastY: (top  < 0) ? 0.99 : -0.99,
+
            start: +new Date
+
        });
+
 
+
        // don't act if there's a ssc_pending queue
+
        if (ssc_pending) {
+
            return;
+
        }
+
 
+
        var step = function() {
+
 
+
            var now = +new Date;
+
            var scrollX = 0;
+
            var scrollY = 0;
+
 
+
            for (var i = 0; i < ssc_que.length; i++) {
+
 
+
                var item = ssc_que[i];
+
                var elapsed  = now - item.start;
+
                var finished = (elapsed >= ssc_animtime);
+
 
+
                // scroll position: [0, 1]
+
                var position = (finished) ? 1 : elapsed / ssc_animtime;
+
 
+
                // easing [optional]
+
                if (ssc_pulseAlgorithm) {
+
                    position = ssc_pulse(position);
+
                }
+
 
+
                // only need the difference
+
                var x = (item.x * position - item.lastX) >> 0;
+
                var y = (item.y * position - item.lastY) >> 0;
+
 
+
                // add this to the total scrolling
+
                scrollX += x;
+
                scrollY += y;
+
 
+
                // update last values
+
                item.lastX += x;
+
                item.lastY += y;
+
 
+
                // delete and step back if it's over
+
                if (finished) {
+
                    ssc_que.splice(i, 1); i--;
+
                }
+
            }
+
 
+
            // scroll left
+
            if (left) {
+
                var lastLeft = elem.scrollLeft;
+
                elem.scrollLeft += scrollX;
+
 
+
                // scroll left failed (edge)
+
                if (scrollX && elem.scrollLeft === lastLeft) {
+
                    left = 0;
+
                }
+
            }
+
 
+
            // scroll top
+
            if (top) {
+
                var lastTop = elem.scrollTop;
+
                elem.scrollTop += scrollY;
+
 
+
                // scroll top failed (edge)
+
                if (scrollY && elem.scrollTop === lastTop) {
+
                    top = 0;
+
                }
+
            }
+
 
+
            // clean up if there's nothing left to do
+
            if (!left && !top) {
+
                ssc_que = [];
+
            }
+
 
+
            if (ssc_que.length) {
+
                setTimeout(step, delay / ssc_framerate + 1);
+
            } else {
+
                ssc_pending = false;
+
            }
+
        }
+
 
+
        // start a new queue of actions
+
        setTimeout(step, 0);
+
        ssc_pending = true;
+
    }
+
 
+
 
+
    /***********************************************
+
    * EVENTS
+
    ***********************************************/
+
 
+
    /**
+
    * Mouse ssc_wheel handler.
+
    * @param {Object} event
+
    */
+
    function ssc_wheel(event) {
+
 
+
        if (!ssc_initdone) {
+
            init();
+
        }
+
 
+
        var target = event.target;
+
        var overflowing = ssc_overflowingAncestor(target);
+
 
+
        // use default if there's no overflowing
+
        // element or default action is prevented
+
        if (!overflowing || event.defaultPrevented ||
+
            ssc_isNodeName(ssc_activeElement, "embed") ||
+
            (ssc_isNodeName(target, "embed") && /\.pdf/i.test(target.src))) {
+
            return true;
+
        }
+
 
+
        var deltaX = event.wheelDeltaX || 0;
+
        var deltaY = event.wheelDeltaY || 0;
+
 
+
        // use wheelDelta if deltaX/Y is not available
+
        if (!deltaX && !deltaY) {
+
            deltaY = event.wheelDelta || 0;
+
        }
+
 
+
        // scale by step size
+
        // delta is 120 most of the time
+
        // synaptics seems to send 1 sometimes
+
        if (Math.abs(deltaX) > 1.2) {
+
            deltaX *= ssc_stepsize / 120;
+
        }
+
        if (Math.abs(deltaY) > 1.2) {
+
            deltaY *= ssc_stepsize / 120;
+
        }
+
 
+
        ssc_scrollArray(overflowing, -deltaX, -deltaY);
+
        event.preventDefault();
+
    }
+
 
+
    /**
+
    * ssc_keydown event handler.
+
    * @param {Object} event
+
    */
+
    function ssc_keydown(event) {
+
 
+
        var target  = event.target;
+
        var modifier = event.ctrlKey || event.altKey || event.metaKey;
+
 
+
        // do nothing if user is editing text
+
        // or using a modifier ssc_key (except shift)
+
        if ( /input|textarea|embed/i.test(target.nodeName) ||
+
            target.isContentEditable ||
+
            event.defaultPrevented  ||
+
            modifier ) {
+
            return true;
+
        }
+
        // spacebar should trigger button press
+
        if (ssc_isNodeName(target, "button") &&
+
            event.keyCode === ssc_key.spacebar) {
+
            return true;
+
        }
+
 
+
        var shift, x = 0, y = 0;
+
        var elem = ssc_overflowingAncestor(ssc_activeElement);
+
        var clientHeight = elem.clientHeight;
+
 
+
        if (elem == document.body) {
+
            clientHeight = window.innerHeight;
+
        }
+
 
+
        switch (event.keyCode) {
+
            case ssc_key.up:
+
                y = -ssc_arrowscroll;
+
                break;
+
            case ssc_key.down:
+
                y = ssc_arrowscroll;
+
                break;
+
            case ssc_key.spacebar: // (+ shift)
+
                shift = event.shiftKey ? 1 : -1;
+
                y = -shift * clientHeight * 0.9;
+
                break;
+
            case ssc_key.pageup:
+
                y = -clientHeight * 0.9;
+
                break;
+
            case ssc_key.pagedown:
+
                y = clientHeight * 0.9;
+
                break;
+
            case ssc_key.home:
+
                y = -elem.scrollTop;
+
                break;
+
            case ssc_key.end:
+
                var damt = elem.scrollHeight - elem.scrollTop - clientHeight;
+
                y = (damt > 0) ? damt+10 : 0;
+
                break;
+
            case ssc_key.left:
+
                x = -ssc_arrowscroll;
+
                break;
+
            case ssc_key.right:
+
                x = ssc_arrowscroll;
+
                break;
+
            default:
+
                return true; // a ssc_key we don't care about
+
        }
+
 
+
        ssc_scrollArray(elem, x, y);
+
        event.preventDefault();
+
    }
+
 
+
    /**
+
    * ssc_mousedown event only for updating ssc_activeElement
+
    */
+
    function ssc_mousedown(event) {
+
        ssc_activeElement = event.target;
+
    }
+
 
+
 
+
    /***********************************************
+
    * OVERFLOW
+
    ***********************************************/
+
 
+
    var ssc_cache = {}; // cleared out every once in while
+
    setInterval(function(){ ssc_cache = {}; }, 10 * 1000);
+
 
+
    var ssc_uniqueID = (function() {
+
        var i = 0;
+
        return function (el) {
+
            return el.ssc_uniqueID || (el.ssc_uniqueID = i++);
+
        };
+
    })();
+
 
+
    function ssc_setCache(elems, overflowing) {
+
        for (var i = elems.length; i--;)
+
            ssc_cache[ssc_uniqueID(elems[i])] = overflowing;
+
        return overflowing;
+
    }
+
 
+
    function ssc_overflowingAncestor(el) {
+
        var elems = [];
+
        var ssc_rootScrollHeight = ssc_root.scrollHeight;
+
        do {
+
            var cached = ssc_cache[ssc_uniqueID(el)];
+
            if (cached) {
+
                return ssc_setCache(elems, cached);
+
            }
+
            elems.push(el);
+
            if (ssc_rootScrollHeight === el.scrollHeight) {
+
                if (!ssc_frame || ssc_root.clientHeight + 10 < ssc_rootScrollHeight) {
+
                    return ssc_setCache(elems, document.body); // scrolling ssc_root in WebKit
+
                }
+
            } else if (el.clientHeight + 10 < el.scrollHeight) {
+
                overflow = getComputedStyle(el, "").getPropertyValue("overflow");
+
                if (overflow === "scroll" || overflow === "auto") {
+
                    return ssc_setCache(elems, el);
+
                }
+
            }
+
        } while (el = el.parentNode);
+
    }
+
 
+
 
+
    /***********************************************
+
    * HELPERS
+
    ***********************************************/
+
 
+
    function ssc_addEvent(type, fn, bubble) {
+
        window.addEventListener(type, fn, (bubble||false));
+
    }
+
 
+
    function ssc_removeEvent(type, fn, bubble) {
+
        window.removeEventListener(type, fn, (bubble||false));
+
    }
+
 
+
    function ssc_isNodeName(el, tag) {
+
        return el.nodeName.toLowerCase() === tag.toLowerCase();
+
    }
+
 
+
    function ssc_directionCheck(x, y) {
+
        x = (x > 0) ? 1 : -1;
+
        y = (y > 0) ? 1 : -1;
+
        if (ssc_direction.x !== x || ssc_direction.y !== y) {
+
            ssc_direction.x = x;
+
            ssc_direction.y = y;
+
            ssc_que = [];
+
        }
+
    }
+
 
+
 
+
    /***********************************************
+
    * ssc_pulse
+
    ***********************************************/
+
 
+
    /**
+
    * Viscous fluid with a ssc_pulse for part and decay for the rest.
+
    * - Applies a fixed force over an interval (a damped acceleration), and
+
    * - Lets the exponential bleed away the velocity over a longer interval
+
    * - Michael Herf, http://stereopsis.com/stopping/
+
    */
+
    function ssc_pulse_(x) {
+
        var val, start, expx;
+
        // test
+
        x = x * ssc_pulseScale;
+
        if (x < 1) { // acceleartion
+
            val = x - (1 - Math.exp(-x));
+
        } else {    // tail
+
            // the previous animation ended here:
+
            start = Math.exp(-1);
+
            // simple viscous drag
+
            x -= 1;
+
            expx = 1 - Math.exp(-x);
+
            val = start + (expx * (1 - start));
+
        }
+
        return val * ssc_pulseNormalize;
+
    }
+
 
+
    function ssc_pulse(x) {
+
        if (x >= 1) return 1;
+
        if (x <= 0) return 0;
+
 
+
        if (ssc_pulseNormalize == 1) {
+
            ssc_pulseNormalize /= ssc_pulse_(1);
+
        }
+
        return ssc_pulse_(x);
+
    }
+
 
+
    $.browser.chrome = /chrome/.test(navigator.userAgent.toLowerCase());
+
    if ( $.browser.chrome ) {
+
        ssc_addEvent("mousedown", ssc_mousedown);
+
        ssc_addEvent("mousewheel", ssc_wheel);
+
        ssc_addEvent("load", ssc_init);
+
    }
+
});
+
 
+
 
+
 
+
 
+
/*
+
*  jQuery OwlCarousel v1.3.2
+
*
+
*  Copyright (c) 2013 Bartosz Wojciechowski
+
*  http://www.owlgraphic.com/owlcarousel/
+
*
+
*  Licensed under MIT
+
*
+
*/
+
 
+
/*JS Lint helpers: */
+
/*global dragMove: false, dragEnd: false, $, jQuery, alert, window, document */
+
/*jslint nomen: true, continue:true */
+
 
+
if (typeof Object.create !== "function") {
+
    Object.create = function (obj) {
+
        function F() {}
+
        F.prototype = obj;
+
        return new F();
+
    };
+
}
+
(function ($, window, document) {
+
 
+
    var Carousel = {
+
        init : function (options, el) {
+
            var base = this;
+
 
+
            base.$elem = $(el);
+
            base.options = $.extend({}, $.fn.owlCarousel.options, base.$elem.data(), options);
+
 
+
            base.userOptions = options;
+
            base.loadContent();
+
        },
+
 
+
        loadContent : function () {
+
            var base = this, url;
+
 
+
            function getData(data) {
+
                var i, content = "";
+
                if (typeof base.options.jsonSuccess === "function") {
+
                    base.options.jsonSuccess.apply(this, [data]);
+
                } else {
+
                    for (i in data.owl) {
+
                        if (data.owl.hasOwnProperty(i)) {
+
                            content += data.owl[i].item;
+
                        }
+
                    }
+
                    base.$elem.html(content);
+
                }
+
                base.logIn();
+
            }
+
 
+
            if (typeof base.options.beforeInit === "function") {
+
                base.options.beforeInit.apply(this, [base.$elem]);
+
            }
+
 
+
            if (typeof base.options.jsonPath === "string") {
+
                url = base.options.jsonPath;
+
                $.getJSON(url, getData);
+
            } else {
+
                base.logIn();
+
            }
+
        },
+
 
+
        logIn : function () {
+
            var base = this;
+
 
+
            base.$elem.data("owl-originalStyles", base.$elem.attr("style"))
+
                      .data("owl-originalClasses", base.$elem.attr("class"));
+
 
+
            base.$elem.css({opacity: 0});
+
            base.orignalItems = base.options.items;
+
            base.checkBrowser();
+
            base.wrapperWidth = 0;
+
            base.checkVisible = null;
+
            base.setVars();
+
        },
+
 
+
        setVars : function () {
+
            var base = this;
+
            if (base.$elem.children().length === 0) {return false; }
+
            base.baseClass();
+
            base.eventTypes();
+
            base.$userItems = base.$elem.children();
+
            base.itemsAmount = base.$userItems.length;
+
            base.wrapItems();
+
            base.$owlItems = base.$elem.find(".owl-item");
+
            base.$owlWrapper = base.$elem.find(".owl-wrapper");
+
            base.playDirection = "next";
+
            base.prevItem = 0;
+
            base.prevArr = [0];
+
            base.currentItem = 0;
+
            base.customEvents();
+
            base.onStartup();
+
        },
+
 
+
        onStartup : function () {
+
            var base = this;
+
            base.updateItems();
+
            base.calculateAll();
+
            base.buildControls();
+
            base.updateControls();
+
            base.response();
+
            base.moveEvents();
+
            base.stopOnHover();
+
            base.owlStatus();
+
 
+
            if (base.options.transitionStyle !== false) {
+
                base.transitionTypes(base.options.transitionStyle);
+
            }
+
            if (base.options.autoPlay === true) {
+
                base.options.autoPlay = 5000;
+
            }
+
            base.play();
+
 
+
            base.$elem.find(".owl-wrapper").css("display", "block");
+
 
+
            if (!base.$elem.is(":visible")) {
+
                base.watchVisibility();
+
            } else {
+
                base.$elem.css("opacity", 1);
+
            }
+
            base.onstartup = false;
+
            base.eachMoveUpdate();
+
            if (typeof base.options.afterInit === "function") {
+
                base.options.afterInit.apply(this, [base.$elem]);
+
            }
+
        },
+
 
+
        eachMoveUpdate : function () {
+
            var base = this;
+
 
+
            if (base.options.lazyLoad === true) {
+
                base.lazyLoad();
+
            }
+
            if (base.options.autoHeight === true) {
+
                base.autoHeight();
+
            }
+
            base.onVisibleItems();
+
 
+
            if (typeof base.options.afterAction === "function") {
+
                base.options.afterAction.apply(this, [base.$elem]);
+
            }
+
        },
+
 
+
        updateVars : function () {
+
            var base = this;
+
            if (typeof base.options.beforeUpdate === "function") {
+
                base.options.beforeUpdate.apply(this, [base.$elem]);
+
            }
+
            base.watchVisibility();
+
            base.updateItems();
+
            base.calculateAll();
+
            base.updatePosition();
+
            base.updateControls();
+
            base.eachMoveUpdate();
+
            if (typeof base.options.afterUpdate === "function") {
+
                base.options.afterUpdate.apply(this, [base.$elem]);
+
            }
+
        },
+
 
+
        reload : function () {
+
            var base = this;
+
            window.setTimeout(function () {
+
                base.updateVars();
+
            }, 0);
+
        },
+
 
+
        watchVisibility : function () {
+
            var base = this;
+
 
+
            if (base.$elem.is(":visible") === false) {
+
                base.$elem.css({opacity: 0});
+
                window.clearInterval(base.autoPlayInterval);
+
                window.clearInterval(base.checkVisible);
+
            } else {
+
                return false;
+
            }
+
            base.checkVisible = window.setInterval(function () {
+
                if (base.$elem.is(":visible")) {
+
                    base.reload();
+
                    base.$elem.animate({opacity: 1}, 200);
+
                    window.clearInterval(base.checkVisible);
+
                }
+
            }, 500);
+
        },
+
 
+
        wrapItems : function () {
+
            var base = this;
+
            base.$userItems.wrapAll("<div class=\"owl-wrapper\">").wrap("<div class=\"owl-item\"></div>");
+
            base.$elem.find(".owl-wrapper").wrap("<div class=\"owl-wrapper-outer\">");
+
            base.wrapperOuter = base.$elem.find(".owl-wrapper-outer");
+
            base.$elem.css("display", "block");
+
        },
+
 
+
        baseClass : function () {
+
            var base = this,
+
                hasBaseClass = base.$elem.hasClass(base.options.baseClass),
+
                hasThemeClass = base.$elem.hasClass(base.options.theme);
+
 
+
            if (!hasBaseClass) {
+
                base.$elem.addClass(base.options.baseClass);
+
            }
+
 
+
            if (!hasThemeClass) {
+
                base.$elem.addClass(base.options.theme);
+
            }
+
        },
+
 
+
        updateItems : function () {
+
            var base = this, width, i;
+
 
+
            if (base.options.responsive === false) {
+
                return false;
+
            }
+
            if (base.options.singleItem === true) {
+
                base.options.items = base.orignalItems = 1;
+
                base.options.itemsCustom = false;
+
                base.options.itemsDesktop = false;
+
                base.options.itemsDesktopSmall = false;
+
                base.options.itemsTablet = false;
+
                base.options.itemsTabletSmall = false;
+
                base.options.itemsMobile = false;
+
                return false;
+
            }
+
 
+
            width = $(base.options.responsiveBaseWidth).width();
+
 
+
            if (width > (base.options.itemsDesktop[0] || base.orignalItems)) {
+
                base.options.items = base.orignalItems;
+
            }
+
            if (base.options.itemsCustom !== false) {
+
                //Reorder array by screen size
+
                base.options.itemsCustom.sort(function (a, b) {return a[0] - b[0]; });
+
 
+
                for (i = 0; i < base.options.itemsCustom.length; i += 1) {
+
                    if (base.options.itemsCustom[i][0] <= width) {
+
                        base.options.items = base.options.itemsCustom[i][1];
+
                    }
+
                }
+
 
+
            } else {
+
 
+
                if (width <= base.options.itemsDesktop[0] && base.options.itemsDesktop !== false) {
+
                    base.options.items = base.options.itemsDesktop[1];
+
                }
+
 
+
                if (width <= base.options.itemsDesktopSmall[0] && base.options.itemsDesktopSmall !== false) {
+
                    base.options.items = base.options.itemsDesktopSmall[1];
+
                }
+
 
+
                if (width <= base.options.itemsTablet[0] && base.options.itemsTablet !== false) {
+
                    base.options.items = base.options.itemsTablet[1];
+
                }
+
 
+
                if (width <= base.options.itemsTabletSmall[0] && base.options.itemsTabletSmall !== false) {
+
                    base.options.items = base.options.itemsTabletSmall[1];
+
                }
+
 
+
                if (width <= base.options.itemsMobile[0] && base.options.itemsMobile !== false) {
+
                    base.options.items = base.options.itemsMobile[1];
+
                }
+
            }
+
 
+
            //if number of items is less than declared
+
            if (base.options.items > base.itemsAmount && base.options.itemsScaleUp === true) {
+
                base.options.items = base.itemsAmount;
+
            }
+
        },
+
 
+
        response : function () {
+
            var base = this,
+
                smallDelay,
+
                lastWindowWidth;
+
 
+
            if (base.options.responsive !== true) {
+
                return false;
+
            }
+
            lastWindowWidth = $(window).width();
+
 
+
            base.resizer = function () {
+
                if ($(window).width() !== lastWindowWidth) {
+
                    if (base.options.autoPlay !== false) {
+
                        window.clearInterval(base.autoPlayInterval);
+
                    }
+
                    window.clearTimeout(smallDelay);
+
                    smallDelay = window.setTimeout(function () {
+
                        lastWindowWidth = $(window).width();
+
                        base.updateVars();
+
                    }, base.options.responsiveRefreshRate);
+
                }
+
            };
+
            $(window).resize(base.resizer);
+
        },
+
 
+
        updatePosition : function () {
+
            var base = this;
+
            base.jumpTo(base.currentItem);
+
            if (base.options.autoPlay !== false) {
+
                base.checkAp();
+
            }
+
        },
+
 
+
        appendItemsSizes : function () {
+
            var base = this,
+
                roundPages = 0,
+
                lastItem = base.itemsAmount - base.options.items;
+
 
+
            base.$owlItems.each(function (index) {
+
                var $this = $(this);
+
                $this
+
                    .css({"width": base.itemWidth})
+
                    .data("owl-item", Number(index));
+
 
+
                if (index % base.options.items === 0 || index === lastItem) {
+
                    if (!(index > lastItem)) {
+
                        roundPages += 1;
+
                    }
+
                }
+
                $this.data("owl-roundPages", roundPages);
+
            });
+
        },
+
 
+
        appendWrapperSizes : function () {
+
            var base = this,
+
                width = base.$owlItems.length * base.itemWidth;
+
 
+
            base.$owlWrapper.css({
+
                "width": width * 2,
+
                "left": 0
+
            });
+
            base.appendItemsSizes();
+
        },
+
 
+
        calculateAll : function () {
+
            var base = this;
+
            base.calculateWidth();
+
            base.appendWrapperSizes();
+
            base.loops();
+
            base.max();
+
        },
+
 
+
        calculateWidth : function () {
+
            var base = this;
+
            base.itemWidth = Math.round(base.$elem.width() / base.options.items);
+
        },
+
 
+
        max : function () {
+
            var base = this,
+
                maximum = ((base.itemsAmount * base.itemWidth) - base.options.items * base.itemWidth) * -1;
+
            if (base.options.items > base.itemsAmount) {
+
                base.maximumItem = 0;
+
                maximum = 0;
+
                base.maximumPixels = 0;
+
            } else {
+
                base.maximumItem = base.itemsAmount - base.options.items;
+
                base.maximumPixels = maximum;
+
            }
+
            return maximum;
+
        },
+
 
+
        min : function () {
+
            return 0;
+
        },
+
 
+
        loops : function () {
+
            var base = this,
+
                prev = 0,
+
                elWidth = 0,
+
                i,
+
                item,
+
                roundPageNum;
+
 
+
            base.positionsInArray = [0];
+
            base.pagesInArray = [];
+
 
+
            for (i = 0; i < base.itemsAmount; i += 1) {
+
                elWidth += base.itemWidth;
+
                base.positionsInArray.push(-elWidth);
+
 
+
                if (base.options.scrollPerPage === true) {
+
                    item = $(base.$owlItems[i]);
+
                    roundPageNum = item.data("owl-roundPages");
+
                    if (roundPageNum !== prev) {
+
                        base.pagesInArray[prev] = base.positionsInArray[i];
+
                        prev = roundPageNum;
+
                    }
+
                }
+
            }
+
        },
+
 
+
        buildControls : function () {
+
            var base = this;
+
            if (base.options.navigation === true || base.options.pagination === true) {
+
                base.owlControls = $("<div class=\"owl-controls\"/>").toggleClass("clickable", !base.browser.isTouch).appendTo(base.$elem);
+
            }
+
            if (base.options.pagination === true) {
+
                base.buildPagination();
+
            }
+
            if (base.options.navigation === true) {
+
                base.buildButtons();
+
            }
+
        },
+
 
+
        buildButtons : function () {
+
            var base = this,
+
                buttonsWrapper = $("<div class=\"owl-buttons\"/>");
+
            base.owlControls.append(buttonsWrapper);
+
 
+
            base.buttonPrev = $("<div/>", {
+
                "class" : "owl-prev",
+
                "html" : base.options.navigationText[0] || ""
+
            });
+
 
+
            base.buttonNext = $("<div/>", {
+
                "class" : "owl-next",
+
                "html" : base.options.navigationText[1] || ""
+
            });
+
 
+
            buttonsWrapper
+
                .append(base.buttonPrev)
+
                .append(base.buttonNext);
+
 
+
            buttonsWrapper.on("touchstart.owlControls mousedown.owlControls", "div[class^=\"owl\"]", function (event) {
+
                event.preventDefault();
+
            });
+
 
+
            buttonsWrapper.on("touchend.owlControls mouseup.owlControls", "div[class^=\"owl\"]", function (event) {
+
                event.preventDefault();
+
                if ($(this).hasClass("owl-next")) {
+
                    base.next();
+
                } else {
+
                    base.prev();
+
                }
+
            });
+
        },
+
 
+
        buildPagination : function () {
+
            var base = this;
+
 
+
            base.paginationWrapper = $("<div class=\"owl-pagination\"/>");
+
            base.owlControls.append(base.paginationWrapper);
+
 
+
            base.paginationWrapper.on("touchend.owlControls mouseup.owlControls", ".owl-page", function (event) {
+
                event.preventDefault();
+
                if (Number($(this).data("owl-page")) !== base.currentItem) {
+
                    base.goTo(Number($(this).data("owl-page")), true);
+
                }
+
            });
+
        },
+
 
+
        updatePagination : function () {
+
            var base = this,
+
                counter,
+
                lastPage,
+
                lastItem,
+
                i,
+
                paginationButton,
+
                paginationButtonInner;
+
 
+
            if (base.options.pagination === false) {
+
                return false;
+
            }
+
 
+
            base.paginationWrapper.html("");
+
 
+
            counter = 0;
+
            lastPage = base.itemsAmount - base.itemsAmount % base.options.items;
+
 
+
            for (i = 0; i < base.itemsAmount; i += 1) {
+
                if (i % base.options.items === 0) {
+
                    counter += 1;
+
                    if (lastPage === i) {
+
                        lastItem = base.itemsAmount - base.options.items;
+
                    }
+
                    paginationButton = $("<div/>", {
+
                        "class" : "owl-page"
+
                    });
+
                    paginationButtonInner = $("<span></span>", {
+
                        "text": base.options.paginationNumbers === true ? counter : "",
+
                        "class": base.options.paginationNumbers === true ? "owl-numbers" : ""
+
                    });
+
                    paginationButton.append(paginationButtonInner);
+
 
+
                    paginationButton.data("owl-page", lastPage === i ? lastItem : i);
+
                    paginationButton.data("owl-roundPages", counter);
+
 
+
                    base.paginationWrapper.append(paginationButton);
+
                }
+
            }
+
            base.checkPagination();
+
        },
+
        checkPagination : function () {
+
            var base = this;
+
            if (base.options.pagination === false) {
+
                return false;
+
            }
+
            base.paginationWrapper.find(".owl-page").each(function () {
+
                if ($(this).data("owl-roundPages") === $(base.$owlItems[base.currentItem]).data("owl-roundPages")) {
+
                    base.paginationWrapper
+
                        .find(".owl-page")
+
                        .removeClass("active");
+
                    $(this).addClass("active");
+
                }
+
            });
+
        },
+
 
+
        checkNavigation : function () {
+
            var base = this;
+
 
+
            if (base.options.navigation === false) {
+
                return false;
+
            }
+
            if (base.options.rewindNav === false) {
+
                if (base.currentItem === 0 && base.maximumItem === 0) {
+
                    base.buttonPrev.addClass("disabled");
+
                    base.buttonNext.addClass("disabled");
+
                } else if (base.currentItem === 0 && base.maximumItem !== 0) {
+
                    base.buttonPrev.addClass("disabled");
+
                    base.buttonNext.removeClass("disabled");
+
                } else if (base.currentItem === base.maximumItem) {
+
                    base.buttonPrev.removeClass("disabled");
+
                    base.buttonNext.addClass("disabled");
+
                } else if (base.currentItem !== 0 && base.currentItem !== base.maximumItem) {
+
                    base.buttonPrev.removeClass("disabled");
+
                    base.buttonNext.removeClass("disabled");
+
                }
+
            }
+
        },
+
 
+
        updateControls : function () {
+
            var base = this;
+
            base.updatePagination();
+
            base.checkNavigation();
+
            if (base.owlControls) {
+
                if (base.options.items >= base.itemsAmount) {
+
                    base.owlControls.hide();
+
                } else {
+
                    base.owlControls.show();
+
                }
+
            }
+
        },
+
 
+
        destroyControls : function () {
+
            var base = this;
+
            if (base.owlControls) {
+
                base.owlControls.remove();
+
            }
+
        },
+
 
+
        next : function (speed) {
+
            var base = this;
+
 
+
            if (base.isTransition) {
+
                return false;
+
            }
+
 
+
            base.currentItem += base.options.scrollPerPage === true ? base.options.items : 1;
+
            if (base.currentItem > base.maximumItem + (base.options.scrollPerPage === true ? (base.options.items - 1) : 0)) {
+
                if (base.options.rewindNav === true) {
+
                    base.currentItem = 0;
+
                    speed = "rewind";
+
                } else {
+
                    base.currentItem = base.maximumItem;
+
                    return false;
+
                }
+
            }
+
            base.goTo(base.currentItem, speed);
+
        },
+
 
+
        prev : function (speed) {
+
            var base = this;
+
 
+
            if (base.isTransition) {
+
                return false;
+
            }
+
 
+
            if (base.options.scrollPerPage === true && base.currentItem > 0 && base.currentItem < base.options.items) {
+
                base.currentItem = 0;
+
            } else {
+
                base.currentItem -= base.options.scrollPerPage === true ? base.options.items : 1;
+
            }
+
            if (base.currentItem < 0) {
+
                if (base.options.rewindNav === true) {
+
                    base.currentItem = base.maximumItem;
+
                    speed = "rewind";
+
                } else {
+
                    base.currentItem = 0;
+
                    return false;
+
                }
+
            }
+
            base.goTo(base.currentItem, speed);
+
        },
+
 
+
        goTo : function (position, speed, drag) {
+
            var base = this,
+
                goToPixel;
+
 
+
            if (base.isTransition) {
+
                return false;
+
            }
+
            if (typeof base.options.beforeMove === "function") {
+
                base.options.beforeMove.apply(this, [base.$elem]);
+
            }
+
            if (position >= base.maximumItem) {
+
                position = base.maximumItem;
+
            } else if (position <= 0) {
+
                position = 0;
+
            }
+
 
+
            base.currentItem = base.owl.currentItem = position;
+
            if (base.options.transitionStyle !== false && drag !== "drag" && base.options.items === 1 && base.browser.support3d === true) {
+
                base.swapSpeed(0);
+
                if (base.browser.support3d === true) {
+
                    base.transition3d(base.positionsInArray[position]);
+
                } else {
+
                    base.css2slide(base.positionsInArray[position], 1);
+
                }
+
                base.afterGo();
+
                base.singleItemTransition();
+
                return false;
+
            }
+
            goToPixel = base.positionsInArray[position];
+
 
+
            if (base.browser.support3d === true) {
+
                base.isCss3Finish = false;
+
 
+
                if (speed === true) {
+
                    base.swapSpeed("paginationSpeed");
+
                    window.setTimeout(function () {
+
                        base.isCss3Finish = true;
+
                    }, base.options.paginationSpeed);
+
 
+
                } else if (speed === "rewind") {
+
                    base.swapSpeed(base.options.rewindSpeed);
+
                    window.setTimeout(function () {
+
                        base.isCss3Finish = true;
+
                    }, base.options.rewindSpeed);
+
 
+
                } else {
+
                    base.swapSpeed("slideSpeed");
+
                    window.setTimeout(function () {
+
                        base.isCss3Finish = true;
+
                    }, base.options.slideSpeed);
+
                }
+
                base.transition3d(goToPixel);
+
            } else {
+
                if (speed === true) {
+
                    base.css2slide(goToPixel, base.options.paginationSpeed);
+
                } else if (speed === "rewind") {
+
                    base.css2slide(goToPixel, base.options.rewindSpeed);
+
                } else {
+
                    base.css2slide(goToPixel, base.options.slideSpeed);
+
                }
+
            }
+
            base.afterGo();
+
        },
+
 
+
        jumpTo : function (position) {
+
            var base = this;
+
            if (typeof base.options.beforeMove === "function") {
+
                base.options.beforeMove.apply(this, [base.$elem]);
+
            }
+
            if (position >= base.maximumItem || position === -1) {
+
                position = base.maximumItem;
+
            } else if (position <= 0) {
+
                position = 0;
+
            }
+
            base.swapSpeed(0);
+
            if (base.browser.support3d === true) {
+
                base.transition3d(base.positionsInArray[position]);
+
            } else {
+
                base.css2slide(base.positionsInArray[position], 1);
+
            }
+
            base.currentItem = base.owl.currentItem = position;
+
            base.afterGo();
+
        },
+
 
+
        afterGo : function () {
+
            var base = this;
+
 
+
            base.prevArr.push(base.currentItem);
+
            base.prevItem = base.owl.prevItem = base.prevArr[base.prevArr.length - 2];
+
            base.prevArr.shift(0);
+
 
+
            if (base.prevItem !== base.currentItem) {
+
                base.checkPagination();
+
                base.checkNavigation();
+
                base.eachMoveUpdate();
+
 
+
                if (base.options.autoPlay !== false) {
+
                    base.checkAp();
+
                }
+
            }
+
            if (typeof base.options.afterMove === "function" && base.prevItem !== base.currentItem) {
+
                base.options.afterMove.apply(this, [base.$elem]);
+
            }
+
        },
+
 
+
        stop : function () {
+
            var base = this;
+
            base.apStatus = "stop";
+
            window.clearInterval(base.autoPlayInterval);
+
        },
+
 
+
        checkAp : function () {
+
            var base = this;
+
            if (base.apStatus !== "stop") {
+
                base.play();
+
            }
+
        },
+
 
+
        play : function () {
+
            var base = this;
+
            base.apStatus = "play";
+
            if (base.options.autoPlay === false) {
+
                return false;
+
            }
+
            window.clearInterval(base.autoPlayInterval);
+
            base.autoPlayInterval = window.setInterval(function () {
+
                base.next(true);
+
            }, base.options.autoPlay);
+
        },
+
 
+
        swapSpeed : function (action) {
+
            var base = this;
+
            if (action === "slideSpeed") {
+
                base.$owlWrapper.css(base.addCssSpeed(base.options.slideSpeed));
+
            } else if (action === "paginationSpeed") {
+
                base.$owlWrapper.css(base.addCssSpeed(base.options.paginationSpeed));
+
            } else if (typeof action !== "string") {
+
                base.$owlWrapper.css(base.addCssSpeed(action));
+
            }
+
        },
+
 
+
        addCssSpeed : function (speed) {
+
            return {
+
                "-webkit-transition": "all " + speed + "ms ease",
+
                "-moz-transition": "all " + speed + "ms ease",
+
                "-o-transition": "all " + speed + "ms ease",
+
                "transition": "all " + speed + "ms ease"
+
            };
+
        },
+
 
+
        removeTransition : function () {
+
            return {
+
                "-webkit-transition": "",
+
                "-moz-transition": "",
+
                "-o-transition": "",
+
                "transition": ""
+
            };
+
        },
+
 
+
        doTranslate : function (pixels) {
+
            return {
+
                "-webkit-transform": "translate3d(" + pixels + "px, 0px, 0px)",
+
                "-moz-transform": "translate3d(" + pixels + "px, 0px, 0px)",
+
                "-o-transform": "translate3d(" + pixels + "px, 0px, 0px)",
+
                "-ms-transform": "translate3d(" + pixels + "px, 0px, 0px)",
+
                "transform": "translate3d(" + pixels + "px, 0px,0px)"
+
            };
+
        },
+
 
+
        transition3d : function (value) {
+
            var base = this;
+
            base.$owlWrapper.css(base.doTranslate(value));
+
        },
+
 
+
        css2move : function (value) {
+
            var base = this;
+
            base.$owlWrapper.css({"left" : value});
+
        },
+
 
+
        css2slide : function (value, speed) {
+
            var base = this;
+
 
+
            base.isCssFinish = false;
+
            base.$owlWrapper.stop(true, true).animate({
+
                "left" : value
+
            }, {
+
                duration : speed || base.options.slideSpeed,
+
                complete : function () {
+
                    base.isCssFinish = true;
+
                }
+
            });
+
        },
+
 
+
        checkBrowser : function () {
+
            var base = this,
+
                translate3D = "translate3d(0px, 0px, 0px)",
+
                tempElem = document.createElement("div"),
+
                regex,
+
                asSupport,
+
                support3d,
+
                isTouch;
+
 
+
            tempElem.style.cssText = "  -moz-transform:" + translate3D +
+
                                  "; -ms-transform:"    + translate3D +
+
                                  "; -o-transform:"      + translate3D +
+
                                  "; -webkit-transform:" + translate3D +
+
                                  "; transform:"        + translate3D;
+
            regex = /translate3d\(0px, 0px, 0px\)/g;
+
            asSupport = tempElem.style.cssText.match(regex);
+
            support3d = (asSupport !== null && asSupport.length === 1);
+
 
+
            isTouch = "ontouchstart" in window || window.navigator.msMaxTouchPoints;
+
 
+
            base.browser = {
+
                "support3d" : support3d,
+
                "isTouch" : isTouch
+
            };
+
        },
+
 
+
        moveEvents : function () {
+
            var base = this;
+
            if (base.options.mouseDrag !== false || base.options.touchDrag !== false) {
+
                base.gestures();
+
                base.disabledEvents();
+
            }
+
        },
+
 
+
        eventTypes : function () {
+
            var base = this,
+
                types = ["s", "e", "x"];
+
 
+
            base.ev_types = {};
+
 
+
            if (base.options.mouseDrag === true && base.options.touchDrag === true) {
+
                types = [
+
                    "touchstart.owl mousedown.owl",
+
                    "touchmove.owl mousemove.owl",
+
                    "touchend.owl touchcancel.owl mouseup.owl"
+
                ];
+
            } else if (base.options.mouseDrag === false && base.options.touchDrag === true) {
+
                types = [
+
                    "touchstart.owl",
+
                    "touchmove.owl",
+
                    "touchend.owl touchcancel.owl"
+
                ];
+
            } else if (base.options.mouseDrag === true && base.options.touchDrag === false) {
+
                types = [
+
                    "mousedown.owl",
+
                    "mousemove.owl",
+
                    "mouseup.owl"
+
                ];
+
            }
+
 
+
            base.ev_types.start = types[0];
+
            base.ev_types.move = types[1];
+
            base.ev_types.end = types[2];
+
        },
+
 
+
        disabledEvents :  function () {
+
            var base = this;
+
            base.$elem.on("dragstart.owl", function (event) { event.preventDefault(); });
+
            base.$elem.on("mousedown.disableTextSelect", function (e) {
+
                return $(e.target).is('input, textarea, select, option');
+
            });
+
        },
+
 
+
        gestures : function () {
+
            /*jslint unparam: true*/
+
            var base = this,
+
                locals = {
+
                    offsetX : 0,
+
                    offsetY : 0,
+
                    baseElWidth : 0,
+
                    relativePos : 0,
+
                    position: null,
+
                    minSwipe : null,
+
                    maxSwipe: null,
+
                    sliding : null,
+
                    dargging: null,
+
                    targetElement : null
+
                };
+
 
+
            base.isCssFinish = true;
+
 
+
            function getTouches(event) {
+
                if (event.touches !== undefined) {
+
                    return {
+
                        x : event.touches[0].pageX,
+
                        y : event.touches[0].pageY
+
                    };
+
                }
+
 
+
                if (event.touches === undefined) {
+
                    if (event.pageX !== undefined) {
+
                        return {
+
                            x : event.pageX,
+
                            y : event.pageY
+
                        };
+
                    }
+
                    if (event.pageX === undefined) {
+
                        return {
+
                            x : event.clientX,
+
                            y : event.clientY
+
                        };
+
                    }
+
                }
+
            }
+
 
+
            function swapEvents(type) {
+
                if (type === "on") {
+
                    $(document).on(base.ev_types.move, dragMove);
+
                    $(document).on(base.ev_types.end, dragEnd);
+
                } else if (type === "off") {
+
                    $(document).off(base.ev_types.move);
+
                    $(document).off(base.ev_types.end);
+
                }
+
            }
+
 
+
            function dragStart(event) {
+
                var ev = event.originalEvent || event || window.event,
+
                    position;
+
 
+
                if (ev.which === 3) {
+
                    return false;
+
                }
+
                if (base.itemsAmount <= base.options.items) {
+
                    return;
+
                }
+
                if (base.isCssFinish === false && !base.options.dragBeforeAnimFinish) {
+
                    return false;
+
                }
+
                if (base.isCss3Finish === false && !base.options.dragBeforeAnimFinish) {
+
                    return false;
+
                }
+
 
+
                if (base.options.autoPlay !== false) {
+
                    window.clearInterval(base.autoPlayInterval);
+
                }
+
 
+
                if (base.browser.isTouch !== true && !base.$owlWrapper.hasClass("grabbing")) {
+
                    base.$owlWrapper.addClass("grabbing");
+
                }
+
 
+
                base.newPosX = 0;
+
                base.newRelativeX = 0;
+
 
+
                $(this).css(base.removeTransition());
+
 
+
                position = $(this).position();
+
                locals.relativePos = position.left;
+
 
+
                locals.offsetX = getTouches(ev).x - position.left;
+
                locals.offsetY = getTouches(ev).y - position.top;
+
 
+
                swapEvents("on");
+
 
+
                locals.sliding = false;
+
                locals.targetElement = ev.target || ev.srcElement;
+
            }
+
 
+
            function dragMove(event) {
+
                var ev = event.originalEvent || event || window.event,
+
                    minSwipe,
+
                    maxSwipe;
+
 
+
                base.newPosX = getTouches(ev).x - locals.offsetX;
+
                base.newPosY = getTouches(ev).y - locals.offsetY;
+
                base.newRelativeX = base.newPosX - locals.relativePos;
+
 
+
                if (typeof base.options.startDragging === "function" && locals.dragging !== true && base.newRelativeX !== 0) {
+
                    locals.dragging = true;
+
                    base.options.startDragging.apply(base, [base.$elem]);
+
                }
+
 
+
                if ((base.newRelativeX > 8 || base.newRelativeX < -8) && (base.browser.isTouch === true)) {
+
                    if (ev.preventDefault !== undefined) {
+
                        ev.preventDefault();
+
                    } else {
+
                        ev.returnValue = false;
+
                    }
+
                    locals.sliding = true;
+
                }
+
 
+
                if ((base.newPosY > 10 || base.newPosY < -10) && locals.sliding === false) {
+
                    $(document).off("touchmove.owl");
+
                }
+
 
+
                minSwipe = function () {
+
                    return base.newRelativeX / 5;
+
                };
+
 
+
                maxSwipe = function () {
+
                    return base.maximumPixels + base.newRelativeX / 5;
+
                };
+
 
+
                base.newPosX = Math.max(Math.min(base.newPosX, minSwipe()), maxSwipe());
+
                if (base.browser.support3d === true) {
+
                    base.transition3d(base.newPosX);
+
                } else {
+
                    base.css2move(base.newPosX);
+
                }
+
            }
+
 
+
            function dragEnd(event) {
+
                var ev = event.originalEvent || event || window.event,
+
                    newPosition,
+
                    handlers,
+
                    owlStopEvent;
+
 
+
                ev.target = ev.target || ev.srcElement;
+
 
+
                locals.dragging = false;
+
 
+
                if (base.browser.isTouch !== true) {
+
                    base.$owlWrapper.removeClass("grabbing");
+
                }
+
 
+
                if (base.newRelativeX < 0) {
+
                    base.dragDirection = base.owl.dragDirection = "left";
+
                } else {
+
                    base.dragDirection = base.owl.dragDirection = "right";
+
                }
+
 
+
                if (base.newRelativeX !== 0) {
+
                    newPosition = base.getNewPosition();
+
                    base.goTo(newPosition, false, "drag");
+
                    if (locals.targetElement === ev.target && base.browser.isTouch !== true) {
+
                        $(ev.target).on("click.disable", function (ev) {
+
                            ev.stopImmediatePropagation();
+
                            ev.stopPropagation();
+
                            ev.preventDefault();
+
                            $(ev.target).off("click.disable");
+
                        });
+
                        handlers = $._data(ev.target, "events").click;
+
                        owlStopEvent = handlers.pop();
+
                        handlers.splice(0, 0, owlStopEvent);
+
                    }
+
                }
+
                swapEvents("off");
+
            }
+
            base.$elem.on(base.ev_types.start, ".owl-wrapper", dragStart);
+
        },
+
 
+
        getNewPosition : function () {
+
            var base = this,
+
                newPosition = base.closestItem();
+
 
+
            if (newPosition > base.maximumItem) {
+
                base.currentItem = base.maximumItem;
+
                newPosition  = base.maximumItem;
+
            } else if (base.newPosX >= 0) {
+
                newPosition = 0;
+
                base.currentItem = 0;
+
            }
+
            return newPosition;
+
        },
+
        closestItem : function () {
+
            var base = this,
+
                array = base.options.scrollPerPage === true ? base.pagesInArray : base.positionsInArray,
+
                goal = base.newPosX,
+
                closest = null;
+
 
+
            $.each(array, function (i, v) {
+
                if (goal - (base.itemWidth / 20) > array[i + 1] && goal - (base.itemWidth / 20) < v && base.moveDirection() === "left") {
+
                    closest = v;
+
                    if (base.options.scrollPerPage === true) {
+
                        base.currentItem = $.inArray(closest, base.positionsInArray);
+
                    } else {
+
                        base.currentItem = i;
+
                    }
+
                } else if (goal + (base.itemWidth / 20) < v && goal + (base.itemWidth / 20) > (array[i + 1] || array[i] - base.itemWidth) && base.moveDirection() === "right") {
+
                    if (base.options.scrollPerPage === true) {
+
                        closest = array[i + 1] || array[array.length - 1];
+
                        base.currentItem = $.inArray(closest, base.positionsInArray);
+
                    } else {
+
                        closest = array[i + 1];
+
                        base.currentItem = i + 1;
+
                    }
+
                }
+
            });
+
            return base.currentItem;
+
        },
+
 
+
        moveDirection : function () {
+
            var base = this,
+
                direction;
+
            if (base.newRelativeX < 0) {
+
                direction = "right";
+
                base.playDirection = "next";
+
            } else {
+
                direction = "left";
+
                base.playDirection = "prev";
+
            }
+
            return direction;
+
        },
+
 
+
        customEvents : function () {
+
            /*jslint unparam: true*/
+
            var base = this;
+
            base.$elem.on("owl.next", function () {
+
                base.next();
+
            });
+
            base.$elem.on("owl.prev", function () {
+
                base.prev();
+
            });
+
            base.$elem.on("owl.play", function (event, speed) {
+
                base.options.autoPlay = speed;
+
                base.play();
+
                base.hoverStatus = "play";
+
            });
+
            base.$elem.on("owl.stop", function () {
+
                base.stop();
+
                base.hoverStatus = "stop";
+
            });
+
            base.$elem.on("owl.goTo", function (event, item) {
+
                base.goTo(item);
+
            });
+
            base.$elem.on("owl.jumpTo", function (event, item) {
+
                base.jumpTo(item);
+
            });
+
        },
+
 
+
        stopOnHover : function () {
+
            var base = this;
+
            if (base.options.stopOnHover === true && base.browser.isTouch !== true && base.options.autoPlay !== false) {
+
                base.$elem.on("mouseover", function () {
+
                    base.stop();
+
                });
+
                base.$elem.on("mouseout", function () {
+
                    if (base.hoverStatus !== "stop") {
+
                        base.play();
+
                    }
+
                });
+
            }
+
        },
+
 
+
        lazyLoad : function () {
+
            var base = this,
+
                i,
+
                $item,
+
                itemNumber,
+
                $lazyImg,
+
                follow;
+
 
+
            if (base.options.lazyLoad === false) {
+
                return false;
+
            }
+
            for (i = 0; i < base.itemsAmount; i += 1) {
+
                $item = $(base.$owlItems[i]);
+
 
+
                if ($item.data("owl-loaded") === "loaded") {
+
                    continue;
+
                }
+
 
+
                itemNumber = $item.data("owl-item");
+
                $lazyImg = $item.find(".lazyOwl");
+
 
+
                if (typeof $lazyImg.data("src") !== "string") {
+
                    $item.data("owl-loaded", "loaded");
+
                    continue;
+
                }
+
                if ($item.data("owl-loaded") === undefined) {
+
                    $lazyImg.hide();
+
                    $item.addClass("loading").data("owl-loaded", "checked");
+
                }
+
                if (base.options.lazyFollow === true) {
+
                    follow = itemNumber >= base.currentItem;
+
                } else {
+
                    follow = true;
+
                }
+
                if (follow && itemNumber < base.currentItem + base.options.items && $lazyImg.length) {
+
                    base.lazyPreload($item, $lazyImg);
+
                }
+
            }
+
        },
+
 
+
        lazyPreload : function ($item, $lazyImg) {
+
            var base = this,
+
                iterations = 0,
+
                isBackgroundImg;
+
 
+
            if ($lazyImg.prop("tagName") === "DIV") {
+
                $lazyImg.css("background-image", "url(" + $lazyImg.data("src") + ")");
+
                isBackgroundImg = true;
+
            } else {
+
                $lazyImg[0].src = $lazyImg.data("src");
+
            }
+
 
+
            function showImage() {
+
                $item.data("owl-loaded", "loaded").removeClass("loading");
+
                $lazyImg.removeAttr("data-src");
+
                if (base.options.lazyEffect === "fade") {
+
                    $lazyImg.fadeIn(400);
+
                } else {
+
                    $lazyImg.show();
+
                }
+
                if (typeof base.options.afterLazyLoad === "function") {
+
                    base.options.afterLazyLoad.apply(this, [base.$elem]);
+
                }
+
            }
+
 
+
            function checkLazyImage() {
+
                iterations += 1;
+
                if (base.completeImg($lazyImg.get(0)) || isBackgroundImg === true) {
+
                    showImage();
+
                } else if (iterations <= 100) {//if image loads in less than 10 seconds
+
                    window.setTimeout(checkLazyImage, 100);
+
                } else {
+
                    showImage();
+
                }
+
            }
+
 
+
            checkLazyImage();
+
        },
+
 
+
        autoHeight : function () {
+
            var base = this,
+
                $currentimg = $(base.$owlItems[base.currentItem]).find("img"),
+
                iterations;
+
 
+
            function addHeight() {
+
                var $currentItem = $(base.$owlItems[base.currentItem]).height();
+
                base.wrapperOuter.css("height", $currentItem + "px");
+
                if (!base.wrapperOuter.hasClass("autoHeight")) {
+
                    window.setTimeout(function () {
+
                        base.wrapperOuter.addClass("autoHeight");
+
                    }, 0);
+
                }
+
            }
+
 
+
            function checkImage() {
+
                iterations += 1;
+
                if (base.completeImg($currentimg.get(0))) {
+
                    addHeight();
+
                } else if (iterations <= 100) { //if image loads in less than 10 seconds
+
                    window.setTimeout(checkImage, 100);
+
                } else {
+
                    base.wrapperOuter.css("height", ""); //Else remove height attribute
+
                }
+
            }
+
 
+
            if ($currentimg.get(0) !== undefined) {
+
                iterations = 0;
+
                checkImage();
+
            } else {
+
                addHeight();
+
            }
+
        },
+
 
+
        completeImg : function (img) {
+
            var naturalWidthType;
+
 
+
            if (!img.complete) {
+
                return false;
+
            }
+
            naturalWidthType = typeof img.naturalWidth;
+
            if (naturalWidthType !== "undefined" && img.naturalWidth === 0) {
+
                return false;
+
            }
+
            return true;
+
        },
+
 
+
        onVisibleItems : function () {
+
            var base = this,
+
                i;
+
 
+
            if (base.options.addClassActive === true) {
+
                base.$owlItems.removeClass("active");
+
            }
+
            base.visibleItems = [];
+
            for (i = base.currentItem; i < base.currentItem + base.options.items; i += 1) {
+
                base.visibleItems.push(i);
+
 
+
                if (base.options.addClassActive === true) {
+
                    $(base.$owlItems[i]).addClass("active");
+
                }
+
            }
+
            base.owl.visibleItems = base.visibleItems;
+
        },
+
 
+
        transitionTypes : function (className) {
+
            var base = this;
+
            //Currently available: "fade", "backSlide", "goDown", "fadeUp"
+
            base.outClass = "owl-" + className + "-out";
+
            base.inClass = "owl-" + className + "-in";
+
        },
+
 
+
        singleItemTransition : function () {
+
            var base = this,
+
                outClass = base.outClass,
+
                inClass = base.inClass,
+
                $currentItem = base.$owlItems.eq(base.currentItem),
+
                $prevItem = base.$owlItems.eq(base.prevItem),
+
                prevPos = Math.abs(base.positionsInArray[base.currentItem]) + base.positionsInArray[base.prevItem],
+
                origin = Math.abs(base.positionsInArray[base.currentItem]) + base.itemWidth / 2,
+
                animEnd = 'webkitAnimationEnd oAnimationEnd MSAnimationEnd animationend';
+
 
+
            base.isTransition = true;
+
 
+
            base.$owlWrapper
+
                .addClass('owl-origin')
+
                .css({
+
                    "-webkit-transform-origin" : origin + "px",
+
                    "-moz-perspective-origin" : origin + "px",
+
                    "perspective-origin" : origin + "px"
+
                });
+
            function transStyles(prevPos) {
+
                return {
+
                    "position" : "relative",
+
                    "left" : prevPos + "px"
+
                };
+
            }
+
 
+
            $prevItem
+
                .css(transStyles(prevPos, 10))
+
                .addClass(outClass)
+
                .on(animEnd, function () {
+
                    base.endPrev = true;
+
                    $prevItem.off(animEnd);
+
                    base.clearTransStyle($prevItem, outClass);
+
                });
+
 
+
            $currentItem
+
                .addClass(inClass)
+
                .on(animEnd, function () {
+
                    base.endCurrent = true;
+
                    $currentItem.off(animEnd);
+
                    base.clearTransStyle($currentItem, inClass);
+
                });
+
        },
+
 
+
        clearTransStyle : function (item, classToRemove) {
+
            var base = this;
+
            item.css({
+
                "position" : "",
+
                "left" : ""
+
            }).removeClass(classToRemove);
+
 
+
            if (base.endPrev && base.endCurrent) {
+
                base.$owlWrapper.removeClass('owl-origin');
+
                base.endPrev = false;
+
                base.endCurrent = false;
+
                base.isTransition = false;
+
            }
+
        },
+
 
+
        owlStatus : function () {
+
            var base = this;
+
            base.owl = {
+
                "userOptions"  : base.userOptions,
+
                "baseElement"  : base.$elem,
+
                "userItems"    : base.$userItems,
+
                "owlItems"      : base.$owlItems,
+
                "currentItem"  : base.currentItem,
+
                "prevItem"      : base.prevItem,
+
                "visibleItems"  : base.visibleItems,
+
                "isTouch"      : base.browser.isTouch,
+
                "browser"      : base.browser,
+
                "dragDirection" : base.dragDirection
+
            };
+
        },
+
 
+
        clearEvents : function () {
+
            var base = this;
+
            base.$elem.off(".owl owl mousedown.disableTextSelect");
+
            $(document).off(".owl owl");
+
            $(window).off("resize", base.resizer);
+
        },
+
 
+
        unWrap : function () {
+
            var base = this;
+
            if (base.$elem.children().length !== 0) {
+
                base.$owlWrapper.unwrap();
+
                base.$userItems.unwrap().unwrap();
+
                if (base.owlControls) {
+
                    base.owlControls.remove();
+
                }
+
            }
+
            base.clearEvents();
+
            base.$elem
+
                .attr("style", base.$elem.data("owl-originalStyles") || "")
+
                .attr("class", base.$elem.data("owl-originalClasses"));
+
        },
+
 
+
        destroy : function () {
+
            var base = this;
+
            base.stop();
+
            window.clearInterval(base.checkVisible);
+
            base.unWrap();
+
            base.$elem.removeData();
+
        },
+
 
+
        reinit : function (newOptions) {
+
            var base = this,
+
                options = $.extend({}, base.userOptions, newOptions);
+
            base.unWrap();
+
            base.init(options, base.$elem);
+
        },
+
 
+
        addItem : function (htmlString, targetPosition) {
+
            var base = this,
+
                position;
+
 
+
            if (!htmlString) {return false; }
+
 
+
            if (base.$elem.children().length === 0) {
+
                base.$elem.append(htmlString);
+
                base.setVars();
+
                return false;
+
            }
+
            base.unWrap();
+
            if (targetPosition === undefined || targetPosition === -1) {
+
                position = -1;
+
            } else {
+
                position = targetPosition;
+
            }
+
            if (position >= base.$userItems.length || position === -1) {
+
                base.$userItems.eq(-1).after(htmlString);
+
            } else {
+
                base.$userItems.eq(position).before(htmlString);
+
            }
+
 
+
            base.setVars();
+
        },
+
 
+
        removeItem : function (targetPosition) {
+
            var base = this,
+
                position;
+
 
+
            if (base.$elem.children().length === 0) {
+
                return false;
+
            }
+
            if (targetPosition === undefined || targetPosition === -1) {
+
                position = -1;
+
            } else {
+
                position = targetPosition;
+
            }
+
 
+
            base.unWrap();
+
            base.$userItems.eq(position).remove();
+
            base.setVars();
+
        }
+
 
+
    };
+
 
+
    $.fn.owlCarousel = function (options) {
+
        return this.each(function () {
+
            if ($(this).data("owl-init") === true) {
+
                return false;
+
            }
+
            $(this).data("owl-init", true);
+
            var carousel = Object.create(Carousel);
+
            carousel.init(options, this);
+
            $.data(this, "owlCarousel", carousel);
+
        });
+
    };
+
 
+
    $.fn.owlCarousel.options = {
+
 
+
        items : 5,
+
        itemsCustom : false,
+
        itemsDesktop : [1199, 4],
+
        itemsDesktopSmall : [979, 3],
+
        itemsTablet : [768, 2],
+
        itemsTabletSmall : false,
+
        itemsMobile : [479, 1],
+
        singleItem : false,
+
        itemsScaleUp : false,
+
 
+
        slideSpeed : 200,
+
        paginationSpeed : 800,
+
        rewindSpeed : 1000,
+
 
+
        autoPlay : false,
+
        stopOnHover : false,
+
 
+
        navigation : false,
+
        navigationText : ["prev", "next"],
+
        rewindNav : true,
+
        scrollPerPage : false,
+
 
+
        pagination : true,
+
        paginationNumbers : false,
+
 
+
        responsive : true,
+
        responsiveRefreshRate : 200,
+
        responsiveBaseWidth : window,
+
 
+
        baseClass : "owl-carousel",
+
        theme : "owl-theme",
+
 
+
        lazyLoad : false,
+
        lazyFollow : true,
+
        lazyEffect : "fade",
+
 
+
        autoHeight : false,
+
 
+
        jsonPath : false,
+
        jsonSuccess : false,
+
 
+
        dragBeforeAnimFinish : true,
+
        mouseDrag : true,
+
        touchDrag : true,
+
 
+
        addClassActive : false,
+
        transitionStyle : false,
+
 
+
        beforeUpdate : false,
+
        afterUpdate : false,
+
        beforeInit : false,
+
        afterInit : false,
+
        beforeMove : false,
+
        afterMove : false,
+
        afterAction : false,
+
        startDragging : false,
+
        afterLazyLoad: false
+
    };
+
}(jQuery, window, document));
+
 
+
 
+
/*
+
* jQuery Superfish Menu Plugin
+
* Copyright (c) 2013 Joel Birch
+
*
+
* Dual licensed under the MIT and GPL licenses:
+
*  http://www.opensource.org/licenses/mit-license.php
+
*  http://www.gnu.org/licenses/gpl.html
+
*/
+
 
+
(function ($) {
+
  "use strict";
+
 
+
  var methods = (function () {
+
    // private properties and methods go here
+
    var c = {
+
        bcClass: 'sf-breadcrumb',
+
        menuClass: 'sf-js-enabled',
+
        anchorClass: 'sf-with-ul',
+
        menuArrowClass: 'sf-arrows'
+
      },
+
      ios = (function () {
+
        var ios = /iPhone|iPad|iPod/i.test(navigator.userAgent);
+
        if (ios) {
+
          // iOS clicks only bubble as far as body children
+
          $(window).load(function () {
+
            $('body').children().on('click', $.noop);
+
          });
+
        }
+
        return ios;
+
      })(),
+
      wp7 = (function () {
+
        var style = document.documentElement.style;
+
        return ('behavior' in style && 'fill' in style && /iemobile/i.test(navigator.userAgent));
+
      })(),
+
      toggleMenuClasses = function ($menu, o) {
+
        var classes = c.menuClass;
+
        if (o.cssArrows) {
+
          classes += ' ' + c.menuArrowClass;
+
        }
+
        $menu.toggleClass(classes);
+
      },
+
      setPathToCurrent = function ($menu, o) {
+
        return $menu.find('li.' + o.pathClass).slice(0, o.pathLevels)
+
          .addClass(o.hoverClass + ' ' + c.bcClass)
+
            .filter(function () {
+
              return ($(this).children(o.popUpSelector).hide().show().length);
+
            }).removeClass(o.pathClass);
+
      },
+
      toggleAnchorClass = function ($li) {
+
        $li.children('a').toggleClass(c.anchorClass);
+
      },
+
      toggleTouchAction = function ($menu) {
+
        var touchAction = $menu.css('ms-touch-action');
+
        touchAction = (touchAction === 'pan-y') ? 'auto' : 'pan-y';
+
        $menu.css('ms-touch-action', touchAction);
+
      },
+
      applyHandlers = function ($menu, o) {
+
        var targets = 'li:has(' + o.popUpSelector + ')';
+
        if ($.fn.hoverIntent && !o.disableHI) {
+
          $menu.hoverIntent(over, out, targets);
+
        }
+
        else {
+
          $menu
+
            .on('mouseenter.superfish', targets, over)
+
            .on('mouseleave.superfish', targets, out);
+
        }
+
        var touchevent = 'MSPointerDown.superfish';
+
        if (!ios) {
+
          touchevent += ' touchend.superfish';
+
        }
+
        if (wp7) {
+
          touchevent += ' mousedown.superfish';
+
        }
+
        $menu
+
          .on('focusin.superfish', 'li', over)
+
          .on('focusout.superfish', 'li', out)
+
          .on(touchevent, 'a', o, touchHandler);
+
      },
+
      touchHandler = function (e) {
+
        var $this = $(this),
+
          $ul = $this.siblings(e.data.popUpSelector);
+
 
+
        if ($ul.length > 0 && $ul.is(':hidden')) {
+
          $this.one('click.superfish', false);
+
          if (e.type === 'MSPointerDown') {
+
            $this.trigger('focus');
+
          } else {
+
            $.proxy(over, $this.parent('li'))();
+
          }
+
        }
+
      },
+
      over = function () {
+
        var $this = $(this),
+
          o = getOptions($this);
+
        clearTimeout(o.sfTimer);
+
        $this.siblings().superfish('hide').end().superfish('show');
+
      },
+
      out = function () {
+
        var $this = $(this),
+
          o = getOptions($this);
+
        if (ios) {
+
          $.proxy(close, $this, o)();
+
        }
+
        else {
+
          clearTimeout(o.sfTimer);
+
          o.sfTimer = setTimeout($.proxy(close, $this, o), o.delay);
+
        }
+
      },
+
      close = function (o) {
+
        o.retainPath = ($.inArray(this[0], o.$path) > -1);
+
        this.superfish('hide');
+
 
+
        if (!this.parents('.' + o.hoverClass).length) {
+
          o.onIdle.call(getMenu(this));
+
          if (o.$path.length) {
+
            $.proxy(over, o.$path)();
+
          }
+
        }
+
      },
+
      getMenu = function ($el) {
+
        return $el.closest('.' + c.menuClass);
+
      },
+
      getOptions = function ($el) {
+
        return getMenu($el).data('sf-options');
+
      };
+
 
+
    return {
+
      // public methods
+
      hide: function (instant) {
+
        if (this.length) {
+
          var $this = this,
+
            o = getOptions($this);
+
          if (!o) {
+
            return this;
+
          }
+
          var not = (o.retainPath === true) ? o.$path : '',
+
            $ul = $this.find('li.' + o.hoverClass).add(this).not(not).removeClass(o.hoverClass).children(o.popUpSelector),
+
            speed = o.speedOut;
+
 
+
          if (instant) {
+
            $ul.show();
+
            speed = 0;
+
          }
+
          o.retainPath = false;
+
          o.onBeforeHide.call($ul);
+
          $ul.stop(true, true).animate(o.animationOut, speed, function () {
+
            var $this = $(this);
+
            o.onHide.call($this);
+
          });
+
        }
+
        return this;
+
      },
+
      show: function () {
+
        var o = getOptions(this);
+
        if (!o) {
+
          return this;
+
        }
+
        var $this = this.addClass(o.hoverClass),
+
          $ul = $this.children(o.popUpSelector);
+
 
+
        o.onBeforeShow.call($ul);
+
        $ul.stop(true, true).animate(o.animation, o.speed, function () {
+
          o.onShow.call($ul);
+
        });
+
        return this;
+
      },
+
      destroy: function () {
+
        return this.each(function () {
+
          var $this = $(this),
+
            o = $this.data('sf-options'),
+
            $hasPopUp;
+
          if (!o) {
+
            return false;
+
          }
+
          $hasPopUp = $this.find(o.popUpSelector).parent('li');
+
          clearTimeout(o.sfTimer);
+
          toggleMenuClasses($this, o);
+
          toggleAnchorClass($hasPopUp);
+
          toggleTouchAction($this);
+
          // remove event handlers
+
          $this.off('.superfish').off('.hoverIntent');
+
          // clear animation's inline display style
+
          $hasPopUp.children(o.popUpSelector).attr('style', function (i, style) {
+
            return style.replace(/display[^;]+;?/g, '');
+
          });
+
          // reset 'current' path classes
+
          o.$path.removeClass(o.hoverClass + ' ' + c.bcClass).addClass(o.pathClass);
+
          $this.find('.' + o.hoverClass).removeClass(o.hoverClass);
+
          o.onDestroy.call($this);
+
          $this.removeData('sf-options');
+
        });
+
      },
+
      init: function (op) {
+
        return this.each(function () {
+
          var $this = $(this);
+
          if ($this.data('sf-options')) {
+
            return false;
+
          }
+
          var o = $.extend({}, $.fn.superfish.defaults, op),
+
            $hasPopUp = $this.find(o.popUpSelector).parent('li');
+
          o.$path = setPathToCurrent($this, o);
+
 
+
          $this.data('sf-options', o);
+
 
+
          toggleMenuClasses($this, o);
+
          toggleAnchorClass($hasPopUp);
+
          toggleTouchAction($this);
+
          applyHandlers($this, o);
+
 
+
          $hasPopUp.not('.' + c.bcClass).superfish('hide', true);
+
 
+
          o.onInit.call(this);
+
        });
+
      }
+
    };
+
  })();
+
 
+
  $.fn.superfish = function (method, args) {
+
    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);
+
    }
+
    else {
+
      return $.error('Method ' +  method + ' does not exist on jQuery.fn.superfish');
+
    }
+
  };
+
 
+
  $.fn.superfish.defaults = {
+
    popUpSelector: 'ul,.sf-mega', // within menu context
+
    hoverClass: 'sfHover',
+
    pathClass: 'overrideThisToUse',
+
    pathLevels: 1,
+
    delay: 800,
+
    animation: {opacity: 'show'},
+
    animationOut: {opacity: 'hide'},
+
    speed: 'normal',
+
    speedOut: 'fast',
+
    cssArrows: true,
+
    disableHI: false,
+
    onInit: $.noop,
+
    onBeforeShow: $.noop,
+
    onShow: $.noop,
+
    onBeforeHide: $.noop,
+
    onHide: $.noop,
+
    onIdle: $.noop,
+
    onDestroy: $.noop
+
  };
+
 
+
  // soon to be deprecated
+
  $.fn.extend({
+
    hideSuperfishUl: methods.hide,
+
    showSuperfishUl: methods.show
+
  });
+
 
+
})(jQuery);
+
 
+
 
+
 
+
 
+
 
+
 
+
/*
+
* MIXITUP - A CSS3 and JQuery Filter & Sort Plugin
+
* Version: 1.5.5
+
* License: Creative Commons Attribution-NoDerivs 3.0 Unported - CC BY-ND 3.0
+
* http://creativecommons.org/licenses/by-nd/3.0/
+
* This software may be used freely on commercial and non-commercial projects with attribution to the author/copyright holder.
+
* Author: Patrick Kunka
+
* Copyright 2012-2013 Patrick Kunka, Barrel LLC, All Rights Reserved
+
*
+
* http://mixitup.io
+
*/
+
 
+
(function($){
+
 
+
  // DECLARE METHODS
+
+
  var methods = {
+
 
+
    // "INIT" METHOD
+
 
+
      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);
+
        };
+
       
+
        // BUILD CONFIG OBJECT
+
 
+
        var config = {
+
         
+
          // PUBLIC PROPERTIES
+
         
+
          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,
+
 
+
          // MISC
+
 
+
          container : null,
+
          origOrder : [],
+
          startOrder : [],
+
          newOrder : [],
+
          origSort: [],
+
          checkSort: [],
+
          filter : '',
+
          mixing : false,
+
          origDisplay : '',
+
          origLayout: '',
+
          origHeight : 0,
+
          newHeight : 0,
+
          isTouch : false,
+
          resetDelay : 0,
+
          failsafe : null,
+
 
+
          // CSS
+
         
+
          prefix : '',
+
          easingFallback : 'ease-in-out',
+
          transition : {},
+
          perspective : {},
+
          clean : {},
+
          fade : '1',
+
          scale : '',
+
          rotateX : '',
+
          rotateY : '',
+
          rotateZ : '',
+
          blur : '',
+
          grayscale : ''
+
        };
+
       
+
        if(settings){
+
          $.extend(config, settings);
+
        };
+
 
+
        // ADD CONFIG OBJECT TO CONTAINER OBJECT PER INSTANTIATION
+
       
+
        this.config = config;
+
       
+
        // DETECT TOUCH
+
       
+
        $.support.touch = 'ontouchend' in document;
+
 
+
        if ($.support.touch) {
+
          config.isTouch = true;
+
          config.resetDelay = 350;
+
        };
+
       
+
        // LOCALIZE CONTAINER
+
 
+
        config.container = $(this);
+
        var $cont = config.container;
+
       
+
        // GET VENDOR PREFIX
+
       
+
        config.prefix = prefix($cont[0]);
+
        config.prefix = config.prefix ? '-'+config.prefix.toLowerCase()+'-' : '';
+
       
+
        // CACHE 'DEFAULT' SORTING ORDER
+
     
+
        $cont.find(config.targetSelector).each(function(){
+
          config.origOrder.push($(this));
+
        });
+
       
+
        // PERFORM SORT ON LOAD
+
       
+
        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);
+
        };
+
       
+
        // BUILD TRANSITION AND PERSPECTIVE OBJECTS
+
       
+
        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;
+
        };
+
       
+
        // BUILD TRANSITION CLEANER
+
       
+
        for(var i = 0; i<2; i++){
+
          var a = i==0 ? a = config.prefix : '';
+
          config.clean[a+'transition'] = 'none';
+
        };
+
 
+
        // CHOOSE GRID OR LIST
+
 
+
        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;
+
       
+
        // PARSE 'SHOWONLOAD'
+
       
+
        var showOnLoadArray = config.showOnLoad.split(' ');
+
       
+
        // GIVE ACTIVE FILTER ACTIVE CLASS
+
       
+
        $.each(showOnLoadArray, function(){
+
          $(config.filterSelector+'[data-filter="'+this+'"]').addClass('active');
+
        });
+
       
+
        // RENAME "ALL" CATEGORY TO "MIX_ALL"
+
 
+
        $cont.find(config.targetSelector).addClass('mix_all');
+
        if(showOnLoadArray[0]  == 'all'){
+
          showOnLoadArray[0] = 'mix_all',
+
          config.showOnLoad = 'mix_all';
+
        };
+
       
+
        // FADE IN 'SHOWONLOAD'
+
       
+
        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);
+
        });
+
       
+
        // WRAP FADE-IN TO PREVENT RACE CONDITION
+
       
+
        var delay = setTimeout(function(){
+
         
+
          config.mixing = true;
+
         
+
          $showOnLoad.css('opacity','1');
+
         
+
          // CLEAN UP
+
         
+
          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
+
              });
+
            };
+
           
+
            // FIRE "ONMIXLOAD" CALLBACK
+
           
+
            config.mixing = false;
+
 
+
            if(typeof config.onMixLoad == 'function') {
+
              var output = config.onMixLoad.call(this, config);
+
 
+
              // UPDATE CONFIG IF DATA RETURNED
+
 
+
              config = output ? output : config;
+
            };
+
           
+
          },config.transitionSpeed);
+
        },10);
+
       
+
        // PRESET ACTIVE FILTER
+
       
+
        config.filter = config.showOnLoad;
+
     
+
        // BIND SORT CLICK HANDLERS
+
     
+
        $(config.sortSelector).bind(config.buttonEvent,function(){
+
         
+
          if(!config.mixing){
+
           
+
            // PARSE SORT ARGUMENTS FROM BUTTON CLASSES
+
           
+
            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);
+
       
+
          };
+
       
+
        });
+
 
+
        // BIND FILTER CLICK HANDLERS
+
 
+
        $(config.filterSelector).bind(config.buttonEvent,function(){
+
       
+
          if(!config.mixing){
+
           
+
            var $t = $(this);
+
           
+
            // PARSE FILTER ARGUMENTS FROM BUTTON CLASSES
+
   
+
            if(config.multiFilter == false){
+
             
+
              // SINGLE ACTIVE BUTTON
+
             
+
              $(config.filterSelector).removeClass('active');
+
              $t.addClass('active');
+
           
+
              config.filter = $t.attr('data-filter');
+
           
+
              $(config.filterSelector+'[data-filter="'+config.filter+'"]').addClass('active');
+
 
+
            } else {
+
           
+
              // MULTIPLE ACTIVE BUTTONS
+
             
+
              var thisFilter = $t.attr('data-filter');
+
           
+
              if($t.hasClass('active')){
+
                $t.removeClass('active');
+
               
+
                // REMOVE FILTER FROM SPACE-SEPERATED STRING
+
               
+
                var re = new RegExp('(\\s|^)'+thisFilter);
+
                config.filter = config.filter.replace(re,'');
+
              } else {
+
               
+
                // ADD FILTER TO SPACE-SEPERATED STRING
+
               
+
                $t.addClass('active');
+
                config.filter = config.filter+' '+thisFilter;
+
               
+
              };
+
            };
+
           
+
            // GO MIX
+
           
+
            goMix(config.filter, null, null, $cont, config);
+
 
+
          };
+
       
+
        });
+
         
+
      });
+
    },
+
 
+
    // "TOGRID" METHOD
+
 
+
    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" METHOD
+
 
+
    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" METHOD
+
 
+
    filter: function(arg){
+
      return this.each(function(){
+
        var config = this.config;
+
        if(!config.mixing){
+
          $(config.filterSelector).removeClass('active');
+
          $(config.filterSelector+'[data-filter="'+arg+'"]').addClass('active');
+
          goMix(arg, null, null, $(this), config);
+
        };
+
      });
+
    },
+
 
+
    // "SORT" METHOD
+
 
+
    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" METHOD
+
   
+
    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+'[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" METHOD
+
 
+
    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+'[data-filter="'+arg+'"]').addClass('active');
+
          goMix(arg, null, null, $t, config);
+
        };
+
      });
+
    }
+
  };
+
 
+
  // DECLARE PLUGIN
+
 
+
  $.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 );
+
    };
+
  };
+
 
+
  /* ==== THE MAGIC ==== */
+
 
+
  function goMix(filter, sortby, order, $cont, config){
+
   
+
    // WE ARE NOW MIXING
+
 
+
    clearInterval(config.failsafe);
+
    config.mixing = true;
+
   
+
    // APPLY ARGS TO CONFIG
+
   
+
    config.filter = filter;
+
   
+
    // FIRE "ONMIXSTART" CALLBACK
+
   
+
    if(typeof config.onMixStart == 'function') {
+
      var output = config.onMixStart.call(this, config);
+
     
+
      // UPDATE CONFIG IF DATA RETURNED
+
     
+
      config = output ? output : config;
+
    };
+
   
+
    // SHORT LOCAL VARS
+
   
+
    var speed = config.transitionSpeed;
+
   
+
    // REBUILD TRANSITION AND PERSPECTIVE OBJECTS
+
   
+
    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;
+
    };
+
   
+
    // CACHE TARGET ELEMENTS FOR QUICK ACCESS
+
   
+
    var mixSelector = config.targetSelector,
+
    $targets = $cont.find(mixSelector);
+
   
+
    // ADD DATA OBJECT TO EACH TARGET
+
   
+
    $targets.each(function(){
+
      this.data = {};
+
    });
+
   
+
    // RE-DEFINE CONTAINER INCASE NOT IMMEDIATE PARENT OF TARGET ELEMENTS
+
   
+
    var $par = $targets.parent();
+
 
+
    // ADD PERSPECTIVE TO CONTAINER
+
   
+
    $par.css(config.perspective);
+
   
+
    // SETUP EASING
+
 
+
    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)'; // Fall-back for old webkit, with no values > 1 or < 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)';
+
    };
+
   
+
    // USE LIST SPECIFIC EFFECTS IF DECLARED
+
   
+
    var effectsOut = config.layoutMode == 'list' && config.listEffects != null ? config.listEffects : config.effects;
+
 
+
    // BUILD EFFECTS STRINGS & SKIP IF IE8
+
 
+
    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%)' : '';
+
    };
+
   
+
    // DECLARE NEW JQUERY OBJECTS FOR GROUPING
+
   
+
    var $show = $(),
+
    $hide = $(),
+
    filterArray = [],
+
    multiDimensional = false;
+
   
+
    // BUILD FILTER ARRAY(S)
+
   
+
    if(typeof filter === 'string'){
+
     
+
      // SINGLE DIMENSIONAL FILTERING
+
     
+
      filterArray = buildFilterArray(filter);
+
     
+
    } else {
+
     
+
      // MULTI DIMENSIONAL FILTERING
+
     
+
      multiDimensional = true;
+
     
+
      $.each(filter,function(i){
+
        filterArray[i] = buildFilterArray(this);
+
      });
+
    };
+
 
+
    // "OR" LOGIC (DEFAULT)
+
   
+
    if(config.filterLogic == 'or'){
+
     
+
      if(filterArray[0] == '') filterArray.shift(); // IF FIRST ITEM IN ARRAY IS AN EMPTY SPACE, DELETE
+
     
+
      // IF NO ELEMENTS ARE DESIRED THEN HIDE ALL VISIBLE ELEMENTS
+
   
+
      if(filterArray.length < 1){
+
       
+
        $hide = $hide.add($cont.find(mixSelector+':visible'));
+
       
+
      } else {
+
 
+
      // ELSE CHECK EACH TARGET ELEMENT FOR ANY FILTER CATEGORY:
+
     
+
        $targets.each(function(){
+
          var $t = $(this);
+
          if(!multiDimensional){
+
            // IF HAS ANY FILTER, ADD TO "SHOW" OBJECT
+
            if($t.is('.'+filterArray.join(', .'))){
+
              $show = $show.add($t);
+
            // ELSE IF HAS NO FILTERS, ADD TO "HIDE" OBJECT
+
            } else {
+
              $hide = $hide.add($t);
+
            };
+
          } else {
+
           
+
            var pass = 0;
+
            // FOR EACH DIMENSION
+
           
+
            $.each(filterArray,function(i){
+
              if(this.length){
+
                if($t.is('.'+this.join(', .'))){
+
                  pass++
+
                };
+
              } else if(pass > 0){
+
                pass++;
+
              };
+
            });
+
            // IF PASSES ALL DIMENSIONS, SHOW
+
            if(pass == filterArray.length){
+
              $show = $show.add($t);
+
            // ELSE HIDE
+
            } else {
+
              $hide = $hide.add($t);
+
            };
+
          };
+
        });
+
     
+
      };
+
 
+
    } else {
+
     
+
    // "AND" LOGIC
+
     
+
      // ADD "MIX_SHOW" CLASS TO ELEMENTS THAT HAVE ALL FILTERS
+
     
+
      $show = $show.add($par.find(mixSelector+'.'+filterArray.join('.')));
+
     
+
      // ADD "MIX_HIDE" CLASS TO EVERYTHING ELSE
+
     
+
      $hide = $hide.add($par.find(mixSelector+':not(.'+filterArray.join('.')+'):visible'));
+
    };
+
   
+
    // GET TOTAL NUMBER OF ELEMENTS TO SHOW
+
   
+
    var total = $show.length;
+
   
+
    // DECLARE NEW JQUERY OBJECTS
+
 
+
    var $tohide = $(),
+
    $toshow = $(),
+
    $pre = $();
+
   
+
    // FOR ELEMENTS TO BE HIDDEN, IF NOT ALREADY HIDDEN THEN ADD TO OBJECTS "TOHIDE" AND "PRE"
+
    // TO INDICATE PRE-EXISTING ELEMENTS TO BE HIDDEN
+
   
+
    $hide.each(function(){
+
      var $t = $(this);
+
      if($t.css('display') != 'none'){
+
        $tohide = $tohide.add($t);
+
        $pre = $pre.add($t);
+
      };
+
    });
+
   
+
    // IF ALL ELEMENTS ARE ALREADY SHOWN AND THERE IS NOTHING TO HIDE, AND NOT PERFORMING A LAYOUT CHANGE OR SORT:
+
   
+
    if($show.filter(':visible').length == total && !$tohide.length && !sortby){
+
     
+
      if(config.origLayout == config.layoutMode){
+
       
+
        // THEN CLEAN UP AND GO HOME
+
 
+
        resetFilter();
+
        return false;
+
      } else {
+
       
+
        // IF ONLY ONE ITEM AND CHANGING FORM GRID TO LIST, MOST LIKELY POSITION WILL NOT CHANGE SO WE'RE DONE
+
     
+
        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);
+
          };
+
         
+
          // THEN CLEAN UP AND GO HOME
+
 
+
          resetFilter();
+
          return false;
+
        }
+
      };
+
    };
+
   
+
    // GET CONTAINER'S STARTING HEIGHT
+
 
+
    config.origHeight = $par.height();
+
   
+
    // IF THERE IS SOMETHING TO BE SHOWN:
+
 
+
    if($show.length){
+
     
+
      // REMOVE "FAIL CLASS" FROM CONTAINER IF EXISTS
+
     
+
      $cont.removeClass(config.failClass);
+
     
+
     
+
      // FOR ELEMENTS TO BE SHOWN, IF NOT ALREADY SHOWN THEN ADD TO OBJECTS "TOSHOW" ELSE ADD CLASS "MIX_PRE"
+
      // TO INDICATE PRE-EXISTING ELEMENT
+
 
+
      $show.each(function(){
+
        var $t = $(this);
+
        if($t.css('display') == 'none'){
+
          $toshow = $toshow.add($t)
+
        } else {
+
          $pre = $pre.add($t);
+
        };
+
      });
+
 
+
      // IF NON-ANIMATED LAYOUT MODE TRANSITION:
+
   
+
      if((config.origLayout != config.layoutMode) && config.animateGridList == false){
+
     
+
        // ADD NEW DISPLAY TYPES, CLEAN UP AND GO HOME
+
       
+
        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 IE, FUCK OFF, AND THEN CLEAN UP AND GO HOME
+
   
+
      if(!window.atob){
+
        resetFilter();
+
        return false;
+
      };
+
     
+
      // OVERRIDE ANY EXISTING TRANSITION TIMING FOR CALCULATIONS
+
     
+
      $targets.css(config.clean);
+
     
+
      // FOR EACH PRE-EXISTING ELEMENT, ADD STARTING POSITION TO 'ORIGPOS' ARRAY
+
     
+
      $pre.each(function(){
+
        this.data.origPos = $(this).offset();
+
      });
+
 
+
      // TEMPORARILY SHOW ALL ELEMENTS TO SHOW (THAT ARE NOT ALREADY SHOWN), WITHOUT HIDING ELEMENTS TO HIDE
+
      // AND ADD/REMOVE GRID AND LIST CLASSES FROM CONTAINER
+
 
+
      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);
+
      };
+
     
+
      // FOR EACH ELEMENT NOW SHOWN, ADD ITS INTERMEDIATE POSITION TO 'SHOWINTERPOS' ARRAY
+
 
+
      $toshow.each(function(){
+
        this.data.showInterPos = $(this).offset();
+
      });
+
     
+
      // FOR EACH ELEMENT TO BE HIDDEN, BUT NOT YET HIDDEN, AND NOW MOVED DUE TO SHOWN ELEMENTS,
+
      // ADD ITS INTERMEDIATE POSITION TO 'HIDEINTERPOS' ARRAY
+
 
+
      $tohide.each(function(){
+
        this.data.hideInterPos = $(this).offset();
+
      });
+
     
+
      // FOR EACH PRE-EXISTING ELEMENT, NOW MOVED DUE TO SHOWN ELEMENTS, ADD ITS POSITION TO 'PREINTERPOS' ARRAY
+
 
+
      $pre.each(function(){
+
        this.data.preInterPos = $(this).offset();
+
      });
+
     
+
      // SET DISPLAY PROPERTY OF PRE-EXISTING ELEMENTS INCASE WE ARE CHANGING LAYOUT MODE
+
 
+
      if(config.layoutMode == 'list'){
+
        $pre.css('display',config.targetDisplayList);
+
      } else {
+
        $pre.css('display',config.targetDisplayGrid);
+
      };
+
     
+
      // IF A SORT ARGUMENT HAS BEEN SENT, RUN SORT FUNCTION SO OBJECTS WILL MOVE TO THEIR FINAL ORDER
+
     
+
      if(sortby){
+
        sort(sortby, order, $cont, config);
+
      };
+
     
+
      // IF VISIBLE SORT ORDER IS THE SAME (WHICH WOULD NOT TRIGGER A TRANSITION EVENT)
+
   
+
      if(sortby && compareArr(config.origSort, config.checkSort)){
+
       
+
        // THEN CLEAN UP AND GO HOME
+
        resetFilter();
+
        return false;
+
      };
+
     
+
      // TEMPORARILY HIDE ALL SHOWN ELEMENTS TO HIDE
+
 
+
      $tohide.hide();
+
     
+
      // FOR EACH ELEMENT TO SHOW, AND NOW MOVED DUE TO HIDDEN ELEMENTS BEING REMOVED,
+
      // ADD ITS POSITION TO 'FINALPOS' ARRAY
+
     
+
      $toshow.each(function(i){
+
        this.data.finalPos = $(this).offset();
+
      });
+
     
+
      // FOR EACH PRE-EXISTING ELEMENT NOW MOVED DUE TO HIDDEN ELEMENTS BEING REMOVED,
+
      // ADD ITS POSITION TO 'FINALPREPOS' ARRAY
+
 
+
      $pre.each(function(){
+
        this.data.finalPrePos = $(this).offset();
+
      });
+
     
+
      // SINCE WE ARE IN OUT FINAL STATE, GET NEW HEIGHT OF CONTAINER
+
 
+
      config.newHeight = $par.height();
+
     
+
      // IF A SORT ARGUMENT AS BEEN SENT, RUN SORT FUNCTION 'RESET' TO MOVE ELEMENTS BACK TO THEIR STARTING ORDER
+
     
+
      if(sortby){
+
        sort('reset', null, $cont, config);
+
      };
+
     
+
      // RE-HIDE ALL ELEMENTS TEMPORARILY SHOWN
+
     
+
      $toshow.hide();
+
     
+
      // SET DISPLAY PROPERTY OF PRE-EXISTING ELEMENTS BACK TO THEIR
+
      // ORIGINAL PROPERTY, INCASE WE ARE CHANGING LAYOUT MODE
+
     
+
      $pre.css('display',config.origDisplay);
+
     
+
      // ADD/REMOVE GRID AND LIST CLASSES FROM CONTAINER
+
 
+
      if(config.origDisplay == 'block'){
+
        $cont.addClass(config.listClass);
+
        $toshow.css('display', config.targetDisplayList);
+
      } else {
+
        $cont.removeClass(config.listClass);
+
        $toshow.css('display', config.targetDisplayGrid);
+
      };
+
     
+
      // IF WE ARE ANIMATING CONTAINER, RESET IT TO ITS STARTING HEIGHT
+
   
+
      if(config.resizeContainer)$par.css('height', config.origHeight+'px');
+
 
+
      // ADD TRANSFORMS TO ALL ELEMENTS TO SHOW
+
     
+
      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);
+
 
+
      // FOR EACH PRE-EXISTING ELEMENT, SUBTRACT ITS INTERMEDIATE POSITION FROM ITS ORIGINAL POSITION
+
      // TO GET ITS STARTING OFFSET
+
 
+
      $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);
+
      });
+
     
+
      // ADD/REMOVE GRID AND LIST CLASSES FROM CONTAINER
+
 
+
      if(config.layoutMode == 'list'){
+
        $cont.addClass(config.listClass);
+
        $cont.removeClass(config.gridClass);
+
      } else {
+
        $cont.addClass(config.gridClass);
+
        $cont.removeClass(config.listClass);
+
      };
+
     
+
      // WRAP ANIMATION FUNCTIONS IN 10ms TIMEOUT TO PREVENT RACE CONDITION
+
     
+
      var delay = setTimeout(function(){
+
   
+
        // APPLY TRANSITION TIMING TO CONTAINER, AND BEGIN ANIMATION TO NEW HEIGHT
+
       
+
        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);
+
        };
+
 
+
        // BEGIN FADING IN/OUT OF ALL ELEMENTS TO SHOW/HIDE
+
        $tohide.css('opacity',config.fade);
+
        $toshow.css('opacity',1);
+
 
+
        // FOR EACH ELEMENT BEING SHOWN, CALCULATE ITS TRAJECTORY BY SUBTRACTING
+
        // ITS INTERMEDIATE POSITION FROM ITS FINAL POSITION.
+
        // ALSO ADD SPEED AND EASING
+
       
+
        $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(toShowCSS);
+
        });
+
       
+
        // FOR EACH PRE-EXISTING ELEMENT, IF IT HAS A FINAL POSITION, CALCULATE
+
        // ITS TRAJETORY BY SUBTRACTING ITS INTERMEDIATE POSITION FROM ITS FINAL POSITION.
+
        // ALSO ADD SPEED AND EASING
+
       
+
        $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);
+
        });
+
   
+
        // BEGIN TRANSFORMS ON ALL ELEMENTS TO BE HIDDEN
+
       
+
        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);
+
       
+
        // ALL ANIMATIONS HAVE NOW BEEN STARTED, NOW LISTEN FOR TRANSITION END:
+
       
+
        $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 MIXSELECTOR IS A CLASS NAME
+
           
+
              if($(e.target).hasClass(mixSelector.replace('.',''))){
+
                resetFilter();
+
              };
+
           
+
            } else {
+
             
+
            // IF MIXSELECTOR IS A TAG
+
           
+
              if($(e.target).is(mixSelector)){
+
                resetFilter();
+
              };
+
             
+
            };
+
           
+
          };
+
        });
+
 
+
      },10);
+
     
+
      // LAST RESORT EMERGENCY FAILSAFE
+
     
+
      config.failsafe = setTimeout(function(){
+
        if(config.mixing){
+
          resetFilter();
+
        };
+
      }, speed + 400);
+
 
+
    } else {
+
     
+
    // ELSE IF NOTHING TO SHOW, AND EVERYTHING TO BE HIDDEN
+
   
+
      // IF WE ARE RESIZING CONTAINER, SET ITS STARTING HEIGHT
+
 
+
      if(config.resizeContainer)$par.css('height', config.origHeight+'px');
+
     
+
      // IF IE, FUCK OFF, AND THEN GO HOME
+
     
+
      if(!window.atob){
+
        resetFilter();
+
        return false;
+
      };
+
     
+
      // GROUP ALL ELEMENTS TO HIDE INTO JQUERY OBJECT
+
     
+
      $tohide = $hide;
+
     
+
      // WRAP ANIMATION FUNCTIONS IN A 10ms DELAY TO PREVENT RACE CONDITION
+
 
+
      var delay = setTimeout(function(){
+
       
+
        // APPLY PERSPECTIVE TO CONTAINER
+
 
+
        $par.css(config.perspective);
+
       
+
        // APPLY TRANSITION TIMING TO CONTAINER, AND BEGIN ANIMATION TO NEW HEIGHT
+
   
+
        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);
+
        };
+
 
+
        // APPLY TRANSITION TIMING TO ALL TARGET ELEMENTS
+
       
+
        $targets.css(config.transition);
+
       
+
        // GET TOTAL NUMBER OF ELEMENTS TO HIDE
+
 
+
        var totalHide = $hide.length;
+
       
+
        // IF SOMETHING TO HIDE:
+
 
+
        if(totalHide){
+
         
+
          // BEGIN TRANSFORMS ON ALL ELEMENTS TO BE HIDDEN
+
 
+
          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);
+
         
+
          // ALL ANIMATIONS HAVE NOW BEEN STARTED, NOW LISTEN FOR TRANSITION END:
+
 
+
          $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 {
+
         
+
        // ELSE, WE'RE DONE MIXING
+
         
+
          config.mixing = false;
+
        };
+
 
+
      }, 10);
+
    };
+
   
+
    // CLEAN UP AND RESET FUNCTION
+
 
+
    function resetFilter(){
+
     
+
      // UNBIND TRANSITION END EVENTS FROM CONTAINER
+
     
+
      $par.unbind('webkitTransitionEnd transitionend otransitionend oTransitionEnd');
+
     
+
      // IF A SORT ARGUMENT HAS BEEN SENT, SORT ELEMENTS TO THEIR FINAL ORDER
+
     
+
      if(sortby){
+
        sort(sortby, order, $cont, config);
+
      };
+
     
+
      // EMPTY SORTING ARRAYS
+
   
+
      config.startOrder = [], config.newOrder = [], config.origSort = [], config.checkSort = [];
+
   
+
      // REMOVE INLINE STYLES FROM ALL TARGET ELEMENTS AND SLAM THE BRAKES ON
+
     
+
      $targets.removeStyle(
+
        config.prefix+'filter, filter, '+config.prefix+'transform, transform, opacity, display'
+
      ).css(config.clean).removeAttr('data-checksum');
+
     
+
      // BECAUSE IE SUCKS
+
     
+
      if(!window.atob){
+
        $targets.css({
+
          display: 'none',
+
          opacity: '0'
+
        });
+
      };
+
     
+
      // REMOVE HEIGHT FROM CONTAINER ONLY IF RESIZING
+
     
+
      var remH = config.resizeContainer ? 'height' : '';
+
     
+
      // REMOVE INLINE STYLES FROM CONTAINER
+
   
+
      $par.removeStyle(
+
        config.prefix+'transition, transition, '+config.prefix+'perspective, perspective, '+config.prefix+'perspective-origin, perspective-origin, '+remH
+
      );
+
     
+
      // ADD FINAL DISPLAY PROPERTIES AND OPACITY TO ALL SHOWN ELEMENTS
+
      // CACHE CURRENT LAYOUT MODE & SORT FOR NEXT MIX
+
     
+
      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(){
+
       
+
        // LET GO OF THE BRAKES
+
       
+
        $targets.removeStyle(config.prefix+'transition, transition');
+
     
+
        // WE'RE DONE MIXING
+
     
+
        config.mixing = false;
+
     
+
        // FIRE "ONMIXEND" CALLBACK
+
     
+
        if(typeof config.onMixEnd == 'function') {
+
          var output = config.onMixEnd.call(this, config);
+
       
+
          // UPDATE CONFIG IF DATA RETURNED
+
       
+
          config = output ? output : config;
+
        };
+
      });
+
    };
+
  };
+
 
+
  // SORT FUNCTION
+
 
+
  function sort(sortby, order, $cont, config){
+
 
+
    // COMPARE BY ATTRIBUTE
+
 
+
    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;
+
    };
+
   
+
    // REBUILD DOM
+
 
+
    function rebuild(element){
+
      if(order == 'asc'){
+
        $sortWrapper.prepend(element).prepend(' ');
+
      } else {
+
        $sortWrapper.append(element).append(' ');
+
      };
+
    };
+
   
+
    // RANDOMIZE ARRAY
+
 
+
    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;
+
    };
+
   
+
    // SORT
+
   
+
    $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 {
+
      // SORT BY ATTRIBUTE
+
     
+
      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){
+
       
+
        // PREVENT COMPARE RETURNING FALSE POSITIVES ON ELEMENTS WITH NO CLASS/ATTRIBUTES
+
       
+
        $t.attr('data-checksum','1');
+
      };
+
      $t.wrap('<s/>');
+
      config.checkSort.push($t.parent().html().replace(/\s+/g, ''));
+
      $t.unwrap();
+
    });
+
   
+
    $cont.find(config.targetSelector).unwrap();
+
  };
+
 
+
  // FIND VENDOR PREFIX
+
 
+
  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;
+
  };
+
 
+
  // REMOVE SPECIFIC STYLES
+
 
+
  $.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, '');
+
          });
+
      });
+
    });
+
    };
+
 
+
  // COMPARE ARRAYS
+
 
+
  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;
+
  };
+
 
+
  // BUILD FILTER ARRAY(S)
+
 
+
  function buildFilterArray(str){
+
    // CLEAN FILTER STRING
+
    str = str.replace(/\s{2,}/g, ' ');
+
    // FOR EACH PEROID SEPERATED CLASS NAME, ADD STRING TO FILTER ARRAY
+
    var arr = str.split(' ');
+
    // IF ALL, REPLACE WITH MIX_ALL
+
    $.each(arr,function(i){
+
      if(this == 'all')arr[i] = 'mix_all';
+
    });
+
    if(arr[0] == "")arr.shift();
+
    return arr;
+
  };
+
 
+
 
+
})(jQuery);
+

Revision as of 02:54, 22 August 2019

var cbpAnimatedHeader=function(){function init(){window.addEventListener("scroll",function(){didScroll||(didScroll=!0,setTimeout(scrollPage,250))},!1)}function scrollPage(){var sy=scrollY();sy>=changeHeaderOn?classie.add(header,"site-header-shrink"):classie.remove(header,"site-header-shrink"),didScroll=!1}function scrollY(){return window.pageYOffset||docElem.scrollTop}var docElem=document.documentElement,header=document.querySelector(".site-header"),didScroll=!1,changeHeaderOn=300;init()}();!function(window){"use strict";function classReg(className){return new RegExp("(^|\\s+)"+className+"(\\s+|$)")}function toggleClass(elem,c){var fn=hasClass(elem,c)?removeClass:addClass;fn(elem,c)}var hasClass,addClass,removeClass;"classList"in document.documentElement?(hasClass=function(elem,c){return elem.classList.contains(c)},addClass=function(elem,c){elem.classList.add(c)},removeClass=function(elem,c){elem.classList.remove(c)}):(hasClass=function(elem,c){return classReg(c).test(elem.className)},addClass=function(elem,c){hasClass(elem,c)||(elem.className=elem.className+" "+c)},removeClass=function(elem,c){elem.className=elem.className.replace(classReg(c)," ")});var classie={hasClass:hasClass,addClass:addClass,removeClass:removeClass,toggleClass:toggleClass,has:hasClass,add:addClass,remove:removeClass,toggle:toggleClass};"function"==typeof define&&define.amd?define(classie):window.classie=classie}(window),function($){$.fn.jflickrfeed=function(settings,callback){settings=$.extend(!0,{flickrbase:"http://api.flickr.com/services/feeds/",feedapi:"photos_public.gne",limit:20,qstrings:{lang:"en-us",format:"json",jsoncallback:"?"},cleanDescription:!0,useTemplate:!0,itemTemplate:"",itemCallback:function(){}},settings);var url=settings.flickrbase+settings.feedapi+"?",first=!0;for(var key in settings.qstrings)first||(url+="&"),url+=key+"="+settings.qstrings[key],first=!1;return $(this).each(function(){var $container=$(this),container=this;$.getJSON(url,function(data){$.each(data.items,function(i,item){if(i<settings.limit){if(settings.cleanDescription){var regex=/

(.*?)<\/p>/g,input=item.description;regex.test(input)&&(item.description=input.match(regex)[2],void 0!=item.description&&(item.description=item.description.replace("<p>","").replace("

","")))}if(item.image_s=item.media.m.replace("_m","_s"),item.image_t=item.media.m.replace("_m","_t"),item.image_m=item.media.m.replace("_m","_m"),item.image=item.media.m.replace("_m",""),item.image_b=item.media.m.replace("_m","_b"),delete item.media,settings.useTemplate){var template=settings.itemTemplate;for(var key in item){var rgx=new RegExp("Template:"+key+"","g");template=template.replace(rgx,item[key])}$container.append(template)}settings.itemCallback.call(container,item)}}),$.isFunction(callback)&&callback.call(container,data)})})}}(jQuery),function($){var plugin={},defaults={mode:"horizontal",slideSelector:"",infiniteLoop:!0,hideControlOnEnd:!1,speed:500,easing:null,slideMargin:0,startSlide:0,randomStart:!1,captions:!1,ticker:!1,tickerHover:!1,adaptiveHeight:!1,adaptiveHeightSpeed:500,video:!1,useCSS:!0,preloadImages:"visible",responsive:!0,touchEnabled:!0,swipeThreshold:50,oneToOneTouch:!0,preventDefaultSwipeX:!0,preventDefaultSwipeY:!1,pager:!0,pagerType:"full",pagerShortSeparator:" / ",pagerSelector:null,buildPager:null,pagerCustom:null,controls:!0,nextText:"Next",prevText:"Prev",nextSelector:null,prevSelector:null,autoControls:!1,startText:"Start",stopText:"Stop",autoControlsCombine:!1,autoControlsSelector:null,auto:!1,pause:4e3,autoStart:!0,autoDirection:"next",autoHover:!1,autoDelay:0,minSlides:1,maxSlides:1,moveSlides:0,slideWidth:0,onSliderLoad:function(){},onSlideBefore:function(){},onSlideAfter:function(){},onSlideNext:function(){},onSlidePrev:function(){}};$.fn.bxSlider=function(options){if(0==this.length)return this;if(this.length>1)return this.each(function(){$(this).bxSlider(options)}),this;var slider={},el=this;plugin.el=this;var windowWidth=$(window).width(),windowHeight=$(window).height(),init=function(){slider.settings=$.extend({},defaults,options),slider.settings.slideWidth=parseInt(slider.settings.slideWidth),slider.children=el.children(slider.settings.slideSelector),slider.children.length<slider.settings.minSlides&&(slider.settings.minSlides=slider.children.length),slider.children.length<slider.settings.maxSlides&&(slider.settings.maxSlides=slider.children.length),slider.settings.randomStart&&(slider.settings.startSlide=Math.floor(Math.random()*slider.children.length)),slider.active={index:slider.settings.startSlide},slider.carousel=slider.settings.minSlides>1||slider.settings.maxSlides>1,slider.carousel&&(slider.settings.preloadImages="all"),slider.minThreshold=slider.settings.minSlides*slider.settings.slideWidth+(slider.settings.minSlides-1)*slider.settings.slideMargin,slider.maxThreshold=slider.settings.maxSlides*slider.settings.slideWidth+(slider.settings.maxSlides-1)*slider.settings.slideMargin,slider.working=!1,slider.controls={},slider.interval=null,slider.animProp="vertical"==slider.settings.mode?"top":"left",slider.usingCSS=slider.settings.useCSS&&"fade"!=slider.settings.mode&&function(){var div=document.createElement("div"),props=["WebkitPerspective","MozPerspective","OPerspective","msPerspective"];for(var i in props)if(void 0!==div.style[props[i]])return slider.cssPrefix=props[i].replace("Perspective","").toLowerCase(),slider.animProp="-"+slider.cssPrefix+"-transform",!0;return!1}(),"vertical"==slider.settings.mode&&(slider.settings.maxSlides=slider.settings.minSlides),el.data("origStyle",el.attr("style")),el.children(slider.settings.slideSelector).each(function(){$(this).data("origStyle",$(this).attr("style"))}),setup()},setup=function(){el.wrap('
'),slider.viewport=el.parent(),slider.loader=$('<div class="bx-loading" />'),slider.viewport.prepend(slider.loader),el.css({width:"horizontal"==slider.settings.mode?100*slider.children.length+215+"%":"auto",position:"relative"}),slider.usingCSS&&slider.settings.easing?el.css("-"+slider.cssPrefix+"-transition-timing-function",slider.settings.easing):slider.settings.easing||(slider.settings.easing="swing");getNumberSlidesShowing();slider.viewport.css({width:"100%",overflow:"hidden",position:"relative"}),slider.viewport.parent().css({maxWidth:getViewportMaxWidth()}),slider.settings.pager||slider.viewport.parent().css({margin:"0 auto 0px"}),slider.children.css({"float":"horizontal"==slider.settings.mode?"left":"none",listStyle:"none",position:"relative"}),slider.children.css("width",getSlideWidth()),"horizontal"==slider.settings.mode&&slider.settings.slideMargin>0&&slider.children.css("marginRight",slider.settings.slideMargin),"vertical"==slider.settings.mode&&slider.settings.slideMargin>0&&slider.children.css("marginBottom",slider.settings.slideMargin),"fade"==slider.settings.mode&&(slider.children.css({position:"absolute",zIndex:0,display:"none"}),slider.children.eq(slider.settings.startSlide).css({zIndex:50,display:"block"})),slider.controls.el=$('<div class="bx-controls" />'),slider.settings.captions&&appendCaptions(),slider.active.last=slider.settings.startSlide==getPagerQty()-1,slider.settings.video&&el.fitVids();var preloadSelector=slider.children.eq(slider.settings.startSlide);"all"==slider.settings.preloadImages&&(preloadSelector=slider.children),slider.settings.ticker?slider.settings.pager=!1:(slider.settings.pager&&appendPager(),slider.settings.controls&&appendControls(),slider.settings.auto&&slider.settings.autoControls&&appendControlsAuto(),(slider.settings.controls||slider.settings.autoControls||slider.settings.pager)&&slider.viewport.after(slider.controls.el)),loadElements(preloadSelector,start)},loadElements=function(selector,callback){var total=selector.find("img, iframe").length;if(0==total)return callback(),void 0;var count=0;selector.find("img, iframe").each(function(){$(this).one("load",function(){++count==total&&callback()}).each(function(){this.complete&&$(this).load()})})},start=function(){if(slider.settings.infiniteLoop&&"fade"!=slider.settings.mode&&!slider.settings.ticker){var slice="vertical"==slider.settings.mode?slider.settings.minSlides:slider.settings.maxSlides,sliceAppend=slider.children.slice(0,slice).clone().addClass("bx-clone"),slicePrepend=slider.children.slice(-slice).clone().addClass("bx-clone");el.append(sliceAppend).prepend(slicePrepend)}slider.loader.remove(),setSlidePosition(),"vertical"==slider.settings.mode&&(slider.settings.adaptiveHeight=!0),slider.viewport.height(getViewportHeight()),el.redrawSlider(),slider.settings.onSliderLoad(slider.active.index),slider.initialized=!0,slider.settings.responsive&&$(window).bind("resize",resizeWindow),slider.settings.auto&&slider.settings.autoStart&&initAuto(),slider.settings.ticker&&initTicker(),slider.settings.pager&&updatePagerActive(slider.settings.startSlide),slider.settings.controls&&updateDirectionControls(),slider.settings.touchEnabled&&!slider.settings.ticker&&initTouch()},getViewportHeight=function(){var height=0,children=$();if("vertical"==slider.settings.mode||slider.settings.adaptiveHeight)if(slider.carousel){var currentIndex=1==slider.settings.moveSlides?slider.active.index:slider.active.index*getMoveBy();for(children=slider.children.eq(currentIndex),i=1;i<=slider.settings.maxSlides-1;i++)children=currentIndex+i>=slider.children.length?children.add(slider.children.eq(i-1)):children.add(slider.children.eq(currentIndex+i))}else children=slider.children.eq(slider.active.index);else children=slider.children;return"vertical"==slider.settings.mode?(children.each(function(){height+=$(this).outerHeight()}),slider.settings.slideMargin>0&&(height+=slider.settings.slideMargin*(slider.settings.minSlides-1))):height=Math.max.apply(Math,children.map(function(){return $(this).outerHeight(!1)}).get()),height},getViewportMaxWidth=function(){var width="100%";return slider.settings.slideWidth>0&&(width="horizontal"==slider.settings.mode?slider.settings.maxSlides*slider.settings.slideWidth+(slider.settings.maxSlides-1)*slider.settings.slideMargin:slider.settings.slideWidth),width},getSlideWidth=function(){var newElWidth=slider.settings.slideWidth,wrapWidth=slider.viewport.width();return 0==slider.settings.slideWidth||slider.settings.slideWidth>wrapWidth&&!slider.carousel||"vertical"==slider.settings.mode?newElWidth=wrapWidth:slider.settings.maxSlides>1&&"horizontal"==slider.settings.mode&&(wrapWidth>slider.maxThreshold||wrapWidth<slider.minThreshold&&(newElWidth=(wrapWidth-slider.settings.slideMargin*(slider.settings.minSlides-1))/slider.settings.minSlides)),newElWidth},getNumberSlidesShowing=function(){var slidesShowing=1;if("horizontal"==slider.settings.mode&&slider.settings.slideWidth>0)if(slider.viewport.width()<slider.minThreshold)slidesShowing=slider.settings.minSlides;else if(slider.viewport.width()>slider.maxThreshold)slidesShowing=slider.settings.maxSlides;else{var childWidth=slider.children.first().width();slidesShowing=Math.floor(slider.viewport.width()/childWidth)}else"vertical"==slider.settings.mode&&(slidesShowing=slider.settings.minSlides);return slidesShowing},getPagerQty=function(){var pagerQty=0;if(slider.settings.moveSlides>0)if(slider.settings.infiniteLoop)pagerQty=slider.children.length/getMoveBy();else for(var breakPoint=0,counter=0;breakPoint<slider.children.length;)++pagerQty,breakPoint=counter+getNumberSlidesShowing(),counter+=slider.settings.moveSlides<=getNumberSlidesShowing()?slider.settings.moveSlides:getNumberSlidesShowing();else pagerQty=Math.ceil(slider.children.length/getNumberSlidesShowing());return pagerQty},getMoveBy=function(){return slider.settings.moveSlides>0&&slider.settings.moveSlides<=getNumberSlidesShowing()?slider.settings.moveSlides:getNumberSlidesShowing()},setSlidePosition=function(){if(slider.children.length>slider.settings.maxSlides&&slider.active.last&&!slider.settings.infiniteLoop){if("horizontal"==slider.settings.mode){var lastChild=slider.children.last(),position=lastChild.position();setPositionProperty(-(position.left-(slider.viewport.width()-lastChild.width())),"reset",0)}else if("vertical"==slider.settings.mode){var lastShowingIndex=slider.children.length-slider.settings.minSlides,position=slider.children.eq(lastShowingIndex).position();setPositionProperty(-position.top,"reset",0)}}else{var position=slider.children.eq(slider.active.index*getMoveBy()).position();slider.active.index==getPagerQty()-1&&(slider.active.last=!0),void 0!=position&&("horizontal"==slider.settings.mode?setPositionProperty(-position.left,"reset",0):"vertical"==slider.settings.mode&&setPositionProperty(-position.top,"reset",0))}},setPositionProperty=function(value,type,duration,params){if(slider.usingCSS){var propValue="vertical"==slider.settings.mode?"translate3d(0, "+value+"px, 0)":"translate3d("+value+"px, 0, 0)";el.css("-"+slider.cssPrefix+"-transition-duration",duration/1e3+"s"),"slide"==type?(el.css(slider.animProp,propValue),el.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(){el.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),updateAfterSlideTransition()})):"reset"==type?el.css(slider.animProp,propValue):"ticker"==type&&(el.css("-"+slider.cssPrefix+"-transition-timing-function","linear"),el.css(slider.animProp,propValue),el.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(){el.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd"),setPositionProperty(params.resetValue,"reset",0),tickerLoop()}))}else{var animateObj={};animateObj[slider.animProp]=value,"slide"==type?el.animate(animateObj,duration,slider.settings.easing,function(){updateAfterSlideTransition()}):"reset"==type?el.css(slider.animProp,value):"ticker"==type&&el.animate(animateObj,speed,"linear",function(){setPositionProperty(params.resetValue,"reset",0),tickerLoop()})}},populatePager=function(){for(var pagerHtml="",pagerQty=getPagerQty(),i=0;pagerQty>i;i++){var linkContent="";slider.settings.buildPager&&$.isFunction(slider.settings.buildPager)?(linkContent=slider.settings.buildPager(i),slider.pagerEl.addClass("bx-custom-pager")):(linkContent=i+1,slider.pagerEl.addClass("bx-default-pager")),pagerHtml+='
<a href="" data-slide-index="'+i+'" class="bx-pager-link">'+linkContent+"</a>
"}slider.pagerEl.html(pagerHtml)},appendPager=function(){slider.settings.pagerCustom?slider.pagerEl=$(slider.settings.pagerCustom):(slider.pagerEl=$('<div class="bx-pager" />'),slider.settings.pagerSelector?$(slider.settings.pagerSelector).html(slider.pagerEl):slider.controls.el.addClass("bx-has-pager").append(slider.pagerEl),populatePager()),slider.pagerEl.delegate("a","click",clickPagerBind)},appendControls=function(){slider.controls.next=$('<a class="bx-next" href="">'+slider.settings.nextText+"</a>"),slider.controls.prev=$('<a class="bx-prev" href="">'+slider.settings.prevText+"</a>"),slider.controls.next.bind("click",clickNextBind),slider.controls.prev.bind("click",clickPrevBind),slider.settings.nextSelector&&$(slider.settings.nextSelector).append(slider.controls.next),slider.settings.prevSelector&&$(slider.settings.prevSelector).append(slider.controls.prev),slider.settings.nextSelector||slider.settings.prevSelector||(slider.controls.directionEl=$('<div class="bx-controls-direction" />'),slider.controls.directionEl.append(slider.controls.prev).append(slider.controls.next),slider.controls.el.addClass("bx-has-controls-direction").append(slider.controls.directionEl))},appendControlsAuto=function(){slider.controls.start=$('
<a class="bx-start" href="">'+slider.settings.startText+"</a>
"),slider.controls.stop=$('
<a class="bx-stop" href="">'+slider.settings.stopText+"</a>
"),slider.controls.autoEl=$('<div class="bx-controls-auto" />'),slider.controls.autoEl.delegate(".bx-start","click",clickStartBind),slider.controls.autoEl.delegate(".bx-stop","click",clickStopBind),slider.settings.autoControlsCombine?slider.controls.autoEl.append(slider.controls.start):slider.controls.autoEl.append(slider.controls.start).append(slider.controls.stop),slider.settings.autoControlsSelector?$(slider.settings.autoControlsSelector).html(slider.controls.autoEl):slider.controls.el.addClass("bx-has-controls-auto").append(slider.controls.autoEl),updateAutoControls(slider.settings.autoStart?"stop":"start")},appendCaptions=function(){slider.children.each(function(){var title=$(this).find("img:first").attr("title");void 0!=title&&(""+title).length&&$(this).append('
'+title+"
")})},clickNextBind=function(e){slider.settings.auto&&el.stopAuto(),el.goToNextSlide(),e.preventDefault()},clickPrevBind=function(e){slider.settings.auto&&el.stopAuto(),el.goToPrevSlide(),e.preventDefault()},clickStartBind=function(e){el.startAuto(),e.preventDefault()},clickStopBind=function(e){el.stopAuto(),e.preventDefault()},clickPagerBind=function(e){slider.settings.auto&&el.stopAuto();var pagerLink=$(e.currentTarget),pagerIndex=parseInt(pagerLink.attr("data-slide-index"));pagerIndex!=slider.active.index&&el.goToSlide(pagerIndex),e.preventDefault()},updatePagerActive=function(slideIndex){var len=slider.children.length;return"short"==slider.settings.pagerType?(slider.settings.maxSlides>1&&(len=Math.ceil(slider.children.length/slider.settings.maxSlides)),slider.pagerEl.html(slideIndex+1+slider.settings.pagerShortSeparator+len),void 0):(slider.pagerEl.find("a").removeClass("active"),slider.pagerEl.each(function(i,el){$(el).find("a").eq(slideIndex).addClass("active")}),void 0)},updateAfterSlideTransition=function(){if(slider.settings.infiniteLoop){var position="";0==slider.active.index?position=slider.children.eq(0).position():slider.active.index==getPagerQty()-1&&slider.carousel?position=slider.children.eq((getPagerQty()-1)*getMoveBy()).position():slider.active.index==slider.children.length-1&&(position=slider.children.eq(slider.children.length-1).position()),"horizontal"==slider.settings.mode?setPositionProperty(-position.left,"reset",0):"vertical"==slider.settings.mode&&setPositionProperty(-position.top,"reset",0)}slider.working=!1,slider.settings.onSlideAfter(slider.children.eq(slider.active.index),slider.oldIndex,slider.active.index)},updateAutoControls=function(state){slider.settings.autoControlsCombine?slider.controls.autoEl.html(slider.controls[state]):(slider.controls.autoEl.find("a").removeClass("active"),slider.controls.autoEl.find("a:not(.bx-"+state+")").addClass("active"))},updateDirectionControls=function(){1==getPagerQty()?(slider.controls.prev.addClass("disabled"),slider.controls.next.addClass("disabled")):!slider.settings.infiniteLoop&&slider.settings.hideControlOnEnd&&(0==slider.active.index?(slider.controls.prev.addClass("disabled"),slider.controls.next.removeClass("disabled")):slider.active.index==getPagerQty()-1?(slider.controls.next.addClass("disabled"),slider.controls.prev.removeClass("disabled")):(slider.controls.prev.removeClass("disabled"),slider.controls.next.removeClass("disabled")))},initAuto=function(){if(slider.settings.autoDelay>0){setTimeout(el.startAuto,slider.settings.autoDelay)}else el.startAuto();slider.settings.autoHover&&el.hover(function(){slider.interval&&(el.stopAuto(!0),slider.autoPaused=!0)},function(){slider.autoPaused&&(el.startAuto(!0),slider.autoPaused=null)})},initTicker=function(){var startPosition=0;if("next"==slider.settings.autoDirection)el.append(slider.children.clone().addClass("bx-clone"));else{el.prepend(slider.children.clone().addClass("bx-clone"));var position=slider.children.first().position();startPosition="horizontal"==slider.settings.mode?-position.left:-position.top}setPositionProperty(startPosition,"reset",0),slider.settings.pager=!1,slider.settings.controls=!1,slider.settings.autoControls=!1,slider.settings.tickerHover&&!slider.usingCSS&&slider.viewport.hover(function(){el.stop()},function(){var totalDimens=0;slider.children.each(function(){totalDimens+="horizontal"==slider.settings.mode?$(this).outerWidth(!0):$(this).outerHeight(!0)});var ratio=slider.settings.speed/totalDimens,property="horizontal"==slider.settings.mode?"left":"top",newSpeed=ratio*(totalDimens-Math.abs(parseInt(el.css(property))));tickerLoop(newSpeed)}),tickerLoop()},tickerLoop=function(resumeSpeed){speed=resumeSpeed?resumeSpeed:slider.settings.speed;var position={left:0,top:0},reset={left:0,top:0};"next"==slider.settings.autoDirection?position=el.find(".bx-clone").first().position():reset=slider.children.first().position();var animateProperty="horizontal"==slider.settings.mode?-position.left:-position.top,resetValue="horizontal"==slider.settings.mode?-reset.left:-reset.top,params={resetValue:resetValue};setPositionProperty(animateProperty,"ticker",speed,params)},initTouch=function(){slider.touch={start:{x:0,y:0},end:{x:0,y:0}},slider.viewport.bind("touchstart",onTouchStart)},onTouchStart=function(e){if(slider.working)e.preventDefault();else{slider.touch.originalPos=el.position();var orig=e.originalEvent;slider.touch.start.x=orig.changedTouches[0].pageX,slider.touch.start.y=orig.changedTouches[0].pageY,slider.viewport.bind("touchmove",onTouchMove),slider.viewport.bind("touchend",onTouchEnd)}},onTouchMove=function(e){var orig=e.originalEvent,xMovement=Math.abs(orig.changedTouches[0].pageX-slider.touch.start.x),yMovement=Math.abs(orig.changedTouches[0].pageY-slider.touch.start.y);if(3*xMovement>yMovement&&slider.settings.preventDefaultSwipeX?e.preventDefault():3*yMovement>xMovement&&slider.settings.preventDefaultSwipeY&&e.preventDefault(),"fade"!=slider.settings.mode&&slider.settings.oneToOneTouch){var value=0;if("horizontal"==slider.settings.mode){var change=orig.changedTouches[0].pageX-slider.touch.start.x;value=slider.touch.originalPos.left+change}else{var change=orig.changedTouches[0].pageY-slider.touch.start.y;value=slider.touch.originalPos.top+change}setPositionProperty(value,"reset",0)}},onTouchEnd=function(e){slider.viewport.unbind("touchmove",onTouchMove);var orig=e.originalEvent,value=0;if(slider.touch.end.x=orig.changedTouches[0].pageX,slider.touch.end.y=orig.changedTouches[0].pageY,"fade"==slider.settings.mode){var distance=Math.abs(slider.touch.start.x-slider.touch.end.x);distance>=slider.settings.swipeThreshold&&(slider.touch.start.x>slider.touch.end.x?el.goToNextSlide():el.goToPrevSlide(),el.stopAuto())}else{var distance=0;"horizontal"==slider.settings.mode?(distance=slider.touch.end.x-slider.touch.start.x,value=slider.touch.originalPos.left):(distance=slider.touch.end.y-slider.touch.start.y,value=slider.touch.originalPos.top),!slider.settings.infiniteLoop&&(0==slider.active.index&&distance>0||slider.active.last&&0>distance)?setPositionProperty(value,"reset",200):Math.abs(distance)>=slider.settings.swipeThreshold?(0>distance?el.goToNextSlide():el.goToPrevSlide(),el.stopAuto()):setPositionProperty(value,"reset",200)}slider.viewport.unbind("touchend",onTouchEnd)},resizeWindow=function(){var windowWidthNew=$(window).width(),windowHeightNew=$(window).height();(windowWidth!=windowWidthNew||windowHeight!=windowHeightNew)&&(windowWidth=windowWidthNew,windowHeight=windowHeightNew,el.redrawSlider())};return el.goToSlide=function(slideIndex,direction){if(!slider.working&&slider.active.index!=slideIndex)if(slider.working=!0,slider.oldIndex=slider.active.index,slider.active.index=0>slideIndex?getPagerQty()-1:slideIndex>=getPagerQty()?0:slideIndex,slider.settings.onSlideBefore(slider.children.eq(slider.active.index),slider.oldIndex,slider.active.index),"next"==direction?slider.settings.onSlideNext(slider.children.eq(slider.active.index),slider.oldIndex,slider.active.index):"prev"==direction&&slider.settings.onSlidePrev(slider.children.eq(slider.active.index),slider.oldIndex,slider.active.index),slider.active.last=slider.active.index>=getPagerQty()-1,slider.settings.pager&&updatePagerActive(slider.active.index),slider.settings.controls&&updateDirectionControls(),"fade"==slider.settings.mode)slider.settings.adaptiveHeight&&slider.viewport.height()!=getViewportHeight()&&slider.viewport.animate({height:getViewportHeight()},slider.settings.adaptiveHeightSpeed),slider.children.filter(":visible").fadeOut(slider.settings.speed).css({zIndex:0}),slider.children.eq(slider.active.index).css("zIndex",51).fadeIn(slider.settings.speed,function(){$(this).css("zIndex",50),updateAfterSlideTransition()});else{slider.settings.adaptiveHeight&&slider.viewport.height()!=getViewportHeight()&&slider.viewport.animate({height:getViewportHeight()},slider.settings.adaptiveHeightSpeed);var moveBy=0,position={left:0,top:0};if(!slider.settings.infiniteLoop&&slider.carousel&&slider.active.last)if("horizontal"==slider.settings.mode){var lastChild=slider.children.eq(slider.children.length-1);position=lastChild.position(),moveBy=slider.viewport.width()-lastChild.outerWidth()}else{var lastShowingIndex=slider.children.length-slider.settings.minSlides;position=slider.children.eq(lastShowingIndex).position()}else if(slider.carousel&&slider.active.last&&"prev"==direction){var eq=1==slider.settings.moveSlides?slider.settings.maxSlides-getMoveBy():(getPagerQty()-1)*getMoveBy()-(slider.children.length-slider.settings.maxSlides),lastChild=el.children(".bx-clone").eq(eq);position=lastChild.position()}else if("next"==direction&&0==slider.active.index)position=el.find("> .bx-clone").eq(slider.settings.maxSlides).position(),slider.active.last=!1;else if(slideIndex>=0){var requestEl=slideIndex*getMoveBy();position=slider.children.eq(requestEl).position()}if("undefined"!=typeof position){var value="horizontal"==slider.settings.mode?-(position.left-moveBy):-position.top;setPositionProperty(value,"slide",slider.settings.speed)}}},el.goToNextSlide=function(){if(slider.settings.infiniteLoop||!slider.active.last){var pagerIndex=parseInt(slider.active.index)+1;el.goToSlide(pagerIndex,"next")}},el.goToPrevSlide=function(){if(slider.settings.infiniteLoop||0!=slider.active.index){var pagerIndex=parseInt(slider.active.index)-1;el.goToSlide(pagerIndex,"prev")}},el.startAuto=function(preventControlUpdate){slider.interval||(slider.interval=setInterval(function(){"next"==slider.settings.autoDirection?el.goToNextSlide():el.goToPrevSlide()},slider.settings.pause),slider.settings.autoControls&&1!=preventControlUpdate&&updateAutoControls("stop"))},el.stopAuto=function(preventControlUpdate){slider.interval&&(clearInterval(slider.interval),slider.interval=null,slider.settings.autoControls&&1!=preventControlUpdate&&updateAutoControls("start"))},el.getCurrentSlide=function(){return slider.active.index},el.getSlideCount=function(){return slider.children.length},el.redrawSlider=function(){slider.children.add(el.find(".bx-clone")).outerWidth(getSlideWidth()),slider.viewport.css("height",getViewportHeight()),slider.settings.ticker||setSlidePosition(),slider.active.last&&(slider.active.index=getPagerQty()-1),slider.active.index>=getPagerQty()&&(slider.active.last=!0),slider.settings.pager&&!slider.settings.pagerCustom&&(populatePager(),updatePagerActive(slider.active.index))},el.destroySlider=function(){slider.initialized&&(slider.initialized=!1,$(".bx-clone",this).remove(),slider.children.each(function(){void 0!=$(this).data("origStyle")?$(this).attr("style",$(this).data("origStyle")):$(this).removeAttr("style")}),void 0!=$(this).data("origStyle")?this.attr("style",$(this).data("origStyle")):$(this).removeAttr("style"),$(this).unwrap().unwrap(),slider.controls.el&&slider.controls.el.remove(),slider.controls.next&&slider.controls.next.remove(),slider.controls.prev&&slider.controls.prev.remove(),slider.pagerEl&&slider.pagerEl.remove(),$(".bx-caption",this).remove(),slider.controls.autoEl&&slider.controls.autoEl.remove(),clearInterval(slider.interval),slider.settings.responsive&&$(window).unbind("resize",resizeWindow))},el.reloadSlider=function(settings){void 0!=settings&&(options=settings),el.destroySlider(),init()},init(),this}}(jQuery),function(window,document,$,undefined){"use strict";var H=$("html"),W=$(window),D=$(document),F=$.fancybox=function(){F.open.apply(this,arguments)},IE=navigator.userAgent.match(/msie/i),didUpdate=null,isTouch=document.createTouch!==undefined,isQuery=function(obj){return obj&&obj.hasOwnProperty&&obj instanceof $},isString=function(str){return str&&"string"===$.type(str)},isPercentage=function(str){return isString(str)&&str.indexOf("%")>0},isScrollable=function(el){return el&&!(el.style.overflow&&"hidden"===el.style.overflow)&&(el.clientWidth&&el.scrollWidth>el.clientWidth||el.clientHeight&&el.scrollHeight>el.clientHeight)},getScalar=function(orig,dim){var value=parseInt(orig,10)||0;return dim&&isPercentage(orig)&&(value=F.getViewport()[dim]/100*value),Math.ceil(value)},getValue=function(value,dim){return getScalar(value,dim)+"px"};$.extend(F,{version:"2.1.5",defaults:{padding:15,margin:20,width:800,height:600,minWidth:100,minHeight:100,maxWidth:9999,maxHeight:9999,pixelRatio:1,autoSize:!0,autoHeight:!1,autoWidth:!1,autoResize:!0,autoCenter:!isTouch,fitToView:!0,aspectRatio:!1,topRatio:.5,leftRatio:.5,scrolling:"auto",wrapCSS:"",arrows:!0,closeBtn:!0,closeClick:!1,nextClick:!1,mouseWheel:!0,autoPlay:!1,playSpeed:3e3,preload:3,modal:!1,loop:!0,ajax:{dataType:"html",headers:{"X-fancyBox":!0}},iframe:{scrolling:"auto",preload:!0},swf:{wmode:"transparent",allowfullscreen:"true",allowscriptaccess:"always"},keys:{next:{13:"left",34:"up",39:"left",40:"up"},prev:{8:"right",33:"down",37:"right",38:"down"},close:[27],play:[32],toggle:[70]},direction:{next:"left",prev:"right"},scrollOutside:!0,index:0,type:null,href:null,content:null,title:null,tpl:{wrap:'
',image:'<img class="fancybox-image" src="{href}" alt="" />',iframe:'<iframe id="fancybox-frame{rnd}" name="fancybox-frame{rnd}" class="fancybox-iframe" frameborder="0" vspace="0" hspace="0" webkitAllowFullScreen mozallowfullscreen allowFullScreen'+(IE?' allowtransparency="true"':"")+"></iframe>",error:'

The requested content cannot be loaded.
Please try again later.

',closeBtn:'<a title="Close" class="fancybox-item fancybox-close" href="javascript:;"></a>',next:'<a title="Next" class="fancybox-nav fancybox-next" href="javascript:;"></a>',prev:'<a title="Previous" class="fancybox-nav fancybox-prev" href="javascript:;"></a>'},openEffect:"fade",openSpeed:250,openEasing:"swing",openOpacity:!0,openMethod:"zoomIn",closeEffect:"fade",closeSpeed:250,closeEasing:"swing",closeOpacity:!0,closeMethod:"zoomOut",nextEffect:"elastic",nextSpeed:250,nextEasing:"swing",nextMethod:"changeIn",prevEffect:"elastic",prevSpeed:250,prevEasing:"swing",prevMethod:"changeOut",helpers:{overlay:!0,title:!0},onCancel:$.noop,beforeLoad:$.noop,afterLoad:$.noop,beforeShow:$.noop,afterShow:$.noop,beforeChange:$.noop,beforeClose:$.noop,afterClose:$.noop},group:{},opts:{},previous:null,coming:null,current:null,isActive:!1,isOpen:!1,isOpened:!1,wrap:null,skin:null,outer:null,inner:null,player:{timer:null,isActive:!1},ajaxLoad:null,imgPreload:null,transitions:{},helpers:{},open:function(group,opts){return group&&($.isPlainObject(opts)||(opts={}),!1!==F.close(!0))?($.isArray(group)||(group=isQuery(group)?$(group).get():[group]),$.each(group,function(i,element){var href,title,content,type,rez,hrefParts,selector,obj={};"object"===$.type(element)&&(element.nodeType&&(element=$(element)),isQuery(element)?(obj={href:element.data("fancybox-href")||element.attr("href"),title:element.data("fancybox-title")||element.attr("title"),isDom:!0,element:element},$.metadata&&$.extend(!0,obj,element.metadata())):obj=element),href=opts.href||obj.href||(isString(element)?element:null),title=opts.title!==undefined?opts.title:obj.title||"",content=opts.content||obj.content,type=content?"html":opts.type||obj.type,!type&&obj.isDom&&(type=element.data("fancybox-type"),type||(rez=element.prop("class").match(/fancybox\.(\w+)/),type=rez?rez[1]:null)),isString(href)&&(type||(F.isImage(href)?type="image":F.isSWF(href)?type="swf":"#"===href.charAt(0)?type="inline":isString(element)&&(type="html",content=element)),"ajax"===type&&(hrefParts=href.split(/\s+/,2),href=hrefParts.shift(),selector=hrefParts.shift())),content||("inline"===type?href?content=$(isString(href)?href.replace(/.*(?=#[^\s]+$)/,""):href):obj.isDom&&(content=element):"html"===type?content=href:type||href||!obj.isDom||(type="inline",content=element)),$.extend(obj,{href:href,type:type,content:content,title:title,selector:selector}),group[i]=obj }),F.opts=$.extend(!0,{},F.defaults,opts),opts.keys!==undefined&&(F.opts.keys=opts.keys?$.extend({},F.defaults.keys,opts.keys):!1),F.group=group,F._start(F.opts.index)):void 0},cancel:function(){var coming=F.coming;coming&&!1!==F.trigger("onCancel")&&(F.hideLoading(),F.ajaxLoad&&F.ajaxLoad.abort(),F.ajaxLoad=null,F.imgPreload&&(F.imgPreload.onload=F.imgPreload.onerror=null),coming.wrap&&coming.wrap.stop(!0,!0).trigger("onReset").remove(),F.coming=null,F.current||F._afterZoomOut(coming))},close:function(event){F.cancel(),!1!==F.trigger("beforeClose")&&(F.unbindEvents(),F.isActive&&(F.isOpen&&event!==!0?(F.isOpen=F.isOpened=!1,F.isClosing=!0,$(".fancybox-item, .fancybox-nav").remove(),F.wrap.stop(!0,!0).removeClass("fancybox-opened"),F.transitions[F.current.closeMethod]()):($(".fancybox-wrap").stop(!0).trigger("onReset").remove(),F._afterZoomOut())))},play:function(action){var clear=function(){clearTimeout(F.player.timer)},set=function(){clear(),F.current&&F.player.isActive&&(F.player.timer=setTimeout(F.next,F.current.playSpeed))},stop=function(){clear(),D.unbind(".player"),F.player.isActive=!1,F.trigger("onPlayEnd")},start=function(){F.current&&(F.current.loop||F.current.index<F.group.length-1)&&(F.player.isActive=!0,D.bind({"onCancel.player beforeClose.player":stop,"onUpdate.player":set,"beforeLoad.player":clear}),set(),F.trigger("onPlayStart"))};action===!0||!F.player.isActive&&action!==!1?start():stop()},next:function(direction){var current=F.current;current&&(isString(direction)||(direction=current.direction.next),F.jumpto(current.index+1,direction,"next"))},prev:function(direction){var current=F.current;current&&(isString(direction)||(direction=current.direction.prev),F.jumpto(current.index-1,direction,"prev"))},jumpto:function(index,direction,router){var current=F.current;current&&(index=getScalar(index),F.direction=direction||current.direction[index>=current.index?"next":"prev"],F.router=router||"jumpto",current.loop&&(0>index&&(index=current.group.length+index%current.group.length),index%=current.group.length),current.group[index]!==undefined&&(F.cancel(),F._start(index)))},reposition:function(e,onlyAbsolute){var pos,current=F.current,wrap=current?current.wrap:null;wrap&&(pos=F._getPosition(onlyAbsolute),e&&"scroll"===e.type?(delete pos.position,wrap.stop(!0,!0).animate(pos,200)):(wrap.css(pos),current.pos=$.extend({},current.dim,pos)))},update:function(e){var type=e&&e.type,anyway=!type||"orientationchange"===type;anyway&&(clearTimeout(didUpdate),didUpdate=null),F.isOpen&&!didUpdate&&(didUpdate=setTimeout(function(){var current=F.current;current&&!F.isClosing&&(F.wrap.removeClass("fancybox-tmp"),(anyway||"load"===type||"resize"===type&&current.autoResize)&&F._setDimension(),"scroll"===type&&current.canShrink||F.reposition(e),F.trigger("onUpdate"),didUpdate=null)},anyway&&!isTouch?0:300))},toggle:function(action){F.isOpen&&(F.current.fitToView="boolean"===$.type(action)?action:!F.current.fitToView,isTouch&&(F.wrap.removeAttr("style").addClass("fancybox-tmp"),F.trigger("onUpdate")),F.update())},hideLoading:function(){D.unbind(".loading"),$("#fancybox-loading").remove()},showLoading:function(){var el,viewport;F.hideLoading(),el=$('
').click(F.cancel).appendTo("body"),D.bind("keydown.loading",function(e){27===(e.which||e.keyCode)&&(e.preventDefault(),F.cancel())}),F.defaults.fixed||(viewport=F.getViewport(),el.css({position:"absolute",top:.5*viewport.h+viewport.y,left:.5*viewport.w+viewport.x}))},getViewport:function(){var locked=F.current&&F.current.locked||!1,rez={x:W.scrollLeft(),y:W.scrollTop()};return locked?(rez.w=locked[0].clientWidth,rez.h=locked[0].clientHeight):(rez.w=isTouch&&window.innerWidth?window.innerWidth:W.width(),rez.h=isTouch&&window.innerHeight?window.innerHeight:W.height()),rez},unbindEvents:function(){F.wrap&&isQuery(F.wrap)&&F.wrap.unbind(".fb"),D.unbind(".fb"),W.unbind(".fb")},bindEvents:function(){var keys,current=F.current;current&&(W.bind("orientationchange.fb"+(isTouch?"":" resize.fb")+(current.autoCenter&&!current.locked?" scroll.fb":""),F.update),keys=current.keys,keys&&D.bind("keydown.fb",function(e){var code=e.which||e.keyCode,target=e.target||e.srcElement;return 27===code&&F.coming?!1:(e.ctrlKey||e.altKey||e.shiftKey||e.metaKey||target&&(target.type||$(target).is("[contenteditable]"))||$.each(keys,function(i,val){return current.group.length>1&&val[code]!==undefined?(F[i](val[code]),e.preventDefault(),!1):$.inArray(code,val)>-1?(F[i](),e.preventDefault(),!1):void 0}),void 0)}),$.fn.mousewheel&&current.mouseWheel&&F.wrap.bind("mousewheel.fb",function(e,delta,deltaX,deltaY){for(var target=e.target||null,parent=$(target),canScroll=!1;parent.length&&!(canScroll||parent.is(".fancybox-skin")||parent.is(".fancybox-wrap"));)canScroll=isScrollable(parent[0]),parent=$(parent).parent();0===delta||canScroll||F.group.length>1&&!current.canShrink&&(deltaY>0||deltaX>0?F.prev(deltaY>0?"down":"left"):(0>deltaY||0>deltaX)&&F.next(0>deltaY?"up":"right"),e.preventDefault())}))},trigger:function(event,o){var ret,obj=o||F.coming||F.current;if(obj){if($.isFunction(obj[event])&&(ret=obj[event].apply(obj,Array.prototype.slice.call(arguments,1))),ret===!1)return!1;obj.helpers&&$.each(obj.helpers,function(helper,opts){opts&&F.helpers[helper]&&$.isFunction(F.helpers[helper][event])&&F.helpers[helper][event]($.extend(!0,{},F.helpers[helper].defaults,opts),obj)}),D.trigger(event)}},isImage:function(str){return isString(str)&&str.match(/(^data:image\/.*,)|(\.(jp(e|g|eg)|gif|png|bmp|webp|svg)((\?|#).*)?$)/i)},isSWF:function(str){return isString(str)&&str.match(/\.(swf)((\?|#).*)?$/i)},_start:function(index){var obj,href,type,margin,padding,coming={};if(index=getScalar(index),obj=F.group[index]||null,!obj)return!1;if(coming=$.extend(!0,{},F.opts,obj),margin=coming.margin,padding=coming.padding,"number"===$.type(margin)&&(coming.margin=[margin,margin,margin,margin]),"number"===$.type(padding)&&(coming.padding=[padding,padding,padding,padding]),coming.modal&&$.extend(!0,coming,{closeBtn:!1,closeClick:!1,nextClick:!1,arrows:!1,mouseWheel:!1,keys:null,helpers:{overlay:{closeClick:!1}}}),coming.autoSize&&(coming.autoWidth=coming.autoHeight=!0),"auto"===coming.width&&(coming.autoWidth=!0),"auto"===coming.height&&(coming.autoHeight=!0),coming.group=F.group,coming.index=index,F.coming=coming,!1===F.trigger("beforeLoad"))return F.coming=null,void 0;if(type=coming.type,href=coming.href,!type)return F.coming=null,F.current&&F.router&&"jumpto"!==F.router?(F.current.index=index,F[F.router](F.direction)):!1;if(F.isActive=!0,("image"===type||"swf"===type)&&(coming.autoHeight=coming.autoWidth=!1,coming.scrolling="visible"),"image"===type&&(coming.aspectRatio=!0),"iframe"===type&&isTouch&&(coming.scrolling="scroll"),coming.wrap=$(coming.tpl.wrap).addClass("fancybox-"+(isTouch?"mobile":"desktop")+" fancybox-type-"+type+" fancybox-tmp "+coming.wrapCSS).appendTo(coming.parent||"body"),$.extend(coming,{skin:$(".fancybox-skin",coming.wrap),outer:$(".fancybox-outer",coming.wrap),inner:$(".fancybox-inner",coming.wrap)}),$.each(["Top","Right","Bottom","Left"],function(i,v){coming.skin.css("padding"+v,getValue(coming.padding[i]))}),F.trigger("onReady"),"inline"===type||"html"===type){if(!coming.content||!coming.content.length)return F._error("content")}else if(!href)return F._error("href");"image"===type?F._loadImage():"ajax"===type?F._loadAjax():"iframe"===type?F._loadIframe():F._afterLoad()},_error:function(type){$.extend(F.coming,{type:"html",autoWidth:!0,autoHeight:!0,minWidth:0,minHeight:0,scrolling:"no",hasError:type,content:F.coming.tpl.error}),F._afterLoad()},_loadImage:function(){var img=F.imgPreload=new Image;img.onload=function(){this.onload=this.onerror=null,F.coming.width=this.width/F.opts.pixelRatio,F.coming.height=this.height/F.opts.pixelRatio,F._afterLoad()},img.onerror=function(){this.onload=this.onerror=null,F._error("image")},img.src=F.coming.href,img.complete!==!0&&F.showLoading()},_loadAjax:function(){var coming=F.coming;F.showLoading(),F.ajaxLoad=$.ajax($.extend({},coming.ajax,{url:coming.href,error:function(jqXHR,textStatus){F.coming&&"abort"!==textStatus?F._error("ajax",jqXHR):F.hideLoading()},success:function(data,textStatus){"success"===textStatus&&(coming.content=data,F._afterLoad())}}))},_loadIframe:function(){var coming=F.coming,iframe=$(coming.tpl.iframe.replace(/\{rnd\}/g,(new Date).getTime())).attr("scrolling",isTouch?"auto":coming.iframe.scrolling).attr("src",coming.href);$(coming.wrap).bind("onReset",function(){try{$(this).find("iframe").hide().attr("src","//about:blank").end().empty()}catch(e){}}),coming.iframe.preload&&(F.showLoading(),iframe.one("load",function(){$(this).data("ready",1),isTouch||$(this).bind("load.fb",F.update),$(this).parents(".fancybox-wrap").width("100%").removeClass("fancybox-tmp").show(),F._afterLoad()})),coming.content=iframe.appendTo(coming.inner),coming.iframe.preload||F._afterLoad()},_preloadImages:function(){var item,i,group=F.group,current=F.current,len=group.length,cnt=current.preload?Math.min(current.preload,len-1):0;for(i=1;cnt>=i;i+=1)item=group[(current.index+i)%len],"image"===item.type&&item.href&&((new Image).src=item.href)},_afterLoad:function(){var current,content,type,scrolling,href,embed,coming=F.coming,previous=F.current,placeholder="fancybox-placeholder";if(F.hideLoading(),coming&&F.isActive!==!1){if(!1===F.trigger("afterLoad",coming,previous))return coming.wrap.stop(!0).trigger("onReset").remove(),F.coming=null,void 0;switch(previous&&(F.trigger("beforeChange",previous),previous.wrap.stop(!0).removeClass("fancybox-opened").find(".fancybox-item, .fancybox-nav").remove()),F.unbindEvents(),current=coming,content=coming.content,type=coming.type,scrolling=coming.scrolling,$.extend(F,{wrap:current.wrap,skin:current.skin,outer:current.outer,inner:current.inner,current:current,previous:previous}),href=current.href,type){case"inline":case"ajax":case"html":current.selector?content=$("
").html(content).find(current.selector):isQuery(content)&&(content.data(placeholder)||content.data(placeholder,$('
').insertAfter(content).hide()),content=content.show().detach(),current.wrap.bind("onReset",function(){$(this).find(content).length&&content.hide().replaceAll(content.data(placeholder)).data(placeholder,!1)}));break;case"image":content=current.tpl.image.replace("{href}",href);break;case"swf":content='<object id="fancybox-swf" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="100%" height="100%"><param name="movie" value="'+href+'"></param>',embed="",$.each(current.swf,function(name,val){content+='<param name="'+name+'" value="'+val+'"></param>',embed+=" "+name+'="'+val+'"'}),content+='<embed src="'+href+'" type="application/x-shockwave-flash" width="100%" height="100%"'+embed+"></embed></object>"}isQuery(content)&&content.parent().is(current.inner)||current.inner.append(content),F.trigger("beforeShow"),current.inner.css("overflow","yes"===scrolling?"scroll":"no"===scrolling?"hidden":scrolling),F._setDimension(),F.reposition(),F.isOpen=!1,F.coming=null,F.bindEvents(),F.isOpened?previous.prevMethod&&F.transitions[previous.prevMethod]():$(".fancybox-wrap").not(current.wrap).stop(!0).trigger("onReset").remove(),F.transitions[F.isOpened?current.nextMethod:current.openMethod](),F._preloadImages()}},_setDimension:function(){var wPadding,hPadding,wSpace,hSpace,origWidth,origHeight,origMaxWidth,origMaxHeight,ratio,width_,height_,maxWidth_,maxHeight_,iframe,body,viewport=F.getViewport(),steps=0,canShrink=!1,canExpand=!1,wrap=F.wrap,skin=F.skin,inner=F.inner,current=F.current,width=current.width,height=current.height,minWidth=current.minWidth,minHeight=current.minHeight,maxWidth=current.maxWidth,maxHeight=current.maxHeight,scrolling=current.scrolling,scrollOut=current.scrollOutside?current.scrollbarWidth:0,margin=current.margin,wMargin=getScalar(margin[1]+margin[3]),hMargin=getScalar(margin[0]+margin[2]);if(wrap.add(skin).add(inner).width("auto").height("auto").removeClass("fancybox-tmp"),wPadding=getScalar(skin.outerWidth(!0)-skin.width()),hPadding=getScalar(skin.outerHeight(!0)-skin.height()),wSpace=wMargin+wPadding,hSpace=hMargin+hPadding,origWidth=isPercentage(width)?(viewport.w-wSpace)*getScalar(width)/100:width,origHeight=isPercentage(height)?(viewport.h-hSpace)*getScalar(height)/100:height,"iframe"===current.type){if(iframe=current.content,current.autoHeight&&1===iframe.data("ready"))try{iframe[0].contentWindow.document.location&&(inner.width(origWidth).height(9999),body=iframe.contents().find("body"),scrollOut&&body.css("overflow-x","hidden"),origHeight=body.outerHeight(!0))}catch(e){}}else(current.autoWidth||current.autoHeight)&&(inner.addClass("fancybox-tmp"),current.autoWidth||inner.width(origWidth),current.autoHeight||inner.height(origHeight),current.autoWidth&&(origWidth=inner.width()),current.autoHeight&&(origHeight=inner.height()),inner.removeClass("fancybox-tmp"));if(width=getScalar(origWidth),height=getScalar(origHeight),ratio=origWidth/origHeight,minWidth=getScalar(isPercentage(minWidth)?getScalar(minWidth,"w")-wSpace:minWidth),maxWidth=getScalar(isPercentage(maxWidth)?getScalar(maxWidth,"w")-wSpace:maxWidth),minHeight=getScalar(isPercentage(minHeight)?getScalar(minHeight,"h")-hSpace:minHeight),maxHeight=getScalar(isPercentage(maxHeight)?getScalar(maxHeight,"h")-hSpace:maxHeight),origMaxWidth=maxWidth,origMaxHeight=maxHeight,current.fitToView&&(maxWidth=Math.min(viewport.w-wSpace,maxWidth),maxHeight=Math.min(viewport.h-hSpace,maxHeight)),maxWidth_=viewport.w-wMargin,maxHeight_=viewport.h-hMargin,current.aspectRatio?(width>maxWidth&&(width=maxWidth,height=getScalar(width/ratio)),height>maxHeight&&(height=maxHeight,width=getScalar(height*ratio)),minWidth>width&&(width=minWidth,height=getScalar(width/ratio)),minHeight>height&&(height=minHeight,width=getScalar(height*ratio))):(width=Math.max(minWidth,Math.min(width,maxWidth)),current.autoHeight&&"iframe"!==current.type&&(inner.width(width),height=inner.height()),height=Math.max(minHeight,Math.min(height,maxHeight))),current.fitToView)if(inner.width(width).height(height),wrap.width(width+wPadding),width_=wrap.width(),height_=wrap.height(),current.aspectRatio)for(;(width_>maxWidth_||height_>maxHeight_)&&width>minWidth&&height>minHeight&&!(steps++>19);)height=Math.max(minHeight,Math.min(maxHeight,height-10)),width=getScalar(height*ratio),minWidth>width&&(width=minWidth,height=getScalar(width/ratio)),width>maxWidth&&(width=maxWidth,height=getScalar(width/ratio)),inner.width(width).height(height),wrap.width(width+wPadding),width_=wrap.width(),height_=wrap.height();else width=Math.max(minWidth,Math.min(width,width-(width_-maxWidth_))),height=Math.max(minHeight,Math.min(height,height-(height_-maxHeight_)));scrollOut&&"auto"===scrolling&&origHeight>height&&maxWidth_>width+wPadding+scrollOut&&(width+=scrollOut),inner.width(width).height(height),wrap.width(width+wPadding),width_=wrap.width(),height_=wrap.height(),canShrink=(width_>maxWidth_||height_>maxHeight_)&&width>minWidth&&height>minHeight,canExpand=current.aspectRatio?origMaxWidth>width&&origMaxHeight>height&&origWidth>width&&origHeight>height:(origMaxWidth>width||origMaxHeight>height)&&(origWidth>width||origHeight>height),$.extend(current,{dim:{width:getValue(width_),height:getValue(height_)},origWidth:origWidth,origHeight:origHeight,canShrink:canShrink,canExpand:canExpand,wPadding:wPadding,hPadding:hPadding,wrapSpace:height_-skin.outerHeight(!0),skinSpace:skin.height()-height}),!iframe&&current.autoHeight&&height>minHeight&&maxHeight>height&&!canExpand&&inner.height("auto")},_getPosition:function(onlyAbsolute){var current=F.current,viewport=F.getViewport(),margin=current.margin,width=F.wrap.width()+margin[1]+margin[3],height=F.wrap.height()+margin[0]+margin[2],rez={position:"absolute",top:margin[0],left:margin[3]};return current.autoCenter&&current.fixed&&!onlyAbsolute&&height<=viewport.h&&width<=viewport.w?rez.position="fixed":current.locked||(rez.top+=viewport.y,rez.left+=viewport.x),rez.top=getValue(Math.max(rez.top,rez.top+(viewport.h-height)*current.topRatio)),rez.left=getValue(Math.max(rez.left,rez.left+(viewport.w-width)*current.leftRatio)),rez},_afterZoomIn:function(){var current=F.current;current&&(F.isOpen=F.isOpened=!0,F.wrap.css("overflow","visible").addClass("fancybox-opened"),F.update(),(current.closeClick||current.nextClick&&F.group.length>1)&&F.inner.css("cursor","pointer").bind("click.fb",function(e){$(e.target).is("a")||$(e.target).parent().is("a")||(e.preventDefault(),F[current.closeClick?"close":"next"]())}),current.closeBtn&&$(current.tpl.closeBtn).appendTo(F.skin).bind("click.fb",function(e){e.preventDefault(),F.close()}),current.arrows&&F.group.length>1&&((current.loop||current.index>0)&&$(current.tpl.prev).appendTo(F.outer).bind("click.fb",F.prev),(current.loop||current.index<F.group.length-1)&&$(current.tpl.next).appendTo(F.outer).bind("click.fb",F.next)),F.trigger("afterShow"),current.loop||current.index!==current.group.length-1?F.opts.autoPlay&&!F.player.isActive&&(F.opts.autoPlay=!1,F.play()):F.play(!1))},_afterZoomOut:function(obj){obj=obj||F.current,$(".fancybox-wrap").trigger("onReset").remove(),$.extend(F,{group:{},opts:{},router:!1,current:null,isActive:!1,isOpened:!1,isOpen:!1,isClosing:!1,wrap:null,skin:null,outer:null,inner:null}),F.trigger("afterClose",obj)}}),F.transitions={getOrigPosition:function(){var current=F.current,element=current.element,orig=current.orig,pos={},width=50,height=50,hPadding=current.hPadding,wPadding=current.wPadding,viewport=F.getViewport();return!orig&&current.isDom&&element.is(":visible")&&(orig=element.find("img:first"),orig.length||(orig=element)),isQuery(orig)?(pos=orig.offset(),orig.is("img")&&(width=orig.outerWidth(),height=orig.outerHeight())):(pos.top=viewport.y+(viewport.h-height)*current.topRatio,pos.left=viewport.x+(viewport.w-width)*current.leftRatio),("fixed"===F.wrap.css("position")||current.locked)&&(pos.top-=viewport.y,pos.left-=viewport.x),pos={top:getValue(pos.top-hPadding*current.topRatio),left:getValue(pos.left-wPadding*current.leftRatio),width:getValue(width+wPadding),height:getValue(height+hPadding)}},step:function(now,fx){var ratio,padding,value,prop=fx.prop,current=F.current,wrapSpace=current.wrapSpace,skinSpace=current.skinSpace;("width"===prop||"height"===prop)&&(ratio=fx.end===fx.start?1:(now-fx.start)/(fx.end-fx.start),F.isClosing&&(ratio=1-ratio),padding="width"===prop?current.wPadding:current.hPadding,value=now-padding,F.skin[prop](getScalar("width"===prop?value:value-wrapSpace*ratio)),F.inner[prop](getScalar("width"===prop?value:value-wrapSpace*ratio-skinSpace*ratio)))},zoomIn:function(){var current=F.current,startPos=current.pos,effect=current.openEffect,elastic="elastic"===effect,endPos=$.extend({opacity:1},startPos);delete endPos.position,elastic?(startPos=this.getOrigPosition(),current.openOpacity&&(startPos.opacity=.1)):"fade"===effect&&(startPos.opacity=.1),F.wrap.css(startPos).animate(endPos,{duration:"none"===effect?0:current.openSpeed,easing:current.openEasing,step:elastic?this.step:null,complete:F._afterZoomIn})},zoomOut:function(){var current=F.current,effect=current.closeEffect,elastic="elastic"===effect,endPos={opacity:.1};elastic&&(endPos=this.getOrigPosition(),current.closeOpacity&&(endPos.opacity=.1)),F.wrap.animate(endPos,{duration:"none"===effect?0:current.closeSpeed,easing:current.closeEasing,step:elastic?this.step:null,complete:F._afterZoomOut})},changeIn:function(){var field,current=F.current,effect=current.nextEffect,startPos=current.pos,endPos={opacity:1},direction=F.direction,distance=200;startPos.opacity=.1,"elastic"===effect&&(field="down"===direction||"up"===direction?"top":"left","down"===direction||"right"===direction?(startPos[field]=getValue(getScalar(startPos[field])-distance),endPos[field]="+="+distance+"px"):(startPos[field]=getValue(getScalar(startPos[field])+distance),endPos[field]="-="+distance+"px")),"none"===effect?F._afterZoomIn():F.wrap.css(startPos).animate(endPos,{duration:current.nextSpeed,easing:current.nextEasing,complete:F._afterZoomIn})},changeOut:function(){var previous=F.previous,effect=previous.prevEffect,endPos={opacity:.1},direction=F.direction,distance=200;"elastic"===effect&&(endPos["down"===direction||"up"===direction?"top":"left"]=("up"===direction||"left"===direction?"-":"+")+"="+distance+"px"),previous.wrap.animate(endPos,{duration:"none"===effect?0:previous.prevSpeed,easing:previous.prevEasing,complete:function(){$(this).trigger("onReset").remove()}})}},F.helpers.overlay={defaults:{closeClick:!0,speedOut:200,showEarly:!0,css:{},locked:!isTouch,fixed:!0},overlay:null,fixed:!1,el:$("html"),create:function(opts){opts=$.extend({},this.defaults,opts),this.overlay&&this.close(),this.overlay=$('
').appendTo(F.coming?F.coming.parent:opts.parent),this.fixed=!1,opts.fixed&&F.defaults.fixed&&(this.overlay.addClass("fancybox-overlay-fixed"),this.fixed=!0)},open:function(opts){var that=this;opts=$.extend({},this.defaults,opts),this.overlay?this.overlay.unbind(".overlay").width("auto").height("auto"):this.create(opts),this.fixed||(W.bind("resize.overlay",$.proxy(this.update,this)),this.update()),opts.closeClick&&this.overlay.bind("click.overlay",function(e){return $(e.target).hasClass("fancybox-overlay")?(F.isActive?F.close():that.close(),!1):void 0}),this.overlay.css(opts.css).show()},close:function(){var scrollV,scrollH;W.unbind("resize.overlay"),this.el.hasClass("fancybox-lock")&&($(".fancybox-margin").removeClass("fancybox-margin"),scrollV=W.scrollTop(),scrollH=W.scrollLeft(),this.el.removeClass("fancybox-lock"),W.scrollTop(scrollV).scrollLeft(scrollH)),$(".fancybox-overlay").remove().hide(),$.extend(this,{overlay:null,fixed:!1})},update:function(){var offsetWidth,width="100%";this.overlay.width(width).height("100%"),IE?(offsetWidth=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth),D.width()>offsetWidth&&(width=D.width())):D.width()>W.width()&&(width=D.width()),this.overlay.width(width).height(D.height())},onReady:function(opts,obj){var overlay=this.overlay;$(".fancybox-overlay").stop(!0,!0),overlay||this.create(opts),opts.locked&&this.fixed&&obj.fixed&&(overlay||(this.margin=D.height()>W.height()?$("html").css("margin-right").replace("px",""):!1),obj.locked=this.overlay.append(obj.wrap),obj.fixed=!1),opts.showEarly===!0&&this.beforeShow.apply(this,arguments)},beforeShow:function(opts,obj){var scrollV,scrollH;obj.locked&&(this.margin!==!1&&($("*").filter(function(){return"fixed"===$(this).css("position")&&!$(this).hasClass("fancybox-overlay")&&!$(this).hasClass("fancybox-wrap")}).addClass("fancybox-margin"),this.el.addClass("fancybox-margin")),scrollV=W.scrollTop(),scrollH=W.scrollLeft(),this.el.addClass("fancybox-lock"),W.scrollTop(scrollV).scrollLeft(scrollH)),this.open(opts)},onUpdate:function(){this.fixed||this.update()},afterClose:function(opts){this.overlay&&!F.coming&&this.overlay.fadeOut(opts.speedOut,$.proxy(this.close,this))}},F.helpers.title={defaults:{type:"float",position:"bottom"},beforeShow:function(opts){var title,target,current=F.current,text=current.title,type=opts.type;if($.isFunction(text)&&(text=text.call(current.element,current)),isString(text)&&""!==$.trim(text)){switch(title=$('
'+text+"
"),type){case"inside":target=F.skin;break;case"outside":target=F.wrap;break;case"over":target=F.inner;break;default:target=F.skin,title.appendTo("body"),IE&&title.width(title.width()),title.wrapInner(''),F.current.margin[2]+=Math.abs(getScalar(title.css("margin-bottom")))}title["top"===opts.position?"prependTo":"appendTo"](target)}}},$.fn.fancybox=function(options){var index,that=$(this),selector=this.selector||"",run=function(e){var relType,relVal,what=$(this).blur(),idx=index;e.ctrlKey||e.altKey||e.shiftKey||e.metaKey||what.is(".fancybox-wrap")||(relType=options.groupAttr||"data-fancybox-group",relVal=what.attr(relType),relVal||(relType="rel",relVal=what.get(0)[relType]),relVal&&""!==relVal&&"nofollow"!==relVal&&(what=selector.length?$(selector):that,what=what.filter("["+relType+'="'+relVal+'"]'),idx=what.index(this)),options.index=idx,F.open(what,options)!==!1&&e.preventDefault())};return options=options||{},index=options.index||0,selector&&options.live!==!1?D.undelegate(selector,"click.fb-start").delegate(selector+":not('.fancybox-item, .fancybox-nav')","click.fb-start",run):that.unbind("click.fb-start").bind("click.fb-start",run),this.filter("[data-fancybox-start=1]").trigger("click"),this},D.ready(function(){var w1,w2;$.scrollbarWidth===undefined&&($.scrollbarWidth=function(){var parent=$('
<div/>
').appendTo("body"),child=parent.children(),width=child.innerWidth()-child.height(99).innerWidth();return parent.remove(),width}),$.support.fixedPosition===undefined&&($.support.fixedPosition=function(){var elem=$('
').appendTo("body"),fixed=20===elem[0].offsetTop||15===elem[0].offsetTop;return elem.remove(),fixed}()),$.extend(F.defaults,{scrollbarWidth:$.scrollbarWidth(),fixed:$.support.fixedPosition,parent:$("body")}),w1=$(window).width(),H.addClass("fancybox-lock-test"),w2=$(window).width(),H.removeClass("fancybox-lock-test"),$("<style type='text/css'>.fancybox-margin{margin-right:"+(w2-w1)+"px;}</style>").appendTo("head")})}(window,document,jQuery),function($){$.flexslider=function(el,options){var slider=$(el);slider.vars=$.extend({},$.flexslider.defaults,options);var watchedEventClearTimer,namespace=slider.vars.namespace,msGesture=window.navigator&&window.navigator.msPointerEnabled&&window.MSGesture,touch=("ontouchstart"in window||msGesture||window.DocumentTouch&&document instanceof DocumentTouch)&&slider.vars.touch,eventType="click touchend MSPointerUp",watchedEvent="",vertical="vertical"===slider.vars.direction,reverse=slider.vars.reverse,carousel=slider.vars.itemWidth>0,fade="fade"===slider.vars.animation,asNav=""!==slider.vars.asNavFor,methods={},focused=!0;$.data(el,"flexslider",slider),methods={init:function(){slider.animating=!1,slider.currentSlide=parseInt(slider.vars.startAt?slider.vars.startAt:0),isNaN(slider.currentSlide)&&(slider.currentSlide=0),slider.animatingTo=slider.currentSlide,slider.atEnd=0===slider.currentSlide||slider.currentSlide===slider.last,slider.containerSelector=slider.vars.selector.substr(0,slider.vars.selector.search(" ")),slider.slides=$(slider.vars.selector,slider),slider.container=$(slider.containerSelector,slider),slider.count=slider.slides.length,slider.syncExists=$(slider.vars.sync).length>0,"slide"===slider.vars.animation&&(slider.vars.animation="swing"),slider.prop=vertical?"top":"marginLeft",slider.args={},slider.manualPause=!1,slider.stopped=!1,slider.started=!1,slider.startTimeout=null,slider.transitions=!slider.vars.video&&!fade&&slider.vars.useCSS&&function(){var obj=document.createElement("div"),props=["perspectiveProperty","WebkitPerspective","MozPerspective","OPerspective","msPerspective"];for(var i in props)if(void 0!==obj.style[props[i]])return slider.pfx=props[i].replace("Perspective","").toLowerCase(),slider.prop="-"+slider.pfx+"-transform",!0;return!1}(),""!==slider.vars.controlsContainer&&(slider.controlsContainer=$(slider.vars.controlsContainer).length>0&&$(slider.vars.controlsContainer)),""!==slider.vars.manualControls&&(slider.manualControls=$(slider.vars.manualControls).length>0&&$(slider.vars.manualControls)),slider.vars.randomize&&(slider.slides.sort(function(){return Math.round(Math.random())-.5}),slider.container.empty().append(slider.slides)),slider.doMath(),slider.setup("init"),slider.vars.controlNav&&methods.controlNav.setup(),slider.vars.directionNav&&methods.directionNav.setup(),slider.vars.keyboard&&(1===$(slider.containerSelector).length||slider.vars.multipleKeyboard)&&$(document).bind("keyup",function(event){var keycode=event.keyCode;if(!slider.animating&&(39===keycode||37===keycode)){var target=39===keycode?slider.getTarget("next"):37===keycode?slider.getTarget("prev"):!1;slider.flexAnimate(target,slider.vars.pauseOnAction)}}),slider.vars.mousewheel&&slider.bind("mousewheel",function(event,delta){event.preventDefault();var target=0>delta?slider.getTarget("next"):slider.getTarget("prev");slider.flexAnimate(target,slider.vars.pauseOnAction)}),slider.vars.pausePlay&&methods.pausePlay.setup(),slider.vars.slideshow&&slider.vars.pauseInvisible&&methods.pauseInvisible.init(),slider.vars.slideshow&&(slider.vars.pauseOnHover&&slider.hover(function(){slider.manualPlay||slider.manualPause||slider.pause()},function(){slider.manualPause||slider.manualPlay||slider.stopped||slider.play()}),slider.vars.pauseInvisible&&methods.pauseInvisible.isHidden()||(slider.vars.initDelay>0?slider.startTimeout=setTimeout(slider.play,slider.vars.initDelay):slider.play())),asNav&&methods.asNav.setup(),touch&&slider.vars.touch&&methods.touch(),(!fade||fade&&slider.vars.smoothHeight)&&$(window).bind("resize orientationchange focus",methods.resize),slider.find("img").attr("draggable","false"),setTimeout(function(){slider.vars.start(slider)},200)},asNav:{setup:function(){slider.asNav=!0,slider.animatingTo=Math.floor(slider.currentSlide/slider.move),slider.currentItem=slider.currentSlide,slider.slides.removeClass(namespace+"active-slide").eq(slider.currentItem).addClass(namespace+"active-slide"),msGesture?(el._slider=slider,slider.slides.each(function(){var that=this;that._gesture=new MSGesture,that._gesture.target=that,that.addEventListener("MSPointerDown",function(e){e.preventDefault(),e.currentTarget._gesture&&e.currentTarget._gesture.addPointer(e.pointerId)},!1),that.addEventListener("MSGestureTap",function(e){e.preventDefault();var $slide=$(this),target=$slide.index();$(slider.vars.asNavFor).data("flexslider").animating||$slide.hasClass("active")||(slider.direction=slider.currentItem<target?"next":"prev",slider.flexAnimate(target,slider.vars.pauseOnAction,!1,!0,!0))})})):slider.slides.click(function(e){e.preventDefault();var $slide=$(this),target=$slide.index(),posFromLeft=$slide.offset().left-$(slider).scrollLeft();0>=posFromLeft&&$slide.hasClass(namespace+"active-slide")?slider.flexAnimate(slider.getTarget("prev"),!0):$(slider.vars.asNavFor).data("flexslider").animating||$slide.hasClass(namespace+"active-slide")||(slider.direction=slider.currentItem<target?"next":"prev",slider.flexAnimate(target,slider.vars.pauseOnAction,!1,!0,!0))})}},controlNav:{setup:function(){slider.manualControls?methods.controlNav.setupManual():methods.controlNav.setupPaging()},setupPaging:function(){var item,slide,type="thumbnails"===slider.vars.controlNav?"control-thumbs":"control-paging",j=1;if(slider.controlNavScaffold=$('
    '),slider.pagingCount>1)for(var i=0;i<slider.pagingCount;i++){if(slide=slider.slides.eq(i),item="thumbnails"===slider.vars.controlNav?'<img src="'+slide.attr("data-thumb")+'"/>':"<a>"+j+"</a>","thumbnails"===slider.vars.controlNav&&!0===slider.vars.thumbCaptions){var captn=slide.attr("data-thumbcaption");""!=captn&&void 0!=captn&&(item+=''+captn+"")}slider.controlNavScaffold.append("
  1. "+item+"
  2. "),j++}slider.controlsContainer?$(slider.controlsContainer).append(slider.controlNavScaffold):slider.append(slider.controlNavScaffold),methods.controlNav.set(),methods.controlNav.active(),slider.controlNavScaffold.delegate("a, img",eventType,function(event){if(event.preventDefault(),""===watchedEvent||watchedEvent===event.type){var $this=$(this),target=slider.controlNav.index($this);$this.hasClass(namespace+"active")||(slider.direction=target>slider.currentSlide?"next":"prev",slider.flexAnimate(target,slider.vars.pauseOnAction))}""===watchedEvent&&(watchedEvent=event.type),methods.setToClearWatchedEvent()})},setupManual:function(){slider.controlNav=slider.manualControls,methods.controlNav.active(),slider.controlNav.bind(eventType,function(event){if(event.preventDefault(),""===watchedEvent||watchedEvent===event.type){var $this=$(this),target=slider.controlNav.index($this); $this.hasClass(namespace+"active")||(slider.direction=target>slider.currentSlide?"next":"prev",slider.flexAnimate(target,slider.vars.pauseOnAction))}""===watchedEvent&&(watchedEvent=event.type),methods.setToClearWatchedEvent()})},set:function(){var selector="thumbnails"===slider.vars.controlNav?"img":"a";slider.controlNav=$("."+namespace+"control-nav li "+selector,slider.controlsContainer?slider.controlsContainer:slider)},active:function(){slider.controlNav.removeClass(namespace+"active").eq(slider.animatingTo).addClass(namespace+"active")},update:function(action,pos){slider.pagingCount>1&&"add"===action?slider.controlNavScaffold.append($("
  3. <a>"+slider.count+"</a>
  4. ")):1===slider.pagingCount?slider.controlNavScaffold.find("li").remove():slider.controlNav.eq(pos).closest("li").remove(),methods.controlNav.set(),slider.pagingCount>1&&slider.pagingCount!==slider.controlNav.length?slider.update(pos,action):methods.controlNav.active()}},directionNav:{setup:function(){var directionNavScaffold=$('
    • <a class="'+namespace+'prev" href="#">'+slider.vars.prevText+'</a>
    • <a class="'+namespace+'next" href="#">'+slider.vars.nextText+"</a>
    ");slider.controlsContainer?($(slider.controlsContainer).append(directionNavScaffold),slider.directionNav=$("."+namespace+"direction-nav li a",slider.controlsContainer)):(slider.append(directionNavScaffold),slider.directionNav=$("."+namespace+"direction-nav li a",slider)),methods.directionNav.update(),slider.directionNav.bind(eventType,function(event){event.preventDefault();var target;(""===watchedEvent||watchedEvent===event.type)&&(target=$(this).hasClass(namespace+"next")?slider.getTarget("next"):slider.getTarget("prev"),slider.flexAnimate(target,slider.vars.pauseOnAction)),""===watchedEvent&&(watchedEvent=event.type),methods.setToClearWatchedEvent()})},update:function(){var disabledClass=namespace+"disabled";1===slider.pagingCount?slider.directionNav.addClass(disabledClass).attr("tabindex","-1"):slider.vars.animationLoop?slider.directionNav.removeClass(disabledClass).removeAttr("tabindex"):0===slider.animatingTo?slider.directionNav.removeClass(disabledClass).filter("."+namespace+"prev").addClass(disabledClass).attr("tabindex","-1"):slider.animatingTo===slider.last?slider.directionNav.removeClass(disabledClass).filter("."+namespace+"next").addClass(disabledClass).attr("tabindex","-1"):slider.directionNav.removeClass(disabledClass).removeAttr("tabindex")}},pausePlay:{setup:function(){var pausePlayScaffold=$('
    <a></a>
    ');slider.controlsContainer?(slider.controlsContainer.append(pausePlayScaffold),slider.pausePlay=$("."+namespace+"pauseplay a",slider.controlsContainer)):(slider.append(pausePlayScaffold),slider.pausePlay=$("."+namespace+"pauseplay a",slider)),methods.pausePlay.update(slider.vars.slideshow?namespace+"pause":namespace+"play"),slider.pausePlay.bind(eventType,function(event){event.preventDefault(),(""===watchedEvent||watchedEvent===event.type)&&($(this).hasClass(namespace+"pause")?(slider.manualPause=!0,slider.manualPlay=!1,slider.pause()):(slider.manualPause=!1,slider.manualPlay=!0,slider.play())),""===watchedEvent&&(watchedEvent=event.type),methods.setToClearWatchedEvent()})},update:function(state){"play"===state?slider.pausePlay.removeClass(namespace+"pause").addClass(namespace+"play").html(slider.vars.playText):slider.pausePlay.removeClass(namespace+"play").addClass(namespace+"pause").html(slider.vars.pauseText)}},touch:function(){function onTouchStart(e){slider.animating?e.preventDefault():(window.navigator.msPointerEnabled||1===e.touches.length)&&(slider.pause(),cwidth=vertical?slider.h:slider.w,startT=Number(new Date),localX=e.touches[0].pageX,localY=e.touches[0].pageY,offset=carousel&&reverse&&slider.animatingTo===slider.last?0:carousel&&reverse?slider.limit-(slider.itemW+slider.vars.itemMargin)*slider.move*slider.animatingTo:carousel&&slider.currentSlide===slider.last?slider.limit:carousel?(slider.itemW+slider.vars.itemMargin)*slider.move*slider.currentSlide:reverse?(slider.last-slider.currentSlide+slider.cloneOffset)*cwidth:(slider.currentSlide+slider.cloneOffset)*cwidth,startX=vertical?localY:localX,startY=vertical?localX:localY,el.addEventListener("touchmove",onTouchMove,!1),el.addEventListener("touchend",onTouchEnd,!1))}function onTouchMove(e){localX=e.touches[0].pageX,localY=e.touches[0].pageY,dx=vertical?startX-localY:startX-localX,scrolling=vertical?Math.abs(dx)<Math.abs(localX-startY):Math.abs(dx)<Math.abs(localY-startY);var fxms=500;(!scrolling||Number(new Date)-startT>fxms)&&(e.preventDefault(),!fade&&slider.transitions&&(slider.vars.animationLoop||(dx/=0===slider.currentSlide&&0>dx||slider.currentSlide===slider.last&&dx>0?Math.abs(dx)/cwidth+2:1),slider.setProps(offset+dx,"setTouch")))}function onTouchEnd(){if(el.removeEventListener("touchmove",onTouchMove,!1),slider.animatingTo===slider.currentSlide&&!scrolling&&null!==dx){var updateDx=reverse?-dx:dx,target=updateDx>0?slider.getTarget("next"):slider.getTarget("prev");slider.canAdvance(target)&&(Number(new Date)-startT<550&&Math.abs(updateDx)>50||Math.abs(updateDx)>cwidth/2)?slider.flexAnimate(target,slider.vars.pauseOnAction):fade||slider.flexAnimate(slider.currentSlide,slider.vars.pauseOnAction,!0)}el.removeEventListener("touchend",onTouchEnd,!1),startX=null,startY=null,dx=null,offset=null}function onMSPointerDown(e){e.stopPropagation(),slider.animating?e.preventDefault():(slider.pause(),el._gesture.addPointer(e.pointerId),accDx=0,cwidth=vertical?slider.h:slider.w,startT=Number(new Date),offset=carousel&&reverse&&slider.animatingTo===slider.last?0:carousel&&reverse?slider.limit-(slider.itemW+slider.vars.itemMargin)*slider.move*slider.animatingTo:carousel&&slider.currentSlide===slider.last?slider.limit:carousel?(slider.itemW+slider.vars.itemMargin)*slider.move*slider.currentSlide:reverse?(slider.last-slider.currentSlide+slider.cloneOffset)*cwidth:(slider.currentSlide+slider.cloneOffset)*cwidth)}function onMSGestureChange(e){e.stopPropagation();var slider=e.target._slider;if(slider){var transX=-e.translationX,transY=-e.translationY;return accDx+=vertical?transY:transX,dx=accDx,scrolling=vertical?Math.abs(accDx)<Math.abs(-transX):Math.abs(accDx)<Math.abs(-transY),e.detail===e.MSGESTURE_FLAG_INERTIA?(setImmediate(function(){el._gesture.stop()}),void 0):((!scrolling||Number(new Date)-startT>500)&&(e.preventDefault(),!fade&&slider.transitions&&(slider.vars.animationLoop||(dx=accDx/(0===slider.currentSlide&&0>accDx||slider.currentSlide===slider.last&&accDx>0?Math.abs(accDx)/cwidth+2:1)),slider.setProps(offset+dx,"setTouch"))),void 0)}}function onMSGestureEnd(e){e.stopPropagation();var slider=e.target._slider;if(slider){if(slider.animatingTo===slider.currentSlide&&!scrolling&&null!==dx){var updateDx=reverse?-dx:dx,target=updateDx>0?slider.getTarget("next"):slider.getTarget("prev");slider.canAdvance(target)&&(Number(new Date)-startT<550&&Math.abs(updateDx)>50||Math.abs(updateDx)>cwidth/2)?slider.flexAnimate(target,slider.vars.pauseOnAction):fade||slider.flexAnimate(slider.currentSlide,slider.vars.pauseOnAction,!0)}startX=null,startY=null,dx=null,offset=null,accDx=0}}var startX,startY,offset,cwidth,dx,startT,scrolling=!1,localX=0,localY=0,accDx=0;msGesture?(el.style.msTouchAction="none",el._gesture=new MSGesture,el._gesture.target=el,el.addEventListener("MSPointerDown",onMSPointerDown,!1),el._slider=slider,el.addEventListener("MSGestureChange",onMSGestureChange,!1),el.addEventListener("MSGestureEnd",onMSGestureEnd,!1)):el.addEventListener("touchstart",onTouchStart,!1)},resize:function(){!slider.animating&&slider.is(":visible")&&(carousel||slider.doMath(),fade?methods.smoothHeight():carousel?(slider.slides.width(slider.computedW),slider.update(slider.pagingCount),slider.setProps()):vertical?(slider.viewport.height(slider.h),slider.setProps(slider.h,"setTotal")):(slider.vars.smoothHeight&&methods.smoothHeight(),slider.newSlides.width(slider.computedW),slider.setProps(slider.computedW,"setTotal")))},smoothHeight:function(dur){if(!vertical||fade){var $obj=fade?slider:slider.viewport;dur?$obj.animate({height:slider.slides.eq(slider.animatingTo).height()},dur):$obj.height(slider.slides.eq(slider.animatingTo).height())}},sync:function(action){var $obj=$(slider.vars.sync).data("flexslider"),target=slider.animatingTo;switch(action){case"animate":$obj.flexAnimate(target,slider.vars.pauseOnAction,!1,!0);break;case"play":$obj.playing||$obj.asNav||$obj.play();break;case"pause":$obj.pause()}},pauseInvisible:{visProp:null,init:function(){var prefixes=["webkit","moz","ms","o"];if("hidden"in document)return"hidden";for(var i=0;i<prefixes.length;i++)prefixes[i]+"Hidden"in document&&(methods.pauseInvisible.visProp=prefixes[i]+"Hidden");if(methods.pauseInvisible.visProp){var evtname=methods.pauseInvisible.visProp.replace(/[H|h]idden/,"")+"visibilitychange";document.addEventListener(evtname,function(){methods.pauseInvisible.isHidden()?slider.startTimeout?clearTimeout(slider.startTimeout):slider.pause():slider.started?slider.play():slider.vars.initDelay>0?setTimeout(slider.play,slider.vars.initDelay):slider.play()})}},isHidden:function(){return document[methods.pauseInvisible.visProp]||!1}},setToClearWatchedEvent:function(){clearTimeout(watchedEventClearTimer),watchedEventClearTimer=setTimeout(function(){watchedEvent=""},3e3)}},slider.flexAnimate=function(target,pause,override,withSync,fromNav){if(slider.vars.animationLoop||target===slider.currentSlide||(slider.direction=target>slider.currentSlide?"next":"prev"),asNav&&1===slider.pagingCount&&(slider.direction=slider.currentItem<target?"next":"prev"),!slider.animating&&(slider.canAdvance(target,fromNav)||override)&&slider.is(":visible")){if(asNav&&withSync){var master=$(slider.vars.asNavFor).data("flexslider");if(slider.atEnd=0===target||target===slider.count-1,master.flexAnimate(target,!0,!1,!0,fromNav),slider.direction=slider.currentItem<target?"next":"prev",master.direction=slider.direction,Math.ceil((target+1)/slider.visible)-1===slider.currentSlide||0===target)return slider.currentItem=target,slider.slides.removeClass(namespace+"active-slide").eq(target).addClass(namespace+"active-slide"),!1;slider.currentItem=target,slider.slides.removeClass(namespace+"active-slide").eq(target).addClass(namespace+"active-slide"),target=Math.floor(target/slider.visible)}if(slider.animating=!0,slider.animatingTo=target,pause&&slider.pause(),slider.vars.before(slider),slider.syncExists&&!fromNav&&methods.sync("animate"),slider.vars.controlNav&&methods.controlNav.active(),carousel||slider.slides.removeClass(namespace+"active-slide").eq(target).addClass(namespace+"active-slide"),slider.atEnd=0===target||target===slider.last,slider.vars.directionNav&&methods.directionNav.update(),target===slider.last&&(slider.vars.end(slider),slider.vars.animationLoop||slider.pause()),fade)touch?(slider.slides.eq(slider.currentSlide).css({opacity:0,zIndex:1}),slider.slides.eq(target).css({opacity:1,zIndex:2}),slider.wrapup(dimension)):(slider.slides.eq(slider.currentSlide).css({zIndex:1}).animate({opacity:0},slider.vars.animationSpeed,slider.vars.easing),slider.slides.eq(target).css({zIndex:2}).animate({opacity:1},slider.vars.animationSpeed,slider.vars.easing,slider.wrapup));else{var margin,slideString,calcNext,dimension=vertical?slider.slides.filter(":first").height():slider.computedW;carousel?(margin=slider.vars.itemMargin,calcNext=(slider.itemW+margin)*slider.move*slider.animatingTo,slideString=calcNext>slider.limit&&1!==slider.visible?slider.limit:calcNext):slideString=0===slider.currentSlide&&target===slider.count-1&&slider.vars.animationLoop&&"next"!==slider.direction?reverse?(slider.count+slider.cloneOffset)*dimension:0:slider.currentSlide===slider.last&&0===target&&slider.vars.animationLoop&&"prev"!==slider.direction?reverse?0:(slider.count+1)*dimension:reverse?(slider.count-1-target+slider.cloneOffset)*dimension:(target+slider.cloneOffset)*dimension,slider.setProps(slideString,"",slider.vars.animationSpeed),slider.transitions?(slider.vars.animationLoop&&slider.atEnd||(slider.animating=!1,slider.currentSlide=slider.animatingTo),slider.container.unbind("webkitTransitionEnd transitionend"),slider.container.bind("webkitTransitionEnd transitionend",function(){slider.wrapup(dimension)})):slider.container.animate(slider.args,slider.vars.animationSpeed,slider.vars.easing,function(){slider.wrapup(dimension)})}slider.vars.smoothHeight&&methods.smoothHeight(slider.vars.animationSpeed)}},slider.wrapup=function(dimension){fade||carousel||(0===slider.currentSlide&&slider.animatingTo===slider.last&&slider.vars.animationLoop?slider.setProps(dimension,"jumpEnd"):slider.currentSlide===slider.last&&0===slider.animatingTo&&slider.vars.animationLoop&&slider.setProps(dimension,"jumpStart")),slider.animating=!1,slider.currentSlide=slider.animatingTo,slider.vars.after(slider)},slider.animateSlides=function(){!slider.animating&&focused&&slider.flexAnimate(slider.getTarget("next"))},slider.pause=function(){clearInterval(slider.animatedSlides),slider.animatedSlides=null,slider.playing=!1,slider.vars.pausePlay&&methods.pausePlay.update("play"),slider.syncExists&&methods.sync("pause")},slider.play=function(){slider.playing&&clearInterval(slider.animatedSlides),slider.animatedSlides=slider.animatedSlides||setInterval(slider.animateSlides,slider.vars.slideshowSpeed),slider.started=slider.playing=!0,slider.vars.pausePlay&&methods.pausePlay.update("pause"),slider.syncExists&&methods.sync("play")},slider.stop=function(){slider.pause(),slider.stopped=!0},slider.canAdvance=function(target,fromNav){var last=asNav?slider.pagingCount-1:slider.last;return fromNav?!0:asNav&&slider.currentItem===slider.count-1&&0===target&&"prev"===slider.direction?!0:asNav&&0===slider.currentItem&&target===slider.pagingCount-1&&"next"!==slider.direction?!1:target!==slider.currentSlide||asNav?slider.vars.animationLoop?!0:slider.atEnd&&0===slider.currentSlide&&target===last&&"next"!==slider.direction?!1:slider.atEnd&&slider.currentSlide===last&&0===target&&"next"===slider.direction?!1:!0:!1},slider.getTarget=function(dir){return slider.direction=dir,"next"===dir?slider.currentSlide===slider.last?0:slider.currentSlide+1:0===slider.currentSlide?slider.last:slider.currentSlide-1},slider.setProps=function(pos,special,dur){var target=function(){var posCheck=pos?pos:(slider.itemW+slider.vars.itemMargin)*slider.move*slider.animatingTo,posCalc=function(){if(carousel)return"setTouch"===special?pos:reverse&&slider.animatingTo===slider.last?0:reverse?slider.limit-(slider.itemW+slider.vars.itemMargin)*slider.move*slider.animatingTo:slider.animatingTo===slider.last?slider.limit:posCheck;switch(special){case"setTotal":return reverse?(slider.count-1-slider.currentSlide+slider.cloneOffset)*pos:(slider.currentSlide+slider.cloneOffset)*pos;case"setTouch":return reverse?pos:pos;case"jumpEnd":return reverse?pos:slider.count*pos;case"jumpStart":return reverse?slider.count*pos:pos;default:return pos}}();return-1*posCalc+"px"}();slider.transitions&&(target=vertical?"translate3d(0,"+target+",0)":"translate3d("+target+",0,0)",dur=void 0!==dur?dur/1e3+"s":"0s",slider.container.css("-"+slider.pfx+"-transition-duration",dur)),slider.args[slider.prop]=target,(slider.transitions||void 0===dur)&&slider.container.css(slider.args)},slider.setup=function(type){if(fade)slider.slides.css({width:"100%","float":"left",marginRight:"-100%",position:"relative"}),"init"===type&&(touch?slider.slides.css({opacity:0,display:"block",webkitTransition:"opacity "+slider.vars.animationSpeed/1e3+"s ease",zIndex:1}).eq(slider.currentSlide).css({opacity:1,zIndex:2}):slider.slides.css({opacity:0,display:"block",zIndex:1}).eq(slider.currentSlide).css({zIndex:2}).animate({opacity:1},slider.vars.animationSpeed,slider.vars.easing)),slider.vars.smoothHeight&&methods.smoothHeight();else{var sliderOffset,arr;"init"===type&&(slider.viewport=$('
    ').css({overflow:"hidden",position:"relative"}).appendTo(slider).append(slider.container),slider.cloneCount=0,slider.cloneOffset=0,reverse&&(arr=$.makeArray(slider.slides).reverse(),slider.slides=$(arr),slider.container.empty().append(slider.slides))),slider.vars.animationLoop&&!carousel&&(slider.cloneCount=2,slider.cloneOffset=1,"init"!==type&&slider.container.find(".clone").remove(),slider.container.append(slider.slides.first().clone().addClass("clone").attr("aria-hidden","true")).prepend(slider.slides.last().clone().addClass("clone").attr("aria-hidden","true"))),slider.newSlides=$(slider.vars.selector,slider),sliderOffset=reverse?slider.count-1-slider.currentSlide+slider.cloneOffset:slider.currentSlide+slider.cloneOffset,vertical&&!carousel?(slider.container.height(200*(slider.count+slider.cloneCount)+"%").css("position","absolute").width("100%"),setTimeout(function(){slider.newSlides.css({display:"block"}),slider.doMath(),slider.viewport.height(slider.h),slider.setProps(sliderOffset*slider.h,"init")},"init"===type?100:0)):(slider.container.width(200*(slider.count+slider.cloneCount)+"%"),slider.setProps(sliderOffset*slider.computedW,"init"),setTimeout(function(){slider.doMath(),slider.newSlides.css({width:slider.computedW,"float":"left",display:"block"}),slider.vars.smoothHeight&&methods.smoothHeight()},"init"===type?100:0))}carousel||slider.slides.removeClass(namespace+"active-slide").eq(slider.currentSlide).addClass(namespace+"active-slide")},slider.doMath=function(){var slide=slider.slides.first(),slideMargin=slider.vars.itemMargin,minItems=slider.vars.minItems,maxItems=slider.vars.maxItems;slider.w=void 0===slider.viewport?slider.width():slider.viewport.width(),slider.h=slide.height(),slider.boxPadding=slide.outerWidth()-slide.width(),carousel?(slider.itemT=slider.vars.itemWidth+slideMargin,slider.minW=minItems?minItems*slider.itemT:slider.w,slider.maxW=maxItems?maxItems*slider.itemT-slideMargin:slider.w,slider.itemW=slider.minW>slider.w?(slider.w-slideMargin*(minItems-1))/minItems:slider.maxW<slider.w?(slider.w-slideMargin*(maxItems-1))/maxItems:slider.vars.itemWidth>slider.w?slider.w:slider.vars.itemWidth,slider.visible=Math.floor(slider.w/slider.itemW),slider.move=slider.vars.move>0&&slider.vars.move<slider.visible?slider.vars.move:slider.visible,slider.pagingCount=Math.ceil((slider.count-slider.visible)/slider.move+1),slider.last=slider.pagingCount-1,slider.limit=1===slider.pagingCount?0:slider.vars.itemWidth>slider.w?slider.itemW*(slider.count-1)+slideMargin*(slider.count-1):(slider.itemW+slideMargin)*slider.count-slider.w-slideMargin):(slider.itemW=slider.w,slider.pagingCount=slider.count,slider.last=slider.count-1),slider.computedW=slider.itemW-slider.boxPadding},slider.update=function(pos,action){slider.doMath(),carousel||(pos<slider.currentSlide?slider.currentSlide+=1:pos<=slider.currentSlide&&0!==pos&&(slider.currentSlide-=1),slider.animatingTo=slider.currentSlide),slider.vars.controlNav&&!slider.manualControls&&("add"===action&&!carousel||slider.pagingCount>slider.controlNav.length?methods.controlNav.update("add"):("remove"===action&&!carousel||slider.pagingCount<slider.controlNav.length)&&(carousel&&slider.currentSlide>slider.last&&(slider.currentSlide-=1,slider.animatingTo-=1),methods.controlNav.update("remove",slider.last))),slider.vars.directionNav&&methods.directionNav.update()},slider.addSlide=function(obj,pos){var $obj=$(obj);slider.count+=1,slider.last=slider.count-1,vertical&&reverse?void 0!==pos?slider.slides.eq(slider.count-pos).after($obj):slider.container.prepend($obj):void 0!==pos?slider.slides.eq(pos).before($obj):slider.container.append($obj),slider.update(pos,"add"),slider.slides=$(slider.vars.selector+":not(.clone)",slider),slider.setup(),slider.vars.added(slider)},slider.removeSlide=function(obj){var pos=isNaN(obj)?slider.slides.index($(obj)):obj;slider.count-=1,slider.last=slider.count-1,isNaN(obj)?$(obj,slider.slides).remove():vertical&&reverse?slider.slides.eq(slider.last).remove():slider.slides.eq(obj).remove(),slider.doMath(),slider.update(pos,"remove"),slider.slides=$(slider.vars.selector+":not(.clone)",slider),slider.setup(),slider.vars.removed(slider)},methods.init()},$(window).blur(function(){focused=!1}).focus(function(){focused=!0}),$.flexslider.defaults={namespace:"flex-",selector:".slides > li",animation:"fade",easing:"swing",direction:"horizontal",reverse:!1,animationLoop:!0,smoothHeight:!1,startAt:0,slideshow:!0,slideshowSpeed:7e3,animationSpeed:600,initDelay:0,randomize:!1,thumbCaptions:!1,pauseOnAction:!0,pauseOnHover:!1,pauseInvisible:!0,useCSS:!0,touch:!0,video:!1,controlNav:!0,directionNav:!0,prevText:"Previous",nextText:"Next",keyboard:!0,multipleKeyboard:!1,mousewheel:!1,pausePlay:!1,pauseText:"Pause",playText:"Play",controlsContainer:"",manualControls:"",sync:"",asNavFor:"",itemWidth:0,itemMargin:0,minItems:1,maxItems:0,move:0,allowOneSlide:!0,start:function(){},before:function(){},after:function(){},end:function(){},added:function(){},removed:function(){}},$.fn.flexslider=function(options){if(void 0===options&&(options={}),"object"==typeof options)return this.each(function(){var $this=$(this),selector=options.selector?options.selector:".slides > li",$slides=$this.find(selector);1===$slides.length&&options.allowOneSlide===!0||0===$slides.length?($slides.fadeIn(400),options.start&&options.start($this)):void 0===$this.data("flexslider")&&new $.flexslider(this,options)});var $slider=$(this).data("flexslider");switch(options){case"play":$slider.play();break;case"pause":$slider.pause();break;case"stop":$slider.stop();break;case"next":$slider.flexAnimate($slider.getTarget("next"),!0);break;case"prev":case"previous":$slider.flexAnimate($slider.getTarget("prev"),!0);break;default:"number"==typeof options&&$slider.flexAnimate(options,!0)}}}(jQuery),function($){var $window=$(window),windowHeight=$window.height();$window.resize(function(){windowHeight=$window.height()}),$.fn.parallax=function(xpos,speedFactor,outerHeight){function update(){var pos=$window.scrollTop();$this.each(function(){var $element=$(this),top=$element.offset().top,height=getHeight($element);pos>top+height||top>pos+windowHeight||$this.css("backgroundPosition",xpos+" "+Math.round((firstTop-pos)*speedFactor)+"px")})}var getHeight,firstTop,$this=$(this);$this.each(function(){firstTop=$this.offset().top}),getHeight=outerHeight?function(jqo){return jqo.outerHeight(!0)}:function(jqo){return jqo.height()},(arguments.length<1||null===xpos)&&(xpos="50%"),(arguments.length<2||null===speedFactor)&&(speedFactor=.1),(arguments.length<3||null===outerHeight)&&(outerHeight=!0),$window.bind("scroll",update).resize(update),update()}}(jQuery),jQuery(document).ready(function($){function ssc_init(){if(document.body){var body=document.body,html=document.documentElement,windowHeight=window.innerHeight,scrollHeight=body.scrollHeight;if(ssc_root=document.compatMode.indexOf("CSS")>=0?html:body,ssc_activeElement=body,ssc_initdone=!0,top!=self)ssc_frame=!0;else if(scrollHeight>windowHeight&&(body.offsetHeight<=windowHeight||html.offsetHeight<=windowHeight)&&(ssc_root.style.height="auto",ssc_root.offsetHeight<=windowHeight)){var underlay=document.createElement("div");underlay.style.clear="both",body.appendChild(underlay)}ssc_fixedback||(body.style.backgroundAttachment="scroll",html.style.backgroundAttachment="scroll"),ssc_keyboardsupport&&ssc_addEvent("keydown",ssc_keydown)}}function ssc_scrollArray(elem,left,top,delay){if(delay||(delay=1e3),ssc_directionCheck(left,top),ssc_que.push({x:left,y:top,lastX:0>left?.99:-.99,lastY:0>top?.99:-.99,start:+new Date}),!ssc_pending){var step=function(){for(var now=+new Date,scrollX=0,scrollY=0,i=0;i<ssc_que.length;i++){var item=ssc_que[i],elapsed=now-item.start,finished=elapsed>=ssc_animtime,position=finished?1:elapsed/ssc_animtime;ssc_pulseAlgorithm&&(position=ssc_pulse(position));var x=item.x*position-item.lastX>>0,y=item.y*position-item.lastY>>0;scrollX+=x,scrollY+=y,item.lastX+=x,item.lastY+=y,finished&&(ssc_que.splice(i,1),i--)}if(left){var lastLeft=elem.scrollLeft;elem.scrollLeft+=scrollX,scrollX&&elem.scrollLeft===lastLeft&&(left=0)}if(top){var lastTop=elem.scrollTop;elem.scrollTop+=scrollY,scrollY&&elem.scrollTop===lastTop&&(top=0)}left||top||(ssc_que=[]),ssc_que.length?setTimeout(step,delay/ssc_framerate+1):ssc_pending=!1};setTimeout(step,0),ssc_pending=!0}}function ssc_wheel(event){ssc_initdone||init();var target=event.target,overflowing=ssc_overflowingAncestor(target);if(!overflowing||event.defaultPrevented||ssc_isNodeName(ssc_activeElement,"embed")||ssc_isNodeName(target,"embed")&&/\.pdf/i.test(target.src))return!0;var deltaX=event.wheelDeltaX||0,deltaY=event.wheelDeltaY||0;deltaX||deltaY||(deltaY=event.wheelDelta||0),Math.abs(deltaX)>1.2&&(deltaX*=ssc_stepsize/120),Math.abs(deltaY)>1.2&&(deltaY*=ssc_stepsize/120),ssc_scrollArray(overflowing,-deltaX,-deltaY),event.preventDefault()}function ssc_keydown(event){var target=event.target,modifier=event.ctrlKey||event.altKey||event.metaKey;if(/input|textarea|embed/i.test(target.nodeName)||target.isContentEditable||event.defaultPrevented||modifier)return!0;if(ssc_isNodeName(target,"button")&&event.keyCode===ssc_key.spacebar)return!0;var shift,x=0,y=0,elem=ssc_overflowingAncestor(ssc_activeElement),clientHeight=elem.clientHeight;switch(elem==document.body&&(clientHeight=window.innerHeight),event.keyCode){case ssc_key.up:y=-ssc_arrowscroll;break;case ssc_key.down:y=ssc_arrowscroll;break;case ssc_key.spacebar:shift=event.shiftKey?1:-1,y=-shift*clientHeight*.9;break;case ssc_key.pageup:y=.9*-clientHeight;break;case ssc_key.pagedown:y=.9*clientHeight;break;case ssc_key.home:y=-elem.scrollTop;break;case ssc_key.end:var damt=elem.scrollHeight-elem.scrollTop-clientHeight;y=damt>0?damt+10:0;break;case ssc_key.left:x=-ssc_arrowscroll;break;case ssc_key.right:x=ssc_arrowscroll;break;default:return!0}ssc_scrollArray(elem,x,y),event.preventDefault()}function ssc_mousedown(event){ssc_activeElement=event.target}function ssc_setCache(elems,overflowing){for(var i=elems.length;i--;)ssc_cache[ssc_uniqueID(elems[i])]=overflowing;return overflowing}function ssc_overflowingAncestor(el){var elems=[],ssc_rootScrollHeight=ssc_root.scrollHeight;do{var cached=ssc_cache[ssc_uniqueID(el)];if(cached)return ssc_setCache(elems,cached);if(elems.push(el),ssc_rootScrollHeight===el.scrollHeight){if(!ssc_frame||ssc_root.clientHeight+10<ssc_rootScrollHeight)return ssc_setCache(elems,document.body)}else if(el.clientHeight+10<el.scrollHeight&&(overflow=getComputedStyle(el,"").getPropertyValue("overflow"),"scroll"===overflow||"auto"===overflow))return ssc_setCache(elems,el)}while(el=el.parentNode)}function ssc_addEvent(type,fn,bubble){window.addEventListener(type,fn,bubble||!1)}function ssc_isNodeName(el,tag){return el.nodeName.toLowerCase()===tag.toLowerCase()}function ssc_directionCheck(x,y){x=x>0?1:-1,y=y>0?1:-1,(ssc_direction.x!==x||ssc_direction.y!==y)&&(ssc_direction.x=x,ssc_direction.y=y,ssc_que=[])}function ssc_pulse_(x){var val,start,expx;return x*=ssc_pulseScale,1>x?val=x-(1-Math.exp(-x)):(start=Math.exp(-1),x-=1,expx=1-Math.exp(-x),val=start+expx*(1-start)),val*ssc_pulseNormalize}function ssc_pulse(x){return x>=1?1:0>=x?0:(1==ssc_pulseNormalize&&(ssc_pulseNormalize/=ssc_pulse_(1)),ssc_pulse_(x))}var ssc_activeElement,ssc_framerate=150,ssc_animtime=500,ssc_stepsize=150,ssc_pulseAlgorithm=!0,ssc_pulseScale=6,ssc_pulseNormalize=1,ssc_keyboardsupport=!0,ssc_arrowscroll=50,ssc_frame=!1,ssc_direction={x:0,y:0},ssc_initdone=!1,ssc_fixedback=!0,ssc_root=document.documentElement,ssc_key={left:37,up:38,right:39,down:40,spacebar:32,pageup:33,pagedown:34,end:35,home:36},ssc_que=[],ssc_pending=!1,ssc_cache={};setInterval(function(){ssc_cache={}},1e4);var ssc_uniqueID=function(){var i=0;return function(el){return el.ssc_uniqueID||(el.ssc_uniqueID=i++)}}();$.browser.chrome=/chrome/.test(navigator.userAgent.toLowerCase()),$.browser.chrome&&(ssc_addEvent("mousedown",ssc_mousedown),ssc_addEvent("mousewheel",ssc_wheel),ssc_addEvent("load",ssc_init))}),"function"!=typeof Object.create&&(Object.create=function(obj){function F(){}return F.prototype=obj,new F}),function($,window,document){var Carousel={init:function(options,el){var base=this;base.$elem=$(el),base.options=$.extend({},$.fn.owlCarousel.options,base.$elem.data(),options),base.userOptions=options,base.loadContent()},loadContent:function(){function getData(data){var i,content="";if("function"==typeof base.options.jsonSuccess)base.options.jsonSuccess.apply(this,[data]);else{for(i in data.owl)data.owl.hasOwnProperty(i)&&(content+=data.owl[i].item);base.$elem.html(content)}base.logIn()}var url,base=this;"function"==typeof base.options.beforeInit&&base.options.beforeInit.apply(this,[base.$elem]),"string"==typeof base.options.jsonPath?(url=base.options.jsonPath,$.getJSON(url,getData)):base.logIn()},logIn:function(){var base=this;base.$elem.data("owl-originalStyles",base.$elem.attr("style")).data("owl-originalClasses",base.$elem.attr("class")),base.$elem.css({opacity:0}),base.orignalItems=base.options.items,base.checkBrowser(),base.wrapperWidth=0,base.checkVisible=null,base.setVars()},setVars:function(){var base=this;return 0===base.$elem.children().length?!1:(base.baseClass(),base.eventTypes(),base.$userItems=base.$elem.children(),base.itemsAmount=base.$userItems.length,base.wrapItems(),base.$owlItems=base.$elem.find(".owl-item"),base.$owlWrapper=base.$elem.find(".owl-wrapper"),base.playDirection="next",base.prevItem=0,base.prevArr=[0],base.currentItem=0,base.customEvents(),base.onStartup(),void 0)},onStartup:function(){var base=this;base.updateItems(),base.calculateAll(),base.buildControls(),base.updateControls(),base.response(),base.moveEvents(),base.stopOnHover(),base.owlStatus(),base.options.transitionStyle!==!1&&base.transitionTypes(base.options.transitionStyle),base.options.autoPlay===!0&&(base.options.autoPlay=5e3),base.play(),base.$elem.find(".owl-wrapper").css("display","block"),base.$elem.is(":visible")?base.$elem.css("opacity",1):base.watchVisibility(),base.onstartup=!1,base.eachMoveUpdate(),"function"==typeof base.options.afterInit&&base.options.afterInit.apply(this,[base.$elem])},eachMoveUpdate:function(){var base=this;base.options.lazyLoad===!0&&base.lazyLoad(),base.options.autoHeight===!0&&base.autoHeight(),base.onVisibleItems(),"function"==typeof base.options.afterAction&&base.options.afterAction.apply(this,[base.$elem])},updateVars:function(){var base=this;"function"==typeof base.options.beforeUpdate&&base.options.beforeUpdate.apply(this,[base.$elem]),base.watchVisibility(),base.updateItems(),base.calculateAll(),base.updatePosition(),base.updateControls(),base.eachMoveUpdate(),"function"==typeof base.options.afterUpdate&&base.options.afterUpdate.apply(this,[base.$elem])},reload:function(){var base=this;window.setTimeout(function(){base.updateVars()},0)},watchVisibility:function(){var base=this;return base.$elem.is(":visible")!==!1?!1:(base.$elem.css({opacity:0}),window.clearInterval(base.autoPlayInterval),window.clearInterval(base.checkVisible),base.checkVisible=window.setInterval(function(){base.$elem.is(":visible")&&(base.reload(),base.$elem.animate({opacity:1},200),window.clearInterval(base.checkVisible))},500),void 0)},wrapItems:function(){var base=this;base.$userItems.wrapAll('
    ').wrap('
    '),base.$elem.find(".owl-wrapper").wrap('
    '),base.wrapperOuter=base.$elem.find(".owl-wrapper-outer"),base.$elem.css("display","block")},baseClass:function(){var base=this,hasBaseClass=base.$elem.hasClass(base.options.baseClass),hasThemeClass=base.$elem.hasClass(base.options.theme);hasBaseClass||base.$elem.addClass(base.options.baseClass),hasThemeClass||base.$elem.addClass(base.options.theme)},updateItems:function(){var width,i,base=this;if(base.options.responsive===!1)return!1;if(base.options.singleItem===!0)return base.options.items=base.orignalItems=1,base.options.itemsCustom=!1,base.options.itemsDesktop=!1,base.options.itemsDesktopSmall=!1,base.options.itemsTablet=!1,base.options.itemsTabletSmall=!1,base.options.itemsMobile=!1,!1;

    if(width=$(base.options.responsiveBaseWidth).width(),width>(base.options.itemsDesktop[0]||base.orignalItems)&&(base.options.items=base.orignalItems),base.options.itemsCustom!==!1)for(base.options.itemsCustom.sort(function(a,b){return a[0]-b[0]}),i=0;i<base.options.itemsCustom.length;i+=1)base.options.itemsCustom[i][0]<=width&&(base.options.items=base.options.itemsCustom[i][1]);else width<=base.options.itemsDesktop[0]&&base.options.itemsDesktop!==!1&&(base.options.items=base.options.itemsDesktop[1]),width<=base.options.itemsDesktopSmall[0]&&base.options.itemsDesktopSmall!==!1&&(base.options.items=base.options.itemsDesktopSmall[1]),width<=base.options.itemsTablet[0]&&base.options.itemsTablet!==!1&&(base.options.items=base.options.itemsTablet[1]),width<=base.options.itemsTabletSmall[0]&&base.options.itemsTabletSmall!==!1&&(base.options.items=base.options.itemsTabletSmall[1]),width<=base.options.itemsMobile[0]&&base.options.itemsMobile!==!1&&(base.options.items=base.options.itemsMobile[1]);base.options.items>base.itemsAmount&&base.options.itemsScaleUp===!0&&(base.options.items=base.itemsAmount)},response:function(){var smallDelay,lastWindowWidth,base=this;return base.options.responsive!==!0?!1:(lastWindowWidth=$(window).width(),base.resizer=function(){$(window).width()!==lastWindowWidth&&(base.options.autoPlay!==!1&&window.clearInterval(base.autoPlayInterval),window.clearTimeout(smallDelay),smallDelay=window.setTimeout(function(){lastWindowWidth=$(window).width(),base.updateVars()},base.options.responsiveRefreshRate))},$(window).resize(base.resizer),void 0)},updatePosition:function(){var base=this;base.jumpTo(base.currentItem),base.options.autoPlay!==!1&&base.checkAp()},appendItemsSizes:function(){var base=this,roundPages=0,lastItem=base.itemsAmount-base.options.items;base.$owlItems.each(function(index){var $this=$(this);$this.css({width:base.itemWidth}).data("owl-item",Number(index)),(index%base.options.items===0||index===lastItem)&&(index>lastItem||(roundPages+=1)),$this.data("owl-roundPages",roundPages)})},appendWrapperSizes:function(){var base=this,width=base.$owlItems.length*base.itemWidth;base.$owlWrapper.css({width:2*width,left:0}),base.appendItemsSizes()},calculateAll:function(){var base=this;base.calculateWidth(),base.appendWrapperSizes(),base.loops(),base.max()},calculateWidth:function(){var base=this;base.itemWidth=Math.round(base.$elem.width()/base.options.items)},max:function(){var base=this,maximum=-1*(base.itemsAmount*base.itemWidth-base.options.items*base.itemWidth);return base.options.items>base.itemsAmount?(base.maximumItem=0,maximum=0,base.maximumPixels=0):(base.maximumItem=base.itemsAmount-base.options.items,base.maximumPixels=maximum),maximum},min:function(){return 0},loops:function(){var i,item,roundPageNum,base=this,prev=0,elWidth=0;for(base.positionsInArray=[0],base.pagesInArray=[],i=0;i<base.itemsAmount;i+=1)elWidth+=base.itemWidth,base.positionsInArray.push(-elWidth),base.options.scrollPerPage===!0&&(item=$(base.$owlItems[i]),roundPageNum=item.data("owl-roundPages"),roundPageNum!==prev&&(base.pagesInArray[prev]=base.positionsInArray[i],prev=roundPageNum))},buildControls:function(){var base=this;(base.options.navigation===!0||base.options.pagination===!0)&&(base.owlControls=$('<div class="owl-controls"/>').toggleClass("clickable",!base.browser.isTouch).appendTo(base.$elem)),base.options.pagination===!0&&base.buildPagination(),base.options.navigation===!0&&base.buildButtons()},buildButtons:function(){var base=this,buttonsWrapper=$('<div class="owl-buttons"/>');base.owlControls.append(buttonsWrapper),base.buttonPrev=$("<div/>",{"class":"owl-prev",html:base.options.navigationText[0]||""}),base.buttonNext=$("<div/>",{"class":"owl-next",html:base.options.navigationText[1]||""}),buttonsWrapper.append(base.buttonPrev).append(base.buttonNext),buttonsWrapper.on("touchstart.owlControls mousedown.owlControls",'div[class^="owl"]',function(event){event.preventDefault()}),buttonsWrapper.on("touchend.owlControls mouseup.owlControls",'div[class^="owl"]',function(event){event.preventDefault(),$(this).hasClass("owl-next")?base.next():base.prev()})},buildPagination:function(){var base=this;base.paginationWrapper=$('<div class="owl-pagination"/>'),base.owlControls.append(base.paginationWrapper),base.paginationWrapper.on("touchend.owlControls mouseup.owlControls",".owl-page",function(event){event.preventDefault(),Number($(this).data("owl-page"))!==base.currentItem&&base.goTo(Number($(this).data("owl-page")),!0)})},updatePagination:function(){var counter,lastPage,lastItem,i,paginationButton,paginationButtonInner,base=this;if(base.options.pagination===!1)return!1;for(base.paginationWrapper.html(""),counter=0,lastPage=base.itemsAmount-base.itemsAmount%base.options.items,i=0;i<base.itemsAmount;i+=1)i%base.options.items===0&&(counter+=1,lastPage===i&&(lastItem=base.itemsAmount-base.options.items),paginationButton=$("<div/>",{"class":"owl-page"}),paginationButtonInner=$("",{text:base.options.paginationNumbers===!0?counter:"","class":base.options.paginationNumbers===!0?"owl-numbers":""}),paginationButton.append(paginationButtonInner),paginationButton.data("owl-page",lastPage===i?lastItem:i),paginationButton.data("owl-roundPages",counter),base.paginationWrapper.append(paginationButton));base.checkPagination()},checkPagination:function(){var base=this;return base.options.pagination===!1?!1:(base.paginationWrapper.find(".owl-page").each(function(){$(this).data("owl-roundPages")===$(base.$owlItems[base.currentItem]).data("owl-roundPages")&&(base.paginationWrapper.find(".owl-page").removeClass("active"),$(this).addClass("active"))}),void 0)},checkNavigation:function(){var base=this;return base.options.navigation===!1?!1:(base.options.rewindNav===!1&&(0===base.currentItem&&0===base.maximumItem?(base.buttonPrev.addClass("disabled"),base.buttonNext.addClass("disabled")):0===base.currentItem&&0!==base.maximumItem?(base.buttonPrev.addClass("disabled"),base.buttonNext.removeClass("disabled")):base.currentItem===base.maximumItem?(base.buttonPrev.removeClass("disabled"),base.buttonNext.addClass("disabled")):0!==base.currentItem&&base.currentItem!==base.maximumItem&&(base.buttonPrev.removeClass("disabled"),base.buttonNext.removeClass("disabled"))),void 0)},updateControls:function(){var base=this;base.updatePagination(),base.checkNavigation(),base.owlControls&&(base.options.items>=base.itemsAmount?base.owlControls.hide():base.owlControls.show())},destroyControls:function(){var base=this;base.owlControls&&base.owlControls.remove()},next:function(speed){var base=this;if(base.isTransition)return!1;if(base.currentItem+=base.options.scrollPerPage===!0?base.options.items:1,base.currentItem>base.maximumItem+(base.options.scrollPerPage===!0?base.options.items-1:0)){if(base.options.rewindNav!==!0)return base.currentItem=base.maximumItem,!1;base.currentItem=0,speed="rewind"}base.goTo(base.currentItem,speed)},prev:function(speed){var base=this;if(base.isTransition)return!1;if(base.options.scrollPerPage===!0&&base.currentItem>0&&base.currentItem<base.options.items?base.currentItem=0:base.currentItem-=base.options.scrollPerPage===!0?base.options.items:1,base.currentItem<0){if(base.options.rewindNav!==!0)return base.currentItem=0,!1;base.currentItem=base.maximumItem,speed="rewind"}base.goTo(base.currentItem,speed)},goTo:function(position,speed,drag){var goToPixel,base=this;return base.isTransition?!1:("function"==typeof base.options.beforeMove&&base.options.beforeMove.apply(this,[base.$elem]),position>=base.maximumItem?position=base.maximumItem:0>=position&&(position=0),base.currentItem=base.owl.currentItem=position,base.options.transitionStyle!==!1&&"drag"!==drag&&1===base.options.items&&base.browser.support3d===!0?(base.swapSpeed(0),base.browser.support3d===!0?base.transition3d(base.positionsInArray[position]):base.css2slide(base.positionsInArray[position],1),base.afterGo(),base.singleItemTransition(),!1):(goToPixel=base.positionsInArray[position],base.browser.support3d===!0?(base.isCss3Finish=!1,speed===!0?(base.swapSpeed("paginationSpeed"),window.setTimeout(function(){base.isCss3Finish=!0},base.options.paginationSpeed)):"rewind"===speed?(base.swapSpeed(base.options.rewindSpeed),window.setTimeout(function(){base.isCss3Finish=!0},base.options.rewindSpeed)):(base.swapSpeed("slideSpeed"),window.setTimeout(function(){base.isCss3Finish=!0},base.options.slideSpeed)),base.transition3d(goToPixel)):speed===!0?base.css2slide(goToPixel,base.options.paginationSpeed):"rewind"===speed?base.css2slide(goToPixel,base.options.rewindSpeed):base.css2slide(goToPixel,base.options.slideSpeed),base.afterGo(),void 0))},jumpTo:function(position){var base=this;"function"==typeof base.options.beforeMove&&base.options.beforeMove.apply(this,[base.$elem]),position>=base.maximumItem||-1===position?position=base.maximumItem:0>=position&&(position=0),base.swapSpeed(0),base.browser.support3d===!0?base.transition3d(base.positionsInArray[position]):base.css2slide(base.positionsInArray[position],1),base.currentItem=base.owl.currentItem=position,base.afterGo()},afterGo:function(){var base=this;base.prevArr.push(base.currentItem),base.prevItem=base.owl.prevItem=base.prevArr[base.prevArr.length-2],base.prevArr.shift(0),base.prevItem!==base.currentItem&&(base.checkPagination(),base.checkNavigation(),base.eachMoveUpdate(),base.options.autoPlay!==!1&&base.checkAp()),"function"==typeof base.options.afterMove&&base.prevItem!==base.currentItem&&base.options.afterMove.apply(this,[base.$elem])},stop:function(){var base=this;base.apStatus="stop",window.clearInterval(base.autoPlayInterval)},checkAp:function(){var base=this;"stop"!==base.apStatus&&base.play()},play:function(){var base=this;return base.apStatus="play",base.options.autoPlay===!1?!1:(window.clearInterval(base.autoPlayInterval),base.autoPlayInterval=window.setInterval(function(){base.next(!0)},base.options.autoPlay),void 0)},swapSpeed:function(action){var base=this;"slideSpeed"===action?base.$owlWrapper.css(base.addCssSpeed(base.options.slideSpeed)):"paginationSpeed"===action?base.$owlWrapper.css(base.addCssSpeed(base.options.paginationSpeed)):"string"!=typeof action&&base.$owlWrapper.css(base.addCssSpeed(action))},addCssSpeed:function(speed){return{"-webkit-transition":"all "+speed+"ms ease","-moz-transition":"all "+speed+"ms ease","-o-transition":"all "+speed+"ms ease",transition:"all "+speed+"ms ease"}},removeTransition:function(){return{"-webkit-transition":"","-moz-transition":"","-o-transition":"",transition:""}},doTranslate:function(pixels){return{"-webkit-transform":"translate3d("+pixels+"px, 0px, 0px)","-moz-transform":"translate3d("+pixels+"px, 0px, 0px)","-o-transform":"translate3d("+pixels+"px, 0px, 0px)","-ms-transform":"translate3d("+pixels+"px, 0px, 0px)",transform:"translate3d("+pixels+"px, 0px,0px)"}},transition3d:function(value){var base=this;base.$owlWrapper.css(base.doTranslate(value))},css2move:function(value){var base=this;base.$owlWrapper.css({left:value})},css2slide:function(value,speed){var base=this;base.isCssFinish=!1,base.$owlWrapper.stop(!0,!0).animate({left:value},{duration:speed||base.options.slideSpeed,complete:function(){base.isCssFinish=!0}})},checkBrowser:function(){var regex,asSupport,support3d,isTouch,base=this,translate3D="translate3d(0px, 0px, 0px)",tempElem=document.createElement("div");tempElem.style.cssText=" -moz-transform:"+translate3D+"; -ms-transform:"+translate3D+"; -o-transform:"+translate3D+"; -webkit-transform:"+translate3D+"; transform:"+translate3D,regex=/translate3d\(0px, 0px, 0px\)/g,asSupport=tempElem.style.cssText.match(regex),support3d=null!==asSupport&&1===asSupport.length,isTouch="ontouchstart"in window||window.navigator.msMaxTouchPoints,base.browser={support3d:support3d,isTouch:isTouch}},moveEvents:function(){var base=this;(base.options.mouseDrag!==!1||base.options.touchDrag!==!1)&&(base.gestures(),base.disabledEvents())},eventTypes:function(){var base=this,types=["s","e","x"];base.ev_types={},base.options.mouseDrag===!0&&base.options.touchDrag===!0?types=["touchstart.owl mousedown.owl","touchmove.owl mousemove.owl","touchend.owl touchcancel.owl mouseup.owl"]:base.options.mouseDrag===!1&&base.options.touchDrag===!0?types=["touchstart.owl","touchmove.owl","touchend.owl touchcancel.owl"]:base.options.mouseDrag===!0&&base.options.touchDrag===!1&&(types=["mousedown.owl","mousemove.owl","mouseup.owl"]),base.ev_types.start=types[0],base.ev_types.move=types[1],base.ev_types.end=types[2]},disabledEvents:function(){var base=this;base.$elem.on("dragstart.owl",function(event){event.preventDefault()}),base.$elem.on("mousedown.disableTextSelect",function(e){return $(e.target).is("input, textarea, select, option")})},gestures:function(){function getTouches(event){if(void 0!==event.touches)return{x:event.touches[0].pageX,y:event.touches[0].pageY};if(void 0===event.touches){if(void 0!==event.pageX)return{x:event.pageX,y:event.pageY};if(void 0===event.pageX)return{x:event.clientX,y:event.clientY}}}function swapEvents(type){"on"===type?($(document).on(base.ev_types.move,dragMove),$(document).on(base.ev_types.end,dragEnd)):"off"===type&&($(document).off(base.ev_types.move),$(document).off(base.ev_types.end))}function dragStart(event){var position,ev=event.originalEvent||event||window.event;if(3===ev.which)return!1;if(!(base.itemsAmount<=base.options.items)){if(base.isCssFinish===!1&&!base.options.dragBeforeAnimFinish)return!1;if(base.isCss3Finish===!1&&!base.options.dragBeforeAnimFinish)return!1;base.options.autoPlay!==!1&&window.clearInterval(base.autoPlayInterval),base.browser.isTouch===!0||base.$owlWrapper.hasClass("grabbing")||base.$owlWrapper.addClass("grabbing"),base.newPosX=0,base.newRelativeX=0,$(this).css(base.removeTransition()),position=$(this).position(),locals.relativePos=position.left,locals.offsetX=getTouches(ev).x-position.left,locals.offsetY=getTouches(ev).y-position.top,swapEvents("on"),locals.sliding=!1,locals.targetElement=ev.target||ev.srcElement}}function dragMove(event){var minSwipe,maxSwipe,ev=event.originalEvent||event||window.event;base.newPosX=getTouches(ev).x-locals.offsetX,base.newPosY=getTouches(ev).y-locals.offsetY,base.newRelativeX=base.newPosX-locals.relativePos,"function"==typeof base.options.startDragging&&locals.dragging!==!0&&0!==base.newRelativeX&&(locals.dragging=!0,base.options.startDragging.apply(base,[base.$elem])),(base.newRelativeX>8||base.newRelativeX<-8)&&base.browser.isTouch===!0&&(void 0!==ev.preventDefault?ev.preventDefault():ev.returnValue=!1,locals.sliding=!0),(base.newPosY>10||base.newPosY<-10)&&locals.sliding===!1&&$(document).off("touchmove.owl"),minSwipe=function(){return base.newRelativeX/5},maxSwipe=function(){return base.maximumPixels+base.newRelativeX/5},base.newPosX=Math.max(Math.min(base.newPosX,minSwipe()),maxSwipe()),base.browser.support3d===!0?base.transition3d(base.newPosX):base.css2move(base.newPosX)}function dragEnd(event){var newPosition,handlers,owlStopEvent,ev=event.originalEvent||event||window.event;ev.target=ev.target||ev.srcElement,locals.dragging=!1,base.browser.isTouch!==!0&&base.$owlWrapper.removeClass("grabbing"),base.dragDirection=base.owl.dragDirection=base.newRelativeX<0?"left":"right",0!==base.newRelativeX&&(newPosition=base.getNewPosition(),base.goTo(newPosition,!1,"drag"),locals.targetElement===ev.target&&base.browser.isTouch!==!0&&($(ev.target).on("click.disable",function(ev){ev.stopImmediatePropagation(),ev.stopPropagation(),ev.preventDefault(),$(ev.target).off("click.disable")}),handlers=$._data(ev.target,"events").click,owlStopEvent=handlers.pop(),handlers.splice(0,0,owlStopEvent))),swapEvents("off")}var base=this,locals={offsetX:0,offsetY:0,baseElWidth:0,relativePos:0,position:null,minSwipe:null,maxSwipe:null,sliding:null,dargging:null,targetElement:null};base.isCssFinish=!0,base.$elem.on(base.ev_types.start,".owl-wrapper",dragStart)},getNewPosition:function(){var base=this,newPosition=base.closestItem();return newPosition>base.maximumItem?(base.currentItem=base.maximumItem,newPosition=base.maximumItem):base.newPosX>=0&&(newPosition=0,base.currentItem=0),newPosition},closestItem:function(){var base=this,array=base.options.scrollPerPage===!0?base.pagesInArray:base.positionsInArray,goal=base.newPosX,closest=null;return $.each(array,function(i,v){goal-base.itemWidth/20>array[i+1]&&goal-base.itemWidth/20<v&&"left"===base.moveDirection()?(closest=v,base.currentItem=base.options.scrollPerPage===!0?$.inArray(closest,base.positionsInArray):i):goal+base.itemWidth/20<v&&goal+base.itemWidth/20>(array[i+1]||array[i]-base.itemWidth)&&"right"===base.moveDirection()&&(base.options.scrollPerPage===!0?(closest=array[i+1]||array[array.length-1],base.currentItem=$.inArray(closest,base.positionsInArray)):(closest=array[i+1],base.currentItem=i+1))}),base.currentItem},moveDirection:function(){var direction,base=this;return base.newRelativeX<0?(direction="right",base.playDirection="next"):(direction="left",base.playDirection="prev"),direction},customEvents:function(){var base=this;base.$elem.on("owl.next",function(){base.next()}),base.$elem.on("owl.prev",function(){base.prev()}),base.$elem.on("owl.play",function(event,speed){base.options.autoPlay=speed,base.play(),base.hoverStatus="play"}),base.$elem.on("owl.stop",function(){base.stop(),base.hoverStatus="stop"}),base.$elem.on("owl.goTo",function(event,item){base.goTo(item)}),base.$elem.on("owl.jumpTo",function(event,item){base.jumpTo(item)})},stopOnHover:function(){var base=this;base.options.stopOnHover===!0&&base.browser.isTouch!==!0&&base.options.autoPlay!==!1&&(base.$elem.on("mouseover",function(){base.stop()}),base.$elem.on("mouseout",function(){"stop"!==base.hoverStatus&&base.play()}))},lazyLoad:function(){var i,$item,itemNumber,$lazyImg,follow,base=this;if(base.options.lazyLoad===!1)return!1;for(i=0;i<base.itemsAmount;i+=1)$item=$(base.$owlItems[i]),"loaded"!==$item.data("owl-loaded")&&(itemNumber=$item.data("owl-item"),$lazyImg=$item.find(".lazyOwl"),"string"==typeof $lazyImg.data("src")?(void 0===$item.data("owl-loaded")&&($lazyImg.hide(),$item.addClass("loading").data("owl-loaded","checked")),follow=base.options.lazyFollow===!0?itemNumber>=base.currentItem:!0,follow&&itemNumber<base.currentItem+base.options.items&&$lazyImg.length&&base.lazyPreload($item,$lazyImg)):$item.data("owl-loaded","loaded"))},lazyPreload:function($item,$lazyImg){function showImage(){$item.data("owl-loaded","loaded").removeClass("loading"),$lazyImg.removeAttr("data-src"),"fade"===base.options.lazyEffect?$lazyImg.fadeIn(400):$lazyImg.show(),"function"==typeof base.options.afterLazyLoad&&base.options.afterLazyLoad.apply(this,[base.$elem])}function checkLazyImage(){iterations+=1,base.completeImg($lazyImg.get(0))||isBackgroundImg===!0?showImage():100>=iterations?window.setTimeout(checkLazyImage,100):showImage()}var isBackgroundImg,base=this,iterations=0;"DIV"===$lazyImg.prop("tagName")?($lazyImg.css("background-image","url("+$lazyImg.data("src")+")"),isBackgroundImg=!0):$lazyImg[0].src=$lazyImg.data("src"),checkLazyImage()},autoHeight:function(){function addHeight(){var $currentItem=$(base.$owlItems[base.currentItem]).height();base.wrapperOuter.css("height",$currentItem+"px"),base.wrapperOuter.hasClass("autoHeight")||window.setTimeout(function(){base.wrapperOuter.addClass("autoHeight")},0)}function checkImage(){iterations+=1,base.completeImg($currentimg.get(0))?addHeight():100>=iterations?window.setTimeout(checkImage,100):base.wrapperOuter.css("height","")}var iterations,base=this,$currentimg=$(base.$owlItems[base.currentItem]).find("img");void 0!==$currentimg.get(0)?(iterations=0,checkImage()):addHeight()},completeImg:function(img){var naturalWidthType;return img.complete?(naturalWidthType=typeof img.naturalWidth,"undefined"!==naturalWidthType&&0===img.naturalWidth?!1:!0):!1},onVisibleItems:function(){var i,base=this;for(base.options.addClassActive===!0&&base.$owlItems.removeClass("active"),base.visibleItems=[],i=base.currentItem;i<base.currentItem+base.options.items;i+=1)base.visibleItems.push(i),base.options.addClassActive===!0&&$(base.$owlItems[i]).addClass("active");base.owl.visibleItems=base.visibleItems},transitionTypes:function(className){var base=this;base.outClass="owl-"+className+"-out",base.inClass="owl-"+className+"-in"},singleItemTransition:function(){function transStyles(prevPos){return{position:"relative",left:prevPos+"px"}}var base=this,outClass=base.outClass,inClass=base.inClass,$currentItem=base.$owlItems.eq(base.currentItem),$prevItem=base.$owlItems.eq(base.prevItem),prevPos=Math.abs(base.positionsInArray[base.currentItem])+base.positionsInArray[base.prevItem],origin=Math.abs(base.positionsInArray[base.currentItem])+base.itemWidth/2,animEnd="webkitAnimationEnd oAnimationEnd MSAnimationEnd animationend";base.isTransition=!0,base.$owlWrapper.addClass("owl-origin").css({"-webkit-transform-origin":origin+"px","-moz-perspective-origin":origin+"px","perspective-origin":origin+"px"}),$prevItem.css(transStyles(prevPos,10)).addClass(outClass).on(animEnd,function(){base.endPrev=!0,$prevItem.off(animEnd),base.clearTransStyle($prevItem,outClass)}),$currentItem.addClass(inClass).on(animEnd,function(){base.endCurrent=!0,$currentItem.off(animEnd),base.clearTransStyle($currentItem,inClass)})},clearTransStyle:function(item,classToRemove){var base=this;item.css({position:"",left:""}).removeClass(classToRemove),base.endPrev&&base.endCurrent&&(base.$owlWrapper.removeClass("owl-origin"),base.endPrev=!1,base.endCurrent=!1,base.isTransition=!1)},owlStatus:function(){var base=this;base.owl={userOptions:base.userOptions,baseElement:base.$elem,userItems:base.$userItems,owlItems:base.$owlItems,currentItem:base.currentItem,prevItem:base.prevItem,visibleItems:base.visibleItems,isTouch:base.browser.isTouch,browser:base.browser,dragDirection:base.dragDirection}},clearEvents:function(){var base=this;base.$elem.off(".owl owl mousedown.disableTextSelect"),$(document).off(".owl owl"),$(window).off("resize",base.resizer)},unWrap:function(){var base=this;0!==base.$elem.children().length&&(base.$owlWrapper.unwrap(),base.$userItems.unwrap().unwrap(),base.owlControls&&base.owlControls.remove()),base.clearEvents(),base.$elem.attr("style",base.$elem.data("owl-originalStyles")||"").attr("class",base.$elem.data("owl-originalClasses"))},destroy:function(){var base=this;base.stop(),window.clearInterval(base.checkVisible),base.unWrap(),base.$elem.removeData()},reinit:function(newOptions){var base=this,options=$.extend({},base.userOptions,newOptions);base.unWrap(),base.init(options,base.$elem)},addItem:function(htmlString,targetPosition){var position,base=this;return htmlString?0===base.$elem.children().length?(base.$elem.append(htmlString),base.setVars(),!1):(base.unWrap(),position=void 0===targetPosition||-1===targetPosition?-1:targetPosition,position>=base.$userItems.length||-1===position?base.$userItems.eq(-1).after(htmlString):base.$userItems.eq(position).before(htmlString),base.setVars(),void 0):!1},removeItem:function(targetPosition){var position,base=this;return 0===base.$elem.children().length?!1:(position=void 0===targetPosition||-1===targetPosition?-1:targetPosition,base.unWrap(),base.$userItems.eq(position).remove(),base.setVars(),void 0)}};$.fn.owlCarousel=function(options){return this.each(function(){if($(this).data("owl-init")===!0)return!1;$(this).data("owl-init",!0);var carousel=Object.create(Carousel);carousel.init(options,this),$.data(this,"owlCarousel",carousel)})},$.fn.owlCarousel.options={items:5,itemsCustom:!1,itemsDesktop:[1199,4],itemsDesktopSmall:[979,3],itemsTablet:[768,2],itemsTabletSmall:!1,itemsMobile:[479,1],singleItem:!1,itemsScaleUp:!1,slideSpeed:200,paginationSpeed:800,rewindSpeed:1e3,autoPlay:!1,stopOnHover:!1,navigation:!1,navigationText:["prev","next"],rewindNav:!0,scrollPerPage:!1,pagination:!0,paginationNumbers:!1,responsive:!0,responsiveRefreshRate:200,responsiveBaseWidth:window,baseClass:"owl-carousel",theme:"owl-theme",lazyLoad:!1,lazyFollow:!0,lazyEffect:"fade",autoHeight:!1,jsonPath:!1,jsonSuccess:!1,dragBeforeAnimFinish:!0,mouseDrag:!0,touchDrag:!0,addClassActive:!1,transitionStyle:!1,beforeUpdate:!1,afterUpdate:!1,beforeInit:!1,afterInit:!1,beforeMove:!1,afterMove:!1,afterAction:!1,startDragging:!1,afterLazyLoad:!1}}(jQuery,window,document),function($){"use strict";var methods=function(){var c={bcClass:"sf-breadcrumb",menuClass:"sf-js-enabled",anchorClass:"sf-with-ul",menuArrowClass:"sf-arrows"},ios=function(){var ios=/iPhone|iPad|iPod/i.test(navigator.userAgent);return ios&&$(window).load(function(){$("body").children().on("click",$.noop)}),ios}(),wp7=function(){var style=document.documentElement.style;return"behavior"in style&&"fill"in style&&/iemobile/i.test(navigator.userAgent)}(),toggleMenuClasses=function($menu,o){var classes=c.menuClass;o.cssArrows&&(classes+=" "+c.menuArrowClass),$menu.toggleClass(classes)},setPathToCurrent=function($menu,o){return $menu.find("li."+o.pathClass).slice(0,o.pathLevels).addClass(o.hoverClass+" "+c.bcClass).filter(function(){return $(this).children(o.popUpSelector).hide().show().length}).removeClass(o.pathClass)},toggleAnchorClass=function($li){$li.children("a").toggleClass(c.anchorClass)},toggleTouchAction=function($menu){var touchAction=$menu.css("ms-touch-action");touchAction="pan-y"===touchAction?"auto":"pan-y",$menu.css("ms-touch-action",touchAction)},applyHandlers=function($menu,o){var targets="li:has("+o.popUpSelector+")";$.fn.hoverIntent&&!o.disableHI?$menu.hoverIntent(over,out,targets):$menu.on("mouseenter.superfish",targets,over).on("mouseleave.superfish",targets,out);var touchevent="MSPointerDown.superfish";ios||(touchevent+=" touchend.superfish"),wp7&&(touchevent+=" mousedown.superfish"),$menu.on("focusin.superfish","li",over).on("focusout.superfish","li",out).on(touchevent,"a",o,touchHandler)},touchHandler=function(e){var $this=$(this),$ul=$this.siblings(e.data.popUpSelector);$ul.length>0&&$ul.is(":hidden")&&($this.one("click.superfish",!1),"MSPointerDown"===e.type?$this.trigger("focus"):$.proxy(over,$this.parent("li"))())},over=function(){var $this=$(this),o=getOptions($this);clearTimeout(o.sfTimer),$this.siblings().superfish("hide").end().superfish("show")},out=function(){var $this=$(this),o=getOptions($this);ios?$.proxy(close,$this,o)():(clearTimeout(o.sfTimer),o.sfTimer=setTimeout($.proxy(close,$this,o),o.delay))},close=function(o){o.retainPath=$.inArray(this[0],o.$path)>-1,this.superfish("hide"),this.parents("."+o.hoverClass).length||(o.onIdle.call(getMenu(this)),o.$path.length&&$.proxy(over,o.$path)())},getMenu=function($el){return $el.closest("."+c.menuClass)},getOptions=function($el){return getMenu($el).data("sf-options")};return{hide:function(instant){if(this.length){var $this=this,o=getOptions($this);if(!o)return this;var not=o.retainPath===!0?o.$path:"",$ul=$this.find("li."+o.hoverClass).add(this).not(not).removeClass(o.hoverClass).children(o.popUpSelector),speed=o.speedOut;instant&&($ul.show(),speed=0),o.retainPath=!1,o.onBeforeHide.call($ul),$ul.stop(!0,!0).animate(o.animationOut,speed,function(){var $this=$(this);o.onHide.call($this)})}return this},show:function(){var o=getOptions(this);if(!o)return this;var $this=this.addClass(o.hoverClass),$ul=$this.children(o.popUpSelector);return o.onBeforeShow.call($ul),$ul.stop(!0,!0).animate(o.animation,o.speed,function(){o.onShow.call($ul)}),this},destroy:function(){return this.each(function(){var $hasPopUp,$this=$(this),o=$this.data("sf-options");return o?($hasPopUp=$this.find(o.popUpSelector).parent("li"),clearTimeout(o.sfTimer),toggleMenuClasses($this,o),toggleAnchorClass($hasPopUp),toggleTouchAction($this),$this.off(".superfish").off(".hoverIntent"),$hasPopUp.children(o.popUpSelector).attr("style",function(i,style){return style.replace(/display[^;]+;?/g,"")}),o.$path.removeClass(o.hoverClass+" "+c.bcClass).addClass(o.pathClass),$this.find("."+o.hoverClass).removeClass(o.hoverClass),o.onDestroy.call($this),$this.removeData("sf-options"),void 0):!1})},init:function(op){return this.each(function(){var $this=$(this);if($this.data("sf-options"))return!1;var o=$.extend({},$.fn.superfish.defaults,op),$hasPopUp=$this.find(o.popUpSelector).parent("li");o.$path=setPathToCurrent($this,o),$this.data("sf-options",o),toggleMenuClasses($this,o),toggleAnchorClass($hasPopUp),toggleTouchAction($this),applyHandlers($this,o),$hasPopUp.not("."+c.bcClass).superfish("hide",!0),o.onInit.call(this)})}}}();$.fn.superfish=function(method){return methods[method]?methods[method].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof method&&method?$.error("Method "+method+" does not exist on jQuery.fn.superfish"):methods.init.apply(this,arguments)},$.fn.superfish.defaults={popUpSelector:"ul,.sf-mega",hoverClass:"sfHover",pathClass:"overrideThisToUse",pathLevels:1,delay:800,animation:{opacity:"show"},animationOut:{opacity:"hide"},speed:"normal",speedOut:"fast",cssArrows:!0,disableHI:!1,onInit:$.noop,onBeforeShow:$.noop,onShow:$.noop,onBeforeHide:$.noop,onHide:$.noop,onIdle:$.noop,onDestroy:$.noop},$.fn.extend({hideSuperfishUl:methods.hide,showSuperfishUl:methods.show})}(jQuery),function($){function goMix(filter,sortby,order,$cont,config){function resetFilter(){$par.unbind("webkitTransitionEnd transitionend otransitionend oTransitionEnd"),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"),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),"list"==config.layoutMode?($show.css({display:config.targetDisplayList,opacity:"1"}),config.origDisplay=config.targetDisplayList):($show.css({display:config.targetDisplayGrid,opacity:"1"}),config.origDisplay=config.targetDisplayGrid),config.origLayout=config.layoutMode;setTimeout(function(){if($targets.removeStyle(config.prefix+"transition, transition"),config.mixing=!1,"function"==typeof config.onMixEnd){var output=config.onMixEnd.call(this,config);config=output?output:config}})}if(clearInterval(config.failsafe),config.mixing=!0,config.filter=filter,"function"==typeof config.onMixStart){var output=config.onMixStart.call(this,config);config=output?output:config}for(var speed=config.transitionSpeed,i=0;2>i;i++){var a=0==i?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","smooth"==config.easing&&(config.easing="cubic-bezier(0.25, 0.46, 0.45, 0.94)"),"snap"==config.easing&&(config.easing="cubic-bezier(0.77, 0, 0.175, 1)"),"windback"==config.easing&&(config.easing="cubic-bezier(0.175, 0.885, 0.320, 1.275)",config.easingFallback="cubic-bezier(0.175, 0.885, 0.320, 1)"),"windup"==config.easing&&(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="list"==config.layoutMode&&null!=config.listEffects?config.listEffects:config.effects;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=!1;

    "string"==typeof filter?filterArray=buildFilterArray(filter):(multiDimensional=!0,$.each(filter,function(i){filterArray[i]=buildFilterArray(this)})),"or"==config.filterLogic?(""==filterArray[0]&&filterArray.shift(),filterArray.length<1?$hide=$hide.add($cont.find(mixSelector+":visible")):$targets.each(function(){var $t=$(this);if(multiDimensional){var pass=0;$.each(filterArray,function(){this.length?$t.is("."+this.join(", ."))&&pass++:pass>0&&pass++}),pass==filterArray.length?$show=$show.add($t):$hide=$hide.add($t)}else $t.is("."+filterArray.join(", ."))?$show=$show.add($t):$hide=$hide.add($t)})):($show=$show.add($par.find(mixSelector+"."+filterArray.join("."))),$hide=$hide.add($par.find(mixSelector+":not(."+filterArray.join(".")+"):visible")));var total=$show.length,$tohide=$(),$toshow=$(),$pre=$();if($hide.each(function(){var $t=$(this);"none"!=$t.css("display")&&($tohide=$tohide.add($t),$pre=$pre.add($t))}),$show.filter(":visible").length==total&&!$tohide.length&&!sortby){if(config.origLayout==config.layoutMode)return resetFilter(),!1;if(1==$show.length)return"list"==config.layoutMode?($cont.addClass(config.listClass),$cont.removeClass(config.gridClass),$pre.css("display",config.targetDisplayList)):($cont.addClass(config.gridClass),$cont.removeClass(config.listClass),$pre.css("display",config.targetDisplayGrid)),resetFilter(),!1}if(config.origHeight=$par.height(),$show.length){if($cont.removeClass(config.failClass),$show.each(function(){var $t=$(this);"none"==$t.css("display")?$toshow=$toshow.add($t):$pre=$pre.add($t)}),config.origLayout!=config.layoutMode&&0==config.animateGridList)return"list"==config.layoutMode?($cont.addClass(config.listClass),$cont.removeClass(config.gridClass),$pre.css("display",config.targetDisplayList)):($cont.addClass(config.gridClass),$cont.removeClass(config.listClass),$pre.css("display",config.targetDisplayGrid)),resetFilter(),!1;if(!window.atob)return resetFilter(),!1;if($targets.css(config.clean),$pre.each(function(){this.data.origPos=$(this).offset()}),"list"==config.layoutMode?($cont.addClass(config.listClass),$cont.removeClass(config.gridClass),$toshow.css("display",config.targetDisplayList)):($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()}),"list"==config.layoutMode?$pre.css("display",config.targetDisplayList):$pre.css("display",config.targetDisplayGrid),sortby&&sort(sortby,order,$cont,config),sortby&&compareArr(config.origSort,config.checkSort))return resetFilter(),!1;$tohide.hide(),$toshow.each(function(){this.data.finalPos=$(this).offset()}),$pre.each(function(){this.data.finalPrePos=$(this).offset()}),config.newHeight=$par.height(),sortby&&sort("reset",null,$cont,config),$toshow.hide(),$pre.css("display",config.origDisplay),"block"==config.origDisplay?($cont.addClass(config.listClass),$toshow.css("display",config.targetDisplayList)):($cont.removeClass(config.listClass),$toshow.css("display",config.targetDisplayGrid)),config.resizeContainer&&$par.css("height",config.origHeight+"px");for(var toShowCSS={},i=0;2>i;i++){var a=0==i?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);$t.hasClass("mix_tohide")?(data.preTX=data.origPos.left-data.hideInterPos.left,data.preTY=data.origPos.top-data.hideInterPos.top):(data.preTX=data.origPos.left-data.preInterPos.left,data.preTY=data.origPos.top-data.preInterPos.top);for(var preCSS={},i=0;2>i;i++){var a=0==i?a=config.prefix:"";preCSS[a+"transform"]="translate("+data.preTX+"px,"+data.preTY+"px)"}$t.css(preCSS)}),"list"==config.layoutMode?($cont.addClass(config.listClass),$cont.removeClass(config.gridClass)):($cont.addClass(config.gridClass),$cont.removeClass(config.listClass));{setTimeout(function(){if(config.resizeContainer){for(var containerCSS={},i=0;2>i;i++){var a=0==i?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;for(var toShowCSS={},i=0;2>i;i++){var a=0==i?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(toShowCSS)}),$pre.each(function(){var data=this.data;data.tX=0!=data.finalPrePos.left?data.finalPrePos.left-data.preInterPos.left:0,data.tY=0!=data.finalPrePos.left?data.finalPrePos.top-data.preInterPos.top:0;for(var preCSS={},i=0;2>i;i++){var a=0==i?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)});for(var toHideCSS={},i=0;2>i;i++){var a=0==i?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){(e.originalEvent.propertyName.indexOf("transform")>-1||e.originalEvent.propertyName.indexOf("opacity")>-1)&&(mixSelector.indexOf(".")>-1?$(e.target).hasClass(mixSelector.replace(".",""))&&resetFilter():$(e.target).is(mixSelector)&&resetFilter())})},10)}config.failsafe=setTimeout(function(){config.mixing&&resetFilter()},speed+400)}else{if(config.resizeContainer&&$par.css("height",config.origHeight+"px"),!window.atob)return resetFilter(),!1;$tohide=$hide;{setTimeout(function(){if($par.css(config.perspective),config.resizeContainer){for(var containerCSS={},i=0;2>i;i++){var a=0==i?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){for(var toHideCSS={},i=0;2>i;i++){var a=0==i?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){(e.originalEvent.propertyName.indexOf("transform")>-1||e.originalEvent.propertyName.indexOf("opacity")>-1)&&($cont.addClass(config.failClass),resetFilter())})}else config.mixing=!1},10)}}}function sort(sortby,order,$cont,config){function compare(a,b){var sortAttrA=isNaN(1*a.attr(sortby))?a.attr(sortby).toLowerCase():1*a.attr(sortby),sortAttrB=isNaN(1*b.attr(sortby))?b.attr(sortby).toLowerCase():1*b.attr(sortby);return sortAttrB>sortAttrA?-1:sortAttrA>sortAttrB?1:0}function rebuild(element){"asc"==order?$sortWrapper.prepend(element).prepend(" "):$sortWrapper.append(element).append(" ")}function arrayShuffle(oldArray){for(var newArray=oldArray.slice(),len=newArray.length,i=len;i--;){var p=parseInt(Math.random()*len),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(),"reset"==sortby)$.each(config.startOrder,function(){$sortWrapper.append(this).append(" ")});else if("default"==sortby)$.each(config.origOrder,function(){rebuild(this)});else if("random"==sortby)config.newOrder.length||(config.newOrder=arrayShuffle(config.startOrder)),$.each(config.newOrder,function(){$sortWrapper.append(this).append(" ")});else if("custom"==sortby)$.each(order,function(){rebuild(this)});else{if("undefined"==typeof config.origOrder[0].attr(sortby))return console.log("No such attribute found. Terminating"),!1;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);0==i&&$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){for(var prefixes=["Webkit","Moz","O","ms"],i=0;i<prefixes.length;i++)if(prefixes[i]+"Transition"in el.style)return prefixes[i];return"transition"in el.style?"":!1}function compareArr(a,b){if(a.length!=b.length)return!1;for(var i=0;i<b.length;i++){if(a[i].compare&&!a[i].compare(b[i]))return!1;if(a[i]!==b[i])return!1}return!0}function buildFilterArray(str){str=str.replace(/\s{2,}/g," ");var arr=str.split(" ");return $.each(arr,function(i){"all"==this&&(arr[i]="mix_all")}),""==arr[0]&&arr.shift(),arr}var methods={init:function(settings){return this.each(function(){var browser=window.navigator.appVersion.match(/Chrome\/(\d+)\./),ver=browser?parseInt(browser[1],10):!1,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};(ver&&31==ver||32==ver)&&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:!1,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:""};settings&&$.extend(config,settings),this.config=config,$.support.touch="ontouchend"in document,$.support.touch&&(config.isTouch=!0,config.resetDelay=350),config.container=$(this);var $cont=config.container;if(config.prefix=prefix($cont[0]),config.prefix=config.prefix?"-"+config.prefix.toLowerCase()+"-":"",$cont.find(config.targetSelector).each(function(){config.origOrder.push($(this))}),config.sortOnLoad){var sortby,order;$.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")):($(config.sortSelector+"[data-sort="+config.sortOnLoad+"]").addClass("active"),sortby=config.sortOnLoad,config.sortOnLoad="desc"),sort(sortby,order,$cont,config)}for(var i=0;2>i;i++){var a=0==i?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;2>i;i++){var a=0==i?a=config.prefix:"";config.clean[a+"transition"]="none"}"list"==config.layoutMode?($cont.addClass(config.listClass),config.origDisplay=config.targetDisplayList):($cont.addClass(config.gridClass),config.origDisplay=config.targetDisplayGrid),config.origLayout=config.layoutMode;var showOnLoadArray=config.showOnLoad.split(" ");$.each(showOnLoadArray,function(){$(config.filterSelector+'[data-filter="'+this+'"]').addClass("active")}),$cont.find(config.targetSelector).addClass("mix_all"),"all"==showOnLoadArray[0]&&(showOnLoadArray[0]="mix_all",config.showOnLoad="mix_all");var $showOnLoad=$();$.each(showOnLoadArray,function(){$showOnLoad=$showOnLoad.add($("."+this))}),$showOnLoad.each(function(){var $t=$(this);"list"==config.layoutMode?$t.css("display",config.targetDisplayList):$t.css("display",config.targetDisplayGrid),$t.css(config.transition)});setTimeout(function(){config.mixing=!0,$showOnLoad.css("opacity","1");setTimeout(function(){if("list"==config.layoutMode?$showOnLoad.removeStyle(config.prefix+"transition, transition").css({display:config.targetDisplayList,opacity:1}):$showOnLoad.removeStyle(config.prefix+"transition, transition").css({display:config.targetDisplayGrid,opacity:1}),config.mixing=!1,"function"==typeof config.onMixLoad){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")){if("random"!=sortby)return!1}else $(config.sortSelector).removeClass("active"),$t.addClass("active");$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(0==config.multiFilter)$(config.filterSelector).removeClass("active"),$t.addClass("active"),config.filter=$t.attr("data-filter"),$(config.filterSelector+'[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)}})})},toGrid:function(){return this.each(function(){var config=this.config;"grid"!=config.layoutMode&&(config.layoutMode="grid",goMix(config.filter,null,null,$(this),config))})},toList:function(){return this.each(function(){var config=this.config;"list"!=config.layoutMode&&(config.layoutMode="list",goMix(config.filter,null,null,$(this),config))})},filter:function(arg){return this.each(function(){var config=this.config;config.mixing||($(config.filterSelector).removeClass("active"),$(config.filterSelector+'[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){if($(config.sortSelector).removeClass("active"),$.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),config.mixing||($(config.filterSelector).add(config.sortSelector).removeClass("active"),$(config.filterSelector+'[data-filter="'+multiOut.filter+'"]').addClass("active"),"undefined"!=typeof multiOut.sort&&($(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)}),config.mixing||"undefined"==typeof arg||($(config.filterSelector).removeClass("active"),$(config.filterSelector+'[data-filter="'+arg+'"]').addClass("active"),goMix(arg,null,null,$t,config))})}};$.fn.mixitup=function(method){return methods[method]?methods[method].apply(this,Array.prototype.slice.call(arguments,1)):"object"!=typeof method&&method?void 0:methods.init.apply(this,arguments)},$.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){return style?style.replace(search,""):void 0})})})}}(jQuery);