function visible_on_screen(element)
{
	element	= $(element)
	
	while(element && element != document)
	{
		if(! element.visible())
			return false;
			
		element = element.up();
	}
	
	return true;
}

function focusInitialField(field)
{
	if(field)
	{
		document.focused_field = $(field);
		document.focused_field.activate();
	}
	else
	{
		if(document.focused_field)
			return;

		// Activate first field in error... 
		var errorFields = $$('span.form_field_in_error');
	
		if(errorFields.length > 0)
			document.focused_field = errorFields.first().down('input[type=text]', 'textarea');
		else
		{
            if( ! document.forms[0] )
                return;
            
			// ...or first visible and editable field
            document.focused_field = document.forms[0].findFirstElement(); //getElements().find(function(field)
            if(document.focused_field.tagName.toLowerCase() != 'textarea')
                document.focused_field = document.forms[0].getInputs('text').first();
		}
	}
	
	if(document.focused_field)
		document.focused_field.activate();	
}

function setUpExternalLinks()
{
    $$('a[rel=external]').each(function(link){
        link.target = "_blank";
    });
}

document.observe('dom:loaded', function()
{
    setUpExternalLinks();
	focusInitialField();
});
