/*
 * jQuery Cycle Plugin for light-weight slideshows
 * Examples and documentation at: http://malsup.com/jquery/cycle/
 *
 * @author: M. Alsup
 * @version: 1.0.2 (7/24/2007)
 * @requires jQuery v1.1.2 or later
 *
 * Based on the work of:
 *  1) Matt Oakes (http://portfolio.gizone.co.uk/applications/slideshow/)
 *  2) Torsten Baldes (http://medienfreunde.com/lab/innerfade/)
 */
(function($) {

$.fn.cycle = function(options) {
    return this.each(function() {
        if (options && options == 'stop') {
            if (this.cycleTimeout) clearTimeout(this.cycleTimeout);
            this.cycleTimeout = 0;
            return;
        }
        var $this = $(this), els = $this.children();
        if (els.length < 2) return; // don't bother

        var opts = $.extend({}, $.fn.cycle.defaults, options || {}, $.meta ? $this.data() : {});
        if (opts.autostop) opts.countdown = els.length-1;

        // allow shorthand overrides of width, height and timeout
        var cls = this.className;
        var w = parseInt((cls.match(/w:(\d+)/)||[])[1]) || opts.width
        var h = parseInt((cls.match(/h:(\d+)/)||[])[1]) || opts.height;
        opts.timeout = parseInt((cls.match(/t:(\d+)/)||[])[1]) || opts.timeout;

        // make sure the timeout and speed settings are sane
        if (opts.speed.constructor == String)
            opts.speed = {slow: 600, fast: 200}[opts.speed] || 400;
        while((opts.timeout - opts.speed) < 250)
            opts.timeout += opts.speed;

        if ($this.css('position') == 'static') $this.css('position', 'static');
        if (w) $this.width(w);
        if (h && h != 'auto') $this.height(h);

        var $els = $(els).each(function(i){$(this).css('z-index', els.length-i);}).css('position','absolute').hide();
        if (opts.fit && w) $els.width(w);
        if (opts.fit && h && h != 'auto') $els.height(h);
        $(els[0]).show();

        if (opts.pause)
            $this.hover(function(){opts.paused=1;}, function(){opts.paused=0;});

        opts.current = opts.random ? (Math.floor(Math.random() * (els.length-1)))+1 : 1;
        opts.last = 0;
        this.cycleTimeout = setTimeout(function(){$.fn.cycle.go(els, opts)}, opts.timeout);
    });
};

$.fn.cycle.go = function (els, opts) {
    if (els[0].parentNode.cycleTimeout === 0) return;
    if (!opts.paused) {
        if (opts.fade) {
            $.fn.cycle.fadeToggle(els[opts.last], opts.speed);
            $.fn.cycle.fadeToggle(els[opts.current], opts.speed);
        }
        else {
            $(els[opts.last]).slideUp(opts.speed);
            $(els[opts.current]).slideDown(opts.speed);
        }

        if (opts.random) {
            opts.last = opts.current;
            while (opts.current == opts.last)
                opts.current = Math.floor(Math.random() * els.length);
        }
        else { // sequence
            var roll = (opts.current + 1) == els.length;
            opts.current = roll ? 0 : opts.current+1;
            opts.last    = roll ? els.length-1 : opts.current-1;
        }
    }
    if (opts.autostop && --opts.countdown == 0) return;
    setTimeout(function() { $.fn.cycle.go(els, opts) }, opts.timeout);
};

// this allows more flexibility than the core fade methods
$.fn.cycle.fadeToggle = function(el, speed){
   var $el = $(el);
   var to = $el.is(':visible') && $el.css('opacity') > 0 ? 0 : 1;
   if (to) $el.css('opacity',0).show();
   $el.fadeTo(speed, to, function() {
       to ? $(this).show() : $(this).hide();
   });
};

$.fn.cycle.defaults = {
    height:  'auto',   // container height
    fade:     1,       // true for fade, false for slide
    speed:    400,     // any valid fx speed value
    timeout:  4000,    // ms duration for each slide
    random:   0,       // true for random, false for sequence
    fit:      0,       // force slides to fit container
    pause:    0,       // true to enable "pause on hover"
    autostop: 0        // true to end slideshow after X slides have been shown (where X == slide count)
                       // (note that if random == true not all slides are guaranteed to have been shown)
};

})(jQuery);


// controls the sectionPhoto div if more than one img
$(function() {
        $('#homePhoto').cycle({fade: 2, speed: 600, timeout: 5000, random: 0});
	});

$(function() {
        $('#sectionPhoto').cycle({fade: 2, speed: 600, timeout: 5000, random: 0});
	});

