// JavaScript Document

// VARIABLES //

var totalFeaturedRows = 1 ;
var currentFeaturedRow = 1 ;


// FUNCTIONS

function checkSearch(){
	/*
	searchVal = $('#s').attr('value');
	if( searchVal == "" || searchVal == "Search our site" ){
		return false;
	}
	else{
		$('#searchform').submit();
	}
	*/
}







 
$(document).ready(function(){
	
	init();
	
	$('.scroll').click(function() {
	   var destination = $('#' + $(this).attr('href').substr(1, $(this).attr('href').length)).offset().top;
	   $("html:not(:animated),body:not(:animated)").animate({ scrollTop: destination - 20}, 1000 );
	   return false;
	});
	
	$('#s').bind('focus', function(){
		if( $(this).attr('value') === 'Search our site' ){
			$(this).attr('value', '').removeClass('inactive');
		}
	});
	
	$('#s').bind('blur', function(){
		if( $(this).attr('value') === '' ){
			$(this).attr('value', 'Search our site' ).addClass('inactive');
		}
	});
	
	$('#s').bind('keypress', function(e) {
        if(e.keyCode==13){
        	searchVal = $('#s').attr('value');
			if( searchVal == "" || searchVal == "Search our site" ){
				return false;
			}
			else{
				$('#searchform').submit();
			}
        }
	});
	
	$('#mail-form').validate();
	
});



