/*
	functions.dom.css
	DOM Interactivity Functions
	Created: April 23, 2008
	Creator: Matt Kircher, Mainline Media LLC
*/

function setupPage(){
	
	translateEmails();
	
	//navigation
	$('#main-nav, #functional-nav, #sub-nav, #footer-main-nav, #footer-functional-nav').each(function(){ $(this).find('> ul > li:last').addClass('end_nav'); });
	
	//content clearfix
	$('#content').append('<div class="clearfix">&nbsp;</div>');
	
	//sub-content left (accent block)
	if($('#sub-content').length){ $('.home #sub-content').prepend('<div id="accent_block"></div>'); }
	if($('#sub-nav-content').length){ $('.subpage #sub-nav-content').prepend('<div id="accent_block"></div>'); }
	
	//sub-content modules
	if($('#sub-content').length){ $('.module:gt(0)').css({ marginTop:'10px' }); }
	
	//header / p proximity styles
	$('#content')
	.find(':header:gt(0)').css({ marginBottom:'0px', paddingTop:'0px', marginTop:'12px' }).end()
	.find('.special_area1 > :header').css({ marginTop:'0px', marginBottom:'0px' }).end()
	.find(':header + p, :header + ul, :header + ol, :header + blockquote').css({ marginTop:'0px', paddingTop:'0px' });
	
	$('.home .special_area1').prepend('<div id="special_area1_globe"></div>');
	
	//img floating properties
	$('#main-content > img[@align="left"]').css({ margin:'0px 12px 12px 0px' });
	$('#main-content > img[@align="right"]').css({ margin:'0px 0px 12px 12px' });
	
	//management team
	if($('#management_team_listing').length){
		$('#management_team_listing li').append('<p><a href="#">Back to top</a></p>');
	}
	
	//FAQ
	if($('#faq').length){	
		$('#faq')
		.find('dd').hide().end()
		.find('dt').each(function(){
			var inner = $(this).html();
			$(this).html('<a href="#" rel="hide" title="Click to reveal answer...">'+inner+'</a>');
			
			$(this).find('a').bind('click', function(){
				if($(this).attr('rel') == 'hide'){
					$(this).attr('rel', 'show');
					$(this).parent().next().show();			      
				} else {
					$(this).attr('rel', 'hide');
					$(this).parent().next().hide();
				}
				$(this).trigger('blur');				
				return false;
			});
		});
	}
}

// ** requires jquery dimensions plugin **
function setupHeights(){
	
	if($('#content').height() < $('#main-content').outerHeight() ||
	   $('#content').height() < $('#sub-content').outerHeight()){		
		$('#content')[0].style.height = eval($('#main-content').outerHeight())+"px";
		if($('#sub-content').length > 0){
			if(BrowserDetect.browser == "Explorer"){
				$('#sub-content')[0].style.height = '1px';
			}
			$('#sub-content')[0].style.height = eval($('#main-content').outerHeight())+"px";
		}
	} else {		
		if($('#sub-content').length > 0){
			if(BrowserDetect.browser == "Explorer"){
				$('#sub-content')[0].style.height = '1px';
			}
			$('#sub-content')[0].style.height = eval($('#content').height())+"px";
		}
	}
	$(document).bind('resize', setupHeights);
}

function translateEmails(){
	$('span.email, address.email').each(function(){
		var spt = $(this);
		var at = / at /;
		var dot = / dot /g;		
		
		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();
	});
}

/* IE RELATED */

function applyIE6FlickerFix(){
	try {
	  document.execCommand("BackgroundImageCache", false, true);
	} catch(err) {}
}

$(document).ready(function(){
	applyIE6FlickerFix();
	setupPage();
});