/*

 jQuery142 Tools 1.2.5 Scrollable - New wave UI design

 NO COPYRIGHTS OR LICENSES. DO WHAT YOU LIKE.

 http://flowplayer.org/tools/scrollable.html

 Since: March 2008
 Date:    Wed Sep 22 06:02:10 2010 +0000
*/
(function(e){
	function p(f,c){
		var b=e(c);
		return b.length<2?b:f.parent().find(c)
		}
		function u(f,c){
		var b=this,n=f.add(b),g=f.children(),l=0,j=c.vertical;
		k||(k=b);
		if(g.length>1)g=e(c.items,f);
		e.extend(b,{
			getConf:function(){
				return c
				},
			getIndex:function(){
				return l
				},
			getSize:function(){
				return b.getItems().size()
				},
			getNaviButtons:function(){
				return o.add(q)
				},
			getRoot:function(){
				return f
				},
			getItemWrap:function(){
				return g
				},
			getItems:function(){
				return g.children(c.item).not("."+c.clonedClass)
				},
			move:function(a,d){
				return b.seekTo(l+
					a,d)
				},
			next:function(a){
				return b.move(1,a)
				},
			prev:function(a){
				return b.move(-1,a)
				},
			begin:function(a){
				return b.seekTo(0,a)
				},
			end:function(a){
				return b.seekTo(b.getSize()-1,a)
				},
			focus:function(){
				return k=b
				},
			addItem:function(a){
				a=e(a);
				if(c.circular){
					g.children("."+c.clonedClass+":last").before(a);
					g.children("."+c.clonedClass+":first").replaceWith(a.clone().addClass(c.clonedClass))
					}else g.append(a);
				n.trigger("onAddItem",[a]);
				return b
				},
			seekTo:function(a,d,h){
				a.jquery||(a*=1);
				if(c.circular&&a===0&&l==-1&&d!==
					0)return b;
				if(!c.circular&&a<0||a>b.getSize()||a<-1)return b;
				var i=a;
				if(a.jquery)a=b.getItems().index(a);else i=b.getItems().eq(a);
				var r=e.Event("onBeforeSeek");
				if(!h){
					n.trigger(r,[a,d]);
					if(r.isDefaultPrevented()||!i.length)return b
						}
						i=j?{
					top:-i.position().top
					}:{
					left:-i.position().left
					};
					
				l=a;
				k=b;
				if(d===undefined)d=c.speed;
				g.animate(i,d,c.easing,h||function(){
					n.trigger("onSeek",[a])
					});
				return b
				}
			});
	e.each(["onBeforeSeek","onSeek","onAddItem"],function(a,d){
		e.isFunction(c[d])&&e(b).bind(d,c[d]);
		b[d]=function(h){
			h&&
			e(b).bind(d,h);
			return b
			}
		});
if(c.circular){
	var s=b.getItems().slice(-1).clone().prependTo(g),t=b.getItems().eq(1).clone().appendTo(g);
	s.add(t).addClass(c.clonedClass);
	b.onBeforeSeek(function(a,d,h){
		if(!a.isDefaultPrevented())if(d==-1){
			b.seekTo(s,h,function(){
				b.end(0)
				});
			return a.preventDefault()
			}else d==b.getSize()&&b.seekTo(t,h,function(){
			b.begin(0)
			})
		});
	b.seekTo(0,0,function(){})
	}
	var o=p(f,c.prev).click(function(){
	b.prev()
	}),q=p(f,c.next).click(function(){
	b.next()
	});
if(!c.circular&&b.getSize()>1){
	b.onBeforeSeek(function(a,
		d){
		setTimeout(function(){
			if(!a.isDefaultPrevented()){
				o.toggleClass(c.disabledClass,d<=0);
				q.toggleClass(c.disabledClass,d>=b.getSize()-1)
				}
			},1)
	});
c.initialIndex||o.addClass(c.disabledClass)
	}
	c.mousewheel&&e.fn.mousewheel&&f.mousewheel(function(a,d){
	if(c.mousewheel){
		b.move(d<0?1:-1,c.wheelSpeed||50);
		return false
		}
	});
if(c.touch){
	var m={};
	
	g[0].ontouchstart=function(a){
		a=a.touches[0];
		m.x=a.clientX;
		m.y=a.clientY
		};
		
	g[0].ontouchmove=function(a){
		if(a.touches.length==1&&!g.is(":animated")){
			var d=a.touches[0],h=
			m.x-d.clientX;
			d=m.y-d.clientY;
			b[j&&d>0||!j&&h>0?"next":"prev"]();
			a.preventDefault()
			}
		}
}
c.keyboard&&e(document).bind("keydown.scrollable",function(a){
	if(!(!c.keyboard||a.altKey||a.ctrlKey||e(a.target).is(":input")))if(!(c.keyboard!="static"&&k!=b)){
		var d=a.keyCode;
		if(j&&(d==38||d==40)){
			b.move(d==38?-1:1);
			return a.preventDefault()
			}
			if(!j&&(d==37||d==39)){
			b.move(d==37?-1:1);
			return a.preventDefault()
			}
		}
	});
c.initialIndex&&b.seekTo(c.initialIndex,0,function(){})
}
e.tools=e.tools||{
	version:"1.2.5"
};

e.tools.scrollable=
{
	conf:{
		activeClass:"active",
		circular:false,
		clonedClass:"cloned",
		disabledClass:"disabled",
		easing:"swing",
		initialIndex:0,
		item:null,
		items:".items",
		keyboard:true,
		mousewheel:false,
		next:".next",
		prev:".prev",
		speed:400,
		vertical:false,
		touch:true,
		wheelSpeed:0
	}
};

var k;
e.fn.scrollable=function(f){
	var c=this.data("scrollable");
	if(c)return c;
	f=e.extend({},e.tools.scrollable.conf,f);
	this.each(function(){
		c=new u(e(this),f);
		e(this).data("scrollable",c)
		});
	return f.api?c:this
	}
})($jq142);

