/*
 * jquery.tools 1.1.2 - The missing UI library for the Web
 * 
 * [tools.scrollable-1.1.2, tools.scrollable.circular-0.5.1, tools.scrollable.autoscroll-1.0.1, tools.scrollable.navigator-1.0.2, tools.scrollable.mousewheel-1.0.1]
 * 
 * Copyright (c) 2009 Tero Piirainen
 * http://flowplayer.org/tools/
 *
 * Dual licensed under MIT and GPL 2+ licenses
 * http://www.opensource.org/licenses
 * 
 * -----
 * 
 * jquery.event.wheel.js - rev 1 
 * Copyright (c) 2008, Three Dub Media (http://threedubmedia.com)
 * Liscensed under the MIT License (MIT-LICENSE.txt)
 * http://www.opensource.org/licenses/mit-license.php
 * Created: 2008-07-01 | Updated: 2008-07-14
 * 
 * -----
 * 
 * File generated: Wed Oct 07 11:28:41 GMT+00:00 2009
 */
(function(b){
    b.tools=b.tools||{};b.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",
            loop:false,
            items:".items",
            item:null,
            prev:".prev",
            next:".next",
            prevPage:".prevPage",
            nextPage:".nextPage",
            api:false
        }
        };var c;function a(o,m){
        var r=this,p=b(this),d=!m.vertical,e=o.children(),k=0,i;if(!c){
            c=r
            }b.each(m,function(s,t){
            if(b.isFunction(t)){
                p.bind(s,t)
                }
            });if(e.length>1){
            e=b(m.items,o)
            }function l(t){
            var s=b(t);return m.globalNav?s:o.parent().find(t)
            }o.data("finder",l);var f=l(m.prev),h=l(m.next),g=l(m.prevPage),n=l(m.nextPage);b.extend(r,{
            getIndex:function(){
                return k
                },
            getClickIndex:function(){
                var s=r.getItems();return s.index(s.filter("."+m.activeClass))
                },
            getConf:function(){
                return m
                },
            getSize:function(){
                return r.getItems().size()
                },
            getPageAmount:function(){
                return Math.ceil(this.getSize()/m.size)
                },
            getPageIndex:function(){
                return Math.ceil(k/m.size)
                },
            getNaviButtons:function(){
                return f.add(h).add(g).add(n)
                },
            getRoot:function(){
                return o
                },
            getItemWrap:function(){
                return e
                },
            getItems:function(){
                return e.children(m.item)
                },
            getVisibleItems:function(){
                return r.getItems().slice(k,k+m.size)
                },
            seekTo:function(s,w,t){
                if(s<0){
                    s=0
                    }if(k===s){
                    return r
                    }if(b.isFunction(w)){
                    t=w
                    }if(s>r.getSize()-m.size){
                    return m.loop?r.begin():this.end()
                    }var u=r.getItems().eq(s);if(!u.length){
                    return r
                    }var v=b.Event("onBeforeSeek");p.trigger(v,[s]);if(v.isDefaultPrevented()){
                    return r
                    }if(w===undefined||b.isFunction(w)){
                    w=m.speed
                    }function x(){
                    if(t){
                        t.call(r,s)
                        }p.trigger("onSeek",[s])
                    }if(d){
                    e.animate({
                        left:-u.position().left
                        },w,m.easing,x)
                    }else{
                    e.animate({
                        top:-u.position().top
                        },w,m.easing,x)
                    }c=r;k=s;v=b.Event("onStart");p.trigger(v,[s]);if(v.isDefaultPrevented()){
                    return r
                    }f.add(g).toggleClass(m.disabledClass,s===0);h.add(n).toggleClass(m.disabledClass,s>=r.getSize()-m.size);return r
                },
            move:function(u,t,s){
                i=u>0;return this.seekTo(k+u,t,s)
                },
            next:function(t,s){
                return this.move(1,t,s)
                },
            prev:function(t,s){
                return this.move(-1,t,s)
                },
            movePage:function(w,v,u){
                i=w>0;var s=m.size*w;var t=k%m.size;if(t>0){
                    s+=(w>0?-t:m.size-t)
                    }return this.move(s,v,u)
                },
            prevPage:function(t,s){
                return this.movePage(-1,t,s)
                },
            nextPage:function(t,s){
                return this.movePage(1,t,s)
                },
            setPage:function(t,u,s){
                return this.seekTo(t*m.size,u,s)
                },
            begin:function(t,s){
                i=false;return this.seekTo(0,t,s)
                },
            end:function(t,s){
                i=true;var u=this.getSize()-m.size;return u>0?this.seekTo(u,t,s):r
                },
            reload:function(){
                p.trigger("onReload");return r
                },
            focus:function(){
                c=r;return r
                },
            click:function(u){
                var v=r.getItems().eq(u),s=m.activeClass,t=m.size;if(u<0||u>=r.getSize()){
                    return r
                    }if(t==1){
                    if(m.loop){
                        return r.next()
                        }if(u===0||u==r.getSize()-1){
                        i=(i===undefined)?true:!i
                        }return i===false?r.prev():r.next()
                    }if(t==2){
                    if(u==k){
                        u--
                    }r.getItems().removeClass(s);v.addClass(s);return r.seekTo(u,time,fn)
                    }if(!v.hasClass(s)){
                    r.getItems().removeClass(s);v.addClass(s);var x=Math.floor(t/2);var w=u-x;if(w>r.getSize()-t){
                        w=r.getSize()-t
                        }if(w!==u){
                        return r.seekTo(w)
                        }
                    }return r
                },
            bind:function(s,t){
                p.bind(s,t);return r
                },
            unbind:function(s){
                p.unbind(s);return r
                }
            });b.each("onBeforeSeek,onStart,onSeek,onReload".split(","),function(s,t){
            r[t]=function(u){
                return r.bind(t,u)
                }
            });f.addClass(m.disabledClass).click(function(){
            r.prev()
            });h.click(function(){
            r.next()
            });n.click(function(){
            r.nextPage()
            });if(r.getSize()<m.size){
            h.add(n).addClass(m.disabledClass)
            }g.addClass(m.disabledClass).click(function(){
            r.prevPage()
            });var j=m.hoverClass,q="keydown."+Math.random().toString().substring(10);r.onReload(function(){
            if(j){
                r.getItems().hover(function(){
                    b(this).addClass(j)
                    },function(){
                    b(this).removeClass(j)
                    })
                }if(m.clickable){
                r.getItems().each(function(s){
                    b(this).unbind("click.scrollable").bind("click.scrollable",function(t){
                        if(b(t.target).is("a")){
                            return
                        }return r.click(s)
                        })
                    })
                }if(m.keyboard){
                b(document).unbind(q).bind(q,function(t){
                    if(t.altKey||t.ctrlKey){
                        return
                    }if(m.keyboard!="static"&&c!=r){
                        return
                    }var u=m.keyboardSteps;if(d&&(t.keyCode==37||t.keyCode==39)){
                        r.move(t.keyCode==37?-u:u);return t.preventDefault()
                        }if(!d&&(t.keyCode==38||t.keyCode==40)){
                        r.move(t.keyCode==38?-u:u);return t.preventDefault()
                        }return true
                    })
                }else{
                b(document).unbind(q)
                }
            });r.reload()
        }b.fn.scrollable=function(d){
        var e=this.eq(typeof d=="number"?d:0).data("scrollable");if(e){
            return e
            }var f=b.extend({},b.tools.scrollable.conf);d=b.extend(f,d);d.keyboardSteps=d.keyboardSteps||d.size;this.each(function(){
            e=new a(b(this),d);b(this).data("scrollable",e)
            });return d.api?e:this
        }
    })(jQuery);
