/*
	functions.dom.js
	JQuery / DOM Interaction Functions
	Created: 4.20.2009
	Creator: Matt Kircher
*/

/* GENERAL */
function setupPage(){
	
	translateEmails();		//changes unlinked email address to usable ones (spam protection)
	
	//navigation
	$('#main-nav li:last').addClass('end_nav');
	
	//proximity
	$('.subpage :header').css({ marginBottom:'10px' });
	
	//cufon
	Cufon.replace('#main-nav a, .home #masthead-content form h3, .home #dealerSubmit, .home #main-content h3, .subpage :header', { hover:true, fontFamily: 'Gotham Medium' });
	Cufon.replace('.home #masthead-content h2, .home #masthead-content p, .subpage #masthead-content h2', { fontFamily: 'Gotham Book' });
	
	//home
	$('#home-about h4:gt(0)').addClass('bordered');
	
	//misc
	$('.pdf_link').prepend('<img src="images/pdf_icon_small.gif" alt="[PDF]" align="baseline" style="margin-right:10px;" />');
}

//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();
	});
}

//interactive accordian
function initInfoAccordian(){
		
	$('.info_accordian').each(function(index){
		
		// noNav	  = doesn't add to #sub-content
		// addToSubNav  = add content to #sub-nav
		// hasHeader    = adds header to the #sub-content		
		if(!$(this).hasClass('noNav')){
			if($(this).hasClass('addToSubNav')){
				$('#sub-nav ul:eq(0)').css({ paddingBottom:'10px', borderBottom:'1px solid #EEE4CB' });
				
				//add header?
				if($(this).hasClass('hasHeader')){ $('#sub-nav').append('<h4>'+$(this).attr('title')+'</h4>'); }
				
				//append
				$('#sub-nav').append('<ul id="ia-nav-'+index+'"></ul>');
			} else {
				//add <hr>?
				if($('#sub-content').children().length > 0){ $('#sub-content').append('<hr />');  }
				
				//add header?
				if($(this).hasClass('hasHeader')){ $('#sub-content').append('<h4>'+$(this).attr('title')+'</h4>'); }
				
				//append
				$('#sub-content').append('<div id="ia-nav-'+index+'" class="info_accordian_nav"><ul></ul></div>');
			}			
		}
		
		var iaNavIndex = index;
		$(this).find('dt').each(function(index){
			
			//interaction
			$(this)
			.attr('id', 'ia-'+iaNavIndex+'-'+index)
			.hover(
				function(){ $(this).addClass('hover'); $(this).siblings().removeClass('hover') },
				function(){ $(this).removeClass('hover'); }
			)
			.click(function(){
				if(!$(this).hasClass('open')){
					$(this).addClass('open').next('dd').slideDown(700, 'easeOutCubic');
				} else {
					$(this).removeClass('open').next('dd').slideUp(700, 'easeOutCubic');
				}
				return false;
			})
			.find('a')
			.addClass('clearfix').wrapInner('<span class="title"></span>');
			
			//add description if available
			if($.trim($(this).find('a').attr('title')).length < 1){
				$(this).find('span.title').css({ width:'100%' });
			} else {
				$(this).find('a').append('<span class="desc">'+$(this).find('a').attr('title')+'</span>');
			}
			
			if($('.info_accordian:eq('+iaNavIndex+')').hasClass('addToSubNav')){
				//add dt to the sub nav
				$('#sub-nav #ia-nav-'+iaNavIndex)
				.append('<li><a href="#ia-'+iaNavIndex+'-'+index+'">'+$(this).find('span.title').text()+'</a></li>')
				.find('a:last')
				.bind('click', function(){
					$('dt#ia-'+iaNavIndex+'-'+index).trigger('click'); return false;
				});
			} else {
				//add dt to the generated nav
				$('#ia-nav-'+iaNavIndex+' ul')
				.append('<li><a href="#ia-'+iaNavIndex+'-'+index+'">'+$(this).find('span.title').text()+'</a></li>')
				.find('a:last')
				.bind('click', function(){
					$('dt#ia-'+iaNavIndex+'-'+index).trigger('click'); return false;
				});
			}
		});
	});
	
	$('.info_accordian_nav ul li a').each(function(){
		
	});
}

/* INITIALIZATION */
$(document).ready(function(){ setupPage(); });
