jQuery(function(){
   jQuery("div.svw").prepend("<img src='svwloader.gif' class='ldrgif' alt='loading...'/ >"); 
});
var j = 0;
var quantofamo = 0;
jQuery.fn.slideView = function(settings) {
	 settings = jQuery.extend({
     easeFunc: "easeInOutExpo",
     easeTime: 750,
     toolTip: false
  }, settings);
	return this.each(function(){

        var stripViewerWidth = 0;
        var startpos = 0;
        var lid = '';
        var fid = '';              

        $("#mygaloneul").find("li").each(function(n) {
            id = $(this).attr('id');
            stripViewerWidth += $("#"+id+" :first-child").width();
        });

		var container = jQuery(this);
		container.find("img.ldrgif").remove(); // removes the preloader gif
		container.removeClass("svw").addClass("stripViewer");		
		var pictWidth = container.find("img").width();
		var pictHeight = container.find("img").height();
		var pictEls = container.find("li").size();
		container.find("ul").css("width", stripViewerWidth*2); //assegnamo la larghezza alla lista UL	
		container.css("width", 944);
		container.css("overflow" , 'hidden');
		//container.css("height" , pictHeight+2);
        var firstOffset = 0;

		container.each(function(i) {
			jQuery(this).after("<div class='stripTransmitter' id='stripTransmitter" + (j) + "'><ul><\/ul><\/div>");
            var no=0;
			jQuery(this).find("li").each(function(n) {
                if ($(this).attr('id') != 'inactive') {
                    no++;
				    jQuery("div#stripTransmitter" + j + " ul").append("<li><a id='link"+(n+1)+"' title='' href='#'><img src='spacer.gif'><\/a><\/li>");
                }
			});

            $("#stripTransmitter0 ul li:last-child").addClass('lastchild_pad');

            //move the half of the li elements from the end of the list to the beginning
            for (var i=1; i<(no/2); ++i) {
                lid = $("#mygaloneul li:last-child").attr('id');
                lhtml = $("#mygaloneul li:last-child").html();

                $("#"+lid).remove();
                $("#mygaloneul").prepend('<li id="'+lid+'">'+lhtml+'</li>');   
                firstOffset += $("#mygaloneul :first-child :first-child").width()+5;
            }

            startpos = firstOffset-(944-$("#q1 :first-child").width())/2;            

            //move the first image to the center on start
            container.find("ul").animate({ left: -startpos}, settings.easeTime, settings.easeFunc);
            
			jQuery("div#stripTransmitter" + j + " a").each(function(z) {
				jQuery(this).bind("click", function(){

                var prev = $("#prev").val();
                var w=z+1;                

				jQuery("#link"+prev).removeClass("current");
                jQuery("#link"+w).addClass("current");
                //.parent().parent().find("a").not(jQuery(this)).removeClass("current"); // wow!
                
                var half = no/2;
                var fid = $("#mygaloneul li:first-child").attr('id');
                var fhtml = $("#mygaloneul li:first-child").html();
                var lid = $("#mygaloneul li:last-child").attr('id');
                var lhtml = $("#mygaloneul li:last-child").html();
                var direction = '';
                
                var diff = 0;
                
                if (w > prev) {
                    diff = (w - prev);
                    direction = 'l';
                }
                else if (prev > w) {
                    diff = (prev - w);
                    direction = 'r';
                }
                
                if (diff >= no - no/2) {
                    diff = no-diff;
                    if (direction == 'r') direction = 'l';
                    else direction = 'r'
                }
                
                var preCurPos = 0;
                var posCurPos = 0;
                var diffPos = 0;
                var posqq = 0;
                var removeLi = new Array();
                var fidnum = 0;
                var lidnum = 0;
                for (var i=0; i<diff; ++i) {
                    posqq = parseFloat($("#mygaloneul").css('left'));

                    if ($("#q"+w+"_inactive").attr('id') != undefined) preCurPos = $("#q"+w+"_inactive").offset().left;
                    else preCurPos = $("#q"+w).offset().left;

                    if (direction == 'l') {
                        //$("#"+fid).remove();
                        $("#"+fid).attr('id', fid+"_inactive");
                        removeLi[i] = fid+"_inactive";
                        
                        $("#mygaloneul").append('<li id="'+fid+'">'+fhtml+'</li>');
                    }
                    else if (direction == 'r') { 
                        //$("#"+lid).remove();
                        $("#"+lid).attr('id', lid+"_inactive");
                        removeLi[i] = lid+"_inactive";

                        $("#mygaloneul").prepend('<li id="'+lid+'">'+lhtml+'</li>');
                    }

                    fidnum = fid.split('q');
                    fidnum = fidnum[1];
                    ++fidnum;
                    if (fidnum > no) fidnum = 1;
                    fid = 'q'+fidnum;

                    lidnum = lid.split('q');
                    lidnum = lidnum[1];
                    --lidnum;
                    if (lidnum < 1) lidnum = no;
                    lid = 'q'+lidnum;                        

                    if ($("#q"+w+"_inactive").attr('id') != undefined) {
                        posCurPos = $("#q"+w+"_inactive").offset().left;
                    }
                    else {
                        posCurPos = $("#q"+w).offset().left;
                    }

                    diffPos = posqq-(-(preCurPos-posCurPos));

                    $("#mygaloneul").css({left: diffPos+'px'});
                    
                    fhtml = $("#"+fid).html();
                    
                    lhtml = $("#"+lid).html();                     
                }
                $("#prev").val(w);
                var posq = $("#mygaloneul").offset();
                var pos = $("#q"+w).offset();
                var wwidth = $("#q"+w).width();
				var cnt = -(pos.left-posq.left)+460-wwidth/2;
                jQuery("#cur").attr('value', w);

                //move the whole list
				container.find("ul").animate({ left: cnt}, settings.easeTime, settings.easeFunc, function(){
                    for (var k in removeLi) {
                        posqq = parseFloat($("#mygaloneul").css('left'));
                        preCurPos = $("#q"+w).offset().left;
                        
                        $("#"+removeLi[k]).remove();

                        posCurPos = $("#q"+w).offset().left;
                        diffPos = posqq-(-(preCurPos-posCurPos));

                        $("#mygaloneul").css({left: diffPos+'px'});
                    }                    
                });
                
                return false;
				   });
				});
		
				// next image via image click	14/01/2009
				/*jQuery("div#stripTransmitter" + j + " a").parent().parent().parent().prev().find("img").each(function(z) {
				jQuery(this).bind("click", function(){
					var ui = jQuery(this).parent().parent().parent().next().find("a");
					if(z+1 < pictEls){
						ui.eq(z+1).trigger("click");
					}
					else ui.eq(0).trigger("click");
				   });
				});*/
				
				
			//jQuery("div#stripTransmitter" + j).css("width" , pictWidth);
			jQuery("div#stripTransmitter" + j + " ul").css("width" , no*10);
			jQuery("div#stripTransmitter" + j + " a:first").addClass("current");
			if(settings.toolTip){
			container.next(".stripTransmitter ul").find("a").Tooltip({
				track: true,
				delay: 0,
				showURL: true,
				showBody: false
				});
			}
			});
		j++;
  });	
};

