//*****************************************************************************
//
//	Nombre: jbn__slider.js
//
//	Tipo: JavaScript
//
//	Proyecto:	Jolben
//
//	Comentarios:	Contiene funciones para el slider de Jolben que
//					se muestra en la portada.
//
//	Autor: Novisline
//
//  Fecha: 2011-01-31
//
//	Version: 1.0
//
//****************************************************************************

(function($){
    
    $.fn.extend({
        nvl_slide: function(options){
            var defaults = {
                autoplay        :true,
                deleay          :4000,
                speed           :'slow',
                buttons_top     :0,
                buttons_left    :0
            };
            var options = $.extend(defaults, options);
            return this.each(function(){
                var obj = $(this);
                var nvl = new Object();
                nvl.speed = options.speed;
                nvl.buttons_top = options.buttons_top;
                nvl.buttons_left = options.buttons_left;
                nvl.click = 0;
                init(obj, nvl);
                if(options.autoplay){
                    nvl.deleay = options.deleay;
                    nvl.stop = false;
                    nvl.mouse_over = false;
                    play(obj, nvl);
                }
            });

            function play(obj, nvl){
                nvl.timeout = setTimeout(function(){
                    animate(obj, nvl);
                }, nvl.deleay);
            }

            function init(obj, nvl){
                nvl.content_width = obj.parent('div').width();
                nvl.items_num = $('li', obj).length;
                obj
                    .parent('div')
                    .css({
                        'overflow'  :'hidden',
                        'position'  :'relative'
                    })
                    .hover(function(){
                        if(nvl.stop){
                            clearTimeout(nvl.timeout);
                            nvl.mouse_over = true;
                        }
                    }, function(){
                        if(nvl.mouse_over){
                            clearTimeout(nvl.timeout);
                            play(obj, nvl);
                        }
                    })
                    .end()
                    .css({
                        'position'  :'absolute',
                        'top'       :0,
                        'left'      :0
                    })
                    .width(nvl.content_width * nvl.items_num)
                    .find('li')
                    .css('float','left');

                $('<p class="nvl_slide_buttons"></p>')
                    .appendTo(obj.parent('div').parent('div'))
                    .css({
                        'position'  :'absolute',
                        'right'     :'0px',
                        'bottom'    :'0px',
                        'z-index'   :1
                    })
                    .append(function(){
                        var $links = '';
                        for(var i = 0; i < nvl.items_num; i++){
                            $links +=  '<a class="nvl_slide_button" href="'+i+'">'+(i+1)+'</a>';
                        }
                        return $links;
                    })
                    .find('a.nvl_slide_button')
                    .click(function(){
                        clearTimeout(nvl.timeout);
                        nvl.is_click = true;
                        nvl.click = $(this).attr('href');
                        animate(obj, nvl);
                        return false;
                    })
            }

            function button_active(obj, click){
                --click;
                var $items = obj.parent('div').parent('div').find('p.nvl_slide_buttons a.nvl_slide_button');
                $items
                    .removeClass('active');
                $items
                    .eq(click)
                    .addClass('active');
            }

            function animate(obj, nvl){
                var move = -(nvl.content_width * nvl.click);
                nvl.stop = false;
                obj
                    .stop()
                    .animate({
                        'left' :move+'px'
                    },nvl.speed, function(){
                        nvl.stop = true;
                    });
                if(nvl.click >= (nvl.items_num-1))
                    nvl.click = 0;
                else ++nvl.click
                button_active(obj, nvl.click);
                play(obj, nvl);
            }
        }
    });
})(jQuery);


// mag_gen__aviso("dearbh");
