var AJAX = 0;

function makeRequest(LocationURL) {      
	var http_request = false;
	AJAX = 1;
    try {
        	http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e1) {
        try {
            	http_request= new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e2) {
            	http_request = new XMLHttpRequest();
            }
        }
    if (!http_request) {
    	alert("Your browser cannot create XMLHttpRequest!");
   	}  

	if (http_request.overrideMimeType){ 
		http_request.overrideMimeType('application/xml');
	} 

    http_request.open('GET', LocationURL ,false);

    http_request.send(null);
		if(!http_request.responseXML.documentElement && http_request.responseStream)			
			 http_request.responseXML.load(http_request.responseStream);
	AJAX = 0;
	return http_request.responseXML;//.documentElement;
}

function loadXML(fileName) { 
     var xmlFile = null;
  
     if (window.ActiveXObject) { // IE
         xmlFile = new ActiveXObject("Microsoft.XMLDOM");
     } else if (document.implementation && document.implementation.createDocument) { // Mozilla, Firefox, Opera, etc.
         xmlFile = document.implementation.createDocument("","",null);
     } else {
         alert('Your browser cannot create XML DOM Documents');
     }
     xmlFile.async = false;
     try {
         xmlFile.load(fileName);
     } catch(e) {
         try //Google Chrome
         {
            var xmlhttp = new window.XMLHttpRequest();
            xmlhttp.open("GET",fileName,false);
            xmlhttp.send(null);
            xmlFile = xmlhttp.responseXML.documentElement;
         }
         catch(e)
         {
         	alert('an error occured while loading XML file ' + fileName);
	     }
     }
     return(xmlFile);
 }

 function transformXSLT(xmlDocs, xslFileName) { 

 	 if (xmlDocs.length > 0) {
 	     var xmlContent = xmlDocs[0];
	     for (var i = 1; i < xmlDocs.length; i += 1 ) {
	     	var tag = xmlDocs[i].documentElement.firstChild;
    	 	try {
				xmlContent.documentElement.appendChild(tag);
			}
			catch(e) {
				var nodeToImport = xmlContent.importNode(tag, true);
	            xmlContent.documentElement.appendChild(nodeToImport);
//          xmlContent.documentElement.appendChild(xmlDocs[i].firstChild);
 //            	xmlContent.importNode(xmlDocs[i].firstChild);
 			}
	     }

    	 var xslContent = loadXML(xslFileName);
	     if (window.ActiveXObject) { // IE
    	     return xmlContent.transformNode(xslContent);        
	     } else if (window.XSLTProcessor) { // Mozilla, Firefox, Opera, Safari etc.
        	 var xsltProcessor = new XSLTProcessor();
    	     xsltProcessor.importStylesheet(xslContent);
	         var resultDocument = xsltProcessor.transformToDocument(xmlContent);
        	 var xmls = new XMLSerializer();   
    	     return xmls.serializeToString(resultDocument);
	     }
     }
 }



