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

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

