/*
 * jQuery Nivo Slider v2.5.1
 * 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
 * 
 * March 2010
 */

(function($){
    var NivoSlider=function(element,options){
        var settings=$.extend({},$.fn.nivoSlider.defaults,options);var vars={
            currentSlide:0,
            currentImage:'',
            totalSlides:0,
            randAnim:'',
            running:false,
            paused:false,
            stop:false
        };var slider=$(element);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;
                }
                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++;
        });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');
        }
        slider.css('background','url("'+vars.currentImage.attr('src')+'") no-repeat');slider.append($('<div class="nivo-caption"><div></div></div>'));var processCaption=function(settings){
            var nivoCaption=$('.nivo-caption',slider);if(vars.currentImage.attr('title')!=''){
                var title=vars.currentImage.attr('title');if(title.substr(0,1)=='#')title=$(title).html();if(nivoCaption.css('display')=='block'){
                    nivoCaption.find('div').fadeOut(settings.animSpeed,function(){
                        $(this).html(title);$(this).fadeIn(settings.animSpeed);
                    });
                }else{
                    nivoCaption.find('div').html(title);
                }
                nivoCaption.fadeIn(settings.animSpeed);
            }else{
                nivoCaption.fadeOut(settings.animSpeed);
            }
            }
        processCaption(settings);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">'+settings.prevText+'</a><a class="nivo-nextNav">'+settings.nextText+'</a></div>');if(settings.directionNavHide){
                $('.nivo-directionNav',slider).show();slider.hover(function(){
                    $('.nivo-directionNav',slider).show();
                },function(){
                    $('.nivo-directionNav',slider).show();
                });
            }
            $('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('<div class="nivo-controlNav-mid"><a class="nivo-control" rel="'+i+'">'+(i+1)+'</a></div>');
                }
                }
            $('.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');
            });
        }

        $("div .nivo-controlNav").prepend('<div class="nivo-controlNav-left"></div>')
        $("div .nivo-controlNav").append('<div class="nivo-controlNav-right"></div>')    

        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');
                }
                });
        }
		<!--add this control by mikyun patel-->
