/* trigger when page is ready */
$(document).ready(function (){

	// Large Gallery
	// -------------------------------------------------------------------
	
	// Set up jQuery element variables for efficient scripting
	var largeGallery = $(".large-gallery");
	var largeHoverLinkAndLayer = $('.large-gallery .hover-link,.large-gallery .hover-layer');
	var largeHoverLink = largeGallery.find('.hover-link');
	var largeHoverLayer = largeGallery.find('.hover-layer');
	var largePreviousAndNext = $('.large-gallery .previous,.large-gallery .next');
	var largePrevious = largeGallery.find('.previous');
	var largeNext = largeGallery.find('.next');
	var largeImageBorder = largeGallery.find('.img-border');
	var largeCaption = largeGallery.find('.caption');
	var largePagination = largeGallery.find('.pagination');
	var largePaginationPage = largePagination.find('a');
	
	// Large Gallery Hover
	// -------------------------------------------------------------------
	
	// Set some opacity changes
	largeHoverLinkAndLayer.animate({'opacity':0},0);
	largePreviousAndNext.animate({'opacity':0.50},0);
	
	var hideLink = true;
	
	largePreviousAndNext.hover(function(){
		$(this).stop().animate({'opacity':1},100);
	},function(){
		$(this).stop().animate({'opacity':0.50},100);
	});
	
	largeImageBorder.hover(function(e){
	
		hideLink = false;
		largeHoverLayer.stop().animate({'opacity':1},400);
		
	}, function(){
	
		hideLink = true;
		largeHoverLayer.stop().animate({'opacity':0},150);
		largeHoverLink.stop().animate({'opacity':0},350);
	
	});
	
	// Mouse Following Script
	// -------------------------------------------------------------------
	
	var parentOffset = '';
	var relX = 0;
	var relY = 0;
	
	$('.large-gallery').mousemove(function(e){
        if (hideLink == false){
			var x = e.pageX - this.offsetLeft;
        	var y = e.pageY - this.offsetTop;
			
			if (adminBarActive){
				var posY = y-46;
			} else {
				var posY = y-18;
			}
			var posX=x-20;
			largeHoverLink.css('top', posY).css('left', posX);
			largeHoverLink.stop().animate({'opacity':1}, 500,'easeOutExpo');
		}
		parentOffset = largeImageBorder.offset();
		relX = e.pageX - parentOffset.left;
		relY = e.pageY - parentOffset.top;
			
		if (relX > 102 && relX < 838 && relY > 5 && relY < 470){
			if ($('nav ul li').find('a').hasClass('hover') == false){
				hideLink = false;
				largeHoverLayer.stop().animate({'opacity':1},350);
			} else {
				hideLink = true;
				largeHoverLayer.stop().animate({'opacity':0},150);
				largeHoverLink.stop().animate({'opacity':0},150);
			}
		} else {
			hideLink = true;
			largeHoverLayer.stop().animate({'opacity':0},150);
			largeHoverLink.stop().animate({'opacity':0},150);
		}
    });
    
	
	// Large Gallery Navigation
	// -------------------------------------------------------------------
	
	// Setup the Gallery variables
	var activeImage = 1;
	var tempCounter = 0;
	var largeImagesBlock = $('.large-gallery .images');
	var totalImages = $('.large-gallery .images div').size();
	
	// Assign numbers to each of the gallery items
	$('.large-gallery .images div').each(function(){
		tempCounter++;
		$(this).addClass('img-'+tempCounter);
	});
		
	// Generate the pagination
	tempCounter = 1;
	var pagination = '<a href="#" class="page-1 active">1</a>';
	while (tempCounter < totalImages){
		tempCounter++;
		pagination += '<a href="#" class="page-'+tempCounter+'">'+tempCounter+'</a>';
	}
	
	largePagination.html(pagination);
	
	// Show the first image
	$('.large-gallery .images div.img-1').show();
	
	// Set initial hover link data
	if (clickableSlides == 'yes'){
		var linkTitle = largeImagesBlock.find('div.img-1 span').attr('title');
		var linkURL = largeImagesBlock.find('div.img-1 span').attr('rel');
		var imageCaption = largeImagesBlock.find('div.img-1 img').attr('title');
		largeCaption.hide().html(imageCaption).show();
		largeImageBorder.attr('href',linkURL);
		largeHoverLink.html(linkTitle);
	} else {
		largeHoverLink.hide();
		largeHoverLayer.hide();
		largeImageBorder.replaceWith('<span class="img-border"></span>');
	}
	
	var currentlyAnimating = false;
	
	// Next Click
	largeNext.click(function(){
	
		if (!currentlyAnimating){
	
			// Which image is next?
			var nextImage = parseInt(activeImage) + 1;
			
			// Is this the last image?
			if (nextImage > totalImages){ nextImage = 1; }
			
			// Set hover link data
			var linkTitle = largeImagesBlock.find('div.img-'+nextImage+' span').attr('title');
			var linkURL = largeImagesBlock.find('div.img-'+nextImage+' span').attr('rel');
			var imageCaption = largeImagesBlock.find('div.img-'+nextImage+' img').attr('title');
			largeCaption.fadeOut('fast',function(){
				$(this).html(imageCaption).fadeIn('fast');
			});
			largeImageBorder.attr('href',linkURL);
			largeHoverLink.html(linkTitle);
			
			// Set pagination location
			largePagination.find('a').removeClass('active');
			largePagination.find('a.page-'+nextImage).addClass('active');
			
			// Animate the Gallery
			currentlyAnimating = true;
			if (slideType == 'slide'){
				largeImagesBlock.find('div.img-'+nextImage).show().animate({'left':940},0);
				largeImagesBlock.stop().animate({'left':-940},transitionSpeed,'easeInOutExpo',function(){
					largeImagesBlock.find('div.img-'+activeImage).hide();
					largeImagesBlock.animate({'left':0},0);
					largeImagesBlock.find('div.img-'+nextImage).show().animate({'left':0},0);
					activeImage = nextImage;
					currentlyAnimating = false;
				});
			} else {
				largeImagesBlock.find('div.img-'+nextImage).animate({'left':0,'opacity':0},0);
				largeImagesBlock.find('div.img-'+nextImage).show().animate({'opacity':1},transitionSpeed,'easeInOutQuad');
				largeImagesBlock.find('div.img-'+activeImage).stop().animate({'opacity':0},transitionSpeed,'easeInOutQuad',function(){
					largeImagesBlock.find('div.img-'+activeImage).hide();
					activeImage = nextImage;
					currentlyAnimating = false;
				});
			}
		
		}
		
		return false;
		
	});
	
	// Previous Click
	largePrevious.click(function(){
	
		if (!currentlyAnimating){
	
			// Which image is next?
			var previousImage = parseInt(activeImage) - 1;
			
			// Is this the last image?
			if (previousImage == 0){ previousImage = totalImages; }
			
			// Set hover link data
			var linkTitle = largeImagesBlock.find('div.img-'+previousImage+' span').attr('title');
			var linkURL = largeImagesBlock.find('div.img-'+previousImage+' span').attr('rel');
			var imageCaption = largeImagesBlock.find('div.img-'+previousImage+' img').attr('title');
			largeCaption.fadeOut('fast',function(){
				$(this).html(imageCaption).fadeIn('fast');
			});
			largeImageBorder.attr('href',linkURL);
			largeHoverLink.html(linkTitle);
			
			// Set pagination location
			largePagination.find('a').removeClass('active');
			largePagination.find('a.page-'+previousImage).addClass('active');
			
			// Animate the Gallery
			currentlyAnimating = true;
			if (slideType == 'slide'){
				largeImagesBlock.find('div.img-'+previousImage).show().animate({'left':-940},0);
				largeImagesBlock.stop().animate({'left':940},transitionSpeed,'easeInOutExpo',function(){
					largeImagesBlock.find('div.img-'+activeImage).hide();
					largeImagesBlock.animate({'left':0},0);
					largeImagesBlock.find('div.img-'+previousImage).show().animate({'left':0},0);
					activeImage = previousImage;
					currentlyAnimating = false;
				});
			} else {
				largeImagesBlock.find('div.img-'+previousImage).animate({'left':0,'opacity':0},0);
				largeImagesBlock.find('div.img-'+previousImage).show().animate({'opacity':1},transitionSpeed,'easeInOutQuad');
				largeImagesBlock.find('div.img-'+activeImage).stop().animate({'opacity':0},transitionSpeed,'easeInOutQuad',function(){
					largeImagesBlock.find('div.img-'+activeImage).hide();
					activeImage = previousImage;
					currentlyAnimating = false;
				});
			}
		}
		
		return false;
		
	});
	
	// Large Gallery Pagination
	largePaginationPage.live('click',function(){
	
		if (!currentlyAnimating){
	
			// Which image is next?
			var nextImage = $(this).html();
			
			// Set hover link data
			var linkTitle = largeImagesBlock.find('div.img-'+nextImage+' span').attr('title');
			var linkURL = largeImagesBlock.find('div.img-'+nextImage+' span').attr('rel');
			var imageCaption = largeImagesBlock.find('div.img-'+nextImage+' img').attr('title');
			largeCaption.fadeOut('fast',function(){
				$(this).html(imageCaption).fadeIn('fast');
			});
			largeImageBorder.attr('href',linkURL);
			largeHoverLink.html(linkTitle);
			
			// Set pagination location
			largePagination.find('a').removeClass('active');
			$(this).addClass('active');
			
			// Animate the Gallery
			currentlyAnimating = true;
			if (slideType == 'slide'){
			
				// Set direction
				if (activeImage > nextImage){
					firstLeft = -940;
					secondLeft = 940;
				} else {
					firstLeft = 940;
					secondLeft = -940;
				}
				
				largeImagesBlock.find('div.img-'+nextImage).show().animate({'left':firstLeft},0);
				largeImagesBlock.stop().animate({'left':secondLeft},transitionSpeed,'easeInOutExpo',function(){
					largeImagesBlock.find('div.img-'+activeImage).hide();
					largeImagesBlock.animate({'left':0},0);
					largeImagesBlock.find('div.img-'+nextImage).show().animate({'left':0},0);
					activeImage = nextImage;
					currentlyAnimating = false;
				});
				
			} else {
			
				largeImagesBlock.find('div.img-'+nextImage).animate({'left':0,'opacity':0},0);
				largeImagesBlock.find('div.img-'+nextImage).show().animate({'opacity':1},transitionSpeed,'easeInOutQuad');
				largeImagesBlock.find('div.img-'+activeImage).stop().animate({'opacity':0},transitionSpeed,'easeInOutQuad',function(){
					largeImagesBlock.find('div.img-'+activeImage).hide();
					activeImage = nextImage;
					currentlyAnimating = false;
				});
				
			}
		
		}
		
		return false;
	
	});
	
	// START AUTO-ROTATE CODE
	if (autoCycle == 'yes'){
	
		var timer;
	  	var donext = function (x){ cycleNext(); }
	  	var dotimer = function (){
	    	if(timer != null) {
	      		clearInterval(timer);
	    	}
	  
	    	timer = setInterval(function() {
	      		donext();
	    	}, slideSpeed); // Change the time in between rotations here (in milliseconds)   
	  	}
	  	
	  	dotimer();
	  	
	  	$('.previous','.next','.pagination').hover(function(){
	  		clearInterval(timer);
	  	},function(){
	  		dotimer();
	  	});
		
		function cycleNext(){
			if (!currentlyAnimating){
		
				// Which image is next?
				var nextImage = parseInt(activeImage) + 1;
				
				// Is this the last image?
				if (nextImage > totalImages){ nextImage = 1; }
				
				// Set hover link data
				var linkTitle = largeImagesBlock.find('div.img-'+nextImage+' span').attr('title');
				var linkURL = largeImagesBlock.find('div.img-'+nextImage+' span').attr('rel');
				var imageCaption = largeImagesBlock.find('div.img-'+nextImage+' img').attr('title');
				largeCaption.fadeOut('fast',function(){
					$(this).html(imageCaption).fadeIn('fast');
				});
				largeImageBorder.attr('href',linkURL);
				largeHoverLink.html(linkTitle);
				
				// Set pagination location
				largePagination.find('a').removeClass('active');
				largePagination.find('a.page-'+nextImage).addClass('active');
				
				// Animate the Gallery
				currentlyAnimating = true;
				if (slideType == 'slide'){
					largeImagesBlock.find('div.img-'+nextImage).show().animate({'left':940},0);
					largeImagesBlock.stop().animate({'left':-940},transitionSpeed,'easeInOutExpo',function(){
						largeImagesBlock.find('div.img-'+activeImage).hide();
						largeImagesBlock.animate({'left':0},0);
						largeImagesBlock.find('div.img-'+nextImage).show().animate({'left':0},0);
						activeImage = nextImage;
						currentlyAnimating = false;
					});
				} else {
					largeImagesBlock.find('div.img-'+nextImage).animate({'left':0,'opacity':0},0);
					largeImagesBlock.find('div.img-'+nextImage).show().animate({'opacity':1},transitionSpeed,'easeInOutQuad');
					largeImagesBlock.find('div.img-'+activeImage).stop().animate({'opacity':0},transitionSpeed,'easeInOutQuad',function(){
						largeImagesBlock.find('div.img-'+activeImage).hide();
						activeImage = nextImage;
						currentlyAnimating = false;
					});
				}
			
			}
		}
	
	}
	// END AUTO-ROTATE CODE

});