function init(){
	
	// HOME & BLOG
		
	$('.search-button').bind('mouseover', function(){ $('.search-button-image').addClass('over');});
	$('.search-button').bind('mouseout', function(){ $('.search-button-image').removeClass('over'); });
	$('.search-button').bind('click', function(){
		searchVal = $('#s').attr('value');
		if( searchVal == "" || searchVal == "Search our site" ){
			return false;
		}
		else{
			$('#searchform').submit();
		}
	});
	
	$('#see-whats-new').bind('mouseover', function(){
		$(this).stop()
				.animate({paddingBottom:30, paddingTop:23}, 200)
				.css('background-position', '0 -111px');
	});
	$('#see-whats-new').bind('mouseout', function(){
		$(this).stop()
				.animate({paddingBottom:20, paddingTop:20}, 200)
				.css('background-position', '0 0');
	});
		
	
	totalFeaturedRows = $('.row').length;
	
	$('.row').css('position', 'absolute');
	for(var i=1; i<=$('.row').length; i++){
		$('.row:nth-child('+i+')').animate({
			left: (i-1) * 908
		}, 0);
	}
	
	$('#featured-content-next').bind('mouseover', function(){ $('.arrow', this).css('background-position', '-13px -66px'); });
	$('#featured-content-next').bind('mouseout', function(){ $('.arrow', this).css('background-position', '-13px -22px'); });
	$('#featured-content-next').bind('click', function(){ 
		
		if(currentFeaturedRow >= totalFeaturedRows){
			
			var firstRow = $('.row:first');
			$(firstRow).appendTo('#row-container');
			$(firstRow).css('left', 908);
		}
						
		for(var i=1; i<=$('.row').length; i++){
			
			$('.row:nth-child('+i+')').animate({
				left: parseInt($('.row:nth-child('+i+')').css('left')) - 908
			}, 1000);
		}
		
		currentFeaturedRow += 1;
				
	});
	
	$('#featured-content-prev').bind('mouseover', function(){ $('.arrow', this).css('background-position', '0 -66px'); });
	$('#featured-content-prev').bind('mouseout', function(){ $('.arrow', this).css('background-position', '0 -22px'); });
	$('#featured-content-prev').bind('click', function(){ 
		
		var lastRow = $('.row:last');
		
		$(lastRow).prependTo('#row-container');
		$(lastRow).css('left', -908);
		
		for(var i=1; i<=$('.row').length; i++){
			
			$('.row:nth-child('+i+')').animate({
				left: parseInt($('.row:nth-child('+i+')').css('left')) + 908
			}, 1000);
		}
				
	});
	
	$('#article-categories .category').bind('mouseover', function(){
		$(this).addClass('hover');
	});
	$('#article-categories .category').bind('mouseout', function(){
		$(this).removeClass('hover');
	});
	
	
	
	
	// WORK
		
	$('#main-next-arrow').bind('mouseover', function(){ 
		$(this).hide(100);
		$('#main-next-over').show(100);
		$(this).addClass('transition');
		setTimeout(function(){checkmouseover('#main-next-arrow', '#main-next-over') }, 500);
	});
	$('#main-next-over').bind('mouseover', function(){
		$('#main-next-arrow').removeClass('transition');
	});
	$('#main-next-over').bind('mouseout', function(){ 
		$(this).hide(100);
		$('#main-next-arrow').show(100);
	});
	
	$('#main-prev-arrow').bind('mouseover', function(){ 
		$(this).hide(100);
		$('#main-prev-over').show(100);
		$(this).addClass('transition');
		setTimeout(function(){checkmouseover('#main-prev-arrow', '#main-prev-over') }, 500);
	});
	$('#main-prev-over').bind('mouseover', function(){
		$('#main-prev-arrow').removeClass('transition');
	});
	$('#main-prev-over').bind('mouseout', function(){ 
		$(this).hide(100);
		$('#main-prev-arrow').show(100);
	});
		
	
	function checkmouseover(buttonArrow, buttonOver){
		if( $(buttonArrow).hasClass('transition') ){
	   		$(buttonArrow).removeClass('transition');
			$(buttonOver).hide(100);
			$(buttonArrow).show(100);
		}
	}
	
	// AGENCY
	
	$('.photo.partner').bind('mouseover', function(){
		var target =  $('.partner-name', this);
		$('.partner-name').stop().removeClass('active').removeClass('over');
		$(target).stop().addClass('over');
		
		$('#partner-bio-featured h2').html( $('.partner-name h2', this).html() );
		$('#partner-bio-featured p').html( $('.partner-bio p', this).html() );
		
	});
	$('.photo.partner').bind('mouseout', function(){
		var target =  $('.partner-name', this);
	});
	
	$('.leap').bind('mouseover', function(){
		$('.leap').removeClass('active');
		$(this).addClass('active');
		$('#leap-diagram').css('background-position', -460 * $('.leap').index(this) + 'px 0' );
	});
	
	$('.leap-button').bind('mouseover', function(){
		LBIndex = $('.leap-button').index(this);
		LSection = $('.leap')[LBIndex];
		$('.leap').removeClass('active');
		$( LSection ).addClass('active');
		$('#leap-diagram').css('background-position', -460 * LBIndex + 'px 0' );
	});
	
	// NEWS
	
	/*
	$('#article-categories .category').bind('click', function(){
		if( $(this).hasClass('inactive') ){
			$(this).removeClass('inactive');
		} else {
			$(this).addClass('inactive');	
		}
	});
	*/
	
		
	
	// CONTACT
	
	$('.submit').bind('mouseover', function(){
		$(this).addClass('hover');
	});
	$('.submit').bind('mouseout', function(){
		$(this).removeClass('hover');
	});
	$('.submit').bind('click', function(){
		//$('#mail-form').submit();
			
		if($("#mail-form").valid()){
			submitform();
		}
		else{
			$("mail-form").validate();	
		}
		
	});
	
	
}