if(settings.playpause){var playPauseControl=$('<div class="nivo-play-pause"><a class="nivo-pause"></a></div>');slider.append(playPauseControl);$('a.nivo-play',slider).live('click',function(){$('.nivo-play').addClass('nivo-pause').removeClass("nivo-play");vars.paused=false;if(timer==''&&!settings.manualAdvance){timer=setInterval(function(){nivoRun(slider,kids,settings,false);},settings.pauseTime);}});$('a.nivo-pause',slider).live('click',function(){$('.nivo-pause').addClass('nivo-play').removeClass("nivo-pause");vars.paused=true;clearInterval(timer);timer='';})}
<!--add this control by mikyun patel-->
        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');
                }
                });if($(kids[vars.currentSlide]).is('a')){
                $(kids[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);
        });var createSlices=function(slider,settings,vars){
            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)+'',
                        width:(slider.width()-(sliceWidth*i))+'px',
                        height:'0px',
                        opacity:'0',
                        background:'url("'+vars.currentImage.attr('src')+'") no-repeat -'+((sliceWidth+(i*sliceWidth))-sliceWidth)+'px 0%'
                        }));
                }else{
                    slider.append($('<div class="nivo-slice"></div>').css({
                        left:(sliceWidth*i)+'px',
                        width:sliceWidth+'px',
                        height:'0px',
                        opacity:'0',
                        background:'url("'+vars.currentImage.attr('src')+'") no-repeat -'+((sliceWidth+(i*sliceWidth))-sliceWidth)+'px 0%'
                        }));
                }
                }
            }
        var createBoxes=function(slider,settings,vars){
            var boxWidth=Math.round(slider.width()/settings.boxCols);var boxHeight=Math.round(slider.height()/settings.boxRows);for(var rows=0;rows<settings.boxRows;rows++){
                for(var cols=0;cols<settings.boxCols;cols++){
                    if(cols==settings.boxCols-1){
                        slider.append($('<div class="nivo-box"></div>').css({
                            opacity:0,
                            left:(boxWidth*cols)+'px',
                            top:(boxHeight*rows)+'px',
                            width:(slider.width()-(boxWidth*cols))+'px',
                            height:boxHeight+'px',
                            background:'url("'+vars.currentImage.attr('src')+'") no-repeat -'+((boxWidth+(cols*boxWidth))-boxWidth)+'px -'+((boxHeight+(rows*boxHeight))-boxHeight)+'px'
                            }));
                    }else{
                        slider.append($('<div class="nivo-box"></div>').css({
                            opacity:0,
                            left:(boxWidth*cols)+'px',
                            top:(boxHeight*rows)+'px',
                            width:boxWidth+'px',
                            height:boxHeight+'px',
                            background:'url("'+vars.currentImage.attr('src')+'") no-repeat -'+((boxWidth+(cols*boxWidth))-boxWidth)+'px -'+((boxHeight+(rows*boxHeight))-boxHeight)+'px'
                            }));
                    }
                    }
                }
            }
        var nivoRun=function(slider,kids,settings,nudge){
            var vars=slider.data('nivo:vars');if(vars&&(vars.currentSlide==vars.totalSlides-1)){
                settings.lastSlide.call(this);
            }
            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');
            }
            processCaption(settings);$('.nivo-slice',slider).remove();$('.nivo-box',slider).remove();if(settings.effect=='random'){
                var anims=new Array('sliceDownRight','sliceDownLeft','sliceUpRight','sliceUpLeft','sliceUpDown','sliceUpDownLeft','fold','fade','boxRandom','boxRain','boxRainReverse','boxRainGrow','boxRainGrowReverse');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=anims[Math.floor(Math.random()*(anims.length))];if(vars.randAnim==undefined)vars.randAnim='fade';

            }
            vars.running=true;if(settings.effect=='sliceDown'||settings.effect=='sliceDownRight'||vars.randAnim=='sliceDownRight'||settings.effect=='sliceDownLeft'||vars.randAnim=='sliceDownLeft'){
                createSlices(slider,settings,vars);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'){
                createSlices(slider,settings,vars);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'){
                createSlices(slider,settings,vars);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'){
                createSlices(slider,settings,vars);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'){
                createSlices(slider,settings,vars);var firstSlice=$('.nivo-slice:first',slider);firstSlice.css({
                    'height':'100%',
                    'width':slider.width()+'px'
                    });firstSlice.animate({
                    opacity:'1.0'
                },(settings.animSpeed*2),'',function(){
                    slider.trigger('nivo:animFinished');
                });
            }
            else if(settings.effect=='slideInRight'||vars.randAnim=='slideInRight'){
                createSlices(slider,settings,vars);var firstSlice=$('.nivo-slice:first',slider);firstSlice.css({
                    'height':'100%',
                    'width':'0px',
                    'opacity':'1'
                });firstSlice.animate({
                    width:slider.width()+'px'
                    },(settings.animSpeed*2),'',function(){
                    slider.trigger('nivo:animFinished');
                });
            }
            else if(settings.effect=='slideInLeft'||vars.randAnim=='slideInLeft'){
                createSlices(slider,settings,vars);var firstSlice=$('.nivo-slice:first',slider);firstSlice.css({
                    'height':'100%',
                    'width':'0px',
                    'opacity':'1',
                    'left':'',
                    'right':'0px'
                });firstSlice.animate({
                    width:slider.width()+'px'
                    },(settings.animSpeed*2),'',function(){
                    firstSlice.css({
                        'left':'0px',
                        'right':''
                    });slider.trigger('nivo:animFinished');
                });
            }
            else if(settings.effect=='boxRandom'||vars.randAnim=='boxRandom'){
                createBoxes(slider,settings,vars);var totalBoxes=settings.boxCols*settings.boxRows;var i=0;var timeBuff=0;var boxes=shuffle($('.nivo-box',slider));boxes.each(function(){
                    var box=$(this);if(i==totalBoxes-1){
                        setTimeout(function(){
                            box.animate({
                                opacity:'1'
                            },settings.animSpeed,'',function(){
                                slider.trigger('nivo:animFinished');
                            });
                        },(100+timeBuff));
                    }else{
                        setTimeout(function(){
                            box.animate({
                                opacity:'1'
                            },settings.animSpeed);
                        },(100+timeBuff));
                    }
                    timeBuff+=20;i++;
                });
            }
            else if(settings.effect=='boxRain'||vars.randAnim=='boxRain'||settings.effect=='boxRainReverse'||vars.randAnim=='boxRainReverse'||settings.effect=='boxRainGrow'||vars.randAnim=='boxRainGrow'||settings.effect=='boxRainGrowReverse'||vars.randAnim=='boxRainGrowReverse'){
                createBoxes(slider,settings,vars);var totalBoxes=settings.boxCols*settings.boxRows;var i=0;var timeBuff=0;var rowIndex=0;var colIndex=0;var box2Darr=new Array();box2Darr[rowIndex]=new Array();var boxes=$('.nivo-box',slider);if(settings.effect=='boxRainReverse'||vars.randAnim=='boxRainReverse'||settings.effect=='boxRainGrowReverse'||vars.randAnim=='boxRainGrowReverse'){
                    boxes=$('.nivo-box',slider)._reverse();
                }
                boxes.each(function(){
                    box2Darr[rowIndex][colIndex]=$(this);colIndex++;if(colIndex==settings.boxCols){
                        rowIndex++;colIndex=0;box2Darr[rowIndex]=new Array();
                    }
                    });for(var cols=0;cols<(settings.boxCols*2);cols++){
                    var prevCol=cols;for(var rows=0;rows<settings.boxRows;rows++){
                        if(prevCol>=0&&prevCol<settings.boxCols){
                            (function(row,col,time,i,totalBoxes){
                                var box=$(box2Darr[row][col]);var w=box.width();var h=box.height();if(settings.effect=='boxRainGrow'||vars.randAnim=='boxRainGrow'||settings.effect=='boxRainGrowReverse'||vars.randAnim=='boxRainGrowReverse'){
                                    box.width(0).height(0);
                                }
                                if(i==totalBoxes-1){
                                    setTimeout(function(){
                                        box.animate({
                                            opacity:'1',
                                            width:w,
                                            height:h
                                        },settings.animSpeed/1.3,'',function(){
                                            slider.trigger('nivo:animFinished');
                                        });
                                    },(100+time));
                                }else{
                                    setTimeout(function(){
                                        box.animate({
                                            opacity:'1',
                                            width:w,
                                            height:h
                                        },settings.animSpeed/1.3);
                                    },(100+time));
                                }
                                })(rows,prevCol,timeBuff,i,totalBoxes);i++;
                        }
                        prevCol--;
                    }
                    timeBuff+=100;
                }
                }
            }
        var shuffle=function(arr){
            for(var j,x,i=arr.length;i;j=parseInt(Math.random()*i),x=arr[--i],arr[i]=arr[j],arr[j]=x);return arr;
        }
        var trace=function(msg){
            if(this.console&&typeof console.log!="undefined")
                console.log(msg);
        }
        this.stop=function(){
            if(!$(element).data('nivo:vars').stop){
                $(element).data('nivo:vars').stop=true;trace('Stop Slider');
            }
            }
        this.start=function(){
            if($(element).data('nivo:vars').stop){
                $(element).data('nivo:vars').stop=false;trace('Start Slider');
            }
            }
        settings.afterLoad.call(this);return this;
    };$.fn.nivoSlider=function(options){
        return this.each(function(key,value){
            var element=$(this);if(element.data('nivoslider'))return element.data('nivoslider');var nivoslider=new NivoSlider(this,options);element.data('nivoslider',nivoslider);
        });
    };$.fn.nivoSlider.defaults={
        effect:'random',
        slices:15,
        boxCols:8,
        boxRows:4,
        animSpeed:500,
        pauseTime:3000,
        startSlide:0,
        directionNav:true,
        directionNavHide:true,
        controlNav:true,
        controlNavThumbs:false,
        controlNavThumbsFromRel:false,
        controlNavThumbsSearch:'.jpg',
        controlNavThumbsReplace:'_thumb.jpg',
        keyboardNav:true,
		playpause:true,
        pauseOnHover:true,
        manualAdvance:false,
        captionOpacity:1,
        prevText:'Prev',
        nextText:'Next',
        beforeChange:function(){},
        afterChange:function(){},
        slideshowEnd:function(){},
        lastSlide:function(){},
        afterLoad:function(){}
        };$.fn._reverse=[].reverse;
})(jQuery);
