var DAVEBORINS = DAVEBORINS || {};

DAVEBORINS.global = {
	makeScroll: {
		init: function () {
			$('.scroll').click(function(event) {
				event.preventDefault();

				// get the full url
				var full_url = this.href;

				// split the url by # and get the anchor target name
				var parts = full_url.split("#");
				var trgt = parts[1];

				// get the top offset of the target anchor
				var target_offset = $("#" + trgt).offset();
				var target_top = target_offset.top;
				
				
				
				if ( $(this).hasClass('musicAnchor') ) {
					target_top = target_offset.top - 140;
				} else {
					target_top = target_offset.top - 80;
				}
				
				// goto that anchor by setting the body scroll top to anchor top
				$('html, body').animate({scrollTop: target_top}, 300);
			});
		}
	},
	
	scrollEvents: {
		init: function(){
			$body = $('html,body').attr('scrollTop',0);
			
			function clearSelectedState() {
				$('#navigation li').removeClass('selected');
			}
			
			function on_scroll(e){
				var pos = ($.browser.safari) ? $('body').attr('scrollTop') : $body.attr('scrollTop');
				
				var socialPosition = $('#socialContentWrapper').offset().top - 350;
				var aboutPosition = $('#aboutContentWrapper').offset().top - 350;
				var eventsPosition = $('#eventsContentWrapper').offset().top - 350;
				var musicPosition = $('#musicContentWrapper').offset().top - 350;
				var mediaPosition = $('#mediaContentWrapper').offset().top - 350;
				var contactPosition = $('#contactContentWrapper').offset().top - 700;
				
				if (pos > aboutPosition && pos < musicPosition) {
					clearSelectedState();
					$('#navigation li#aboutLink').addClass('selected');
				}
				if (pos > musicPosition && pos < eventsPosition) {
					clearSelectedState();
					$('#navigation li#musicLink').addClass('selected');
				}
				if (pos > eventsPosition && pos < mediaPosition) {
					clearSelectedState();
					$('#navigation li#eventsLink').addClass('selected');
				}
				if (pos > mediaPosition && pos < socialPosition) {
					clearSelectedState();
					$('#navigation li#mediaLink').addClass('selected');
				}
				if (pos > socialPosition && pos < contactPosition) {
					clearSelectedState();
					$('#navigation li#socialLink').addClass('selected');
				}
				if (pos > contactPosition) {
					clearSelectedState();
					$('#navigation li#contactLink').addClass('selected');
				}
			}
			
			$(window).bind('scroll',on_scroll);
		}
	},
	
	getTweets: {
		init: function() {
			$('#tweets').getTwitter({
				userName: "daveborins",
				numTweets: 6,
				loaderText: "Loading tweets...",
				slideIn: false,
				showHeading: false,
				showProfileLink: false
			});
		}
	},
	
	getFlickrFeed: {
		init: function() {
			$('#flickrThumbs').jflickrfeed({
				limit: 15,
				qstrings: {
					id: '62421727@N03'
				},
				itemTemplate: 
				'<li>' +
					'<a href="{{image_b}}" rel="flickrGroup"><img src="{{image_s}}" alt="{{title}}" /></a>' +
				'</li>'
			}, function(data) {
				$('#flickrThumbs').removeClass('loading');
				$('#flickrThumbs li a').colorbox({
					maxWidth : 700,
					maxHeight: 700
				});
			});
		}
	}, 
	
	getFacebookAlbums: {
		init: function() {
			$.ajax({
				url: "http://graph.facebook.com/20447603918/albums&callback=?",
				cache: false, 
				dataType: "json",
				success: function( data ) {
					$.each(data.data, function(i,item){
						$('<li class="clearfix"><a href="' + item.link + '" class="clearfix" target="_blank">' + '<img src="https://graph.facebook.com/' + item.cover_photo + '/picture?type=album" />' + item.name + '</a></li>').appendTo('#facebookAlbums');
						if ( i == 5 ) {
							return false;
						}
						$('#facebookAlbums').removeClass('loading');
					});
				}
			});
		}
	},
	
	validateForm: {
		init: function() {
			$('#subForm').validate();
		}	
	}, 
	
	getLatestYoutubeVideo: {
		init: function() {
			$.ajax({
				url: "http://gdata.youtube.com/feeds/api/users/daveborins/uploads?&v=2&max-results=6&alt=jsonc&callback=?",
				cache: false, 
				dataType: "json",
				success: function( data ) {
					$.each(data.data.items, function(i,item){
						$('<li class="clearfix"><a href="http://www.youtube.com/embed/' + item.id + '?rel=0" class="clearfix" rel="youtubeGroup">' + '<img src="' + item.thumbnail.sqDefault + '" />' + item.title + '</a></li>').appendTo('#latestYoutubeVideos');
						if ( i == 6 ) return false;
						$('#latestYoutubeVideos').removeClass('loading');
					});
					
					$('#latestYoutubeVideos li a').colorbox({
						iframe:true, 
						innerWidth:640, 
						innerHeight:390, 
						current: "Video {current} of {total}"
					});
				}
			});
		}
	}
	
};

$(window).load(function(){
	
	DAVEBORINS.global.makeScroll.init();
	
	DAVEBORINS.global.getTweets.init();
	
	DAVEBORINS.global.getFlickrFeed.init();
	
	DAVEBORINS.global.getFacebookAlbums.init();
	
	DAVEBORINS.global.scrollEvents.init();
	
	DAVEBORINS.global.validateForm.init();
	
	DAVEBORINS.global.getLatestYoutubeVideo.init();
	
	// launch full bio in colorbox window
	$('a#launchFullBio').colorbox({width:"50%", inline:true, href:"#fullBioWrap"});
	
	// alt row colors on track listings
	$('.album ol.tracks li:even').addClass('even');
	
	// alt row colors on event table
	$('#eventsContent table tr:even').addClass('even');
	
	// set initial nav selected item for about link
	$('#navigation li#aboutLink').addClass('selected');

});

