/**
 *
 */
 	function Request ( reciever )
	{
		/**
		 * Reference to this:
		 */
			var self = this;
			
		/**
		 * Params:
		 */
			this.reciever = reciever;
		
		/**
		 *
		 */
		 	this.__construct = function ( reciever ) { }
		
		/**
		 *
		 */
		 	this.exec = function ( args, callback, async )
			{
				this.callback = callback;
			
				var r = false;
				
				if ( window.XMLHttpRequest )
				{
					try { var r = new XMLHttpRequest ( ); }
					catch ( e ) { return false; }
				}
				else if ( window.ActiveXObject )
				{
					try { var r = new ActiveXObject ( 'Msxml2.XMLHTTP' ); }
					catch ( e )
					{
						try { var r = new ActiveXObject ( 'Microsoft.XMLHTTP' ); }
						catch ( e ) { return false; }
					}
				}

				if ( ! r ) return false;
				else
				{
					r.open ( 'POST', self.reciever, async == undefined ? true : false );
					r.setRequestHeader ( 'Content-Type', 'application/x-www-form-urlencoded' );
					r.onreadystatechange = function ( )
					{
						if ( r.readyState == 4 )
						{
							if ( typeof ( self.callback ) == 'function' )
							{
								self.callback ( r.responseText );
							}
						}
					}
					r.send ( 'data=' + serialize ( args ) );
				}	
			}
		
		/**
		 *
		 */
		 	addEvent ( window, 'load', function ( ) { self.__construct ( ) } );
	}