/*
 * jQuery Tools 1.2.2 - The missing UI library for the Web
 * 
 * [scrollable, scrollable.autoscroll, scrollable.navigator]
 * 
 * NO COPYRIGHTS OR LICENSES. DO WHAT YOU LIKE.
 * 
 * http://flowplayer.org/tools/
 * 
 * File generated: Tue May 25 07:46:33 GMT 2010
 */
(function(e) {
	function n(f, c) {
		var a = e(c);
		return a.length < 2 ? a : f.parent().find(c)
	}
	function t(f, c) {
		var a = this, l = f.add(a), g = f.children(), k = 0, m = c.vertical;
		j || (j = a);
		if (g.length > 1)
			g = e(c.items, f);
		e.extend(a, {
			getConf : function() {
				return c
			},
			getIndex : function() {
				return k
			},
			getSize : function() {
				return a.getItems().size()
			},
			getNaviButtons : function() {
				return o.add(p)
			},
			getRoot : function() {
				return f
			},
			getItemWrap : function() {
				return g
			},
			getItems : function() {
				return g.children(c.item).not("." + c.clonedClass)
			},
			move : function(b, d) {
				return a.seekTo(k + b, d)
			},
			next : function(b) {
				return a.move(1, b)
			},
			prev : function(b) {
				return a.move(-1, b)
			},
			begin : function(b) {
				return a.seekTo(0, b)
			},
			end : function(b) {
				return a.seekTo(a.getSize() - 1, b)
			},
			focus : function() {
				return j = a
			},
			addItem : function(b) {
				b = e(b);
				if (c.circular) {
					e(".cloned:last").before(b);
					e(".cloned:first").replaceWith(
							b.clone().addClass(c.clonedClass))
				} else
					g.append(b);
				l.trigger("onAddItem", [ b ]);
				return a
			},
			seekTo : function(b, d, h) {
				if (c.circular && b === 0 && k == -1 && d !== 0)
					return a;
				if (!c.circular && b < 0 || b > a.getSize() || b < -1)
					return a;
				var i = b;
				if (b.jquery)
					b = a.getItems().index(b);
				else
					i = a.getItems().eq(b);
				var q = e.Event("onBeforeSeek");
				if (!h) {
					l.trigger(q, [ b, d ]);
					if (q.isDefaultPrevented() || !i.length)
						return a
				}
				i = m ? {
					top : -i.position().top
				} : {
					left : -i.position().left
				};
				k = b;
				j = a;
				if (d === undefined)
					d = c.speed;
				g.animate(i, d, c.easing, h || function() {
					l.trigger("onSeek", [ b ])
				});
				return a
			}
		});
		e.each( [ "onBeforeSeek", "onSeek", "onAddItem" ], function(b, d) {
			e.isFunction(c[d]) && e(a).bind(d, c[d]);
			a[d] = function(h) {
				e(a).bind(d, h);
				return a
			}
		});
		if (c.circular) {
			var r = a.getItems().slice(-1).clone().prependTo(g), s = a
					.getItems().eq(1).clone().appendTo(g);
			r.add(s).addClass(c.clonedClass);
			a.onBeforeSeek(function(b, d, h) {
				if (!b.isDefaultPrevented())
					if (d == -1) {
						a.seekTo(r, h, function() {
							a.end(0)
						});
						return b.preventDefault()
					} else
						d == a.getSize() && a.seekTo(s, h, function() {
							a.begin(0)
						})
			});
			a.seekTo(0, 0)
		}
		var o = n(f, c.prev).click(function() {
			a.prev()
		}), p = n(f, c.next).click(function() {
			a.next()
		});
		!c.circular && a.getSize() > 1 && a.onBeforeSeek(function(b, d) {
			o.toggleClass(c.disabledClass, d <= 0);
			p.toggleClass(c.disabledClass, d >= a.getSize() - 1)
		});
		c.mousewheel && e.fn.mousewheel && f.mousewheel(function(b, d) {
			if (c.mousewheel) {
				a.move(d < 0 ? 1 : -1, c.wheelSpeed || 50);
				return false
			}
		});
		c.keyboard
				&& e(document).bind(
						"keydown.scrollable",
						function(b) {
							if (!(!c.keyboard || b.altKey || b.ctrlKey || e(
									b.target).is(":input")))
								if (!(c.keyboard != "static" && j != a)) {
									var d = b.keyCode;
									if (m && (d == 38 || d == 40)) {
										a.move(d == 38 ? -1 : 1);
										return b.preventDefault()
									}
									if (!m && (d == 37 || d == 39)) {
										a.move(d == 37 ? -1 : 1);
										return b.preventDefault()
									}
								}
						});
		e(a).trigger("onBeforeSeek", [ c.initialIndex ])
	}
	e.tools = e.tools || {
		version : "1.2.2"
	};
	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,
			wheelSpeed : 0
		}
	};
	var j;
	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 t(e(this), f);
			e(this).data("scrollable", c)
		});
		return f.api ? c : this
	}
})(jQuery);
(function(c) {
	var g = c.tools.scrollable;
	g.autoscroll = {
		conf : {
			autoplay : true,
			interval : 3E3,
			autopause : true
		}
	};
	c.fn.autoscroll = function(d) {
		if (typeof d == "number")
			d = {
				interval : d
			};
		var b = c.extend( {}, g.autoscroll.conf, d), h;
		this.each(function() {
			var a = c(this).data("scrollable");
			if (a)
				h = a;
			var e, i, f = true;
			a.play = function() {
				if (!e) {
					f = false;
					e = setInterval(function() {
						a.next()
					}, b.interval);
					a.next()
				}
			};
			a.pause = function() {
				e = clearInterval(e)
			};
			a.stop = function() {
				a.pause();
				f = true
			};
			b.autopause
					&& a.getRoot().add(a.getNaviButtons()).hover(function() {
						a.pause();
						clearInterval(i)
					}, function() {
						f || (i = setTimeout(a.play, b.interval))
					});
			b.autoplay && setTimeout(a.play, b.interval)
		});
		return b.api ? h : this
	}
})(jQuery);
(function(d) {
	function p(c, g) {
		var h = d(g);
		return h.length < 2 ? h : c.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(c) {
		if (typeof c == "string")
			c = {
				navi : c
			};
		c = d.extend( {}, m.navigator.conf, c);
		var g;
		this
				.each(function() {
					function h(a, b, i) {
						e.seekTo(b);
						if (j) {
							if (location.hash)
								location.hash = a.attr("href").replace("#", "")
						} else
							return i.preventDefault()
					}
					function f() {
						return k.find(c.naviItem || "> *")
					}
					function n(a) {
						var b = d("<" + (c.naviItem || "a") + "/>").click(
								function(i) {
									h(d(this), a, i)
								}).attr("href", "#" + a);
						a === 0 && b.addClass(l);
						c.indexed && b.text(a + 1);
						c.idPrefix && b.attr("id", c.idPrefix + a);
						return b.appendTo(k)
					}
					function o(a, b) {
						a = f().eq(b.replace("#", ""));
						a.length || (a = f().filter("[href=" + b + "]"));
						a.click()
					}
					var e = d(this).data("scrollable"), k = p(e.getRoot(),
							c.navi), q = e.getNaviButtons(), l = c.activeClass, j = c.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(b) {
							h(d(this), a, b)
						})
					}) : d.each(e.getItems(), function(a) {
						n(a)
					});
					e.onBeforeSeek(function(a, b) {
						var i = f().eq(b);
						!a.isDefaultPrevented() && i.length
								&& f().removeClass(l).eq(b).addClass(l)
					});
					e.onAddItem(function(a, b) {
						b = n(e.getItems().index(b));
						j && b.history(o)
					});
					j && f().history(o)
				});
		return c.api ? g : this
	}
})(jQuery);

