//----------------------------------------------------------------------
// Start her up

document.observe( 'dom:loaded', initApp );


//----------------------------------------------------------------------
// debugTrace

function debugTrace( str )
{
	if ( !$('debug') ) return;
	$('debug').update( $('debug').innerHTML + str + '<br />' );
}


//----------------------------------------------------------------------
// initApp

function initApp()
{
	debugTrace( 'initApp' );
	
	// Initialize the page
	initXHTML();
	
	// Set external links to pop new tabs
	initExternalLinks();
	
	// Events
	initEventHandlers();
}


//----------------------------------------------------------------------
// initXHTML

function initXHTML()
{	
	debugTrace( 'initXHTML' );
		
	// Change nav links
	var navLinks = $('nav').select('a');
	for ( var i = 0; i < navLinks.length; i++ )
	{
		if( navLinks[i].href.include('#') )
		{
			var section = navLinks[i].href.split('#')[1];
			navLinks[i].href = '/#/' + section + '/';
		}
	}
}


//----------------------------------------------------------------------
// initExternalLinks

function initExternalLinks()
{	
	debugTrace( 'initExternalLinks' );
	
	var hostname = window.location.hostname.sub('www.','').toLowerCase();
	if ( hostname.empty() ) return;
	
	var aLinks = $$('a');
	for ( var i = 0; i < aLinks.length; i++ )
	{
		var aLink = aLinks[i];
		var url = aLink.href.toLowerCase();
		
		if ( url.startsWith('http://') || url.startsWith('https://') )
		{
			if ( url.startsWith('http://') ) url = url.sub('http://','');
			else if ( url.startsWith('https://') ) url = url.sub('https://','');
			if ( url.startsWith('www.') ) url = url.sub('www.','');
			if ( !url.startsWith( hostname ) ) aLink.writeAttribute('target', '_blank');
		}
		else if ( aLink.hasClassName('pop-up') )
		{
			aLink.writeAttribute('target', '_blank');
		}
	}	
}


//----------------------------------------------------------------------
// initEventHandlers 

function initEventHandlers()
{
	// To Top link
	var toTopLink = $$('p#toTop a')[0];
	Event.observe( toTopLink, 'click', function( event )
	{
		Event.stop( event );
		this.blur();
		new Effect.ScrollTo( 'head', { duration:0.5, transition:Effect.Transitions.EaseFromTo } );
	});
}