function sendRequest(url, responseMethod) 
{
     xmlHttp = false;
	if(document.all)
	{
		try 
		{
		  xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e) 
		{
		  try 
		  {
		    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		  }
		  catch (e2) 
		  {
		    xmlHttp = false;
    		  }  
		}
	}
	else if(!xmlHttp && typeof XMLHttpRequest != 'undefined') xmlHttp = new XMLHttpRequest();

	xmlHttp.open("GET", url, true);
	xmlHttp.onreadystatechange = responseMethod;
	xmlHttp.send(null);
}

function loadXMLDoc(theDoc)
{
    if (window.ActiveXObject)
    {
        var xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
        xmlDoc.async = false;
        xmlDoc.load(theDoc);
    }
    else if (document.implementation.createDocument)
    {
        var myXMLHTTPRequest = new XMLHttpRequest();
        myXMLHTTPRequest.open("GET", theDoc, false);
        myXMLHTTPRequest.send(null);
    
        var xmlDoc = myXMLHTTPRequest.responseXML;
    }
    else
    {
        alert('Your browser cannot handle this script');
        return false;
    }
    
    return xmlDoc;
}

function loadText(theDoc)
{
    if (window.ActiveXObject)
    {
        var myXMLHTTPRequest = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else if (document.implementation.createDocument)
    {
        var myXMLHTTPRequest = new XMLHttpRequest();
    }
    else
    {
        alert('Your browser cannot handle this script');
        return false;
    }
    myXMLHTTPRequest.open("GET", theDoc, false);
    myXMLHTTPRequest.send(null);

    var xmlDoc = myXMLHTTPRequest.responseText;
    
    return xmlDoc;
}
    
function loadXMLString(xmlString)
{	//  turns a valid xml string into a dom document object
    if (document.implementation.createDocument)
    {
        var parser = new DOMParser();
        myDocument = parser.parseFromString(xmlString, "text/xml");
    } 
    else if(window.ActiveXObject)
    {
        myDocument = new ActiveXObject("Microsoft.XMLDOM")
        myDocument.async="false";
        myDocument.loadXML(xmlString);   
    } 
    else
    {
        alert('Your browser cannot handle this script');
        return false;
    }
    
    return myDocument;
}
			
function transform(xmlDoc, theXSL)
{
	if(window.ActiveXObject) var outputString = xmlDoc.transformNode(theXSL);
	else if(document.implementation.createDocument)
	{
	   var xmlSerializer = new XMLSerializer();
	   var xslProcessor = new XSLTProcessor();          
	   xslProcessor.importStylesheet(theXSL);
	   var outputString = xmlSerializer.serializeToString(xslProcessor.transformToFragment(xmlDoc, document));
	}   	
	
	outputString = outputString.replace(/H1/g, "h1");
	outputString = outputString.replace(/H2/g, "h2");
	outputString = outputString.replace(/H3/g, "h3");
	outputString = outputString.replace(/DIV/g, "div");
	outputString = outputString.replace(/P>/g, "p>");
	outputString = outputString.replace(/B>/g, "b>");
	outputString = outputString.replace(/<A/g, "<a");
	outputString = outputString.replace(/A>/g, "a>");
	outputString = outputString.replace(/TABLE/g, "table");
     outputString = outputString.replace(/TBODY/g, "tbody");
     outputString = outputString.replace(/TR/g, "tr");
     outputString = outputString.replace(/TD/g, "td");
     outputString = outputString.replace(/IMG/g, "img");
     outputString = outputString.replace(/INPUT/g, "input");
     outputString = outputString.replace(/SPAN/g, "span");
     outputString = outputString.replace(/BODY/g, "body");
	
	return outputString;
}

