/*!
 * jQuery frSlider Plugin (with autoslide)
 * Version: 1.2.0.0 (1-JULY-2009)
 * Requires: jQuery v1.3.1 or later, jquery.timers.js
 *
 */
jQuery.extend( jQuery.easing,
{
	easeInOutExpo: function (x, t, b, c, d) {
		if (t==0) return b;
		if (t==d) return b+c;
		if ((t/=d/2) < 1) return c/2 * Math.pow(2, 10 * (t - 1)) + b;
		return c/2 * (-Math.pow(2, -10 * --t) + 2) + b;
	}
});
jQuery(function(){
   jQuery("div.svw").prepend("<img src='http://www.fotoregali.com/Images/svwloader.gif' class='ldrgif' alt='loading...'/ >"); //check the path!!!
});
var j = 0;
jQuery.fn.frSlider = function(settings) {
	  settings = jQuery.extend({
     easeFunc: "easeInOutExpo",
     easeTime: 750,
     thumbsPercentReduction: 28,
     step: 3,
     autoslide: false,
     asTimer: 4000,
     typo: false
  }, settings);
	return this.each(function(){
		var container = jQuery(this);
		container.find("img.ldrgif").remove();
		container.removeClass("svw").addClass("stripViewer");		
		var pictWidth = container.find("img").width();
		var pictHeight = container.find("img").height();
		var pictEls = container.find("li").size();
		var stripViewerWidth = pictWidth*pictEls;
		var thumbsWidth = Math.round(pictWidth*settings.thumbsPercentReduction/100);
		var thumbsHeight =  Math.round(pictHeight*settings.thumbsPercentReduction/100);
		var pos = 0;
		var r_enabled = true;
		var l_enabled = true;
		(pictWidth > 350)? container.addClass("svLarger") : null;
		container.find("ul").css("width" , stripViewerWidth)
		.wrap(jQuery("<div style='width:"+ pictWidth +"px; overflow: hidden; position: relative; top: 3px; left: 3px'>")); //relatively positioned (left_right +3px) because of the bg shadow
		container.css("width" , pictWidth+6); //6px more because of the shadow
		container.css("height" , pictHeight);
		container.each(function(i) {
			
			jQuery(this).after("<div class='stripTransmitter' id='stripTransmitter" + j + "'><ul><\/ul><\/div>");
			jQuery(this).next().after("<a href='#' class='left' id='left" + j + "'>&nbsp;<\/a><a href='#' class='right' id='right" + j + "'>&nbsp;<\/a>");

			
			jQuery(this).find("li").each(function(n) {
				jQuery(this).find("img").after("<img class='mag' src='http://www.fotoregali.com/Images/mag.gif' />");
				jQuery("div#stripTransmitter" + j + " ul").append("<li><a title='" + jQuery(this).find("img").attr("alt") + "' href='#'><img width='"+ thumbsWidth +"' height='"+ thumbsHeight +"' src='" + jQuery(this).find("img").attr("src") + "' /><p class='tmbrdr' style='width:"+ (thumbsWidth-2) +"px; height:"+ (thumbsHeight-2) +"px; top:-"+ (thumbsHeight) +"px; '>&nbsp;<\/p><\/a><\/li>");						
				
				if(settings.typo)
					{
						jQuery(this).find("img:not(.mag)").each(function(z) {
							jQuery(this).after("<span class='typo' style='position: absolute; width:"+(pictWidth-12)+"px; margin: 0 0 0 -"+pictWidth+"px'>"+jQuery(this).attr("alt")+"<\/span>");
						});
					}					
			
			});
			
			jQuery("div#stripTransmitter" + j + " a").each(function(z) {
				jQuery(this).bind("click", function(){					
					jQuery(this).addClass("current").parent().parent().find("a").not(jQuery(this)).removeClass("current");
					var cnt = -(pictWidth*z);
					(cnt != container.find("ul").css("left").replace(/px/, "")) ? container.find("span.typo").animate({"opacity": 0}, 250) : null ;
					container.find("ul").animate({ left: cnt}, settings.easeTime, settings.easeFunc, function(){container.find("span.typo").animate({"opacity": 1}, 250)});
					return false;
				});
			});
			

			// left/right 'buttons'			
			jQuery("a#right" + j).bind("click", function(){				
					if (r_enabled) (pictEls-pos > 6 || pictEls%3 == 0)? pos += 3 : pos += pictEls % 3;
					r_enabled = false;
					jQuery(this).prev().prev().find("ul:not(:animated)").animate({ left: -(thumbsWidth+3)*pos}, 500, settings.easeFunc, function(){manageControls();});					
					return false;
			});
			jQuery("a#left" + j).bind("click", function(){	
					if (l_enabled) (pictEls-pos > 3 || pictEls%3 == 0)? pos -= 3 : pos -= pictEls % 3;
					l_enabled = false;
					jQuery(this).prev().find("ul:not(:animated)").animate({ left: -(thumbsWidth+3)*pos}, 500, settings.easeFunc, function(){manageControls();});			
					return false;
			});						

					
			function manageControls()
			{
				//right btt
				(pos == pictEls-3) ? container.next().next().next().addClass("r_dis") : container.next().next().next().removeClass("r_dis");
				(pos == pictEls-3) ? r_enabled = false : r_enabled = true;
				//left btt
				(pos == 0) ? container.next().next().addClass("l_dis") : container.next().next().removeClass("l_dis");
				(pos == 0) ? l_enabled = false : l_enabled = true;
				//alert(pos);
			}
			
			//CSS	defs @ runtime
			jQuery(".stripViewer a img").css({border: "0"});
			jQuery(".stripViewer a img.mag").css({position: "absolute"});
			
			if(settings.typo)
					{
						jQuery(this).find("span.typo").each(function(z) {
							jQuery(this).css({marginTop: (pictHeight-jQuery(this).innerHeight())-3});
						});
					}
						
			jQuery("div#stripTransmitter" + j).css({position: "relative", width: pictWidth-50, height: thumbsHeight+14, textAlign: "center", overflow: "hidden", margin: "0 28px 0 28px"});
			jQuery("div#stripTransmitter" + j + " ul").css({width: (thumbsWidth*pictEls)+3*pictEls, position: "relative", left: "0", top: "0"});
			jQuery("div#stripTransmitter" + j + " a:first").addClass("current");
			
			jQuery("a#left" + j).css({display: "block", textAlign: "center", width: "28px" , height: "98px",  margin: "-98px 0 0 0", textDecoration: "none"});
			jQuery("a#right" + j).css({display: "block", textAlign: "center", width: "28px", height: "98px", margin: "-98px 0 0 "+((pictWidth-50)+28)+"px", textDecoration: "none"});

			manageControls();
			
			if(settings.autoslide){
					var i = 1;
					jQuery("div#stripTransmitter" + j).everyTime(settings.asTimer, "asld", function() {							
		  			jQuery(this).find("a").eq(i).trigger("click");
		  			if(i == 0)
		  			{
		  				pos = 0;
		  				jQuery(this).find("ul:not(:animated)").animate({ left: -(thumbsWidth+3)*pos}, 500, settings.easeFunc, function(){manageControls();});
		  			}
		  			(i%3 == 0)? jQuery(this).next().next().trigger("click") : null;
		  			(i < pictEls-1)?	i++ : i=0;		  			
					});		
					
					//stops autoslidemode	
					jQuery("a#right" + j).bind("mouseup", function(){
		      	jQuery(this).prev().prev().stopTime("asld");
		    	});
					jQuery("a#left" + j).bind("mouseup", function(){
						jQuery(this).prev().stopTime("asld");		
					});
					jQuery("div#stripTransmitter" + j + " a").bind("mouseup", function(){
						jQuery(this).parent().parent().parent().stopTime("asld"); //stops autoslidemode
					});
					container.bind("mouseup", function(){
					jQuery(this).next().stopTime("asld");
					//alert(jQuery(this).find(".typo:eq(2)").innerHeight());
					});
			}	
			});
		j++;
  });	
};