$.extend({
	flickrVisible : 0,
	flickrChunk : 5,
	flickrThumbs : 0,
	flickrTitle: 'Gallery'
});

var flickrKey = '76988f40461c2b4ad1cb044d32c69517';
var flickrSecret = 'c58ce14c396acdd9';

// common flickr configuration
var flickrConfig = {
  api_key: '76988f40461c2b4ad1cb044d32c69517',
  thumbnail_size: 'sq',
  link_to_size: 'm'
}


function prepSubNav() {
	$('#topNav li').hover(
		function(){
			$(this).addClass('over').siblings('ul.subNav').show();
		}
		,
		function(){
			$(this).removeClass('over').siblings('ul.subNav').hide();
		}
	);
}

function prepImgSwap(){
	$('.imgSwapBlock img.swapImg:eq(0)').css({
		'position' : 'absolute',
		'right' : '20px',
		'top' : '12px',
		'z-index' : '0'
	}).show();
}

function imgSwap(){
	var theImg = '';
	var theTarget = '';
	
	theTarget = $(this).closest('.imgSwapBlock');
	theImg = $(this).siblings('img.swapImg:eq(0)');

	theImg.hide();

	$(this).hover(
		function(){
			$(this).closest('.imgSwapBlock').find('img.swapImg').fadeOut();
			theImg.css({
				'position' : 'absolute',
				'right' : '20px',
				'top' : '12px',
				'z-index' : '0'
			}).fadeIn('fast');
		}
		,
		function(){
			theImg.fadeOut('fast',prepImgSwap);
		}
	);
}

function prepDropdown() {
	$('#dropdownNav ul').hide();
	$('#dropdownNav h2').hover(
		function(){
			$('#dropdownNav ul').show();
			$('#dropdownNav').css('margin-bottom','0');
		}
		,
		function(){
			$('#dropdownNav ul').hide();
			$('#dropdownNav').css('margin-bottom','4em');
		}
	);

	$('#dropdownNav ul').hover(
		function(){
			$(this).show();
			$('#dropdownNav').css('margin-bottom','0');
		}
		,
		function(){
			$(this).hide();
			$('#dropdownNav').css('margin-bottom','4em');
		}
	);

}

function prepLightbox() {
	$('#flickrPrev').live('click',flickrPrev);
	$('#flickrNext').live('click',flickrNext);
	$('.resultsTable a').live('click',flickrLink);
	$('ul.flickrPics li a').live('click',flickrImg);
}

function flickrLink(){
	urlRegex = /https?:\/\/www\.flickr\.com\/photos\/([A-Za-z0-9@]*)\/sets\/([0-9]*)/;
	regexMatch = this.href.match(urlRegex);
	jQuery.flickrTitle = $(this).text();
	if(regexMatch != '') {
		flickrUser = regexMatch[1];
		flickrPhotoset = regexMatch[2];
		jQuery.flickrFinished = false;

		$("#faradayUE").append('<div id="flickrBox" class="hidden"><div class="viewer"></div><div id="photoset"><div id="flickrPrev"></div><div id="photos"></div><div id="flickrThumbnails"></div><div id="flickrNext"></div></div></div>');

		$('#flickrPrev').append('<img src="assets/images/flickrbox-prev.gif" alt="Previous" />');
		$('#flickrNext').append('<img src="assets/images/flickrbox-next.gif" alt="Next" />');

		$('#flickrThumbnails').html('').flickr(flickrConfig).photosetsGetPhotos({photoset_id: flickrPhotoset});

		flickrBox();
	}
	$(this).blur();
	return false;
}

function flickrBox(){
	$('#viewer').html('<img src="" alt="" id="viewerImg" />');
	checkFlickrFinished();
}

function checkFlickrFinished() {
	if(jQuery.flickrFinished === true) {
		$('.viewer').html('<img src="' + $('ul.flickrPics li:first a:first').attr('href') + '" alt="' + $('ul.flickrPics li:first a:first').text() + '" id="viewerImg" />');

		jQuery.flickrThumbs = $('ul.flickrPics li').size();

		theCode = $('#flickrBox').html();
		$('#flickrBox').remove();

		Shadowbox.open({
	        content:    theCode,
	        player:     "html",
	        title:      jQuery.flickrTitle,
	        height:     471,
	        width:      501
	    });

		// select one or more elements to be scrollable-enabled 
		$("#sb-container #photoset").scrollable({ size: 5 });

	} else {
		setTimeout(function(){checkFlickrFinished();}, 100);
	}
}


function flickrImg(){
	var img = new Image();
	$('#sb-container .viewer #viewerImg').hide();
	$(img).load(function(){
		$(this).hide();
		$('#sb-container .viewer #viewerImg').replaceWith(this);
		if($(this).height() > $('#sb-container .viewer').height()){
			ratio = $(this).width() / $(this).height();
			$(this).height($('#sb-container .viewer').height());
			$(this).width($('#sb-container .viewer').height() * ratio);
		}
		$(this).fadeIn();
	})
	// if there was an error loading the image, react accordingly
	.error(function () {
		// notify the user that the image could not be loaded
	})
	// *finally*, set the src attribute of the new image to our image
	.attr({
		'src': $(this).attr('href'),
		'alt': $(this).attr('title'),
		'id': 'viewerImg'
	});
	
	$(this).blur();

	return false;
}

function flickrPrev() {
	if(jQuery.flickrVisible == 0) {
		return false;
	} else {
		jQuery.flickrVisible = Number(jQuery.flickrVisible - 5);
		if(jQuery.flickrVisible < 0) {
			jQuery.flickrVisible = 0;
		}
		flickrStart = Number(jQuery.flickrVisible);
		flickrEnd = Number(jQuery.flickrVisible + jQuery.flickrChunk);

		$('#sb-container ul.flickrPics li').hide();
		$('#sb-container ul.flickrPics li').slice(flickrStart,flickrEnd).show();
	}
	$(this).blur();
}

function flickrNext() {
	if(jQuery.flickrVisible + jQuery.flickrChunk >= jQuery.flickrThumbs) {
		return false;
	} else {
		jQuery.flickrVisible = Number(jQuery.flickrVisible + 5);
		if(jQuery.flickrVisible > jQuery.flickrThumbs) {
			jQuery.flickrVisible = jQuery.flickrThumbs;
		}

		flickrStart = Number(jQuery.flickrVisible);
		flickrEnd = Number(jQuery.flickrVisible + jQuery.flickrChunk);

		$('#sb-container ul.flickrPics li').hide();
		$('#sb-container ul.flickrPics li').slice(flickrStart,flickrEnd).show();
	}
	$(this).blur();
}

$(function() {         
	// initialize scrollable  
	$("div.scrollable").scrollable({     
		size: 2,
		next: 'div.next', 
		prev: 'div.prev'
	}); 

	if($(".imgSwap").size() > 0) {
		$(".imgSwap").each(imgSwap);
		prepImgSwap();
	}

	if($("#dropdownNav ul").size() > 0) {
		prepDropdown();
	}
	
	prepSubNav();
	prepLightbox();

});

