/*
 * jQuery Nivo Slider v2.4
 * http://nivo.dev7studios.com
 *
 * Copyright 2011, Gilbert Pellegrom
 * Free to use and abuse under the MIT license.
 * http://www.opensource.org/licenses/mit-license.php
 */

(function(a) {
	var A= function(s,v) {
		var f=a.extend({},a.fn.nivoSlider.defaults,v),g={currentSlide:0,currentImage:"",totalSlides:0,randAnim:"",running:false,paused:false,stop:false},e=a(s);
		e.data("nivo:vars",g);
		e.css("position","relative");
		e.addClass("nivoSlider");
		var j=e.children();
		j.each( function() {
			var b=a(this),h="";
			if(!b.is("img")) {
				if(b.is("a")) {
					b.addClass("nivo-imageLink");
					h=b
				}
				b=b.find("img:first")
			}
			var c=b.width();
			if(c==0)
				c=b.attr("width");
			var o=b.height();
			if(o==0)
				o=b.attr("height");
			c>e.width()&&
			e.width(c);
			o>e.height()&&e.height(o);
			h!=""&&h.css("display","none");
			b.css("display","none");
			g.totalSlides++
		});
		if(f.startSlide>0) {
			if(f.startSlide>=g.totalSlides)
				f.startSlide=g.totalSlides-1;
			g.currentSlide=f.startSlide
		}
		g.currentImage=a(j[g.currentSlide]).is("img")?a(j[g.currentSlide]):a(j[g.currentSlide]).find("img:first");
		a(j[g.currentSlide]).is("a")&&a(j[g.currentSlide]).css("display","block");
		e.css("background",'url("'+g.currentImage.attr("src")+'") no-repeat');
		for(var k=0;k<f.slices;k++) {
			var p=
			Math.round(e.width()/f.slices);k==f.slices-1?e.append(a('<div class="nivo-slice"></div>').css({left:p*k+"px",width:e.width()-p*k+"px"})):e.append(a('<div class="nivo-slice"></div>').css({left:p*k+"px",width:p+"px"}))
		}
		e.append(a('<div class="nivo-caption"><p></p></div>').css({display:"none",opacity:f.captionOpacity}));
		if(g.currentImage.attr("title")!="") {
			k=g.currentImage.attr("title");
			if(k.substr(0,1)=="#")
				k=a(k).html();
			a(".nivo-caption p",e).html(k);
			a(".nivo-caption",e).fadeIn(f.animSpeed)
		}
		var l=
		0;
		if(!f.manualAdvance&&j.length>1)
			l=setInterval( function() {
				r(e,j,f,false)
			},f.pauseTime);
		if(f.directionNav) {
			e.append('<div class="nivo-directionNav"><a class="nivo-prevNav">Prev</a><a class="nivo-nextNav">Next</a></div>');
			if(f.directionNavHide) {
				a(".nivo-directionNav",e).hide();
				e.hover( function() {
					a(".nivo-directionNav",e).show()
				}, function() {
					a(".nivo-directionNav",e).hide()
				})
			}
			a("a.nivo-prevNav",e).live("click", function() {
				if(g.running)
					return false;
				clearInterval(l);
				l="";
				g.currentSlide-=2;
				r(e,j,f,"prev")
			});
			a("a.nivo-nextNav",e).live("click", function() {
				if(g.running)
					return false;
				clearInterval(l);
				l="";
				r(e,j,f,"next")
			})
		}
		if(f.controlNav) {
			p=a('<div class="nivo-controlNav"></div>');
			e.append(p);
			for(k=0;k<j.length;k++)
				if(f.controlNavThumbs) {
					var t=j.eq(k);
					t.is("img")||(t=t.find("img:first"));f.controlNavThumbsFromRel?p.append('<a class="nivo-control" rel="'+k+'"><img src="'+t.attr("rel")+'" alt="" /></a>'):p.append('<a class="nivo-control" rel="'+k+'"><img src="'+t.attr("src").replace(f.controlNavThumbsSearch,
					f.controlNavThumbsReplace)+'" alt="" /></a>')
				} else
					p.append('<a class="nivo-control" rel="'+k+'">'+(k+1)+"</a>");
			a(".nivo-controlNav a:eq("+g.currentSlide+")",e).addClass("active");
			a(".nivo-controlNav a",e).live("click", function() {
				if(g.running)
					return false;
				if(a(this).hasClass("active"))
					return false;
				clearInterval(l);
				l="";
				e.css("background",'url("'+g.currentImage.attr("src")+'") no-repeat');
				g.currentSlide=a(this).attr("rel")-1;
				r(e,j,f,"control")
			})
		}
		f.keyboardNav&&a(window).keypress( function(b) {
			if(b.keyCode==
			"37") {
				if(g.running)
					return false;
				clearInterval(l);
				l="";
				g.currentSlide-=2;
				r(e,j,f,"prev")
			}
			if(b.keyCode=="39") {
				if(g.running)
					return false;
				clearInterval(l);
				l="";
				r(e,j,f,"next")
			}
		});
		f.pauseOnHover&&e.hover( function() {
			g.paused=true;
			clearInterval(l);
			l=""
		}, function() {
			g.paused=false;
			if(l==""&&!f.manualAdvance)
				l=setInterval( function() {
					r(e,j,f,false)
				},f.pauseTime)
		});
		e.bind("nivo:animFinished", function() {
			g.running=false;
			a(j).each( function() {
				a(this).is("a")&&a(this).css("display","none")
			});
			a(j[g.currentSlide]).is("a")&&
			a(j[g.currentSlide]).css("display","block");
			if(l==""&&!g.paused&&!f.manualAdvance)
				l=setInterval( function() {
					r(e,j,f,false)
				},f.pauseTime);
			f.afterChange.call(this)
		});
		var w= function(b,h) {
			var c=0;
			a(".nivo-slice",b).each( function() {
				var o=a(this),d=Math.round(b.width()/h.slices);c==h.slices-1?o.css("width",b.width()-d*c+"px"):o.css("width",d+"px");
				c++
			})
		},r= function(b,h,c,o) {
			var d=b.data("nivo:vars");
			d&&d.currentSlide==d.totalSlides-1&&c.lastSlide.call(this);
			if((!d||d.stop)&&!o)
				return false;
			c.beforeChange.call(this);
			if(o) {
				o=="prev"&&b.css("background",'url("'+d.currentImage.attr("src")+'") no-repeat');
				o=="next"&&b.css("background",'url("'+d.currentImage.attr("src")+'") no-repeat')
			} else
				b.css("background",'url("'+d.currentImage.attr("src")+'") no-repeat');
			d.currentSlide++;
			if(d.currentSlide==d.totalSlides) {
				d.currentSlide=0;
				c.slideshowEnd.call(this)
			}
			if(d.currentSlide<0)
				d.currentSlide=d.totalSlides-1;
			d.currentImage=a(h[d.currentSlide]).is("img")?a(h[d.currentSlide]):a(h[d.currentSlide]).find("img:first");
			if(c.controlNav) {
				a(".nivo-controlNav a",
				b).removeClass("active");
				a(".nivo-controlNav a:eq("+d.currentSlide+")",b).addClass("active")
			}
			if(d.currentImage.attr("title")!="") {
				var u=d.currentImage.attr("title");
				if(u.substr(0,1)=="#")
					u=a(u).html();a(".nivo-caption",b).css("display")=="block"?a(".nivo-caption p",b).fadeOut(c.animSpeed, function() {
					a(this).html(u);
					a(this).fadeIn(c.animSpeed)
				}):a(".nivo-caption p",b).html(u);
				a(".nivo-caption",b).fadeIn(c.animSpeed)
			} else
				a(".nivo-caption",b).fadeOut(c.animSpeed);
			var m=0;
			a(".nivo-slice",b).each( function() {
				var i=
				Math.round(b.width()/c.slices);
				a(this).css({height:"0px",opacity:"0",background:'url("'+d.currentImage.attr("src")+'") no-repeat -'+(i+m*i-i)+"px 0%"});
				m++
			});
			if(c.effect=="random") {
				h=["sliceDownRight","sliceDownLeft","sliceUpRight","sliceUpLeft","sliceUpDown","sliceUpDownLeft","fold","fade","slideInRight","slideInLeft"];
				d.randAnim=h[Math.floor(Math.random()*(h.length+1))];
				if(d.randAnim==undefined)
					d.randAnim="fade"
			}
			if(c.effect.indexOf(",")!=-1) {
				h=c.effect.split(",");
				d.randAnim=h[Math.floor(Math.random()*
				h.length)];
				if(d.randAnim==undefined)
					d.randAnim="fade"
			}
			d.running=true;
			if(c.effect=="sliceDown"||c.effect=="sliceDownRight"||d.randAnim=="sliceDownRight"||c.effect=="sliceDownLeft"||d.randAnim=="sliceDownLeft") {
				var n=0;
				m=0;
				w(b,c);
				h=a(".nivo-slice",b);
				if(c.effect=="sliceDownLeft"||d.randAnim=="sliceDownLeft")
					h=a(".nivo-slice",b)._reverse();
				h.each( function() {
					var i=a(this);
					i.css({top:"0px"});m==c.slices-1?setTimeout( function() {
						i.animate({height:"100%",opacity:"1.0"},c.animSpeed,"", function() {
							b.trigger("nivo:animFinished")
						})
					},
					100+n):setTimeout( function() {
						i.animate({height:"100%",opacity:"1.0"},c.animSpeed)
					},100+n);
					n+=50;
					m++
				})
			} else if(c.effect=="sliceUp"||c.effect=="sliceUpRight"||d.randAnim=="sliceUpRight"||c.effect=="sliceUpLeft"||d.randAnim=="sliceUpLeft") {
				m=n=0;
				w(b,c);
				h=a(".nivo-slice",b);
				if(c.effect=="sliceUpLeft"||d.randAnim=="sliceUpLeft")
					h=a(".nivo-slice",b)._reverse();
				h.each( function() {
					var i=a(this);
					i.css({bottom:"0px"});m==c.slices-1?setTimeout( function() {
						i.animate({height:"100%",opacity:"1.0"},c.animSpeed,"", function() {
							b.trigger("nivo:animFinished")
						})
					},100+n):setTimeout( function() {
						i.animate({height:"100%",opacity:"1.0"},c.animSpeed)
					},100+n);
					n+=50;
					m++
				})
			} else if(c.effect=="sliceUpDown"||c.effect=="sliceUpDownRight"||d.randAnim=="sliceUpDown"||c.effect=="sliceUpDownLeft"||d.randAnim=="sliceUpDownLeft") {
				var x=m=n=0;
				w(b,c);
				h=a(".nivo-slice",b);
				if(c.effect=="sliceUpDownLeft"||d.randAnim=="sliceUpDownLeft")
					h=a(".nivo-slice",b)._reverse();
				h.each( function() {
					var i=a(this);
					if(m==0) {
						i.css("top","0px");
						m++
					} else {
						i.css("bottom",
						"0px");
						m=0
					}x==c.slices-1?setTimeout( function() {
						i.animate({height:"100%",opacity:"1.0"},c.animSpeed,"", function() {
							b.trigger("nivo:animFinished")
						})
					},100+n):setTimeout( function() {
						i.animate({height:"100%",opacity:"1.0"},c.animSpeed)
					},100+n);
					n+=50;
					x++
				})
			} else if(c.effect=="fold"||d.randAnim=="fold") {
				m=n=0;
				w(b,c);
				a(".nivo-slice",b).each( function() {
					var i=a(this),y=i.width();
					i.css({top:"0px",height:"100%",width:"0px"});m==c.slices-1?setTimeout( function() {
						i.animate({width:y,opacity:"1.0"},c.animSpeed,"", function() {
							b.trigger("nivo:animFinished")
						})
					},
					100+n):setTimeout( function() {
						i.animate({width:y,opacity:"1.0"},c.animSpeed)
					},100+n);
					n+=50;
					m++
				})
			} else if(c.effect=="fade"||d.randAnim=="fade") {
				var q=a(".nivo-slice:first",b);
				q.css({height:"100%",width:b.width()+"px"});
				q.animate({opacity:"1.0"},c.animSpeed*2,"", function() {
					b.trigger("nivo:animFinished")
				})
			} else if(c.effect=="slideInRight"||d.randAnim=="slideInRight") {
				q=a(".nivo-slice:first",b);
				q.css({height:"100%",width:"0px",opacity:"1"});
				q.animate({width:b.width()+"px"},c.animSpeed*2,"", function() {
					b.trigger("nivo:animFinished")
				})
			} else if(c.effect==
			"slideInLeft"||d.randAnim=="slideInLeft") {
				q=a(".nivo-slice:first",b);
				q.css({height:"100%",width:"0px",opacity:"1",left:"",right:"0px"});
				q.animate({width:b.width()+"px"},c.animSpeed*2,"", function() {
					q.css({left:"0px",right:""});
					b.trigger("nivo:animFinished")
				})
			}
		},z= function(b) {
			this.console&&typeof console.log!="undefined"&&console.log(b)
		};
		this.stop= function() {
			if(!a(s).data("nivo:vars").stop) {
				a(s).data("nivo:vars").stop=true;
				z("Stop Slider")
			}
		};
		this.start= function() {
			if(a(s).data("nivo:vars").stop) {
				a(s).data("nivo:vars").stop=
				false;
				z("Start Slider")
			}
		};
		f.afterLoad.call(this)
	};
	a.fn.nivoSlider= function(s) {
		return this.each( function() {
			var v=a(this);
			if(!v.data("nivoslider")) {
				var f=new A(this,s);
				v.data("nivoslider",f)
			}
		})
	};
	a.fn.nivoSlider.defaults={effect:"random",slices:15,animSpeed:500,pauseTime:5E3,startSlide:0,directionNav:true,directionNavHide:true,controlNav:true,controlNavThumbs:false,controlNavThumbsFromRel:false,controlNavThumbsSearch:".jpg",controlNavThumbsReplace:"_thumb.jpg",keyboardNav:true,pauseOnHover:true,manualAdvance:false,
		captionOpacity:0.8,beforeChange: function() {
		},afterChange: function() {
		},slideshowEnd: function() {
		},lastSlide: function() {
		},afterLoad: function() {
		}};
	a.fn._reverse=[].reverse
})(jQuery);
