/*
*	jQuery sphereNivoSlider Plugin
*	Author: Prashant Katwa
*	Created: 9/30/2010
*	
*	Dependencies: jQuery 1.3.2+, jQuery Nivo Slider v2.1
*
*  Example Usage:
*  	$('#slider').sphereNivoSlider( {
*			galleryUrl: "PhotoGallery.aspx.html",
*			loaderHtml: "Loading...<img src='http://www.kintera.org/atf/cf/{33c27906-e163-4d56-8635-b92e061d11dd}/loading.gif' />"
*		});
*
*/

(function($){  
	$.fn.sphereNivoSlider = function(options) {  
		var defaults = {  
			galleryUrl: "/site/lookup.asp?c=dvKUI9OWInJ6H&b=7650893",
			loaderHtml: "Loading...<img src='http://www.kintera.org/atf/cf/{33c27906-e163-4d56-8635-b92e061d11dd}/loading.gif' />",
			pauseTime : 5000
		};  
		var options = $.extend(defaults, options);  
		var kids2 = '';
		
		return this.each(function() {  
			var obj = $(this);  

			$(obj).html(options.loaderHtml);	
			$.get(options.galleryUrl,function(data){
				var loadedData = data
				var sliderContent = '';
				
				$(loadedData).find('#pg_summary ul').each(function(i){
					var imgSource= $('img',this).attr("src");
					var img = new Image();
					img.src = imgSource;
					var imgReadMore= $('img',this).attr("alt");					
					//link 2
					var imgSDescrip = $('.pg_shortdescriptor',this).text();
					var trimmedSLink = imgSDescrip.replace(/^\s+|\s+$/g, '') ;
					var cleanedSLink = trimmedSLink.replace('&nbsp;','');
					cleanedSLink = unescape(escape(cleanedSLink).replace("%A0",""));
					//link 2
					var imgLDescrip = $('.pg_longdescriptor',this).text();
					var trimmedLink = imgLDescrip.replace(/^\s+|\s+$/g, '') ;
					var cleanedLink = trimmedLink.replace('&nbsp;','');
					cleanedLink = unescape(escape(cleanedLink).replace("%A0",""));
					if (imgSource) {
						if (!imgLDescrip) {
							sliderContent += '<img src="'+imgSource+'" title="" />';
						} else if (imgLDescrip !='&nbsp;'){
							sliderContent += '<a href="'+cleanedSLink+'" alt="'+cleanedLink+'"><span class="readmore">'+imgReadMore+'</span><img src="'+imgSource+'" title="" /></a>';
						} else {
							sliderContent += '<img src="'+imgSource+'" title=""/>';
						}
					}
					
				});
											
				$(obj).html(sliderContent);	

				$(obj).nivoSlider({
					effect:'fade', //Specify sets like: 'fold,fade,sliceDown'
					slices:1,
					animSpeed:500, //Slide transition speed
					pauseTime:options.pauseTime,
					startSlide:0, //Set starting Slide (0 index)
					directionNav:false, //Next & Prev
					directionNavHide:false, //Only show on hover
					controlNav:true, //1,2,3...
					controlNavThumbs:false, //Use thumbnails for Control Nav
					controlNavThumbsFromRel:false, //Use image rel for thumbs
					controlNavThumbsSearch: '.jpg', //Replace this with...
					controlNavThumbsReplace: '_thumb.jpg', //...this in thumb Image src
					keyboardNav:true, //Use left & right arrows
					pauseOnHover:true, //Stop animation while hovering
					manualAdvance:false, //Force manual transitions
					captionOpacity:0.85, //Universal caption opacity
					beforeChange: function(){},
					afterChange: function(){},
					slideshowEnd: function(){} //Triggers after all slides have been shown
				});
		
			});
			
		});  


	};  
})(jQuery);  

 
/* ------------------------------------------------------------ */