function init_branding(page, url){
	switch(page){
		case 'home':
		
			$(function(){
					   					   
				var headID = document.getElementsByTagName("head")[0];         
				var newScript = document.createElement('script');
				newScript.type = 'text/javascript';
				newScript.onload = scriptLoadedHome;
				newScript.src = url + '/js/jquery.backstretch.min.js';
				headID.appendChild(newScript);
				
			});
			
			break;
			
		case 'work':
		
			$('#navigation li#work').addClass('active');
			
			break;
			
		
		case 'work-single':
		
			$('#navigation li#work').addClass('active');
			
			// Add Video CSS
			var headID = document.getElementsByTagName("head")[0];         
			var cssNode = document.createElement('link');
			cssNode.type = 'text/css';
			cssNode.rel = 'stylesheet';
			cssNode.href = url + '/js/video-js/video-js.css';
			cssNode.media = 'screen';
			headID.appendChild(cssNode);
			
			// Add Video JS
			var headID = document.getElementsByTagName("head")[0];         
			var newScript = document.createElement('script');
			newScript.type = 'text/javascript';
			newScript.onload = scriptLoadedWorkSingleVideo;
			newScript.src = url + '/js/video-js/video.js';
			headID.appendChild(newScript);
			
			// Add Masonry JS
			var headID = document.getElementsByTagName("head")[0];         
			var newScript = document.createElement('script');
			newScript.type = 'text/javascript';
			newScript.onload = scriptLoadedWorkSingle;
			newScript.src = url + '/js/jquery.masonry.min.js';
			headID.appendChild(newScript);
			break;
		
		case 'agency':
		
			$(function(){
				
				$('#navigation li#agency').addClass('active');
				$('.partner-name:first').addClass('active');
				
				// Add Fancybox CSS
				var headID = document.getElementsByTagName("head")[0];         
				var cssNode = document.createElement('link');
				cssNode.type = 'text/css';
				cssNode.rel = 'stylesheet';
				cssNode.href = url + '/js/fancybox/jquery.fancybox-1.3.4.css';
				cssNode.media = 'screen';
				headID.appendChild(cssNode);
				
				// Add Fancybox JS
				var headID = document.getElementsByTagName("head")[0];         
				var newScript = document.createElement('script');
				newScript.type = 'text/javascript';
				newScript.onload = scriptLoadedAgency;
				newScript.src = url + '/js/fancybox/jquery.fancybox-1.3.4.pack.js';
				headID.appendChild(newScript);
				
			});
			
			break;
			
		case 'news':
			
			$('#navigation li#news').addClass('active');
			
			break;
			
		case 'contact':
		
			$('#navigation li#contact').addClass('active');
			$(function(){
				initialize();
			});
			
			break;
		
		case 'contest':
		
			$(function(){
				
				$('#navigation li#contest').addClass('active');
				
				// Add Fancybox CSS
				var headID = document.getElementsByTagName("head")[0];         
				var cssNode = document.createElement('link');
				cssNode.type = 'text/css';
				cssNode.rel = 'stylesheet';
				cssNode.href = url + '/js/fancybox/jquery.fancybox-1.3.4.css';
				cssNode.media = 'screen';
				headID.appendChild(cssNode);
				
				// Add Fancybox JS
				var headID = document.getElementsByTagName("head")[0];         
				var newScript = document.createElement('script');
				newScript.type = 'text/javascript';
				newScript.onload = scriptLoadedAgency;
				newScript.src = url + '/js/fancybox/jquery.fancybox-1.3.4.pack.js';
				headID.appendChild(newScript);
				
			});
			
			break;		
		
		default:
			break;
	}
}

function scriptLoadedHome(){	
	$.backstretch(url + "../images/content/branding-page-home.jpg", {speed:150});
	positionBrandingHome();
}
function scriptLoadedAgency(){	
	$("a[rel=flickr_group]").fancybox();
}
function scriptLoadedWorkSingle(){	
	$('#the-work-container').masonry({
		itemSelector: '.block',
		columnWidth: 160
	});
}
function scriptLoadedWorkSingleVideo(){	
    // Add VideoJS to all video tags on the page when the DOM is ready
    VideoJS.setupAllWhenReady();
}

function positionBrandingHome(){
	set_positionBrandingHome();
	
	$(window).bind('resize', function(){
		set_positionBrandingHome();
	});
}


function set_positionBrandingHome(){
		
	$('#branding').height( $(window).height() - $('#header').height() );
	$('#branding-container').height( $('#branding').height() );
	$('#branding-message').css( 'top', ($(window).height() - $('#branding-message').height())/2 - 50);
	
}


function getTheWork_prep(){
	
	$('.work-box-item').hide();
	
	for( var i=0; i<$(".work-box-container").length; i++){
		$(".work-box-container:eq("+i+") .work-box-item:first").show();
	}
	
	/*
	for( var i=0; i<$(".work-box-container-multi-video").length; i++){
		$(".work-box-container-multi-video:eq("+i+") .work-box-item:first").show();
	}
	*/
	
}


