// @name: FormDataSaver
// @type: Extension
// @author: Rocco Howard
// @version: 20070712

Bluora.FormDataSaver = function(savefields, prefield) {
	result = {};
	result.Ready = true;

	field_focus = '';
	result['Fields'] = savefields;
	result['Defaults'] = [];
	
	for (var i = 0; i < savefields.length; i++ ) {
		field = $(prefield+savefields[i]);
		if (field != null) {
			switch (field.type) {
				case 'checkbox':
					if (field.checked) {
						field_value = $$F(field);
					} else {
						field_value = '';
					}
					break;
				default:
					field_value = $$F(field);
			
			}
			result['Defaults'][savefields[i]] = $(field).defaultValue;

			if ((Element.hasClassName(field,'formdata_required') && field_value.length > 0 && field_value != 0)
				|| 	!Element.hasClassName(field,'formdata_required') 
				) {
				Element.removeClassName(field.parentNode, 'field_alert');
				if (field_value == undefined) { field_value = ''; }
				
				result[savefields[i]] = field_value;
			} else {
				if (result.Ready == true) {
					field.focus();
					field_focus = field.id;
				}
				Element.addClassName(field.parentNode, 'field_alert');
				result[savefields[i]] = '';
				result.Ready = false;
			}
			
			if (field_value == ''
				&& field_focus != field.id) {
				if (typeof Bluora.INPUTfieldExplaination != 'undefined') {
					Bluora.INPUTfieldExplaination(field,'deactiviate');
				}
			}
		} else {
			Bluora.log('Field ('+savefields[i]+') does not exist');	
		}
	}
	
	return result;
}