/**
 * jQuery bxSlider v3.0
 * http://bxslider.com
 *
 * Copyright 2010, Steven Wanderski
 * http://bxcreative.com
 *
 * Free to use and abuse under the MIT license.
 * http://www.opensource.org/licenses/mit-license.php
 *
 */
(function(a) {
	a.fn.bxSlider= function(b) {
		function Z(b,c,d,e) {
			var f=[];
			var g=d;
			var h=false;
			if(e=="backward") {
				b=a.makeArray(b);
				b.reverse()
			}
			while(g>0) {
				a.each(b, function(b,d) {
					if(g>0) {
						if(!h) {
							if(b==c) {
								h=true;
								f.push(a(this).clone());
								g--
							}
						} else {
							f.push(a(this).clone());
							g--
						}
					} else {
						return false
					}
				})
			}
			return f
		}

		function Y() {
			var a=i.outerHeight()*b.displaySlideQty;
			return a
		}

		function X() {
			var a=i.outerWidth()*b.displaySlideQty;
			return a
		}

		function W(b,c) {
			if(c=="left") {var d=a(".pager",h).eq(b).position().left
			} else if(c=="top") {var d=a(".pager",h).eq(b).position().top
			}
			return d
		}

		function V() {
			if(!b.infiniteLoop&&b.hideControlOnEnd) {
				if(x==F) {
					a(".bx-prev",h).hide()
				} else {
					a(".bx-prev",h).show()
				}
				if(x==G) {
					a(".bx-next",h).hide()
				} else {
					a(".bx-next",h).show()
				}
			}
		}

		function U(c,e,f,g) {
			p=a('<a href="" class="bx-start"></a>');
			if(c=="text") {
				r=e
			} else {
				r='<img src="'+e+'" />'
			}
			if(f=="text") {
				s=g
			} else {
				s='<img src="'+g+'" />'
			}
			if(b.autoControlsSelector) {
				a(b.autoControlsSelector).append(p)
			} else {
				h.append('<div class="bx-auto"></div>');
				a(".bx-auto",h).html(p)
			}
			p.click( function() {
				if(b.ticker) {
					if(a(this).hasClass("stop")) {
						d.stopTicker()
					} else if(a(this).hasClass("start")) {
						d.startTicker()
					}
				} else {
					if(a(this).hasClass("stop")) {
						d.stopShow(true)
					} else if(a(this).hasClass("start")) {
						d.startShow(true)
					}
				}
				return false
			})
		}

		function T() {
			var c=a("img",g.eq(x)).attr("title");
			if(c!="") {
				if(b.captionsSelector) {
					a(b.captionsSelector).html(c)
				} else {
					a(".bx-captions",h).html(c)
				}
			} else {
				if(b.captionsSelector) {
					a(b.captionsSelector).html(" ")
				} else {
					a(".bx-captions",h).html(" ")
				}
			}
		}

		function S(c) {
			var e=g.length;
			if(b.moveSlideQty>1) {
				if(g.length%b.moveSlideQty!=0) {
					e=Math.ceil(g.length/b.moveSlideQty)
				} else {
					e=g.length/b.moveSlideQty
				}
			}
			var f="";
			if(b.buildPager) {
				for(var i=0;i<e;i++) {
					f+=b.buildPager(i,g.eq(i*b.moveSlideQty))
				}
			} else if(c=="full") {
				for(var i=1;i<=e;i++) {
					f+='<a href="" class="pager-link pager-'+i+'">'+i+"</a>"
				}
			} else if(c=="short") {
				f='<span class="bx-pager-current">'+(b.startingSlide+1)+"</span> "+b.pagerShortSeparator+' <span class="bx-pager-total">'+g.length+"</span>"
			}
			if(b.pagerSelector) {
				a(b.pagerSelector).append(f);
				n=a(b.pagerSelector)
			} else {
				var j=a('<div class="bx-pager"></div>');
				j.append(f);
				if(b.pagerLocation=="top") {
					h.prepend(j)
				} else if(b.pagerLocation=="bottom") {
					h.append(j)
				}
				n=a(".bx-pager",h)
			}
			n.children().click( function() {
				if(b.pagerType=="full") {
					var a=n.children().index(this);
					if(b.moveSlideQty>1) {
						a*=b.moveSlideQty
					}
					d.goToSlide(a)
				}
				return false
			})
		}

		function R(c,e,f,g) {
			var i=a('<a href="" class="bx-next"></a>');
			var j=a('<a href="" class="bx-prev"></a>');
			if(c=="text") {
				i.html(e)
			} else {
				i.html('<img src="'+e+'" />')
			}
			if(f=="text") {
				j.html(g)
			} else {
				j.html('<img src="'+g+'" />')
			}
			if(b.prevSelector) {
				a(b.prevSelector).append(j)
			} else {
				h.append(j)
			}
			if(b.nextSelector) {
				a(b.nextSelector).append(i)
			} else {
				h.append(i)
			}
			i.click( function() {
				d.goToNextSlide();
				return false
			});
			j.click( function() {
				d.goToPreviousSlide();
				return false
			})
		}

		function Q(c) {
			if(b.pagerType=="full"&&b.pager) {
				a("a",n).removeClass(b.pagerActiveClass);
				a("a",n).eq(c).addClass(b.pagerActiveClass)
			} else if(b.pagerType=="short"&&b.pager) {
				a(".bx-pager-current",n).html(x+1)
			}
		}

		function P() {
			g.not(":eq("+x+")").fadeTo(b.speed,0).css("zIndex",98);
			g.eq(x).css("zIndex",99).fadeTo(b.speed,1, function() {
				E=false;
				if(jQuery.browser.msie) {
					g.eq(x).get(0).style.removeAttribute("filter")
				}
				b.onAfterSlide(x,g.length,g.eq(x))
			})
		}

		function O() {
			e.hover( function() {
				if(t) {
					d.stopTicker(false)
				}
			}, function() {
				if(t) {
					d.startTicker(false)
				}
			})
		}

		function N() {
			h.find(".bx-window").hover( function() {
				if(t) {
					d.stopShow(false)
				}
			}, function() {
				if(t) {
					d.startShow(false)
				}
			})
		}

		function M() {
			if(b.startImage!="") {
				startContent=b.startImage;
				startType="image"
			} else {
				startContent=b.startText;
				startType="text"
			}
			if(b.stopImage!="") {
				stopContent=b.stopImage;
				stopType="image"
			} else {
				stopContent=b.stopText;
				stopType="text"
			}
			U(startType,startContent,stopType,stopContent)
		}

		function L(a,c,d) {
			if(b.mode=="horizontal") {
				if(b.tickerDirection=="next") {
					e.animate({
						left:"-="+c+"px"
					},d,"linear", function() {
						e.css("left",a);
						L(a,A,b.tickerSpeed)
					})
				} else if(b.tickerDirection=="prev") {
					e.animate({
						left:"+="+c+"px"
					},d,"linear", function() {
						e.css("left",a);
						L(a,A,b.tickerSpeed)
					})
				}
			} else if(b.mode=="vertical") {
				if(b.tickerDirection=="next") {
					e.animate({
						top:"-="+c+"px"
					},d,"linear", function() {
						e.css("top",a);
						L(a,B,b.tickerSpeed)
					})
				} else if(b.tickerDirection=="prev") {
					e.animate({
						top:"+="+c+"px"
					},d,"linear", function() {
						e.css("top",a);
						L(a,B,b.tickerSpeed)
					})
				}
			}
		}

		function K() {
			if(b.auto) {
				if(!b.infiniteLoop) {
					if(b.autoDirection=="next") {
						o=setInterval( function() {
							x+=b.moveSlideQty;
							if(x>G) {
								x=x%g.length
							}
							d.goToSlide(x,false)
						},b.pause)
					} else if(b.autoDirection=="prev") {
						o=setInterval( function() {
							x-=b.moveSlideQty;
							if(x<0) {
								negativeOffset=x%g.length;
								if(negativeOffset==0) {
									x=0
								} else {
									x=g.length+negativeOffset
								}
							}
							d.goToSlide(x,false)
						},b.pause)
					}
				} else {
					if(b.autoDirection=="next") {
						o=setInterval( function() {
							d.goToNextSlide(false)
						},b.pause)
					} else if(b.autoDirection=="prev") {
						o=setInterval( function() {
							d.goToPreviousSlide(false)
						},b.pause)
					}
				}
			} else if(b.ticker) {
				b.tickerSpeed*=10;
				a(".pager",h).each( function(b) {
					A+=a(this).width();
					B+=a(this).height()
				});
				if(b.tickerDirection=="prev"&&b.mode=="horizontal") {
					e.css("left","-"+(A+y)+"px")
				} else if(b.tickerDirection=="prev"&&b.mode=="vertical") {
					e.css("top","-"+(B+z)+"px")
				}
				if(b.mode=="horizontal") {
					C=parseInt(e.css("left"));
					L(C,A,b.tickerSpeed)
				} else if(b.mode=="vertical") {
					D=parseInt(e.css("top"));
					L(D,B,b.tickerSpeed)
				}
				if(b.tickerHover) {
					O()
				}
			}
		}

		function J() {
			if(b.nextImage!="") {
				nextContent=b.nextImage;
				nextType="image"
			} else {
				nextContent=b.nextText;
				nextType="text"
			}
			if(b.prevImage!="") {
				prevContent=b.prevImage;
				prevType="image"
			} else {
				prevContent=b.prevText;
				prevType="text"
			}
			R(nextType,nextContent,prevType,prevContent)
		}

		function I() {
			if(b.mode=="horizontal"||b.mode=="vertical") {
				var c=Z(g,0,b.moveSlideQty,"backward");
				a.each(c, function(b) {
					e.prepend(a(this))
				});
				var d=g.length+b.moveSlideQty-1;
				var f=g.length-b.displaySlideQty;
				var h=d-f;
				var i=Z(g,0,h,"forward");
				if(b.infiniteLoop) {
					a.each(i, function(b) {
						e.append(a(this))
					})
				}
			}
		}

		function H() {
			I(b.startingSlide);
			if(b.mode=="horizontal") {
				e.wrap('<div class="'+b.wrapperClass+'" style="width:'+l+'px; position:relative;"></div>').wrap('<div class="bx-window" style="position:relative; overflow:hidden; width:'+l+'px;"></div>').css({
					width:"999999px",
					position:"relative",
					left:"-"+y+"px"
				});
				e.children().css({
					width:j,
					"float":"left",
					listStyle:"none"
				});
				h=e.parent().parent();
				g.addClass("pager")
			} else if(b.mode=="vertical") {
				e.wrap('<div class="'+b.wrapperClass+'" style="width:'+v+'px; position:relative;"></div>').wrap('<div class="bx-window" style="width:'+v+"px; height:"+m+'px; position:relative; overflow:hidden;"></div>').css({
					height:"999999px",
					position:"relative",
					top:"-"+z+"px"
				});
				e.children().css({
					listStyle:"none",
					height:w
				});
				h=e.parent().parent();
				g.addClass("pager")
			} else if(b.mode=="fade") {
				e.wrap('<div class="'+b.wrapperClass+'" style="width:'+v+'px; position:relative;"></div>').wrap('<div class="bx-window" style="height:'+w+"px; width:"+v+'px; position:relative; overflow:hidden;"></div>');
				e.children().css({
					listStyle:"none",
					position:"absolute",
					top:0,
					left:0,
					zIndex:98
				});
				h=e.parent().parent();
				g.not(":eq("+x+")").fadeTo(0,0);
				g.eq(x).css("zIndex",99)
			}
			if(b.captions&&b.captionsSelector==null) {
				h.append('<div class="bx-captions"></div>')
			}
		}

		var c= {
			mode:"horizontal",
			infiniteLoop:true,
			hideControlOnEnd:false,
			controls:true,
			speed:500,
			easing:"swing",
			pager:false,
			pagerSelector:null,
			pagerType:"full",
			pagerLocation:"bottom",
			pagerShortSeparator:"/",
			pagerActiveClass:"pager-active",
			nextText:"next",
			nextImage:"",
			nextSelector:null,
			prevText:"prev",
			prevImage:"",
			prevSelector:null,
			captions:false,
			captionsSelector:null,
			auto:false,
			autoDirection:"next",
			autoControls:false,
			autoControlsSelector:null,
			autoStart:true,
			autoHover:false,
			autoDelay:0,
			pause:3e3,
			startText:"start",
			startImage:"",
			stopText:"stop",
			stopImage:"",
			ticker:false,
			tickerSpeed:5e3,
			tickerDirection:"next",
			tickerHover:false,
			wrapperClass:"bx-wrapper",
			startingSlide:0,
			displaySlideQty:1,
			moveSlideQty:1,
			randomStart:false,
			onBeforeSlide: function() {
			},
			onAfterSlide: function() {
			},
			onLastSlide: function() {
			},
			onFirstSlide: function() {
			},
			onNextSlide: function() {
			},
			onPrevSlide: function() {
			},
			buildPager:null
		};
		var b=a.extend(c,b);
		var d=this;
		var e="";
		var f="";
		var g="";
		var h="";
		var i="";
		var j="";
		var k="";
		var l="";
		var m="";
		var n="";
		var o="";
		var p="";
		var q="";
		var r="";
		var s="";
		var t=true;
		var u=false;
		var v=0;
		var w=0;
		var x=0;
		var y=0;
		var z=0;
		var A=0;
		var B=0;
		var C=0;
		var D=0;
		var E=false;
		var F=0;
		var G=g.length-1;
		this.goToSlide= function(a,c) {
			if(!E) {
				E=true;
				x=a;
				b.onBeforeSlide(x,g.length,g.eq(x));
				if(typeof c=="undefined") {var c=true
				}
				if(c) {
					if(b.auto) {
						d.stopShow(true)
					}
				}
				slide=a;
				if(slide==F) {
					b.onFirstSlide(x,g.length,g.eq(x))
				}
				if(slide==G) {
					b.onLastSlide(x,g.length,g.eq(x))
				}
				if(b.mode=="horizontal") {
					e.animate({
						left:"-"+W(slide,"left")+"px"
					},b.speed,b.easing, function() {
						E=false;
						b.onAfterSlide(x,g.length,g.eq(x))
					})
				} else if(b.mode=="vertical") {
					e.animate({
						top:"-"+W(slide,"top")+"px"
					},b.speed,b.easing, function() {
						E=false;
						b.onAfterSlide(x,g.length,g.eq(x))
					})
				} else if(b.mode=="fade") {
					P()
				}
				V();
				if(b.moveSlideQty>1) {
					a=Math.floor(a/b.moveSlideQty)
				}
				Q(a);
				T()
			}
		};
		this.goToNextSlide= function(a) {
			if(typeof a=="undefined") {var a=true
			}
			if(a) {
				if(b.auto) {
					d.stopShow(true)
				}
			}
			if(!b.infiniteLoop) {
				if(!E) {
					var c=false;
					x=x+b.moveSlideQty;
					if(x<=G) {
						V();
						b.onNextSlide(x,g.length,g.eq(x));
						d.goToSlide(x)
					} else {
						x-=b.moveSlideQty
					}
				}
			} else {
				if(!E) {
					E=true;
					var c=false;
					x=x+b.moveSlideQty;
					if(x>G) {
						x=x%g.length;
						c=true
					}
					b.onNextSlide(x,g.length,g.eq(x));
					b.onBeforeSlide(x,g.length,g.eq(x));
					if(b.mode=="horizontal") {
						var f=b.moveSlideQty*k;
						e.animate({
							left:"-="+f+"px"
						},b.speed,b.easing, function() {
							E=false;
							if(c) {
								e.css("left","-"+W(x,"left")+"px")
							}
							b.onAfterSlide(x,g.length,g.eq(x))
						})
					} else if(b.mode=="vertical") {
						var h=b.moveSlideQty*w;
						e.animate({
							top:"-="+h+"px"
						},b.speed,b.easing, function() {
							E=false;
							if(c) {
								e.css("top","-"+W(x,"top")+"px")
							}
							b.onAfterSlide(x,g.length,g.eq(x))
						})
					} else if(b.mode=="fade") {
						P()
					}
					if(b.moveSlideQty>1) {
						Q(Math.ceil(x/b.moveSlideQty))
					} else {
						Q(x)
					}
					T()
				}
			}
		};
		this.goToPreviousSlide= function(c) {
			if(typeof c=="undefined") {var c=true
			}
			if(c) {
				if(b.auto) {
					d.stopShow(true)
				}
			}
			if(!b.infiniteLoop) {
				if(!E) {
					var f=false;
					x=x-b.moveSlideQty;
					if(x<0) {
						x=0;
						if(b.hideControlOnEnd) {
							a(".bx-prev",h).hide()
						}
					}
					V();
					b.onPrevSlide(x,g.length,g.eq(x));
					d.goToSlide(x)
				}
			} else {
				if(!E) {
					E=true;
					var f=false;
					x=x-b.moveSlideQty;
					if(x<0) {
						negativeOffset=x%g.length;
						if(negativeOffset==0) {
							x=0
						} else {
							x=g.length+negativeOffset
						}
						f=true
					}
					b.onPrevSlide(x,g.length,g.eq(x));
					b.onBeforeSlide(x,g.length,g.eq(x));
					if(b.mode=="horizontal") {
						var i=b.moveSlideQty*k;
						e.animate({
							left:"+="+i+"px"
						},b.speed,b.easing, function() {
							E=false;
							if(f) {
								e.css("left","-"+W(x,"left")+"px")
							}
							b.onAfterSlide(x,g.length,g.eq(x))
						})
					} else if(b.mode=="vertical") {
						var j=b.moveSlideQty*w;
						e.animate({
							top:"+="+j+"px"
						},b.speed,b.easing, function() {
							E=false;
							if(f) {
								e.css("top","-"+W(x,"top")+"px")
							}
							b.onAfterSlide(x,g.length,g.eq(x))
						})
					} else if(b.mode=="fade") {
						P()
					}
					if(b.moveSlideQty>1) {
						Q(Math.ceil(x/b.moveSlideQty))
					} else {
						Q(x)
					}
					T()
				}
			}
		};
		this.goToFirstSlide= function(a) {
			if(typeof a=="undefined") {var a=true
			}
			d.goToSlide(F,a)
		};
		this.goToLastSlide= function() {
			if(typeof a=="undefined") {var a=true
			}
			d.goToSlide(G,a)
		};
		this.getCurrentSlide= function() {
			return x
		};
		this.getSlideCount= function() {
			return g.length
		};
		this.stopShow= function(a) {
			clearInterval(o);
			if(typeof a=="undefined") {var a=true
			}
			if(a&&b.autoControls) {
				p.html(r).removeClass("stop").addClass("start");
				t=false
			}
		};
		this.startShow= function(a) {
			if(typeof a=="undefined") {var a=true
			}
			K();
			if(a&&b.autoControls) {
				p.html(s).removeClass("start").addClass("stop");
				t=true
			}
		};
		this.stopTicker= function(a) {
			e.stop();
			if(typeof a=="undefined") {var a=true
			}
			if(a&&b.ticker) {
				p.html(r).removeClass("stop").addClass("start");
				t=false
			}
		};
		this.startTicker= function(a) {
			if(b.mode=="horizontal") {
				if(b.tickerDirection=="next") {
					var c=parseInt(e.css("left"));var d=A+c+g.eq(0).width()
				} else if(b.tickerDirection=="prev") {
					var c=-parseInt(e.css("left"));var d=c-g.eq(0).width()
				}
				var f=d*b.tickerSpeed/A;
				L(C,d,f)
			} else if(b.mode=="vertical") {
				if(b.tickerDirection=="next") {
					var h=parseInt(e.css("top"));var d=B+h+g.eq(0).height()
				} else if(b.tickerDirection=="prev") {
					var h=-parseInt(e.css("top"));var d=h-g.eq(0).height()
				}
				var f=d*b.tickerSpeed/B;
				L(D,d,f);
				if(typeof a=="undefined") {var a=true
				}
				if(a&&b.ticker) {
					p.html(s).removeClass("start").addClass("stop");
					t=true
				}
			}
		};
		this.initShow= function() {
			e=a(this);
			f=e.clone();
			g=e.children();
			h="";
			i=e.children(":first");
			j=i.width();
			v=0;
			k=i.outerWidth();
			w=0;
			l=X();
			m=Y();
			E=false;
			n="";
			x=0;
			y=0;
			z=0;
			o="";
			p="";
			q="";
			r="";
			s="";
			t=true;
			u=false;
			A=0;
			B=0;
			C=0;
			D=0;
			F=0;
			G=g.length-1;
			g.each( function(b) {
				if(a(this).outerHeight()>w) {
					w=a(this).outerHeight()
				}
				if(a(this).outerWidth()>v) {
					v=a(this).outerWidth()
				}
			});
			if(b.randomStart) {
				var c=Math.floor(Math.random()*g.length);
				x=c;
				y=k*(b.moveSlideQty+c);
				z=w*(b.moveSlideQty+c)
			} else {
				x=b.startingSlide;
				y=k*(b.moveSlideQty+b.startingSlide);
				z=w*(b.moveSlideQty+b.startingSlide)
			}
			H();
			if(b.pager&&!b.ticker) {
				if(b.pagerType=="full") {
					S("full")
				} else if(b.pagerType=="short") {
					S("short")
				}
			}
			if(b.controls&&!b.ticker) {
				J()
			}
			if(b.auto||b.ticker) {
				if(b.autoControls) {
					M()
				}
				if(b.autoStart) {
					setTimeout( function() {
						d.startShow(true)
					},b.autoDelay)
				} else {
					d.stopShow(true)
				}
				if(b.autoHover&&!b.ticker) {
					N()
				}
			}
			if(b.moveSlideQty>1) {
				Q(Math.ceil(x/b.moveSlideQty))
			} else {
				Q(x)
			}
			V();
			if(b.captions) {
				T()
			}
			b.onAfterSlide(x,g.length,g.eq(x))
		};
		this.destroyShow= function() {
			clearInterval(o);
			a(".bx-next, .bx-prev, .bx-pager, .bx-auto",h).remove();
			e.unwrap().unwrap().removeAttr("style");
			e.children().removeAttr("style").not(".pager").remove();
			g.removeClass("pager")
		};
		this.reloadShow= function() {
			d.destroyShow();
			d.initShow()
		};
		this.each( function() {
			if(a(this).children().length>0) {
				d.initShow()
			}
		});
		return this
	};
	jQuery.fx.prototype.cur= function() {
		if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null)) {
			return this.elem[this.prop]
		}
		var a=parseFloat(jQuery.css(this.elem,this.prop));
		return a
	}
})(jQuery)
