function firstUpperCase(str) {
   str = str.substr(0, 1).toUpperCase() + (str.substr(1)).toLowerCase();
   return str;
}
function processReqChange(req) {
    // only if req shows "loaded"
    if (req.readyState == 4) {
        // only if "OK"
        if (req.status == 200) {
            // ...processing statements go here...
        } else {
            alert("There was a problem retrieving the XML data:\n" +
                req.statusText);
        }
    }
}

function loadXMLfile(url) {
	var req = false;
    // branch for native XMLHttpRequest object
    if(window.XMLHttpRequest && !(window.ActiveXObject)) {
    	try {
			req = new XMLHttpRequest();
		} catch(e) {
			req = false;
        }
    // branch for IE/Windows ActiveX version
    } else if(window.ActiveXObject) {
       	try {
        	//req = new ActiveXObject("Msxml2.XMLHTTP");
			xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
			xmlDoc.async=false;
			xmlDoc.validateOnParse = false;
			xmlDoc.resolveExternals = false;
			xmlDoc.preserveWhiteSpace = false;
			xmlDoc.load(url);
			return xmlDoc;
      	} catch(e) {
        	try {
          		req = new ActiveXObject("Microsoft.XMLHTTP");
				
        	} catch(e) {
          		req = false;
        	}
		}
    }
	if(req) {
		req.onreadystatechange = processReqChange(req);
		req.open("GET", url, false);
		req.send("");
		return req.responseXML;
	}
	return "";
}

function loadXMLfile2(filename)
{
var xmlDoc;
try
{
try //Internet Explorer
  {
  xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
  }
catch(e)
  {
  try //Firefox, Mozilla, Opera, etc.
    {
    xmlDoc=document.implementation.createDocument("","",null);
    }
  catch(e)
    {
    alert(e.message);
    return;
    }
  }
xmlDoc.async=false;
xmlDoc.validateOnParse = false;
xmlDoc.resolveExternals = false;
xmlDoc.preserveWhiteSpace = false;
xmlDoc.load(filename);
return xmlDoc;
} catch (e)
{

alert("An exception occurred in the script. Error name: " + e.name 
+ ". Error message: " + e.message); 
return "";

}
}
function traverse(tree) {
mystring ="";



        if(tree.hasChildNodes()) {
                mystring += '<ul><li>';
                mystring +='<b>'+tree.tagName+' : </b>';
                //var nodes=tree.childNodes.length;
                for(var i=0; i<tree.childNodes.length; i++)
				{
						
                        mystring += traverse(tree.childNodes(i));
						}
                mystring += '</li></ul>';
        }
        else{
                mystring += tree.text;
				}
			
				return mystring;
}