/*
 * jQuery Nivo Slider v2.1
 * 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
 * 
 * May 2010 - Pick random effect from specified set of effects by toronegro
 * May 2010 - controlNavThumbsFromRel option added by nerd-sh
 * May 2010 - Do not start nivoRun timer if there is only 1 slide by msielski
 * April 2010 - controlNavThumbs option added by Jamie Thompson (http://jamiethompson.co.uk)
 * March 2010 - manualAdvance option added by HelloPablo (http://hellopablo.co.uk)
 */

//eval(function(p,a,c,k,e,d){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--){d[e(c)]=k[c]||e(c)}k=[function(e){return d[e]}];e=function(){return'\\w+'};c=1};while(c--){if(k[c]){p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c])}}return p}('(9($){$.1k.1o=9(2b){b 3=$.2g({},$.1k.1o.21,2b);N g.H(9(){b 4={f:0,u:\'\',W:0,r:\'\',L:n,1j:n,1S:n};b 5=$(g);5.1T(\'7:4\',4);5.e(\'2o\',\'2m\');5.1f(\'1o\');b d=5.2n();d.H(9(){b l=$(g);b 1t=\'\';6(!l.J(\'B\')){6(l.J(\'a\')){l.1f(\'7-2h\');1t=l}l=l.1m(\'B:1r\')}b 18=l.x();6(18==0)18=l.t(\'x\');b 1b=l.y();6(1b==0)1b=l.t(\'y\');6(18>5.x()){5.x(18)}6(1b>5.y()){5.y(1b)}6(1t!=\'\'){1t.e(\'P\',\'1q\')}l.e(\'P\',\'1q\');4.W++});6(3.19>0){6(3.19>=4.W)3.19=4.W-1;4.f=3.19}6($(d[4.f]).J(\'B\')){4.u=$(d[4.f])}k{4.u=$(d[4.f]).1m(\'B:1r\')}6($(d[4.f]).J(\'a\')){$(d[4.f]).e(\'P\',\'1A\')}5.e(\'11\',\'10(\'+4.u.t(\'E\')+\') Z-Y\');23(b i=0;i<3.h;i++){b G=U.29(5.x()/3.h);6(i==3.h-1){5.O($(\'<D A="7-c"></D>\').e({2a:(G*i)+\'1c\',x:(5.x()-(G*i))+\'1c\'}))}k{5.O($(\'<D A="7-c"></D>\').e({2a:(G*i)+\'1c\',x:G+\'1c\'}))}}5.O($(\'<D A="7-K"><p></p></D>\').e({P:\'1q\',z:3.1U}));6(4.u.t(\'w\')!=\'\'){b w=4.u.t(\'w\');6(w.24(0,1)==\'#\')w=$(w).1d();$(\'.7-K p\',5).1d(w);$(\'.7-K\',5).1z(3.o)}b m=0;6(!3.1p&&d.1g>1){m=1E(9(){F(5,d,3,n)},3.1u)}6(3.S){5.O(\'<D A="7-S"><a A="7-27">2k</a><a A="7-25">2i</a></D>\');6(3.1R){$(\'.7-S\',5).26();5.1V(9(){$(\'.7-S\',5).2j()},9(){$(\'.7-S\',5).26()})}$(\'a.7-27\',5).1C(\'1F\',9(){6(4.L)N n;T(m);m=\'\';4.f-=2;F(5,d,3,\'1y\')});$(\'a.7-25\',5).1C(\'1F\',9(){6(4.L)N n;T(m);m=\'\';F(5,d,3,\'1x\')})}6(3.M){b 14=$(\'<D A="7-M"></D>\');5.O(14);23(b i=0;i<d.1g;i++){6(3.1P){b l=d.1B(i);6(!l.J(\'B\')){l=l.1m(\'B:1r\')}6(3.1O){14.O(\'<a A="7-1s" 1a="\'+i+\'"><B E="\'+l.t(\'1a\')+\'" 2e="" /></a>\')}k{14.O(\'<a A="7-1s" 1a="\'+i+\'"><B E="\'+l.t(\'E\').2l(3.1M,3.1N)+\'" 2e="" /></a>\')}}k{14.O(\'<a A="7-1s" 1a="\'+i+\'">\'+(i+1)+\'</a>\')}}$(\'.7-M a:1B(\'+4.f+\')\',5).1f(\'1h\');$(\'.7-M a\',5).1C(\'1F\',9(){6(4.L)N n;6($(g).2f(\'1h\'))N n;T(m);m=\'\';5.e(\'11\',\'10(\'+4.u.t(\'E\')+\') Z-Y\');4.f=$(g).t(\'1a\')-1;F(5,d,3,\'1s\')})}6(3.1X){$(2s).2F(9(1D){6(1D.1Q==\'2D\'){6(4.L)N n;T(m);m=\'\';4.f-=2;F(5,d,3,\'1y\')}6(1D.1Q==\'2C\'){6(4.L)N n;T(m);m=\'\';F(5,d,3,\'1x\')}})}6(3.1W){5.1V(9(){4.1j=Q;T(m);m=\'\'},9(){4.1j=n;6(m==\'\'&&!3.1p){m=1E(9(){F(5,d,3,n)},3.1u)}})}5.2E(\'7:X\',9(){4.L=n;$(d).H(9(){6($(g).J(\'a\')){$(g).e(\'P\',\'1q\')}});6($(d[4.f]).J(\'a\')){$(d[4.f]).e(\'P\',\'1A\')}6(m==\'\'&&!4.1j&&!3.1p){m=1E(9(){F(5,d,3,n)},3.1u)}3.20.1w(g)})});9 F(5,d,3,17){b 4=5.1T(\'7:4\');6((!4||4.1S)&&!17)N n;3.1Y.1w(g);6(!17){5.e(\'11\',\'10(\'+4.u.t(\'E\')+\') Z-Y\')}k{6(17==\'1y\'){5.e(\'11\',\'10(\'+4.u.t(\'E\')+\') Z-Y\')}6(17==\'1x\'){5.e(\'11\',\'10(\'+4.u.t(\'E\')+\') Z-Y\')}}4.f++;6(4.f==4.W){4.f=0;3.2d.1w(g)}6(4.f<0)4.f=(4.W-1);6($(d[4.f]).J(\'B\')){4.u=$(d[4.f])}k{4.u=$(d[4.f]).1m(\'B:1r\')}6(3.M){$(\'.7-M a\',5).2B(\'1h\');$(\'.7-M a:1B(\'+4.f+\')\',5).1f(\'1h\')}6(4.u.t(\'w\')!=\'\'){b w=4.u.t(\'w\');6(w.24(0,1)==\'#\')w=$(w).1d();6($(\'.7-K\',5).e(\'P\')==\'1A\'){$(\'.7-K p\',5).2c(3.o,9(){$(g).1d(w);$(g).1z(3.o)})}k{$(\'.7-K p\',5).1d(w)}$(\'.7-K\',5).1z(3.o)}k{$(\'.7-K\',5).2c(3.o)}b i=0;$(\'.7-c\',5).H(9(){b G=U.29(5.x()/3.h);$(g).e({y:\'R\',z:\'0\',11:\'10(\'+4.u.t(\'E\')+\') Z-Y -\'+((G+(i*G))-G)+\'1c 0%\'});i++});6(3.j==\'1l\'){b V=2H 2G("1K","12","1H","1e","1G","13","1I","1v");4.r=V[U.22(U.1l()*(V.1g+1))];6(4.r==2I)4.r=\'1v\'}6(3.j.2p(\',\')!=-1){b V=3.j.2t(\',\');4.r=$.2A(V[U.22(U.1l()*V.1g)])}4.L=Q;6(3.j==\'2r\'||3.j==\'1K\'||4.r==\'1K\'||3.j==\'12\'||4.r==\'12\'){b q=0;b i=0;b h=$(\'.7-c\',5);6(3.j==\'12\'||4.r==\'12\')h=$(\'.7-c\',5).1n();h.H(9(){b c=$(g);c.e(\'1L\',\'R\');6(i==3.h-1){I(9(){c.C({y:\'s%\',z:\'1.0\'},3.o,\'\',9(){5.16(\'7:X\')})},(s+q))}k{I(9(){c.C({y:\'s%\',z:\'1.0\'},3.o)},(s+q))}q+=1i;i++})}k 6(3.j==\'2q\'||3.j==\'1H\'||4.r==\'1H\'||3.j==\'1e\'||4.r==\'1e\'){b q=0;b i=0;b h=$(\'.7-c\',5);6(3.j==\'1e\'||4.r==\'1e\')h=$(\'.7-c\',5).1n();h.H(9(){b c=$(g);c.e(\'28\',\'R\');6(i==3.h-1){I(9(){c.C({y:\'s%\',z:\'1.0\'},3.o,\'\',9(){5.16(\'7:X\')})},(s+q))}k{I(9(){c.C({y:\'s%\',z:\'1.0\'},3.o)},(s+q))}q+=1i;i++})}k 6(3.j==\'1G\'||3.j==\'2u\'||4.r==\'1G\'||3.j==\'13\'||4.r==\'13\'){b q=0;b i=0;b v=0;b h=$(\'.7-c\',5);6(3.j==\'13\'||4.r==\'13\')h=$(\'.7-c\',5).1n();h.H(9(){b c=$(g);6(i==0){c.e(\'1L\',\'R\');i++}k{c.e(\'28\',\'R\');i=0}6(v==3.h-1){I(9(){c.C({y:\'s%\',z:\'1.0\'},3.o,\'\',9(){5.16(\'7:X\')})},(s+q))}k{I(9(){c.C({y:\'s%\',z:\'1.0\'},3.o)},(s+q))}q+=1i;v++})}k 6(3.j==\'1I\'||4.r==\'1I\'){b q=0;b i=0;$(\'.7-c\',5).H(9(){b c=$(g);b 1J=c.x();c.e({1L:\'R\',y:\'s%\',x:\'R\'});6(i==3.h-1){I(9(){c.C({x:1J,z:\'1.0\'},3.o,\'\',9(){5.16(\'7:X\')})},(s+q))}k{I(9(){c.C({x:1J,z:\'1.0\'},3.o)},(s+q))}q+=1i;i++})}k 6(3.j==\'1v\'||4.r==\'1v\'){b i=0;$(\'.7-c\',5).H(9(){$(g).e(\'y\',\'s%\');6(i==3.h-1){$(g).C({z:\'1.0\'},(3.o*2),\'\',9(){5.16(\'7:X\')})}k{$(g).C({z:\'1.0\'},(3.o*2))}i++})}}};$.1k.1o.21={j:\'1l\',h:15,o:2v,1u:2y,19:0,S:Q,1R:Q,M:Q,1P:n,1O:n,1M:\'.1Z\',1N:\'2x.1Z\',1X:Q,1W:Q,1p:n,1U:0.8,1Y:9(){},20:9(){},2d:9(){}};$.1k.1n=[].2w})(2z);',62,169,'|||settings|vars|slider|if|nivo||function||var|slice|kids|css|currentSlide|this|slices||effect|else|child|timer|false|animSpeed||timeBuff|randAnim|100|attr|currentImage||title|width|height|opacity|class|img|animate|div|src|nivoRun|sliceWidth|each|setTimeout|is|caption|running|controlNav|return|append|display|true|0px|directionNav|clearInterval|Math|anims|totalSlides|animFinished|repeat|no|url|background|sliceDownLeft|sliceUpDownLeft|nivoControl||trigger|nudge|childWidth|startSlide|rel|childHeight|px|html|sliceUpLeft|addClass|length|active|50|paused|fn|random|find|_reverse|nivoSlider|manualAdvance|none|first|control|link|pauseTime|fade|call|next|prev|fadeIn|block|eq|live|event|setInterval|click|sliceUpDown|sliceUpRight|fold|origWidth|sliceDownRight|top|controlNavThumbsSearch|controlNavThumbsReplace|controlNavThumbsFromRel|controlNavThumbs|keyCode|directionNavHide|stop|data|captionOpacity|hover|pauseOnHover|keyboardNav|beforeChange|jpg|afterChange|defaults|floor|for|substr|nextNav|hide|prevNav|bottom|round|left|options|fadeOut|slideshowEnd|alt|hasClass|extend|imageLink|Next|show|Prev|replace|relative|children|position|indexOf|sliceUp|sliceDown|window|split|sliceUpDownRight|500|reverse|_thumb|3000|jQuery|trim|removeClass|39|37|bind|keypress|Array|new|undefined'.split('|'),0,{}))

