// current slide
var curr = 0;
// user inactivity time
var inact = 7000;
// inactivity time ticker
var tick;

// cache
var $slides = [];

// navigation
var $prev;
var $next;

$(document).ready(function(){
    
    $prev = $("#slide-prev");
    $next = $("#slide-next");
    
    // cache slides
    $("#slides .slide").each(function(k,v){
        $slides[k] = $(v);
    });
    
    // hide prev arrow
    showHideNav();
    
    // automatition
    tick = setInterval( nextSlide, inact );
    $(document)
        .keydown(function(){ clearInterval( tick ); tick = setInterval( nextSlide, inact ); })
        .mousemove(function(){ clearInterval( tick ); tick = setInterval( nextSlide, inact ); });
    
    // next click event
    $next.click(function(){
        nextSlide();
        return false;
    });
        
    // prev click event
    $prev.click(function(){
        prevSlide();
        return false;
    });
    
});

/**
 * nextSlide
 * Show next slide
 * @return void
 */
function nextSlide() {
    if( $slides.length > 1 ) {
        var next = curr+1;
        if( next == $slides.length ) next = 0;
        $slides[curr].animate({left:'-100%'},"slow");
        $slides[next].css({left:'100%'}).animate({left:'0%'},"slow");
        curr = next;
        showHideNav();
    }
}

/**
 * prevSlide
 * Show previous slide
 * @return void
 */
function prevSlide() {
    var prev = curr-1;
    if( prev < 0 ) prev = ($slides.length - 1);
    $slides[curr].animate({left:'100%'},"slow");
    $slides[prev].css({left:'-100%'}).animate({left:'0%'},"slow");
    curr = prev;
    showHideNav();
}

/**
 * showHideNav
 * Check and toggle slides navigation
 * @return void
 */
function showHideNav() {
    if( $slides.length > 1 ) {
        if( (curr+1) == $slides.length ) $next.fadeOut(); else $next.fadeIn();
        if( curr == 0 ) $prev.fadeOut(); else $prev.fadeIn();
    }
}
