/******************************************
 * The OnePica AJAX Request Class
 ******************************************/
if (typeof onepica.Ajax == 'undefined' || !onepica.Ajax) {
    onepica.Ajax = {};
}
onepica.Ajax.Request = Class.create(Ajax.Request, {
	/**
	 * Constructor
	 *
	 * @param string url: The Request URL
	 * @param hash options: See http://www.prototypejs.org/api/ajax/options
	 */
	initialize: function ($super, url, options) {
		if (!options) {
			options = {};
		}
		if (!options['parameters']) {
			options['parameters'] = {isAjax: 1};
		}
		else {
			options['parameters']['isAjax'] = 1;
		}
		$super(url, options);
	}
});

/*
function callInProgress (xmlhttp) {
	switch (xmlhttp.readyState) {
		case 1:
		case 2:
		case 3:
			return true;
			break;
		// Case 4 and 0
		default:
			return false;
			break;
	}
}

function showFailureMessage() {
	var message = "Sorry, but an internal server error was detected and you request could not be completed.  Please try again later.";
	if (screenManager) {
		screenManager.getMessage().setUnstyledMessage(message);
		screenManager.getMessage().showMessage();
	}
}

function hideTimeoutMessage () {
	if (screenManager)
		screenManager.getMessage().hideMessage();
}

// Register global responders that will occur on all AJAX requests
Ajax.Responders.register({
	onCreate: function(request) {
		hideTimeoutMessage();
		request['timeoutId'] = window.setTimeout(function() {
			// If we have hit the timeout and the AJAX request is active, abort it and let the user know
			if (callInProgress(request.transport)) {
				request.transport.abort();
				showFailureMessage();
				// Run the onFailure method if we set one up when creating the AJAX object
				if (request.options['onFailure']) {
					request.options['onFailure'](request.transport);
				}
			}
		}, 15000);  // 15 seconds
	},
	onComplete: function(request) {
		// Clear the timeout, the request completed ok
		window.clearTimeout(request['timeoutId']);
	}
});
*/
