(function($){
    $.fn.gallerizr = function(options){
        
        var settings = {
			autoSleep : true
		};
		settings = $.extend(settings, options);
		
		var baseMarkup = '<div class="gallerizr-container"><div class="gallerizr-image-container"></div><div class="gallerizr-thumbs-container"><ul></ul></div><a href="#gallerizr-close" class="gallerizr-close">chiudi</a></div>';
		
		$('body').append(baseMarkup);
        var cloned = this.clone();
        $(".gallerizr-container ul").append(cloned).find('img').wrap('<li/>');
        var left = $(document).width() / 2 - ($('.gallerizr-container ul').width() / 2);
        $(".gallerizr-container ul").css('left', left);
        /* START IE6 */
        $(".gallerizr-container").height($(window).height());
        $(window).scrollTop(0);
        /* END IE6 */
        var firstElem = cloned.eq(0);
        if(firstElem.attr('href')){
            var src = firstElem.attr('href');
            settings.type = 'a';
            var img = firstElem.find('img');
        }else{
            var src = firstElem.attr('src');
            settings.type = 'img';
            var img = firstElem;
        }
        img.addClass('active');
        $(".gallerizr-container .gallerizr-image-container").append('<img src="'+src+'" title="'+img.attr('title')+'" alt="'+img.attr('alt')+'"/>');
        var captionBox = '<div class="gallerizr-caption"><strong>'+img.attr('title')+'</strong><p>'+img.attr('alt')+'</p></div>';
        $(".gallerizr-container").prepend(captionBox);
        var left = $(document).width() / 2 - ($('.gallerizr-caption').outerWidth() / 2);
        //var top = $(".gallerizr-container").height();
        $(".gallerizr-caption").css({left : left});
        //$(".gallerizr-container .gallerizr-image-container").append("<div class='gallerizr-loader'>loading...</div>");
        settings.isMouseMoving = false;
        setInterval(function(){
            settings.isMouseMoving = false;
            //$('.gallerizr-loader').html('ismoving:'+settings.isMouseMoving);

        }, 1700);
        $(".gallerizr-container").mousemove(function(){
            settings.isMouseMoving = true;
            if($(".gallerizr-container ul").hasClass('gallerizr-hidden')){
                $(".gallerizr-container ul").fadeIn(500).removeClass('gallerizr-hidden');
            }
            //$('.gallerizr-loader').html('ismoving:'+settings.isMouseMoving);
        });
		if(settings.autoSleep){
			setInterval(function(){
            	if(settings.isMouseMoving && $(".gallerizr-container ul").hasClass('gallerizr-hidden')){
	                $(".gallerizr-container ul").fadeIn(500).removeClass('gallerizr-hidden');
	            }else if(!settings.isMouseMoving && !$(".gallerizr-container ul").hasClass('gallerizr-hidden')){
	                $(".gallerizr-container ul").fadeOut(500).addClass('gallerizr-hidden');
	            }
	        },1800);
		} 
        cloned.click(function(){
            if(settings.type == 'a'){
                var src = $(this).attr('href');
                var img = $(this).find('img');
            }else{
                var src = $(this).attr('src');
                var img = $(this);
            }
            $(".gallerizr-container .gallerizr-image-container").append("<div class='gallerizr-loader'>loading...</div>");
            var left = $(document).width() / 2 - ($('.gallerizr-loader').width() / 2);
            $(".gallerizr-loader").css('left', left);
            $(".gallerizr-container .gallerizr-image-container img").attr({src : src, alt : img.attr('alt'), title : img.attr('title')}).load(function(){
                var captionBox = '<strong>'+img.attr('title')+'</strong><p>'+img.attr('alt')+'</p>';
                $('.gallerizr-container li img').removeClass('active');
                $(this).addClass('active');
                $(".gallerizr-caption").html(captionBox);
                setTimeout(function(){
                    $(".gallerizr-loader").fadeOut(500, function(){
                        $(this).remove();
                    });
                },800);
            });
            return false;
        });
        $(".gallerizr-container .gallerizr-close, a[href=#gallerizr-close]").click(function(){
           $(".gallerizr-container").remove();
           return false;
        });

    }
})(jQuery);
