function validateAbstract() {
	
	var val = new _Validation();
	
	if (val.check_fields('abform')) {
		abobject.go();
	} else {
		alert('Please insert the required fields.\n(Required fields are marked with a red * (STAR))');
	}
	
}

var abstract = Class.create({
	initialize: function(action, formid, fileid, events) {
		var _this = this;
		this.upload = new AjaxUpload('abstract_file', {
			// Location of the server-side upload script
			// NOTE: You are not allowed to upload files to another domain
			action: action,
			// File upload name
			name: 'abstract_file',
			// Additional data to send
			data: {},
			// Submit file after selection
			autoSubmit: false,
			// Fired after the file is selected
			// Useful when autoSubmit is disabled
			// You can return false to cancel upload
			// @param file basename of uploaded file
			// @param extension of that file
			onChange: function(file, extension) {
				$(fileid).update('Upload: ' + file);
				if (events.onChange)
					events.onChange();
			},
			// Fired before the file is uploaded
			// You can return false to cancel upload
			// @param file basename of uploaded file
			// @param extension of that file
			onSubmit: function(file, extension) {
				_this.upload.setData($(formid).serialize(true));
				if (events.onSubmit)
					events.onSubmit();
			},
			// Fired when file upload is completed
			// WARNING! DO NOT USE "FALSE" STRING AS A RESPONSE!
			// @param file basename of uploaded file
			// @param response server response
			onComplete: function(file, response) {
				if (events.onComplete)
					events.onComplete(response);
			}
		});
	},
	go: function() {
		this.upload.submit();
	}
});
