var FacebookWall = function(useruri, feeduri, parentsel, tmplsel, num) {
	var user = null;
	var data = null;
	var MONTHS = ['Jan',
		'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];

	var thenRender = function() {
		if (user == null || data == null) return;

		for (var i=0; i<data.length; i++) {
			data[i].owner = user;
			var created_time = data[i].created_time;
			created_time = created_time.substring(0,created_time.indexOf('+'));
			created_time = created_time.replace('T', ' ').replace(/-/g, '/');
			var d = new Date(created_time);
			var nice_date = MONTHS[d.getMonth()]+' '+d.getDate();
			if (d.getHours()>12) {
				var nice_time = (d.getHours()-12)+':'+d.getMinutes()+'pm';
			} else if (d.getHours() == 12) {
				var nice_time = '12:'+d.getMinutes()+'pm';
			} else if (d.getHours() > 0) {
				var nice_time = (d.getHours())+':'+d.getMinutes()+'am';
			} else {
				var nice_time = '12:'+d.getMinutes()+'am';
			}
			data[i].nice_datetime = nice_date + ' at ' + nice_time;

			var nice_message = data[i].message ? data[i].message : data[i].description;
			var words = nice_message.split(' ');
			for (var j=0; j<words.length; j++) {
				var w = words[j];
				if (w.match(/^[a-z]*:\/\/[^ ]*$/)) {
					words[j] = '<a href="'+w+'">link</a>';
				}
			}
			if (words.length>20) {
				data[i].nice_message = words.slice(0,20).join(' ')+'…';
			} else {
				data[i].nice_message = words.join(' ');
			}

			data[i].nice_img = 'http://graph.facebook.com/'+data[i].from.id+'/picture';

		}

		var r = $.tmpl( $(tmplsel), data).appendTo(parentsel);
	};

	FB.api(useruri, function(resp) {
		user = resp;
		thenRender();
	});

	FB.api(feeduri, function(resp) {
		data = resp.data.slice(0,num);
		thenRender();
	});
};

$(function() {
	/* ---------------------------------------------------------------------- */
	/* Tooltips for youtube videos
	/* ---------------------------------------------------------------------- */
	
	$('#youtube_tab_content img[title]').tooltip({
		effect: "fade",
		layout: '<span/>'
	});
	
	
	
	/* ---------------------------------------------------------------------- */
	/* Featured photos
	/* ---------------------------------------------------------------------- */
	
	$('.image_gallery').nivoSlider({
		effect:'sliceUpDown', //Specify sets like: 'fold,fade,sliceDown'
		slices:15,
		animSpeed:500,
		pauseTime:5000,
		startSlide:0, //Set starting Slide (0 index)
		directionNav:false, //Next & Prev
		directionNavHide:true, //Only show on hover
		controlNav:true, //1,2,3...
		controlNavThumbs:true, //Use thumbnails for Control Nav
	  	controlNavThumbsFromRel:false, //Use image rel for thumbs
		controlNavThumbsSearch: /\.(\w+)$/, //Replace this with...
		controlNavThumbsReplace: '_thumb.$1', //...this in thumb Image src
		keyboardNav:true, //Use left & right arrows
		pauseOnHover:true, //Stop animation while hovering
		manualAdvance:false, //Force manual transitions
		captionOpacity:1, //Universal caption opacity
		beforeChange: function(){},
		afterChange: function(){},
		slideshowEnd: function(){} //Triggers after all slides have been shown
	});
	
	
	
	/* ---------------------------------------------------------------------- */
	/* Trips AJAX
	/* ---------------------------------------------------------------------- */
	
	$('select[name="trip_region_id"], select[name="trip_season"], select[name="ability_level_id"], select[name="trip_category_id"]')
		.live('change', function() {
			pullOptions($(this));
		})
	
	function pullOptions(select)
	{
		$('.trip_planner .error').slideUp('normal', function() {
			$(this).remove();
		});
		
		$.ajax({
			type: 'POST',
			url: '/sup/ajax/homepage_trips.php',
			data: $('.trip_planner form').serialize(),
			dataType: 'json',
			success: function(payload, status) {
				if (payload.error) {
					displayError(payload.error);
				} else {
					var num = (payload.count == 0)?'No':payload.count;
					if (payload.count == 0) {
						$("input.view_trips_button")
							.addClass("no_trips")
							.attr('disabled', 'disabled');
							$("input.view_trips_button").attr('value', "Sorry, no trips");
					} else {
						$("input.view_trips_button")
							.removeClass("no_trips")
							.attr('disabled', '');
							if (payload.count == 1) {
								$("input.view_trips_button").attr('value', "View 1 Trip");
							} else {
								$("input.view_trips_button").attr('value', "View "+payload.count+" Trips");
							}
					}
				}
			},
			error: function(request, status) {
				displayError('We were not able to return results to you. Try visiting Find Your Trip directly.');
			}
		});
	}

	$('.trip_planner form').submit(function(evt) {
		evt.preventDefault();

		var selects = $('.trip_planner form select');
		var param_string = '#';
		for (var i=0; i<selects.length; i++) {
			var name  = $(selects[i]).attr('name');
			if (name.substring(name.length-2) == 'id') name += '[]';
			
			var value = $(selects[i]).attr('value');
			if (value == '') value = 'All';

			if (param_string!='#') param_string += '&';
			if (name == "trip_season" && value != 'All') {
				var start = new Date(value*1000);
				start = (start.getMonth()+1)+'/'+(start.getDate())+'/'+start.getFullYear();
				var end = new Date(value*1000 + 7862400000);
				end = (end.getMonth()+1)+'/'+(end.getDate())+'/'+end.getFullYear();
				param_string += 'start_date='+start+'&end_date='+end;
			} else {
				param_string += name + '=' + value;
			}
		}
		
		window.location = $(this).attr('action')+param_string;
	});
	
	function displayError(message)
	{
		$('.trip_planner div.select').stop().fadeTo('fast', 1);
		
		$('<div class="error">' + message + '</div>').insertBefore('.trip_planner div.select:first');
	}
	
	//Setup Facebook Embed
	new FacebookWall('/CiclismoClassico', '/47442513274/feed?access_token=215338751832493%7C3db24fdb5b7f09851cf78517.1-100002534340551%7CmclqyLbK_8e8tLTHRHKb8qn4Vz0&expires_in=0', 'div.facebook_update', '#facebook_tmpl', 1);
	
})

