jQuery(function(){

var mediaDump = jQuery('<div></div>').appendTo(document.body);
function generateEmbedCode(src) {
	var shim = jQuery('<div></div>').appendTo(mediaDump);
	shim.media({
		src: src,
		height: 20,
		flashvars: {
			autostart: 'true',
			type: 'sound'
		}
	});
	code = mediaDump.html();
	mediaDump.html('');
	return code;
}

// HOME PAGE TABS --------------------------------------------------------------------
var tabs = jQuery('#tabsContainer .tab');
var tabLinks = jQuery('#tabList a');
var defaultTab = 'photosTab';
var currentTab = '';

function showTab(id) {
	if (id == currentTab) return;
	tabs.hide();
	jQuery('#' + id).show();
	tabLinks.removeClass('active');
	jQuery('#' + id + 'Link a').addClass('active');
	currentTab = id;
}

tabLinks.click(function(){
	showTab(jQuery(this).attr('href').substr(1));
	return false;
});

showTab(defaultTab);

// PHOTO TABS -------------------------------------------------------------------------
var photosTab = jQuery('#photosTab');
var photoLinks = jQuery('#photoLinks');
for (var i = 0, l = photosList.length; i < l; i++) {
	photoLinks.append('<a href="#" rel="' + i + '" title="' + photosList[i].title + ': ' + photosList[i].description + '">' + (i + 1) + '</a>');
}
var photoLinkEls = jQuery('#photoLinks a');
var currentPhoto;

function showPhoto(id) {
	//console.log('showing photo ' + id);
	if (id == currentPhoto) return;
	//alert(id);
	var thisPhoto = photosList[id];
	photosTab
		.css('background-image', "url(" + thisPhoto.src + ")")
		.attr('title', thisPhoto.title + ': ' + thisPhoto.description);
	photoLinkEls.removeClass('active');
	jQuery('a[rel="' + id + '"]').addClass('active');
	currentPhoto = id;
}

photoLinkEls.click(function(){
	showPhoto(parseInt(jQuery(this).attr('rel')));
	return false;
});

showPhoto(0);

// AUDIO TAB ----------------------------------------------------------------------------

var audioLinks = jQuery('#audioTab ul li a');
audioLinks.click(function(){
	var tgt = jQuery(this).attr('href');
	//alert(generateEmbedCode(tgt));
	jQuery.facebox(generateEmbedCode(tgt));
	return false;
});

// NEWSLETTER SIGNUP FORM ---------------------------------------------------------------

var signupInput = jQuery('#signupInput');
var signupSubmit = jQuery('#signupSubmit');
var defaultValue = signupInput.val();

signupInput.focus(function(){
	if (signupInput.val() == defaultValue) {
		signupInput.val('');
	}
}).blur(function(){
	if (signupInput.val() == '') {
		signupInput.val(defaultValue);
	}
});

signupSubmit.val('');

// REGION MAP ----------------------------------------------------------------------------

var mapContainer = jQuery('#mapContainer');
var regionLinks = jQuery('#StateRegionMap area');
var DCOfficeLink = jQuery('#DCOfficeLink');
var regions = jQuery('#regionOffices .region');
var defaultRegion = 'region_Washington';
var currentHighlightedRegion;
var currentSelectedRegion;

function setRegionHighlight(id) {
	if (id == currentHighlightedRegion) return;
	mapContainer.addClass(id);
	currentHighlightedRegion = id;
}
function removeRegionHighlight(id) {
	mapContainer.removeClass(currentHighlightedRegion);
	currentHighlightedRegion = "";
}
function setRegionSelection(id) {
	if (id == currentSelectedRegion) return;
	jQuery('#' + id).addClass('visible');
	currentSelectedRegion = id;
}
function removeRegionSelection() {
	jQuery('#' + currentSelectedRegion).removeClass('visible');
	currentSelectedRegion = "";
}

regionLinks.bind('mouseover', function(){
	var tgt = jQuery(this).attr('href').substr(1);
	setRegionHighlight(tgt);
}).bind('mouseout', function(){
	removeRegionHighlight();
}).click(function(){
	var tgt = jQuery(this).attr('href').substr(1);
	removeRegionSelection();
	setRegionSelection(tgt);
	return false;
});
DCOfficeLink.click(function(){
	var tgt = jQuery(this).attr('href').substr(1);
	removeRegionSelection();
	setRegionSelection(tgt);	
	return false;
});

setRegionHighlight(defaultRegion);
setRegionSelection(defaultRegion);

});