function quicksave( formId )
{
	var asDiv = $(formId + '_qsave');
	asDiv.update('<iframe id="' + formId + '_qsave_iframe" name="' + formId + '_qsave_iframe" style="display:none;"></iframe>');
	
	originalTarget = $(formId).getAttribute('target');

	$(formId).setAttribute('target', formId + '_qsave_iframe');
	
	submitForm( formId, 0);
	
	$($(formId + '_qsave_iframe')).observe('load', function(event){
	  asDiv.update();
	 });
	
	Effect.Appear(formId + '_msg', {duration:0.5}); 
	window.setTimeout('Effect.Fade(\'' + formId + '_msg\')',2500);
	
	if( originalTarget == null )
		originalTarget = '_self';
		
	$(formId).setAttribute('target', originalTarget);
}

function calculateProgressbar( id ){
	buildProgressbar( $(id) );
}

function buildProgressbar( element )
{
	maxLength = element.readAttribute('maxlength');
	if( maxLength > 0 && maxLength < 10000 )
	{
		totalWidth = element.getWidth();
	
		if( !element.getValue() )// ie fix for textareas
			value = element.value;
		else
			value = element.getValue();
			
		valueLength = value.length;
	
		if( valueLength > maxLength )
			element.value = value.truncate(maxLength, '');

		if( valueLength == 0 )
			newLength = 0;
		else
			newLength = totalWidth / maxLength * valueLength;
		
		if( newLength > totalWidth )
			newLength = totalWidth;
	
		if( $(element.id + '_progressbar') )
		{
		
			$(element.id + '_progressbar').style.backgroundColor = (element.readAttribute('required') ? "#55929F" : "#C1CED8");		
			$(element.id + '_progressbar').style.width = newLength + 'px';	
		}
	}
}

function checkProgressbars( formElement )
{
	setTimeout("$A($('" + formElement + "').getInputs('text')).each( function(e){if( e.readAttribute('maxlength') > 0 && e.readAttribute('maxlength') < 10000 ) buildProgressbar(e);} );", 400);
}
