/* 
 * jQuery - Lite Content Slider - Plugin v1.0
 * http://www.aakashweb.com/
 * Copyright 2010, Aakash Chakravarthy
 * Released under the MIT License.
 */

$(document).ready(function() { 
  $('.sliderwrap').liteSlider({autoplay : true}); 
});
 
(function($){
    $.fn.liteSlider= function(options) {

        var defaults = {
            content : '.slidercontent',
            width : 350,
            height : 430,
            autoplay : false,
            delay : 9,
            buttonsClass : 'sliderbutton',
            activeClass : 'active',
            controlBt : '',
            playText : 'Play',
            pauseText : 'Pause'
        };
        
        var options = $.extend(defaults, options);

        var slideNo = 1;
        var timer = 0;
        var playStatus = options.autoplay;
        var thisClass = ($(this).attr('class')).split(' ');
        var theClass = '.' + thisClass[0];
        var count = 0;
        var slides;
        var currentSlide = 1;
        var delay = parseInt(options.delay)*1000;
        
        $(this).children(options.content).each(function(){
            slides = ++count;
        });
        
        function wrapContent(ele){
            ele.wrap('<div class="slidercontentswrap" />');
        }
        
        function applyCss(ele){
            $('.slidercontentswrap').css({
                padding : 0,
                margin : 0,
                width : options.width,
                height : options.height,
                overflow : 'hidden',
                position : 'relative'
            });
            
            ele.css({
                padding : 0,
                margin : 0,
                width : options.width * slides,
                height : options.height,
                position : 'absolute'
            });
            
            ele.children(options.content).css({
                float : 'left',
                width : options.width,
                height : options.height
            });
        }
        
        function resetButtons(){
            i = 0;
            $('.' + options.buttonsClass).each(function(){
                i++;
                $(this).addClass('bt' + i);
                $(this).attr('rel', i);
            });
        }
                
        function goToSlide(theSlide){
        
            var animateLeft = -(options.width) * (parseInt(theSlide)-1); 
            $('.slidercontentswrap' + ' ' + theClass)
                .animate({
                    left: animateLeft
                },800,
                next_state);

            $('.' + options.buttonsClass).each(function(){
                $(this).removeClass(options.activeClass);
                    if($(this).hasClass('bt' + theSlide)){
                        $(this).addClass(options.activeClass)}
            });
            
            currentSlide = theSlide;
        }
        
        function autoplay(){
            if(currentSlide < slides){
                goToSlide(parseInt(currentSlide) + 1);
            }else{
                goToSlide(1);
            }
        }
        
        function playSlide(){
            clearTimeout(timer);
            timer = setTimeout(function(){
                autoplay();
            }, delay);
            $(options.controlBt).text(options.pauseText);
            playStatus = true;
        }
        
        function pauseSlide(){
            clearTimeout(timer);
            $(options.controlBt).text(options.playText);
            playStatus = false;
        }

        function init(ele){
            wrapContent(ele);
            applyCss(ele);   
            resetButtons();  
            playStatus = options.autoplay;
            next_state();
        }

        function next_state(){
            if(playStatus){
                playSlide()
            }else{
                pauseSlide();
            }
        }

        return this.each(function(){
            init($(this));
            
            $('.'+options.buttonsClass).click(function(e){
                e.preventDefault();
                pauseSlide();
                goToSlide($(this).attr('rel'));
            });
            
            $(options.controlBt).click(function(e){
                e.preventDefault();
                if(playStatus == true){
                    pauseSlide()
                }else{
                    playSlide()
                } ;
            });
            
        });
        
    };
})(jQuery);