(function(b){
    var a=b.tools.scrollable;a.plugins=a.plugins||{};a.plugins.circular={
        version:"0.5.1",
        conf:{
            api:false,
            clonedClass:"cloned"
        }
        };b.fn.circular=function(e){
        var d=b.extend({},a.plugins.circular.conf),c;b.extend(d,e);this.each(function(){
            var i=b(this).scrollable(),n=i.getItems(),k=i.getConf(),f=i.getItemWrap(),j=0;if(i){
                c=i
                }if(n.length<k.size){
                return false
                }n.slice(0,k.size).each(function(o){
                b(this).clone().appendTo(f).click(function(){
                    i.click(n.length+o)
                    }).addClass(d.clonedClass)
                });var l=b.makeArray(n.slice(-k.size)).reverse();b(l).each(function(o){
                b(this).clone().prependTo(f).click(function(){
                    i.click(-o-1)
                    }).addClass(d.clonedClass)
                });var m=f.children(k.item);var h=k.hoverClass;if(h){
                m.hover(function(){
                    b(this).addClass(h)
                    },function(){
                    b(this).removeClass(h)
                    })
                }function g(o){
                var p=m.eq(o);if(k.vertical){
                    f.css({
                        top:-p.position().top
                        })
                    }else{
                    f.css({
                        left:-p.position().left
                        })
                    }
                }g(k.size);b.extend(i,{
                move:function(s,r,p,q){
                    var u=j+s+k.size;var t=u>i.getSize()-k.size;if(u<=0||t){
                        var o=j+k.size+(t?-n.length:n.length);g(o);u=o+s
                        }if(q){
                        m.removeClass(k.activeClass).eq(u+Math.floor(k.size/2)).addClass(k.activeClass)
                        }if(u===j+k.size){
                        return self
                        }return i.seekTo(u,r,p)
                    },
                begin:function(p,o){
                    return this.seekTo(k.size,p,o)
                    },
                end:function(p,o){
                    return this.seekTo(n.length,p,o)
                    },
                click:function(p,r,q){
                    if(!k.clickable){
                        return self
                        }if(k.size==1){
                        return this.next()
                        }var s=p-j,o=k.activeClass;s-=Math.floor(k.size/2);return this.move(s,r,q,true)
                    },
                getIndex:function(){
                    return j
                    },
                setPage:function(p,q,o){
                    return this.seekTo(p*k.size+k.size,q,o)
                    },
                getPageAmount:function(){
                    return Math.ceil(n.length/k.size)
                    },
                getPageIndex:function(){
                    if(j<0){
                        return this.getPageAmount()-1
                        }if(j>=n.length){
                        return 0
                        }var o=(j+k.size)/k.size-1;return o
                    },
                getVisibleItems:function(){
                    var o=j+k.size;return m.slice(o,o+k.size)
                    }
                });i.onStart(function(p,o){
                j=o-k.size;return false
                });i.getNaviButtons().removeClass(k.disabledClass)
            });return d.api?c:this
        }
    })(jQuery);
