
/* - jquery.jshowoff.min.js - */
// http://www.tourismcareers.co.za/portal_javascripts/jquery.jshowoff.min.js?original=1
(function(jq){jq.fn.jshowoff=function(settings){var config={animatePause:true,autoPlay:true,changeSpeed:600,controls:true,controlText:{play:'Play',pause:'Pause',next:'Next',previous:'Previous'},effect:'fade',hoverPause:true,links:true,speed:3000};if(settings)jq.extend(true,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 jqcont=jq(this);var gallery=jq(this).children().remove();var timer='';var counter=0;var preloadedImg=[];var howManyInstances=jq('.jshowoff').length+1;var uniqueClass='jshowoff-'+howManyInstances;var cssClass=config.cssClass!=undefined?config.cssClass:'';jqcont.css('position','relative').wrap('<div class="jshowoff '+uniqueClass+'" />');var jqwrap=jq('.'+uniqueClass);jqwrap.css('position','relative').addClass(cssClass);jq(gallery[0]).clone().appendTo(jqcont);preloadImg();if(config.controls){addControls();if(config.autoPlay==false){jq('.'+uniqueClass+'-play').addClass(uniqueClass+'-paused jshowoff-paused').text(config.controlText.play)}};if(config.links){addSlideLinks();jq('.'+uniqueClass+'-slidelinks a').eq(0).addClass(uniqueClass+'-active jshowoff-active')};if(config.hoverPause){jqcont.hover(function(){if(isPlaying())pause('hover')},function(){if(isPlaying())play('hover')})};if(config.autoPlay&&gallery.length>1){timer=setInterval(function(){play()},config.speed)};if(gallery.length<1){jq('.'+uniqueClass).append('<p>For jShowOff to work, the container element must have child elements.</p>')};function transitionTo(gallery,index){var oldCounter=counter;if((counter>=gallery.length)||(index>=gallery.length)){counter=0;var e2b=true}
else if((counter<0)||(index<0)){counter=gallery.length-1;var b2e=true}
else{counter=index}
if(config.effect=='slideLeft'){var newSlideDir,oldSlideDir;function slideDir(dir){newSlideDir=dir=='right'?'left':'right';oldSlideDir=dir=='left'?'left':'right'};counter>=oldCounter?slideDir('left'):slideDir('right');jq(gallery[counter]).clone().appendTo(jqcont).slideIt({direction:newSlideDir,changeSpeed:config.changeSpeed});if(jqcont.children().length>1){jqcont.children().eq(0).css('position','absolute').slideIt({direction:oldSlideDir,showHide:'hide',changeSpeed:config.changeSpeed},function(){jq(this).remove()})}}else if(config.effect=='fade'){jq(gallery[counter]).clone().appendTo(jqcont).hide().fadeIn(config.changeSpeed,function(){if(jq.browser.msie)this.style.removeAttribute('filter')});if(jqcont.children().length>1){jqcont.children().eq(0).css('position','absolute').fadeOut(config.changeSpeed,function(){jq(this).remove()})}}else if(config.effect=='none'){jq(gallery[counter]).clone().appendTo(jqcont);if(jqcont.children().length>1){jqcont.children().eq(0).css('position','absolute').remove()}};if(config.links){jq('.'+uniqueClass+'-active').removeClass(uniqueClass+'-active jshowoff-active');jq('.'+uniqueClass+'-slidelinks a').eq(counter).addClass(uniqueClass+'-active jshowoff-active')}};function isPlaying(){return jq('.'+uniqueClass+'-play').hasClass('jshowoff-paused')?false:true};function play(src){if(!isBusy()){counter++;transitionTo(gallery,counter);if(src=='hover'||!isPlaying()){timer=setInterval(function(){play()},config.speed)}
if(!isPlaying()){jq('.'+uniqueClass+'-play').text(config.controlText.pause).removeClass('jshowoff-paused '+uniqueClass+'-paused')}}};function pause(src){clearInterval(timer);if(!src||src=='playBtn')jq('.'+uniqueClass+'-play').text(config.controlText.play).addClass('jshowoff-paused '+uniqueClass+'-paused');if(config.animatePause&&src=='playBtn'){jq('<p class="'+uniqueClass+'-pausetext jshowoff-pausetext">'+config.controlText.pause+'</p>').css({fontSize:'62%',textAlign:'center',position:'absolute',top:'40%',lineHeight:'100%',width:'100%'}).appendTo(jqwrap).addClass(uniqueClass+'pauseText').animate({fontSize:'600%',top:'30%',opacity:0},{duration:500,complete:function(){jq(this).remove()}})}};function next(){goToAndPause(counter+1)};function previous(){goToAndPause(counter-1)};function isBusy(){return jqcont.children().length>1?true:false};function goToAndPause(index){jqcont.children().stop(true,true);if((counter!=index)||((counter==index)&&isBusy())){if(isBusy())jqcont.children().eq(0).remove();transitionTo(gallery,index);pause()}};function preloadImg(){jq(gallery).each(function(i){jq(this).find('img').each(function(i){preloadedImg[i]=jq('<img>').attr('src',jq(this).attr('src'))})})};function addControls(){jqwrap.append('<p class="jshowoff-controls '+uniqueClass+'-controls"><a class="jshowoff-play '+uniqueClass+'-play" href="#null">'+config.controlText.pause+'</a> <a class="jshowoff-prev '+uniqueClass+'-prev" href="#null">'+config.controlText.previous+'</a> <a class="jshowoff-next '+uniqueClass+'-next" href="#null">'+config.controlText.next+'</a></p>');jq('.'+uniqueClass+'-controls a').each(function(){if(jq(this).hasClass('jshowoff-play'))jq(this).click(function(){isPlaying()?pause('playBtn'):play();return false});if(jq(this).hasClass('jshowoff-prev'))jq(this).click(function(){previous();return false});if(jq(this).hasClass('jshowoff-next'))jq(this).click(function(){next();return false})})};function addSlideLinks(){jqwrap.append('<p class="jshowoff-slidelinks '+uniqueClass+'-slidelinks"></p>');jq.each(gallery,function(i,val){var linktext=jq(this).attr('title')!=''?jq(this).attr('title'):i+1;jq('<a class="jshowoff-slidelink-'+i+' '+uniqueClass+'-slidelink-'+i+'" href="#null">'+linktext+'</a>').bind('click',{index:i},function(e){goToAndPause(e.data.index);return false}).appendTo('.'+uniqueClass+'-slidelinks')})}});return this}})(jQuery);(function(jq){jq.fn.slideIt=function(settings,callback){var config={direction:'left',showHide:'show',changeSpeed:600};if(settings)jq.extend(config,settings);this.each(function(i){jq(this).css({left:'auto',right:'auto',top:'auto',bottom:'auto'});var measurement=(config.direction=='left')||(config.direction=='right')?jq(this).outerWidth():jq(this).outerHeight();var startStyle={};startStyle['position']=jq(this).css('position')=='static'?'relative':jq(this).css('position');startStyle[config.direction]=(config.showHide=='show')?'-'+measurement+'px':0;var endStyle={};endStyle[config.direction]=config.showHide=='show'?0:'-'+measurement+'px';jq(this).css(startStyle).animate(endStyle,config.changeSpeed,callback)});return this}})(jQuery);

