/*	Supersized - Fullscreen Slideshow jQuery Plugin	Version : 3.2.4	Site	: www.buildinternet.com/project/supersized		Author	: Sam Dunn	Company : One Mighty Roar (www.onemightyroar.com)	License : MIT License / GPL License	*/(function($){	/* Place Supersized Elements	----------------------------*/	$(document).ready(function() {		$('body').append('<div id="supersized-loader"></div><ul id="supersized"></ul>');	});            $.supersized = function(options){    	    	/* Variables		----------------------------*/    	var el = '#supersized',        	base = this;        // Access to jQuery and DOM versions of element        base.$el = $(el);        base.el = el;        vars = $.supersized.vars;        // Add a reverse reference to the DOM object        base.$el.data("supersized", base);        api = base.$el.data('supersized');				base.init = function(){        	// Combine options and vars        	$.supersized.vars = $.extend($.supersized.vars, $.supersized.themeVars);        	$.supersized.vars.options = $.extend({},$.supersized.defaultOptions, $.supersized.themeOptions, options);            base.options = $.supersized.vars.options;                        base._build();        };                        /* Build Elements		----------------------------*/        base._build = function(){        	// Add in slide markers        	var thisSlide = 0,        		slideSet = '',				markers = '',				markerContent,				thumbMarkers = '',				thumbImage;							while(thisSlide <= base.options.slides.length-1){				//Determine slide link content				switch(base.options.slide_links){					case 'num':						markerContent = thisSlide;						break;					case 'name':						markerContent = base.options.slides[thisSlide].title;						break;					case 'blank':						markerContent = '';						break;				}								slideSet = slideSet+'<li class="slide-'+thisSlide+'"></li>';								if(thisSlide == base.options.start_slide-1){					// Slide links					if (base.options.slide_links)markers = markers+'<li class="slide-link-'+thisSlide+' current-slide"><a>'+markerContent+'</a></li>';					// Slide Thumbnail Links					if (base.options.thumb_links){						base.options.slides[thisSlide].thumb ? thumbImage = base.options.slides[thisSlide].thumb : thumbImage = base.options.slides[thisSlide].image;						thumbMarkers = thumbMarkers+'<li class="thumb'+thisSlide+' current-thumb"><img src="'+thumbImage+'"/></li>';					};				}else{					// Slide links					if (base.options.slide_links) markers = markers+'<li class="slide-link-'+thisSlide+'" ><a>'+markerContent+'</a></li>';					// Slide Thumbnail Links					if (base.options.thumb_links){						base.options.slides[thisSlide].thumb ? thumbImage = base.options.slides[thisSlide].thumb : thumbImage = base.options.slides[thisSlide].image;						thumbMarkers = thumbMarkers+'<li class="thumb'+thisSlide+'"><img src="'+thumbImage+'"/></li>';					};				}				thisSlide++;			}						if (base.options.slide_links) $(vars.slide_list).html(markers);			if (base.options.thumb_links && vars.thumb_tray.length){				$(vars.thumb_tray).append('<ul id="'+vars.thumb_list.replace('#','')+'">'+thumbMarkers+'</ul>');			}						$(base.el).append(slideSet);						// Add in thumbnails			if (base.options.thumbnail_navigation){				// Load previous thumbnail				vars.current_slide - 1 < 0  ? prevThumb = base.options.slides.length - 1 : prevThumb = vars.current_slide - 1;				$(vars.prev_thumb).show().html($("<img/>").attr("src", base.options.slides[prevThumb].image));								// Load next thumbnail				vars.current_slide == base.options.slides.length - 1 ? nextThumb = 0 : nextThumb = vars.current_slide + 1;				$(vars.next_thumb).show().html($("<img/>").attr("src", base.options.slides[nextThumb].image));			}			            base._start(); // Get things started        };                        /* Initialize		----------------------------*/    	base._start = function(){						// Determine if starting slide random			if (base.options.start_slide){				vars.current_slide = base.options.start_slide - 1;			}else{				vars.current_slide = Math.floor(Math.random()*base.options.slides.length);	// Generate random slide number			}						// If links should open in new window			var linkTarget = base.options.new_window ? ' target="_blank"' : '';						// Set slideshow quality (Supported only in FF and IE, no Webkit)			if (base.options.performance == 3){				base.$el.addClass('speed'); 		// Faster transitions			} else if ((base.options.performance == 1) || (base.options.performance == 2)){				base.$el.addClass('quality');	// Higher image quality			}									// Shuffle slide order if needed					if (base.options.random){				arr = base.options.slides;				for(var j, x, i = arr.length; i; j = parseInt(Math.random() * i), x = arr[--i], arr[i] = arr[j], arr[j] = x);	// Fisher-Yates shuffle algorithm (jsfromhell.com/array/shuffle)			    base.options.slides = arr;			}						/*-----Load initial set of images-----*/				if (base.options.slides.length > 1){				// Set previous image				vars.current_slide - 1 < 0  ? loadPrev = base.options.slides.length - 1 : loadPrev = vars.current_slide - 1;	// If slide is 1, load last slide as previous				var imageLink = (base.options.slides[loadPrev].url) ? "href='" + base.options.slides[loadPrev].url + "'" : "";								var imgPrev = $('<img src="'+base.options.slides[loadPrev].image+'"/>');				var slidePrev = base.el+' li:eq('+loadPrev+')';				imgPrev.appendTo(slidePrev).wrap('<a ' + imageLink + linkTarget + '></a>').parent().parent().addClass('image-loading prevslide');								imgPrev.load(function(){					$(this).data('origWidth', $(this).width()).data('origHeight', $(this).height());					base.resizeNow();	// Resize background image				});	// End Load			} else {				// Slideshow turned off if there is only one slide				base.options.slideshow = 0;			}						// Set current image			imageLink = (api.getField('url')) ? "href='" + api.getField('url') + "'" : "";			var img = $('<img src="'+api.getField('image')+'"/>');						var slideCurrent= base.el+' li:eq('+vars.current_slide+')';			img.appendTo(slideCurrent).wrap('<a ' + imageLink + linkTarget + '></a>').parent().parent().addClass('image-loading activeslide');						img.load(function(){				base._origDim($(this));				base.resizeNow();	// Resize background image				base.launch();				if( typeof theme != 'undefined' && typeof theme._init == "function" ) theme._init();	// Load Theme			});						if (base.options.slides.length > 1){				// Set next image				vars.current_slide == base.options.slides.length - 1 ? loadNext = 0 : loadNext = vars.current_slide + 1;	// If slide is last, load first slide as next				imageLink = (base.options.slides[loadNext].url) ? "href='" + base.options.slides[loadNext].url + "'" : "";								var imgNext = $('<img src="'+base.options.slides[loadNext].image+'"/>');				var slideNext = base.el+' li:eq('+loadNext+')';				imgNext.appendTo(slideNext).wrap('<a ' + imageLink + linkTarget + '></a>').parent().parent().addClass('image-loading');								imgNext.load(function(){					$(this).data('origWidth', $(this).width()).data('origHeight', $(this).height());					base.resizeNow();	// Resize background image				});	// End Load			}			/*-----End load initial images-----*/						//  Hide elements to be faded in			base.$el.css('visibility','hidden');			$('.load-item').hide();			    	};						/* Launch Supersized		----------------------------*/		base.launch = function(){					base.$el.css('visibility','visible');			$('#supersized-loader').remove();		//Hide loading animation						// Call theme function for before slide transition			if( typeof theme != 'undefined' && typeof theme.beforeAnimation == "function" ) theme.beforeAnimation('next');			$('.load-item').show();						// Keyboard Navigation			if (base.options.keyboard_nav){				$(document.documentElement).keyup(function (event) {									if(vars.in_animation) return false;		// Abort if currently animating										// Left Arrow or Down Arrow					if ((event.keyCode == 37) || (event.keyCode == 40)) {						clearInterval(vars.slideshow_interval);	// Stop slideshow, prevent buildup						base.prevSlide();										// Right Arrow or Up Arrow					} else if ((event.keyCode == 39) || (event.keyCode == 38)) {						clearInterval(vars.slideshow_interval);	// Stop slideshow, prevent buildup						base.nextSlide();										// Spacebar						} else if (event.keyCode == 32 && !vars.hover_pause) {						clearInterval(vars.slideshow_interval);	// Stop slideshow, prevent buildup						base.playToggle();					}								});			}						// Pause when hover on image			if (base.options.slideshow && base.options.pause_hover){				$(base.el).hover(function() {					if(vars.in_animation) return false;		// Abort if currently animating			   			vars.hover_pause = true;	// Mark slideshow paused from hover			   			if(!vars.is_paused){			   				vars.hover_pause = 'resume';	// It needs to resume afterwards			   				base.playToggle();			   			}			   	}, function() {					if(vars.hover_pause == 'resume'){						base.playToggle();						vars.hover_pause = false;					}			   	});			}						if (base.options.slide_links){				// Slide marker clicked				$(vars.slide_list+'> li').click(function(){									index = $(vars.slide_list+'> li').index(this);					targetSlide = index + 1;										base.goTo(targetSlide);					return false;									});			}						// Thumb marker clicked			if (base.options.thumb_links){				$(vars.thumb_list+'> li').click(function(){									index = $(vars.thumb_list+'> li').index(this);					targetSlide = index + 1;										api.goTo(targetSlide);					return false;									});			}						// Start slideshow if enabled			if (base.options.slideshow && base.options.slides.length > 1){	    			    		// Start slideshow if autoplay enabled	    		if (base.options.autoplay && base.options.slides.length > 1){	    			vars.slideshow_interval = setInterval(base.nextSlide, base.options.slide_interval);	// Initiate slide interval				}else{					vars.is_paused = true;	// Mark as paused				}								//Prevent navigation items from being dragged									$('.load-item img').bind("contextmenu mousedown",function(){					return false;				});											}						// Adjust image when browser is resized			$(window).resize(function(){	    		base.resizeNow();			});    		    	};                        /* Resize Images		----------------------------*/		base.resizeNow = function(){						return base.$el.each(function() {		  		//  Resize each image seperately		  		$('img', base.el).each(function(){		  								thisSlide = $(this);					var ratio = (thisSlide.data('origHeight')/thisSlide.data('origWidth')).toFixed(2);	// Define image ratio										// Gather browser size					var browserwidth = base.$el.width(),						browserheight = base.$el.height(),						offset;										/*-----Resize Image-----*/					if (base.options.fit_always){	// Fit always is enabled						if ((browserheight/browserwidth) > ratio){							resizeWidth();						} else {							resizeHeight();						}					}else{	// Normal Resize						if ((browserheight <= base.options.min_height) && (browserwidth <= base.options.min_width)){	// If window smaller than minimum width and height													if ((browserheight/browserwidth) > ratio){								base.options.fit_landscape && ratio < 1 ? resizeWidth(true) : resizeHeight(true);	// If landscapes are set to fit							} else {								base.options.fit_portrait && ratio >= 1 ? resizeHeight(true) : resizeWidth(true);		// If portraits are set to fit							}												} else if (browserwidth <= base.options.min_width){		// If window only smaller than minimum width													if ((browserheight/browserwidth) > ratio){								base.options.fit_landscape && ratio < 1 ? resizeWidth(true) : resizeHeight();	// If landscapes are set to fit							} else {								base.options.fit_portrait && ratio >= 1 ? resizeHeight() : resizeWidth(true);		// If portraits are set to fit							}													} else if (browserheight <= base.options.min_height){	// If window only smaller than minimum height													if ((browserheight/browserwidth) > ratio){								base.options.fit_landscape && ratio < 1 ? resizeWidth() : resizeHeight(true);	// If landscapes are set to fit							} else {								base.options.fit_portrait && ratio >= 1 ? resizeHeight(true) : resizeWidth();		// If portraits are set to fit							}												} else {	// If larger than minimums														if ((browserheight/browserwidth) > ratio){								base.options.fit_landscape && ratio < 1 ? resizeWidth() : resizeHeight();	// If landscapes are set to fit							} else {								base.options.fit_portrait && ratio >= 1 ? resizeHeight() : resizeWidth();		// If portraits are set to fit							}													}					}					/*-----End Image Resize-----*/															/*-----Resize Functions-----*/										function resizeWidth(minimum){						if (minimum){	// If minimum height needs to be considered							if(thisSlide.width() < browserwidth || thisSlide.width() < base.options.min_width ){								if (thisSlide.width() * ratio >= base.options.min_height){									thisSlide.width(base.options.min_width);						    		thisSlide.height(thisSlide.width() * ratio);						    	}else{						    		resizeHeight();						    	}						    }						}else{							if (base.options.min_height >= browserheight && !base.options.fit_landscape){	// If minimum height needs to be considered								if (browserwidth * ratio >= base.options.min_height || (browserwidth * ratio >= base.options.min_height && ratio <= 1)){	// If resizing would push below minimum height or image is a landscape									thisSlide.width(browserwidth);									thisSlide.height(browserwidth * ratio);								} else if (ratio > 1){		// Else the image is portrait									thisSlide.height(base.options.min_height);									thisSlide.width(thisSlide.height() / ratio);								} else if (thisSlide.width() < browserwidth) {									thisSlide.width(browserwidth);						    		thisSlide.height(thisSlide.width() * ratio);								}							}else{	// Otherwise, resize as normal								thisSlide.width(browserwidth);								thisSlide.height(browserwidth * ratio);							}						}					};										function resizeHeight(minimum){						if (minimum){	// If minimum height needs to be considered							if(thisSlide.height() < browserheight){								if (thisSlide.height() / ratio >= base.options.min_width){									thisSlide.height(base.options.min_height);									thisSlide.width(thisSlide.height() / ratio);								}else{									resizeWidth(true);								}							}						}else{	// Otherwise, resized as normal							if (base.options.min_width >= browserwidth){	// If minimum width needs to be considered								if (browserheight / ratio >= base.options.min_width || ratio > 1){	// If resizing would push below minimum width or image is a portrait									thisSlide.height(browserheight);									thisSlide.width(browserheight / ratio);								} else if (ratio <= 1){		// Else the image is landscape									thisSlide.width(base.options.min_width);						    		thisSlide.height(thisSlide.width() * ratio);								}							}else{	// Otherwise, resize as normal								thisSlide.height(browserheight);								thisSlide.width(browserheight / ratio);							}						}					};										/*-----End Resize Functions-----*/										if (thisSlide.parents('li').hasClass('image-loading')){						$('.image-loading').removeClass('image-loading');					}										// Horizontally Center					if (base.options.horizontal_center){						$(this).css('left', (browserwidth - $(this).width())/2);					}										// Vertically Center					if (base.options.vertical_center){						$(this).css('top', (browserheight - $(this).height())/2);					}									});								// Basic image drag and right click protection				if (base.options.image_protect){										$('img', base.el).bind("contextmenu mousedown",function(){						return false;					});								}								return false;							});					};                        /* Next Slide		----------------------------*/		base.nextSlide = function(){						if(vars.in_animation || !api.options.slideshow) return false;		// Abort if currently animating				else vars.in_animation = true;		// Otherwise set animation marker						    clearInterval(vars.slideshow_interval);	// Stop slideshow		    		    var slides = base.options.slides,					// Pull in slides array				liveslide = base.$el.find('.activeslide');		// Find active slide				$('.prevslide').removeClass('prevslide');				liveslide.removeClass('activeslide').addClass('prevslide');	// Remove active class & update previous slide								// Get the slide number of new slide			vars.current_slide + 1 == base.options.slides.length ? vars.current_slide = 0 : vars.current_slide++;					    var nextslide = $(base.el+' li:eq('+vars.current_slide+')'),		    	prevslide = base.$el.find('.prevslide');						// If hybrid mode is on drop quality for transition			if (base.options.performance == 1) base.$el.removeClass('quality').addClass('speed');										/*-----Load Image-----*/						loadSlide = false;						vars.current_slide == base.options.slides.length - 1 ? loadSlide = 0 : loadSlide = vars.current_slide + 1;	// Determine next slide						var targetList = base.el+' li:eq('+loadSlide+')';			if (!$(targetList).html()){								// If links should open in new window				var linkTarget = base.options.new_window ? ' target="_blank"' : '';								imageLink = (base.options.slides[loadSlide].url) ? "href='" + base.options.slides[loadSlide].url + "'" : "";	// If link exists, build it				var img = $('<img src="'+base.options.slides[loadSlide].image+'"/>'); 								img.appendTo(targetList).wrap('<a ' + imageLink + linkTarget + '></a>').parent().parent().addClass('image-loading').css('visibility','hidden');								img.load(function(){					base._origDim($(this));					base.resizeNow();				});	// End Load			};									// Update thumbnails (if enabled)			if (base.options.thumbnail_navigation == 1){							// Load previous thumbnail				vars.current_slide - 1 < 0  ? prevThumb = base.options.slides.length - 1 : prevThumb = vars.current_slide - 1;				$(vars.prev_thumb).html($("<img/>").attr("src", base.options.slides[prevThumb].image));							// Load next thumbnail				nextThumb = loadSlide;				$(vars.next_thumb).html($("<img/>").attr("src", base.options.slides[nextThumb].image));							}												/*-----End Load Image-----*/									// Call theme function for before slide transition			if( typeof theme != 'undefined' && typeof theme.beforeAnimation == "function" ) theme.beforeAnimation('next');						//Update slide markers			if (base.options.slide_links){				$('.current-slide').removeClass('current-slide');				$(vars.slide_list +'> li' ).eq(vars.current_slide).addClass('current-slide');			}		    		    nextslide.css('visibility','hidden').addClass('activeslide');	// Update active slide		    	    	switch(base.options.transition){	    		case 0: case 'none':	// No transition	    		    nextslide.css('visibility','visible');	    		    vars.in_animation = false;	    		    break;	    		case 1: case 'fade':	// Fade	    		    nextslide.animate({opacity : 0},0).css('visibility','visible').animate({opacity : 1, avoidTransforms : false}, base.options.transition_speed, function(){ base.afterAnimation(); });	    		    break;	    		case 2: case 'slideTop':	// Slide Top	    		    nextslide.animate({top : -base.$el.height()}, 0 ).css('visibility','visible').animate({ top:0, avoidTransforms : false }, base.options.transition_speed, function(){ base.afterAnimation(); });	    		    break;	    		case 3: case 'slideRight':	// Slide Right	    			nextslide.animate({left : base.$el.width()}, 0 ).css('visibility','visible').animate({ left:0, avoidTransforms : false }, base.options.transition_speed, function(){ base.afterAnimation(); });	    			break;	    		case 4: case 'slideBottom': // Slide Bottom	    			nextslide.animate({top : base.$el.height()}, 0 ).css('visibility','visible').animate({ top:0, avoidTransforms : false }, base.options.transition_speed, function(){ base.afterAnimation(); });	    			break;	    		case 5: case 'slideLeft':  // Slide Left	    			nextslide.animate({left : -base.$el.width()}, 0 ).css('visibility','visible').animate({ left:0, avoidTransforms : false }, base.options.transition_speed, function(){ base.afterAnimation(); });	    			break;	    		case 6: case 'carouselRight':	// Carousel Right	    			nextslide.animate({left : base.$el.width()}, 0 ).css('visibility','visible').animate({ left:0, avoidTransforms : false }, base.options.transition_speed, function(){ base.afterAnimation(); });					liveslide.animate({ left: -base.$el.width(), avoidTransforms : false }, base.options.transition_speed );	    			break;	    		case 7: case 'carouselLeft':   // Carousel Left	    			nextslide.animate({left : -base.$el.width()}, 0 ).css('visibility','visible').animate({ left:0, avoidTransforms : false }, base.options.transition_speed, function(){ base.afterAnimation(); });					liveslide.animate({ left: base.$el.width(), avoidTransforms : false }, base.options.transition_speed );	    			break;	    	}		    return false;			};						/* Previous Slide		----------------------------*/		base.prevSlide = function(){					if(vars.in_animation || !api.options.slideshow) return false;		// Abort if currently animating				else vars.in_animation = true;		// Otherwise set animation marker						clearInterval(vars.slideshow_interval);	// Stop slideshow						var slides = base.options.slides,					// Pull in slides array				liveslide = base.$el.find('.activeslide');		// Find active slide				$('.prevslide').removeClass('prevslide');				liveslide.removeClass('activeslide').addClass('prevslide');		// Remove active class & update previous slide						// Get current slide number			vars.current_slide == 0 ?  vars.current_slide = base.options.slides.length - 1 : vars.current_slide-- ;						    var nextslide =  $(base.el+' li:eq('+vars.current_slide+')'),		    	prevslide =  base.$el.find('.prevslide');						// If hybrid mode is on drop quality for transition			if (base.options.performance == 1) base.$el.removeClass('quality').addClass('speed');										/*-----Load Image-----*/						loadSlide = false;						vars.current_slide - 1 < 0  ? loadSlide = base.options.slides.length - 1 : loadSlide = vars.current_slide - 1;	// Determine next slide			var targetList = base.el+' li:eq('+loadSlide+')';			if (!$(targetList).html()){				// If links should open in new window				var linkTarget = base.options.new_window ? ' target="_blank"' : '';				imageLink = (base.options.slides[loadSlide].url) ? "href='" + base.options.slides[loadSlide].url + "'" : "";	// If link exists, build it				var img = $('<img src="'+base.options.slides[loadSlide].image+'"/>'); 								img.appendTo(targetList).wrap('<a ' + imageLink + linkTarget + '></a>').parent().parent().addClass('image-loading').css('visibility','hidden');								img.load(function(){					base._origDim($(this));					base.resizeNow();				});	// End Load			};						// Update thumbnails (if enabled)			if (base.options.thumbnail_navigation == 1){							// Load previous thumbnail				prevThumb = loadSlide;				$(vars.prev_thumb).html($("<img/>").attr("src", base.options.slides[prevThumb].image));								// Load next thumbnail				vars.current_slide == base.options.slides.length - 1 ? nextThumb = 0 : nextThumb = vars.current_slide + 1;				$(vars.next_thumb).html($("<img/>").attr("src", base.options.slides[nextThumb].image));			}						/*-----End Load Image-----*/									// Call theme function for before slide transition			if( typeof theme != 'undefined' && typeof theme.beforeAnimation == "function" ) theme.beforeAnimation('prev');						//Update slide markers			if (base.options.slide_links){				$('.current-slide').removeClass('current-slide');				$(vars.slide_list +'> li' ).eq(vars.current_slide).addClass('current-slide');			}					    nextslide.css('visibility','hidden').addClass('activeslide');	// Update active slide		    		    switch(base.options.transition){	    		case 0: case 'none':	// No transition	    		    nextslide.css('visibility','visible'); vars.in_animation = false; base.afterAnimation();	    		    break;	    		case 1: case 'fade':	// Fade	    		  	nextslide.animate({opacity : 0},0).css('visibility','visible').animate({opacity : 1, avoidTransforms : false}, base.options.transition_speed, function(){ base.afterAnimation(); });	    		    break;	    		case 2: case 'slideTop':	// Slide Top (reverse)	    		    nextslide.animate({top : base.$el.height()}, 0 ).css('visibility','visible').animate({ top:0, avoidTransforms : false }, base.options.transition_speed, function(){ base.afterAnimation(); });	    		    break;	    		case 3: case 'slideRight':	// Slide Right (reverse)	    			nextslide.animate({left : -base.$el.width()}, 0 ).css('visibility','visible').animate({ left:0, avoidTransforms : false }, base.options.transition_speed, function(){ base.afterAnimation(); });	    			break;	    		case 4: case 'slideBottom': // Slide Bottom (reverse)	    			nextslide.animate({top : -base.$el.height()}, 0 ).css('visibility','visible').animate({ top:0, avoidTransforms : false }, base.options.transition_speed, function(){ base.afterAnimation(); });	    			break;	    		case 5: case 'slideLeft':  // Slide Left (reverse)	    			nextslide.animate({left : base.$el.width()}, 0 ).css('visibility','visible').animate({ left:0, avoidTransforms : false }, base.options.transition_speed, function(){ base.afterAnimation(); });	    			break;	    		case 6: case 'carouselRight':	// Carousel Right (reverse)	    			nextslide.animate({left : -base.$el.width()}, 0 ).css('visibility','visible').animate({ left:0, avoidTransforms : false }, base.options.transition_speed, function(){ base.afterAnimation(); });					liveslide.animate({left : 0}, 0 ).animate({ left: base.$el.width(), avoidTransforms : false}, base.options.transition_speed );	    			break;	    		case 7: case 'carouselLeft':   // Carousel Left (reverse)	    			nextslide.animate({left : base.$el.width()}, 0 ).css('visibility','visible').animate({ left:0, avoidTransforms : false }, base.options.transition_speed, function(){ base.afterAnimation(); });					liveslide.animate({left : 0}, 0 ).animate({ left: -base.$el.width(), avoidTransforms : false }, base.options.transition_speed );	    			break;	    	}		    return false;			};						/* Play/Pause Toggle		----------------------------*/		base.playToggle = function(){					if (vars.in_animation || !api.options.slideshow) return false;		// Abort if currently animating						if (vars.is_paused){								vars.is_paused = false;								// Call theme function for play				if( typeof theme != 'undefined' && typeof theme.playToggle == "function" ) theme.playToggle('play');								// Resume slideshow	        	vars.slideshow_interval = setInterval(base.nextSlide, base.options.slide_interval);	        	          	}else{        		        		vars.is_paused = true;        		        		// Call theme function for pause        		if( typeof theme != 'undefined' && typeof theme.playToggle == "function" ) theme.playToggle('pause');        		        		// Stop slideshow        		clearInterval(vars.slideshow_interval);	       		       		}		    		    return false;    		    	};    	    	    	/* Go to specific slide		----------------------------*/    	base.goTo = function(targetSlide){			if (vars.in_animation || !api.options.slideshow) return false;		// Abort if currently animating						var totalSlides = base.options.slides.length;						// If target outside range			if(targetSlide < 0){				targetSlide = totalSlides;			}else if(targetSlide > totalSlides){				targetSlide = 1;			}			targetSlide = totalSlides - targetSlide + 1;						clearInterval(vars.slideshow_interval);	// Stop slideshow, prevent buildup						// Call theme function for goTo trigger			if (typeof theme != 'undefined' && typeof theme.goTo == "function" ) theme.goTo();						if (vars.current_slide == totalSlides - targetSlide){				if(!(vars.is_paused)){					vars.slideshow_interval = setInterval(base.nextSlide, base.options.slide_interval);				} 				return false;			}						// If ahead of current position			if(totalSlides - targetSlide > vars.current_slide ){								// Adjust for new next slide				vars.current_slide = totalSlides-targetSlide-1;				vars.update_images = 'next';				base._placeSlide(vars.update_images);							//Otherwise it's before current position			}else if(totalSlides - targetSlide < vars.current_slide){								// Adjust for new prev slide				vars.current_slide = totalSlides-targetSlide+1;				vars.update_images = 'prev';			    base._placeSlide(vars.update_images);			    			}						// set active markers			if (base.options.slide_links){				$(vars.slide_list +'> .current-slide').removeClass('current-slide');				$(vars.slide_list +'> li').eq((totalSlides-targetSlide)).addClass('current-slide');			}						if (base.options.thumb_links){				$(vars.thumb_list +'> .current-thumb').removeClass('current-thumb');				$(vars.thumb_list +'> li').eq((totalSlides-targetSlide)).addClass('current-thumb');			}					};                        /* Place Slide		----------------------------*/        base._placeSlide = function(place){    						// If links should open in new window			var linkTarget = base.options.new_window ? ' target="_blank"' : '';						loadSlide = false;						if (place == 'next'){								vars.current_slide == base.options.slides.length - 1 ? loadSlide = 0 : loadSlide = vars.current_slide + 1;	// Determine next slide								var targetList = base.el+' li:eq('+loadSlide+')';								if (!$(targetList).html()){					// If links should open in new window					var linkTarget = base.options.new_window ? ' target="_blank"' : '';										imageLink = (base.options.slides[loadSlide].url) ? "href='" + base.options.slides[loadSlide].url + "'" : "";	// If link exists, build it					var img = $('<img src="'+base.options.slides[loadSlide].image+'"/>'); 										img.appendTo(targetList).wrap('<a ' + imageLink + linkTarget + '></a>').parent().parent().addClass('image-loading').css('visibility','hidden');										img.load(function(){						base._origDim($(this));						base.resizeNow();					});	// End Load				};								base.nextSlide();							}else if (place == 'prev'){							vars.current_slide - 1 < 0  ? loadSlide = base.options.slides.length - 1 : loadSlide = vars.current_slide - 1;	// Determine next slide								var targetList = base.el+' li:eq('+loadSlide+')';								if (!$(targetList).html()){					// If links should open in new window					var linkTarget = base.options.new_window ? ' target="_blank"' : '';										imageLink = (base.options.slides[loadSlide].url) ? "href='" + base.options.slides[loadSlide].url + "'" : "";	// If link exists, build it					var img = $('<img src="'+base.options.slides[loadSlide].image+'"/>'); 										img.appendTo(targetList).wrap('<a ' + imageLink + linkTarget + '></a>').parent().parent().addClass('image-loading').css('visibility','hidden');										img.load(function(){						base._origDim($(this));						base.resizeNow();					});	// End Load				};				base.prevSlide();			}					};						/* Get Original Dimensions		----------------------------*/		base._origDim = function(targetSlide){			targetSlide.data('origWidth', targetSlide.width()).data('origHeight', targetSlide.height());		};						/* After Slide Animation		----------------------------*/		base.afterAnimation = function(){						// If hybrid mode is on swap back to higher image quality			if (base.options.performance == 1){		    	base.$el.removeClass('speed').addClass('quality');			}						// Update previous slide			if (vars.update_images){				vars.current_slide - 1 < 0  ? setPrev = base.options.slides.length - 1 : setPrev = vars.current_slide-1;				vars.update_images = false;				$('.prevslide').removeClass('prevslide');				$(base.el+' li:eq('+setPrev+')').addClass('prevslide');			}						vars.in_animation = false;						// Resume slideshow			if (!vars.is_paused && base.options.slideshow){				vars.slideshow_interval = setInterval(base.nextSlide, base.options.slide_interval);				if (base.options.stop_loop && vars.current_slide == base.options.slides.length - 1 ) base.playToggle();			}						// Call theme function for after slide transition			if (typeof theme != 'undefined' && typeof theme.afterAnimation == "function" ) theme.afterAnimation();						return false;				};				base.getField = function(field){			return base.options.slides[vars.current_slide][field];		};		        // Make it go!        base.init();	};			/* Global Variables	----------------------------*/	$.supersized.vars = {			// Elements									thumb_tray			:	'#thumb-tray',	// Thumbnail tray		thumb_list			:	'#thumb-list',	// Thumbnail list		slide_list          :   '#slide-list',	// Slide link list				// Internal variables		current_slide			:	0,			// Current slide number		in_animation 			:	false,		// Prevents animations from stacking		is_paused 				: 	false,		// Tracks paused on/off		hover_pause				:	false,		// If slideshow is paused from hover		slideshow_interval		:	false,		// Stores slideshow timer							update_images 			: 	false,		// Trigger to update images after slide jump		options					:	{}			// Stores assembled options list			};			/* Default Options	----------------------------*/	$.supersized.defaultOptions = {        	// Functionality		slideshow               :   1,			// Slideshow on/off		autoplay				:	1,			// Slideshow starts playing automatically		start_slide             :   1,			// Start slide (0 is random)		stop_loop				:	0,			// Stops slideshow on last slide		random					: 	0,			// Randomize slide order (Ignores start slide)		slide_interval          :   5000,		// Length between transitions		transition              :   1, 			// 0-None, 1-Fade, 2-Slide Top, 3-Slide Right, 4-Slide Bottom, 5-Slide Left, 6-Carousel Right, 7-Carousel Left		transition_speed		:	750,		// Speed of transition		new_window				:	1,			// Image links open in new window/tab		pause_hover             :   0,			// Pause slideshow on hover		keyboard_nav            :   1,			// Keyboard navigation on/off		performance				:	1,			// 0-Normal, 1-Hybrid speed/quality, 2-Optimizes image quality, 3-Optimizes transition speed //  (Only works for Firefox/IE, not Webkit)		image_protect			:	1,			// Disables image dragging and right click with Javascript												   		// Size & Position		fit_always				:	0,			// Image will never exceed browser width or height (Ignores min. dimensions)		fit_landscape			:   0,			// Landscape images will not exceed browser width		fit_portrait         	:   1,			// Portrait images will not exceed browser height  			   		min_width		        :   0,			// Min width allowed (in pixels)		min_height		        :   0,			// Min height allowed (in pixels)		horizontal_center       :   1,			// Horizontally center background		vertical_center         :   1,			// Vertically center background														   		// Components									slide_links				:	1,			// Individual links for each slide			thumb_links				:	1,			// Individual thumb links for each slide		thumbnail_navigation    :   0			// Thumbnail navigation    	    };        $.fn.supersized = function(options){        return this.each(function(){            (new $.supersized(options));        });    };		})(jQuery);



