Watson = {
	initialize: function() {
		$(function(){
			$('.tabs').on('click', 'a', function(e){
				e.preventDefault();

				$('.tabs li').removeClass('selected');
				$(this).closest('li').addClass('selected');

				$('.tab-content').hide();
				$($(this).attr('href')).show();
			});
			
			if ($('#slideshow').size()) Watson.Slideshow.loadPhotos('#slideshow', '/data/slideshow.json.php');
			
			if ($('#team').size()) {
				var hoverInterval;
				
				$('#team-wrap .nav').hover(function(){
					var nav = $(this);
					
					hoverInterval = setInterval(function(){
						var left = parseInt($('#team ul').css('margin-left'));
						if (nav.hasClass('prev')) {
							if (left <= -1) {
								$('#team ul').css('margin-left', left+1);
							} else {
								clearInterval(hoverInterval);
							}
						} else if (nav.hasClass('next')) {
							if (left >= ($('#team li').size() - 5) * -143) {
								$('#team ul').css('margin-left', left-1);
							} else {
								clearInterval(hoverInterval);
							}
						}
					}, 6);
				}, function(){
					clearInterval(hoverInterval);
				});
			}
			
			if ($('#contact-form').size()) {
				$('#contact-form').validate({
					rules: {
						sender_name: 'required',
						sender_email: {required: true, email: true},
						message: 'required'
					},
					messages: {
						sender_name: 'Please enter your name.',
						sender_email: {
							required: 'Please enter your email address.',
							email: 'Please enter a valid email address.'
						},
						message: 'Please enter your message.'
					},
					errorLabelContainer: '#contact-form-errors',
					errorElement: 'p',
					highlight: function(element, errorClass, validClass) {
						$(element).addClass(errorClass).removeClass(validClass);
						$(element.form).find("label[for=" + element.id + "]").addClass(errorClass);
						$(element).closest('.field').addClass(errorClass).removeClass(validClass);
					},
					unhighlight: function(element, errorClass, validClass) {
						$(element).removeClass(errorClass).addClass(validClass);
						$(element.form).find("label[for=" + element.id + "]").removeClass(errorClass);
						$(element).closest('.field').removeClass(errorClass).addClass(validClass);
					}
				});
			}
		});
	},
	
	Slideshow: {
		$element: null,
		width: null,
		height: null,

		loadPhotos: function(element, url, options) {
			var options = $.extend(Watson.Slideshow.defaults, options);

			Watson.Slideshow.$element = $(element);
			Watson.Slideshow.width = Watson.Slideshow.$element.width();
			Watson.Slideshow.height = Watson.Slideshow.$element.height();

			$.getJSON(url, options.data, function(data){
				$.each(data, Watson.Slideshow.addPhoto);

				Watson.Slideshow.$element.cycle(options.cycle);
			});
		},

		addPhoto: function(index, url) {
			var tag = '<img src="'+url+'" width="'+Watson.Slideshow.width+'" height="'+Watson.Slideshow.height+'" alt="" />';
			Watson.Slideshow.$element.append(tag);
		},

		defaults: {
			cycle: {
				fx: 'fade',
				speed: 2000,
				timeout: 6000,
				pager: '#dots span'
			},
			data: {}
		}
	}
}
Watson.initialize();
