﻿/*!
* slideViewer 1.2
* Examples and documentation at: 
* http://www.gcmingati.net/wordpress/wp-content/lab/jquery/imagestrip/imageslide-plugin.html
* 2007-2010 Gian Carlo Mingati
* Version: 1.2.3 (9-JULY-2010)
* Dual licensed under the MIT and GPL licenses:
* http://www.opensource.org/licenses/mit-license.php
* http://www.gnu.org/licenses/gpl.html
* 
* Requires:
* jQuery v1.4.1 or later, jquery.easing.1.2
* 
*/

var j = 0;
var quantofamo = 0;
jQuery.fn.slideView = function (settings)
{
	settings = jQuery.extend({
		easeFunc: "easeInExpo",
		easeTime: 750,
		uiBefore: false,
		toolTip: false,
		ttOpacity: 0.9,
		delay: 3000
	}, settings);
	return this.each(function ()
	{
		var container = jQuery(this);
		container.find("img.ldrgif").remove();
		container.removeClass("svw").addClass("stripViewer");
		var pictWidth = settings.width || container.find("img").width();
		var pictParentWidth = settings.width || container.find("img").parent().width();
		if (pictParentWidth > pictWidth)
			pictWidth = pictParentWidth;
		var pictHeight = settings.height || container.find("img").height();
		var pictEls = container.find("li").size();
		var stripViewerWidth = pictWidth * pictEls;
		//container.find("ul").css("width", stripViewerWidth);
		container.find("ul").css("width", pictWidth).css("height", pictHeight);
		//container.css("height", pictHeight);
		container.each(function (i)
		{
			(!settings.uiBefore) ? jQuery(this).after("<div class='switcher' id='switcher" + (j) + "'><div class='switcher-holder'><\/div><\/div>") : jQuery(this).before("<div class='switcher' id='switcher" + (j) + "'><ul><\/ul><\/div>");

			if (settings.uiPreviousNext)
				jQuery("div#switcher" + j + " .switcher-holder").append("<a class='prev' title='Previous' href='#'>Previous<\/a>");

			jQuery("div#switcher" + j + " .switcher-holder").append("<ul><\/ul>");
			jQuery(this).find("li").each(function (n, obj)
			{
				if (n == 0)
					$(obj).css("z-index", 1).css("opacity", 1);
				else
					$(obj).css("z-index", 2).css("opacity", 0);
				jQuery("div#switcher" + j + " .switcher-holder ul").append("<li><a title='" + jQuery(this).find("img").attr("alt") + "' href='#'>" + (n + 1) + "<\/a><\/li>");
			});
			if (settings.uiPreviousNext)
			{
				jQuery("div#switcher" + j + " .switcher-holder").append("<a class='next' title='Next' href='#'>Next<\/a>");
				jQuery("div#switcher" + j + " .switcher-holder .prev").bind("click", function (e)
				{
					var prevLi = $(this).parent().find("ul li a.current").parent().prev("li");
					if (prevLi.length == 0)
						prevLi = $(this).parent().find("li:last");
					prevLi.find("a").trigger("click", e);
					return false;
				});
				jQuery("div#switcher" + j + " .switcher-holder .next").bind("click", function (e)
				{
					var nextLi = $(this).parent().find("ul li a.current").parent().next("li");
					if (nextLi.length == 0)
						nextLi = $(this).parent().find("li:first");
					nextLi.find("a").trigger("click", e);
					return false;
				});
			}
			jQuery("div#switcher" + j + " .switcher-holder ul a").each(function (z)
			{
				jQuery(this).bind("click", function ()
				{
					var oldItem = $(this).parent().parent().find("a.current").parent();
					var oldIndex = oldItem.parent().find("li").index(oldItem);

					jQuery(this).addClass("current").parent().parent().find("a").not(jQuery(this)).removeClass("current"); // wow!
					var cnt = -(pictWidth * z);

					var idx = z;

					var newItem = container.find("li").eq(idx)
					oldItem = container.find("li").eq(oldIndex);
					oldItem.find("div.caption").css("display", "none");
					newItem.find("div.caption").css("display", "block");
					newItem.animate({ opacity: 1 }, settings.easeTime, settings.easeFunc, function ()
					{

						$(this).css("z-index", 1);
						oldItem.css("opacity", 0).css("z-index", 2);
					});

					//container.find("ul").animate({ left: cnt }, settings.easeTime, settings.easeFunc);
					return false;
				});
			});

			container.unbind("click");
			container.bind("click", function (e)
			{
				var ui = (!settings.uiBefore) ? jQuery(this).next().find("a.current") : jQuery(this).prev().find("a.current");
				var bTotal = parseFloat(jQuery(this).css('borderLeftWidth').replace("px", "")) + parseFloat(jQuery(this).css('borderRightWidth').replace("px", ""));
				var dOs = jQuery(this).offset();
				var zeroLeft = (bTotal / 2 + pictWidth) - (e.pageX - dOs.left);
				if (zeroLeft >= pictWidth / 2)
				{
					var uiprev = ui.parent().prev().find("a");
					(jQuery(uiprev).length != 0) ? uiprev.trigger("click") : ui.parent().parent().find("a:last").trigger("click");
				}
				else
				{
					var uinext = ui.parent().next().find("a");
					(jQuery(uinext).length != 0) ? uinext.trigger("click") : ui.parent().parent().find("a:first").trigger("click");
				}
				return false;
			});
			container.bind("mouseover", function (e)
			{
				$(this).find("div.previous").css("display", "block");
				$(this).find("div.next").css("display", "block");
				$(this).find("div.caption").css("display", "block");
			});
			container.bind("mouseout", function (e)
			{
				$(this).find("div.previous").css("display", "none");
				$(this).find("div.next").css("display", "none");
				$(this).find("div.caption").css("display", "none");
			});
			container.find("div.previous").bind("click", function (e)
			{
				jQuery("div#switcher" + j + " .switcher-holder .previous").trigger("click", e);
			});
			container.find("div.next").bind("click", function (e)
			{
				jQuery("div#switcher" + j + " .switcher-holder .next").trigger("click", e);
			});

			var resetTimer = function ()
			{
				container.oneTime(settings.delay, "nextInterval", function (e)
				{
					$(this).trigger("click", e);
					$(this).stopTime("nextInterval");
					resetTimer();
				});
			}
			/*
			resetTimer();
			*/
			/*jQuery("div#switcher" + j).css("width", pictWidth); */
			jQuery("div#switcher" + j + " .switcher-holder ul a:first").addClass("current");

			if (settings.toolTip)
			{
				jQuery('body').append('<div class="tooltip" style="display:none;"><\/div>');
				var aref = jQuery("div#switcher" + j + " .switcher-holder ul a");

				aref.live('mousemove', function (e)
				{
					var att = jQuery(this).attr('title');
					posX = e.pageX + 10;
					posY = e.pageY + 10;
					jQuery('.tooltip').html(att).css({ 'position': 'absolute', 'top': posY + 'px', 'left': posX + 'px', 'display': 'block', 'opacity': settings.ttOpacity });
				});
				aref.live('mouseout', function ()
				{
					jQuery('.tooltip').hide();
				});
			}
		});
		j++;
	});
};
