//----------------------------------------------------------------------
// Constants

var EMAIL_REGEX = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;


//----------------------------------------------------------------------
// Start her up

document.observe( 'dom:loaded', initPage );


//----------------------------------------------------------------------
// initPage

function initPage()
{
	// External links
	initExternalLinks();
	
	// Contact Form
	initUpdatesForm();
	
	// Home Flash
	initHomeFlash();
}


//----------------------------------------------------------------------
// initExternalLinks

function initExternalLinks()
{	
	// set any external links to target='_blank'
	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(); // aLink.readAttribute('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');
		}
	}
}

//----------------------------------------------------------------------
// initUpdatesForm

function initUpdatesForm()
{	
	if ( !$('updates-form') ) return;
	
	var labels = $('updates-form').select('label');
	for ( var i = 0; i < labels.length; i++ )
	{
		var inputId = labels[i].readAttribute('for');
		var label = labels[i].innerHTML;
		var input = $(inputId)
		input._label = label;
		input.value = input._label;
		input.observe( 'focus', onFormElFocus );
		input.observe( 'blur', onFormElBlur );
	}
	
	$('updates-form').observe( 'submit', validateForm );
}
function onFormElFocus( event )
{
	//Event.stop( event );
	var input =  $(event.element());
	var curVal = input.getValue();
	if ( curVal == input._label ) input.clear();
}
function onFormElBlur( event )
{
	//Event.stop( event );
	var input = $(event.element());
	var curVal = input.getValue();
	if ( curVal.blank() ) input.value = input._label;
}


//----------------------------------------------------------------------
// validateForm

function validateForm( event )
{
	Event.stop( event );
	var f = event.element();
	var fields = f.getElements('text');
	var isValid = true;
	var errorString = '';
	
	for ( var i = 0; i < fields.length; i++ )
	{
		var field = fields[i];
		var label = field._label;
		var value = $(field).getValue();
		
		if ( field.hasClassName('email') && field.hasClassName('required') )
		{
			if ( !validateEmail( value ) )
			{
				errorString = errorString + '- "' + label + '" field requires a valid email address\n';
				isValid = false;
			}
		}
		else if ( field.hasClassName('required') )
		{
			if ( value.blank() || value == label )
			{
				errorString = errorString + '- "' + label + '" field is required\n' ;
				isValid = false;
			}
		}
	}
	
	// submit or alert
	if ( isValid == true )
	{ 
		f.submit();
	} 
	else 
	{ 
		alert( "There was an error with your request:\n\n"+ errorString );
	}	
}
function validateEmail( email )
{      
	return EMAIL_REGEX.test( email ); 
}


//----------------------------------------------------------------------
// initHomeFlash

function initHomeFlash()
{
	if ( !$('flash-link') ) return;
	
	var flashvars =
	{
		clickTag: escape('https://interland3.donorperfect.net/weblink/weblink.aspx?name=threesquare&id=3')
	};
	var params = {
		menu: "false",			// hide Flash Player menu
		bgcolor: "#FFFFFF"		// set bgcolor
	};
	var attributes = {
		id: "flash-swf",
		name: "flash-swf"
	};
	swfobject.embedSWF( "swf/FHH_400x300.swf", "flash-link", 400, 300, "9.0.0", false, flashvars, params, attributes );	
}
