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

(function(jQuery){
    jQuery.fn.liteSlider= function(options) {

        var defaults = {
            content : '.slider-content',
            width : 500,
            height : 250,
            autoplay : false,
			delay : 3,
            buttonsClass : '',
            activeClass : '',
			controlBt : '',
			playText : ' Play',
			pauseText : 'Pause'
        };

        var options = jQuery.extend(defaults, options);

        var slideNo = 1;
        var timer = 0;
        var playStatus = options.autoplay;
        var thisClass = (jQuery(this).attr('class')).split(' ');
        var theClass = '.' + thisClass[0];
        var count = 0;
        var slides;
		var currentSlide = 1;
		var delay = parseInt(options.delay)*1000;

        jQuery(this).children(options.content).each(function(){
            slides = ++count;
        });

		function wrapContent(ele){
			ele.wrap('<div class="sliderContentsWrap" />');
		}

		function applyCss(ele){
			jQuery('.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;
            jQuery('.' + options.buttonsClass).each(function(){
                i++;
                jQuery(this).addClass('bt' + i);
                jQuery(this).attr('rel', i);
            });
        }

        function goToSlide(theSlide){

            var animateLeft = -(options.width) * (parseInt(theSlide)-1);
            jQuery('.sliderContentsWrap' + ' ' + theClass)
                .animate({
                    left: animateLeft
                });

            jQuery('.' + options.buttonsClass).each(function(){
                jQuery(this).removeClass(options.activeClass);
                    if(jQuery(this).hasClass('bt' + theSlide)){
                        jQuery(this).addClass(options.activeClass)}
            });

			currentSlide = theSlide;
        }

		function autoplay(){
			if(currentSlide < slides){
				goToSlide(parseInt(currentSlide) + 1);
			}else{
				goToSlide(1);
			}
		}

		function playSlide(){
			clearInterval(timer);
			timer = setInterval(function(){
				autoplay();
			}, delay);

			jQuery(options.controlBt).text(options.pauseText);
            jQuery(".control").css({backgroundPosition: "0 -16px"});
			playStatus = true;
		}

		function pauseSlide(){
			clearInterval(timer);
			jQuery(options.controlBt).text(options.playText);
            jQuery(".control").css({backgroundPosition: "0 0"});
			playStatus = false;
		}

		function init(ele){
			wrapContent(ele);
			applyCss(ele);
			resetButtons();

			if(options.autoplay == true){
				playSlide()
			}else{
				pauseSlide();
			}
		}

        return this.each(function(){
			init(jQuery(this));

			jQuery('.'+options.buttonsClass).click(function(e){
				e.preventDefault();
				pauseSlide();
                goToSlide(jQuery(this).attr('rel'));
            });

			jQuery(options.controlBt).click(function(e){
				e.preventDefault();
				if(playStatus == true){
					pauseSlide()
				}else{
					playSlide()
				} ;
            });

        });

    };
})(jQuery);
