/*
* Slides, A Slideshow Plugin for jQuery
* Intructions: http://slidesjs.com
* By: Nathan Searles, http://nathansearles.com
* Version: 1.1.7
* Updated: May 2nd, 2011
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
(
function($) {
$.fn.slides = function(g) {
g = $.extend(
{}, $.fn.slides.option, g);
return this.each(function() {
    $('.' + g.container, $(this)).children().wrapAll('<div class="slides_control"/>');
    var d = $(this),
control = $('.slides_control', d), total = control.children().size(), width = control.children().outerWidth(), height = control.children().outerHeight(), start = g.start - 1, effect = g.effect.indexOf(',') < 0 ? g.effect : g.effect.replace(' ', '').split(',')[0], paginationEffect = g.effect.indexOf(',') < 0 ? effect : g.effect.replace(' ', '').split(',')[1], next = 0, prev = 0, number = 0, current = 0, loaded, active, clicked, position, direction, imageParent, pauseTimeout, playInterval;
    function animate(a, b, c) {
        if (!active && loaded) {
            active = true; g.animationStart(current + 1);
            switch (a) {
                case 'next': prev = current; next = current + 1; next = total === next ? 0 : next; position = width * 2; a = -width * 2; current = next; break;
                case 'prev': prev = current; next = current - 1; next = next === -1 ? total - 1 : next; position = 0; a = 0; current = next; break;
                case 'pagination': next = parseInt(c, 10); prev = $('.' + g.paginationClass + ' li.' + g.currentClass + ' a', d).attr('href').match('[^#/]+$');
                    if (next > prev) {
                        position = width * 2; a = -width * 2
                    }
                    else {
                        position = 0; a = 0
                    } current = next; break
            }
            if (b === 'fade') {
                if (g.crossfade) {
                    control.children(':eq(' + next + ')', d).css({ zIndex: 10 }).fadeIn(g.fadeSpeed, g.fadeEasing, function() {
                    if (g.autoHeight) {
                        control.animate({ height: control.children(':eq(' + next + ')', d).outerHeight() }, g.autoHeightSpeed,
function() {
                        control.children(':eq(' + prev + ')', d).css({ display: 'none', zIndex: 0 })
; control.children(':eq(' + next + ')', d).css({ zIndex: 0 }); g.animationComplete(next + 1); active = false
                    })
                }
                else { control.children(':eq(' + prev + ')', d).css({ display: 'none', zIndex: 0 }); control.children(':eq(' + next + ')', d).css({ zIndex: 0 }); g.animationComplete(next + 1); active = false } 
            })
        } else {
            control.children(':eq(' + prev + ')', d).fadeOut(g.fadeSpeed, g.fadeEasing,
function() {
            if (g.autoHeight) {
                control.animate({ height: control.children(':eq(' + next + ')', d).outerHeight() }, g.autoHeightSpeed,
function() {
                control.children(':eq(' + next + ')', d).fadeIn(g.fadeSpeed, g.fadeEasing)
            })
        } else {
        control.children(':eq(' + next + ')', d).fadeIn(g.fadeSpeed, g.fadeEasing, function() {
        if ($.browser.msie) {
            $(this).get(0).style.removeAttribute('filter')
}}
)
}
g.animationComplete(next + 1); active = false
})
}
} else {
    control.children(':eq(' + next + ')').css({ left: position, display: 'block' });
    if (g.autoHeight) {
        control.animate({ left: a, height: control.children(':eq(' + next + ')').outerHeight() }, g.slideSpeed, g.slideEasing,

function() {
        control.css({ left: -width }); control.children(':eq(' + next + ')').css({ left: width, zIndex: 5 }); control.children(':eq(' + prev + ')').css({ left: width, display: 'none', zIndex: 0 }); g.animationComplete(next + 1); active = false
    })
}
else {
    control.animate({ left: a }, g.slideSpeed, g.slideEasing,
function() { control.css({ left: -width }); control.children(':eq(' + next + ')').css({ left: width, zIndex: 5 }); control.children(':eq(' + prev + ')').css({ left: width, display: 'none', zIndex: 0 }); g.animationComplete(next + 1); active = false })
} 
} if (g.pagination) { $('.' + g.paginationClass + ' li.' + g.currentClass, d).removeClass(g.currentClass); $('.' + g.paginationClass + ' li:eq(' + next + ')', d).addClass(g.currentClass) } 
} 
}
function stop() {
    clearInterval(d.data('interval'))
}
function pause() {
    if (g.pause) {
        clearTimeout(d.data('pause')); clearInterval(d.data('interval')); pauseTimeout = setTimeout(
function() {
        clearTimeout(d.data('pause')); playInterval = setInterval(
function() {
        animate("next", effect)
    }, g.play); d.data('interval', playInterval)
}, g.pause); d.data('pause', pauseTimeout)
}
else { stop() } 
}
if (total < 2) { return }
if (start < 0) {
    start = 0
} if (start > total) {
start = total - 1
} if (g.start) { current = start }
if (g.randomize) {
    control.randomize()
} $('.' + g.container, d).css({ overflow: 'hidden', position: 'relative' }); control.children().css({ position: 'absolute', top: 0, left: control.children().outerWidth(), zIndex: 0, display: 'none' }); control.css({ position: 'relative', width: (width * 3), height: height, left: -width }); $('.' + g.container, d).css({ display: 'block' });
if (g.autoHeight) 
{ 
control.children().css({ height: 'auto' }); control.animate({ height: control.children(':eq(' + start + ')').outerHeight() }, g.autoHeightSpeed) }
if (g.preload && control.find('img').length) {
    $('.' + g.container, d).css({ background: 'url(' + g.preloadImage + ') no-repeat 50% 50%' });
    var f = control.find('img:eq(' + start + ')').attr('src') + '?' + (new Date()).getTime();
    if ($('img', d).parent().attr('class') != 'slides_control') {
        imageParent = control.children(':eq(0)')[0].tagName.toLowerCase() 
    }
    else {
    imageParent=control.find('img:eq('+start+')')}control.find('img:eq('+start+')').attr('src',f).load(
    function() {
    control.find(imageParent + ':eq(' + start + ')').fadeIn(g.fadeSpeed, g.fadeEasing,
    function() {
    $(this).css({ zIndex: 5 }); $('.' + g.container, d).css({ background: '' }); loaded = true; g.slidesLoaded()
})
})
}
else {
    control.children(':eq(' + start + ')').fadeIn(g.fadeSpeed, g.fadeEasing,
 function() { loaded = true; g.slidesLoaded() }) }
if (g.bigTarget) {
    control.children().css({ cursor: 'pointer' }); control.children().click(
    function() { animate('next', effect); return false })
}

if (g.hoverPause && g.play) { control.bind('mouseover', function() { stop() }); control.bind('mouseleave', function() { pause() }) }
if (g.generateNextPrev) { $('.' + g.container, d).after('<a href="#" class="' + g.prev + '">Prev</a>'); $('.' + g.prev, d).after('<a href="#" class="' + g.next + '">Next</a>') } $('.' + g.next, d).click(function(e) { e.preventDefault(); if (g.play) { pause() } animate('next', effect) }); $('.' + g.prev, d).click(function(e) {
    e.preventDefault(); 
if (g.play) { pause() } animate('prev', effect) }); if (g.generatePagination) {
    if (g.prependPagination) { d.prepend('<ul class=' + g.paginationClass + '></ul>') }
    else { d.append('<ul class=' + g.paginationClass + '></ul>') } control.children().each(function() { $('.' + g.paginationClass, d).append('<li><a href="#' + number + '">' + (number + 1) + '</a></li>'); number++ })
}
else { $('.' + g.paginationClass + ' li a', d).each(function() { $(this).attr('href', '#' + number); number++ }) } $('.' + g.paginationClass + ' li:eq(' + start + ')', d).addClass(g.currentClass); $('.' + g.paginationClass + ' li a', d).click(function() {
if (g.play) { pause() } clicked = $(this).attr('href').match('[^#/]+$');
if (current != clicked) { animate('pagination', paginationEffect, clicked) }
return false
}
    ); $('a.link', d).click(function() {
if (g.play) { pause() } clicked = $(this).attr('href').match('[^#/]+$') - 1;
if (current != clicked) { animate('pagination', paginationEffect, clicked) }
return false
}); if (g.play) {
    playInterval = setInterval(
    function(){animate('next',effect)},g.play);d.data('interval',playInterval)}})};$.fn.slides.option={preload:false,preloadImage:'/img/loading.gif',container:'slides_container',generateNextPrev:false,next:'next',prev:'prev',pagination:true,generatePagination:true,prependPagination:false,paginationClass:'pagination',currentClass:'current',fadeSpeed:350,fadeEasing:'',slideSpeed:350,slideEasing:'',start:1,effect:'slide',crossfade:false,randomize:false,play:0,pause:0,hoverPause:false,autoHeight:false,autoHeightSpeed:350,bigTarget:false,animationStart:function(){},animationComplete:function(){},slidesLoaded:function(){}};$.fn.randomize=function(c){function randomizeOrder(){return(Math.round(Math.random())-0.5)}return($(this).each(function(){var $this=$(this);var $children=$this.children();var a=$children.length;if(a>1){$children.hide();var b=[];for(i=0;i<a;i++){b[b.length]=i}b=b.sort(randomizeOrder);$.each(b,function(j,k){var $child=$children.eq(k);var $clone=$child.clone(true);$clone.show().appendTo($this);if(c!==undefined){c($child,$clone)}$child.remove()})}}))}})(jQuery);

