$('html').addClass('js'); // Prevents flash of content

$(document).ready(function() {
	// $('p').widont();
	
	$('.exhibition-listing h4 a').each(function() {
		var url = $(this).attr('href');
		$(this).parents('div.exhibition-listing').click(function() {
			window.location = url;
		}).hover(function() {
			$(this).addClass('hover');
		}, function() {
			$(this).removeClass('hover');
		});
	});
	
	if ($('a#main-event-images img').length > 1) {
		$('a#main-event-images img').hide();
		$(window).load(function() {
			$('a#main-event-images img:first').fadeIn('fast', function() {
				$('a#main-event-images').cycle({timeout: 5000});
			});
		});
	};
	
	if ($('body').hasClass('parent-pageid-16'))
	{
		var div_height = $('body.parent-pageid-16 #artist-menu').height();
		var last_img_height = $('body.parent-pageid-16 #artist-menu ul li:last-child a img').height();
		$('body.parent-pageid-16 #artist-menu').height(div_height + last_img_height + 50);
	};
	
	/*
	 *  Artist Menu
	 */

	$('ul#represented')
		.append('<li class="artist-menu-pager"><a href="#">also featured &gt;</a></li>')
		.find('li.artist-menu-pager a')
		.click(function(e) {
 			e.preventDefault();
			$(this).closest('div').animate({'left': -($(this).width())}, 'slow');
			if ($('body').hasClass('parent-pageid-40')) {
				$('#artist-content').fadeOut('fast');
			};
			if ($('body').hasClass('parent-pageid-44')) {
				$('#artist-content').fadeIn('fast');
			};
			return false;
		});
	$('ul#also-featured')
		.append('<li class="artist-menu-pager"><a href="#">&lt; gallery artists</a></li>')
		.find('li.artist-menu-pager a')
		.click(function(e) {
			e.preventDefault();
			$(this).closest('div').animate({'left': 0}, 'slow');
			if ($('body').hasClass('parent-pageid-40')) {
				$('#artist-content').fadeIn('fast');
			};
			if ($('body').hasClass('parent-pageid-44')) {
				$('#artist-content').fadeOut('fast');
			};
			return false;
		});
	$('body.page-template-artist-php #artist-menu').wrapInner('<div />').height(($('ul#represented').height() > $('ul#also-featured').height()) ?$('ul#represented').height() : $('ul#also-featured').height());
	if ($('body').hasClass('pageid-44') || $('body').hasClass('parent-pageid-44')) {
		var menu_width = $('ul#also-featured').width();
		$('div#artist-menu div').css('left',-(menu_width));
	};
		
	/*
	 *  Slideshow
	 */
	
	var image_list, page_prefix;

	var image_count	 = $('ul.slideshow li img').length;
	$('ul.slideshow li img').error(function() {
		$(this).parents('li').remove();
		image_count--;
	});
	if ($('ul.slideshow li img').length > 1) {
		$('#content div.description').append('<div id="image-thumbs"></div>');
		var thumbnails_width = $('div#image-thumbs').width();
		var thumbnails_panels = Math.ceil(image_count/12);
		$('div#image-thumbs').append('<ul />');
		// create panels
		$(window).load(function() {
			$('ul.slideshow').cycle({
				fx: 'fade',
				speed: 'fast',
				timeout: 0,
				pager: 'div#image-thumbs',
				pagerAnchorBuilder: function(index, slide) {
					var this_image_src = $(slide).find('img').attr('src');
					return '<a href="#"><img src="' + this_image_src + '" width="50" height="50" /></a>';
				},
				before: function(currSlideElement, nextSlideElement, options, forwardFlag) {
					var fullsize_img = $(nextSlideElement).find('a.image-link').attr('href');
					if (fullsize_img) {
						var this_height = $(nextSlideElement).height();
						var img = new Image();
						$(nextSlideElement).find('*').css('display','none');
						$(img)
							.load(function() {
								var thisimg = this;
								setTimeout(function() {
									$(nextSlideElement).find('a.image-link').remove();
									$(thisimg).css('display','none');
									$(nextSlideElement).prepend(thisimg);
									$(thisimg).fadeIn('fast', function() {
										$(nextSlideElement).find('*').fadeIn('fast');
									});
									var img_height = $(nextSlideElement).find('img').height();
									var new_height = this_height+img_height;
									if ($('ul.slideshow').height() < new_height) {
										$('ul.slideshow').height(new_height);
									};
								}, 250);
							})
						    .attr('src', fullsize_img);
					};
				},
				pagerClick: function(zeroBasedSlideIndex, slideElement) {
					// these two lines are here because the new jQuery Cycle Plug-in screwed up what element gets the 'activeSlide' class.
					$('div#image-thumbs a').removeClass('activeSlide');
					$('div#image-thumbs a:eq('+zeroBasedSlideIndex+')').addClass('activeSlide');
					if ($('#full-content-reveal').css('opacity') != 0) {
						$('#full-content-reveal').fadeOut('fast', function() {
							$('ul.slideshow').fadeIn('fast');
							$('div.full-content p').animate({opacity: 1}, 'slow');
							window.location = "#top";
						});
					};
				}
			});
			// var thumbnails_width = $('div#image-thumbs').width();
			// var thumbnails_panels = Math.ceil(image_count/12);
			for (var i=1; i <= thumbnails_panels; i++) {
				$('div#image-thumbs ul').append('<li />');
			};
			for (var i = 0; i < image_count; i++) {
				$('div#image-thumbs a:eq('+i+')').appendTo('div#image-thumbs ul li:eq('+Math.floor(i/12)+')');
			};
			if (image_count > 12) {
				$('div#image-thumbs').after('<p class="pager more"></p>');
				$('div.description p.pager').append('<a class="pager-left hidden" href="#">&lt;</a> <a class="pager-right" href="#">&gt;</a>');
				$('div.description p.pager a.pager-left').click(function(e) {
					e.preventDefault();
					var current_location = $('div#image-thumbs ul').position();
					// console.log(current_location.left);
					if (current_location.left !== 0) {
						$('div.description p.pager a.pager-right').removeClass('hidden');
						$('div#image-thumbs ul').animate({'left':current_location.left+thumbnails_width}, 'slow', function() {
							if (current_location.left+thumbnails_width === 0) {
								$('div.description p.pager a.pager-left').addClass('hidden');
							} else {
								$('div.description p.pager a.pager-left').removeClass('hidden');
							};
						});
					};
					return false;
				});					
				$('div.description p.pager a.pager-right').click(function(e) {
					e.preventDefault();
					var current_location = $('div#image-thumbs ul').position();
					// console.log(current_location.left);
					if (current_location.left != -((thumbnails_panels-1)*thumbnails_width)) {
						$('div#image-thumbs ul').animate({'left':current_location.left-thumbnails_width}, 'slow', function() {
							$('div.description p.pager a.pager-left').removeClass('hidden');
							if (current_location.left-thumbnails_width == -((thumbnails_panels-1)*thumbnails_width)) {
								$('div.description p.pager a.pager-right').addClass('hidden');
							} else {
								$('div.description p.pager a.pager-right').removeClass('hidden');
							};
						});
					};
					return false;
				});
			};
			$('div#image-thumbs a:first').addClass('activeSlide'); // screwed up jQuery Cycle Plugin
			$('div#image-thumbs').fadeIn('slow', function() {
				$('div.description p.pager').fadeIn('fast');
			});
		});
	} else {
		if ($('ul.slideshow li:first-child a').length > 0) {
			var fullsize_img = $('ul.slideshow li:first-child a').attr('href');
			// var this_height = $(nextSlideElement).height();
			var img = new Image();
			$(img)
				.load(function() {
					$('ul.slideshow li:first-child a').remove();
					$('ul.slideshow li:first-child').prepend(this).fadeIn();
				})
			    .attr('src', fullsize_img);
		} else { // edition
			$('ul.slideshow li:first-child img').load(function() {
				$('ul.slideshow li:first-child').fadeIn();
			});
		};
	}
	
	/*
	 *  Long Content
	 */
	
	$('ul.slideshow').before('<div id="full-content-reveal"></div>');
	$('#full-content-reveal')
		.html($('div.full-content').html())
		.find('p:last')
		.append(' &nbsp;&nbsp;<a href="#" class="full-content-link-hide">close &times;</a>')
		.find('a.full-content-link-hide')
		.click(function(e) {
			e.preventDefault();
			$('#full-content-reveal').fadeOut('fast', function() {
				$('ul.slideshow').fadeIn('fast');
				$('div.full-content p').animate({opacity: 1}, 'slow');
				window.location = "#top";
			});
			return false;
		});

	var $first_p = $('div.full-content p:first');
	$first_p
		.jTruncate({length:200})
		.append(' <a href="#" class="full-content-link-reveal">more&nbsp;+</a>')
		.show()
		.find('a.full-content-link-reveal')
		.click(function(e) {
			e.preventDefault();
			$('div.full-content p').animate({opacity: 0.2}, 'slow');
			$('ul.slideshow').fadeOut('fast', function() {
				$('#full-content-reveal').fadeIn('fast');
			});
			return false;
		});
	
	
	$('div.full-content p:not(:first)').remove();
	
	if ($('div#content').hasClass('readmore')) {
		$('a.full-content-link-reveal').click();
	};
	
	/*
	 *	Pager for Exhibition List
	 */
	
	
	var archive_count = $('#exhibition-menu div.archive div.exhibition-listing').length;
	var archive_panel_count = 5;
	if (archive_count > archive_panel_count) {
		// move archive listings into panels
		var archive_panels = Math.ceil(archive_count/archive_panel_count);
		$('#exhibition-menu div.archive')
			.append('<ul /><p class="pager more" style="text-align: left !important;"><a class="pager-left" title="Older Exhibitions" href="#">&lt;</a> <a class="pager-right" title="Newer Exhibitions" href="#">&gt;</a></p>');
		for (var i=1; i <= archive_panels; i++) {
			$('#exhibition-menu div.archive ul').append('<li />');
		};
		var lastpanel = archive_panels - 1;
		for (var i = 0; i < archive_count; i++) {
			var temppanel = Math.floor(i/archive_panel_count);
			var thispanel = lastpanel - temppanel;
			$('#exhibition-menu div.archive div.exhibition-listing:eq(0)').appendTo('#exhibition-menu div.archive ul li:eq('+thispanel+')');
			
			//wait until it's done because Firefox is stupid
			
			if (i == archive_count - 1) {
				var archive_panel_current = $('#exhibition-menu div.archive div.current-listing');
				if (archive_panel_current.length > 0) {
					var archive_panel_active = archive_panel_current.parent().prevAll().length; // http://arlo.me/x/2v
				} else {
					var archive_panel_active = lastpanel;
				};
				$('#exhibition-menu div.archive ul').cycle({
					fx: 'scrollHorz',
					speed: 'slow',
					timeout: 0,
					startingSlide: archive_panel_active,
					prev: '#exhibition-menu p.pager a.pager-left',
					next: '#exhibition-menu p.pager a.pager-right',
					after: function(curr, next, opts) {
					    var index = opts.currSlide;
					    $('#exhibition-menu p.pager a.pager-left')[index == 0 ? 'addClass' : 'removeClass']('hidden');
					    $('#exhibition-menu p.pager a.pager-right')[index == opts.slideCount - 1 ? 'addClass' : 'removeClass']('hidden');
					}
				});
				$('#exhibition-menu p.pager').fadeIn('fast');
			};
		};
	};

});

