var Loading = Class.create();
Loading.prototype = {
	initialize: function( p_sMessage ) {

		var oBody = document.getElementsByTagName("body").item(0);

		// Add overlay
		var oOverlay = document.createElement("div");
		oOverlay.onclick = function() { MyLoading.end(); return false; }
		oOverlay.setAttribute( 'id','overlay' );
		oOverlay.style.display = 'none';
		oBody.appendChild( oOverlay );

		// Resize overlay to full browser
		var aSize = getPageSize();
		oOverlay.style.width = aSize[0] + 'px';
		oOverlay.style.height = aSize[1] + 'px';	

		// Fade in overlay
		new Effect.Appear('overlay', { duration: 0.5, from: 0.0, to: 0.5 });

		// Add loading frame
		this.oLoading = document.createElement( 'div' );
		this.oLoading.setAttribute( 'id', 'loading' );
		$( this.oLoading ).update( p_sMessage + '<br />' );
		oBody.appendChild( this.oLoading );

		var l_eImage = document.createElement( 'img' );
		l_eImage.setAttribute( 'src', 'images/loading.gif' );
		this.oLoading.appendChild( l_eImage );
	},

	end: function() {
		// Remove the login overlay.
		Element.remove( 'loading' );
		new Effect.Fade( 'overlay', {duration: 0.3} );
	},

	error: function( p_sMessage ) { 
		this.oLoading.update( p_sMessage );
	}
}
