var spinner = {

	onCreate: function() {
		if (!$('panel-dialog').visible()) {
			this.center();
			Element.show('spinner');
		}
	},

	onComplete: function() {
		if (Ajax.activeRequestCount == 0) {
			Element.hide('spinner');
		}
	},

	center: function() {
		var spinner_left = 0;
		var spinner_top	= 0;

		if (typeof(window.innerWidth) == 'number') {
			spinner_left = window.innerWidth;
			spinner_top = window.innerHeight;
		}
		else if (document.documentElement.clientWidth || document.documentElement.clientHeight) {
			spinner_left = document.documentElement.clientWidth;
			spinner_top = document.documentElement.clientHeight;
		}

		var elementDimensions = Element.getDimensions($('spinner'));
		var setX = ((spinner_left - elementDimensions.width) / 2);
		var setY = ((spinner_top - elementDimensions.height) / 2);

		setX = ( setX < 0 ) ? 0 : setX;
		setY = ( setY < 0 ) ? 0 : setY;

		$('spinner').style.left = setX + 'px';
		$('spinner').style.top  = setY + 'px';
	}

};

Ajax.Responders.register(spinner);
