$(document).ready(function(){
	// Kill errors in IE
	if(!window.console){window.console={log:function(){return false}}}

	$gallery = {
		active: false,
		slides: ["zero"],
		timer: false,
		currentSlide: 0,
		totalSlides: 0,
		crossFade: false,
		userControlled: false,
		init: function(slideObject){
			slideObject.each(function(i,obj){
				if( !$gallery.slides ){
					$gallery.slides.push($(obj));
				} else {
					$gallery.slides.push($(obj).hide());
				}
			});
			$gallery.slides[1].show();
			$gallery.currentSlide = 1;
			$gallery.totalSlides = $gallery.slides.length - 1;
			$gallery.active = true;
			console.log("Initializing gallery, user-controlled: "+$gallery.userControlled)
		},
		next: function(){
			return $gallery.select("next");
		},
		select: function(slideNum){
			var oldCurrentSlide = $gallery.currentSlide;

			if( slideNum == "next" )
				if( $gallery.currentSlide + 1 > $gallery.totalSlides )
					slideNum = 1;
				else
					slideNum = $gallery.currentSlide + 1

			if( slideNum == $gallery.currentSlide ){
				console.log("Already on slide "+slideNum);
				return false;
			}
			if( typeof($gallery.slides[slideNum]) != "undefined" ){
				$gallery.currentSlide = slideNum;
			} else {
				console.log("Slide "+slideNum+" doesn't exist.");
				return false;
			}

			console.log(oldCurrentSlide+" => "+$gallery.currentSlide+" - total: "+$gallery.totalSlides);

			if( $gallery.active ){
				
				$gallery.active = false;
				if( $gallery.crossFade ){
					$gallery.slides[$gallery.currentSlide].css({zIndex:2}).show();
					$gallery.slides[oldCurrentSlide].css({zIndex:100}).fadeOut(300,function(){
						$gallery.slides[oldCurrentSlide].css({zIndex:2});
						$gallery.active = true;
					}).trigger("slideNext",{"currentSlide":$gallery.currentSlide});
				} else {
					$gallery.slides[oldCurrentSlide].fadeOut(300,function(){
						$gallery.slides[$gallery.currentSlide].fadeIn(300,function(){
							$gallery.active = true;
						});
					});
				}
			} else {
				console.log("Slideshow inactive. Hold your horses.");
			}
		}
	}


	// Automated slideshow
	var $s = $("#slideshow>ul>li");
	var timer = false;
	if( $s.length ){
		$gallery.init($s);
		$gallery.timer = setInterval($gallery.next,5000);
	} else {
		// User-controlled gallery
		$s = $("#gallery>ul>li");
		if( $s.length ){
			var $nav = $("<ul id='slideshow-nav'></ul>")
			$.each($s,function(i){
				$nav.append(
					$("<li id='switch-to-"+(i+1)+"'><a href='#'>Switch to slide "+(i+1)+"</a></li>").click(function(){
						$gallery.select(i+1);
						clearInterval($gallery.timer);
						$gallery.timer = setInterval($gallery.next,5000);
						return false;
					})
				);
				$nav.find("li:first").addClass("current");
				$("#gallery").append($nav).bind("slideNext",function(e,data){
					$nav.find("li#switch-to-"+data.currentSlide).addClass("current").siblings().removeClass("current");
				});
			})
			$gallery.userControlled = true;
			$gallery.crossFade = true;
			$gallery.init($s);
			$gallery.timer = setInterval($gallery.next,5000);
		}
	}

	var $a = $("#amenities-header a");
	if( $a.length )
		$a.hover(function(){
			// $(this).siblings().stop(true, true).animate({opacity:.7});
			$(this).children("span").stop(true, true).fadeIn(300);
		},function(){
			// $(this).siblings().animate({opacity:1});
			$(this).children("span").fadeOut(200);
		}).click(function(){
			return false;
		});
});