/* ------------------------------------------------------------ */

(function ($) {
    $.fn.nivoSlider = function (options) {
        var settings = $.extend({}, $.fn.nivoSlider.defaults, options);
        return this.each(function () {
            var vars = {
                currentSlide: 0,
                currentImage: '',
                totalSlides: 0,
                randAnim: '',
                running: false,
                paused: false,
                stop: false
            };
            var slider = $(this);
            slider.data('nivo:vars', vars);
            slider.css('position', 'relative');
            slider.addClass('nivoSlider');
            var kids = slider.children();
            kids.each(function () {
                var child = $(this);
                var link = '';
                if (!child.is('img')) {
                    if (child.is('a')) {
                        child.addClass('nivo-imageLink');
                        link = child
                    }
					if (child.find('span.readmore').html() == '') {
                        child.addClass('nivo-imageLink-hide');
					}
                    child = child.find('img:first')
                }
                var childWidth = child.width();
                if (childWidth == 0) childWidth = child.attr('width');
                var childHeight = child.height();
                if (childHeight == 0) childHeight = child.attr('height');
                if (childWidth > slider.width()) {
                    slider.width(childWidth)
                }
                if (childHeight > slider.height()) {
                    slider.height(childHeight)
                }
                if (link != '') {
                    link.css('display', 'none')
                }
                child.css('display', 'none');
                vars.totalSlides++
            });
			kids = $('.nivo-imageLink');
			//build out 2nd link
            $('.nivo-imageLink').each(function () {
                $(this).after($(this).clone().removeClass('nivo-imageLink').removeClass('nivo-imageLink-hide').addClass('nivo-imageLink2').attr("href",$(this).attr("alt")));
            });
			kids2 = $('.nivo-imageLink2');
            if (settings.startSlide > 0) {
                if (settings.startSlide >= vars.totalSlides) settings.startSlide = vars.totalSlides - 1;
                vars.currentSlide = settings.startSlide
            }
            if ($(kids[vars.currentSlide]).is('img')) {
                vars.currentImage = $(kids[vars.currentSlide])
            } else {
                vars.currentImage = $(kids[vars.currentSlide]).find('img:first')
            }
            if ($(kids[vars.currentSlide]).is('a')) {
                $(kids[vars.currentSlide]).css('display', 'block');
				$(kids2[vars.currentSlide]).css('display', 'block');
            }
            slider.css('background', 'url(' + vars.currentImage.attr('src') + ') no-repeat');
            for (var i = 0; i < settings.slices; i++) {
                var sliceWidth = Math.round(slider.width() / settings.slices);
                if (i == settings.slices - 1) {
                    slider.append($('<div class="nivo-slice"></div>').css({
                        left: (sliceWidth * i) + 'px',
                        width: (slider.width() - (sliceWidth * i)) + 'px'
                    }))
                } else {
                    slider.append($('<div class="nivo-slice"></div>').css({
                        left: (sliceWidth * i) + 'px',
                        width: sliceWidth + 'px'
                    }))
                }
            }
            slider.append($('<div class="nivo-caption"><p></p></div>').css({
                display: 'none',
                opacity: settings.captionOpacity
            }));
            if (vars.currentImage.attr('title') != '' && vars.currentImage.attr('title') != undefined) {
                var title = vars.currentImage.attr('title');
                if (title.substr(0, 1) == '#') title = $(title).html();
                $('.nivo-caption p', slider).html(title);
                $('.nivo-caption', slider).fadeIn(settings.animSpeed)
            }
            var timer = 0;
            if (!settings.manualAdvance && kids.length > 1) {
                timer = setInterval(function () {
                   nivoRun(slider, kids, settings, false)
                }, settings.pauseTime)
            }
            if (settings.directionNav) {
                slider.append('<div class="nivo-directionNav"><a class="nivo-prevNav">Prev</a><a class="nivo-nextNav">Next</a></div>');
                if (settings.directionNavHide) {
                    $('.nivo-directionNav', slider).hide();
                    slider.hover(function () {
                        $('.nivo-directionNav', slider).show()
                    }, function () {
                        $('.nivo-directionNav', slider).hide()
                    })
                }
                $('a.nivo-prevNav', slider).live('click', function () {
                    if (vars.running) return false;
                    clearInterval(timer);
                    timer = '';
                    vars.currentSlide -= 2;
                    nivoRun(slider, kids, settings, 'prev')
                });
                $('a.nivo-nextNav', slider).live('click', function () {
                    if (vars.running) return false;
                    clearInterval(timer);
                    timer = '';
                    nivoRun(slider, kids, settings, 'next')
                })
            }
            if (settings.controlNav) {
                var nivoControl = $('<div class="nivo-controlNav"></div>');
                slider.append(nivoControl);
                for (var i = 0; i < kids.length; i++) {
                    if (settings.controlNavThumbs) {
                        var child = kids.eq(i);
                        if (!child.is('img')) {
                            child = child.find('img:first')
                        }
                        if (settings.controlNavThumbsFromRel) {
                            nivoControl.append('<a class="nivo-control" rel="' + i + '"><img src="' + child.attr('rel') + '" alt="" /></a>')
                        } else {
                            nivoControl.append('<a class="nivo-control" rel="' + i + '"><img src="' + child.attr('src').replace(settings.controlNavThumbsSearch, settings.controlNavThumbsReplace) + '" alt="" /></a>')
                        }
                    } else {
                        nivoControl.append('<a class="nivo-control" rel="' + i + '">' + (i + 1) + '</a>')
                    }
                }
                $('.nivo-controlNav a:eq(' + vars.currentSlide + ')', slider).addClass('active');
                $('.nivo-controlNav a', slider).live('click', function () {
                    if (vars.running) return false;
                    if ($(this).hasClass('active')) return false;
                    clearInterval(timer);
                    timer = '';
                    slider.css('background', 'url(' + vars.currentImage.attr('src') + ') no-repeat');
                    vars.currentSlide = $(this).attr('rel') - 1;
                    nivoRun(slider, kids, settings, 'control')
                })
            }
            if (settings.keyboardNav) {
                $(window).keypress(function (event) {
                    if (event.keyCode == '37') {
                        if (vars.running) return false;
                        clearInterval(timer);
                        timer = '';
                        vars.currentSlide -= 2;
                        nivoRun(slider, kids, settings, 'prev')
                    }
                    if (event.keyCode == '39') {
                        if (vars.running) return false;
                        clearInterval(timer);
                        timer = '';
                        nivoRun(slider, kids, settings, 'next')
                    }
                })
            }
            if (settings.pauseOnHover) {
                slider.hover(function () {
                    vars.paused = true;
                    clearInterval(timer);
                    timer = ''
                }, function () {
                    vars.paused = false;
                    if (timer == '' && !settings.manualAdvance) {
                        timer = setInterval(function () {
                            nivoRun(slider, kids, settings, false)
                        }, settings.pauseTime)
                    }
                })
            }
            slider.bind('nivo:animFinished', function () {
                vars.running = false;
                $(kids).each(function () {
                    if ($(this).is('a')) {
                        $(this).css('display', 'none')
                    }
                });
                $(kids2).each(function () {
                    if ($(this).is('a')) {
                        $(this).css('display', 'none')
                    }
                });
                if ($(kids[vars.currentSlide]).is('a')) {
                    $(kids[vars.currentSlide]).css('display', 'block');
                    $(kids2[vars.currentSlide]).css('display', 'block');
                }
                if (timer == '' && !vars.paused && !settings.manualAdvance) {
                    timer = setInterval(function () {
                        nivoRun(slider, kids, settings, false)
                    }, settings.pauseTime)
                }
                settings.afterChange.call(this)
            })
        });

        function nivoRun(slider, kids, settings, nudge) {
            var vars = slider.data('nivo:vars');
            if ((!vars || vars.stop) && !nudge) return false;
            settings.beforeChange.call(this);
            if (!nudge) {
                slider.css('background', 'url(' + vars.currentImage.attr('src') + ') no-repeat')
            } else {
                if (nudge == 'prev') {
                    slider.css('background', 'url(' + vars.currentImage.attr('src') + ') no-repeat')
                }
                if (nudge == 'next') {
                    slider.css('background', 'url(' + vars.currentImage.attr('src') + ') no-repeat')
                }
            }
            vars.currentSlide++;
            if (vars.currentSlide == vars.totalSlides) {
                vars.currentSlide = 0;
                settings.slideshowEnd.call(this)
            }
            if (vars.currentSlide < 0) vars.currentSlide = (vars.totalSlides - 1);
            if ($(kids[vars.currentSlide]).is('img')) {
                vars.currentImage = $(kids[vars.currentSlide])
            } else {
                vars.currentImage = $(kids[vars.currentSlide]).find('img:first')
            }
            if (settings.controlNav) {
                $('.nivo-controlNav a', slider).removeClass('active');
                $('.nivo-controlNav a:eq(' + vars.currentSlide + ')', slider).addClass('active')
            }
            if (vars.currentImage.attr('title') != '') {
                var title = (vars.currentImage.attr('title') != undefined) ? vars.currentImage.attr('title') : '';
                if (title.substr(0, 1) == '#') title = $(title).html();
                if ($('.nivo-caption', slider).css('display') == 'block') {
                    $('.nivo-caption p', slider).fadeOut(settings.animSpeed, function () {
                        $(this).html(title);
                        $(this).fadeIn(settings.animSpeed)
                    })
                } else {
                    $('.nivo-caption p', slider).html(title)
                }
                $('.nivo-caption', slider).fadeIn(settings.animSpeed)
            } else {
                $('.nivo-caption', slider).fadeOut(settings.animSpeed)
            }
            var i = 0;
            $('.nivo-slice', slider).each(function () {
                var sliceWidth = Math.round(slider.width() / settings.slices);
                $(this).css({
                    height: '0px',
                    opacity: '0',
                    background: 'url(' + vars.currentImage.attr('src') + ') no-repeat -' + ((sliceWidth + (i * sliceWidth)) - sliceWidth) + 'px 0%'
                });
                i++
            });
            if (settings.effect == 'random') {
                var anims = new Array("sliceDownRight", "sliceDownLeft", "sliceUpRight", "sliceUpLeft", "sliceUpDown", "sliceUpDownLeft", "fold", "fade");
                vars.randAnim = anims[Math.floor(Math.random() * (anims.length + 1))];
                if (vars.randAnim == undefined) vars.randAnim = 'fade'
            }
            if (settings.effect.indexOf(',') != -1) {
                var anims = settings.effect.split(',');
                vars.randAnim = $.trim(anims[Math.floor(Math.random() * anims.length)])
            }
            vars.running = true;
            if (settings.effect == 'sliceDown' || settings.effect == 'sliceDownRight' || vars.randAnim == 'sliceDownRight' || settings.effect == 'sliceDownLeft' || vars.randAnim == 'sliceDownLeft') {
                var timeBuff = 0;
                var i = 0;
                var slices = $('.nivo-slice', slider);
                if (settings.effect == 'sliceDownLeft' || vars.randAnim == 'sliceDownLeft') slices = $('.nivo-slice', slider)._reverse();
                slices.each(function () {
                    var slice = $(this);
                    slice.css('top', '0px');
                    if (i == settings.slices - 1) {
                        setTimeout(function () {
                            slice.animate({
                                height: '100%',
                                opacity: '1.0'
                            }, settings.animSpeed, '', function () {
                                slider.trigger('nivo:animFinished')
                            })
                        }, (100 + timeBuff))
                    } else {
                        setTimeout(function () {
                            slice.animate({
                                height: '100%',
                                opacity: '1.0'
                            }, settings.animSpeed)
                        }, (100 + timeBuff))
                    }
                    timeBuff += 50;
                    i++
                })
            } else if (settings.effect == 'sliceUp' || settings.effect == 'sliceUpRight' || vars.randAnim == 'sliceUpRight' || settings.effect == 'sliceUpLeft' || vars.randAnim == 'sliceUpLeft') {
                var timeBuff = 0;
                var i = 0;
                var slices = $('.nivo-slice', slider);
                if (settings.effect == 'sliceUpLeft' || vars.randAnim == 'sliceUpLeft') slices = $('.nivo-slice', slider)._reverse();
                slices.each(function () {
                    var slice = $(this);
                    slice.css('bottom', '0px');
                    if (i == settings.slices - 1) {
                        setTimeout(function () {
                            slice.animate({
                                height: '100%',
                                opacity: '1.0'
                            }, settings.animSpeed, '', function () {
                                slider.trigger('nivo:animFinished')
                            })
                        }, (100 + timeBuff))
                    } else {
                        setTimeout(function () {
                            slice.animate({
                                height: '100%',
                                opacity: '1.0'
                            }, settings.animSpeed)
                        }, (100 + timeBuff))
                    }
                    timeBuff += 50;
                    i++
                })
            } else if (settings.effect == 'sliceUpDown' || settings.effect == 'sliceUpDownRight' || vars.randAnim == 'sliceUpDown' || settings.effect == 'sliceUpDownLeft' || vars.randAnim == 'sliceUpDownLeft') {
                var timeBuff = 0;
                var i = 0;
                var v = 0;
                var slices = $('.nivo-slice', slider);
                if (settings.effect == 'sliceUpDownLeft' || vars.randAnim == 'sliceUpDownLeft') slices = $('.nivo-slice', slider)._reverse();
                slices.each(function () {
                    var slice = $(this);
                    if (i == 0) {
                        slice.css('top', '0px');
                        i++
                    } else {
                        slice.css('bottom', '0px');
                        i = 0
                    }
                    if (v == settings.slices - 1) {
                        setTimeout(function () {
                            slice.animate({
                                height: '100%',
                                opacity: '1.0'
                            }, settings.animSpeed, '', function () {
                                slider.trigger('nivo:animFinished')
                            })
                        }, (100 + timeBuff))
                    } else {
                        setTimeout(function () {
                            slice.animate({
                                height: '100%',
                                opacity: '1.0'
                            }, settings.animSpeed)
                        }, (100 + timeBuff))
                    }
                    timeBuff += 50;
                    v++
                })
            } else if (settings.effect == 'fold' || vars.randAnim == 'fold') {
                var timeBuff = 0;
                var i = 0;
                $('.nivo-slice', slider).each(function () {
                    var slice = $(this);
                    var origWidth = slice.width();
                    slice.css({
                        top: '0px',
                        height: '100%',
                        width: '0px'
                    });
                    if (i == settings.slices - 1) {
                        setTimeout(function () {
                            slice.animate({
                                width: origWidth,
                                opacity: '1.0'
                            }, settings.animSpeed, '', function () {
                                slider.trigger('nivo:animFinished')
                            })
                        }, (100 + timeBuff))
                    } else {
                        setTimeout(function () {
                            slice.animate({
                                width: origWidth,
                                opacity: '1.0'
                            }, settings.animSpeed)
                        }, (100 + timeBuff))
                    }
                    timeBuff += 50;
                    i++
                })
            } else if (settings.effect == 'fade' || vars.randAnim == 'fade') {
                var i = 0;
                $('.nivo-slice', slider).each(function () {
                    $(this).css('height', '100%');
					slider.trigger('nivo:animFinished');
                    if (i == settings.slices - 1) {
                        $(this).animate({
                            opacity: '1.0'
                        }, (settings.animSpeed * 2), '', function () {
                            //slider.trigger('nivo:animFinished')
                        })
                    } else {
                        $(this).animate({
                            opacity: '1.0'
                        }, (settings.animSpeed * 2))
                    }
                    i++
                })
            }
        }
    };
    $.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 () {}
    };
    $.fn._reverse = [].reverse
})(jQuery);
