(function($){$.tools=$.tools||{};$.tools.expose={version:'1.0.5',conf:{maskId:null,loadSpeed:'slow',closeSpeed:'fast',closeOnClick:true,closeOnEsc:true,zIndex:9998,opacity:0.8,color:'#456',api:false}};function viewport(){if($.browser.msie){var d=$(document).height(),w=$(window).height();return[window.innerWidth||document.documentElement.clientWidth||document.body.clientWidth,d-w<20?w:d];}
return[$(window).width(),$(document).height()];}
function Expose(els,conf){var self=this,$self=$(this),mask=null,loaded=false,origIndex=0;$.each(conf,function(name,fn){if($.isFunction(fn)){$self.bind(name,fn);}});$(window).resize(function(){self.fit();});$.extend(this,{getMask:function(){return mask;},getExposed:function(){return els;},getConf:function(){return conf;},isLoaded:function(){return loaded;},load:function(e){if(loaded){return self;}
origIndex=els.eq(0).css("zIndex");if(conf.maskId){mask=$("#"+conf.maskId);}
if(!mask||!mask.length){var size=viewport();mask=$('<div/>').css({position:'absolute',top:0,left:0,width:size[0],height:size[1],display:'none',opacity:0,zIndex:conf.zIndex});if(conf.maskId){mask.attr("id",conf.maskId);}
$("body").append(mask);var bg=mask.css("backgroundColor");if(!bg||bg=='transparent'||bg=='rgba(0, 0, 0, 0)'){mask.css("backgroundColor",conf.color);}
if(conf.closeOnEsc){$(document).bind("keydown.unexpose",function(evt){if(evt.keyCode==27){self.close();}});}
if(conf.closeOnClick){mask.bind("click.unexpose",function(e){self.close(e);});}}
e=e||$.Event();e.type="onBeforeLoad";$self.trigger(e);if(e.isDefaultPrevented()){return self;}
$.each(els,function(){var el=$(this);if(!/relative|absolute|fixed/i.test(el.css("position"))){el.css("position","relative");}});els.css({zIndex:Math.max(conf.zIndex+1,origIndex=='auto'?0:origIndex)});var h=mask.height();if(!this.isLoaded()){mask.css({opacity:0,display:'block'}).fadeTo(conf.loadSpeed,conf.opacity,function(){if(mask.height()!=h){mask.css("height",h);}
e.type="onLoad";$self.trigger(e);});}
loaded=true;return self;},close:function(e){if(!loaded){return self;}
e=e||$.Event();e.type="onBeforeClose";$self.trigger(e);if(e.isDefaultPrevented()){return self;}
mask.fadeOut(conf.closeSpeed,function(){e.type="onClose";$self.trigger(e);els.css({zIndex:$.browser.msie?origIndex:null});});loaded=false;return self;},fit:function(){if(mask){var size=viewport();mask.css({width:size[0],height:size[1]});}},bind:function(name,fn){$self.bind(name,fn);return self;},unbind:function(name){$self.unbind(name);return self;}});$.each("onBeforeLoad,onLoad,onBeforeClose,onClose".split(","),function(i,ev){self[ev]=function(fn){return self.bind(ev,fn);};});}
$.fn.expose=function(conf){var el=this.eq(typeof conf=='number'?conf:0).data("expose");if(el){return el;}
if(typeof conf=='string'){conf={color:conf};}
var globals=$.extend({},$.tools.expose.conf);conf=$.extend(globals,conf);this.each(function(){el=new Expose($(this),conf);$(this).data("expose",el);});return conf.api?el:this;};})(jQuery);(function($){$.tools=$.tools||{};$.tools.scrollable={version:'1.1.2',conf:{size:5,vertical:false,speed:400,keyboard:true,keyboardSteps:null,disabledClass:'disabled',hoverClass:null,clickable:true,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($){$.tools=$.tools||{};$.tools.overlay={version:'1.1.2',addEffect:function(name,loadFn,closeFn){effects[name]=[loadFn,closeFn];},conf:{top:'10%',left:'center',absolute:false,speed:'normal',closeSpeed:'fast',effect:'default',close:null,oneInstance:true,closeOnClick:true,closeOnEsc:true,api:false,expose:null,target:null}};var effects={};$.tools.overlay.addEffect('default',function(onLoad){this.getOverlay().fadeIn(this.getConf().speed,onLoad);},function(onClose){this.getOverlay().fadeOut(this.getConf().closeSpeed,onClose);});var instances=[];function Overlay(trigger,conf){var self=this,$self=$(this),w=$(window),closers,overlay,opened,expose=conf.expose&&$.tools.expose.version;var jq=conf.target||trigger.attr("rel");overlay=jq?$(jq):null||trigger;if(!overlay.length){throw"Could not find Overlay: "+jq;}
if(trigger&&trigger.index(overlay)==-1){trigger.click(function(e){self.load(e);return e.preventDefault();});}
$.each(conf,function(name,fn){if($.isFunction(fn)){$self.bind(name,fn);}});$.extend(self,{load:function(e){if(self.isOpened()){return self;}
var eff=effects[conf.effect];if(!eff){throw"Overlay: cannot find effect : \""+conf.effect+"\"";}
if(conf.oneInstance){$.each(instances,function(){this.close(e);});}
e=e||$.Event();e.type="onBeforeLoad";$self.trigger(e);if(e.isDefaultPrevented()){return self;}
opened=true;if(expose){overlay.expose().load(e);}
var top=conf.top;var left=conf.left;var oWidth=overlay.outerWidth({margin:true});var oHeight=overlay.outerHeight({margin:true});if(typeof top=='string'){top=top=='center'?Math.max((w.height()-oHeight)/2,0):parseInt(top,10)/100*w.height();}
if(left=='center'){left=Math.max((w.width()-oWidth)/2,0);}
if(!conf.absolute){top+=w.scrollTop();left+=w.scrollLeft();}
overlay.css({top:top,left:left,position:'absolute'});e.type="onStart";$self.trigger(e);eff[0].call(self,function(){if(opened){e.type="onLoad";$self.trigger(e);}});if(conf.closeOnClick){$(document).bind("click.overlay",function(e){if(!self.isOpened()){return;}
var et=$(e.target);if(et.parents(overlay).length>1){return;}
$.each(instances,function(){this.close(e);});});}
if(conf.closeOnEsc){$(document).unbind("keydown.overlay").bind("keydown.overlay",function(e){if(e.keyCode==27){$.each(instances,function(){this.close(e);});}});}
return self;},close:function(e){if(!self.isOpened()){return self;}
e=e||$.Event();e.type="onBeforeClose";$self.trigger(e);if(e.isDefaultPrevented()){return;}
opened=false;effects[conf.effect][1].call(self,function(){e.type="onClose";$self.trigger(e);});var allClosed=true;$.each(instances,function(){if(this.isOpened()){allClosed=false;}});if(allClosed){$(document).unbind("click.overlay").unbind("keydown.overlay");}
return self;},getContent:function(){return overlay;},getOverlay:function(){return overlay;},getTrigger:function(){return trigger;},getClosers:function(){return closers;},isOpened:function(){return opened;},getConf:function(){return conf;},bind:function(name,fn){$self.bind(name,fn);return self;},unbind:function(name){$self.unbind(name);return self;}});$.each("onBeforeLoad,onStart,onLoad,onBeforeClose,onClose".split(","),function(i,ev){self[ev]=function(fn){return self.bind(ev,fn);};});if(expose){if(typeof conf.expose=='string'){conf.expose={color:conf.expose};}
$.extend(conf.expose,{api:true,closeOnClick:conf.closeOnClick,closeOnEsc:false});var ex=overlay.expose(conf.expose);ex.onBeforeClose(function(e){self.close(e);});self.onClose(function(e){ex.close(e);});}
closers=overlay.find(conf.close||".close");if(!closers.length&&!conf.close){closers=$('<div class="close"></div>');overlay.prepend(closers);}
closers.click(function(e){self.close(e);});}
$.fn.overlay=function(conf){var el=this.eq(typeof conf=='number'?conf:0).data("overlay");if(el){return el;}
if($.isFunction(conf)){conf={onBeforeLoad:conf};}
var globals=$.extend({},$.tools.overlay.conf);conf=$.extend(true,globals,conf);this.each(function(){el=new Overlay($(this),conf);instances.push(el);$(this).data("overlay",el);});return conf.api?el:this;};})(jQuery);(function($){var t=$.tools.scrollable;t.plugins=t.plugins||{};t.plugins.navigator={version:'1.0.2',conf:{navi:'.navi',naviItem:null,activeClass:'active',indexed:false,api:false,idPrefix:null}};$.fn.navigator=function(conf){var globals=$.extend({},t.plugins.navigator.conf),ret;if(typeof conf=='string'){conf={navi:conf};}
conf=$.extend(globals,conf);this.each(function(){var api=$(this).scrollable(),root=api.getRoot(),navi=root.data("finder").call(null,conf.navi),els=null,buttons=api.getNaviButtons();if(api){ret=api;}
api.getNaviButtons=function(){return buttons.add(navi);};function reload(){if(!navi.children().length||navi.data("navi")==api){navi.empty();navi.data("navi",api);for(var i=0;i<api.getPageAmount();i++){navi.append($("<"+(conf.naviItem||'a')+"/>"));}
els=navi.children().each(function(i){var el=$(this);el.click(function(e){api.setPage(i);return e.preventDefault();});if(conf.indexed){el.text(i);}
if(conf.idPrefix){el.attr("id",conf.idPrefix+i);}});}else{els=conf.naviItem?navi.find(conf.naviItem):navi.children();els.each(function(i){var el=$(this);el.click(function(evt){api.setPage(i);return evt.preventDefault();});});}
els.eq(0).addClass(conf.activeClass);}
api.onStart(function(e,index){var cls=conf.activeClass;els.removeClass(cls).eq(api.getPageIndex()).addClass(cls);});api.onReload(function(){reload();});reload();var el=els.filter("[href="+location.hash+"]");if(el.length){api.move(els.index(el));}});return conf.api?ret:this;};})(jQuery);(function($){var t=$.tools.scrollable;t.plugins=t.plugins||{};t.plugins.autoscroll={version:'1.0.1',conf:{autoplay:true,interval:3000,autopause:true,steps:1,api:false}};$.fn.autoscroll=function(conf){if(typeof conf=='number'){conf={interval:conf};}
var opts=$.extend({},t.plugins.autoscroll.conf),ret;$.extend(opts,conf);this.each(function(){var api=$(this).scrollable();if(api){ret=api;}
var timer,hoverTimer,stopped=true;api.play=function(){if(timer){return;}
stopped=false;timer=setInterval(function(){api.move(opts.steps);},opts.interval);api.move(opts.steps);};api.pause=function(){timer=clearInterval(timer);};api.stop=function(){api.pause();stopped=true;};if(opts.autopause){api.getRoot().add(api.getNaviButtons()).hover(function(){api.pause();clearInterval(hoverTimer);},function(){if(!stopped){hoverTimer=setTimeout(api.play,opts.interval);}});}
if(opts.autoplay){setTimeout(api.play,opts.interval);}});return opts.api?ret:this;};})(jQuery);
