/*
	functions.site.js
	JQuery / DOM Interaction Functions
	Creator: Matt Kircher
*/

/* GENERAL */
function setupPage(){
	
	translateEmails();		//changes unlinked email address to usable ones (spam protection)
	
	//rounded edging
	$('.rounded_button').css({ display:'block', float:'left' }).parent().addClass('clearfix');
	if(!$.browser.msie){
		$('#footer-content').corners("12px bottom");			//footer content rounded edges
		$('.rounded_button').corners("12px transparent anti-alias");	//rounded buttons
	}
	
	//proximity / heights
	$('.equalheights').equalHeights();
	
	$('#content').find(':header + :header').not('.nosubhead').addClass('subhead');
	$('#content').find(':header + .nosubhead').css({ marginTop:'20px' });
	$('#main-content').find('p + :header, ul + :header, ol + :header').css({ marginTop:'20px' });
	
	if($('#main-content .left_column').length > 0 && 
	   $('#main-content .right_column').length > 0)$('#main-content').equalHeights(100, 100);
	
	if(!$.browser.msie){		
		$('#content').equalHeights();
		$('#masthead .index #masthead-content-flash ul').equalHeights();
	} else {
		$('#content').equalHeights(100, 100);
	}
	
	//colorbox
	$('.registration_popup').colorbox({ iframe:true, height:320, width:375 });
}

//interactive accordian
function initInfoAccordian(){
		
	$('.info_accordian').each(function(index){
				
		var iaNavIndex = index;
		$(this).find('dt').each(function(index){
			
			$(this).wrapInner('<a href="#" title="Click to view..."></a>');
			
			//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).find('a > span.desc').text('Click to close [x]');
					$(this).addClass('open').next('dd').slideDown(700, 'easeOutCubic');
				} else {
					$(this).find('a > span.desc').text($(this).find('a').attr('title'));
					$(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(window.location.hash){
		var sections = window.location.hash.substr(1).split(",");
		for(x=0; x<sections.length; x++){
			var section = '#'+sections[x];
			if($(section).length){
				$(section).prev().find('> a').trigger('click');
			}
		}
	}
}

//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();
	});
}

function setupNewsPagination(){
	
	var currentPage = 0;
	var numPerPage = 5;
	
	$('#news').each(function() {
	
		var $listing = $(this);
		
		$listing.bind('repaginate', function() {	
			
			var n = currentPage * numPerPage;
			var x = ((currentPage + 1) * numPerPage - 1);
										
			$listing.find('.news_item').show();
			$listing.find('.news_item:lt('+n+')').hide().end();
			$listing.find('.news_item:gt('+x+')').hide().end();
		});
	
		var numRows = $listing.find('.news_item').length;			
		var numPages = Math.ceil(numRows / numPerPage);			
		
		if(numRows > numPerPage){
			var $pager = $('<p class="pager clearfix"><b>Page:</b></p>');
			var $pager2 = $pager.clone(true);
			
			for (var page = 0; page < numPages; page++) {			
				$('<a href="#" class="page-number">' + (page + 1) + '</a>')
				.bind('click', {'newPage': page}, function(event) {
					currentPage = event.data['newPage'];
					$listing.trigger('repaginate');
					
					$('.pager').find('a:eq('+eval(currentPage)+')').addClass('active').siblings().removeClass('active');
					$(this).trigger('blur');
					return false;
				})
				.appendTo($pager).addClass('clickable')
				.clone(true).appendTo($pager2);
			}
			$pager.find('a.page-number:first').addClass('active');
			$pager2.find('a.page-number:first').addClass('active');
			
			$pager.insertBefore($listing);
			$pager2.insertAfter($listing);
			
			$listing.trigger('repaginate');
		}
	});	
}

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