/*

Title:		jShowOff: a jQuery Content Rotator Plugin
Author:		Erik Kallevig
Version:	0.1.1
Website:	http://ekallevig.com/jshowoff
License: 	Dual licensed under the MIT and GPL licenses.

Modified By:	Urszula Ciaputa
changes: playText, pauseText, nextText and prevText settings added; replacing $ with jQuery
*/

(function(jQuery){jQuery.fn.jshowoff=function(settings){var config={speed:3000,changeSpeed:600,controls:true,links:true,autoPlay:true,playText:'Play',pauseText:'Pause',nextText:'Next',prevText:'Previous'};if(settings)jQuery.extend(config,settings);if(config.speed<(config.changeSpeed+20)){alert('jShowOff: Make speed at least 20ms longer than changeSpeed; the fades aren\'t always right on time.');return this;};this.each(function(i){var cont=this;var gallery=jQuery(this).children('div').remove();var timer='';var counter=0;var preloaded=[];var howManyInstances=jQuery('.jshowoff').length+1;var cssClass=config.cssClass!==undefined?'jshowoff-custom-'+howManyInstances+' '+config.cssClass:'jshowoff-'+howManyInstances;var uniqueClass=cssClass.split(' ')[0];function start(){jQuery(cont).css('position','relative').append('<div class="jshowoff '+cssClass+'"></div>');jQuery(gallery[0]).clone().appendTo('.'+uniqueClass);preload();if(config.controls){addControls();if(config.autoPlay==false){jQuery('.'+uniqueClass+'-play').addClass(uniqueClass+'-paused jshowoff-paused').text(config.playText);}}
if(config.links){addLinks();jQuery('.'+uniqueClass+'-slidelinks a').eq(0).addClass(uniqueClass+'-active jshowoff-active');}
jQuery('<div class="'+uniqueClass+'-cache jshowoff-cache"></div>').appendTo(cont);jQuery(gallery).each(function(){jQuery(this).appendTo(jQuery('.'+uniqueClass+'-cache')).hide();});if(config.autoPlay&&gallery.length>1){timer=setTimeout(function(){play();},config.speed);};if(gallery.length<1){jQuery('.'+uniqueClass).append('<p>For jShowOff to work, the container element must have child divs.</p>');}};function transitionTo(gallery,index){if((counter>=gallery.length)||(index>=gallery.length)){counter=0;}
else if((counter<0)||(index<0)){counter=gallery.length-1;}
else{counter=index;}
jQuery(gallery[counter]).clone().appendTo('.'+uniqueClass).hide().fadeIn(config.changeSpeed);if(jQuery('.'+uniqueClass+' div').length>1){jQuery('.'+uniqueClass+' div:first').css('position','absolute').fadeOut(config.changeSpeed,function(){jQuery(this).remove();});};if(config.links){jQuery('.'+uniqueClass+'-active').removeClass(uniqueClass+'-active jshowoff-active');jQuery('.'+uniqueClass+'-slidelinks a').eq(counter).addClass(uniqueClass+'-active jshowoff-active');}};function addControls(){jQuery(cont).append('<p class="jshowoff-controls '+uniqueClass+'-controls"><a class="jshowoff-play '+uniqueClass+'-play" href="#null">'+config.pauseText+'</a> <a class="jshowoff-prev '+uniqueClass+'-prev" href="#null">'+config.prevText+'</a> <a class="jshowoff-next '+uniqueClass+'-next" href="#null">'+config.nextText+'</a></p>');jQuery('.'+uniqueClass+'-controls a').each(function(){if(jQuery(this).hasClass('jshowoff-play'))jQuery(this).click(function(){updatePlayPause();return false;});if(jQuery(this).hasClass('jshowoff-prev'))jQuery(this).click(function(){previous();return false;});if(jQuery(this).hasClass('jshowoff-next'))jQuery(this).click(function(){next();return false;});});};function updatePlayPause(){if(isPlaying()){pause();jQuery('.'+uniqueClass+'-play').text(config.playText).toggleClass('jshowoff-paused '+uniqueClass+'-paused');}
else{play();jQuery('.'+uniqueClass+'-play').text(config.pauseText).toggleClass('jshowoff-paused '+uniqueClass+'-paused');};};function isPlaying(){if(jQuery('.'+uniqueClass+'-play').hasClass('jshowoff-paused')){return false;}
else{return true;};};function play(){if(!isBusy()){counter++;transitionTo(gallery,counter);clearTimeout(timer);timer=setTimeout(function(){play(gallery);},config.speed);}};function pause(){clearTimeout(timer);jQuery('<p class="'+uniqueClass+'-pausetext">'+config.pauseText+'</p>').css({fontSize:'62%',color:'#fff',textAlign:'center',position:'absolute',top:'40%',lineHeight:'100%',width:'100%'}).appendTo('.'+uniqueClass).animate({fontSize:'600%',top:'30%',opacity:0},{duration:400,complete:function(){jQuery(this).remove();}});};function stopit(){clearTimeout(timer);};function next(){goToAndPause(counter+1);};function previous(){goToAndPause(counter-1);};function isBusy(){return jQuery('.'+uniqueClass+' div').length>1?true:false;};function goToAndPause(index){jQuery('.'+uniqueClass+' div').stop(true);stopit();jQuery('.'+uniqueClass+'-play').text(config.playText).addClass('jshowoff-paused '+uniqueClass+'-paused');if((counter!=index)||((counter==index)&&isBusy())){if(isBusy())jQuery('.'+uniqueClass+' div:first').remove();transitionTo(gallery,index);}};function addLinks(){jQuery(cont).append('<p class="jshowoff-slidelinks '+uniqueClass+'-slidelinks"></p>');jQuery.each(gallery,function(i,val){jQuery('<a class="jshowoff-slidelink-'+i+' '+uniqueClass+'-slidelink-'+i+'" href="#null">'+(i+1)+'</a>').bind('click',{index:i},function(e){goToAndPause(e.data.index);return false;}).appendTo('.'+uniqueClass+'-slidelinks');});};function preload(){jQuery(gallery).each(function(i){jQuery(this).find('img').each(function(i){preloaded[i]=jQuery('<img>').attr('src',jQuery(this).attr('src'));});});};start();});return this;};})(jQuery);
