
(function(jQuery){
    jQuery.fn.leoSlide = function(settaggi){
        settaggi = jQuery.extend({
            urlimg: '',
            urljson: urlo+'fuzajax/slide',
            loading: urlo+'img/loading.gif',
            btnPrev: 'prev',
            btnNext: 'next',
            speed: 800,
            frequency: 5000,
            imageArray: []
        }, settaggi);
        
        var slide = this;
        var slider = document.createElement('div');
        slider.setAttribute('id', 'slider');
        document.getElementById(this.attr('id')).appendChild(slider);
        
        var npage;
        var page;
        var numimg;
        var gal;
        var interval;
        var w0;
		var stato=false;
        function _initialize(){
            _startloading();
            jQuery.getJSON(settaggi.urljson, function(data){
                npage = parseInt(data.npage);
                page = parseInt(data.page);
                numimg = parseInt(data.numimg);
                gal = data.img;
                w1 = jQuery(slider).css('width');
                w1 = w1.replace('px', '');
                w0 = jQuery(slide).css('width');
				
                jQuery.each(data.img, function(i, item){
                    img = new Image();
                    img.onload = function(){
                        w = img.width;
                        w1 = parseInt(w1) + parseInt(w);
                        jQuery(slider).css({
                            'width': w1
                        });
						if(!stato) {
							_start();
							stato=true;
						}
                        img.onload = function(){
                        
                        }
                    }
                    img.src = settaggi.urlimg + item.file;
					var di = jQuery('<div>').addClass('leoslide').css('left', w0).appendTo(jQuery(slider));
                    jQuery("<img/>").attr("src", settaggi.urlimg + item.file).attr('alt', item.title).addClass('leoimg').appendTo(jQuery(di));
                    jQuery('.loading').remove();
                });
                _bindaPulsanti();
              //  _start();
            })
            
            
            return false;
        }
        
        function _start(){
            //  w = jQuery(slide).css('width');
            jQuery('.leoslide').eq(0).animate({
                'left': 0
            }, settaggi.speed)
            interval = window.setInterval(function(){
                jQuery('.leoslide').eq(1).animate({
                    'left': 0
                }, settaggi.speed, function(){
                    jQuery('.leoslide').eq(0).css({
                        'left': w0
                    }).clone().appendTo(jQuery(slider))
                    jQuery('.leoslide').eq(0).remove();
                });
                
            }, settaggi.frequency);
            
            
            
        }
        
        function _startloading(){
            jQuery("<img/>").attr("src", settaggi.loading).attr('alt', 'loading').addClass('loading').appendTo(jQuery(slider));
        }
        
        function _bindaPulsanti(){
            jQuery('#' + settaggi.btnPrev).bind('click', function(event){
                event.preventDefault();
                clearInterval(interval);
                _indietro();
            });
            
            jQuery('#' + settaggi.btnNext).bind('click', function(event){
                event.preventDefault();
                clearInterval(interval);
                _avanti();
            });
        }
        
        function _unbinda(){
            jQuery('#' + settaggi.btnPrev).unbind();
            jQuery('#' + settaggi.btnNext).unbind();
        }
        
        function _rebinda(){
            jQuery('#' + settaggi.btnPrev).bind('click', function(event){
                event.preventDefault();
                _indietro();
            });
            jQuery('#' + settaggi.btnNext).bind('click', function(event){
                event.preventDefault();            
                _avanti();
            });
        }
        
        function _avanti(){
			_unbinda();
            jQuery('.leoslide').eq(1).animate({
                'left': 0
            }, settaggi.speed, function(){
                jQuery('.leoslide').eq(0).css({
                    'left': w0
                }).clone().appendTo(jQuery(slider))
                jQuery('.leoslide').eq(0).remove();
				return _rebinda();
            });
        }
        function _indietro(){
			_unbinda();
            jQuery('.leoslide').eq(-1).css({
                'left': '-' + w0,
                'z-index': 100
            }).clone().prependTo(jQuery(slider));
            jQuery('.leoslide').eq(-1).remove();
            
            jQuery('.leoslide').eq(0).animate({
                'left': 0
            }, settaggi.speed, function(){
                jQuery('.leoslide').eq(1).css('left', w0);
                jQuery('.leoslide').css('z-index', 0);
				return _rebinda()
            });
            
        }
        
        
        function _pause(ms){
            var date = new Date();
            curDate = null;
            do {
                var curDate = new Date();
            }
            while (curDate - date < ms);
        };
        
        
        
        return _initialize();
    }//end
})(jQuery);