/*

 jQuery142 Tools 1.2.5 / Scrollable Autoscroll

 NO COPYRIGHTS OR LICENSES. DO WHAT YOU LIKE.

 http://flowplayer.org/tools/scrollable/autoscroll.html

 Since: September 2009
 Date:    Wed Sep 22 06:02:10 2010 +0000
*/
(function(b){
	var f=b.tools.scrollable;
	f.autoscroll={
		conf:{
			autoplay:true,
			interval:3E3,
			autopause:true
		}
	};
	
b.fn.autoscroll=function(c){
	if(typeof c=="number")c={
		interval:c
	};
	
	var d=b.extend({},f.autoscroll.conf,c),g;
	this.each(function(){
		var a=b(this).data("scrollable");
		if(a)g=a;
		var e,h=true;
		a.play=function(){
			if(!e){
				h=false;
				e=setInterval(function(){
					a.next()
					},d.interval)
					a.next()
				}
			};
		
	a.pause=function(){
		e=clearInterval(e)
		};
		
	a.stop=function(){
		a.pause();
		h=true
		};
		
	//d.autopause&&a.getRoot().add(a.getNaviButtons()).hover(a.pause,a.play);
	d.autopause&&a.getRoot().hover(a.pause, function(){setTimeout(a.play,  d.interval)});
	d.autoplay&&setTimeout(a.play, d.interval);
		});
return d.api?g:this
}
})($jq142);

/*

 jQuery142 Tools 1.2.5 / Scrollable Navigator

 NO COPYRIGHTS OR LICENSES. DO WHAT YOU LIKE.

 http://flowplayer.org/tools/scrollable/navigator.html

 Since: September 2009
 Date:    Wed Sep 22 06:02:10 2010 +0000
*/
(function(d){
	function p(b,g){
		var h=d(g);
		return h.length<2?h:b.parent().find(g)
		}
		var m=d.tools.scrollable;
	m.navigator={
		conf:{
			navi:".navi",
			naviItem:null,
			activeClass:"active",
			indexed:false,
			idPrefix:null,
			history:false
		}
	};
	
d.fn.navigator=function(b){
	if(typeof b=="string")b={
		navi:b
	};
	
	b=d.extend({},m.navigator.conf,b);
	var g;
	this.each(function(){
		function h(a,c,i){
			e.seekTo(c);
			if(j){
				if(location.hash)location.hash=a.attr("href").replace("#","")
					}else return i.preventDefault()
				}
				function f(){
			return k.find(b.naviItem||
				"> *")
			}
			function n(a){
			var c=d("<"+(b.naviItem||"a")+"/>").click(function(i){
				h(d(this),a,i)
				}).attr("href","#"+a);
			a===0&&c.addClass(l);
			b.indexed&&c.text(a+1);
			b.idPrefix&&c.attr("id",b.idPrefix+a);
			return c.appendTo(k)
			}
			function o(a,c){
			a=f().eq(c.replace("#",""));
			a.length||(a=f().filter("[href="+c+"]"));
			a.click()
			}
			var e=d(this).data("scrollable"),k=b.navi.jquery?b.navi:p(e.getRoot(),b.navi),q=e.getNaviButtons(),l=b.activeClass,j=b.history&&d.fn.history;
		if(e)g=e;
		e.getNaviButtons=function(){
			return q.add(k)
			};
		f().length?f().each(function(a){
			d(this).click(function(c){
				h(d(this),a,c)
				})
			}):d.each(e.getItems(),function(a){
			n(a)
			});
		e.onBeforeSeek(function(a,c){
			setTimeout(function(){
				if(!a.isDefaultPrevented()){
					var i=f().eq(c);
					!a.isDefaultPrevented()&&i.length&&f().removeClass(l).eq(c).addClass(l)
					}
				},1)
		});
	e.onAddItem(function(a,c){
		c=n(e.getItems().index(c));
		j&&c.history(o)
		});
	j&&f().history(o)
		});
return b.api?g:this
}
})($jq142);

