/*
 * jQuery Nivo Gallery v0.7
 * http://dev7studios.com
 *
 * Copyright 2011, Gilbert Pellegrom
 * Free to use and abuse under the MIT license.
 * http://www.opensource.org/licenses/mit-license.php
 * 
 * October 2011
 */

(function(a){a.nivoGallery=function(b,c){var d={pauseTime:3e3,animSpeed:300,effect:"fade",startPaused:false,directionNav:true,progressBar:true,galleryLoaded:function(){},beforeChange:function(a,b,c){},afterChange:function(a,b,c){},galleryEnd:function(){}};var e={slides:[],currentSlide:0,totalSlides:0,animating:false,paused:false,timer:null,progressTimer:null};var f=this;f.settings={};var g=a(b),b=b;f.init=function(){f.settings=a.extend({},d,c);h()};var h=function(){e.slides=g.find("ul li").remove();e.totalSlides=e.slides.length;g.find("ul").addClass("nivoGallery-slides");if(f.settings.progressBar){g.append('<div class="nivoGallery-progress"></div>')}if(f.settings.directionNav){g.append('<div class="nivoGallery-directionNav">'+'<a class="nivoGallery-prev">Prev</a> <a class="nivoGallery-next">Next</a>'+"</div>")}g.append('<div class="nivoGallery-bar">'+'<a class="nivoGallery-play playing" title="Play / Pause"></a>'+'<div class="nivoGallery-count">'+i()+"</div>"+'<div class="nivoGallery-caption">'+j()+"</div>"+'<a class="nivoGallery-fullscreen" title="Toggle Fullscreen"></a>'+"</div>").fadeIn(200);l(e.currentSlide)};var i=function(){return e.currentSlide+1+" / "+e.totalSlides};var j=function(){var b=a(e.slides[e.currentSlide]).attr("data-title");var c=a(e.slides[e.currentSlide]).attr("data-caption");var d="";if(b)d+='<span class="nivoGallery-captionTitle">'+b+"</span>";if(c)d+=c;return d};var k=function(){clearTimeout(e.timer);if(f.settings.progressBar){clearInterval(e.progressTimer);g.find(".nivoGallery-progress").width("0%")}if(!e.paused){e.timer=setTimeout(function(){g.trigger("nextslide")},f.settings.pauseTime);if(f.settings.progressBar){var a=new Date;e.progressTimer=setInterval(function(){var b=new Date-a;var c=b/f.settings.pauseTime*100;g.find(".nivoGallery-progress").width(c+"%");if(c>100){clearInterval(e.progressTimer);g.find(".nivoGallery-progress").width("0%")}},10)}}};var l=function(b,c){if(a(e.slides[b]).data("loaded")){if(typeof c=="function")c.call(this);return}if(a(e.slides[b]).find("img").length>0&&a(e.slides[b]).attr("data-type")!="html"&&a(e.slides[b]).attr("data-type")!="video"){g.removeClass("loaded");var d=new Image;a(d).load(function(){g.find(".nivoGallery-slides").append(e.slides[b]);a(e.slides[b]).fadeIn(f.settings.animSpeed);if(b==0){g.trigger("galleryloaded")}g.addClass("loaded");a(e.slides[b]).data("loaded",true);a(e.slides[b]).addClass("slide-"+(b+1));if(typeof c=="function")c.call(this)}).attr("src",a(e.slides[b]).find("img:first").attr("src")).attr("alt",a(e.slides[b]).find("img:first").attr("alt")!=undefined?a(e.slides[b]).find("img:first").attr("alt"):"").attr("title",a(e.slides[b]).find("img:first").attr("title")!=undefined?a(e.slides[b]).find("img:first").attr("title"):"")}else{g.find(".nivoGallery-slides").append(e.slides[b]);if(b==0){g.trigger("galleryloaded")}g.addClass("loaded");a(e.slides[b]).data("loaded",true);a(e.slides[b]).addClass("slide-"+(b+1));if(a(e.slides[b]).attr("data-type")=="html")a(e.slides[b]).wrapInner('<div class="nivoGallery-htmlwrap"></div>');if(a(e.slides[b]).attr("data-type")=="video")a(e.slides[b]).wrapInner('<div class="nivoGallery-videowrap"></div>');if(typeof c=="function")c.call(this)}};var m=function(b){if(e.animating)return;f.settings.beforeChange.call(this,e.currentSlide,a(e.slides[e.currentSlide]),e.paused);if(f.settings.effect=="fade"){var c=false;e.animating=true;a(e.slides[e.currentSlide]).fadeOut(f.settings.animSpeed,function(){if(b=="prev"){e.currentSlide--;if(e.currentSlide<0){e.currentSlide=e.totalSlides-1;c=true}}else{e.currentSlide++;if(e.currentSlide>=e.totalSlides){e.currentSlide=0;c=true}}l(e.currentSlide,function(){g.find(".nivoGallery-count").text(i());g.find(".nivoGallery-caption").html(j());a(e.slides[e.currentSlide]).fadeIn(f.settings.animSpeed,function(){e.animating=false;k();f.settings.afterChange.call(this,e.currentSlide,a(e.slides[e.currentSlide]),e.paused);if(c)f.settings.galleryEnd.call(this)})})})}};f.play=function(){g.find(".nivoGallery-play").addClass("playing");e.paused=false;k()};f.pause=function(){g.find(".nivoGallery-play").removeClass("playing");e.paused=true;k()};f.nextSlide=function(){f.pause();m("next")};f.prevSlide=function(){f.pause();m("prev")};f.goTo=function(b){if(b==e.currentSlide||e.animating)return;a(e.slides[e.currentSlide]).fadeOut(f.settings.animSpeed);e.currentSlide=b-1;if(e.currentSlide<0)e.currentSlide=e.totalSlides-1;if(e.currentSlide>=e.totalSlides-1)e.currentSlide=e.totalSlides-2;f.pause();m("next")};g.bind("galleryloaded",function(){a(e.slides[e.currentSlide]).fadeIn(200);if(f.settings.startPaused){f.pause()}else{k()}f.settings.galleryLoaded.call(this)});g.find(".nivoGallery-play").live("click",function(){a(this).toggleClass("playing");e.paused=!e.paused;k();return false});g.bind("nextslide",function(){m("next")});g.find(".nivoGallery-prev").live("click",function(){f.prevSlide()});g.find(".nivoGallery-next").live("click",function(){f.nextSlide()});g.find(".nivoGallery-fullscreen").live("click",function(){g.toggleClass("fullscreen")});a(document).keyup(function(a){if(a.keyCode==27){g.removeClass("fullscreen")}});f.init()};a.fn.nivoGallery=function(b){return this.each(function(){if(undefined==a(this).data("nivoGallery")){var c=new a.nivoGallery(this,b);a(this).data("nivoGallery",c)}})}})(jQuery)
