var infoMENTUM = {
	selector: '.box',
	selectorParent: '.m-partners',
	numberToLoop: 3,
	selectorParentTwo: '.partners',
	numberToLoopTwo: 2,
	init: function(){
		infoMENTUM.watermark();
		infoMENTUM.twitter();
		infoMENTUM.expandBoxes();
		infoMENTUM.hoverSelect();
		infoMENTUM.scrollingPartners(infoMENTUM.selector, infoMENTUM.selectorParent, infoMENTUM.numberToLoop);
		infoMENTUM.scrollingPartnersTwo(infoMENTUM.selector, infoMENTUM.selectorParentTwo, infoMENTUM.numberToLoopTwo);
		infoMENTUM.slideShare();
	},
	watermark: function(){
    var defaultSearchValue = "Search the site"; // Value moved from HTML to avoid issue with browser back button.
    
		$('input.watermark').each(function() {
    if($(this).parent().parent().hasClass('search')){ defaultValue = defaultSearchValue; } else { defaultValue = $(this).val(); }
			$(this)
				.data('default', defaultValue)
				.addClass('inactive')
				.focus(function() {
					$(this).removeClass('inactive');
					if($(this).val() == $(this).data('default') || '') {
						$(this).val('');
					}
				})
				.blur(function() {
					var default_val = $(this).data('default');
					if($(this).val() == '') {
						$(this).addClass('inactive');
						$(this).val($(this).data('default'));
					}
				});
        // On Submit clear box of default search message.
        $('.header .search form').submit(function(){
            if($('.header .search form input.watermark').val() == defaultSearchValue) {
                $('.header .search form input.watermark').val('');
            }
        });
		});
	},
	twitter: function(){
		
		String.prototype.linkify = function() {
			return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/, function(m) {
				return m.link(m);
			});
		};
		function relative_time(time_value) {
			var values = time_value.split(" ");
			time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
			var parsed_date = Date.parse(time_value);
			var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
			var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
			delta = delta + (relative_to.getTimezoneOffset() * 60);
		  
			var r = '';
			if (delta < 60) {
				r = 'a minute ago';
			} else if(delta < 120) {
				r = 'couple of minutes ago';
			} else if(delta < (45*60)) {
				r = (parseInt(delta / 60)).toString() + ' minutes ago';
			} else if(delta < (90*60)) {
				r = 'an hour ago';
			} else if(delta < (24*60*60)) {
				r = '' + (parseInt(delta / 3600)).toString() + ' hours ago';
			} else if(delta < (48*60*60)) {
				r = '1 day ago';
			} else {
				r = (parseInt(delta / 86400)).toString() + ' days ago';
			}
			return r;
		}
		$.getJSON( "http://api.twitter.com/1/statuses/user_timeline/infomentum.json?count=3&include_rts=true&callback=?", function(data) {
			$.each(data, function() {
				$('<li></li>')
					.append('<span>' + this.text.linkify() + '</span><span>' + relative_time(this.created_at) +'</span>') 
					.appendTo('.inner-tweets ul');	
			});

			$('<div class="typewriter"><p>_</p></div>').insertBefore('.inner-tweets ul');
			$('.inner-tweets ul li:eq(0)').css('zIndex', 2);
			$('.inner-tweets ul li:eq(1)').css('zIndex', 1);
			$('.inner-tweets ul li:eq(2)').css('zIndex', 0);
			twitterLoop(2);
		});
		
		function twitterLoop(currentTweet){
			var numberOfTweets = $('.inner-tweets ul li').length;
			currentTweet = currentTweet % numberOfTweets;
			$('.inner-tweets ul li').eq(currentTweet).fadeOut(0,function(){
				$('.inner-tweets ul li').each(function(i){
					$(this).css(
						'zIndex', ((numberOfTweets - i) + currentTweet) % numberOfTweets
					);
				});
				$(this).show();
				if(currentTweet < numberOfTweets - 1){
					tweetLength = $('.inner-tweets ul li').eq(currentTweet + 1).width();
				}else if(currentTweet === numberOfTweets - 1){
					tweetLength = $('.inner-tweets ul li').eq(0).width();
				}
				$('.typewriter').animate({
					left: '+='+ tweetLength
				}, 3200, function(){
					setTimeout(function(){
						$('.typewriter').css('left', '42px');
					}, 3500);
				});
				setTimeout(function(){
					twitterLoop(++currentTweet);
				},Twitterfeed.delay + 3500);
			});
		}
	},
	expandBoxes: function(){
		$('.expand-box').css({
			opacity: '0',
			display: 'none'
		});
		$('a.expand').toggle(function(e){
			$(this).next().animate({
				height: 'toggle'
			}, 200, function(){
				$(this).animate({
					opacity: '1'
				}, 'slow', function(){
					$(this)
						.prev()
						.addClass('minus');
				});
			});
			e.preventDefault();
		}, function(e){		
			$(this).next().animate({
				height: 'toggle'
			}, 200, function(){
				$(this).animate({
					opacity: '0'
				}, 'slow', function(){
					$(this)
						.prev()
						.removeClass('minus');
				});
			});
			e.preventDefault();
		});
	},
	scrollingPartners: function(selector, parentSelector, numberVisible, delay, timeout){
		var numberOfLi = $(''+ parentSelector +' '+ selector +' ul li:last').index();
		var numberOfActualLi = numberOfLi + 1;
		var widthOfLi = $(''+ parentSelector +' '+ selector +' ul li').outerWidth(true);
		var ulWidth = widthOfLi * numberOfActualLi;
		var stopScroll = ulWidth - widthOfLi * numberVisible;
		var leftPosition = Math.abs(parseInt($(''+ parentSelector +' '+ selector +' ul').css('left')));
		slideTime = setInterval(function(){
			partnersLoop();
		},7500);
		function clickArrowLeft(){
			
			$(''+ parentSelector +' '+ selector +' .left-arrow').click(function(){
			
				var leftPosition = Math.abs(parseInt($(''+ parentSelector +' '+ selector +' ul').css('left')));
				
				
				if(stopScroll != leftPosition && !$(this).hasClass('justBeenClicked')){
					$(this).addClass('justBeenClicked');
					$(''+ parentSelector +' '+ selector +' ul').animate({
						left: '-='+ widthOfLi +'px'
					}, 'slow', function(){
						var leftPosition = Math.abs(parseInt($(''+ parentSelector +' '+ selector +' ul').css('left')));
						if($(''+ parentSelector +'').hasClass('hovering')){
							if(stopScroll === leftPosition){
								$(''+ parentSelector +' '+ selector +' .left-arrow').hide();
								$(''+ parentSelector +' '+ selector +' .right-arrow').show();
							}else{
								$(''+ parentSelector +' '+ selector +' .left-arrow, '+ parentSelector +' '+ selector +' .right-arrow').show();
							}
						}
						$(''+ parentSelector +' '+ selector +' .left-arrow').removeClass('justBeenClicked');
					});
				}
			});
		}
		function clickArrowRight(){
			$(''+ parentSelector +' '+ selector +' .right-arrow').click(function(){
				var leftPosition = Math.abs(parseInt($(''+ parentSelector +' '+ selector +' ul').css('left')));
				
				if(leftPosition != 0 && !$(this).hasClass('justBeenClicked')){
					$(this).addClass('justBeenClicked');
					$(''+ parentSelector +' '+ selector +' ul').animate({
						left: '+='+ widthOfLi +'px'
					}, 'slow', function(){
						var leftPosition = Math.abs(parseInt($(''+ parentSelector +' '+ selector +' ul').css('left')));
						if($(''+ parentSelector +'').hasClass('hovering')){
							if(leftPosition == 0){
								$(''+ parentSelector +' '+ selector +' .left-arrow').show();
								$(''+ parentSelector +' '+ selector +' .right-arrow').hide();
							}else{
								$(''+ parentSelector +' '+ selector +' .left-arrow, '+ parentSelector +' '+ selector +' .right-arrow').show();
							}
						}
						$(''+ parentSelector +' '+ selector +' .right-arrow').removeClass('justBeenClicked');
					});
				}
			});
		}
		function partnersLoop(){
				
			var leftPosition = Math.abs(parseInt($(''+ parentSelector +' '+ selector +' ul').css('left')));
			if(stopScroll === leftPosition){
				$(''+ parentSelector +' '+ selector +' ul').css('left', 0);
			}else{
				$(''+ parentSelector +' '+ selector +' ul')
					.animate({
						left: '-='+ widthOfLi +'px'
					}, 'slow', function(){
						var leftPosition = Math.abs(parseInt($(''+ parentSelector +' '+ selector +' ul').css('left')));
						if($(''+ parentSelector +'').hasClass('hovering')){
							if(leftPosition === 0){
								$(''+ parentSelector +' '+ selector +' .left-arrow').hide();
								$(''+ parentSelector +' '+ selector +' .right-arrow').show();
							}else if(stopScroll === leftPosition){
								$(''+ parentSelector +' '+ selector +' .left-arrow').show();
								$(''+ parentSelector +' '+ selector +' .right-arrow').hide();
							}else{
								$(''+ parentSelector +' '+ selector +' .left-arrow, '+ parentSelector +' '+ selector +' .right-arrow').show();
							}
						}
					});
			}
			
		}
		function partnersSlide(){
			$('<span class="left-arrow"></span><span class="right-arrow"></span>').appendTo(''+ parentSelector +' '+ selector +'').hide();
			$(''+ parentSelector +'').hover(function(){
				var leftPosition = Math.abs(parseInt($(''+ parentSelector +' '+ selector +' ul').css('left')));
				clearTimeout(slideTime);
				$(this).css({
					cursor: 'pointer'
				});
				$(this).addClass('hovering');
				if($(''+ parentSelector +'').hasClass('hovering')){
					if(leftPosition == 0){
						$(''+ parentSelector +' '+ selector +' .left-arrow').show();
						$(''+ parentSelector +' '+ selector +' .right-arrow').hide();
					}else if(stopScroll === leftPosition){
						$(''+ parentSelector +' '+ selector +' .left-arrow').hide();
						$(''+ parentSelector +' '+ selector +' .right-arrow').show();
					}else{
						$(''+ parentSelector +' '+ selector +' .left-arrow, '+ parentSelector +' '+ selector +' .right-arrow').show();
					}
				}
			}, function(){
				slideTime = setInterval(function(){
					partnersLoop();
				},7500);
				$(this).removeClass('hovering');
				$(''+ parentSelector +' '+ selector +' .left-arrow, '+ parentSelector +' '+ selector +' .right-arrow').hide();
			});
			$(''+ parentSelector +' '+ selector +'').css('overflow', 'hidden');
			$(''+ parentSelector +' '+ selector +' ul').css('width', ulWidth);
			clickArrowLeft();
			clickArrowRight();
			//partnersLoop();
		}
		partnersSlide();
	},
	scrollingPartnersTwo: function(selector, parentSelector, numberVisible){
		var numberOfLi = $(''+ parentSelector +' '+ selector +' ul li:last').index();
		var numberOfActualLi = numberOfLi + 1;
		var widthOfLi = $(''+ parentSelector +' '+ selector +' ul li').outerWidth(true);
		var ulWidth = widthOfLi * numberOfActualLi;
		var stopScroll = ulWidth - widthOfLi * numberVisible;
		var leftPosition = Math.abs(parseInt($(''+ parentSelector +' '+ selector +' ul').css('left')));
		function clickArrowLeft(){
			$(''+ parentSelector +' '+ selector +' .left-arrow').click(function(){
			
				var leftPosition = Math.abs(parseInt($(''+ parentSelector +' '+ selector +' ul').css('left')));
				
				if(stopScroll != leftPosition && !$(this).hasClass('justBeenClicked')){
					$(this).addClass('justBeenClicked');
					$(''+ parentSelector +' '+ selector +' ul').animate({
						left: '-='+ widthOfLi +'px'
					}, 'slow', function(){
						var leftPosition = Math.abs(parseInt($(''+ parentSelector +' '+ selector +' ul').css('left')));
						if($(''+ parentSelector +'').hasClass('hovering')){
							if(stopScroll === leftPosition){
								$(''+ parentSelector +' '+ selector +' .left-arrow').hide();
								$(''+ parentSelector +' '+ selector +' .right-arrow').show();
							}else{
								$(''+ parentSelector +' '+ selector +' .left-arrow, '+ parentSelector +' '+ selector +' .right-arrow').show();
							}
						}
						$(''+ parentSelector +' '+ selector +' .left-arrow').removeClass('justBeenClicked');
					});
				}
			});
		}
		function clickArrowRight(){
			$(''+ parentSelector +' '+ selector +' .right-arrow').click(function(){
				var leftPosition = Math.abs(parseInt($(''+ parentSelector +' '+ selector +' ul').css('left')));
				
				if(leftPosition != 0 && !$(this).hasClass('justBeenClicked')){
					$(this).addClass('justBeenClicked');
					$(''+ parentSelector +' '+ selector +' ul').animate({
						left: '+='+ widthOfLi +'px'
					}, 'slow', function(){
						var leftPosition = Math.abs(parseInt($(''+ parentSelector +' '+ selector +' ul').css('left')));
						if($(''+ parentSelector +'').hasClass('hovering')){
							if(leftPosition == 0){
								$(''+ parentSelector +' '+ selector +' .left-arrow').show();
								$(''+ parentSelector +' '+ selector +' .right-arrow').hide();
							}else{
								$(''+ parentSelector +' '+ selector +' .left-arrow, '+ parentSelector +' '+ selector +' .right-arrow').show();
							}
						}
						$(''+ parentSelector +' '+ selector +' .right-arrow').removeClass('justBeenClicked');
					});
				}
			});
		}
		function partnersSlide(){
			$('<span class="left-arrow"></span><span class="right-arrow"></span>').appendTo(''+ parentSelector +' '+ selector +'').hide();
			$(''+ parentSelector+'').hover(function(){
				var leftPosition = Math.abs(parseInt($(''+ parentSelector +' '+ selector +' ul').css('left')));
				$(this).css({
					cursor: 'pointer'
				});
				$(this).addClass('hovering');
				if($(''+ parentSelector +'').hasClass('hovering')){
					if(leftPosition == 0){
						$(''+ parentSelector +' '+ selector +' .left-arrow').show();
						$(''+ parentSelector +' '+ selector +' .right-arrow').hide();
					}else if(stopScroll === leftPosition){
						$(''+ parentSelector +' '+ selector +' .left-arrow').hide();
						$(''+ parentSelector +' '+ selector +' .right-arrow').show();
					}else{
						$(''+ parentSelector +' '+ selector +' .left-arrow, '+ parentSelector +' '+ selector +' .right-arrow').show();
					}
				}
			}, function(){
				$(this).removeClass('hovering');
				$(''+ parentSelector +' '+ selector +' .left-arrow, '+ parentSelector +' '+ selector +' .right-arrow').hide();
			});
			clickArrowLeft();
			clickArrowRight();
			$(''+ parentSelector +' '+ selector +'').css('overflow', 'hidden');
			$(''+ parentSelector +' '+ selector +' ul').css('width', ulWidth);
		}
		partnersSlide();
	},
	hoverSelect: function(){
		$('<div></div>').appendTo('.team-list li a, ol.small-media-list li a');
		$('.team-list li:first-child, .small-media-list li:first-child').addClass('selected');
		$('.portrait-list li:first, .large-case-study-list li:first, .media-info-list li:first').css({
			display: 'block'
		});
		$('.team-list li a, ol.small-media-list li a').click(function(e){
			if(!$(this).parent().hasClass('selected')){
				$('.team-list li, ol.small-media-list li').removeClass('selected clicked hovered');
				$(this).parent().addClass('selected clicked');
			}
			var whichImage = $(this).parent().index();
			$('.portrait-list li:visible, .media-info-list li:visible').hide();
			$('.portrait-list li, .media-info-list li').eq(whichImage).show();
			e.preventDefault();
		});
		$('ol.small-media-list li a').click(function(e){
			if(!$(this).parent().hasClass('selected')){
				$('ol.small-media-list li').removeClass('selected clicked hovered');
				$(this).parent().addClass('selected clicked');
			}
			e.preventDefault();
		});
		$('ul.team-list li img.young').css({
			display: 'none',
			position: 'absolute',
			top: '0',
			left: '0'
		});
		$('ol.small-media-list li').hover(function(){
			$(this).addClass('hovered');
		}, function(){
			if(!$(this).hasClass('clicked')){
				$(this).removeClass('hovered');
			}
		});
		$('ul.team-list li').hover(function(){
			$(this).find('img.young').css({
				display: 'block'
			})
			$(this).addClass('hovered');
		}, function() {
			if(!$(this).hasClass('clicked')){
				$(this).removeClass('hovered');
			}
			$(this).find('img.young').css({
				display: 'none'
			});
		});
		$('.case-study-list li a').click(function(e){
			var whichImage = $(this).parent().index();
			$('.large-case-study-list li:visible').hide();
			$('.large-case-study-list li').eq(whichImage).show();
			e.preventDefault();
		});
	},
	slideShare: function() {
		$('div.1').addClass('selected');
		$('div.2').hide();
		$('.small-media-list li').click(function(){
			var whichList = $(this).index() + 1;
			if(!$('div.slide.'+ whichList +'').is('.selected')){
				$('div.slide.selected').removeClass('selected').hide();
				$('div.slide.'+ whichList +'').show().addClass('selected');
			}
		});
	}
}
// Document Ready
$(function(){
	infoMENTUM.init();

	$('ul.mainsub-nav').each(function() {
		//31px the right padding and border of the LIs
		var setWidth = ($(this).width()/$('> li',this).length)-31;
		$('> li',this).width(setWidth);
	});
  
  // Nav Fade
  $('.main-nav').removeClass('no-js');
  $('.main-nav > li').hover(function(){
    $(this).children('ul').stop(false,true).fadeIn(300);
    
  },function(){
    $(this).children('ul').stop(false,true).fadeOut(200);
  });
	

});
