/**
 * Global application behaviours
 */

$(document).ready(function()
{
	//If there are any notices currently being displayed, fade them out
	if($('#flash-notices'))
		setTimeout('fade_flash_notices()',5000);
	
	//Auto Focus first form text element on page
	var focused_element_index = null;
	$('input').each(function(i){
		if(this.type == "text" && focused_element_index == null)
		{
			this.focus();
			focused_element_index = i;
		}
	});
	
	//Auto validate forms
	$('form').bind("submit",validate_form);
	
	$('a.popup-link').bind('click',function(){
		window.open(this.href);
		return false;
	});
	
	var reset_fields = [];
	$('form .clear-on-focus').bind('focus',function(){
		if(!reset_fields[this.id])
		{
			this.value = '';
			reset_fields[this.id] = true;
		}
	});
});

function fade_flash_notices()
{
	$('#flash-notices').fadeOut(1500, function() {
       $(this).remove()
    });
}

//Validates required fields on a form
function validate_form()
{
	var validation_errors = 0;
	$('.required input, .required textarea, .required select',this).each(function(i){
		if(this.value == null || this.value == "")
		{
			validation_errors++;
			$(this).addClass("error");
			$(this).bind('blur',check_required_field);
		}
		else
			$(this).removeClass("error");
	});
	
	return !(validation_errors);
}

//Checks if a field is still required
function check_required_field()
{
	if(this.value != null && this.value != "")
	{
		$(this).removeClass("error");
		$(this).unbind('blur',check_required_field);
	}
}