/**
 * This class serves as the manager class for the xml-http request object on web browsers from 
 * Microsoft(tm).<br><br>
 * <b>Important Notes:</b>
 * <ul>
 * <li>
 * In order to obtain a new <code>XmlHttpRequest</code> object for the platform
 * on which your application is running, do not create an object from this class directly.  Instead,
 * call the static method <code>self.Environment.getNewXmlHttpRequest</code>. 
 * </li>
 * <li>
 * In order to send a message, do not create a new <code>XmlHttpRequest</code> object.  Instead,
 * call the <code>send</code> method on an object of the <code>Messenger</code> datatype.
 * </li>
 * </ul>
 * <br>
 * This class serves to augment the standard <code>XmlHttpRequest</code>
 * object that is built-in to some web browsers with an i.d. and unique <code>onreadystatechange</code> 
 * event handler method.  While 
 * this class hiearchy gives great flexibility, please note that it is actually 
 * necessitated by the non-JavaScript-compliant immutability of the XmlHttpRequest object from
 * Microsoft(tm), which is an 'ActiveX' object.  Otherwise, we could add the properties we
 * need with a simple augmentor-method.
 * <br><br>
 * <a href="mailto:ehudsons@andrew.cmu.edu">Ellen Hudson-Snyder</a>, 
 * <a href="mailto:evedar@andrew.cmu.edu">Elvin Vedar</a>,
 * <a href="mailto:cbalz@andrew.cmu.edu">Christopher M. Balz</a>.
 * <br><br>CVS Version Info:<br>
 *  $Id: MSXmlHttpRequest.js,v 1.7 2005/12/09 05:44:18 evedar Exp $    
 * <br>
 * @inherits-from <code>AbstractXmlHttpRequest</code>
 * @emits-event <code>onreadystatechange</code>  This event is emitted by the xml-http request object that is 
 *                                               held as a property of this object.  The event travels as 
+ *                                               emitted from this object.
 * @class-prop: <code>string</code> <code>strSignature</code>  The signature of the Microsoft (tm) Active X Object to use to find the 
 *                                  xml-http request constructor.
 * @author Team GigaToasted (Fall-2005-CMU-NASA/Google-Practicum Subteam) 
 * @version 1.0
 */

MSXmlHttpRequest.prototype = new AbstractXmlHttpRequest();

MSXmlHttpRequest.strSignature = "Unset as of yet";

/**
 * Creates a new <code>MsXmlHttpRequest</code> object.
 * @param pStrRequestUri <code>string</code> The uri pointing to the 
 *                       requested resource (for example, an xml file on a server).
 * @param pStrMethod <code>string</code> OPTIONAL, MAY BE <code>null</code> Either 'get' or 'post'. Defaults to
 *                   'get'.
 * @param pBooAsynchronous <code>boolean</code> OPTIONAL, MAY BE <code>null</code> Whether or
 *                          not the request is to be asynchronous.  Defaults to 'true'.
 */
function MSXmlHttpRequest(pStrRequestUri, pStrMethod, pBooAsynchronous) {    
    this.superC(new ActiveXObject(MSXmlHttpRequest.strSignature), pStrRequestUri, pStrMethod, pBooAsynchronous);  
}                         
