

// Class for replacing HTML using XSL transformation

function BxContent ()
{
    this._iForceServerXsl = 0;
}

BxContent.prototype.getXmlNodeValue = function (sXmlUrl, sXmlNode)
{
    var $this = this;

	var h = function (r)
	{		
		var o = new BxXmlRequest('','','');			
		var ret = o.getRetNodeValue (r, sXmlNode);
        $this.onLoadComplete (ret);
	}	
	
	new BxXmlRequest (sXmlUrl, h, true);

    return false;
}

BxContent.prototype.add = function (rElement, sXML, sXSL) {	
    if (!sXML.length) sXML = aBxConfig['urlRoot'] + "Util/empty_xml/";
    if (!sXSL) return false;    
    
	showScreen();
	var $this = this;
 
    var oElement = (typeof rElement) == 'string' ? $(rElement) : rElement;    
    if (!oElement) return false;    

	var responseHandler = function (sContent)
	{					
		oElement.innerHTML += sContent;		
		hideScreen();
        $this.onLoadComplete (oElement);
	}

	new BxXslTransform (sXML, sXSL, responseHandler, null, this._iForceServerXsl);
	return false;
}
BxContent.prototype.remove = function (rParentElement, rChildElement) {
    var oParentElement = (typeof rParentElement) == 'string' ? $(rParentElement) : rParentElement;
    if (!oParentElement) return false;		
	var oChildElement = (typeof rChildElement) == 'string' ? $(rChildElement) : rChildElement;
    if (!oChildElement) return false;		
    
    oParentElement.removeChild(oChildElement);    
	return false;
}
BxContent.prototype.replace = function (elem, sXML, sXSL)
{
    if (!sXML.length) sXML = aBxConfig['urlRoot'] + "Util/empty_xml/";
    if (!sXSL) return false;

	showScreen();

	var $this = this;
  
    var e = 'string' == (typeof elem) ? $(elem) : elem;
    if (!e) return false;

	var h = function (r)
	{				
		e.innerHTML = r;
		
		hideScreen();

        $this.onLoadComplete (e);
	}
	
	new BxXslTransform (sXML, sXSL, h, null, this._iForceServerXsl);

	return false;
}

BxContent.prototype.fillCombo = function (elem, sXML)
{
    if (!sXML) return false;

    showScreen();

    var $this = this;

    var e = 'string' == (typeof elem) ? $(elem) : elem;
    if (!e) return false;

   	var h = function (r)
    {
        var items = r.responseXML.getElementsByTagName('item');
        e.options.length = 0;
	    for (var i = 0; i < items.length; i++)
    	{
        	var id = items[i].firstChild.firstChild.nodeValue;            
			var name = items[i].firstChild.nextSibling.firstChild.nodeValue;
	    	
            e.options[e.options.length] = new Option(name, id);
        }

        hideScreen();

        e.disabled = false;
        if (e.options[0]) e.options[0].selected = true;
        
        $this.onLoadComplete (e);
    }

    new BxXmlRequest(sXML, h, 1);

    return false;
}

BxContent.prototype.onLoadComplete = function (e)
{
    return true;
}

BxContent.prototype.setForceServerXsl = function (i)
{
    this._iForceServerXsl = i;
}

