/*
	functions.dom.js
	JQuery / DOM Interaction Functions
	Created: Sept. 20, 2008
	Creator: Matt Kircher
*/

/* GENERAL */
function setupPage(){
	
	applyIE6FlickerFix();	//IE6 Flickering issue
	BrowserDetect.init();	//start browser detection object
	translateEmails();		//changes unlinked email address to usable ones (spam protection)
	
	//font replacement
	$('#home-features h3, #main-content h2').css({ fontSize:'18px' });
	Cufon.replace('#home-features h3, #main-content h2');
	
	//navigation
	$('#main-nav ul').append('<li><a href="index.php">Home</a></li>');
	$('#footer-functional-nav li:last').not('.blog #footer-functional-nav li:last').remove();
	$('#main-nav ul, #functional-nav ul, #sub-nav > ul, #footer-functional-nav ul, #legal').find('> li:last').addClass('end_nav');
	$('#sub-nav > ul').find('> li:first').addClass('begin_nav');
	
	//proximity
	$('.subpage').find(':header, p').css({ margin:'15px 0px 10px' });
	
	//dimensions
	$('.subpage #content').addClass('clearfix');
}

//makes email tags invisible to spiders / spammers
function translateEmails(){
	$('span.email, address.email').each(function(){
		var spt = $(this);
		var at = / at /;
		var dot = / dot /g;		
		
		//EXAMPLE: <span class="email" title="link title | email address | email subject"> link content </span>		
		
		var inner_content = $(spt).html();						//inner HTML of span tag
		var t = $(spt).attr('title');						//email, link options from title attribute
		
		var title = t.substring(0, t.indexOf('|'));				//title for the link
		t = t.substring(t.indexOf('|')+1);
		
		var addr = t.substring(0, t.indexOf('|'));				//email address from id attribute
		addr = addr.replace(at,"@").replace(dot,".");				//replace words with chars
		
		var subject = t.substring(t.indexOf('|')+1);				//subject for email, if needed
		var fulladdr = ($.trim(subject) != "")?addr+'?subject='+subject:addr;	//full address formed with subject, if needed
		
		inner_content = ($.trim(inner_content) == "" || $.trim(inner_content) == "&nbsp;")?addr:inner_content;
		
		$(spt).after('<a href="mailto:'+fulladdr+'" title="'+title+'">'+ inner_content +'</a>')
		.hover(function(){window.status="Send an email!";}, function(){window.status="";});
		$(spt).remove();
	});
}

//show cycle of word on homepage with 'ida' in them
function idaHomeWords(){
	if($('#home-ida-words').length){
		$('#home-features').equalHeights();	
	}
}

//slidebox functionality
function setupSlidebox(){
	if($('#philosophy-sub-nav, #team-sub-nav, #process-sub-nav').length){
		
		var counter = 0;
		$('#philosophy-sub-nav li, #team-sub-nav li, #process-sub-nav li').each(function(){
			$(this)
			.addClass(eval(counter*650)+'px')
			.find('a').bind('click', function(){
				var movePos = $(this).parent().attr('class');
				if($('#slidebox').length){
					$('#slidebox-wrap').animate({ opacity:'0.5' }, 250, 'easeInOutSine', function(){
						$('#slidebox-wrap').animate({ left:movePos }, 500, 'easeInOutSine', function(){
							$('#slidebox-wrap').animate({ opacity:'1.0' }, 250, 'easeInOutSine');								      
						});
					});
				}
				return false;
			});
			counter--;
		});
	}
	
	if($('#slidebox').length){
		var sb = $('#slidebox');
		
		$('#slidebox-wrap').equalHeights();
		
		sb.addClass('clearfix')
		.find('#slidebox-wrap')
		.css({ position:'relative', width:eval(650 * sb.find('div:not("#slidebox-wrap")').length)+'px' })
		.find('> div').show()
		.css({ width:'620px', marginRight:'30px' });
	}
}

function getHash(){
	var h 	  = location.hash.substring(1);
	var hash = ($.trim(h) != "")?h:null;
	return hash;
}

//portfolio
function initPorfolio(){
	if($('#portfolio').length){
		
		//insert viewer
		$('<div id="portfolio-viewer-wrap"><div id="portfolio-viewer"></div></div>').insertBefore($('#portfolio'));
		
		$('#portfolio ul li img').each(function(){ 
		      $(this).wrap('<a href="'+$(this).attr('src')+'" title=""></a>');
	      });
		
		//id each portfolio project
		$('#portfolio > div').each(function(index){
			$(this).attr('id','p'+index).addClass('clearfix');
		});
		
		//show first or specific project
		var h = getHash();
		var specific_project = ($.trim(h) != "" && $('#portfolio > div.'+h).length > 0)?h:null;
		if(specific_project != null){
			$('#portfolio > div.'+specific_project).siblings().hide();
		} else {
			$('#portfolio > div:gt(0)').hide();
		}
		$('#portfolio').find('h3, h4, ul').show();
		
		//thumbs
		$('#portfolio ul').addClass('clearfix').each(function(){ $(this).parent().prepend($(this)); });
		$('#portfolio ul li a').click(function(){
			
			$(this).parent().addClass('selected').siblings().removeClass('selected');
			
			//show thumb image
			var img = $(this).find('> img').attr('src');
			$('#portfolio-viewer').fadeOut('slow', function(){
				$(this).css({ opacity:0, background:"url("+img+") 25px 25px no-repeat #FFF"}).show().animate({ backgroundPosition:'0px 0px', opacity:1 }, 700);
			});
			
			return false;
		});
		
			//format single thumbnail entries
			$('#portfolio ul').each(function(){
				if($(this).find('li').length <= 1){ $(this).hide(); $(this).parent().find('h3').css({ borderTop:'none', paddingTop:'0px' }); }
			});
		
		//portfolio-nav
		$('#portfolio h3').each(function(){
			$('#portfolio-nav').append('<li><a href="#" title="View this client...">'+$(this).text()+'</a></li>');
		});
		$('#portfolio-nav > li:first').addClass('begin_nav');
		$('#portfolio-nav a').click(function(){
			var i = $('#portfolio-nav a').index($(this));
			var target = $('#portfolio > div#p'+i);
			
			//title
			$(this).addClass('selected').parent().siblings().find('a').removeClass('selected');
			$('#main-content h2').fadeOut('fast', function(){ 
				$(this).text($('#portfolio-nav a.selected').text());
				$(this).fadeIn('slow');
			});
			
			//viewer
			$('#portfolio-viewer').fadeOut('slow');
			
			//thumbnails
			$('#portfolio > div:eq(0)').fadeOut('slow', function(){
				$(target).prependTo($('#portfolio')).fadeIn('slow', function(){
					$(target).find('ul li a:eq(0)').trigger('click');
				});
			});
			
			return false;
		});
		
		$('#portfolio').equalHeights();
		
		//first one
		if(specific_project != null){
			var i = $('#portfolio div.'+specific_project).attr('id').substring(1);
			$('#portfolio-nav li:eq('+i+') a').trigger('click');
		} else {
			$('#portfolio-nav li:eq(0) a').trigger('click');
		}
		
		$('#portfolio').fadeIn(500);
	}
}

/* IE RELATED */
function applyIE6FlickerFix(){
	try {
	  document.execCommand("BackgroundImageCache", false, true);
	} catch(err) {}
}


/* INITIALIZATION */
$(document).ready(function(){
	setupPage();
});
