function MbTransformedRequest(requestName)
{

    this.requestName = requestName;

	this.xmlurl;
	this.xslturl;
	
	this.listener;
	
	this.setXsltUrl = function(url) {
		this.xslturl = url;
	}

	this.setXmlUrl = function(url) {
		this.xmlurl = url;
	}
	
	this.getXmlData = function() {
		return this.xmlData;
	}

	this.getHtmlData = function() {
		if (this.xslData != null && this.xmlData != null){
			htmlData = xsltProcess(this.xmlData,this.xslData);
		}
		return htmlData;
	}
	
	this.setXmlData = function(xml) {
		this.xmlData = xml;
	}
	
	this.getXslData = function() {
		return this.xslData;
	}

	this.responseFailure = function(o)
	{
	   alert("Error loading " + this.requestName);
	}

	this.checkRequestComplete = function() {
		if (this.xmlData && this.xslData){
			this.loaded = true;
			statusMessage.showMessage(this.requestName + " Data Loaded");
			statusMessage.hideMessage(1000);
			this.listener.requestCompleted(this);
		}	
	}

	this.xmlResponseSuccess = function(o)
	{
		this.xmlData = o.responseXML;
		this.checkRequestComplete();
	}
		
	this.xmlCallback =
	{
	   success : this.xmlResponseSuccess,
	   failure : this.responseFailure,
	   scope: this
	};

	this.xslResponseSuccess = function(o)
	{
		this.xslData = o.responseXML;
		this.checkRequestComplete();
	}
		
	this.xslCallback =
	{
	   success : this.xslResponseSuccess,
	   failure : this.responseFailure,
	   scope: this
	};
			
	this.requestXmlData = function() {		
		YAHOO.util.Connect.asyncRequest('GET',this.xmlurl,this.xmlCallback);
	} 	

	this.requestXslData = function() {		
		YAHOO.util.Connect.asyncRequest('GET',this.xslturl,this.xslCallback);
	} 	
	
	this.reset = function () {
		this.xmlData = null;
		this.xslData = null;	
	}
	
	this.requestData = function() {
		statusMessage.showMessage("Loading " + this.requestName + " Data");
		this.reset();
		this.requestXslData();
		this.requestXmlData();
	}
	
    /**a listener is required and the object must have a method named requestCompleted that accepts an MbHttpRequest object as a parameter*/
    this.registerListener = function(listener)
    {
        this.listener = listener;
    }
}
