try {
	// =====================================================================
	// Form Submission Hijacking
	// =====================================================================
	$('form').live('submit', function(e) {
		var formMethod = $(this).attr('method').toLowerCase();

		if(formMethod == 'javascript' || (formMethod != 'post' && formMethod != 'get')) {
			try {
				// Setup
				var target = null;
				var $this = $(this);
				var params = {};
				var form = $this.serializeArray();

				// Assemble Form Data
				$.each(form, function() {
					if(params[this.name]) {
						if(!params[this.name].push) {
							params[this.name] = [params[this.name]];
						}

						params[this.name].push(this.value || '');
					}
					else {
						params[this.name] = this.value || '';
					}
				});

				var parts = $this.attr('action').split('.');
				var method = parts.shift();
				params._action = parts.join('.');

				$(this).find('input, select, textarea').blur();
				e.preventDefault();

				if(method == 'local') {
					$this.trigger('response', params);
				}
				else if(method == 'ajax') {
					// Submit AJAX Request (based on form's action attribute)
					$.ajax({
						type: 'POST',
						url: 'ajax.php',
						data: params,
						dataType: 'json',
						success: function(data) {
							$this.trigger('response', data);
						}
					});
				}

				return false;
			}
			catch(ex) {
				console.error('An error occurred while processing your submission. Please try again or contact a website administrator.');
				e.preventDefault();
				return false;
			}
		}
	});
}
catch(ex) {
	console.error('An unexpected error occurred with the current form. Please try reloading the page or contact a website administrator.');
}
