function writeXml( docElm, xmlUri, xslUri ) {
	var xmlreq = GXmlHttp.create();
	xmlreq.open("GET", xmlUri , true);
	xmlreq.onreadystatechange = function() {
		if (xmlreq.readyState == 4) {
			onloadXsl(docElm, xmlreq.responseXML, xslUri );
		}
	}
	xmlreq.send(null);
}
function onloadXsl(docElm, xml, xslUri) {
	var xslreq = GXmlHttp.create();
	xslreq.open("GET", xslUri, true);
	xslreq.onreadystatechange = function() {
		if (xslreq.readyState == 4) {
			var xsl = GXslt.create(xslreq.responseXML);
			xsl.transformToHtml(xml, docElm);
		}
	}
	xslreq.send(null);
}
function xmlRpc( server, method, params, callbackfunc ) {
	var xml_param = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
	xml_param += "<methodCall>";
	xml_param += "<methodName>" + method + "</methodName>";
	xml_param += "<params>";
	for( var i=0; i < params.length ; i++ ) {
		xml_param += "<param>";
		xml_param += "<value>" + params[i] + "</value>";
		xml_param += "</param>";
	}
	xml_param += "</params>";
	xml_param += "</methodCall>";
	var req = GXmlHttp.create();
	req.open("POST", server , true );
	req.onreadystatechange = function() {
		if(req.readyState == 4 ) {
			if( callbackfunc != null )
			callbackfunc(req.requestXML);
		}
	}
	req.setRequestHeader("Content-Type", "text/xml; charset=UTF-8");
	req.send(xml_param);
}
