var triveCommon = Class.create();

triveCommon.prototype = {
	
	getPosition: function(obj) {
		var curleft = curtop = 0;
		if (obj.offsetParent) {
			curleft = obj.offsetLeft
			curtop = obj.offsetTop
			while (obj = obj.offsetParent) {
				curleft += obj.offsetLeft
				curtop += obj.offsetTop
			}
		}
		return [curleft,curtop];
	},
	setXSL: function(xmlSource, xslUrl){
				
	/*
		Description:	Transforms a xml with a xsl and returns the output.
		Parameters:		xmlSource, xslUrl 
		Returns:		innerHTML
		
		Example:	
		new Ajax.Request('myXML.xml', {
  			method: 'get',
  			onSuccess: function(transport) {
				$('myContainer').innerHTML = triveCommon.prototype.setXSL(transport.responseXML,'myXSL.xsl');
  			}
		});
	*/

				if(document.implementation && document.implementation.createDocument)
				{
					
					var el = document.createElement('div');
					var xsltProcessor = new XSLTProcessor();

					var myXMLHTTPRequest = new XMLHttpRequest();
					myXMLHTTPRequest.open("GET", xslUrl, false);
					myXMLHTTPRequest.send(null);

					xslStylesheet = myXMLHTTPRequest.responseXML;
					xsltProcessor.importStylesheet(xslStylesheet);
					
					var resultDocument = xsltProcessor.transformToFragment(xmlSource, document);
					el.appendChild(resultDocument);
					return el.innerHTML;

				}
				else if(window.ActiveXObject)
				{
					
					xsl = new ActiveXObject("MSXML2.DOMDocument");
					xsl.async = false
					xsl.load(xslUrl)

					return xmlSource.transformNode(xsl);
				}
				else
				{
					return false;
				}

			}
}