/*
Title:     slideViewerPro
Author:    gc@gcmingati.net
**********************************************
*/


var j = 0;
jQuery.fn.slideViewerPro = function(settings) {
	  settings = jQuery.extend({
	  	// thumbs settings
	  	thumbsOpacity: 1,
	  	thumbsEls: 17,
	  	thumbsMarginTop: 0,
			thumbsMarginRight: 1,
			thumbsPercentReduction: 7,
			txeaseTime: 750,
			rxeaseTime: 400,
			txeaseFunc: 'easeInOutExpo',
			rxeaseFunc: 'easeInOutExpo',
			// thumbs left button settings
			leftButtonInner: '&larr;',
			leftButtonTextColor: '#000',
			leftButtonHoverTextColor: '#fff',
			leftButtonBg: '#fff',
			leftButtonHoverBg: '#ff0000',
			// thumbs right button settings	
			rightButtonInner: '&rarr;',
			rightButtonTextColor: '#000',
			rightButtonHoverTextColor: '#fff',
			rightButtonBg: '#fff',
			rightButtonHoverBg: '#ff0000',
			// typographic info settings			
			captionTextColor: '#fff',
			captionBg: '#ff0000',
			captionWidth : '300px',
			captionPadding: '10px',
			captionLeft: '10px',
			captionTop: '10px',
			captionSetText: 'normal 10px/12px Verdana'
			
  }, settings);
	return this.each(function(){
		var objGal = jQuery(this);
		var pictWidth = "250"; //objGal.find("img").width();
		var pictHeight = "320"; //objGal.find("img").height();		
		var thumbsWidth = "70"; //Math.round(pictWidth*settings.thumbsPercentReduction/100);
		var thumbsHeight =  "30"; //Math.round(pictHeight*settings.thumbsPercentReduction/100);
		var pictEls = objGal.find("li").size();
		var galWidth = pictWidth*pictEls;
		objGal.addClass("svwpro");
		objGal.css({width : galWidth});



		objGal.each(function(i) {
			$mask = jQuery("<div class='svtMask' id='svtMask" + j + "'></div>");
			jQuery(this).wrap($mask);
			
			
			jQuery(this).after("<div id='jrtxMask" + j + "' class='jrtxMaskStyle'><div class='jrtx' id='jrtx" + j + "'><ul></ul></div></div>");
			
			jQuery("div#jrtx" + j).css({width : Math.round((thumbsWidth*pictEls)+(settings.thumbsMarginRight*pictEls))});
			jQuery("div#jrtx" + j + " ul").css({width: Math.round((thumbsWidth*pictEls)+(settings.thumbsMarginRight*pictEls))});
			
			
			
			jQuery("div#jrtxMask" + j).css({width: Math.round((settings.thumbsEls*thumbsWidth)+(settings.thumbsMarginRight*settings.thumbsEls)), overflow: "hidden", position: "relative"});
			
			jQuery(this).find("li").each(function(n) {

						jQuery("div#jrtx" + j + " ul").append("<li><a title='" + jQuery(this).find("div.cntArea").attr("title") + "' href='javascript:;'><span>" + jQuery(this).find("div.cntArea").attr("title") + "</span></a></li>");												
				});
			
			if(pictEls>settings.thumbsEls){
//				jQuery("div#jrtxMask" + j).after("<a href='#' class='aleironLeft' id='al"+j+"'>" + settings.leftButtonInner+"&nbsp;</a><a href='#' class='aleironRight' id='ar"+j+"'>&nbsp;"+settings.rightButtonInner+"</a>");
jQuery("div#jrtxMask" + j).after("<div class='aleironLeft' id='al2"+j+"'><div class='bg'></div><a href='javascript:;' id='al"+j+"'></a></div><div class='aleironRight' id='ar2"+j+"'><div class='bg'></div><a href='javascript:;' id='ar"+j+"'></a></div>");

			}

			var tz_step = thumbsWidth; //+ settings.thumbsMarginRight;
			var tz_page = settings.thumbsEls;
			var thumbzList = jQuery("div#jrtx" + j + " ul");
			var $aleft = jQuery("a#al"+j);
			var $aright = jQuery("a#ar"+j);
			var $aleft2 = jQuery("div#al2"+j);
			var $aright2 = jQuery("div#ar2"+j);
			var sxCrossBrowser;			
			mOzIeLeft();
			function mOzIeLeft(){
				if(jQuery.browser.msie)
					sxCrossBrowser = "marginLeft";
				
				else
					sxCrossBrowser = "left";
				};

			if(jQuery("div#jrtx" + j + " ul").css(sxCrossBrowser) == 0+"px"){
				jQuery("a#al"+j).css({display: "none"});
				jQuery("div#al2"+j).css({display: "none"});
			}			
			
			function getPxVal(jqobj, styleattr){
				return jqobj.css(styleattr).replace("px", "");
			};
			function getMargLeftVal(jqobj){
				return getPxVal(thumbzList, sxCrossBrowser);
				
			};
			function scrollThumbz(more, jqobj){
				var minOffset = 0;
				var maxOffset = -(pictEls - tz_page);
				var offset = getMargLeftVal(thumbzList) / tz_step ;
				var newOffset = offset + (tz_page * ((more)? -1 : 1));
				
				
				if (newOffset >= minOffset){
					newOffset = minOffset;
					$aleft2.css({display: "none"});
					$aleft.css({display: "none"});
					
				}else
					$aleft2.css({display: ""})
					$aleft.css({display: ""})
					
				if (newOffset <= maxOffset){
					newOffset = maxOffset;
					$aright2.css({display: "none"});
					$aright.css({display: "none"});
					
				}else
					$aright2.css({display: ""});					
					$aright.css({display: ""});					
				
				(jQuery.browser.msie)? thumbzList.filter("ul:not(:animated)").animate({ marginLeft : Math.round((newOffset * tz_step))}, settings.rxeaseTime, settings.rxeaseFunc ) : thumbzList.filter("ul:not(:animated)").animate({ left : Math.round((newOffset * tz_step))}, settings.rxeaseTime, settings.rxeaseFunc )									



			};	

			jQuery("a#al"+j).click(function () {
				scrollThumbz(false, thumbzList);
				return false;
			});
			jQuery("a#ar"+j).click(function () {
				scrollThumbz(true, thumbzList);
				return false;
			});
			
			jQuery("div#jrtx" + j + " ul a").each(function(z) {
														   
 
				jQuery(this).css({outline: "none"})
				jQuery(this).bind("click", function(){
				jQuery(this).addClass("selected").parent().parent().find("a").not(jQuery(this)).removeClass("selected");


				var cnt = - (pictWidth*z);
				jQuery(this).parent().parent().parent().parent().parent().find("ul:first").animate({ left: cnt }, settings.txeaseTime, settings.txeaseFunc, function(){
					});
				return false;
				   });
				})
				jQuery("div#jrtx" + j + " ul a:first").trigger("click");
			});
		j++;
  });	
};
