function addShowcase(sc) { if (sc){ v5.showcaseList.push(sc); } } function removeShowcase(sc) { for (i = 0; i < v5.showcaseList.length; i++){ if (v5.showcaseList[i] == sc){ if (typeof(v5.showcaseList[i].stopAutoRotate) == 'function') { v5.showcaseList[i].stopAutoRotate(); } v5.showcaseList.splice(i, 1); break; } } } function removeAllShowcases() { removeAllShowcaseIntervals(); v5.showcaseList.splice(0); v5.showcaseList.length = 0; } function addShowcaseInterval(intv, playFunc) { v5.showcaseIntervals.push(intv); v5.showcasePlayFunctions.push(playFunc); } function removeShowcaseInterval(intv, keepPlay) { for (i = 0; i < v5.showcaseIntervals.length; i++){ if (v5.showcaseIntervals[i] == intv){ v5.showcaseIntervals.splice(i, 1); v5.showcasePlayFunctions.splice(i, 1); break; } } clearInterval(intv); } function removeAllShowcaseIntervals() { for (i = 0; i < v5.showcaseIntervals.length; i++){ clearInterval(v5.showcaseIntervals[i]); } v5.showcaseIntervals.length = 0; //alert('showcase intervals cleared'); } function removeAllPlayFunctions() { v5.showcasePlayFunctions.length = 0; } function stopAllShowcases() { removeAllShowcaseIntervals(); /* for (i = 0; i < v5.showcaseList.length; i++){ v5.showcaseList[i].sliderShowcase.showcaseWrapper.stopAutoRotate(); } */ } function startAllShowcases() { for (i = 0; i < v5.showcasePlayFunctions.length; i++){ if (typeof(v5.showcasePlayFunctions[i]) == 'function'){ interval = v5.showcasePlayFunctions[i](); setTimeout(function() { addShowcaseInterval(interval, v5.showcasePlayFunctions[i]); }, 0); } } } (function($) { $.fn.sliderShowcase = function(options) { var defaults = { slides: '>div', animationSpeed: 900, autorotation: true, autorotationSpeed:3, appendControls: '', slideControls: 'none', blockSize: {height: 'full', width:'full'}, betweenBlockDelay:15, display: 'topleft', switchMovement: false, showText: true, transition: 'slide', fontOpacity: 1.0, backgroundOpacity:0.8, transitionOrder: new Array('diagonaltop', 'diagonalbottom','topleft', 'bottomright', 'random') }; var options = $.extend(defaults, options); return this.each(function() { $(this).bind('contextmenu',function(e){ return noEvent(e); }); var slideWrapper = $(this), slides = slideWrapper.find(options.slides), slideImages = slides.find('>a>img'), slideCount = slides.length, slideWidth = slides.width(), slideHeight= slides.height(), blockNumber = 0, currentSlideNumber = 0, reverseSwitch = false, currentTransition = 0, current_class = 'active_item', controls = '', skipSwitch = true, interval ='', blockOrder = new Array(); if (options.blockSize.height == 'full') options.blockSize.height = slideHeight; if (options.blockSize.width == 'full') options.blockSize.width = slideWidth; //alert(options.blockSize.width+' '+options.blockSize.height); if(options.showText){ } excerptWrapper = slideWrapper.find('.feature_excerpt').css('opacity',options.backgroundOpacity); slides.find('.feature_excerpt').css({display:'block', 'opacity':options.backgroundOpacity}); function getAlpha(rgb, opacity){ var rgba = ''; if (rgb && rgb.indexOf('rgb(') != -1){ var tmp = rgb.replace('rgb(', '').replace(')', ''); rgba = 'rgba('+tmp+', '+opacity+')'; return rgba; } return rgb; } slideWrapper.methods = { init: function() { var posX = 0, posY = 0, generateBlocks = true, bgOffset = '', blockSelectionJQ ='', blockSelection =''; while(generateBlocks) { blockNumber ++; bgOffset = "-"+posX +"px -"+posY+"px"; $('
').appendTo(slideWrapper).css({ zIndex:20, position:'absolute', display:'none', left:posX, top:posY, height:options.blockSize.height, width:options.blockSize.width, backgroundPosition:bgOffset }); posX += options.blockSize.width; if(posX >= slideWidth) { posX = 0; posY += options.blockSize.height; } if(posY >= slideHeight) { generateBlocks = false; } } blockSelection = slideWrapper.find('.kBlock'); blockOrder['topleft'] = blockSelection; blockOrder['bottomright'] = $(blockSelection.get().reverse()); blockOrder['diagonaltop'] = slideWrapper.methods.kcubit(blockSelection); blockOrder['diagonalbottom'] = slideWrapper.methods.kcubit(blockOrder['bottomright']); blockOrder['random'] = slideWrapper.methods.fyrandomize(blockSelection); slides.each(function() { $.data(this, "data", { img: $(this).find('img').attr('src')}); }); if(slideCount <= 1) { slideWrapper.imagePreloader({delay:200}); } else { slideWrapper.imagePreloader({callback:slideWrapper.methods.preloadingDone, delay:200}); slideWrapper.methods.appendControls(); } }, appendControls: function() { if (options.slideControls != 'none' && options.slideControls.length) { controls = $('').addClass('slidecontrols').css({position:'absolute'}).appendTo(options.appendControls); slides.each(function(i) { var controller = $(''+(i+1)+'').appendTo(controls); controller.bind('click', {currentSlideNumber: i}, slideWrapper.methods.switchSlide); current_class = ""; }); } }, preloadingDone: function() { skipSwitch = false; slides.css({'backgroundColor':'transparent','backgroundImage':'none'}); if(options.autorotation && !$.browser.opera) { slideWrapper.methods.startAutoRotate(); } }, autorotate: function() { interval = setInterval(function() { currentSlideNumber ++; if(currentSlideNumber == slideCount) currentSlideNumber = 0; slideWrapper.methods.switchSlide(); }, (parseInt(options.autorotationSpeed) * 1000) + (options.betweenBlockDelay * blockNumber) + options.animationSpeed); return interval; }, startAutoRotate: function() { if(options.autorotation && !$.browser.opera) { interval = slideWrapper.methods.autorotate(); addShowcaseInterval(interval, slideWrapper.methods.autorotate); slideImages.bind("click", function(){ slideWrapper.methods.stopAutoRotate(); }); } }, stopAutoRotate: function() { if (interval){ removeShowcaseInterval(interval); interval = null; } }, switchSlide: function(passed) { var noAction = false; if(passed != undefined && !skipSwitch) { if(currentSlideNumber != passed.data.currentSlideNumber) { currentSlideNumber = passed.data.currentSlideNumber; } else { noAction = true; } } if(passed != undefined) clearInterval(interval); var nextSlide = slides.filter(':eq('+currentSlideNumber+')'); if ($.data(nextSlide[0], "data") == null){ clearInterval(interval); noAction = true; } if(!skipSwitch && noAction == false) { skipSwitch = true; var currentSlide = slides.filter(':visible'), nextSlide = slides.filter(':eq('+currentSlideNumber+')'), nextURL = $.data(nextSlide[0], "data").img, nextImageBG = 'url('+nextURL+')'; if(options.appendControls && controls) { controls.find('.active_item').removeClass('active_item'); controls.find('a:eq('+currentSlideNumber+')').addClass('active_item'); } blockSelectionJQ = blockOrder[options.display]; slides.find('>a>img').css({opacity:1,visibility:'visible'}); slides.find('>a>img').each(function() { cleanupIEFade(this); }); if(options.switchMovement && (options.display == "topleft" || options.display == "diagonaltop")) { if(reverseSwitch == false) { blockSelectionJQ = blockOrder[options.display]; reverseSwitch = true; } else { if(options.display == "topleft") blockSelectionJQ = blockOrder['bottomright']; if(options.display == "diagonaltop") blockSelectionJQ = blockOrder['diagonalbottom']; reverseSwitch = false; } } if(options.display == 'random') { blockSelectionJQ = slideWrapper.methods.fyrandomize(blockSelection); } if(options.display == 'all') { blockSelectionJQ = blockOrder[options.transitionOrder[currentTransition]]; currentTransition ++; if(currentTransition >= options.transitionOrder.length) currentTransition = 0; } blockSelectionJQ.css({backgroundImage: nextImageBG}).each(function(i) { var currentBlock = $(this); setTimeout(function() { var transitionObject = new Array(); if(options.transition == 'slide') { transitionObject['css'] = {height:1, width:1, display:'block',opacity:0}; transitionObject['anim'] = {height:options.blockSize.height,width:options.blockSize.width,opacity:1}; } else { transitionObject['css'] = {display:'block',opacity:0}; transitionObject['anim'] = {opacity:1}; } currentBlock.css(transitionObject['css']).animate(transitionObject['anim'],options.animationSpeed, function() { if(i+1 == blockNumber) { slideWrapper.methods.changeImage(currentSlide, nextSlide); } }); }, i*options.betweenBlockDelay); }); } return false; }, changeImage: function(currentSlide, nextSlide) { currentSlide.css({zIndex:0, display:'none'}); nextSlide.css({zIndex:3, display:'block'}); blockSelectionJQ.fadeOut(options.animationSpeed*1/3, function(){ skipSwitch = false; }); }, fyrandomize: function(object) { var length = object.length, objectSorted = $(object); if ( length == 0 ) return false; while ( --length ) { var newObject = Math.floor( Math.random() * ( length + 1 ) ), temp1 = objectSorted[length], temp2 = objectSorted[newObject]; objectSorted[length] = temp2; objectSorted[newObject] = temp1; } return objectSorted; }, kcubit: function(object) { var length = object.length, objectSorted = $(object), currentIndex = 0; rows = Math.ceil(slideHeight / options.blockSize.height), columns = Math.ceil(slideWidth / options.blockSize.width), oneColumn = blockNumber/columns, oneRow = blockNumber/rows, modX = 0, modY = 0, rowend = 0, endreached = false, onlyOne = false; if ( length == 0 ) return false; for (i = 0; i