Request = new Class({

	Extends: Request,
	
	options: {
		/*onTimeout:$empty,*/
		timeout:false
	},

	send: function(options){
		var timeout=(this.options.timeout || (options ? options.timeout: null));
		if (timeout) {
			this.timeoutTimer=window.setTimeout( this.callTimeout.bindWithEvent( this) , timeout);
			this.addEvent('onComplete', this.removeTimer);
		}
		return this.parent(options);
	},

	callTimeout: function () {
		if (!this.running) return this;
		this.running = false;
		this.xhr.abort();
		this.xhr.onreadystatechange = $empty;
		this.xhr = new Browser.Request();
		this.fireEvent('onTimeout', this);
		return false;
	},
 
	removeTimer: function() {
		window.clearTimeout(this.timeoutTimer);
		return false;
	}
});


