﻿/*!
 * icarusel  - Riding carousels with jQuery
 *
 * Copyright (c) 2011 Alex Imsha
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 *
 * Built on top of the jQuery library
 * http://jquery.com
 *
 */
jQuery.fn.icarusel = function(opts){

    var defaults = jQuery.extend({
        nav_container: '#home-slider-pagination',
        nav_generate: true,
        callback: function(){
        },
      speed: 1600, //more means slower :))
        auto_scroll: true
    }, options);
    
    var options = $.extend(defaults, opts);
    
    return this.each(function(){
        var container = $(this);
        container.wrap('<div class="icarusel"></div>').wrap('<div class="icarusel-wrap"></div>');
        var items = container.children('li').size();
        var item_width = container.outerWidth();
        var total_width = item_width * items;
        $('.icarusel-wrap').width(item_width);
        container.children('li').width(item_width);
        for(var i = 0; i<items;i++)
        {
          container.children('li').eq(i).attr("id","item_"+(i+1))
        }
        container.width(total_width);
        container.children('li').css('float', 'left');
        
        //active item
        $(container).children('li').eq(0).addClass('icarusel-item-active');
        
        //create nav
        
        $(options.nav_container).addClass('icarusel-nav');
        
        //generate nabigation
        if (options.nav_generate == true) {
            var i = 1;
            for (i == 1; i <= items; i++) {
                $(options.nav_container).append('<li item="item_' + i + '">' + i + '</li>');
            };
        };
        
        
        function fn_animate(container, item_width){
            container.animate({
                left: item_width
            }, {
                duration: options.speed,
                complete: function(){
                    options.callback.apply(container);
                }
            });
        };
        
        $(options.nav_container).find('li').live('click', function(e){
        
            //Stop autoscrolling
            options.auto_scroll = false;
            clearInterval($("body").data("int"));
            
            var num = $(this).text();
            var width = -(($('#'+$(this).attr('item')).index()+1) * item_width - item_width);

          //TODO: add custom childrens elements
            $(container).children('li').removeClass('icarusel-item-active');
          
//            $(container).children('li').eq(num - 1).addClass('icarusel-item-active');
            //$(container).children('li').eq(num - 1).addClass('icarusel-item-active');
            $('#'+$(this).attr('item')).addClass('icarusel-item-active');
            
            fn_animate(container, width);
            $(options.nav_container).find('li').removeClass('active');
            $(this).addClass('active');
            
            
            return false;
        });

        if (options.auto_scroll) {
          var num = 1;
          var numItem = 1;
          var set = $(container).find('li').size();
          if(set<=1){
            return null;
          }
          var intVal = setInterval(function(){
                num += 1;
                numItem = 2;
                if (num > $(options.nav_container).find('li').size()) 
                    num = 1;

                //var width = -(num * item_width - item_width);
               var width = -(numItem * item_width - item_width);

              if(set>$(options.nav_container).find('li').size()){
                var item = $(container).children('li').eq(0);
                $(container).append(item);
                $(item).attr('id','item_'+set);
                                $(container).offset({ left: 250});
              }
              

                fn_animate(container, width);
              
                $(container).children('li').removeClass('icarusel-item-active');
                $(container).children('li').eq(1).addClass('icarusel-item-active');
                              
                //$(container).children('li').removeClass('icarusel-item-active');
                //$(container).children('li').eq(num - 1).addClass('icarusel-item-active');*/
                
        $("#home-slider-pagination > li").removeClass("active");
        $("#home-slider-pagination > li").eq(num - 1).addClass("active");              
              $("#home-slider-pagination > li").eq(num==$(options.nav_container).find('li').size()?0:num).attr("item","item_"+set);
              set+=1;
            }, 6000);
            $("body").data("int", intVal);
        }
    });
};












