/*
* Simple jquery rotator 
* www.DealerFire.com team
*/
(function($) {
$.fn.rotation = function(params) {
	
	var obj = $(this[0]);
	var list = obj.find(".list");
	var btn_next = obj.find(".btn-next");
	var btn_prev = obj.find(".btn-prev");
	var timer = false;
	var curr_item = null;
	var dir_next = null;
	var count = 0;
	
	var isBusy = false;
	
	//Default options
	var options = {
        autoscroll: false,
        interval: 5000,
        animationSpeed: 700
    };
    
    //initialize
    for (var i in params)
	{
		options[i] = params[i];
	}

    if(obj.find(".list").children().length == 1){
        obj.find(".btn").addClass("inactive");
    }
    
    obj.find(".btn:first").addClass("inactive");

    obj.find(".btn").click(function(){

        if($(this).hasClass("inactive")){ return false; }

        move($(this));
        
        return false;
    });
    
   var move = function (btn_obj){
   	   
   	   	//if(isBusy){ return false }
   	   
   	   	isBusy = true;
   	   	
   	   	if(!btn_obj){
			dir_next = true;
			btn_obj = btn_next;
   	   	}
   	   	else {
   	   		clearInterval(timer);
			dir_next = btn_obj.hasClass("btn-next") ? true : false;
   	   	}

        count = list.children().length;
        
        if(count <= 0){ clearInterval(timer); return false }
        
        margin_left = parseInt(list.css('margin-left'));
        margin_left = (isNaN(margin_left)) ? 0 : margin_left; 
        curr_item = list.find(".active");
        if(curr_item.length == 0){
            curr_item = list.children(":first");
        }
        index = list.children().index(curr_item);
        
        min_max_limit = true;
        
		btn_obj.parent().find(".inactive").removeClass("inactive");
		
        if(dir_next && index == (count -1)){
            list.animate({ marginLeft: 0 }, options["animationSpeed"] );
            next_item = dir_next ? list.children(":first") : curr_item.prev();

        }
        else if(dir_next == false && index == 0){
			btn_obj.parent().find(".inactive").removeClass("inactive");
            list.animate({ marginLeft: -(curr_item.width() * (count-1)) }, options["animationSpeed"] );
            next_item = list.children(":last");
        }
        else if(count > 1 && (dir_next && index < (count-1)) || (!dir_next && index > 0)){
            btn_obj.parent().find(".inactive").removeClass("inactive");
            diff = dir_next ? ( - (curr_item.width() * (index+1))) : (margin_left + curr_item.width());
            list.animate({ marginLeft: diff }, options["animationSpeed"] );
            next_item = dir_next ? curr_item.next() : curr_item.prev();
        }

        curr_item.removeClass("active");
        next_item.addClass("active");

        border_index = dir_next ? (count-1) : 0;

        if(count > 1 && list.children().index(next_item) == border_index){
            //btn_obj.addClass("inactive");
        }
        
        isBusy = false;
    }
    
    if(options["autoscroll"]){
		timer = setInterval(function() { move(); }, options["interval"]);
    }
    
    
};
})(jQuery);

