var busy = false;
var pg_scroll = 0;
var pg_count;

var dots = photos = $$(".photo_gallery img");
var photos = $$(".photo_gallery ul li a");

var galleryTimer;
var galleryTime = 2500; //2.5 secs
var galleryActive = true;

Event.observe(window,"load",function(ev) {
	// Fix nav hovers
	$$("#nav > li").observe("mouseenter",function(ev) { 
		this.addClassName("hover"); 
		if(this.down("ul"))
		{
			this.down("ul").setStyle({ left: "auto" });
		}
	});
	$$("#nav > li").observe("mouseleave",function(ev) { 
		this.removeClassName("hover"); 
		if(this.down("ul"))
		{
			this.down("ul").setStyle({ left: "-9999px" });
		}
	});
	
	// Photo Galleries
	pg_count = $$(".photo_gallery .dots li a").length;
	if (pg_count > 1)
		galleryTimer = setTimeout('rotateImage(1)', galleryTime);
	
	// Stay In Touch Form Validation
	$$("#sit_form").observe("submit",function(ev) {
		errors = 0;
		$$("#sit_form input.required, #sit_form select.required").each(function(el) {
			if (!el.value) {
				errors++;
				el.up("p").addClassName("error");
			} else {
				el.up("p").removeClassName("error");
			}
		});
		$$("#sit_form input.email").each(function(el) {
			if (!checkEmail(el.value)) {
				errors++;
				el.up("p").addClassName("error");
			} else {
				el.up("p").removeClassName("error");
			}
		});
		if(errors) {
			$("error_msg").show();
			ev.stop();
		}
	});
	
	$$(".photo_gallery .dots li a").click(function(ev) {
		ev.stop();
		if(galleryActive)
		{
			galleryActive = false;
			clearTimeout(galleryTimer);
		}
		rotateImage($$(".photo_gallery ul li a").indexOf(this));
	});
	
	$$(".photo_gallery .images ul li a").click(function(ev) {
		ev.stop();
		if(galleryActive)
		{
			galleryActive = false;
			clearTimeout(galleryTimer);
		}
		rotateImage($$(".photo_gallery .images li a").indexOf(this));
	});
	
	$$(".photo_gallery .right, .photo_gallery .left").click(function(ev) {
		ev.stop();
		if (this.hasClassName("right_disabled") || this.hasClassName("left_disabled"))
			return;
		
		if(this.hasClassName("right"))
		{
			pg_scroll -= 250;
			if (((pg_scroll / -50)+5) > pg_count)
				this.addClassName("right_disabled");
			$$(".photo_gallery .left").invoke("removeClassName","left_disabled");
		}
		else if(this.hasClassName("left"))
		{
			pg_scroll += 250;
			if (pg_scroll == 0)
				this.addClassName("left_disabled");
			$$(".photo_gallery .right").invoke("removeClassName","right_disabled");
		}
		
		new Effect.Morph($$(".photo_gallery .images ul")[0], { style: "margin-left: " + pg_scroll + "px;", duration: 0.5, afterFinish: function() { busy = false; } });
	});
});

//email regex
function checkEmail(email) {
	var filter = /^\s*[\w\-\+_]+(\.[\w\-\+_]+)*\@[\w\-\+_]+\.[\w\-\+_]+(\.[\w\-\+_]+)*\s*$/;
	if (filter.test(email)) {
		return true;
	}
	else
	{
		return false;
	}
}

//for auto rotating gallery features
function rotateImage(new_index)
{
	if (busy)
		return;
	busy = true;
	photos = $$(".photo_gallery .lrg_imgs img");
	dots = $$(".photo_gallery .dots li");
	old_index = dots.indexOf($$(".photo_gallery ul li.active")[0]);
	
	dots[old_index].removeClassName("active");
	dots[new_index].addClassName("active");
	
	new Effect.Fade( $$(".photo_gallery .lrg_imgs img")[old_index], { duration: 0.5 });	
	new Effect.Appear( $$(".photo_gallery .lrg_imgs img")[new_index], { duration: 0.5, afterFinish: function() { busy = false; } });
	
	if(galleryActive)
	{
		if(new_index == pg_count-1)
		{
			new_index = -1;
		}
		galleryTimer = setTimeout('rotateImage(' + (new_index+1) + ')', galleryTime);
	}
}