function getTheWork_functions(){
	
	$('.work-box-container .work-box-control').bind('click', function(){
  	
		thisIndex = $(this).index() + 1;
		WBC = $(this).parent().parent().parent().parent();
		wbcIndex = $('.work-box-container').index( WBC );
		
		$(".work-box-container:eq("+wbcIndex+") .work-box-control").removeClass('active');
		$(this).addClass('active');
		target = $(".work-box-container:eq("+wbcIndex+") .work-box-item:nth-child("+thisIndex+")");
		$(".work-box-container:eq("+wbcIndex+") .work-box-item").hide();
		$(target).show();
		
  	});
	
	$('.work-box-container-multi-video .work-box-control').bind('click', function(){
  				
		thisIndex = $(this).index() + 1;
		WBCMV = $(this).parent().parent().parent().parent();
		wbcIndex = $('.work-box-container-multi-video').index( WBCMV );
		
		$(".work-box-container-multi-video:eq("+wbcIndex+") .work-box-control").removeClass('active');
		$(this).addClass('active');
		
		wbVideo =  $(".work-box-container-multi-video:eq("+wbcIndex+") .work-box-video");
		target = $(".work-box-container-multi-video:eq("+wbcIndex+") .work-box-item:nth-child("+thisIndex+")");
		
		newVideo = $(".work-box-container-multi-video:eq("+wbcIndex+") .work-box-item:nth-child("+(thisIndex+1)+")" );
				
		$(".work-box-container-multi-video:eq("+wbcIndex+") .work-box-video").html('');	
		$(".work-box-container-multi-video:eq("+wbcIndex+") .work-box-video").append('<div class="video-js-box vim-css"></div>');
		$(".work-box-container-multi-video:eq("+wbcIndex+") .work-box-video .video-js-box").append( $(newVideo).html() );
		$(".work-box-container-multi-video:eq("+wbcIndex+") .work-box-video .video-js-box video").addClass('video-js').addClass('vim-css');
		
		VideoJS.setup( $('.work-box-video .video-js') );
		
  	});
	
	setupWorkVideoJS();
	
}

function setupWorkVideoJS(){
	
	newVids = $('#the-work-container .video-js');

	for(i=0; i<newVids.length; i++){
		VideoJS.setup(newVids[i]);
	}
		
}




function submitform(){
	
	var captcha = $('input[name=your-human]').val();
		
	captcha = captcha.toLowerCase();
		
	if( captcha === "human" || captcha === "'human'" ){
	
		var data = 'your-name=' + $('input[name=your-name]').val() + '&your-email=' + $('input[name=your-email]').val() + '&your-phone=' + $('input[name=your-phone]').val() + '&your-message=' + $('textarea[name=your-message]').val();
		
		$.ajax({
			//this is the php file that processes the data and send mail
			url: sendURL, 
			 
			//GET method is used
			type: "POST",
	
			//pass the data         
			data: data,     
			 
			//Do not cache the page
			cache: false,
			 
			//success
			success: function (html) { 
			
				$('#intro-copy').hide();
				$('#mail-form').hide();
				$('#success').removeClass('hidden');
				
			}       
		});
	}

};







		


// ======================= SLIDESHOW ======================= //

var rowWidth = 940;
var page = 'home';
var pageURL = '';
var numStories = 1;
var currStory = 0;
var canAnimate = true;
var subNavPos = 0;
var currSubNav = 0;

function setupSlideshow(aPage){
	
	if( $('.row-content').length > 1 ){

		page = aPage;
		if(page === 'home'){ rowWidth = 908; }
		pageURL = document.location.href;
		numStories = $('.row-content').length;
		$('#row-holder').height( $('.row-content:nth-child('+(1)+')').height() );
		
		prepRotatorStories('next', 0);
		setupEventHandlers();
		setRotatorNav(currStory);
		setTimer();
	}
	else{
		$('.row-control').hide();	
	}
}


function setTimer(){
	
	$('body').everyTime(6500, 'slideshow', function(){
		
		if( canAnimate){
			canAnimate = false;
			
			if(currStory + 1 === numStories){
				setRotatorNav(0);	
			} else{
				setRotatorNav(currStory + 1);
			}
			
			rotateStories(-1);
		}
		
		//$('body').delay(2000).animate({ backgroundColor:'#' + randomColor()}, 2000);
	});
}


