/*** jQuery jqGalScroll Plugin* Examples and documentation at: http://benjaminsterling.com/jquery-jqgalscroll-photo-gallery/** @author: Benjamin Sterling* @version: 2.1* @copyright (c) 2007 Benjamin Sterling, KenzoMedia* @extendThanks Koesmanto Bong http://www.koesbong.com/*		Koes put a fire under my butt to improve this plugin*		and when I took too long he took what I had and added*		the horizontal scroll and in turn I ripped it from his*		hands and made it better :)** 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.2.1 or later* @optional jQuery Easing v1.2** @name jqGalScroll* @example $('ul').jqGalScroll();* * @Semantic requirements:* 				The structure fairly simple; the structure should consist* 				of a ul > li > img structure.* * 	<ul>*		<li><img src="common/img/dsc_0003.thumbnail.JPG"/></li>*		<li><img src="common/img/dsc_0012.thumbnail.JPG"/></li>*	</ul>** @param String ease*					refer to http://gsgd.co.uk/sandbox/jquery.easing.php for values* * @example $('#gallery').jqGalScroll({speed:1000});* @param String speed* 					fast, slow, 1000, ext..* * @example $('#gallery').jqGalScroll({speed:1000});* * @param String height* 					the default height of your wrapper* * @example $('#gallery').jqGalScroll({height:490});* * @param String titleOpacity* 					the opacity of your title bar (if present)* * @example $('#gallery').jqGalScroll({titleOpacity:.70});* * @param String direction *					vertical horizontal diagonal* * @example $('#gallery').jqGalScroll({direction:'vertical'});* 			*/(function($) {	$.fn.jqGalScroll = function(options){		return this.each(function(i){			var el = this			el.curImage = 0;			el.jqthis = $(this).css({position:'relative'});			el.jqchildren = el.jqthis.children();			el.opts = $.extend({}, jqGalScroll, options);			el.index = i;			el.totalChildren = el.jqchildren.size();			var width,height;						switch(el.opts.direction){				case 'horizontal':					width = el.totalChildren *el.opts.width;					height = el.opts.height;					break;				case 'vertical':					width = el.opts.width;					height = el.totalChildren *el.opts.height;					break;				default:					width = el.totalChildren *el.opts.width;					height = el.totalChildren *el.opts.height;					break;			}; 															el.container = $('<div id="jqGS'+i+'" class="jqGSContainer">').css({position:'relative'});			el.ImgContainer = $('<div class="jqGSImgContainer" style="height:'+el.opts.height+'px;position:relative;overflow:hidden">')								.css({height:el.opts.height,width:el.opts.width,position:'relative',overflow:'hidden'});			el.jqthis.css({height:height,width:width});						el.jqthis.wrap(el.container);			el.jqthis.wrap(el.ImgContainer);			el.pagination = $('<div class="jqGSPagination">');			el.jqthis.parent().parent().append(el.pagination);			var jqul = $('<ul>').appendTo(el.pagination);			var pos = {x:0,y:0};						el.jqchildren.each(function(j){				var selected = '';				if(j == 0) selected = 'selected';								var $a = $('<a href="#'+(j)+'" class="'+selected+'"></a>').click(function(){					var href = this.index;//href.replace(/^.*#/, '');					el.pagination.find('.selected').removeClass('selected');					$(this).addClass('selected');					var params = {};					if( el.opts.direction == 'diagonal'){						params = {right:(el.opts.width*href),bottom:(el.opts.height*href)}					}					else if( el.opts.direction == 'vertical'){						params = {bottom:(el.opts.height*href)}					}					else if( el.opts.direction == 'horizontal'){						params = {right:(el.opts.width*href)}					};										el.jqthis.stop().animate(params,el.opts.speed, el.opts.ease);					index = href;					clearTimeout(autoPlay);					autoPlay = setTimeout(nextSlide, el.opts.autoplayDelay);					return false;				});				var n = $a.get(0);				n.index = j;				$('<li>').appendTo(jqul).append($a);				if( el.opts.direction == 'diagonal'){					pos.x = j * el.opts.width;					pos.y = j * el.opts.height;				}				else if( el.opts.direction == 'horizontal'){					pos.x = j * el.opts.width;				}				else if( el.opts.direction == 'vertical'){					pos.y = j * el.opts.height;				};				var jqchild = $(this).css({height:el.opts.height,width:el.opts.width,position:'absolute',left:pos.x, top:pos.y});				var jqimg = jqchild.find('img').hide()								if(jqimg.parent().is('a')){					var p = jqimg.parent();					jqimg.get(0).linkHref = p.attr('href');					p.remove();					jqimg.appendTo(jqchild);				};				jqimg.click(function(){					var next = n.index + 1;					if((n.index + 1) == el.totalChildren ){						el.pagination.find('[href$=#0]').click();					}					else{						el.pagination.find('[href$=#'+next+']').click();					}				});				var $loader = $('<div class="jqGSLoader">').appendTo(jqchild);				var $titleHolder = $('<div class="jqGSTitle">').appendTo(jqchild).css({opacity:el.opts.titleOpacity}).hide();				var image = new Image();				image.onload = function(){					image.onload = null;					$loader.fadeOut();					jqimg.css({marginLeft:-image.width*.5,marginTop:-image.height*.5,position:'absolute',left:'50%',top:'50%'}).fadeIn();					var alt = jqimg.attr('alt');					if(typeof alt != 'undefined'){						$titleHolder.text(alt).fadeIn();					}				};				image.src = jqimg.attr('src');			});function nextSlide(){	if(el.pagination.find('.selected').parent().next().children('a').size()){		el.pagination.find('.selected').parent().next().children('a').click();	}	else{		el.pagination.find('li:eq(0)').children('a').click();	}}autoPlay = setTimeout(nextSlide, el.opts.autoplayDelay);	}); // end : this.each(function()};  // end : $.fn.jqGalScroll	jqGalScroll = {		ease: null,		speed:500,		height: 279,		width: 1379,		titleOpacity : .60,		direction : 'horizontal', // vertical horizontal diagonal		autoplayDelay: 5000	};})(jQuery);
