$(function(){
	var tt;

	$('.nav ul li span').each(function(){
		$(this).data('text',$(this).html());
		$(this).html('');
	});
	
	$('.nav ul li').hover(function(e){
		var o = $(this).find('span');
		typeText(o);
		//tt = window.setInterval(function(){ typeText(o); }, 20);
	},
	function(e){
		window.clearTimeout(tt);
		$(this).find('span').html("");
	});

	function typeText(obj,style){
		var s = style || 'linear';
		if(s == 'linear') {
			if(obj.html().length == obj.data('text').length){		
				window.clearTimeout(tt);
				return;
			}
			var L = obj.html().length;
			obj.html(obj.data('text').substring(0,L+1));
			var o = obj;
			var pause;
		
			//if the current character is a space then type it faster
			if(obj.data('text').charAt(L) == " ") {
				pause = 1;
			}
			else {
				var variance = 100;
				var pace = 10;
				var randomNumber = Math.ceil(Math.random()*variance);
				pause = randomNumber + pace;
			}
		
			tt = window.setTimeout(function(){typeText(o,s)},pause);
		}
		else if (s == 'humanized') {
			if(obj.html().length == obj.data('text').length){		
				window.clearTimeout(tt);
				return;
			}
			
			var L = obj.html().length;
			
			var goBack = (Math.random()*100 > 90) ? true : false;
			
			if(goBack) {
				var text = obj.data('text').substring(0,L-1);
				obj.html(text);
			}
			else {
				var text = obj.data('text').substring(0,L+1);
				obj.html(text);
			}
			
			var o = obj;
			var pause;

			//if the current character is a space then type it faster
			if(obj.data('text').charAt(L) == " ") {
				pause = 1;
			}
			else {
				var variance = 100;
				var pace = 10;
				var randomNumber = Math.ceil(Math.random()*variance);
				pause = randomNumber + pace;
			}
			tt = window.setTimeout(function(){typeText(o,s)},pause);
		}
	}
	
	//fade out nav elements that don't have focus
	$('.nav ul li a').hover(function(e){
		$(this).addClass('nav-over');
		$('.nav ul li').each(function(){
			if(!$(this).find('a').hasClass('nav-over')){
				$(this).find('a').addClass('dim');
			}
		});
	},
	function(e){
		$(this).removeClass('nav-over');
		$('.nav ul li a').removeClass('dim');
	});
	
	function Slideshow() {
		
		var self = this;
		var slides = [];
		this.activeSlide = 0;
		this.timeout;
		
		//init
		$('.stage .slide').each(function(index){
			$(this).css('z-index',index);
			slides.push($(this));
		});
		slides[this.activeSlide].addClass('active');
		
		this.cycle = function(){
			if(slides.length < 1) 
				return;
			self.activeSlide++;
			$('.active').removeClass('active').addClass('deactivating');
			var nextSlide;
			if (self.activeSlide >= slides.length) {
				nextSlide = 0;
				self.activeSlide = 0;
			} else {
				nextSlide = self.activeSlide;
			} 
			var x = slides[nextSlide];
			slides[nextSlide].css({'z-index':'99'}).animate({left: '0px'},500, function(){
				$('.deactivating').removeClass('deactivating').css({'z-index':'1','left': '1024px'});
				$(this).css('z-index','1');
				$(this).addClass('active');
			});
		}
		
		this.pause = function(){
			window.clearTimeout(this.timeout);
		}
		
		this.moveRight = function(){
			$('.active').removeClass('active').addClass('deactivating');
			var nextSlide;
			self.activeSlide++;
			if (self.activeSlide >= slides.length) {
				nextSlide = 0;
				self.activeSlide = 0;
			} else {
				nextSlide = self.activeSlide;
			} 
			var x = slides[nextSlide];
			slides[nextSlide].css({'z-index':'99'}).animate({left: '0px'},500, function(){
				$('.deactivating').removeClass('deactivating').css({'z-index':'1','left': '1024px'});
				$(this).css('z-index','1');
				$(this).addClass('active');
			});
		}
		
		this.moveLeft = function() {
			$('.active').removeClass('active').addClass('deactivating');
			var nextSlide;
			self.activeSlide--;
			if (self.activeSlide < 0) {
				nextSlide = slides.length - 1;
				self.activeSlide = slides.length - 1;
			} else {
				nextSlide = self.activeSlide;
			}
			var x = slides[nextSlide];
			slides[nextSlide].css({'z-index':'99'}).animate({left: '0px'},500, function(){
				$('.deactivating').removeClass('deactivating').css({'z-index':'1','left': '1024px'});
				$(this).css('z-index','1');
				$(this).addClass('active');
			});
		}
		
	}
	
	if($('.stage .slide').length > 1) {
		var slideshow = new Slideshow();
		//slideshow.timeout = window.setInterval(slideshow.cycle, 10000);
		$('.arrow-right').click(function(){ slideshow.moveRight(); });
		$('.arrow-left').click(function(){ slideshow.moveLeft(); });	
	}
	else {
		$('.arrow').css({display: 'none'});
	}

});