(function(b){
    var a=b.tools.scrollable;a.plugins=a.plugins||{};a.plugins.autoscroll={
        version:"1.0.1",
        conf:{
            autoplay:true,
            interval:3000,
            autopause:true,
            steps:1,
            api:false
        }
        };b.fn.autoscroll=function(d){
        if(typeof d=="number"){
            d={
                interval:d
            }
            }var e=b.extend({},a.plugins.autoscroll.conf),c;b.extend(e,d);this.each(function(){
            var g=b(this).scrollable();if(g){
                c=g
                }var i,f,h=true;g.play=function(){
                if(i){
                    return
                }h=false;i=setInterval(function(){
                    g.move(e.steps)
                    },e.interval);g.move(e.steps)
                };g.pause=function(){
                i=clearInterval(i)
                };g.stop=function(){
                g.pause();h=true
                };if(e.autopause){
                g.getRoot().add(g.getNaviButtons()).hover(function(){
                    g.pause();clearInterval(f)
                    },function(){
                    if(!h){
                        f=setTimeout(g.play,e.interval)
                        }
                    })
                }if(e.autoplay){
                setTimeout(g.play,e.interval)
                }
            });return e.api?c:this
        }
    })(jQuery);
(function(b){
    var a=b.tools.scrollable;a.plugins=a.plugins||{};a.plugins.navigator={
        version:"1.0.2",
        conf:{
            navi:".navi",
            naviItem:null,
            activeClass:"active",
            indexed:false,
            api:false,
            idPrefix:null
        }
        };b.fn.navigator=function(d){
        var e=b.extend({},a.plugins.navigator.conf),c;if(typeof d=="string"){
            d={
                navi:d
            }
            }d=b.extend(e,d);this.each(function(){
            var i=b(this).scrollable(),f=i.getRoot(),l=f.data("finder").call(null,d.navi),g=null,k=i.getNaviButtons();if(i){
                c=i
                }i.getNaviButtons=function(){
                return k.add(l)
                };function j(){
                if(!l.children().length||l.data("navi")==i){
                    l.empty();l.data("navi",i);for(var m=0;m<i.getPageAmount();m++){
                        l.append(b("<"+(d.naviItem||"a")+"/>"))
                        }g=l.children().each(function(n){
                        var o=b(this);o.click(function(p){
                            i.setPage(n);return p.preventDefault()
                            });if(d.indexed){
                            o.text(n)
                            }if(d.idPrefix){
                            o.attr("id",d.idPrefix+n)
                            }
                        })
                    }else{
                    g=d.naviItem?l.find(d.naviItem):l.children();g.each(function(n){
                        var o=b(this);o.click(function(p){
                            i.setPage(n);return p.preventDefault()
                            })
                        })
                    }g.eq(0).addClass(d.activeClass)
                }i.onStart(function(o,n){
                var m=d.activeClass;g.removeClass(m).eq(i.getPageIndex()).addClass(m)
                });i.onReload(function(){
                j()
                });j();var h=g.filter("[href="+location.hash+"]");if(h.length){
                i.move(g.index(h))
                }
            });return d.api?c:this
        }
    })(jQuery);
(function(b){
    b.fn.wheel=function(e){
        return this[e?"bind":"trigger"]("wheel",e)
        };b.event.special.wheel={
        setup:function(){
            b.event.add(this,d,c,{})
            },
        teardown:function(){
            b.event.remove(this,d,c)
            }
        };var d=!b.browser.mozilla?"mousewheel":"DOMMouseScroll"+(b.browser.version<"1.9"?" mousemove":"");function c(e){
        switch(e.type){
            case"mousemove":return b.extend(e.data,{
                clientX:e.clientX,
                clientY:e.clientY,
                pageX:e.pageX,
                pageY:e.pageY
                });case"DOMMouseScroll":b.extend(e,e.data);e.delta=-e.detail/3;break;case"mousewheel":e.delta=e.wheelDelta/120;break
                }e.type="wheel";return b.event.handle.call(this,e,e.delta)
        }var a=b.tools.scrollable;a.plugins=a.plugins||{};a.plugins.mousewheel={
        version:"1.0.1",
        conf:{
            api:false,
            speed:50
        }
        };b.fn.mousewheel=function(f){
        var g=b.extend({},a.plugins.mousewheel.conf),e;if(typeof f=="number"){
            f={
                speed:f
            }
            }f=b.extend(g,f);this.each(function(){
            var h=b(this).scrollable();if(h){
                e=h
                }h.getRoot().wheel(function(i,j){
                h.move(j<0?1:-1,f.speed||50);return false
                })
            });return f.api?e:this
        }
    })(jQuery);

