
var SdEcHtmlWithInXml = {};		// public  global identifiers
var $_EcHtmlWithInXml = {};		// private global identifiers

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

SdEcHtmlWithInXml.loadXmlAsynchronouslyAndTranslateViaXslt = function (elementId)
{
	var url = SdEcSpecifics.getSpecific(elementId, "url");
	var xsl = SdEcSpecifics.getSpecific(elementId, "xsl");

	if (xsl && xsl.length > 0 && xsl.charAt(0) != '/') xsl = "/" + xsl;

	// add a new element now so that they are not reordered
	// into the order that callbacks get http responses ...

	var ordinal = $_EcHtmlWithInXml["ordinal"];
	if (!ordinal) ordinal = 0;
	ordinal = ordinal + 1;
	$_EcHtmlWithInXml["ordinal"] = ordinal;
	
	var element = document.getElementById(elementId);
	elementId = elementId + "-" + ordinal;

	var newNode = document.createElement("span");
	newNode.id = elementId;
	element.appendChild(newNode);

	// get the xslt style sheet

	var xslTxt;
	try {
		xslTxt = SdXslData.getXslAsHardCodedString(xsl);
	} catch (e) {
		xslTxt = null;
	}

	var xslDoc;
	if (xslTxt == null)
	{
		xslDoc = SdEcXdocLoader.LoadXSLDocFromFile(xsl,"xml-content");
	}
	else 
	{
		xslDoc = SdEcXdocLoader.loadXMLDocFromText(xslTxt,"xml-content",xsl);
	}

	// fixup url -- substitute (parameter, property and/or attribute) values
	// for the {holes} in the url template -- add proxy prefix

	url = SdCommon.proxify(url);

	var ajaxResponseHandlerArgs = { "xsl-doc" : xslDoc, "element-id" : elementId };

	SdEcAjaxLoader.ajaxRequest(url, SdEcResponseHandlerForHtml.ajaxResponseHandlerForEnrichedContent, ajaxResponseHandlerArgs, "xml-content","xml","xsl");
}

// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

SdEcEngine.registerTypeHandler("html", SdEcHtmlWithInXml.loadXmlAsynchronouslyAndTranslateViaXslt);


