(function($){$.tools=$.tools||{};$.tools.scrollable={version:'1.1.2',conf:{size:4,vertical:false,speed:400,keyboard:true,keyboardSteps:null,disabledClass:'disabled',hoverClass:null,clickable:false,activeClass:'active',easing:'swing',loop:false,items:'.items',item:null,prev:'.prev',next:'.next',prevPage:'.prevPage',nextPage:'.nextPage',api:false}};var current;function Scrollable(root,conf){var self=this,$self=$(this),horizontal=!conf.vertical,wrap=root.children(),index=0,forward;if(!current){current=self}$.each(conf,function(name,fn){if($.isFunction(fn)){$self.bind(name,fn)}});if(wrap.length>1){wrap=$(conf.items,root)}function find(query){var els=$(query);return conf.globalNav?els:root.parent().find(query)}root.data("finder",find);var prev=find(conf.prev),next=find(conf.next),prevPage=find(conf.prevPage),nextPage=find(conf.nextPage);$.extend(self,{getIndex:function(){return index},getClickIndex:function(){var items=self.getItems();return items.index(items.filter("."+conf.activeClass))},getConf:function(){return conf},getSize:function(){return self.getItems().size()},getPageAmount:function(){return Math.ceil(this.getSize()/conf.size)},getPageIndex:function(){return Math.ceil(index/conf.size)},getNaviButtons:function(){return prev.add(next).add(prevPage).add(nextPage)},getRoot:function(){return root},getItemWrap:function(){return wrap},getItems:function(){return wrap.children(conf.item)},getVisibleItems:function(){return self.getItems().slice(index,index+conf.size)},seekTo:function(i,time,fn){if(i<0){i=0}if(index===i){return self}if($.isFunction(time)){fn=time}if(i>self.getSize()-conf.size){return conf.loop?self.begin():this.end()}var item=self.getItems().eq(i);if(!item.length){return self}var e=$.Event("onBeforeSeek");$self.trigger(e,[i]);if(e.isDefaultPrevented()){return self}if(time===undefined||$.isFunction(time)){time=conf.speed}function callback(){if(fn){fn.call(self,i)}$self.trigger("onSeek",[i])}if(horizontal){wrap.animate({left:-item.position().left},time,conf.easing,callback)}else{wrap.animate({top:-item.position().top},time,conf.easing,callback)}current=self;index=i;e=$.Event("onStart");$self.trigger(e,[i]);if(e.isDefaultPrevented()){return self}prev.add(prevPage).toggleClass(conf.disabledClass,i===0);next.add(nextPage).toggleClass(conf.disabledClass,i>=self.getSize()-conf.size);return self},move:function(offset,time,fn){forward=offset>0;return this.seekTo(index+offset,time,fn)},next:function(time,fn){return this.move(1,time,fn)},prev:function(time,fn){return this.move(-1,time,fn)},movePage:function(offset,time,fn){forward=offset>0;var steps=conf.size*offset;var i=index%conf.size;if(i>0){steps+=(offset>0?-i:conf.size-i)}return this.move(steps,time,fn)},prevPage:function(time,fn){return this.movePage(-1,time,fn)},nextPage:function(time,fn){return this.movePage(1,time,fn)},setPage:function(page,time,fn){return this.seekTo(page*conf.size,time,fn)},begin:function(time,fn){forward=false;return this.seekTo(0,time,fn)},end:function(time,fn){forward=true;var to=this.getSize()-conf.size;return to>0?this.seekTo(to,time,fn):self},reload:function(){$self.trigger("onReload");return self},focus:function(){current=self;return self},click:function(i){var item=self.getItems().eq(i),klass=conf.activeClass,size=conf.size;if(i<0||i>=self.getSize()){return self}if(size==1){if(conf.loop){return self.next()}if(i===0||i==self.getSize()-1){forward=(forward===undefined)?true:!forward}return forward===false?self.prev():self.next()}if(size==2){if(i==index){i--}self.getItems().removeClass(klass);item.addClass(klass);return self.seekTo(i,time,fn)}if(!item.hasClass(klass)){self.getItems().removeClass(klass);item.addClass(klass);var delta=Math.floor(size/2);var to=i-delta;if(to>self.getSize()-size){to=self.getSize()-size}if(to!==i){return self.seekTo(to)}}return self},bind:function(name,fn){$self.bind(name,fn);return self},unbind:function(name){$self.unbind(name);return self}});$.each("onBeforeSeek,onStart,onSeek,onReload".split(","),function(i,ev){self[ev]=function(fn){return self.bind(ev,fn)}});prev.addClass(conf.disabledClass).click(function(){self.prev()});next.click(function(){self.next()});nextPage.click(function(){self.nextPage()});if(self.getSize()<conf.size){next.add(nextPage).addClass(conf.disabledClass)}prevPage.addClass(conf.disabledClass).click(function(){self.prevPage()});var hc=conf.hoverClass,keyId="keydown."+Math.random().toString().substring(10);self.onReload(function(){if(hc){self.getItems().hover(function(){$(this).addClass(hc)},function(){$(this).removeClass(hc)})}if(conf.clickable){self.getItems().each(function(i){$(this).unbind("click.scrollable").bind("click.scrollable",function(e){if($(e.target).is("a")){return}return self.click(i)})})}if(conf.keyboard){$(document).unbind(keyId).bind(keyId,function(evt){if(evt.altKey||evt.ctrlKey){return}if(conf.keyboard!='static'&&current!=self){return}var s=conf.keyboardSteps;if(horizontal&&(evt.keyCode==37||evt.keyCode==39)){self.move(evt.keyCode==37?-s:s);return evt.preventDefault()}if(!horizontal&&(evt.keyCode==38||evt.keyCode==40)){self.move(evt.keyCode==38?-s:s);return evt.preventDefault()}return true})}else{$(document).unbind(keyId)}});self.reload()}$.fn.scrollable=function(conf){var el=this.eq(typeof conf=='number'?conf:0).data("scrollable");if(el){return el}var globals=$.extend({},$.tools.scrollable.conf);conf=$.extend(globals,conf);conf.keyboardSteps=conf.keyboardSteps||conf.size;this.each(function(){el=new Scrollable($(this),conf);$(this).data("scrollable",el)});return conf.api?el:this}})(jQuery);(function($){var t=$.tools.scrollable;t.plugins=t.plugins||{};t.plugins.circular={version:'0.5.1',conf:{api:false,clonedClass:'cloned'}};$.fn.circular=function(opts){var config=$.extend({},t.plugins.circular.conf),ret;$.extend(config,opts);this.each(function(){var api=$(this).scrollable(),items=api.getItems(),conf=api.getConf(),wrap=api.getItemWrap(),index=0;if(api){ret=api}if(items.length<conf.size){return false}items.slice(0,conf.size).each(function(i){$(this).clone().appendTo(wrap).click(function(){api.click(items.length+i)}).addClass(config.clonedClass)});var tail=$.makeArray(items.slice(-conf.size)).reverse();$(tail).each(function(i){$(this).clone().prependTo(wrap).click(function(){api.click(-i-1)}).addClass(config.clonedClass)});var allItems=wrap.children(conf.item);var hc=conf.hoverClass;if(hc){allItems.hover(function(){$(this).addClass(hc)},function(){$(this).removeClass(hc)})}function seek(i){var item=allItems.eq(i);if(conf.vertical){wrap.css({top:-item.position().top})}else{wrap.css({left:-item.position().left})}}seek(conf.size);$.extend(api,{move:function(offset,time,fn,click){var to=index+offset+conf.size;var exceed=to>api.getSize()-conf.size;if(to<=0||exceed){var fix=index+conf.size+(exceed?-items.length:items.length);seek(fix);to=fix+offset}if(click){allItems.removeClass(conf.activeClass).eq(to+Math.floor(conf.size/2)).addClass(conf.activeClass)}if(to===index+conf.size){return self}return api.seekTo(to,time,fn)},begin:function(time,fn){return this.seekTo(conf.size,time,fn)},end:function(time,fn){return this.seekTo(items.length,time,fn)},click:function(i,time,fn){if(!conf.clickable){return self}if(conf.size==1){return this.next()}var to=i-index,klass=conf.activeClass;to-=Math.floor(conf.size/2);return this.move(to,time,fn,true)},getIndex:function(){return index},setPage:function(page,time,fn){return this.seekTo(page*conf.size+conf.size,time,fn)},getPageAmount:function(){return Math.ceil(items.length/conf.size)},getPageIndex:function(){if(index<0){return this.getPageAmount()-1}if(index>=items.length){return 0}var i=(index+conf.size)/conf.size-1;return i},getVisibleItems:function(){var i=index+conf.size;return allItems.slice(i,i+conf.size)}});api.onStart(function(e,i){index=i-conf.size;return false});api.getNaviButtons().removeClass(conf.disabledClass)});return config.api?ret:this}})(jQuery);(function(a){var b=a.tools.scrollable;b.autoscroll={conf:{autoplay:!0,interval:3e3,autopause:!0}},a.fn.autoscroll=function(c){typeof c=="number"&&(c={interval:c});var d=a.extend({},b.autoscroll.conf,c),e;this.each(function(){var b=a(this).data("scrollable");b&&(e=b);var c,f=!0;b.play=function(){c||(f=!1,c=setInterval(function(){b.next()},d.interval))},b.pause=function(){c=clearInterval(c)},b.stop=function(){b.pause(),f=!0},d.autopause&&b.getRoot().add(b.getNaviButtons()).hover(b.pause,b.play),d.autoplay&&b.play()});return d.api?e:this}})(jQuery);;(function(f){function p(a,b,c){var h=c.relative?a.position().top:a.offset().top,d=c.relative?a.position().left:a.offset().left,i=c.position[0];h-=b.outerHeight()-c.offset[0];d+=a.outerWidth()+c.offset[1];if(/iPad/i.test(navigator.userAgent))h-=f(window).scrollTop();var j=b.outerHeight()+a.outerHeight();if(i=="center")h+=j/2;if(i=="bottom")h+=j;i=c.position[1];a=b.outerWidth()+a.outerWidth();if(i=="center")d-=a/2;if(i=="left")d-=a;return{top:h,left:d}}function u(a,b){var c=this,h=a.add(c),d,i=0,j=0,m=a.attr("title"),q=a.attr("data-tooltip"),r=o[b.effect],l,s=a.is(":input"),v=s&&a.is(":checkbox, :radio, select, :button, :submit"),t=a.attr("type"),k=b.events[t]||b.events[s?v?"widget":"input":"def"];if(!r)throw'Nonexistent effect "'+b.effect+'"';k=k.split(/,\s*/);if(k.length!=2)throw"Tooltip: bad events configuration for "+t;a.bind(k[0],function(e){clearTimeout(i);if(b.predelay)j=setTimeout(function(){c.show(e)},b.predelay);else c.show(e)}).bind(k[1],function(e){clearTimeout(j);if(b.delay)i=setTimeout(function(){c.hide(e)},b.delay);else c.hide(e)});if(m&&b.cancelDefault){a.removeAttr("title");a.data("title",m)}f.extend(c,{show:function(e){if(!d){if(q)d=f(q);else if(b.tip)d=f(b.tip).eq(0);else if(m)d=f(b.layout).addClass(b.tipClass).appendTo(document.body).hide().append(m);else{d=a.next();d.length||(d=a.parent().next())}if(!d.length)throw"Cannot find tooltip for "+a;}if(c.isShown())return c;d.stop(true,true);var g=p(a,d,b);b.tip&&d.html(a.data("title"));e=e||f.Event();e.type="onBeforeShow";h.trigger(e,[g]);if(e.isDefaultPrevented())return c;g=p(a,d,b);d.css({position:"absolute",top:g.top,left:g.left});l=true;r[0].call(c,function(){e.type="onShow";l="full";h.trigger(e)});g=b.events.tooltip.split(/,\s*/);if(!d.data("__set")){d.bind(g[0],function(){clearTimeout(i);clearTimeout(j)});g[1]&&!a.is("input:not(:checkbox, :radio), textarea")&&d.bind(g[1],function(n){n.relatedTarget!=a[0]&&a.trigger(k[1].split(" ")[0])});d.data("__set",true)}return c},hide:function(e){if(!d||!c.isShown())return c;e=e||f.Event();e.type="onBeforeHide";h.trigger(e);if(!e.isDefaultPrevented()){l=false;o[b.effect][1].call(c,function(){e.type="onHide";h.trigger(e)});return c}},isShown:function(e){return e?l=="full":l},getConf:function(){return b},getTip:function(){return d},getTrigger:function(){return a}});f.each("onHide,onBeforeShow,onShow,onBeforeHide".split(","),function(e,g){f.isFunction(b[g])&&f(c).bind(g,b[g]);c[g]=function(n){n&&f(c).bind(g,n);return c}})}f.tools=f.tools||{version:"1.2.5"};f.tools.tooltip={conf:{effect:"toggle",fadeOutSpeed:"fast",predelay:0,delay:30,opacity:1,tip:0,position:["top","center"],offset:[0,0],relative:false,cancelDefault:true,events:{def:"mouseenter,mouseleave",input:"focus,blur",widget:"focus mouseenter,blur mouseleave",tooltip:"mouseenter,mouseleave"},layout:"<div/>",tipClass:"tooltip"},addEffect:function(a,b,c){o[a]=[b,c]}};var o={toggle:[function(a){var b=this.getConf(),c=this.getTip();b=b.opacity;b<1&&c.css({opacity:b});c.show();a.call()},function(a){this.getTip().hide();a.call()}],fade:[function(a){var b=this.getConf();this.getTip().fadeTo(b.fadeInSpeed,b.opacity,a)},function(a){this.getTip().fadeOut(this.getConf().fadeOutSpeed,a)}]};f.fn.tooltip=function(a){var b=this.data("tooltip");if(b)return b;a=f.extend(true,{},f.tools.tooltip.conf,a);if(typeof a.position=="string")a.position=a.position.split(/,?\s/);this.each(function(){b=new u(f(this),a);f(this).data("tooltip",b)});return a.api?b:this}})(jQuery);(function(d){var i=d.tools.tooltip;d.extend(i.conf,{direction:"up",bounce:false,slideOffset:10,slideInSpeed:150,slideOutSpeed:150,slideFade:!d.browser.msie});var e={up:["-","top"],down:["+","top"],left:["-","left"],right:["+","left"]};i.addEffect("slide",function(g){var a=this.getConf(),f=this.getTip(),b=a.slideFade?{opacity:a.opacity}:{},c=e[a.direction]||e.up;b[c[1]]=c[0]+"="+a.slideOffset;a.slideFade&&f.css({opacity:0});f.show().animate(b,a.slideInSpeed,g)},function(g){var a=this.getConf(),f=a.slideOffset,b=a.slideFade?{opacity:0}:{},c=e[a.direction]||e.up,h=""+c[0];if(a.bounce)h=h=="+"?"-":"+";b[c[1]]=h+"="+f;this.getTip().animate(b,a.slideOutSpeed,function(){d(this).hide();g.call()})})})(jQuery);
