window.onload = function() { setSlideshowHeights(); } $(document).ready(function() { parseSlideshows(); }) $(window).resize(setSlideshowHeights); function setSlideshowHeights() { var slideshows = $(".slideshow"); slideshows.each(function(index,value) { var slideshow = $(value); var maxheight = slideshow.height(); var current_slide; slideshow.children('.slide').each(function(index,value) { current_slide = $(value); current_slide.width(slideshow.width()); if(current_slide.height() > maxheight) { maxheight = current_slide.height(); } }) slideshow.height(maxheight); }); } function parseSlideshows() { var slideshows = $('.slideshow'); slideshows.each(function(index,value) { var slideshow = slideshows.eq(index) setNextTransition(slideshow.attr('id'), slideshow.data('timeout')); setCurrentButton(slideshow.attr('id'), 0) slideshow.data('current', 0); slideshow.data('next', 1); slideshow.data('live',true); }); } function setNextTransition(slideshow_id, timeout) { setTimeout('transitionSlides("' + slideshow_id + '")', timeout); } function transitionSlides(slideshow_id, next_slide_index, break_chain) { var slideshow = $('#' + slideshow_id); var current_slide = slideshow.children('.slide').eq(slideshow.data('current')); if(next_slide_index == undefined) { next_slide_index = slideshow.data('next'); } var next_slide = slideshow.children('.slide').eq(next_slide_index); if(slideshow.data('live') == true || break_chain == true) { /* transition the slides */ if(slideshow.data('transition') == 'fade') { fadeSlides(current_slide, next_slide, slideshow.data('duration')); } else if(slideshow.data('transition') == 'fadeoi') { fadeoiSlides(current_slide, next_slide, slideshow.data('duration')); } else if(slideshow.data('transition') == 'slidelr') { if((next_slide_index < slideshow.data('current')) && break_chain == true) { slideLeftRight(slideshow, current_slide, next_slide, slideshow.data('duration')); } else { slideRightLeft(slideshow, current_slide, next_slide, slideshow.data('duration')); } } var button_function = 'setCurrentButton("' + slideshow_id + '", ' + next_slide_index + ')' setTimeout(button_function, (slideshow.data('duration') / 2)); /* reset the current and next slides */ resetCurrent(slideshow, next_slide_index); /* set the next transition */ if(break_chain != true) { setNextTransition(slideshow_id, slideshow.data('timeout') + slideshow.data('duration')); } else { slideshow.data('live', false); } } } function resetCurrent(slideshow, new_current) { slideshow.data('current',new_current); var next = slideshow.data('current') + 1; if(next > (slideshow.children('.slide').length - 1)) { next = 0; } slideshow.data('next',next); } function fadeSlides(current_slide, next_slide, length) { current_slide.css("z-index",1); next_slide.css("z-index",2); next_slide.fadeIn(length); current_slide.delay(length).hide(0); } function fadeoiSlides(current_slide, next_slide, length) { length = length / 2 current_slide.fadeOut(length); next_slide.delay(length).fadeIn(length); } function slideLeftRight(slideshow, current_slide, next_slide, length) { var width = slideshow.outerWidth() + 'px'; var current_left = '0px'; next_slide.width(slideshow.width()); current_slide.width(slideshow.width()); next_slide.css("left", '-' + width); next_slide.show(); current_slide.animate({'left': width}, length).hide(0); next_slide.animate({"left": current_left}, length); } function slideRightLeft(slideshow, current_slide, next_slide, length) { var width = slideshow.outerWidth() + 'px'; var current_left = '0px'; next_slide.width(slideshow.width()); current_slide.width(slideshow.width()); next_slide.css("left", width); next_slide.show(); current_slide.animate({'left': '-' + width}, length).hide(0); next_slide.animate({"left": current_left}, length); } function transitionToIndex(slideshow_id, slide_index) { var slideshow = $("#" + slideshow_id) if(slideshow.data('current') != slide_index) { slideshow.data('duration', '300'); setCurrentButton(slideshow_id, slide_index); transitionSlides(slideshow_id, slide_index, true); } } function setCurrentButton(slideshow_id, new_current_index) { var slideshow = $('#' + slideshow_id) var slide_links = slideshow.children(".slide-links").eq(0) if(slide_links.length != 0) { slide_links.children().removeClass('current'); slide_links.children().eq(new_current_index).addClass('current'); } }