// JavaScript Document
/*
 * jquery.tools 1.1.2 - The missing UI library for the Web
 * 
 * [tools.scrollable-1.1.2, tools.scrollable.circular-0.5.1, tools.overlay-1.1.2]
 * 
 * Copyright (c) 2009 Tero Piirainen
 * http://flowplayer.org/tools/
 *
 * Dual licensed under MIT and GPL 2+ licenses
 * http://www.opensource.org/licenses
 * 
 * -----
 * 
 * File generated: Wed Apr 07 17:42:02 GMT 2010
 */
(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",
			easing:"swing",
			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.find('.cpage'),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)*/
				return this.move(w,v,u)
			},
			prevPage:function(t,s){
				for(prop in t){
					alert(prop+': '+t[prop]);
				}
				return this.movePage(-1,t,s)
			},
			nextPage:function(t,s){
				for(prop in t){
					alert(prop+': '+t[prop]);
				}
				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){
			//alert(r.getSize());
			//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(c){
	c.tools=c.tools||{
	
	};
	c.tools.overlay={
	version:"1.1.2",addEffect:function(e,f,g){
	b[e]=[f,g]
	},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 b={
	
	};
	c.tools.overlay.addEffect("default",function(e){
	this.getOverlay().fadeIn(this.getConf().speed,e)
	},function(e){
	this.getOverlay().fadeOut(this.getConf().closeSpeed,e)
	});
	var d=[];
	function a(g,k){
	var o=this,m=c(this),n=c(window),j,i,h,e=k.expose&&c.tools.expose.version;
	var f=k.target||g.attr("rel");
	i=f?c(f):null||g;
	if(!i.length){
	throw"Could not find Overlay: "+f
	}if(g&&g.index(i)==-1){
	g.click(function(p){
	o.load(p);
	return p.preventDefault()
	})
	}c.each(k,function(p,q){
	if(c.isFunction(q)){
	m.bind(p,q)
	}
	});
	c.extend(o,{
	load:function(u){
	if(o.isOpened()){
	return o
	}var r=b[k.effect];
	if(!r){
	throw'Overlay: cannot find effect : "'+k.effect+'"'
	}if(k.oneInstance){
	c.each(d,function(){
	this.close(u)
	})
	}u=u||c.Event();
	u.type="onBeforeLoad";
	m.trigger(u);
	if(u.isDefaultPrevented()){
	return o
	}h=true;
	if(e){
	i.expose().load(u)
	}var t=k.top;
	var s=k.left;
	var p=i.outerWidth({
	margin:true
	});
	var q=i.outerHeight({
	margin:true
	});
	if(typeof t=="string"){
	t=t=="center"?Math.max((n.height()-q)/2,0):parseInt(t,10)/100*n.height()
	}if(s=="center"){
	s=Math.max((n.width()-p)/2,0)
	}if(!k.absolute){
	t+=n.scrollTop();
	s+=n.scrollLeft()
	}i.css({
	top:t,left:s,position:"absolute"
	});
	u.type="onStart";
	m.trigger(u);
	r[0].call(o,function(){
	if(h){
	u.type="onLoad";
	m.trigger(u)
	}
	});
	if(k.closeOnClick){
	c(document).bind("click.overlay",function(w){
	if(!o.isOpened()){
	return
	}var v=c(w.target);
	if(v.parents(i).length>1){
	return
	}c.each(d,function(){
	this.close(w)
	})
	})
	}if(k.closeOnEsc){
	c(document).unbind("keydown.overlay").bind("keydown.overlay",function(v){
	if(v.keyCode==27){
	c.each(d,function(){
	this.close(v)
	})
	}
	})
	}return o
	},close:function(q){
	if(!o.isOpened()){
	return o
	}q=q||c.Event();
	q.type="onBeforeClose";
	m.trigger(q);
	if(q.isDefaultPrevented()){
	return
	}h=false;
	b[k.effect][1].call(o,function(){
	q.type="onClose";
	m.trigger(q)
	});
	var p=true;
	c.each(d,function(){
	if(this.isOpened()){
	p=false
	}
	});
	if(p){
	c(document).unbind("click.overlay").unbind("keydown.overlay")
	}return o
	},getContent:function(){
	return i
	},getOverlay:function(){
	return i
	},getTrigger:function(){
	return g
	},getClosers:function(){
	return j
	},isOpened:function(){
	return h
	},getConf:function(){
	return k
	},bind:function(p,q){
	m.bind(p,q);
	return o
	},unbind:function(p){
	m.unbind(p);
	return o
	}
	});
	c.each("onBeforeLoad,onStart,onLoad,onBeforeClose,onClose".split(","),function(p,q){
	o[q]=function(r){
	return o.bind(q,r)
	}
	});
	if(e){
	if(typeof k.expose=="string"){
	k.expose={
	color:k.expose
	}
	}c.extend(k.expose,{
	api:true,closeOnClick:k.closeOnClick,closeOnEsc:false
	});
	var l=i.expose(k.expose);
	l.onBeforeClose(function(p){
	o.close(p)
	});
	o.onClose(function(p){
	l.close(p)
	})
	}j=i.find(k.close||".close");
	if(!j.length&&!k.close){
	j=c('<div class="close"></div>');
	i.prepend(j)
	}j.click(function(p){
	o.close(p)
	})
	}c.fn.overlay=function(e){
	var f=this.eq(typeof e=="number"?e:0).data("overlay");
	if(f){
	return f
	}if(c.isFunction(e)){
	e={
	onBeforeLoad:e
	}
	}var g=c.extend({
	
	},c.tools.overlay.conf);
	e=c.extend(true,g,e);
	this.each(function(){
	f=new a(c(this),e);
	d.push(f);
	c(this).data("overlay",f)
	});
	return e.api?f:this
	}
})(jQuery);



