/*
Written By Joeven Rubinos

*/

(function($){
    $.fn.jslide = function(vars) {   
        var element = this;
        var start = (vars.startat != undefined) ? vars.startat : 1;
        var play =  (vars.play != undefined) ? vars.play : 0;
        var dir = 0;
        var lastdir = 1;
        var ismouseover = 0;
        var timeOutFn = null;
        var time = 0;
        
        var caption = (vars.caption != undefined) ? vars.caption : 'caption'; //caption container selector
        var slide = (vars.slide != undefined) ? vars.slide : 'slide';  //slide container selector
        var slides = (vars.slides != undefined) ? vars.slides : 'slides';  //slides container selector
        var next = (vars.next != undefined) ? vars.slides : 'next';  
        var prev = (vars.prev != undefined) ? vars.slides : 'prev';  
        var delay = (vars.delay != undefined) ? vars.delay : 10000; 
        var width = (vars.width != undefined) ? vars.width+4 : 504;
        
        var items = $('#'+element[0].id+' .'+slide);
        
        var currentslide = start-1;
        var totalslides = items.length;
            
            start = (totalslides < start) ? start : totalslides;  
        var slidecwidth = (width*totalslides);
        var newpos = (width*(start-1));
        var slidepos = newpos;
        
        $('#'+slides).css({width:slidecwidth});
        $('#'+slides).css({'margin-left':-slidepos});
        $('.'+slide).css({'width':width-4});
        $('.'+caption).css({'width':width-4});
        
        $('#'+prev).click(function(){
            dir = -1;
            clearInterval(timeOutFn);
            moveslide();
            if(play) timeOutFn = setInterval(moveslide, delay);
        });
        $('#'+next).click(function(){
            dir = 1;
            clearInterval(timeOutFn);
            moveslide();
            if(play) timeOutFn = setInterval(moveslide, delay);
        });
        $('#play').click(function(){
        
            if(!play){
                play = 1;
                dir = lastdir;
                $('#play').html('<img src="/images/pause.png" alt="Pause" />');
                moveslide();
                timeOutFn = setInterval(moveslide, delay);
                }
            else{
                play = 0;
                lastdir = dir;
                $('#play').html('<img src="/images/play.png" alt="Play" />');
                clearInterval(timeOutFn);
                }
        });

        var moveslide = function(){
            if(dir == 1){
                currentslide = currentslide+1;
                if(currentslide == totalslides){
                    currentslide=0;
                    $('#'+slides).animate({'opacity':0.005},(delay/4))
                    .animate({'marginLeft' : width*(-currentslide)},0)
                    .animate({'opacity':1},(delay/4));
                }
            }else if(dir == -1){
                currentslide = currentslide-1;
                if(currentslide<0){
                    currentslide = totalslides-1;
                    $('#'+slides).animate({'opacity':0.005},(delay/4))
                    .animate({'marginLeft' : width*(-currentslide)},0)
                    .animate({'opacity':1},(delay/4));
                }
                dir = 1;
            }
            lastdir = dir;
            if((currentslide>0 ||currentslide < totalslides)){
                $('#'+slides).animate({
                  'marginLeft' : width*(-currentslide)
                },(delay/4));
                //if(play) timeOutFn = setTimeout(moveslide, delay);
            }
        }
        $().ready(function(){
            if(totalslides == 1){
                play=0;
                $('#slidenav').hide();
            }
            if(play){
                dir = 1;
                $('#play').html('<img src="/images/pause.png" alt="Pause" />');
                timeOutFn = setInterval(moveslide, delay);
            }else{
                clearInterval(timeOutFn);
            }
        });
    };
})(jQuery);  