/* ===== ROTATOR STORIES ===== */

function prepRotatorStories(direction, amount){
	
	switch(direction){
		
		case 'next':
			for( var i=0; i<amount; i++){
				$('.row-content:first').insertAfter( $('.row-content:last'));
			}
			for( var j=0; j<numStories; j++){
				$($('.row-content')[j]).css('left', (j * rowWidth)).css('top', 0);
			}
			break;
			
		case 'prev':
			for( var i=0; i<amount; i++){
				$('.row-content:last').insertBefore( $('.row-content:first'));
			}
			for( var j=0; j<numStories; j++){
				$($('.row-content')[j]).css('left', (j * rowWidth) - (amount * rowWidth)).css('top', 0);
			}
			break;	
	}
}


function rotateStories(amount){
	
	// PREVIOUS
	if(amount > 0){
		var num = Math.abs(amount);
		var distance = rowWidth * num;
		var duration = 1000 + 250 * num;
		
		prepRotatorStories('prev', num);
		$('.row-content').animate({left: '+=' + distance}, duration);
		$('#row-holder').animate({height: $('.row-content:nth-child(1)').height()}, duration/2);
		var setCanAnimate = setTimeout("resetCanAnimate()", duration + 50);
	}
	// NEXT
	else if(amount < 0){
		var num = Math.abs(amount);
		var distance = rowWidth * num;
		var duration = 1000 + 250 * num;
		
		$('.row-content').animate({left: '-=' + distance}, duration);
		$('#row-holder').animate({height: $('.row-content:nth-child(2)').height()}, duration/2);
		var delay = setTimeout( "prepRotatorStories('next'," + num + ")", duration + 50);
		var setCanAnimate = setTimeout("resetCanAnimate()", duration + 50);
	}
	
	if(page === 'home'){
		if(currStory == 0) {
			$('#latest-headline').html('The latest work.');
			$('#latest-headline-link').attr('href', pageURL + '/work');
		}
		else {
			$('#latest-headline').html('The latest news.');
			$('#latest-headline-link').attr('href', pageURL + '/news');
		}
	}
	
}

function resetCanAnimate(){
	canAnimate = true;	
}



/* ===== EVENT HANDLERS ===== */

function setupEventHandlers(){
	
	$('.row-control-button').bind('click', function(){
											 		
		$('body').stopTime('slideshow');
		
		var offset = currStory - $('.row-control-button').index(this);
		if( offset != 0 ){
			if(canAnimate){
				canAnimate = false;
				setRotatorNav($('.row-control-button').index(this));
				rotateStories(offset);
			}
		}
	});	
	
	$('#row-next-button').bind('click', function(){
		
		$('body').stopTime('slideshow');
		
		if( canAnimate){
			canAnimate = false;
			
			if(currStory + 1 === numStories){
				setRotatorNav(0);	
			} else{
				setRotatorNav(currStory + 1);
			}
			
			rotateStories(-1);
		}
	});
	
	$('#row-prev-button').bind('click', function(){
			
		$('body').stopTime('slideshow');
		
		if(canAnimate){
			canAnimate = false;
			
			if(currStory - 1 === -1){
				setRotatorNav(numStories - 1);	
			} else{
				setRotatorNav(currStory - 1);
			}
			
			rotateStories(1);
		}
	});
	
	$('#row-next-button').bind('mouseover', function(){
		$(this).addClass('hover');
	});
	$('#row-next-button').bind('mouseout', function(){
		$(this).removeClass('hover');
	});
	$('#row-prev-button').bind('mouseover', function(){
		$(this).addClass('hover');
	});
	$('#row-prev-button').bind('mouseout', function(){
		$(this).removeClass('hover');
	});
}




/* ===== ROTATOR NAV ===== */

function setRotatorNav(buttonNum){
	
	var currStoryButton = $($('.row-control')[currStory]);
	var newStoryButton = $($('.row-control')[buttonNum]);
	
	$(currStoryButton).removeClass('active');
	//$(currStoryButton).css('backgroundPosition', '0 0');
	
	$(newStoryButton).addClass('active');
	//$(newStoryButton).css('backgroundPosition', '0 -11px');
	
	currStory = buttonNum;
	
}




